@vindral/web-sdk 4.1.10 → 4.2.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.
- package/BQEuFJLn.js +206 -0
- package/BoKiM5eL.js +232 -0
- package/{CPEMXA01.js → CuhQLT-7.js} +1 -1
- package/{BWE6d-4K.js → DBHv5ggB.js} +5884 -5139
- package/{uEFjK_x4.js → DGo74EDo.js} +15 -8
- package/{BJjv9_f9.js → HT5RB929.js} +1 -1
- package/api-client.d.ts +41 -42
- package/api-client.js +1 -1
- package/cast-sender.d.ts +37 -43
- package/cast-sender.js +1 -1
- package/core.d.ts +149 -94
- package/core.js +1 -1
- package/legacy.d.ts +149 -94
- package/legacy.es.js +8469 -7447
- package/legacy.umd.js +9 -9
- package/package.json +1 -1
- package/player.d.ts +134 -90
- package/player.js +1275 -1265
- package/react.d.ts +134 -90
- package/C8BeO5Y9.js +0 -117
package/legacy.umd.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
(function(u,S){typeof exports=="object"&&typeof module!="undefined"?S(exports):typeof define=="function"&&define.amd?define(["exports"],S):(u=typeof globalThis!="undefined"?globalThis:u||self,S(u.Vindral={}))})(this,(function(u){"use strict";var Vw=Object.create;var EC=Object.defineProperty,Zw=Object.defineProperties,Xw=Object.getOwnPropertyDescriptor,jw=Object.getOwnPropertyDescriptors;var fn=Object.getOwnPropertySymbols;var jr=Object.prototype.hasOwnProperty,zr=Object.prototype.propertyIsEnumerable;var Vt=(u,S)=>(S=Symbol[u])?S:Symbol.for("Symbol."+u),Ee=u=>{throw TypeError(u)};var pn=(u,S,p)=>S in u?EC(u,S,{enumerable:!0,configurable:!0,writable:!0,value:p}):u[S]=p,D=(u,S)=>{for(var p in S||(S={}))jr.call(S,p)&&pn(u,p,S[p]);if(fn)for(var p of fn(S))zr.call(S,p)&&pn(u,p,S[p]);return u},z=(u,S)=>Zw(u,jw(S)),Xr=(u,S)=>EC(u,"name",{value:S,configurable:!0});var _r=(u,S)=>{var p={};for(var H in u)jr.call(u,H)&&S.indexOf(H)<0&&(p[H]=u[H]);if(u!=null&&fn)for(var H of fn(u))S.indexOf(H)<0&&zr.call(u,H)&&(p[H]=u[H]);return p};var Vi=u=>{var S;return[,,,Vw((S=u==null?void 0:u[Vt("metadata")])!=null?S:null)]},$r=["class","method","getter","setter","accessor","field","value","get","set"],pB=u=>u!==void 0&&typeof u!="function"?Ee("Function expected"):u,zw=(u,S,p,H,N)=>({kind:$r[u],name:S,metadata:H,addInitializer:Y=>p._?Ee("Already initialized"):N.push(pB(Y||null))}),Oe=(u,S)=>pn(S,Vt("metadata"),u[3]),Zi=(u,S,p,H)=>{for(var N=0,Y=u[S>>1],j=Y&&Y.length;N<j;N++)S&1?Y[N].call(p):H=Y[N].call(p,H);return H},ZA=(u,S,p,H,N,Y)=>{var j,tA,sA,nA,Zt,F=S&7,AA=!!(S&8),x=!!(S&16),Ve=F>3?u.length+1:F?AA?1:2:0,Ze=$r[F+5],lA=F>3&&(u[Ve-1]=[]),q=u[Ve]||(u[Ve]=[]),XA=F&&(!x&&!AA&&(N=N.prototype),F<5&&(F>3||!x)&&Xw(F<4?N:{get[p](){return s(this,Y)},set[p](SA){return r(this,Y,SA)}},p));F?x&&F<4&&Xr(Y,(F>2?"set ":F>1?"get ":"")+p):Xr(N,p);for(var _i=H.length-1;_i>=0;_i--)nA=zw(F,p,sA={},u[3],q),F&&(nA.static=AA,nA.private=x,Zt=nA.access={has:x?SA=>_w(N,SA):SA=>p in SA},F^3&&(Zt.get=x?SA=>(F^1?s:l)(SA,N,F^4?Y:XA.get):SA=>SA[p]),F>2&&(Zt.set=x?(SA,fg)=>r(SA,N,fg,F^4?Y:XA.set):(SA,fg)=>SA[p]=fg)),tA=(0,H[_i])(F?F<4?x?Y:XA[Ze]:F>4?void 0:{get:XA.get,set:XA.set}:N,nA),sA._=1,F^4||tA===void 0?pB(tA)&&(F>4?lA.unshift(tA):F?x?Y=tA:XA[Ze]=tA:N=tA):typeof tA!="object"||tA===null?Ee("Object expected"):(pB(j=tA.get)&&(XA.get=j),pB(j=tA.set)&&(XA.set=j),pB(j=tA.init)&&lA.unshift(j));return F||Oe(u,N),XA&&EC(N,p,XA),x?F^4?Y:XA:N},I=(u,S,p)=>pn(u,typeof S!="symbol"?S+"":S,p),cC=(u,S,p)=>S.has(u)||Ee("Cannot "+p),_w=(u,S)=>Object(S)!==S?Ee('Cannot use the "in" operator on this value'):u.has(S),s=(u,S,p)=>(cC(u,S,"read from private field"),p?p.call(u):S.get(u)),C=(u,S,p)=>S.has(u)?Ee("Cannot add the same private member more than once"):S instanceof WeakSet?S.add(u):S.set(u,p),r=(u,S,p,H)=>(cC(u,S,"write to private field"),H?H.call(u,p):S.set(u,p),p),l=(u,S,p)=>(cC(u,S,"access private method"),p);var _A=(u,S,p,H)=>({set _(N){r(u,S,N,p)},get _(){return s(u,S,H)}});var c=(u,S,p)=>new Promise((H,N)=>{var Y=sA=>{try{tA(p.next(sA))}catch(nA){N(nA)}},j=sA=>{try{tA(p.throw(sA))}catch(nA){N(nA)}},tA=sA=>sA.done?H(sA.value):Promise.resolve(sA.value).then(Y,j);tA((p=p.apply(u,S)).next())}),QA=function(u,S){this[0]=u,this[1]=S},ce=(u,S,p)=>{var H=(j,tA,sA,nA)=>{try{var Zt=p[j](tA),F=(tA=Zt.value)instanceof QA,AA=Zt.done;Promise.resolve(F?tA[0]:tA).then(x=>F?H(j==="return"?j:"next",tA[1]?{done:x.done,value:x.value}:x,sA,nA):sA({value:x,done:AA})).catch(x=>H("throw",x,sA,nA))}catch(x){nA(x)}},N=j=>Y[j]=tA=>new Promise((sA,nA)=>H(j,tA,sA,nA)),Y={};return p=p.apply(u,S),Y[Vt("asyncIterator")]=()=>Y,N("next"),N("throw"),N("return"),Y},hC=u=>{var S=u[Vt("asyncIterator")],p=!1,H,N={};return S==null?(S=u[Vt("iterator")](),H=Y=>N[Y]=j=>S[Y](j)):(S=S.call(u),H=Y=>N[Y]=j=>{if(p){if(p=!1,Y==="throw")throw j;return j}return p=!0,{done:!1,value:new QA(new Promise(tA=>{var sA=S[Y](j);sA instanceof Object||Ee("Object expected"),tA(sA)}),1)}}),N[Vt("iterator")]=()=>N,H("next"),"throw"in S?H("throw"):N.throw=Y=>{throw Y},"return"in S&&H("return"),N},EA=(u,S,p)=>(S=u[Vt("asyncIterator")])?S.call(u):(u=u[Vt("iterator")](),S={},p=(H,N)=>(N=u[H])&&(S[H]=Y=>new Promise((j,tA,sA)=>(Y=N.call(u,Y),sA=Y.done,Promise.resolve(Y.value).then(nA=>j({value:nA,done:sA}),tA)))),p("next"),p("return"),S);var ct=(u,S,p)=>{if(S!=null){typeof S!="object"&&typeof S!="function"&&Ee("Object expected");var H,N;p&&(H=S[Vt("asyncDispose")]),H===void 0&&(H=S[Vt("dispose")],p&&(N=H)),typeof H!="function"&&Ee("Object not disposable"),N&&(H=function(){try{N.call(this)}catch(Y){return Promise.reject(Y)}}),u.push([p,H,S])}else p&&u.push([p]);return S},ht=(u,S,p)=>{var H=typeof SuppressedError=="function"?SuppressedError:function(j,tA,sA,nA){return nA=Error(sA),nA.name="SuppressedError",nA.error=j,nA.suppressed=tA,nA},N=j=>S=p?new H(j,S,"An error was suppressed during disposal"):(p=!0,j),Y=j=>{for(;j=u.pop();)try{var tA=j[1]&&j[1].call(j[2]);if(j[0])return Promise.resolve(tA).then(Y,sA=>(N(sA),Y()))}catch(sA){N(sA)}if(p)throw S};return Y()};var zt,BI,lt,Hg,vg,Nt,ut,wA,_t,we,ii,qg,Ii,oI,nI,Kg,dC,gi,si,nt,wt,Bi,oi,Yg,gA,ni,$t,Dt,bt,GA,me,Se,Fo,aI,Tg,Pg,DA,AE,tE,eE,iE,ko,Go,IE,FB,Ro,gE,sE,as,Cs,Qs,rs,PA,$A,BA,EI,ye,Ae,ai,BE,lC,Lt,cI,hI,Es,cs,dI,hs,ds,Jt,lI,ls,us,uI,Ci,oE,uC,mt,wI,ws,DI,Ds,ms,Ss,mI,No,Qi,nE,wC,pe,ys,Mt,ri,Ei,ci,LA,fs,hi,fA,bo,rA,kB,Fn,Xi,aE,DC,Ht,ps,Lo,Jo,Mo,SI,te,Ho,Fs,mC,zA,at,di,vo,ee,yI,hA,CE,QE,rE,EE,cE,hE,dE,lE,uE,wE,fI,ks,Gs,pA,Rs,pI,FI,Us,Ko,DE,Yo,GI,RI,Fe,li,To,ui,St,vA,Ns,bs,Ct,Ls,Js,NI,Ms,Po,mE,wi,Hs,bI,vs,LI,qs,Di,ke,mg,Lr,JI,Ks,MI,mi,Ge,Re,Ue,eC,Si,Jr,HI,RA,vI,qI,iC,KI,GB,Mr,Hr,vr,qr,ie,At,yi,fi,YI,vt,kn,Sg,Kr,Yr,Tr,Pr,yt,Ys,pi,TI,PI,FA,SE,yE,xI,Gn,Rn,Un,RB,Qt,Ts,Fi,WI,Ps,qA,ji,zi,Ne,Ie,OI,ki,ge,VI,ZI,xo,fE,se,Be,be,xs,Ws,Wo,Oo,pE,oe,XI,Os,tt,qt,Gi,rt,Vs,Vo,Zs,SC,ft,Ri,ne,Kt,Xs,yC,js,Le,zs,_s,$s,Zo,FE,AB,jI,tB,zI,eB,fC,iB,Yt,IB,gB,jo,kE,zo,Je,Ui,sB,BB,oB,Ni,pC,GE,_o,nB,Me,$I,xr,bi,Li,Ji,He,oC,Ag,Nn,Mi,aB,$o,RE,CB,An,UE,tn,eg,ig,QB,rB,Wr,Or,Vr,Ig,gg,Hi,JA,pt,Ft,ve,sg,EB,cB,ae,xA,bn,UB,NE,FC,UA,WA,et,vi,dA,qe,hB,Bg,dB,og,OA,bE,ng,lB,ag,LE,JE,ME,HE,kC,Ce,qi,en,vE,Cg,Ke,Qg,Pt,xt,rg,Ki,Ye,Yi,Eg,cg,In,gn,sn,qE,uB,Wt,MA,Ti,Et,KE,yg,YE,an,iA,wB,DB,mB,Pe,lg,TE,PE,Cn,We,Pi,it,xi,ug,xE,WE;const H={buffering:"_buffering_1ccif_1","buffering-fullscreen":"_buffering-fullscreen_1ccif_16",hidden:"_hidden_1ccif_25","buffering-indicator":"_buffering-indicator_1ccif_31"};class N{constructor(A){I(this,"attach",A=>{this.detach(),A.appendChild(this.element)});I(this,"attachBefore",(A,t)=>{this.detach(),A.insertBefore(this.element,t)});I(this,"detach",()=>this.element.remove());this.element=A}}const Y=H.hidden,j=H.buffering,tA=H["buffering-fullscreen"],sA=H["buffering-indicator"];class nA extends N{constructor(){super(document.createElement("div"));I(this,"indicator",document.createElement("div"));I(this,"isHidden",()=>this.element.classList.contains(Y));I(this,"setHidden",t=>t?this.hide():this.show());I(this,"hide",()=>this.element.classList.add(Y));I(this,"show",()=>this.element.classList.remove(Y));I(this,"fullscreen",t=>{t?this.element.classList.add(tA):this.element.classList.remove(tA)});this.element.className=j,this.indicator.className=sA,this.element.appendChild(this.indicator)}}class Zt{constructor(A){I(this,"maxSize",0);I(this,"size",0);I(this,"buffers",[]);I(this,"_borrowedBuffers",0);I(this,"get",A=>{const t=this.buffers.shift();return this._borrowedBuffers++,this.size<A||!t?(this.buffers=[],this.size=A,new ArrayBuffer(A)):t});I(this,"reclaim",A=>{this._borrowedBuffers=Math.max(0,this._borrowedBuffers-1),!(A.byteLength<this.size)&&(this.buffers.length>=this.maxSize||this.buffers.push(A))});this.maxSize=A}get bufferSize(){return this.size}get poolSize(){return this.buffers.length}get borrowedBuffers(){return this._borrowedBuffers}}const F=()=>{};class AA{constructor(){I(this,"promise");I(this,"resolved");I(this,"resolve");I(this,"reject");I(this,"pending",!0);this.promise=new Promise((A,t)=>{this.resolve=e=>{this.pending=!1,this.resolved=e,A(e)},this.reject=e=>{this.pending=!1,t(e)}}),this.promise.catch(F)}static resolved(A){const t=new AA;return t.resolve(A),t}static fromPromise(A){const t=new AA;return t.promise=A,A.then(e=>{t.pending=!1,t.resolved=e},e=>{t.pending=!1,t.reject(e)}),t}}class x{constructor(A=50){I(this,"maxSize");I(this,"values",[]);I(this,"push",A=>{this.isFull()&&this.pop(),this.values.push(A)});I(this,"clear",()=>{this.values=[]});I(this,"pop",()=>this.values.shift());I(this,"peekFirst",()=>this.values[0]);I(this,"peekLast",()=>this.values[this.values.length-1]);I(this,"isFull",()=>this.values.length>=this.maxSize);I(this,"isEmpty",()=>this.values.length===0);I(this,"items",()=>this.values);I(this,"filterPop",A=>{for(;this.peekFirst()&&!A(this.peekFirst());)this.pop()});this.maxSize=A}}function Ve(i){const A=new Ze(i);return[A,A]}class Ze{constructor(A){C(this,zt);C(this,BI,new AA);C(this,lt);C(this,Hg,!1);r(this,zt,new x(A))}isFull(){return s(this,zt).isFull()}close(){var A;(A=s(this,lt))==null||A.resolve(),r(this,Hg,!0)}abort(A){var t,e;(t=s(this,lt))==null||t.promise.catch(F),(e=s(this,lt))==null||e.reject(A)}push(A){return c(this,null,function*(){var t;s(this,zt).isFull()&&(yield s(this,BI).promise),s(this,zt).push(A),(t=s(this,lt))==null||t.resolve(),r(this,lt,new AA)})}pop(){return c(this,null,function*(){var A;for(;!(s(this,Hg)&&s(this,zt).isEmpty());){const t=s(this,zt).pop();if(t)return s(this,BI).resolve(),r(this,BI,new AA),t;s(this,lt)||r(this,lt,new AA),yield(A=s(this,lt))==null?void 0:A.promise}})}start(A){}pull(A){return c(this,null,function*(){const t=yield this.pop();t?A.enqueue(t):A.close()})}cancel(A){this.abort(new Error(A))}next(){return c(this,null,function*(){const A=yield this.pop().catch(()=>{});return A?{done:!1,value:A}:{done:!0,value:void 0}})}return(){return this.close(),Promise.resolve({done:!0,value:void 0})}[Symbol.asyncIterator](){return this}}zt=new WeakMap,BI=new WeakMap,lt=new WeakMap,Hg=new WeakMap;function lA(i,A){if(!i)throw new Error(A)}function q(i){return typeof BigInt=="function"?BigInt(i):i}class XA{constructor(A,t=0){C(this,vg);C(this,Nt);C(this,ut);I(this,"position",()=>s(this,ut));I(this,"peekBit",()=>this.getBit(s(this,Nt),s(this,ut)));I(this,"readBit",()=>{const A=this.peekBit();return _A(this,ut)._++,A});I(this,"readBits",A=>{let t=0;for(let e=0;e<A;e++)t=t<<1|(this.getBit(s(this,Nt),_A(this,ut)._++)?1:0);return t});I(this,"remainingBits",()=>s(this,Nt).byteLength*8-s(this,ut));I(this,"readSignedExpGolomb",()=>{const A=this.readUnsignedExpGolomb();return A&1?(A+1)/2:-(A/2)});I(this,"readUnsignedExpGolomb",()=>{let A=0;for(;this.getBit(s(this,Nt),_A(this,ut)._++)===0;)A++;let t=1<<A;for(let e=A-1;e>=0;e--)t|=this.getBit(s(this,Nt),_A(this,ut)._++)<<e;return t-1});I(this,"getBit",(A,t)=>{if(A.byteLength*8<=t)throw new Error("BitReader: Out of bounds");return A[t>>3]>>7-(t&7)&1});r(this,vg,A),r(this,Nt,new Uint8Array(s(this,vg))),r(this,ut,t)}bytes(){return s(this,Nt)}}vg=new WeakMap,Nt=new WeakMap,ut=new WeakMap;const _i=(i,A,t)=>{let e=0;for(let g=A;g<=t;g++)if(g===A){const B=i[g];e+=B&127,B&128&&(e-=128)}else e=e*256+i[g];return e};class SA{constructor(A){C(this,wA);C(this,_t);C(this,we);r(this,_t,A),r(this,we,new DataView(A.buffer,A.byteOffset,A.byteLength)),r(this,wA,0)}position(){return s(this,wA)}byteOffset(){return s(this,_t).byteOffset+s(this,wA)}buffer(){return s(this,_t)}remaining(){return s(this,_t).length-s(this,wA)}readUint8(){const A=s(this,we).getUint8(s(this,wA));return r(this,wA,s(this,wA)+1),A}readUint24(){const A=s(this,we).getUint32(s(this,wA))>>8&16777215;return r(this,wA,s(this,wA)+3),A}readUint16(){const A=s(this,we).getUint16(s(this,wA));return r(this,wA,s(this,wA)+2),A}readUint32(){const A=s(this,we).getUint32(s(this,wA));return r(this,wA,s(this,wA)+4),A}readUint64(){const A=_i(s(this,_t),s(this,wA),s(this,wA)+7);return r(this,wA,s(this,wA)+8),A}readBytes(A){const t=s(this,_t).subarray(s(this,wA),s(this,wA)+A);return r(this,wA,s(this,wA)+A),t}readRemaining(){return this.readBytes(this.remaining())}readUtf8String(){const A=[];let t;for(;(t=this.readUint8())!==0&&(A.push(t),this.remaining()!=0););return new TextDecoder().decode(new Uint8Array(A))}}wA=new WeakMap,_t=new WeakMap,we=new WeakMap;class fg{constructor(A=100){I(this,"internalBuffer");I(this,"view");I(this,"uint8");I(this,"_position",0);I(this,"_end",0);this.internalBuffer=new ArrayBuffer(A),this.view=new DataView(this.internalBuffer),this.uint8=new Uint8Array(this.internalBuffer)}position(){return this._position}seek(A){this._position=Math.max(0,Math.min(this._end,A))}seekToEnd(){this._position=this._end}writeUint8(A){this.writeAndMove(A,1)}writeUint16(A){this.writeAndMove(A,2)}writeUint24(A){this.writeAndMove(A,3)}writeUint32(A){this.writeAndMove(A,4)}writeUint64(A){const t=Math.floor(A/4294967296),e=(A&4294967295)>>>0;this.writeUint32(t),this.writeUint32(e)}writeUint32At(A,t){this.view.setUint32(A,t)}writeBytes(A){this.resizeIfNeeded(this.position()+A.byteLength),this.uint8.set(A,this.position()),this._position+=A.byteLength,this._end=Math.max(this._end,this._position)}buffer(){return this.internalBuffer.slice(0,this._end)}bufferExact(){return this._end===this.internalBuffer.byteLength?this.internalBuffer:this.internalBuffer.slice(0,this._end)}write(A,t){switch(this.resizeIfNeeded(this.position()+t),t){case 1:this.view.setUint8(this.position(),A);break;case 2:this.view.setUint16(this.position(),A);break;case 3:this.view.setUint8(this.position(),A>>16&255),this.view.setUint8(this.position()+1,A>>8&255),this.view.setUint8(this.position()+2,A&255);break;case 4:this.view.setUint32(this.position(),A);break}}writeAndMove(A,t){this.write(A,t),this._position+=t,this._end=Math.max(this._end,this._position)}resizeIfNeeded(A){if(A>this.internalBuffer.byteLength){const t=Math.max(A,this.internalBuffer.byteLength*2),e=new ArrayBuffer(t),g=new Uint8Array(e);g.set(this.uint8),this.internalBuffer=e,this.view=new DataView(this.internalBuffer),this.uint8=g}}}function GC(i){const A=atob(i),t=new Uint8Array(A.length);for(let e=0;e<A.length;e++)t[e]=A.charCodeAt(e);return t.buffer}function $i(){const i=self.MediaSource,A=self.ManagedMediaSource;return i!=null?i:A}const OE=/(android|bbd+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up.(browser|link)|vodafone|wap|windows ce|xda|xiino\/i.test(a)||\/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-\//i,KA=navigator.userAgent.toLowerCase(),VE=OE.test(KA),ZE=()=>{const i=document.createElement("video");return i.canPlayType("application/vnd.apple.mpegURL")!==""||i.canPlayType("audio/mpegurl")!==""},XE=()=>{try{if(typeof WebAssembly=="object"&&typeof WebAssembly.instantiate=="function"){const i=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(i instanceof WebAssembly.Module)return new WebAssembly.Instance(i)instanceof WebAssembly.Instance}}catch(i){return!1}return!1},jE=()=>KA.indexOf("CrKey")!==-1,zE=()=>navigator.platform==="MacIntel"&&navigator.maxTouchPoints===0,NB=()=>navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1,RC=()=>UC()||NB()?!0:/AppleWebKit/i.test(navigator.userAgent)&&!/Chrome|Chromium|Edg|OPR|Opera/i.test(navigator.userAgent),UC=()=>KA.indexOf("iphone")>=0&&KA.indexOf("like iphone")<0||KA.indexOf("ipad")>=0&&KA.indexOf("like ipad")<0||KA.indexOf("ipod")>=0&&KA.indexOf("like ipod")<0||NB(),_E=()=>{var i,A;return NB()?!1:(A=(i=$i())==null?void 0:i.isTypeSupported('audio/mp4; codecs="opus"'))!=null?A:!1},$E=()=>/^(?!.*chrome).*safari/i.test(KA);function Ac(){var i,A;if(/(iPhone|iPod|iPad)/i.test(KA))return(A=(i=KA==null?void 0:KA.match(/OS [\d_]+/i))==null?void 0:i[0])==null?void 0:A.substring(3).split("_").map(t=>parseInt(t))[0]}function tc(){var i,A;if(/^((?!chrome|android).)*safari/i.test(KA))return(A=(i=KA.match(/version\/([\d.]+)/))==null?void 0:i[1])==null?void 0:A.split(".").map(t=>parseInt(t))[0]}const ec=()=>typeof HTMLCanvasElement!="undefined"&&typeof HTMLCanvasElement.prototype.captureStream=="function",Ln=()=>{var t,e;const i=!!$i();let A=!1;return i&&(A=_E()),{isMobile:VE,supportsMp4Opus:A,supportsMediaSource:i,supportsHls:ZE(),supportsWebAssembly:XE(),supportsCanvasCaptureStream:ec(),platform:{iosVersion:(t=Ac())!=null?t:Number.MAX_SAFE_INTEGER,safariVersion:(e=tc())!=null?e:Number.MAX_SAFE_INTEGER,isIpadOS:NB(),isMacOS:zE(),isIOS:UC(),isWebKit:RC()}}};class AI{constructor(A,t,e){I(this,"onSuccess");I(this,"onError");I(this,"doExecute");this.doExecute=A,this.onSuccess=t,this.onError=e}execute(A){try{this.doExecute(A),this.onSuccess()}catch(t){this.onError(t)}}}const dt=i=>i.reduce((A,t)=>A+t,0)/i.length,Xt=i=>({last:i[i.length-1]||0,average:i.length===0?0:dt(i),max:i.length===0?0:Math.max(...i),min:i.length===0?0:Math.min(...i)}),ic=i=>{let A=0,t=0,e=0,g=0,B=0;for(let Q=0;Q<i.length;Q++){const{x:E,y:h}=i[Q];A+=E,t+=h,e+=E*h,g+=E*E,B+=h*h}const o=(i.length*e-A*t)/(i.length*g-A*A),n=(t-o*A)/i.length,a=((i.length*e-A*t)/Math.sqrt((i.length*g-A*A)*(i.length*B-t*t)))**2;return{slope:o,intercept:n,r2:a,predict:Q=>o*(i.length+Q)+n}};class Ic{constructor(A=10){I(this,"rates");I(this,"_total",0);I(this,"accumulatedValues",0);I(this,"lastTickTime",Date.now());I(this,"add",A=>{this.accumulatedValues+=A,this._total+=A});I(this,"tick",()=>{const A=this.accumulatedValues/((Date.now()-this.lastTickTime)/1e3);this.rates.push(A),this.accumulatedValues=0,this.lastTickTime=Date.now()});this.rates=new x(A)}get total(){return this._total}get average(){return this.rates.isEmpty()?0:dt(this.rates.items())}get minMaxAverage(){return Xt(this.rates.items())}}const tI=(i,A)=>{if(i===A)return!0;if(i==null||typeof i!="object"||A==null||typeof A!="object")return!1;let t=0,e=0;for(const g in i)t+=1;for(const g in A)if(e+=1,!(g in i)||!tI(i[g],A[g]))return!1;return t==e};class st{constructor(){I(this,"listeners",{})}emit(A,t){const e=this.listeners[A];if(e){let g=!1;for(let n=0;n<e.length;n++)if(e[n].once){g=!0;break}g&&(this.listeners[A]=e.filter(n=>!n.once));let B;const o=e.length;for(let n=0;n<o;n++){const a=e[n].fn(t);typeof a=="function"&&(B||(B=[]),B.push(a))}if(B)for(let n=0;n<B.length;n++)B[n]()}}off(A,t){const e=this.listeners[A];e&&(this.listeners[A]=e.filter(g=>g.fn!==t))}on(A,t){this.add(A,t,!1)}once(A,t){this.add(A,t,!0)}reset(){this.listeners={}}add(A,t,e){const g=this.listeners[A],B={fn:t,once:e};g?g.push(B):this.listeners[A]=[B]}}const Jn=1e3,Mn=Jn*1e3,NC=Mn*1e3,Hn=(i,A,t)=>i%A===0?i/A:(i/A).toFixed(t),gc=(i,A=1)=>i>=NC?`${Hn(i,NC,A)} Gbit/s`:i>=Mn?`${Hn(i,Mn,A)} Mbit/s`:i>=Jn?`${Hn(i,Jn,A)} Kbit/s`:`${i} bit/s`,sc=({width:i,height:A})=>`${i}x${A}`,Bc=i=>i%1e3===0?`${i/1e3} kHz`:i>1e3?`${(i/1e3).toFixed(1)} kHz`:`${i} Hz`,bC=["off","error","warn","info","debug","trace"],oc={OFF:"off"},De=class De{constructor({context:A,logLevel:t,debug:e}){C(this,ii,new Map);C(this,qg,"");C(this,Ii,!1);C(this,oI,"off");I(this,"trace",(...A)=>{});I(this,"debug",(...A)=>{});I(this,"info",(...A)=>{});I(this,"warn",(...A)=>{});I(this,"error",(...A)=>{});I(this,"table",(...A)=>{});I(this,"count",(...A)=>{});r(this,qg,A),r(this,oI,t),r(this,Ii,e||!1),this.setLevel(t),this.setDebug(s(this,Ii))}setDebug(A){r(this,Ii,A);for(const[t,e]of s(this,ii))e.setDebug(A);A?(this.table=console.table.bind(console),this.count=console.count.bind(console)):(this.table=()=>{},this.count=()=>{})}setLevel(A){r(this,oI,A);for(const[e,g]of s(this,ii))g.setLevel(A);const t=bC.indexOf(A);for(const[e,g]of bC.entries())g!=="off"&&(e<=t?this[g]=console[g].bind(console,"%c%s %c%s","font-weight:bold;",g.toUpperCase(),"font-weight:normal;",s(this,qg)):this[g]=()=>{})}createContext(A){const t=s(this,ii).get(A);if(!t){const e=new De({context:`${A}`,logLevel:s(this,oI),debug:s(this,Ii)});return s(this,ii).set(A,e),e}return t}static get(){return s(De,nI)||r(De,nI,new De({context:"Vindral",logLevel:"off"})),s(De,nI)}};ii=new WeakMap,qg=new WeakMap,Ii=new WeakMap,oI=new WeakMap,nI=new WeakMap,C(De,nI);let NA=De;function jA(i){const A=NA.get().createContext(i.context);return function(e,g){const B=String(g.name);function o(...n){i.enter&&A[i.enter](`Enter '${B}'`,D({},n));try{const a=e.call(this,...n);return a instanceof Promise?a.then(Q=>{i.return&&A[i.return](`Return '${B}'`,Q)}).catch(Q=>{i.error&&A[i.error](`Error '${B}'`,Q)}):i.return&&A[i.return](`Return '${B}'`,a),a}catch(a){throw i.error&&A[i.error](`Error '${B}'`,a),a}}return o}}function Rt(){return typeof Symbol.asyncDispose!="symbol"&&Object.defineProperty(Symbol,"asyncDispose",{value:Symbol.for("asyncDispose")}),Symbol.asyncDispose}function LC(){return typeof Symbol.dispose!="symbol"&&Object.defineProperty(Symbol,"dispose",{value:Symbol.for("dispose")}),Symbol.dispose}class nc{constructor(A,t){C(this,Kg);I(this,"value");I(this,"unlocker");this.value=A,this.unlocker=t}unlocked(){var A;return(A=this.unlocker)==null?void 0:A.promise}[LC()](){l(this,Kg,dC).call(this)}[Symbol.dispose](){l(this,Kg,dC).call(this)}}Kg=new WeakSet,dC=function(){this.unlocker.resolve(this.value)};class ac{constructor(A){C(this,gi);C(this,si,new AA);r(this,gi,A),s(this,si).resolve(A)}unsafeValue(){return s(this,gi)}isLocked(){return s(this,si).pending}lock(){return c(this,null,function*(){const A=new AA;A.promise.then(e=>{r(this,gi,e)}).catch(F);const t=s(this,si).promise.then(()=>A);return r(this,si,A),yield t,new nc(s(this,gi),A)})}}gi=new WeakMap,si=new WeakMap;class YA{constructor(A){C(this,nt);C(this,wt);r(this,nt,A),r(this,wt,new AA)}isClosed(){var A;return!((A=s(this,wt))!=null&&A.pending)}current(){return s(this,nt)}value(){var A;return[s(this,nt),(A=s(this,wt))==null?void 0:A.promise]}update(A){var t;if(!((t=s(this,wt))!=null&&t.pending))throw new Error("ObservableValue is closed");r(this,nt,A instanceof Function?A(s(this,nt)):A),s(this,wt).resolve(s(this,nt)),r(this,wt,new AA)}close(){var A;(A=s(this,wt))==null||A.resolve(s(this,nt)),r(this,wt,void 0)}waitFor(A){return c(this,null,function*(){if(A(s(this,nt)))return s(this,nt);for(;;){const[t,e]=this.value();if(!e)throw new Error("ObservableValue was closed while waiting for condition");const g=yield e;if(A(g))return g}})}[Symbol.asyncIterator](){return ce(this,null,function*(){for(;;){const[A,t]=this.value();if(yield A,!t)return;yield new QA(t)}})}}nt=new WeakMap,wt=new WeakMap;const JC=(i,A)=>{const t=D({},i);return typeof t!="object"||A.forEach(e=>{delete t[e]}),t},po=class po{constructor(){I(this,"pendingTimeouts",new Set);I(this,"pendingIntervals",new Set);I(this,"clearTimeout",A=>{this.pendingTimeouts.delete(A)&&window.clearTimeout(A)});I(this,"clearInterval",A=>{this.pendingIntervals.delete(A)&&window.clearInterval(A)});I(this,"setTimeout",(A,t,...e)=>{const g=window.setTimeout(()=>{A(...e),this.clearTimeout(g)},t);return this.pendingTimeouts.add(g),g});I(this,"setInterval",(A,t,...e)=>{const g=window.setInterval(()=>{A(...e)},t);return this.pendingIntervals.add(g),g});I(this,"unload",()=>{this.pendingIntervals.forEach(this.clearInterval),this.pendingTimeouts.forEach(this.clearTimeout)})}};I(po,"create",()=>new po);let bA=po;const Xe=(i,A=Date.now())=>{const t=i.length;if(t>0){const e=t-1,g=i[e];g.end||(g.end=A)}},eI=(i,A=Date.now())=>{Xe(i),i.push({start:A})},iI=i=>i.reduce((A,t)=>{var e;return A+(((e=t.end)!=null?e:Date.now())-t.start)},0),MC=(i,A,t=Date.now())=>i.reduce((e,g)=>{var n;const B=Math.max(t-A,g.start),o=(n=g.end)!=null?n:t;return Math.max(0,o-B)+e},0);function HC(i){try{return i()}catch(A){return A}}const vC=i=>{try{return JSON.parse(i)}catch(A){return}};class Cc{constructor(){I(this,"highEntropyValues");var A;(A=self.navigator.userAgentData)==null||A.getHighEntropyValues(["architecture","model","platformVersion","fullVersionList"]).then(t=>{this.highEntropyValues=t}).catch(F)}getUserAgentInformation(){var B,o,n,a,Q,E;const A=window.location.origin,e=!A||A=="null"?"":`${window.location.pathname}${window.location.search}`.substring(0,1e3),g={locationOrigin:window.location.origin,locationPath:e,ancestorOrigins:((B=window.location.ancestorOrigins)==null?void 0:B.length)>0?Array.from(window.location.ancestorOrigins):void 0,hardwareConcurrency:navigator.hardwareConcurrency,deviceMemory:navigator.deviceMemory};if(self.navigator.userAgentData&&this.highEntropyValues){const d=[...(o=this.highEntropyValues.brands)!=null?o:[]];d.sort((R,v)=>R.brand.localeCompare(v.brand));const m=[...(n=this.highEntropyValues.fullVersionList)!=null?n:[]];m.sort((R,v)=>R.brand.localeCompare(v.brand));const y=m.map(R=>R.version),f=d.map(R=>R.brand),G=d.map(R=>R.version),b=parseInt((Q=(a=this.highEntropyValues.platformVersion)==null?void 0:a.split(".")[0])!=null?Q:"1",10);return D({userAgentLegacy:window.navigator.userAgent,ua:{browser:{brands:f,fullVersionBrands:y,majorVersions:G},device:this.highEntropyValues.model||"Other",os:{family:this.highEntropyValues.platform||"Other",version:(E=this.highEntropyValues.platformVersion)!=null?E:"1",major_version:Number.isFinite(b)?b:0}}},g)}else return D({userAgent:window.navigator.userAgent},g)}}const qC=()=>{const i=[...Array(256).keys()].map(t=>t.toString(16).padStart(2,"0")),A=crypto.getRandomValues(new Uint8Array(16));return A[6]=A[6]&15|64,A[8]=A[8]&63|128,[...A.entries()].map(([t,e])=>[4,6,8,10].includes(t)?`-${i[e]}`:i[e]).join("")},he=i=>c(null,null,function*(){return new Promise(A=>setTimeout(A,i))}),vn=(t,...e)=>c(null,[t,...e],function*(i,A=new Error("Timeout")){return new Promise((g,B)=>setTimeout(()=>B(A),i))}),Qc=(i,A)=>c(null,null,function*(){throw yield i,new Error(A)});class KC extends st{constructor(t){super();I(this,"config");I(this,"hlsUrl");I(this,"element");I(this,"connectingTimeout");I(this,"castingAvailable",!1);I(this,"updateAuthenticationToken",t=>{this.config.authenticationToken=t,this.hlsUrl=this.getHlsUrl(),this.castingAvailable&&(this.element.src=this.hlsUrl)});I(this,"unload",()=>{this.element&&(this.element.removeEventListener("webkitplaybacktargetavailabilitychanged",this.onAirPlayAvailable),this.element.removeEventListener("webkitcurrentplaybacktargetiswirelesschanged",this.onAirPlayPlaybackChanged),this.element.remove())});I(this,"onAirPlayAvailable",t=>{switch(t.availability){case"available":{this.castingAvailable=!0,this.element.src!==this.hlsUrl&&this.checkHlsUrl(this.hlsUrl).then(g=>{g&&(this.element.src=this.hlsUrl,this.emit("available"))});break}case"not-available":this.castingAvailable=!1;break}});I(this,"onAirPlayPlaybackChanged",()=>{window.clearTimeout(this.connectingTimeout),this.element.webkitCurrentPlaybackTargetIsWireless?(this.emit("connected"),this.element.style.display="block",this.element.paused&&this.element.play()):(this.emit("disconnected"),this.element.pause(),this.element.src="",this.element.src=this.hlsUrl,this.element.style.display="none")});this.config=t,this.hlsUrl=this.getHlsUrl(),this.element=document.createElement("video"),this.element.style.position="absolute",this.element.style.top="0",this.element.style.bottom="0",this.element.style.left="0",this.element.style.right="0",this.element.style.width="100%",this.element.style.height="100%",this.element.style.zIndex="1001",this.element.style.display="none",this.element.id="vindral-airplay-element",this.element.slot="overlay",this.element.playsInline=!0,this.element.controls=!0,this.element.preload="metadata",this.element.addEventListener("webkitplaybacktargetavailabilitychanged",this.onAirPlayAvailable),this.element.addEventListener("webkitcurrentplaybacktargetiswirelesschanged",this.onAirPlayPlaybackChanged),this.config.container.appendChild(this.element)}get casting(){return this.element.webkitCurrentPlaybackTargetIsWireless}set channelId(t){}showPlaybackTargetPicker(){this.element.paused&&(this.element.play(),this.connectingTimeout=window.setTimeout(()=>{this.casting||(this.element.pause(),this.element.src="",this.element.src=this.hlsUrl)},3e4)),this.element.webkitShowPlaybackTargetPicker()}static isAirPlaySupported(){return!!window.WebKitPlaybackTargetAvailabilityEvent}getHlsUrl(){const t=new URL(`/api/hls?channelId=${this.config.channelId}`,this.config.url);return this.config.authenticationToken&&t.searchParams.set("authenticationToken",this.config.authenticationToken),t.toString()}checkHlsUrl(t){return c(this,null,function*(){try{return(yield fetch(t,{method:"HEAD"})).ok}catch(e){return!1}})}}class YC extends st{constructor(t){super();I(this,"state","not casting");I(this,"config");I(this,"unloaded",!1);I(this,"updateAuthenticationToken",t=>{this.config&&(this.config.options.authenticationToken=t,this.send({type:"updateAuthToken",token:t}))});I(this,"unload",()=>{var t;this.unloaded=!0,(t=this.getSession())==null||t.removeMessageListener("urn:x-cast:com.vindral.castdata",this.onMessage)});I(this,"init",()=>c(this,null,function*(){return new Promise((t,e)=>{let g=!1;const B=setTimeout(()=>{g=!0,e()},1e4);window.__onGCastApiAvailable=o=>{if(g){g=!1;return}if(clearTimeout(B),!o)return e();setTimeout(()=>{try{this.onGCastApiAvailable(),t()}catch(n){e()}},1e3)},this.castLibrariesAdded()&&window.cast?window.__onGCastApiAvailable(!0):this.verifyCastLibraries()})}));I(this,"start",()=>c(this,null,function*(){var t;yield(t=this.getInstance())==null?void 0:t.requestSession()}));I(this,"stop",()=>{var t;(t=this.getSession())==null||t.endSession(!0)});I(this,"getReceiverName",()=>{var t,e;return((e=(t=this.getSession())==null?void 0:t.getCastDevice())==null?void 0:e.friendlyName)||void 0});I(this,"onGCastApiAvailable",()=>{var B;const t=this.getInstance();if(!t)throw"cast context should exist";const e=t.getSessionState(),g=((B=this.config)==null?void 0:B.receiverApplicationId)||"A5452297";t.setOptions({receiverApplicationId:g,autoJoinPolicy:chrome.cast.AutoJoinPolicy.TAB_AND_ORIGIN_SCOPED,resumeSavedSession:!0}),t.addEventListener(cast.framework.CastContextEventType.SESSION_STATE_CHANGED,this.onSessionStateChanged),e===cast.framework.SessionState.SESSION_STARTED&&setTimeout(()=>{this.state="casting",this.emit("resumed")})});I(this,"send",t=>{var e;(e=this.getSession())==null||e.sendMessage("urn:x-cast:com.vindral.castdata",t)});I(this,"onMessage",(t,e)=>{if(t==="urn:x-cast:com.vindral.castdata")try{const g=JSON.parse(e);switch(g.type){case"metadata":this.emit("metadata",g.metadata);break;case"serverWallclockTime":this.emit("server wallclock time",g.serverWallclockTime);break;default:break}}catch(g){}});I(this,"onSessionStarted",()=>{var t;(t=this.getSession())==null||t.addMessageListener("urn:x-cast:com.vindral.castdata",this.onMessage),this.send({type:"start",config:this.config})});I(this,"onSessionStateChanged",t=>{if(!this.unloaded)switch(t.sessionState){case cast.framework.SessionState.SESSION_START_FAILED:this.state="not casting",this.emit("failed");break;case cast.framework.SessionState.SESSION_ENDED:this.state="not casting",this.emit("disconnected");break;case cast.framework.SessionState.SESSION_ENDING:break;case cast.framework.SessionState.SESSION_RESUMED:this.onSessionStarted(),this.state="casting",this.emit("resumed");break;case cast.framework.SessionState.SESSION_STARTED:this.onSessionStarted(),this.state="casting",this.emit("connected");break;case cast.framework.SessionState.SESSION_STARTING:break}});I(this,"getInstance",()=>{var t;return(t=window.cast)==null?void 0:t.framework.CastContext.getInstance()});I(this,"getSession",()=>{var t;return(t=this.getInstance())==null?void 0:t.getCurrentSession()});I(this,"castLibrariesAdded",()=>!!(document.querySelector("#vindralCastFrameworkLib")&&document.querySelector("#vindralCastSenderLib")));I(this,"verifyCastLibraries",()=>{if(this.castLibrariesAdded())return;const t=document.createElement("script");t.type="text/javascript",t.id="vindralCastFrameworkLib",t.src="//www.gstatic.com/cast/sdk/libs/sender/1.0/cast_framework.js",document.head.appendChild(t);const e=document.createElement("script");e.type="text/javascript",e.id="vindralCastSenderLib",e.src="//www.gstatic.com/cv/js/sender/v1/cast_sender.js",document.head.appendChild(e)});this.config=t}get casting(){return this.state==="casting"}get volume(){var t,e;return(e=(t=this.getSession())==null?void 0:t.getVolume())!=null?e:0}set volume(t){var e;(e=this.getSession())==null||e.setVolume(t)}get language(){var t,e;return(e=(t=this.config)==null?void 0:t.options)==null?void 0:e.language}set language(t){this.config&&(this.config.options.language=t,this.send({type:"setLanguage",language:t}))}get channelId(){var t;return((t=this.config)==null?void 0:t.options.channelId)||""}set channelId(t){this.config&&(this.config.options.channelId=t,this.send({type:"setChannelId",channelId:t}))}}const qn=i=>{switch(i){case"h264":case"av1":return"video";case"aac":case"opus":case"mp3":return"audio";case"webvtt":return"text";default:throw new Error("Unknown codec")}};function Kn(i){if(i.startsWith("opus"))return"opus";if(i.startsWith("mp4a"))return"aac";if(i.startsWith("avc1"))return"h264";if(i.startsWith("av01"))return"av1";if(i.startsWith("webvtt"))return"webvtt"}function TC(i){return!(typeof i.edges[0]=="string"||i.channels[0]&&!("catalog"in i.channels[0]))}function PC(i){return i.tracks.filter(A=>!!A.codec).filter(A=>Kn(A.codec||"")).map((A,t)=>{const e=A.codec,g=A.bitrate;lA(e,"codec is required"),lA(g!=null,"bitrate is required");const B=Kn(e);if(lA(B,"codec is required"),qn(B)==="audio"){const o=A.samplerate||0,n=A.channelConfig==="stereo"?2:1;return{track:A,id:t,codec:B,codecString:e,bitRate:g,channels:n,sampleRate:o,language:A.language}}return qn(B)==="text"?{track:A,id:t,bitRate:0,codec:B,kind:"subtitles",codecString:e,label:A.label,language:A.language}:(lA(A.width,"width is required"),lA(A.height,"width is required"),lA(A.framerate,"framerate is required"),{track:A,id:t,codec:B,bitRate:g,codecString:e,width:A.width,height:A.height,frameRate:A.framerate})}).sort((A,t)=>A.bitRate-t.bitRate)}const je=i=>"width"in i&&typeof i.width=="number",ze=i=>"sampleRate"in i&&typeof i.sampleRate=="number",de=i=>{switch(i.codec){case"opus":return'audio/mp4; codecs="opus"';case"mp3":return"audio/mpeg";case"webvtt":return"text/vtt";case"aac":return i.codecString?`audio/mp4; codecs="${i.codecString}"`:"audio/mp4";case"h264":return i.codecString?`video/mp4; codecs="${i.codecString}"`:"video/mp4";case"av1":return i.codecString?`video/mp4; codecs="${i.codecString}"`:"video/mp4"}},le=()=>Number.MAX_SAFE_INTEGER,bB=()=>({width:Number.MAX_SAFE_INTEGER,height:Number.MAX_SAFE_INTEGER}),xC=i=>!(typeof i!="object"||i===null||!("type"in i)),rc={sizeBasedResolutionCapEnabled:!0,pictureInPictureEnabled:!0,abrEnabled:!0,burstEnabled:!1,mseEnabled:!0,mseOpusEnabled:!0,muted:!1,volume:1,minBufferTime:1500,maxBufferTime:1500,logLevel:oc.OFF,maxSize:bB(),maxVideoBitRate:le(),maxAudioBitRate:le(),maxInitialBitRate:2.5*1e3*1e3,tags:[],media:"audio+video",poster:!0,reconnectHandler:i=>i.reconnectRetries<30,iosWakeLockEnabled:!1,telemetryEnabled:!0,iosMediaElementEnabled:!1,pauseSupportEnabled:!0,webcodecsEnabled:!1,webcodecsHardwareAcceleration:"no-preference",offscreenCanvasEnabled:!1,advanced:{wasmDecodingConstraint:{bitRate:Number.MAX_SAFE_INTEGER,width:1280,height:1280}},videoCodecs:["av1","h264"],webtransportEnabled:!0},WC="connection_failed",OC="connection_failed_will_not_attempt_again",VC="authentication_error",ZC="authentication_expired",XC="channel_not_found",jC="no_incoming_data_error",zC="connection_inactivity",Ec="missing_init_segment",cc="no_track_context",hc="invalid_track_context_state",_C="disconnected_by_edge",dc="decoder_error",lc="audio_player_error",uc="media_source_error",wc="webgl_context_lost_error",Dc="access_forbidden",mc="channel_switch_failed",Sc="drm_error";class O extends Error{constructor(t,e,g={}){super(t);I(this,"props");I(this,"extra",{});I(this,"code",()=>this.props.code);I(this,"isFatal",()=>this.props.isFatal);I(this,"source",()=>this.props.source);I(this,"type",()=>{var t;return(t=this.props.type)!=null?t:"external"});I(this,"toStringifiable",()=>{var g;const t=this.source(),e=t instanceof Error?t.stack:this.stack;return z(D({},this.extra),{code:this.props.code,isFatal:this.props.isFatal,type:this.props.type,message:this.message,sourceMessage:(g=this.source())==null?void 0:g.message,stack:e})});this.props=e,this.extra=g,Object.setPrototypeOf(this,new.target.prototype)}}const yc=(i,A)=>new O("MediaElement Error",{isFatal:i,code:"media_element_error",source:A},{mediaErrorCode:A.code}),$C=(i,A)=>new O("Decoder Error",{isFatal:i,code:dc,source:A,type:"internal"}),AQ=(i,A)=>new O("Audio Player Error",{isFatal:i,code:lc,source:A,type:"internal"}),fc=(i,A)=>new O(`No init segment for rendition id ${i} for channel ${A}`,{isFatal:!1,code:Ec,type:"internal"}),tQ=(i,A,t,e)=>new O("MediaSource Error",{isFatal:i,code:uc,source:A,type:"internal"},{type:e,consecutiveErrorsCount:t}),LB=(i,A)=>new O(`No track context for ${i}${A?`, rendition id ${A}`:""}`,{isFatal:!1,code:cc,type:"internal"}),pc=(i,A)=>new O(`Track context is in an invalid state for ${i}${A?`, rendition id ${A}`:""}`,{isFatal:!1,code:hc,type:"internal"}),Fc=()=>new O("Web Audio Context resume timeout",{isFatal:!1,code:"web_audio_context_resume_timeout"}),pg=i=>new O("Disconnected From Edge Server",{type:"external",source:i,isFatal:!1,code:_C}),JB=i=>new O("Authentication Failed",{isFatal:!0,code:VC,source:i}),kc=i=>new O("Authentication Expired",{isFatal:!0,code:ZC,source:i}),Gc=(i,A)=>new O("Connection closed due to inactivity",{isFatal:!1,code:zC,source:A,type:i}),eQ=(i,A)=>new O("Channel not found",{isFatal:!1,code:XC,source:A,type:i}),Rc=i=>new O("No Incoming Data",{isFatal:!1,code:jC,source:i}),Uc=i=>new O("Connection attempt failed",{isFatal:!1,code:WC,source:i}),iQ=()=>new O("Connection failed - no more reconnect attempts",{isFatal:!0,code:OC}),Nc=i=>new O("WebGL Context Lost",{isFatal:!1,code:wc,source:i,type:"internal"}),IQ=i=>new O(i,{isFatal:!0,code:Dc}),gQ=i=>new O(`Channel switch to '${i}' failed`,{isFatal:!1,code:mc}),sQ=(i,A=!1,t)=>new O(i,{isFatal:A,code:Sc,source:t});class MB{constructor(A,t,e,g){I(this,"keySystem");I(this,"licenseServerUrl");I(this,"certificate");I(this,"headers",{});I(this,"queryParams",{});C(this,Bi);C(this,oi);r(this,Bi,t),this.keySystem=A,this.licenseServerUrl=e,this.certificate=g}get statistics(){return{keySystem:s(this,Bi).keySystem,licenseServerUrl:this.licenseServerUrl,mediaKeySystemConfiguration:s(this,Bi).getConfiguration()}}getMediaKeys(){return c(this,null,function*(){return s(this,oi)?s(this,oi):(r(this,oi,yield s(this,Bi).createMediaKeys()),s(this,oi))})}requestLicense(A){return c(this,null,function*(){const t=new URL(this.licenseServerUrl);for(const[B,o]of Object.entries(this.queryParams))t.searchParams.append(B,o);const e=yield fetch(t,{method:"POST",body:A,headers:D({"Content-Type":"application/octet-stream"},this.headers)});if(!e.ok)throw new Error(`Failed to fetch license: ${e.statusText}`);return yield e.arrayBuffer()})}}Bi=new WeakMap,oi=new WeakMap;function BQ(i){const A=window.atob(i.replace(/-/g,"+").replace(/_/g,"/"));let t="";for(let e=0;e<A.length;e++)t+=("0"+A.charCodeAt(e).toString(16)).substr(-2);return t}function bc(i){let A="";for(let t=0;t<i.length;t+=2)A+=String.fromCharCode(parseInt(i.substr(t,2),16));return window.btoa(A).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function Lc(i,A){if(i.byteLength!==A.byteLength)return!1;const t=new Uint8Array(i),e=new Uint8Array(A);for(let g=0;g<t.length;g++)if(t[g]!==e[g])return!1;return!0}class Jc extends MB{constructor(t,e){super("clearkey",t,"");C(this,Yg);r(this,Yg,e)}handleLicenseRequest(t){const e=new Uint8Array(t),g=String.fromCharCode(...e),B=JSON.parse(g),o=[];for(let Q=0;Q<B.kids.length;Q++){const E=B.kids[Q];if(E){const h=BQ(E).toLowerCase(),d=s(this,Yg)[h];d&&o.push({kty:"oct",alg:"A128KW",kid:E,k:bc(d)})}}const n=JSON.stringify({keys:o,type:B.type});return new TextEncoder().encode(n)}}Yg=new WeakMap;const oQ={playready:["150","2000","3000"],widevine:["SW_SECURE_CRYPTO","SW_SECURE_DECODE","HW_SECURE_CRYPTO","HW_SECURE_DECODE","HW_SECURE_ALL"],fairplay:[""],clearkey:[""]},Yn={initDataTypes:["cenc"],audioCapabilities:[{contentType:'audio/mp4; codecs="mp4a.40.2"'}],videoCapabilities:[{contentType:'video/mp4; codecs="avc1.42c01f"'}]},Mc={fairplay:{keySystem:"com.apple.fps",supportedConfig:{initDataTypes:["sinf"],videoCapabilities:[{contentType:'video/mp4; codecs="avc1.42c01f"'}]}},playready:{keySystem:"com.microsoft.playready",supportedConfig:Yn},widevine:{keySystem:"com.widevine.alpha",supportedConfig:Yn},clearkey:{keySystem:"org.w3.clearkey",supportedConfig:Yn}},nQ=(i,A)=>c(null,null,function*(){return navigator.requestMediaKeySystemAccess(i,[A]).catch(()=>{})}),aQ=(i,A,t,e,g,B)=>c(null,null,function*(){let o;for(const n of e){const a=t==null?void 0:t.map(E=>z(D({},E),{robustness:n,contentType:B?`${g==="audioCapabilities"?"audio/mp4":"video/mp4"}; codecs="${B}"`:E.contentType}));if(!(yield nQ(i,{initDataTypes:A,[g]:a})))break;o=a}return o}),Hc=(i,A,t,e)=>c(null,null,function*(){const{keySystem:g,supportedConfig:B}=Mc[i],{initDataTypes:o,videoCapabilities:n,audioCapabilities:a}=B,Q=e==null?void 0:e[i],E=(Q==null?void 0:Q.videoRobustness)||oQ[i],h=(Q==null?void 0:Q.audioRobustness)||oQ[i],[d,m]=yield Promise.all([aQ(g,o,n,E,"videoCapabilities",A),aQ(g,o,a,h,"audioCapabilities",t)]);return!d&&!m?void 0:yield nQ(g,{initDataTypes:o,videoCapabilities:d,audioCapabilities:m})}),vc=(i,A,t,e)=>c(null,null,function*(){let g;for(const B of i)if(g=yield Hc(B,A,t,e),g)return{keySystem:B,mediaKeySystemAccess:g}});class qc extends MB{constructor(A,t,e){super("fairplay",A,t,e)}}const Kc=i=>{var n,a,Q,E;const A=String.fromCharCode(...new Uint16Array(i)),t=new window.DOMParser().parseFromString(A,"application/xml"),e=t.getElementsByTagName("HttpHeaders")[0];let g={};if(e){const h=e.getElementsByTagName("name"),d=e.getElementsByTagName("value");for(let m=0;m<h.length;m++){const y=(n=h[m])==null?void 0:n.childNodes[0],f=(a=d[m])==null?void 0:a.childNodes[0];y!=null&&y.nodeValue&&f&&f.nodeValue&&(g[y.nodeValue]=f.nodeValue)}}const B=t.getElementsByTagName("Challenge")[0];let o;return B&&((Q=B.childNodes[0])!=null&&Q.nodeValue)&&(o=window.atob((E=B.childNodes[0])==null?void 0:E.nodeValue)),t.querySelector("parsererror")&&(g={"Content-Type":"text/xml; charset=utf-8",SOAPAction:'"http://schemas.microsoft.com/DRM/2007/03/protocols/AcquireLicense"'},o=i),{headers:g,message:o}};class Yc extends MB{constructor(A,t){super("playready",A,t)}requestLicense(A){return c(this,null,function*(){lA(this.licenseServerUrl,"No license server URL set");const t=new URL(this.licenseServerUrl);for(const[B,o]of Object.entries(this.queryParams))t.searchParams.append(B,o);const e=Kc(A),g=yield fetch(t,{method:"POST",headers:D(D({},e.headers),this.headers),body:e.message});if(!g.ok)throw new Error(`Failed to fetch license: ${g.statusText}`);return yield g.arrayBuffer()})}}class Tc extends MB{constructor(A,t){super("widevine",A,t)}}const Pc=5e3;class CQ{constructor(A,t,e={}){C(this,DA);C(this,gA);C(this,ni);C(this,$t);C(this,Dt,new AA);C(this,bt);C(this,GA);C(this,me,new Map);C(this,Se);C(this,Fo,Ln());C(this,aI);C(this,Tg,A=>{if(s(this,gA).info("Received DRM data",{drmData:A}),window.clearTimeout(s(this,aI)),s(this,GA)){const t=l(this,DA,sE).call(this,A)[s(this,GA).keySystem];t&&(s(this,GA).licenseServerUrl=t)}s(this,Dt).resolve(A)});C(this,Pg,A=>{s(this,gA).info("Encrypted event received",{event:A}),l(this,DA,AE).call(this,A)});C(this,ko,A=>{var B,o;s(this,gA).debug("Session message received",{event:A});const t=A.target,e=A.message;if(!s(this,me).get(t)){s(this,gA).error("No active session found for event",{event:A});return}s(this,gA).debug("Requesting license for session",{sessionId:t.sessionId,licenseServerUrl:(B=s(this,GA))==null?void 0:B.licenseServerUrl}),(o=s(this,GA))==null||o.requestLicense(e).then(n=>{s(this,gA).debug("License received for session",{sessionId:t.sessionId}),t.update(n).catch(a=>{l(this,DA,FB).call(this,{message:"Failed to update session with license",isFatal:!1,error:a})})}).catch(n=>{l(this,DA,FB).call(this,{message:"Failed to request license",isFatal:!1,error:n})})});C(this,Go,A=>{const t=A.target;s(this,gA).debug("Key status changed for session",{sessionId:t.sessionId}),t.keyStatuses.forEach((e,g)=>{const B=BQ(window.btoa(String.fromCharCode(...new Uint8Array(g))));s(this,gA).debug("Key status",{base64kid:B,status:e})})});C(this,Ro,A=>c(this,null,function*(){const t=l(this,DA,gE).call(this,A);s(this,gA).debug("Prioritized key system list",{keySystemList:t});const e=yield vc(t,A.videoCodec,A.audioCodec,{widevine:s(this,bt).widevine,playready:s(this,bt).playready});if(!e)return s(this,gA).warn("No supported key system found"),null;s(this,gA).debug("Supported key system found",e.mediaKeySystemAccess.getConfiguration());const{keySystem:g,mediaKeySystemAccess:B}=e;let o=null;return g==="clearkey"?(lA(A.clearkeys,"No clearkeys found"),o=new Jc(B,A.clearkeys)):g==="playready"?(lA(A.playreadyLicenseUrl,"No playreadyLicenseUrl found"),o=new Yc(B,A.playreadyLicenseUrl)):g==="widevine"?(lA(A.widevineLicenseUrl,"No widevineLicenseUrl found"),o=new Tc(B,A.widevineLicenseUrl)):g==="fairplay"&&(lA(A.fairplayLicenseUrl,"No fairplayLicenseUrl found"),lA(A.fairplayCertificate,"No fairplayCertificate found"),o=new qc(B,A.fairplayLicenseUrl,A.fairplayCertificate)),o&&(o.headers=s(this,bt).headers||{},o.queryParams=s(this,bt).queryParams||{}),o}));r(this,ni,A),r(this,gA,t),r(this,bt,e),s(this,ni).on("received drm data",s(this,Tg))}static isSupported(){return!!navigator.requestMediaKeySystemAccess}attach(A){r(this,$t,A),s(this,gA).info("Media element attached"),s(this,$t).addEventListener("encrypted",s(this,Pg))}getStatistics(){var A,t;return!s(this,Dt).resolved&&!((A=s(this,GA))!=null&&A.statistics)?null:D(D({},s(this,Dt).resolved),(t=s(this,GA))==null?void 0:t.statistics)}unload(){var A;s(this,gA).info("Unloading EncryptedMediaExtensions"),s(this,ni).off("received drm data",s(this,Tg)),(A=s(this,$t))==null||A.removeEventListener("encrypted",s(this,Pg)),s(this,me).forEach((t,e)=>{e.close()}),s(this,me).clear(),r(this,Se,void 0),r(this,GA,void 0)}set headers(A){s(this,bt).headers=A,s(this,GA)&&(s(this,GA).headers=A)}set queryParams(A){s(this,bt).queryParams=A,s(this,GA)&&(s(this,GA).queryParams=A)}onChannelSwitch(){if(!s(this,Dt).resolved){s(this,gA).debug("DRM is not used, skipping channel switch handling");return}$E()&&s(this,Fo).platform.safariVersion<18&&l(this,DA,FB).call(this,{message:"DRM channel switch not supported on Safari < 18",isFatal:!0}),window.clearTimeout(s(this,aI));const A=s(this,Dt).resolved;r(this,Dt,new AA),r(this,aI,window.setTimeout(()=>{s(this,Dt).resolve(A)},Pc))}}gA=new WeakMap,ni=new WeakMap,$t=new WeakMap,Dt=new WeakMap,bt=new WeakMap,GA=new WeakMap,me=new WeakMap,Se=new WeakMap,Fo=new WeakMap,aI=new WeakMap,Tg=new WeakMap,Pg=new WeakMap,DA=new WeakSet,AE=function(A){return c(this,null,function*(){try{yield l(this,DA,tE).call(this),s(this,gA).debug("Media keys initialization completed"),yield l(this,DA,eE).call(this,A.initData,A.initDataType)}catch(t){l(this,DA,FB).call(this,{message:"Failed to handle encrypted event",isFatal:!0,error:t})}})},tE=function(){return c(this,null,function*(){var t;s(this,gA).debug("Initializing media keys");const A=yield s(this,Dt).promise;if((t=s(this,$t))!=null&&t.mediaKeys){s(this,gA).debug("Media keys already set on media element");return}if(s(this,Se)){s(this,gA).debug("Media keys initialization already in progress, waiting for completion"),yield s(this,Se);return}r(this,Se,c(this,null,function*(){const e=yield s(this,Ro).call(this,A);s(this,gA).debug("CDM obtained",{cdm:e}),lA(s(this,$t),"No media element found"),lA(e,"No CDM found");const g=yield e.getMediaKeys();e.certificate&&(yield l(this,DA,IE).call(this,g,e.certificate)),s(this,gA).debug("Setting media keys on media element"),yield s(this,$t).setMediaKeys(g),r(this,GA,e)})),yield s(this,Se)})},eE=function(A,t){return c(this,null,function*(){lA(s(this,GA),"No CDM manager found");const e=yield s(this,GA).getMediaKeys();if(!A||!l(this,DA,iE).call(this,A)){s(this,gA).debug("Duplicate initData, no need to create new session",{initData:A});return}const g=e.createSession();s(this,gA).debug("Creating new session",{session:g}),g.addEventListener("keystatuseschange",s(this,Go)),g.closed.then(B=>{s(this,gA).info("Session is closed",{reason:B})}),g.addEventListener("message",s(this,ko)),s(this,me).set(g,A),s(this,gA).debug("Generating request for session",{session:g,initDataType:t,initData:A}),yield g.generateRequest(t,A)})},iE=function(A){for(const[t,e]of s(this,me))if(Lc(A,e))return!1;return!0},ko=new WeakMap,Go=new WeakMap,IE=function(A,t){return c(this,null,function*(){try{s(this,gA).debug("Setting server certificate",{certificate:t}),(yield A.setServerCertificate(t))||s(this,gA).warn("Server certificates are not supported by the CDM.")}catch(e){s(this,gA).error("Failed to set server certificate",{error:e})}})},FB=function(A){const{message:t,isFatal:e,error:g}=A;s(this,gA).error(t,{error:g}),s(this,ni).emit("error",sQ(t,e,g))},Ro=new WeakMap,gE=function(A){const t=[];return A.clearkeys&&t.push("clearkey"),A.playreadyLicenseUrl&&t.push("playready"),A.widevineLicenseUrl&&t.push("widevine"),A.fairplayLicenseUrl&&A.fairplayCertificate&&t.push("fairplay"),t},sE=function(A){return{fairplay:A.fairplayLicenseUrl,playready:A.playreadyLicenseUrl,widevine:A.widevineLicenseUrl,clearkey:void 0}};const xc=7,Wc=8,Oc=i=>{const A=i.getUint32(0,!1),t=i.getUint8(0)<<16|i.getUint16(1,!1);let e=0;return t===1?e+=3:A===1&&(e+=4),e},Vc=i=>Oc(new DataView(i,0))!==0,QQ=(i,A=0)=>{for(let t=A;t<i.byteLength-4;t++){const e=i.getUint32(t)===1,g=(i.getUint8(t)<<16|i.getUint16(t+1))===1;if(e||g)return{position:t,nalPrefixSize:e?4:3}}},Zc=i=>i&31,Xc=(i,A)=>{const t=new DataView(i,0);let e=QQ(t);for(;e;){const{position:g,nalPrefixSize:B}=e,o=QQ(t,g+4),n=o?o.position-g-B:void 0;if(!A(new DataView(i,g+B,n),B))return;e=o}},rQ=i=>{const A=[],t=[];if(!Vc(i)){const e=new DataView(i,0),g=e.getUint8(5)&31;let B=6;for(let n=0;n<g;n++){const a=e.getUint16(B);A.push(i.slice(B+2,B+2+a)),B+=a+2}const o=e.getUint8(B);B+=1;for(let n=0;n<o;n++){const a=e.getUint16(B);t.push(i.slice(B+2,B+2+a)),B+=a+2}return{sequenceParameterSets:A,pictureParameterSets:t}}return Xc(i,e=>{const g=e.byteOffset+e.byteLength;switch(Zc(e.getUint8(0))){case Wc:t.push(e.buffer.slice(e.byteOffset,g));break;case xc:A.push(e.buffer.slice(e.byteOffset,g));break}return!0}),{sequenceParameterSets:A,pictureParameterSets:t}},jc=i=>{var y;const A=new DataView(i),t=A.getUint8(1),e=A.getUint8(2),g=A.getUint8(3),B=new XA(i,32);B.readUnsignedExpGolomb();let o=1;switch(t){case 100:case 110:case 122:case 244:case 44:case 83:case 86:case 118:case 128:case 138:case 144:{if(o=B.readUnsignedExpGolomb(),o===3&&B.readBits(1),B.readUnsignedExpGolomb()+8,B.readUnsignedExpGolomb()+8,B.readBit(),B.readBit()){for(let G=0;G<(o!=3?8:12);G++)if(B.readBit()){const R=G<6?16:64;let v=0,P=8,_=8;for(let T=0;T<R;T++)_!=0&&(v=B.readSignedExpGolomb(),_=(P+v+256)%256),P=_==0?P:_}}break}}B.readUnsignedExpGolomb();const n=B.readUnsignedExpGolomb();if(n==0)B.readUnsignedExpGolomb();else if(n==1)throw new Error("Unhandled case");B.readUnsignedExpGolomb(),B.readBit();const a=B.readUnsignedExpGolomb(),Q=B.readUnsignedExpGolomb(),E=B.readBit();E===0&&B.readBit(),B.readBit();let h=a+1,d=Q+1;if(d*=2-E,d*=16,h*=16,B.readBit()){const f=o==1?1:0,b=1<<(o==1||o==2?1:0),R=2-E<<f,v=B.readUnsignedExpGolomb()*b,P=B.readUnsignedExpGolomb()*b,_=B.readUnsignedExpGolomb()*R,T=B.readUnsignedExpGolomb()*R;h-=v+P,d-=_+T}let m={numerator:1,denumerator:1};return B.readBit()&&B.readBit()&&(m=(y=zc[B.readBits(8)])!=null?y:{numerator:0,denumerator:0}),{width:h,height:d,pixelAspectRatio:m,profileIdc:t,constraintFlags:e,levelIdc:g}},zc=[{numerator:0,denumerator:0},{numerator:1,denumerator:1},{numerator:12,denumerator:11},{numerator:10,denumerator:11},{numerator:16,denumerator:11},{numerator:40,denumerator:33},{numerator:24,denumerator:11},{numerator:20,denumerator:11},{numerator:32,denumerator:11},{numerator:80,denumerator:33},{numerator:18,denumerator:11},{numerator:15,denumerator:11},{numerator:64,denumerator:33},{numerator:160,denumerator:99},{numerator:4,denumerator:3},{numerator:3,denumerator:2},{numerator:2,denumerator:1}],_c=184549376;function $c(i){const A=new SA(i),t=Ah(A);(t.flags&_c)!==0&&th(A);const e=eh(A);if(String.fromCharCode(...e.frameId)==="TXXX"){const B=new SA(A.readBytes(e.size));return{header:t,txx:ih(B)}}}function Ah(i){const A=i.readBytes(3),t=i.readUint8(),e=i.readUint8(),g=i.readUint8(),B=i.readUint32();return{id:A,majorVersion:t,minorVersion:e,flags:g,size:B}}function th(i){const A=i.readUint32();return i.readBytes(A-4),{}}function eh(i){const A=i.readBytes(4),t=i.readUint32(),e=i.readUint16();return{frameId:A,size:t,flags:e}}function ih(i){const A=i.readUint8(),t=i.readUtf8String(),e=i.readUtf8String();return{encoding:A,description:t,value:e}}function EQ(i){let A=i.readUint32();const t=String.fromCharCode(i.readUint8(),i.readUint8(),i.readUint8(),i.readUint8());return A===1&&(A=i.readUint64()-8),{size:A-8,type:t}}function Ih(i,A){const t=EQ(A),e=new SA(A.readBytes(t.size));if(t.type!==i.type)throw new Error(`invalid error type: ${t.type}, expected ${i.type}`);const g=i.decodeData(e);return e.readRemaining(),g}function Ut(i){const A=i.readUint8(),t=i.readUint24();return{version:A,flags:t}}const CI=class CI{constructor({timescale:A,presentationTime:t,presentationTimeDelta:e,schemeIdUri:g,value:B,eventDuration:o,id:n,data:a}){I(this,"type",CI.type);I(this,"timescale");I(this,"presentationTime");I(this,"presentationTimeDelta");I(this,"schemeIdUri");I(this,"value");I(this,"eventDuration");I(this,"id");I(this,"data");this.timescale=A,this.presentationTime=t,this.presentationTimeDelta=e,this.schemeIdUri=g,this.value=B,this.eventDuration=o,this.id=n,this.data=a}static decodeData(A){const{version:t}=Ut(A);switch(t){case 1:{const e=A.readUint32(),g=A.readUint64(),B=A.readUint32(),o=A.readUint32(),n=A.readUtf8String(),a=A.readUtf8String(),Q=A.remaining(),E=A.readBytes(Q);return new CI({timescale:e,presentationTime:g,eventDuration:B,id:o,schemeIdUri:n,value:a,data:E})}case 0:{const e=A.readUtf8String(),g=A.readUtf8String(),B=A.readUint32(),o=A.readUint32(),n=A.readUint32(),a=A.readUint32(),Q=A.remaining(),E=A.readBytes(Q);return new CI({timescale:B,presentationTimeDelta:o,schemeIdUri:e,value:g,eventDuration:n,id:a,data:E})}default:throw new Error(`unsupported version ${t}`)}}};I(CI,"type","emsg");let HB=CI;const xg=class xg{constructor(A){I(this,"type",xg.type);I(this,"data");this.data=A}static decodeData(A){const t=A.readRemaining();return new xg(t)}};I(xg,"type","mdat");let vB=xg;const Wg=class Wg{constructor(A,t,e){I(this,"type",Wg.type);I(this,"extra");I(this,"byteOffset");I(this,"baseMediaDecodeTime");this.extra=A,this.byteOffset=t,this.baseMediaDecodeTime=e}static decodeData(A){const t=Ut(A),e=A.byteOffset();let g=0;return t.version===1?g=A.readUint64():g=A.readUint32(),new Wg(t,e,g)}};I(Wg,"type","tfdt");let qB=Wg;const gh=1,sh=2,Bh=8,oh=16,nh=32,Og=class Og{constructor(A,t,e,g){I(this,"type",Og.type);I(this,"extra");I(this,"defaultSampleDuration");I(this,"defaultSampleSize");I(this,"defaultSampleFlags");this.extra=A,this.defaultSampleDuration=t,this.defaultSampleSize=e,this.defaultSampleFlags=g}static decodeData(A){const t=Ut(A);let e,g,B;return A.readUint32(),(t.flags&gh)>0&&A.readUint64(),(t.flags&sh)>0&&A.readUint32(),(t.flags&Bh)>0&&(e=A.readUint32()),(t.flags&oh)>0&&(g=A.readUint32()),(t.flags&nh)>0&&(B=A.readUint32()),new Og(t,e,g,B)}};I(Og,"type","tfhd");let KB=Og;const cA=class cA{constructor(A,t,e){I(this,"type",cA.type);I(this,"dataOffset");I(this,"firstSampleFlags");I(this,"samplesCount");I(this,"sampleDurations",[]);I(this,"sampleSizes",[]);I(this,"sampleFlags",[]);I(this,"sampleCts",[]);this.dataOffset=t,this.firstSampleFlags=e,this.samplesCount=A}is_sync_sample(A){const t=cA.FLAG_SAMPLE_FLAG_IS_NON_SYNC|cA.FLAG_SAMPLE_DEPENDS_YES,e=this.sampleFlags[A];if(typeof e!="undefined")return(e&t)===0;if(A===0&&this.firstSampleFlags)return(this.firstSampleFlags&t)===0}static decodeData(A){const{flags:t}=Ut(A),e=A.readUint32();let g,B;t&cA.TRUN_DATA_OFFSET&&(g=A.readUint32()),t&cA.TRUN_FIRST_SAMPLE_FLAGS&&(B=A.readUint32());const o=new cA(e,g,B);for(let n=0;n<e;n++)t&cA.SAMPLE_DURATION&&o.sampleDurations.push(A.readUint32()),t&cA.SAMPLE_SIZE&&o.sampleSizes.push(A.readUint32()),t&cA.SAMPLE_FLAGS&&o.sampleFlags.push(A.readUint32()),t&cA.SAMPLE_CTS&&o.sampleCts.push(A.readUint32());return o}};I(cA,"TRUN_DATA_OFFSET",1),I(cA,"TRUN_FIRST_SAMPLE_FLAGS",4),I(cA,"SAMPLE_DURATION",256),I(cA,"SAMPLE_SIZE",512),I(cA,"SAMPLE_FLAGS",1024),I(cA,"SAMPLE_CTS",2048),I(cA,"FLAG_SAMPLE_FLAG_IS_NON_SYNC",65536),I(cA,"FLAG_SAMPLE_DEPENDS_NO",33554432),I(cA,"FLAG_SAMPLE_DEPENDS_YES",16777216),I(cA,"type","trun");let Fg=cA;const Vg=class Vg{constructor(A,t,e){I(this,"type",Vg.type);I(this,"tfhd");I(this,"tfdt");I(this,"trun");this.tfhd=A,this.tfdt=t,this.trun=e}static decodeData(A){let t,e,g;for(;A.remaining()>0;){const B=Bt(A);B instanceof KB&&(t=B),B instanceof qB&&(e=B),B instanceof Fg&&(g=B)}return new Vg(t,e,g)}};I(Vg,"type","traf");let YB=Vg;const Zg=class Zg{constructor(A){I(this,"type",Zg.type);I(this,"traf");this.traf=A}static decodeData(A){let t;for(;A.remaining()>0;){const e=Bt(A);e instanceof YB&&(t=e)}if(!t)throw new Error("No traf found");return new Zg(t)}};I(Zg,"type","moof");let TB=Zg;const Xg=class Xg{constructor(){I(this,"type",Xg.type)}static decodeData(A){return new Xg}};I(Xg,"type","mvhd");let PB=Xg;const jg=class jg{constructor(A){I(this,"type",jg.type);I(this,"fourCC");this.fourCC=A}mediaType(){switch(this.fourCC){case"vide":return"video";case"soun":return"audio";case"sbtl":return"text";default:throw new Error("Unknown media type")}}static decodeData(A){Ut(A),A.readUint32();const t=String.fromCharCode(...A.readBytes(4));return new jg(t)}};I(jg,"type","hdlr");let xB=jg;const QI=class QI{constructor(A,t,e,g){I(this,"type",QI.type);I(this,"creationTime");I(this,"modificationTime");I(this,"timescale");I(this,"duration");this.creationTime=A,this.modificationTime=t,this.timescale=e,this.duration=g}static decodeData(A){const{version:t}=Ut(A);if(t===1){const n=A.readUint64(),a=A.readUint64(),Q=A.readUint32(),E=A.readUint64();return new QI(n,a,Q,E)}const e=A.readUint32(),g=A.readUint32(),B=A.readUint32(),o=A.readUint32();return new QI(e,g,B,o)}};I(QI,"type","mdhd");let WB=QI;const zg=class zg{constructor(A,t,e,g,B){I(this,"type",zg.type);I(this,"av01");I(this,"avc1");I(this,"mp4a");I(this,"opus");I(this,"codec");this.avc1=A,this.av01=t,this.mp4a=e,this.opus=g,this.codec=B}mediaType(){return this.avc1||this.av01?"video":"audio"}width(){var A;return(A=this.avc1)==null?void 0:A.width}height(){var A;return(A=this.avc1)==null?void 0:A.height}static decodeData(A){Ut(A);const t=A.readUint32();let e,g,B,o,n;for(let a=0;a<t;a++)for(;A.remaining()>0;){const Q=Bt(A);switch(Q.type){case"avc1":e="h264",g=Q;break;case"av01":e="av1",n=Q;break;case"mp4a":e="aac",B=Q;break;case"Opus":e="opus",o=Q;break}}return new zg(g,n,B,o,e)}};I(zg,"type","stsd");let OB=zg;const _g=class _g{constructor(A){I(this,"type",_g.type);I(this,"stsd");this.stsd=A}static decodeData(A){let t;for(;A.remaining()>0;){const e=Bt(A);e instanceof OB&&(t=e)}if(!t)throw new Error("No stsd found");return new _g(t)}};I(_g,"type","stbl");let VB=_g;const $g=class $g{constructor(A){I(this,"type",$g.type);I(this,"stbl");this.stbl=A}static decodeData(A){let t;for(;A.remaining()>0;){const e=Bt(A);e instanceof VB&&(t=e)}if(!t)throw new Error("No stbl found");return new $g(t)}};I($g,"type","minf");let ZB=$g;const As=class As{constructor(A,t,e){I(this,"type",As.type);I(this,"hdlr");I(this,"minf");I(this,"mdhd");this.hdlr=A,this.minf=t,this.mdhd=e}static decodeData(A){let t,e,g;for(;A.remaining()>0;){const B=Bt(A);B instanceof xB&&(t=B),B instanceof ZB&&(e=B),B instanceof WB&&(g=B)}if(!t)throw new Error("No hdlr found");if(!e)throw new Error("No minf found");if(!g)throw new Error("No mdhd found");return new As(t,e,g)}};I(As,"type","mdia");let XB=As;const ts=class ts{constructor(A,t,e,g,B,o,n,a){I(this,"type",ts.type);I(this,"modificationTime");I(this,"creationTime");I(this,"trackId");I(this,"duration");I(this,"alternateGroup");I(this,"volume");I(this,"width");I(this,"height");this.modificationTime=A,this.creationTime=t,this.trackId=e,this.duration=g,this.alternateGroup=B,this.volume=o,this.width=n,this.height=a}static decodeData(A){const t=Ut(A);let e=0,g=0;t.version===1?(e=A.readUint64(),g=A.readUint64()):(e=A.readUint32(),g=A.readUint32());const B=A.readUint32();A.readUint32();const o=A.readUint32();A.readUint32(),A.readUint32(),A.readUint16();const n=A.readUint16(),a=A.readUint16();A.readUint16(),new Array(9).fill(0).map(()=>A.readUint32());const Q=A.readUint16();A.readUint16();const E=A.readUint16();return A.readUint16(),new ts(e,g,B,o,n,a,Q,E)}};I(ts,"type","tkhd");let jB=ts;const es=class es{constructor(A,t){I(this,"type",es.type);I(this,"tkhd");I(this,"mdia");this.tkhd=A,this.mdia=t}static decodeData(A){let t,e;for(;A.remaining()>0;){const g=Bt(A);g instanceof jB&&(t=g),g instanceof XB&&(e=g)}if(!t)throw new Error("No tkhd found");if(!e)throw new Error("No mdia found");return new es(t,e)}};I(es,"type","trak");let zB=es;const is=class is{constructor(A,t){I(this,"type",is.type);I(this,"mvhd");I(this,"traks");this.mvhd=A,this.traks=t}static decodeData(A){let t;const e=[];for(;A.remaining()>0;){const g=Bt(A);g instanceof zB&&e.push(g),g instanceof PB&&(t=g)}if(!t)throw new Error("No mvhd found");return new is(t,e)}};I(is,"type","moov");let _B=is;const Is=class Is{constructor(A,t,e,g,B,o,n,a){I(this,"type",Is.type);I(this,"configurationVersion");I(this,"avcProfileIndication");I(this,"profileCompatibility");I(this,"avcLevelIndication");I(this,"lengthSizeMinusOne");I(this,"sequenceParameterSets");I(this,"pictureParameterSets");I(this,"bytes");this.configurationVersion=A,this.avcProfileIndication=t,this.profileCompatibility=e,this.avcLevelIndication=g,this.lengthSizeMinusOne=B,this.sequenceParameterSets=o,this.pictureParameterSets=n,this.bytes=a}static decodeData(A){const t=A.buffer(),e=A.readUint8(),g=A.readUint8(),B=A.readUint8(),o=A.readUint8(),n=A.readUint8()&3,a=A.readUint8()&31,Q=[];for(let d=0;d<a;d++){const m=A.readBytes(A.readUint16());Q.push(m)}const E=A.readUint8(),h=[];for(let d=0;d<E;d++){const m=A.readBytes(A.readUint16());h.push(m)}return new Is(e,g,B,o,n,Q,h,t)}};I(Is,"type","avcC");let Tn=Is;const gs=class gs{constructor(A,t,e,g,B){I(this,"type",gs.type);I(this,"avcC");I(this,"width");I(this,"height");I(this,"horizontalResolution");I(this,"verticalResolution");this.avcC=A,this.width=t,this.height=e,this.horizontalResolution=g,this.verticalResolution=B}static decodeData(A){A.readUint32(),A.readUint16(),A.readUint16(),A.readUint32(),A.readUint64(),A.readUint32();const t=A.readUint16(),e=A.readUint16(),g=A.readUint32(),B=A.readUint32();A.readUint32(),A.readUint16(),A.readBytes(32),A.readUint16(),A.readUint16();let o;for(;A.remaining()>0;){const n=Bt(A);n.type==="avcC"&&(o=n)}if(!o)throw new Error("no avcC");return new gs(o,t,e,g,B)}};I(gs,"type","avc1");let Pn=gs;const ah=i=>{for(let A=0;A<i.length-1;A++){if(i[A]!==5)continue;let t=0,e=0,g=A+1;for(;g<i.length&&e<4;){const n=i[g];if(t=t<<7|n&127,e++,g++,(n&128)===0)break}if(t<=0||e===4&&(i[g-1]&128)!==0)continue;const B=A+1+e,o=B+t;if(o<=i.length)return i.slice(B,o)}},ss=class ss{constructor(A){I(this,"type",ss.type);I(this,"decoderConfig");this.decoderConfig=A}static decodeData(A){var g;Ut(A);const t=A.readRemaining(),e=(g=ah(t))!=null?g:new Uint8Array(0);return new ss(e)}};I(ss,"type","esds");let xn=ss;const Bs=class Bs{constructor(A,t,e){I(this,"type",Bs.type);I(this,"channelCount");I(this,"sampleRate");I(this,"esds");this.channelCount=A,this.sampleRate=t,this.esds=e}static decodeData(A){A.readUint32(),A.readUint16(),A.readUint16();const t=A.readUint16();A.readUint16(),A.readUint32();const e=A.readUint16();A.readUint16(),A.readUint32();const g=A.readUint16();A.readUint16(),t===1?A.readBytes(16):t===2&&A.readBytes(36);let B;for(;A.remaining()>0;){const o=Bt(A);o.type==="esds"&&(B=o)}return new Bs(e,g,B)}};I(Bs,"type","mp4a");let Wn=Bs;const os=class os{constructor(A,t,e,g,B,o,n){I(this,"type",os.type);I(this,"version");I(this,"channelCount");I(this,"preSkip");I(this,"inputSampleRate");I(this,"outputGain");I(this,"channelMappingFamily");I(this,"channelMappingTable");this.version=A,this.channelCount=t,this.preSkip=e,this.inputSampleRate=g,this.outputGain=B,this.channelMappingFamily=o,this.channelMappingTable=n}static decodeData(A){const t=A.readUint8(),e=A.readUint8(),g=A.readUint16(),B=A.readUint32(),o=A.readUint16(),n=o>32767?o-65536:o,a=A.readUint8(),Q=A.readRemaining();return new os(t,e,g,B,n,a,Q)}};I(os,"type","dOps");let On=os;const ns=class ns{constructor(A,t,e){I(this,"type",ns.type);I(this,"dops");I(this,"channelCount");I(this,"sampleRate");this.dops=A,this.channelCount=t,this.sampleRate=e}static decodeData(A){A.readUint32(),A.readUint16(),A.readUint16();const t=A.readUint16();A.readUint16(),A.readUint32();const e=A.readUint16();A.readUint16(),A.readUint32();const g=A.readUint16();A.readUint16(),t===1&&(A.readUint64(),A.readUint64());const B=Ih(On,A);return new ns(B,e,g)}};I(ns,"type","Opus");let Vn=ns;const rI=class rI{constructor(A,t){I(this,"type",rI.type);I(this,"ntpTimestamp");I(this,"mediaTime");this.ntpTimestamp=A,this.mediaTime=t}date(){const[A,t]=this.ntpTimestamp,e=A*1e3+t/2**32*1e3,g=new Date(Date.UTC(1900,0,1,0,0,0));return new Date(g.getTime()+e)}static decodeData(A){const{version:t}=Ut(A);A.readUint32();const e=A.readUint32(),g=A.readUint32();if(t===1){const o=A.readUint64();return new rI([e,g],o)}const B=A.readUint32();return new rI([e,g],B)}};I(rI,"type","prft");let $B=rI;class Ch{constructor(A,t){C(this,as);C(this,Cs);r(this,as,A),r(this,Cs,t.readBytes(A.size))}data(){return s(this,Cs)}get type(){return s(this,as).type}}as=new WeakMap,Cs=new WeakMap;const Qh={moov:_B,trak:zB,tkhd:jB,mvhd:PB,moof:TB,traf:YB,tfhd:KB,tfdt:qB,trun:Fg,mdat:vB,mdia:XB,hdlr:xB,minf:ZB,stbl:VB,mdhd:WB,stsd:OB,prft:$B,avc1:Pn,avcC:Tn,esds:xn,mp4a:Wn,Opus:Vn,emsg:HB};function Bt(i){const A=EQ(i),t=Qh[A.type],e=new SA(i.readBytes(A.size));if(!t){const B=new Ch(A,e);return e.readRemaining(),B}const g=t.decodeData(e);return e.readRemaining(),g}function rh(i){if(i.byteLength<8)throw new Error("Buffer too small");const A=new SA(i),t=new Map;for(;A.remaining()>0;){const B=Bt(A);t.set(B.type,B)}const e=t.get("ftyp"),g=t.get("moov");if(!e)throw new Error("ftyp atom not found");if(!g||!(g instanceof _B))throw new Error("moov atom not found");return{ftyp:e,moov:g}}function Eh(i){if(i.byteLength<8)throw new Error("Buffer too small");const A=new SA(i),t=new Map,e=[];for(;A.remaining()>0;){const n=Bt(A);n instanceof HB&&e.push(n),t.set(n.type,n)}const g=t.get("moof"),B=t.get("mdat"),o=t.get("prft");if(!g||!(g instanceof TB))throw new Error("moof atom not found");if(!B||!(B instanceof vB))throw new Error("mdat atom not found");if(o&&!(o instanceof $B))throw new Error("invalid prft found");return{moof:g,mdat:B,prft:o,emsgs:e}}class ch{constructor(A){C(this,Qs);C(this,rs);r(this,Qs,A),r(this,rs,rh(A))}rawBytes(){return s(this,Qs)}init(){return s(this,rs)}}Qs=new WeakMap,rs=new WeakMap;const tC=class tC{constructor(A,t){C(this,PA);C(this,$A);C(this,BA);r(this,PA,t),r(this,$A,A),r(this,BA,Eh(t))}clone(){return new tC(s(this,$A),new Uint8Array(s(this,PA).buffer.slice(s(this,PA).byteOffset,s(this,PA).byteOffset+s(this,PA).byteLength)))}updateBaseMediaDecodeTime(A){const t=new DataView(s(this,PA).buffer,s(this,PA).byteOffset,s(this,PA).byteLength);if(s(this,BA).moof.traf.tfdt)if(s(this,BA).moof.traf.tfdt.baseMediaDecodeTime=A,s(this,BA).moof.traf.tfdt.extra.version===1){const e=Math.floor(A/4294967296),g=(A&4294967295)>>>0;t.setUint32(s(this,BA).moof.traf.tfdt.byteOffset-s(this,PA).byteOffset,e),t.setUint32(s(this,BA).moof.traf.tfdt.byteOffset-s(this,PA).byteOffset+4,g)}else t.setUint32(s(this,BA).moof.traf.tfdt.byteOffset-s(this,PA).byteOffset,A)}producerReferenceTime(){if(s(this,BA).prft)return s(this,BA).prft.date()}duration(){const A=s(this,BA).moof.traf.trun,t=s(this,BA).moof.traf.tfhd;if((A==null?void 0:A.sampleDurations.length)===0){const e=(A==null?void 0:A.samplesCount)||1;if(t!=null&&t.defaultSampleDuration)return(t==null?void 0:t.defaultSampleDuration)*e}return(A==null?void 0:A.sampleDurations.reduce((e,g)=>e+g,0))||0}baseMediaDecodeTime(){var t;const A=(t=s(this,BA).moof.traf.tfdt)==null?void 0:t.baseMediaDecodeTime;if(!A)throw new Error("no baseMediaDecodeTime");return A}startsWithKeyframe(){var e;const A=s(this,BA).moof.traf.trun,t=(A==null?void 0:A.firstSampleFlags)||(A==null?void 0:A.sampleFlags[0])||((e=s(this,BA).moof.traf.tfhd)==null?void 0:e.defaultSampleFlags);return t?(t&Fg.FLAG_SAMPLE_DEPENDS_NO)!==0:!1}compositionTimeOffset(A){var t;return(t=s(this,BA).moof.traf.trun)==null?void 0:t.sampleCts[A]}timescale(){const A=s(this,$A).init().moov.traks[0];if(!A)throw new Error("no tracks");return A.mdia.mdhd.timescale}mediaType(){var t;const A=(t=s(this,$A).init().moov.traks[0])==null?void 0:t.mdia.hdlr.mediaType();if(!A)throw new Error("no media type");return A}header(){return s(this,$A)}fragment(){return s(this,BA)}samplesCount(){var A;return((A=s(this,BA).moof.traf.trun)==null?void 0:A.samplesCount)||0}sample(A){var f,G,b,R,v,P,_,T,kA,aA,mA,It,HA,w,k,IA;const t=(f=s(this,$A).init().moov.traks[0])==null?void 0:f.mdia.minf.stbl.stsd.codec,e=((G=s(this,BA).moof.traf.trun)==null?void 0:G.samplesCount)||0,g=(b=s(this,BA).moof.traf.tfdt)==null?void 0:b.baseMediaDecodeTime;if(A>=e||typeof g=="undefined"||!t)return;const B=this.compositionTimeOffset(A),o=((R=s(this,BA).moof.traf.trun)==null?void 0:R.sampleDurations[A])||0,n=((v=s(this,BA).moof.traf.trun)==null?void 0:v.sampleDurations.slice(0,A).reduce((X,K)=>X+K,0))||0,a=g+n,Q=((P=s(this,$A).init().moov.traks[0])==null?void 0:P.mdia.mdhd.timescale)||1e3,E=((_=s(this,BA).moof.traf.trun)==null?void 0:_.sampleSizes[A])||s(this,BA).mdat.data.byteLength,h=((T=s(this,BA).moof.traf.trun)==null?void 0:T.sampleSizes.slice(0,A).reduce((X,K)=>X+K,0))||0,d=s(this,BA).mdat.data.subarray(h,h+E),m=((kA=s(this,BA).moof.traf.trun)==null?void 0:kA.is_sync_sample(A))||!1;if(this.mediaType()==="video"){const X=((aA=s(this,$A).init().moov.traks[0])==null?void 0:aA.tkhd.width)||0,K=((mA=s(this,$A).init().moov.traks[0])==null?void 0:mA.tkhd.height)||0;return{type:"video",codec:t,width:X,height:K,duration:o,isSync:m,timescale:Q,timestamp:a,compositionTimeOffset:B,data:d}}const y=(It=s(this,$A).init().moov.traks[0])==null?void 0:It.mdia.minf.stbl.stsd;return{type:"audio",codec:t,channels:((HA=y==null?void 0:y.opus)==null?void 0:HA.channelCount)||((w=y==null?void 0:y.mp4a)==null?void 0:w.channelCount)||0,sampleRate:((k=y==null?void 0:y.opus)==null?void 0:k.sampleRate)||((IA=y==null?void 0:y.mp4a)==null?void 0:IA.sampleRate)||0,duration:o,isSync:m,timestamp:a,compositionTimeOffset:B,data:d,timescale:Q}}rawBytes(){return s(this,PA)}};PA=new WeakMap,$A=new WeakMap,BA=new WeakMap;let Zn=tC;class cQ{constructor(A){C(this,EI);r(this,EI,new ch(A))}header(){return s(this,EI)}createFragment(A){return new Zn(s(this,EI),A)}}EI=new WeakMap;function L(i){const A=new ArrayBuffer(i.length),t=new Uint8Array(A);for(let e=0,g=i.length;e<g;e++)t[e]=i.charCodeAt(e);return new Uint8Array(A)}const eA={ftyp:L("ftyp"),mvhd:L("mvhd"),moov:L("moov"),trak:L("trak"),tkhd:L("tkhd"),mdia:L("mdia"),mdhd:L("mdhd"),hdlr:L("hdlr"),minf:L("minf"),vmhd:L("vmhd"),smhd:L("smhd"),dinf:L("dinf"),dref:L("dref"),stbl:L("stbl"),stsd:L("stsd"),avc1:L("avc1"),av01:L("av01"),av1C:L("av1C"),avcC:L("avcC"),esds:L("esds"),colr:L("colr"),nclx:L("nclx"),mvex:L("mvex"),trex:L("trex"),udta:L("udta"),meta:L("meta"),ilst:L("ilst"),moof:L("moof"),mfhd:L("mfhd"),traf:L("traf"),tfhd:L("tfhd"),tfdt:L("tfdt"),trun:L("trun"),mdat:L("mdat"),mp4a:L("mp4a"),Opus:L("Opus"),prft:L("prft"),dOps:L("dOps"),emsg:L("emsg")},hh=1e3,ot={vide:L("vide"),soun:L("soun"),videoHandler:L("VideoHandler\0"),soundHandler:L("SoundHandler\0"),url:L("url "),pasp:L("pasp"),btrt:L("btrt"),stts:L("stts"),stsc:L("stsc"),stsz:L("stsz"),stco:L("stco"),data:L("data"),mdir:L("mdir"),appl:L("appl")},kg=L("iso6"),hQ=new Uint8Array([0,0,2,0]),dh=[kg,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([97,118,99,49]),new Uint8Array([109,112,52,49])],lh=[kg,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([97,118,48,49]),new Uint8Array([109,112,52,49])],uh=[kg,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([109,112,52,49])];class dQ{constructor(A){I(this,"writer");I(this,"moofOffset",0);this.writer=new fg(A)}}const uA=(i,A,t)=>{i.writer.writeUint32(t+8),i.writer.writeBytes(A)},yA=(i,A,t,e,g)=>{uA(i,A,t+4),i.writer.writeUint8(e),i.writer.writeUint24(g)},Xn=(i,A)=>{uA(i,eA.ftyp,kg.byteLength+hQ.byteLength+A.reduce((t,e)=>t+e.byteLength,0)),i.writer.writeBytes(kg),i.writer.writeBytes(hQ),A.forEach(t=>i.writer.writeBytes(t))},wh=2**32,Dh=2208988800,mh=(i,A,t,e)=>{yA(i,eA.prft,20,1,0);const B=t/1e3,o=Math.floor(B),a=(B-o)*1e3*1e3*wh/1e6;i.writer.writeUint32(A),i.writer.writeUint32(o+Dh),i.writer.writeUint32(a),i.writer.writeUint64(e)},Sh=(i,A,t)=>{yA(i,eA.mvhd,96,0,0),i.writer.writeUint32(0),i.writer.writeUint32(0),i.writer.writeUint32(t),i.writer.writeUint32(A),i.writer.writeUint32(65536),i.writer.writeUint16(256),i.writer.writeBytes(new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])),i.writer.writeUint32(2)},lQ=i=>"sequenceParameterSets"in i,jn=i=>"sequenceHeader"in i,_e=i=>i.type=="video",Gg=i=>i.type=="audio",yh=(i,A,t)=>{const e=i.writer.position();yA(i,eA.tkhd,0,0,3),i.writer.writeUint32(0),i.writer.writeUint32(0),i.writer.writeUint32(A.trackId),i.writer.writeUint32(0),i.writer.writeUint32(A.duration*t/A.timescale),i.writer.writeUint32(0),i.writer.writeUint32(0),i.writer.writeUint16(0),i.writer.writeUint16(Gg(A)?1:0),i.writer.writeUint16(Gg(A)?256:0),i.writer.writeUint16(0),i.writer.writeBytes(new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0])),_e(A)?(i.writer.writeUint32(A.width*65536),i.writer.writeUint32(A.height*65536)):Gg(A)&&(i.writer.writeUint32(0),i.writer.writeUint32(0)),i.writer.writeUint32At(e,i.writer.position()-e)},fh=(i,A)=>{yA(i,eA.mdhd,20,0,0),i.writer.writeUint32(0),i.writer.writeUint32(0),i.writer.writeUint32(A.timescale),i.writer.writeUint32(A.duration);const t=A.lang||"und",e=(t.charCodeAt(0)&31)<<10|(t.charCodeAt(1)&31)<<5|t.charCodeAt(2)&31;i.writer.writeUint16(e),i.writer.writeUint16(0)},ph=(i,A)=>{const t=i.writer.position();yA(i,eA.hdlr,0,0,0),i.writer.writeUint32(0),i.writer.writeBytes(_e(A)?ot.vide:ot.soun),i.writer.writeUint32(0),i.writer.writeUint32(0),i.writer.writeUint32(0),i.writer.writeBytes(_e(A)?ot.videoHandler:ot.soundHandler),i.writer.writeUint32At(t,i.writer.position()-t)},Fh=i=>{const A=i.writer.position();uA(i,eA.dinf,0),yA(i,eA.dref,16,0,0),i.writer.writeUint32(1),yA(i,ot.url,0,0,1),i.writer.writeUint32At(A,i.writer.position()-A)},kh=(i,A)=>{const t=i.writer.position();uA(i,eA.avcC,0),i.writer.writeUint8(1),i.writer.writeUint8(A.sequenceParameterSets[0][1]),i.writer.writeUint8(A.sequenceParameterSets[0][2]),i.writer.writeUint8(A.sequenceParameterSets[0][3]),i.writer.writeUint8(255),i.writer.writeUint8(224|A.sequenceParameterSets.length),A.sequenceParameterSets.forEach(e=>{i.writer.writeUint16(e.byteLength),i.writer.writeBytes(e)}),i.writer.writeUint8(A.pictureParameterSets.length),A.pictureParameterSets.forEach(e=>{i.writer.writeUint16(e.byteLength),i.writer.writeBytes(e)}),i.writer.writeUint32At(t,i.writer.position()-t)},Gh=(i,A)=>{var n,a;const t=i.writer.position();uA(i,eA.av1C,0);const{seqProfile:e,operatingPoints:g,colorConfig:B}=A.parsedSequenceHeader,o=g[0];i.writer.writeUint8(129),i.writer.writeUint8(e<<5|((n=o==null?void 0:o.seqLevelIdx)!=null?n:0)),i.writer.writeUint8(((a=o==null?void 0:o.tier)!=null?a:0)|(B.highBitDepth?1:0)|(B.bitDepth===12?1:0)<<5|(B.monoChrome?1:0)<<4|B.subsamplingX<<3|B.subsamplingY<<2|B.chromaSamplePosition&65535),i.writer.writeUint8(0),i.writer.writeBytes(A.sequenceHeader),i.writer.writeUint32At(t,i.writer.position()-t)},Rh=(i,A)=>{const t=i.writer.position(),e=jn(A)?eA.av01:eA.avc1;uA(i,e,0),i.writer.writeUint32(0),i.writer.writeUint16(0),i.writer.writeUint16(1),i.writer.writeUint16(0),i.writer.writeUint16(0),i.writer.writeUint32(0),i.writer.writeUint32(0),i.writer.writeUint32(0),i.writer.writeUint16(A.width),i.writer.writeUint16(A.height),i.writer.writeUint32(4718592),i.writer.writeUint32(4718592),i.writer.writeUint32(0),i.writer.writeUint16(1),i.writer.writeUint8(0),i.writer.writeBytes(new Uint8Array(31)),i.writer.writeUint16(24),i.writer.writeUint16(-1),lQ(A)?kh(i,A):jn(A)&&(Gh(i,A),A.parsedSequenceHeader.colorConfig&&(uA(i,eA.colr,11),i.writer.writeBytes(eA.nclx),i.writer.writeUint16(A.parsedSequenceHeader.colorConfig.colorPrimaries),i.writer.writeUint16(A.parsedSequenceHeader.colorConfig.transferCharacteristics),i.writer.writeUint16(A.parsedSequenceHeader.colorConfig.matrixCoefficients),i.writer.writeUint8(A.parsedSequenceHeader.colorConfig.colorRange?1:0))),A.pixelAspectRatio&&(uA(i,ot.pasp,8),i.writer.writeUint32(A.pixelAspectRatio.numerator),i.writer.writeUint32(A.pixelAspectRatio.denumerator)),A.bitrate&&(uA(i,ot.btrt,12),i.writer.writeUint32(0),i.writer.writeUint32(A.bitrate),i.writer.writeUint32(A.bitrate)),i.writer.writeUint32At(t,i.writer.position()-t)},Ao=(i,A,t)=>{let e=3;for(i.writer.writeUint8(A);e>0;e--)i.writer.writeUint8(t>>7*e|128);i.writer.writeUint8(t&127)},Uh=(i,A)=>{const t=A.decoderConfig.byteLength>0?A.decoderConfig.byteLength+5:0,e=i.writer.position();yA(i,eA.esds,0,0,0),Ao(i,3,21+t+5+1),i.writer.writeUint16(A.trackId),i.writer.writeUint8(0),Ao(i,4,13+t);const g=A.codec==="mp3"&&A.sampleRate>24e3?107:64;i.writer.writeUint8(g),i.writer.writeUint8(21),i.writer.writeUint24(0),i.writer.writeUint32(A.bitrate||0),i.writer.writeUint32(A.bitrate||0),A.decoderConfig.byteLength>0&&(Ao(i,5,A.decoderConfig.byteLength),i.writer.writeBytes(A.decoderConfig)),Ao(i,6,1),i.writer.writeUint8(2),i.writer.writeUint32At(e,i.writer.position()-e)},Nh=i=>{switch(i){case"aac":case"mp3":return eA.mp4a;case"opus":return eA.Opus}},bh=(i,A)=>{const t=i.writer.position();uA(i,eA.dOps,0),i.writer.writeUint8(0);const e=A.decoderConfig,g=new DataView(e.buffer,e.byteOffset,e.byteLength);i.writer.writeUint8(g.getUint8(9)),i.writer.writeUint16(g.getUint16(10,!0)),i.writer.writeUint32(g.getUint32(12,!0)),i.writer.writeUint16(g.getUint16(16,!0)),i.writer.writeBytes(A.decoderConfig.slice(18)),i.writer.writeUint32At(t,i.writer.position()-t)},Lh=(i,A)=>{const t=i.writer.position();switch(uA(i,Nh(A.codec),0),i.writer.writeUint32(0),i.writer.writeUint16(0),i.writer.writeUint16(1),i.writer.writeUint16(0),i.writer.writeUint16(0),i.writer.writeUint32(0),i.writer.writeUint16(A.channelCount),i.writer.writeUint16(16),i.writer.writeUint32(0),i.writer.writeUint16(A.sampleRate),i.writer.writeUint16(0),A.codec){case"aac":case"mp3":Uh(i,A);break;case"opus":bh(i,A);break}A.bitrate&&(uA(i,ot.btrt,12),i.writer.writeUint32(0),i.writer.writeUint32(A.bitrate),i.writer.writeUint32(A.bitrate)),i.writer.writeUint32At(t,i.writer.position()-t)},Jh=(i,A)=>{const t=i.writer.position();uA(i,eA.stbl,0);const e=i.writer.position();yA(i,eA.stsd,0,0,0),i.writer.writeUint32(1),_e(A)?Rh(i,A):Gg(A)&&Lh(i,A),i.writer.writeUint32At(e,i.writer.position()-e),yA(i,ot.stts,4,0,0),i.writer.writeUint32(0),yA(i,ot.stsc,4,0,0),i.writer.writeUint32(0),yA(i,ot.stsz,8,0,0),i.writer.writeUint32(0),i.writer.writeUint32(0),yA(i,ot.stco,4,0,0),i.writer.writeUint32(0),i.writer.writeUint32At(t,i.writer.position()-t)},Mh=(i,A)=>{const t=i.writer.position();uA(i,eA.minf,0),_e(A)?(yA(i,eA.vmhd,8,0,1),i.writer.writeUint32(0),i.writer.writeUint32(0)):Gg(A)&&(yA(i,eA.smhd,4,0,0),i.writer.writeUint16(0),i.writer.writeUint16(0)),Fh(i),Jh(i,A),i.writer.writeUint32At(t,i.writer.position()-t)},Hh=(i,A)=>{const t=i.writer.position();uA(i,eA.mdia,0),fh(i,A),ph(i,A),Mh(i,A),i.writer.writeUint32At(t,i.writer.position()-t)},vh=(i,A,t)=>{const e=i.writer.position();uA(i,eA.trak,0),yh(i,A,t),Hh(i,A),i.writer.writeUint32At(e,i.writer.position()-e)},qh=(i,A)=>{yA(i,eA.trex,20,0,0),i.writer.writeUint32(A.trackId),i.writer.writeUint32(1),i.writer.writeUint32(0),i.writer.writeUint32(0),i.writer.writeUint32(0)},Kh=(i,A)=>{const t=i.writer.position();uA(i,eA.mvex,0),A.forEach(e=>qh(i,e)),i.writer.writeUint32At(t,i.writer.position()-t)},Yh=(i,A,t,e)=>{const g=i.writer.position();uA(i,eA.moov,0),Sh(i,0,t),A.forEach(B=>vh(i,B,t)),Kh(i,A),i.writer.writeUint32At(g,i.writer.position()-g)},Th=(i,A)=>{const t=i.writer.position();yA(i,eA.tfhd,16,0,56),i.writer.writeUint32(A.trackId),i.writer.writeUint32(A.defaultDuration||0),i.writer.writeUint32(A.defaultSize||0),i.writer.writeUint32(A.defaultFlags||0),i.writer.writeUint32At(t,i.writer.position()-t)},Ph=(i,A)=>{const t=i.writer.position();yA(i,eA.tfdt,8,1,0);const e=Math.floor(A.timestamp/4294967296),g=(A.timestamp&4294967295)>>>0;i.writer.writeUint32(e),i.writer.writeUint32(g),i.writer.writeUint32At(t,i.writer.position()-t)},xh=(i,A)=>{if(!A.samples[0])throw new Error("At least one sample must be provided");const t=A.samples.some(a=>!!a.compositionTimeOffset),e=zn(A.samples[0])!==A.defaultFlags,g=A.samples.length>1;let B=1;e&&(B|=4),t&&(B|=2048),g&&(B|=512,B|=256,B|=1024);const o=i.writer.position();yA(i,eA.trun,16,1,B),i.writer.writeUint32(A.samples.length);const n=i.writer.position();i.writer.writeUint32(0),e&&i.writer.writeUint32(zn(A.samples[0]));for(const a of A.samples)g&&(i.writer.writeUint32(a.duration),i.writer.writeUint32(a.data.byteLength),i.writer.writeUint32(zn(a))),t&&i.writer.writeUint32(a.compositionTimeOffset||0);i.writer.writeUint32At(n,i.writer.position()-i.moofOffset+8),i.writer.writeUint32At(o,i.writer.position()-o)},zn=i=>i.isSync?33554432:16842752,Wh=(i,A)=>{const t=i.writer.position();uA(i,eA.traf,0),Th(i,A),Ph(i,A),xh(i,A),i.writer.writeUint32At(t,i.writer.position()-t)},Oh=(i,A)=>{yA(i,eA.mfhd,4,0,0),i.writer.writeUint32(A)},Vh=(i,A)=>{const t=i.writer.position();uA(i,eA.moof,0),Oh(i,A.sequenceNumber),Wh(i,A),i.writer.writeUint32At(t,i.writer.position()-t)},Zh=(i,A,t)=>{uA(i,eA.mdat,t);for(const e of A.samples){const g=e.data instanceof ArrayBuffer?new Uint8Array(e.data):e.data;i.writer.writeBytes(g)}},to=(i,A)=>{const t=new dQ,e=i.filter(B=>_e(B)&&lQ(B)).length>0;return i.filter(B=>_e(B)&&jn(B)).length>0?Xn(t,lh):e?Xn(t,dh):Xn(t,uh),Yh(t,i,hh),t.writer.buffer()},eo=i=>{var e;let A=0;for(const g of i.samples)A+=g.data.byteLength;const t=new dQ(A+256);return((e=i.samples[0])==null?void 0:e.producerReferenceTime)!==void 0&&mh(t,i.trackId,i.samples[0].producerReferenceTime,i.timestamp),t.moofOffset=t.writer.position(),Vh(t,i),Zh(t,i,A),t.writer.bufferExact()},Xh=(i,A)=>{const t=i[0];if(!t)throw new Error("At least one sample must be provided");return eo({trackId:1,timestamp:t.timestamp,sequenceNumber:A,defaultSize:t.data.byteLength,defaultFlags:33554432,defaultDuration:t.duration,samples:i})},jh=(i,A,t,e)=>to([{type:"audio",codec:"aac",decoderConfig:i,channelCount:A,sampleRate:t,timescale:e,duration:0,trackId:1}]),uQ=i=>{const{sequenceParameterSets:A,pictureParameterSets:t}=rQ(i),e=A[0],g=t[0];if(!e||!g)throw new Error("No sps or pps provided");return jc(e)},zh=(i,A)=>{const t=i[0];if(!t)throw new Error("At least one sample must be provided");return eo({trackId:1,timestamp:t.timestamp,sequenceNumber:A,defaultSize:t.data.byteLength,defaultFlags:t.isSync?33554432:16842752,defaultDuration:t.duration,samples:i})},_h=(i,A)=>{const{sequenceParameterSets:t,pictureParameterSets:e}=rQ(i),g=uQ(i);return to([{type:"video",sequenceParameterSets:t.map(B=>new Uint8Array(B)),pictureParameterSets:e.map(B=>new Uint8Array(B)),width:g.width,height:g.height,timescale:A,duration:0,trackId:1}])},$h=(i,A,t)=>to([{type:"audio",trackId:1,channelCount:A,timescale:t,codec:"opus",decoderConfig:i,duration:0,sampleRate:48e3}]),Ad=(i,A)=>{const t=i[0];if(!t)throw new Error("At least one sample must be provided");return eo({trackId:1,timestamp:t.timestamp,sequenceNumber:A,defaultSize:t.data.byteLength,defaultFlags:33554432,defaultDuration:t.duration,samples:i})},wQ=i=>{const A=new XA(i);return A.peekBit()===1&&A.readBits(32),id(A),Cd(A)},td=i=>{let A=0,t=0;for(let e=0;e<8;e++){const g=i.readBits(8);if(A|=(g&127)<<e*7,t+=1,(g&128)!==128)break}return[t,A]},ed=i=>{let A=0;for(;A<100&&i.readBit()===0;)A++;return A>=32?0:i.readBits(A)+(1<<A)-1},id=i=>{const A=i.remainingBits()/8,t=i.readBits(8);if((t>>7&1)!==0)return;const g=t>>3&15,B=t>>2&1,o=t>>1&1;B==1&&i.readBits(8);const[n,a]=o?td(i):[0,A];return{headerLength:1+B+n,type:g,obuSize:a}},Id=i=>{const A=i.readBits(32),t=i.readBits(32),e=i.readBit()!==0;let g=0;return e&&(g=ed(i)+1),{timescale:t,equalPictureInterval:e,numUnitsInDisplayTick:A,numTicksPerPicture:g}},DQ=2,_n=2,gd=1,sd=2,Bd=2,od=13,nd=0,ad=2,mQ=0,Cd=i=>{const A=i.readBits(3),e=i.readBit()!==0,g=i.readBit()!==0;let B,o=!1,n=!1,a=!1,Q=0,E=0;const h=[];if(g)i.readBits(5);else{if(n=i.readBit()!==0,n&&(B=Id(i),o=i.readBit()!==0,o))throw new Error("Not implemented");a=i.readBit()!==0;const oA=i.readBits(5)+1;for(let U=0;U<oA;U++){const M=i.readBits(12),V=i.readBits(5);let CA=0;if(V>7&&(CA=i.readBit()),o)throw new Error("decoderModelInfoPresentFlag==1");a&&i.readBit()!==0&&i.readBits(4),h.push({tier:CA,operatingPointIdc:M,seqLevelIdx:V})}}const d=i.readBits(4)+1,m=i.readBits(4)+1,y=i.readBits(d)+1,f=i.readBits(m)+1;let G=!1;g?G=!1:G=i.readBit()!==0,G&&(Q=i.readBits(4)+2,E=i.readBits(3)+1);const b=i.readBit()!==0,R=i.readBit()!==0,v=i.readBit()!==0;let P=!1,_=!1,T=!1,kA=!1,aA=!1,mA=!1,It=!1,HA=DQ,w=_n,k=0;g||(P=i.readBit()!==0,_=i.readBit()!==0,T=i.readBit()!==0,kA=i.readBit()!==0,aA=i.readBit()!==0,aA&&(mA=i.readBit()!==0,It=i.readBit()!==0),i.readBit()!==0?HA=DQ:HA=i.readBit(),HA>0?i.readBit()>0?w=_n:w=i.readBit():w=_n,aA?k=i.readBits(3):k=0);const IA=i.readBit()!==0,X=i.readBit()!==0,K=i.readBit()!==0;return{seqProfile:A,stillPicture:e,reducedStillPictureHeader:g,timingInfoPresentFlag:n,timingInfo:B!=null?B:{equalPictureInterval:!1,numUnitsInDisplayTick:0,timescale:0,numTicksPerPicture:0},decoderModelInfoPresentFlag:o,initialDisplayDelayPresentFlag:a,operatingPoints:h,frameWidthBits:d,frameHeightBits:m,maxFrameWidth:y,maxFrameHeight:f,frameIdNumbersPresentFlag:G,deltaFrameIdLength:Q,additionalFrameIdLength:E,use_128x128Superblock:b,enableFilterIntra:R,enableIntraEdgeFilter:v,enableInterintraCompound:P,enableMaskedCompound:_,enableWarpedMotion:T,enableDualFilter:kA,enableOrderHint:aA,enableJntComp:mA,enableRefFrameMvs:It,seqForceScreenContentTools:HA,seqForceIntegerMv:w,orderHintBits:k,enableSuperres:IA,enableCdef:X,enableRestoration:K,colorConfig:Qd(i,A),filmGrainParamsPresent:i.readBit()!==0}},Qd=(i,A)=>{const t=i.readBit()!==0;let e=8,g=!1;A===2&&t?e=i.readBit()!==0?12:10:A<=2&&(e=t?10:8),A===1?g=!1:g=i.readBit()!==0;const B=g?1:3,o=i.readBit()!==0;let n=sd,a=Bd,Q=ad,E=!1,h=0,d=0,m=mQ,y=!1;return o&&(n=i.readBits(8),a=i.readBits(8),Q=i.readBits(8)),g?(E=i.readBit()!==0,h=1,d=1,m=mQ,y=!1,{highBitDepth:t,bitDepth:e,monoChrome:g,chromaSamplePosition:m,colorPrimaries:n,colorRange:E,matrixCoefficients:Q,numPlanes:B,separateUvDeltaQ:y,subsamplingX:h,subsamplingY:d,transferCharacteristics:a}):n===gd&&a==od&&Q==nd?(E=!0,h=0,d=0,{highBitDepth:t,bitDepth:e,monoChrome:g,chromaSamplePosition:m,colorPrimaries:n,colorRange:E,matrixCoefficients:Q,numPlanes:B,separateUvDeltaQ:y,subsamplingX:h,subsamplingY:d,transferCharacteristics:a}):(E=i.readBit()!==0,A===0?(h=1,d=1):A===1?(h=0,d=0):e===12?(h=i.readBit(),h!==0?d=i.readBit():d=0):(h=1,d=0),h!==0&&d!==0&&(m=i.readBits(2)),y=i.readBit()!==0,{highBitDepth:t,bitDepth:e,monoChrome:g,chromaSamplePosition:m,colorPrimaries:n,colorRange:E,matrixCoefficients:Q,numPlanes:B,separateUvDeltaQ:y,subsamplingX:h,subsamplingY:d,transferCharacteristics:a})},rd=i=>{const A=wQ(i);if(A)return{width:A.maxFrameWidth,height:A.maxFrameHeight}},Ed=(i,A)=>{const t=i[0];if(!t)throw new Error("At least one sample must be provided");return eo({trackId:1,timestamp:t.timestamp,sequenceNumber:A,defaultSize:t.data.byteLength,defaultFlags:t.isSync?33554432:16842752,defaultDuration:t.duration,samples:i})},cd=(i,A)=>{const t=wQ(i);if(!t)throw new Error("Failed to parse sequence header");return to([{type:"video",parsedSequenceHeader:t,sequenceHeader:new Uint8Array(i),width:t.maxFrameWidth,height:t.maxFrameHeight,timescale:A,duration:0,trackId:1}])},hd=i=>{const{codec:A,initData:t,timescale:e}=i;switch(A){case"h264":return ld(t,e);case"av1":return ud(t,e);case"opus":return wd(t,e,i.channelCount||2);case"aac":return Dd(t,e,i.channelCount||2);default:throw new Error(`Failed to initialize ${A} segment`)}},dd=(i,A)=>{switch(i){case"h264":return uQ(A);case"av1":return rd(A)}},ld=(i,A)=>_h(i,A),ud=(i,A)=>cd(i,A),wd=(i,A,t)=>$h(new Uint8Array(i),t,A),Dd=(i,A,t)=>jh(new Uint8Array(i),t,A,A),md=(i,A)=>{if(!i[0])throw new Error("At least one sample must be provided");switch(i[0].codec){case"h264":return zh(i,A);case"opus":return Ad(i,A);case"aac":return Xh(i,A);case"av1":return Ed(i,A);default:throw new Error(`Unsupported codec ${i[0].codec}`)}},Rg=i=>!!(i&1),Sd=i=>!!(i&2),yd=i=>!!(i&4),fd=i=>!!(i&8),pd=i=>!!(i&16),Fd=i=>{const A=new DataView(i,0),t=A.getUint8(0),e=A.getUint16(1),g=A.getUint8(3),B=A.getUint8(4),o=_i(new Uint8Array(i),5,12),n=A.getUint32(13),a=pd(g)?A.getInt16(17):void 0,Q=i.slice(e);return{version:t,renditionId:B,flags:g,timestamp:o,timescale:n,payload:Q,compositionTimeOffset:a}},kd="data:video/mp4;base64,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",io=()=>"wakeLock"in navigator&&window.navigator.userAgent.indexOf("Samsung")===-1;class Gd{constructor(){I(this,"enabled",!1);I(this,"wakeLockVideo");I(this,"_wakeLock",null);I(this,"handleVisibilityChange",()=>{this._wakeLock!==null&&document.visibilityState==="visible"&&this.enable()});io()&&(this._wakeLock=null,document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("fullscreenchange",this.handleVisibilityChange))}_addSourceToVideo(A,t,e){const g=document.createElement("source");g.src=e,g.type=`video/${t}`,A.appendChild(g)}get isEnabled(){return this.enabled}attach(A){if(!io()){if(!this.wakeLockVideo){const t=document.createElement("video");this.wakeLockVideo=t,this.wakeLockVideo.setAttribute("title","Live Stream"),this.wakeLockVideo.setAttribute("playsinline",""),this._addSourceToVideo(this.wakeLockVideo,"mp4",kd),Object.assign(this.wakeLockVideo.style,{position:"absolute",left:"-100%",top:"-100%"}),this.wakeLockVideo.addEventListener("loadedmetadata",()=>{t.addEventListener("timeupdate",()=>{t.currentTime>.5&&(t.currentTime=Math.random())})})}A&&A.appendChild(this.wakeLockVideo)}}enable(){return c(this,null,function*(){var A,t;return io()?navigator.wakeLock.request("screen").then(e=>{this._wakeLock=e,this.enabled=!0,this._wakeLock.addEventListener("release",()=>{})}).catch(()=>{this.enabled=!1}):((t=(A=this.wakeLockVideo)==null?void 0:A.play())!=null?t:Promise.resolve()).then(g=>(this.enabled=!0,g)).catch(()=>{this.enabled=!1})})}disable(){var A,t;io()?(this._wakeLock&&this._wakeLock.release(),this._wakeLock=null):((A=this.wakeLockVideo)==null||A.pause(),(t=this.wakeLockVideo)==null||t.remove()),this.enabled=!1}unload(){document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("fullscreenchange",this.handleVisibilityChange),this.disable()}}const Rd=/\r\n|\r|\n/;class SQ{constructor(A){C(this,ye);C(this,Ae);r(this,ye,A),r(this,Ae,0)}skipEmptyLines(){let A=0;for(;s(this,ye)[s(this,Ae)]==="";)_A(this,Ae)._++,A++;return A}readLine(){return s(this,ye)[_A(this,Ae)._++]}takeUntilEmptyLine(){const A=[];for(;s(this,ye)[s(this,Ae)]!=="";){const t=this.readLine();if(t===void 0)break;A.push(t)}return A}linesLeft(){return s(this,ye).length-s(this,Ae)}}ye=new WeakMap,Ae=new WeakMap;class yQ{constructor(){C(this,ai)}parse(A){const t=[],e=A.split(Rd),g=new SQ(e),B=g.readLine();if(!B||!B.startsWith("WEBVTT"))throw new Error("missing 'WEBVTT' signature");for(;g.readLine()!=="";);for(;g.linesLeft()>0;){const o=l(this,ai,BE).call(this,g);o&&t.push(o),g.skipEmptyLines()}return t}}ai=new WeakSet,BE=function(A){A.skipEmptyLines();const t=A.takeUntilEmptyLine(),e=new SQ(t);let g=e.readLine(),B;if(g!=null&&g.startsWith("NOTE"))return;if(g!=null&&g.includes("-->")||(B=g,g=e.readLine()),g===void 0)throw new Error("expected cue line");const[o,n]=g.split("-->").map(m=>m.trim());if(!o||!n)throw new Error(`a cue needs both start and end time start: ${o} end: ${n}`);const[a,Q]=n.split(" ",1).map(m=>m.trim());if(!a)throw new Error(`missing end time: ${a}`);const E=e.readLine();if(!E)throw new Error("missing text");const h=l(this,ai,lC).call(this,o),d=l(this,ai,lC).call(this,a);return{id:B,startTime:h,endTime:d,text:E}},lC=function(A){const t=A.split(":");if(t.length==2){const[n=0,a=0]=t.map(E=>parseFloat(E));return n*60+a}const[e=0,g=0,B=0]=t.map(n=>parseFloat(n));return e*60*60+g*60+B};const Ud=i=>{const A=window;A.vindralInstances=A.vindralInstances||{},A.vindralInstances[i.getStatistics().clientId.substring(0,8)]=i};class $n extends st{constructor({type:t,autoplay:e,muted:g,volume:B,logger:o,poster:n}){super();I(this,"element");I(this,"logger");I(this,"seekTimes",new x(10));I(this,"seekStartTime");I(this,"_totalSeekTime",0);I(this,"_userProvidedMuted");I(this,"timers",new bA);I(this,"_userHasProvidedInput",!1);I(this,"_isPaused",!0);I(this,"isActivated",!1);I(this,"dummy");I(this,"_iosHackEnterPiPMode",()=>{const t=this.element.parentElement,e=this.element.clientWidth/this.element.clientHeight;this.element.style.position="fixed",this.element.style.opacity="0",this.element.style.pointerEvents="none",t&&(this.dummy=document.createElement("video"),this.dummy.style.paddingBottom="calc(100% / "+e+")",this.dummy.style.width="100%",this.dummy.style.height="0px",t.appendChild(this.dummy))});I(this,"_iosHackExitPiPMode",()=>{this.element.style.position="relative",this.element.style.opacity="1",this.element.style.pointerEvents="auto",this.dummy&&(this.dummy.remove(),this.dummy=void 0)});I(this,"attach",t=>{this.element.remove(),t.appendChild(this.element)});I(this,"load",()=>{this.timers.setInterval(this.onPlayPause,500),this.timers.setTimeout(()=>{this.timers.setInterval(this.onBufferStateChange,500)},1e4)});I(this,"unload",()=>{this.timers.unload()});I(this,"getPlaybackRate",()=>this.element.playbackRate);I(this,"getPlaybackState",()=>this.element.readyState>=this.element.HAVE_FUTURE_DATA?"playing":"buffering");I(this,"setPlaybackRate",t=>{this.element.playbackRate=t});I(this,"getBuffer",()=>{const t=[],e=this.element.buffered;if(!e)return[];for(let g=0;g<e.length;g++)t.push({start:e.start(g)*1e3,end:e.end(g)*1e3});return t});I(this,"pause",()=>{this._isPaused=!1,this.element.pause()});I(this,"tryPlay",()=>{this.element.muted=this._userProvidedMuted,this._play().catch(F)});I(this,"play",()=>{this.element.muted=this._userProvidedMuted,this._play().catch(t=>{if(t instanceof Error){const e=new O("Media Play Error",{source:t,isFatal:!1,code:"media_play_error"});this.emit("error",e)}})});I(this,"_play",()=>c(this,null,function*(){try{yield this.element.play(),this._userHasProvidedInput=!this.muted||this._userProvidedMuted}catch(t){if(t instanceof Error&&t.name==="NotAllowedError")if(this._userHasProvidedInput=!1,this.element.muted)this.emit("needs user input",{forAudio:!0,forVideo:!0});else return this.element.muted=!0,this.emit("needs user input",{forAudio:!0,forVideo:!1}),this._play();else throw t}}));I(this,"onEvent",t=>{this.logger.trace(t.type,{state:this.element.readyState,event:t,playbackState:this.getPlaybackState()})});I(this,"onVolumeChange",()=>{this.logger.info("volume state",{isMuted:this.element.muted,volume:this.element.volume}),this.emit("volume state",{isMuted:this.element.muted,volume:this.element.volume})});I(this,"onPlayPause",()=>{this._isPaused!==this.element.paused&&(this._isPaused=this.element.paused,this.logger.info("player pause change",{paused:this.element.paused}),this.emit("media element state",this.element.paused?"paused":"playing"))});I(this,"onBufferStateChange",()=>{this.emit("buffer state",{isPaused:this.element.paused,buffered:this.getBuffer(),currentTime:this.currentTime,playbackState:this.getPlaybackState()})});I(this,"onSeekStart",()=>{this.seekStartTime=Date.now()});I(this,"onSeekEnd",()=>{if(!this.seekStartTime)return;const t=Date.now()-this.seekStartTime;this.seekTimes.push(t),this._totalSeekTime+=t,this.seekStartTime=void 0});this.logger=o,this._userProvidedMuted=g,this.element=document.createElement(t),this.element instanceof HTMLVideoElement&&(this.element.playsInline=!0),this.element.controls=!1,this.element.autoplay=e,this.element.muted=g,B!==void 0&&(this.element.volume=B),this.element.style.display="block",this.element.style.width="100%",this.element.disableRemotePlayback=!0,this.element.setAttribute("poster","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAJCAQAAACRI2S5AAAAEElEQVR42mNkIAAYRxWAAQAG9gAKqv6+AwAAAABJRU5ErkJggg=="),this.onPlayPause(),setTimeout(()=>{!this.element||!n||this.element.setAttribute("poster",n)},0),this.element.addEventListener("stalled",this.onEvent),this.element.addEventListener("canplay",this.onEvent),this.element.addEventListener("loadeddata",this.onEvent),this.element.addEventListener("loadedmetadata",this.onEvent),this.element.addEventListener("canplaythrough",this.onEvent),this.element.addEventListener("waiting",this.onEvent),this.element.addEventListener("playing",this.onPlayPause),this.element.addEventListener("pause",this.onPlayPause),this.element.addEventListener("seeked",this.onSeekEnd),this.element.addEventListener("seeking",this.onSeekStart),this.element.addEventListener("volumechange",this.onVolumeChange),this.element.addEventListener("timeupdate",this.onBufferStateChange),this.element.addEventListener("progress",this.onBufferStateChange)}get seekTime(){return this.seekTimes.isEmpty()?0:dt(this.seekTimes.items())}get totalSeekTime(){return this._totalSeekTime}get isSeeking(){return this.element.seeking}get currentTime(){return isNaN(this.element.currentTime)?0:this.element.currentTime*1e3}set currentTime(t){Number.isFinite(t)&&(this.element.currentTime=t/1e3)}get playbackRate(){return this.element.playbackRate}set playbackRate(t){this.element.playbackRate=t}get volume(){return this.element.volume}set volume(t){this.element.volume=t}get muted(){return this.element.muted}set muted(t){this._userProvidedMuted=t,this.element.muted=t}get userHasProvidedInput(){return this._userHasProvidedInput}get isPaused(){return this._isPaused}}const Nd=i=>{if(!navigator.mediaCapabilities)return Promise.resolve({smooth:!0,supported:!0,powerEfficient:!0,failedToQuery:!0});if(i.codec==="webvtt")throw new Error("WebVTT is not supported");let A;return ze(i)?A={type:"media-source",audio:{contentType:de(i),bitrate:i.bitRate,channels:i.channels.toString(),samplerate:i.sampleRate}}:A={type:"media-source",video:{contentType:de(i),bitrate:i.bitRate,width:i.width,height:i.height,framerate:i.frameRate[0]/i.frameRate[1]}},navigator.mediaCapabilities.decodingInfo(A)},bd=.15,Ld=.2,fQ=.4,Jd=.5,Md=.6,Aa=15,Hd={cooldownTime:3e3,maxBufferingEvents:{last10Seconds:0},maxBufferingRatio:{last10Seconds:0},maxRecentDowngradesCount:3,maxDowngradeLookbackMs:60*1e3,minTimeSpentPlaying:{factor:.5,ratio:.1},maxCooldownRatio:2},ta=i=>A=>A>i,Uo=class Uo{constructor(A,t,e,g){I(this,"qualityOfServiceSource");I(this,"config");I(this,"emitter");I(this,"logger");I(this,"isSuspended",!1);I(this,"lastAdaptTime",Date.now());I(this,"isEnabled",!0);I(this,"load",()=>{this.emitter.on("buffer state",this.onBufferState),this.emitter.on("adapted level",this.onAdaptedLevel)});I(this,"unload",()=>{this.emitter.off("buffer state",this.onBufferState),this.emitter.off("adapted level",this.onAdaptedLevel)});I(this,"suspend",()=>{this.isSuspended=!0});I(this,"unsuspend",()=>{this.reset(),this.isSuspended=!1});I(this,"reset",(A=0)=>{this.lastAdaptTime=Date.now()+A});I(this,"getStatistics",()=>({isAbrEnabled:this.isEnabled}));I(this,"isQoSOk",A=>{const t=this.qualityOfServiceSource.getLevelStats(A),{upgradesFromLevel:e,downgradesFromLevel:g}=t!=null?t:{upgradesFromLevel:[],downgradesFromLevel:[]},B=Date.now()-this.config.maxDowngradeLookbackMs,o=g.filter(ta(B)).length,n=e.filter(ta(B)).length;if(o-n>this.config.maxRecentDowngradesCount)return this.logger.debug("Recent downgrades count is over maximum",{downgrades:o-n,maxRecentDowngradesCount:this.config.maxRecentDowngradesCount}),!1;const a=this.qualityOfServiceSource.timeSpentPlayingInAtLeastLevelRatio(A),Q=this.qualityOfServiceSource.timeActive()-this.qualityOfServiceSource.timeSpentBuffering(),E=a*Q/this.config.maxDowngradeLookbackMs;if(o>1&&E<this.config.minTimeSpentPlaying.factor)return this.logger.debug("Time spent playing is too low",{recentDowngrades:o,timeSpentPlayingInAtLeastLevelRatio:a}),!1;if(o>1&&a<this.config.minTimeSpentPlaying.ratio)return this.logger.debug("Time spent playing in at least this level is too low",{recentDowngrades:o,timeSpentPlayingInAtLeastLevelRatio:a}),!1;const h=Math.max(0,g.length-e.length-E),d=Date.now()-this.config.maxDowngradeLookbackMs*h,m=g.filter(ta(d)).length;return m&&h>this.config.maxCooldownRatio?(this.logger.debug("Too many downgrades compared to time spent playing",{downgradesWithinCooldownTime:m,cooldownRatio:h}),!1):!0});I(this,"onBufferState",A=>{if(!this.isEnabled||this.isSuspended||this.lastAdaptTime+this.config.cooldownTime>Date.now())return;const{bufferFullness:t,general:e}=this.qualityOfServiceSource.getMetrics(),g=this.qualityOfServiceSource.getBufferFullnessRegression();if(!g)return;const B=10*1e3,o=30*1e3,{slope:n}=g,a=g.predict(Aa),Q=n<0,E=g.predict(Aa)<fQ&&g.slope<0,h=g.predict(Aa)>Md,d=this.qualityOfServiceSource.timeSpentBufferingLast(o),m=this.qualityOfServiceSource.timeSpentActiveLast(o),y=this.qualityOfServiceSource.bufferingEventsLast(o),f=m>0?d/m:0,G=this.qualityOfServiceSource.getTargetBufferTime();if(t<.15&&f>.8){this.adaptLevel("reconnect");return}if(e.decodeRate<=1){this.adaptLevel("downgrade");return}if(t>Jd&&h&&!this.tooMuchTimeBuffering(B)&&!this.tooManyBufferingEvents(B)){this.adaptLevel("upgrade");return}if(G<1e3){A.playbackState==="buffering"&&(y>5||f>.3)&&this.adaptLevel("downgrade");return}(E||t<bd)&&Q&&t<fQ&&a<Ld&&this.adaptLevel(A.playbackState==="buffering"?"double downgrade":"downgrade")});I(this,"onAdaptedLevel",()=>{this.reset()});I(this,"adaptLevel",A=>this.emitter.emit("adapt level",A));this.qualityOfServiceSource=e,this.config=D(D({},Hd),g),this.emitter=A,this.logger=t}tooMuchTimeBuffering(A){const t=this.qualityOfServiceSource.timeSpentActiveLast(A);return(t?this.qualityOfServiceSource.timeSpentBufferingLast(A)/t:0)>this.config.maxBufferingRatio.last10Seconds}tooManyBufferingEvents(A){return this.qualityOfServiceSource.timeSpentBufferingLast(A)>this.config.maxBufferingEvents.last10Seconds}};I(Uo,"create",(A,t,e,g={})=>new Uo(A,t,e,g));let ea=Uo;const vd={minBufferTime:1500,maxBufferTime:1500,cooldownTime:3e4,maxBufferingEvents:{last30Seconds:3},maxBufferingRatio:{last30Seconds:.15}},fe=class fe{constructor(A,t,e,g,B){I(this,"qualityOfServiceSource");I(this,"targetBufferTimeTarget");I(this,"config");I(this,"emitter");I(this,"logger");I(this,"isSuspended",!1);I(this,"lastIncreaseTime",Date.now());I(this,"bufferTimeAdjustmentCount",0);I(this,"load",()=>{this.emitter.on("buffer state",this.onBufferState)});I(this,"unload",()=>{this.emitter.off("buffer state",this.onBufferState)});I(this,"suspend",()=>{this.isSuspended=!0});I(this,"unsuspend",()=>{this.reset(),this.isSuspended=!1});I(this,"reset",()=>{this.lastIncreaseTime=Date.now()});I(this,"getStatistics",()=>({bufferTimeAdjustmentCount:this.bufferTimeAdjustmentCount}));I(this,"onBufferState",A=>{const{minBufferTime:t,maxBufferTime:e,cooldownTime:g}=this.config;if(this.isSuspended||this.lastIncreaseTime+g>Date.now()||this.targetBufferTimeTarget.targetBufferTime>=e)return;const B=this.qualityOfServiceSource.timeSpentBufferingLast(30*1e3),o=this.qualityOfServiceSource.bufferingEventsLast(30*1e3),n=this.qualityOfServiceSource.timeSpentActiveLast(30*1e3),a=B/n,Q=Math.ceil(Math.max((e-t)/(fe.BUFFER_TIME_MAX_STEPS-1),fe.BUFFER_TIME_STEP_SIZE));(a>this.config.maxBufferingRatio.last30Seconds||o>this.config.maxBufferingEvents.last30Seconds)&&(this.targetBufferTimeTarget.targetBufferTime=Math.min(e,this.targetBufferTimeTarget.targetBufferTime+Q),this.bufferTimeAdjustmentCount++,this.reset())});this.qualityOfServiceSource=e,this.targetBufferTimeTarget=g,this.config=D(D({},vd),B),this.emitter=A,this.logger=t}updateConfig(A){this.config=D(D({},this.config),A)}};I(fe,"BUFFER_TIME_STEP_SIZE",500),I(fe,"BUFFER_TIME_MAX_STEPS",3),I(fe,"create",(A,t,e,g,B={})=>new fe(A,t,e,g,B));let ia=fe;const qd=i=>i?{Authorization:`Bearer ${i}`}:void 0,Kd=(i,A)=>{try{const t=i.ancestorOrigins;if(t&&t.length>0)return Array.from(t).join(",")||void 0}catch(t){}try{if(A.referrer)return new URL(A.referrer).origin||void 0}catch(t){}},Yd=i=>typeof i=="object"&&i!==null&&"message"in i;class Td extends Error{constructor({status:t,url:e,body:g}){const B=vC(g),o=Yd(B)?B.message:`Url ${e.toString()}, Status code: ${t}, Body: ${g}`;super(o);I(this,"status");I(this,"body");I(this,"url");this.status=t,this.body=g,this.url=e,Object.setPrototypeOf(this,new.target.prototype)}}const Pd=i=>typeof i.status=="number",xd=()=>{if(!(typeof window=="undefined"||typeof document=="undefined"))return Kd(window.location,document)},Wd=i=>{const A=xd();if(!A||i.searchParams.has("parentOrigin"))return i;const t=new URL(i.toString());return t.searchParams.append("parentOrigin",A),t},pQ=(i,A)=>c(null,null,function*(){const t=Wd(i),e=yield fetch(t.toString(),D({mode:"cors"},A));if(!e.ok)throw new Td({status:e.status,url:t,body:yield e.text()});return e}),Ia=(i,A)=>c(null,null,function*(){return yield(yield pQ(i,D({},A))).json()}),FQ=(i,A)=>c(null,null,function*(){return pQ(i,D({method:"POST"},A))});function Od(i){var A;return!(typeof i.edges[0]=="string"||i.channels[0]&&"catalog"in i.channels[0]&&typeof((A=i.channels[0])==null?void 0:A.catalog)=="undefined")}const kQ={lbConnect:i=>i.channelGroupId?`connect?channelId=${i.channelId}&channelGroupId=${i.channelGroupId}`:`connect?channelId=${i.channelId}`,thumbnails:(i,A)=>A?i.channelGroupId?`thumbnail/?channelGroupId=${i.channelGroupId}&auth.token=${A}&auth.type=jwt`:i.channelId?`thumbnail/?channelId=${i.channelId}&auth.token=${A}&auth.type=jwt`:"thumbnail":"thumbnail"};class GQ{constructor(A){I(this,"baseUrl");I(this,"tokenFactory");this.baseUrl=new URL("/api/v4/",A.publicEndpoint).toString(),this.tokenFactory=A.tokenFactory}connect(A){return c(this,null,function*(){const{channelId:t,channelGroupId:e}=A,g={channelId:t,channelGroupId:e},B=new URL(kQ.lbConnect(A),this.baseUrl),o=this.getAuthToken(g),n=yield Ia(B,{headers:this.getHeaders(o)});if(Od(n)){const a=n.channels.map(Q=>{const E=this.toChannel(Q,g),h=PC(Q.catalog);return z(D(D({},Q),E),{renditions:h})});return z(D({},n),{channels:a})}else{const a=n.channels.map(Q=>{const E=this.toChannel(Q,g);return D(D({},Q),E)});return z(D({},n),{channels:a})}})}getChannel(A){return c(this,null,function*(){const t={channelId:A},e=new URL(`channel/${A}`,this.baseUrl),g=this.getAuthToken(t),B=yield Ia(e,{headers:this.getHeaders(g)});return this.toChannel(B,t,g)})}getChannels(A){return c(this,null,function*(){const t={channelGroupId:A},e=new URL(`channels/${A}`,this.baseUrl),g=this.getAuthToken(t),B=yield Ia(e,{headers:this.getHeaders(g)}),o=Array.isArray(B)?B:B.channels;return this.toChannels(o,t,g)})}getHeaders(A){var e;return(e=qd(A))!=null?e:{}}getAuthToken(A){return this.tokenFactory?this.tokenFactory(A):void 0}toChannels(A,t,e){return A.map(g=>this.toChannel(g,t,e))}toChannel(A,t,e){const{baseUrl:g,sizes:B}=A.thumbnail,o=g||new URL(kQ.thumbnails(t,e),this.baseUrl),n=B.map(a=>new URL(`?channelId=${A.channelId}&width=${a.width}&height=${a.height}${Vd(t,e)}`,o).toString());return{channelId:A.channelId,name:A.name,isLive:A.isLive,thumbnailUrls:n}}}const Vd=(i,A)=>A?i.channelGroupId?`&channelGroupId=${i.channelGroupId}&auth.token=${A}&auth.type=jwt`:`&auth.token=${A}&auth.type=jwt`:"";var Io=(i=>(i[i.StreamHeaderGroup=4]="StreamHeaderGroup",i[i.FetchHeader=5]="FetchHeader",i[i.StreamHeaderTrack=60]="StreamHeaderTrack",i))(Io||{});const TA={Normal:0,ObjectDoesNotExist:1,GroupDoesNotExist:2,EndOfGroup:3,EndOfTrackAndGroup:4};function RQ(i){switch(i){case TA.Normal:case TA.ObjectDoesNotExist:case TA.GroupDoesNotExist:case TA.EndOfGroup:case TA.EndOfTrackAndGroup:return}throw new Error("Unknown object status "+i)}class Zd{constructor(A,t,e,g,B,o){C(this,Lt);C(this,cI);C(this,hI);C(this,Es);C(this,cs);C(this,dI,new AA);C(this,hs,0);C(this,ds);r(this,Lt,A),r(this,cI,t),r(this,hI,e),r(this,Es,g),r(this,cs,B),r(this,ds,o)}endStatus(){return s(this,dI).promise}groupId(){return s(this,cI)}subscribeId(){return s(this,hI)}next(){return c(this,null,function*(){if(!s(this,dI).pending)return{done:!0,value:void 0};if(yield s(this,Lt).isDone())return{done:!0,value:void 0};const A=s(this,hs)===0?s(this,cI):yield s(this,Lt).readBigVarInt(),t=yield s(this,Lt).readBigVarInt(),e=yield s(this,Lt).readVarInt();let g=0,B=new Uint8Array;return e>0?B=yield s(this,Lt).read(e):g=yield s(this,Lt).readVarInt(),RQ(g),(g===TA.EndOfTrackAndGroup||g===TA.EndOfGroup)&&s(this,dI).resolve(g),_A(this,hs)._++,{done:!1,value:{subscribeId:s(this,hI),trackAlias:s(this,Es),groupId:A,subGroupId:q(0),objectId:t,subscriberPriority:s(this,cs),streamId:s(this,ds),objectStatus:g,payload:B}}})}return(){return c(this,null,function*(){for(;!(yield this.next()).done;);return{done:!0,value:void 0}})}[Symbol.asyncIterator](){return this}[Rt()](){return Promise.resolve()}[Symbol.asyncDispose](){return Promise.resolve()}}Lt=new WeakMap,cI=new WeakMap,hI=new WeakMap,Es=new WeakMap,cs=new WeakMap,dI=new WeakMap,hs=new WeakMap,ds=new WeakMap;class Xd{constructor(A,t,e,g,B){C(this,Ci);C(this,Jt);C(this,lI);C(this,ls);C(this,us);C(this,uI);r(this,Jt,A),r(this,lI,t),r(this,ls,e),r(this,us,g),r(this,uI,B)}streamId(){return s(this,uI)}groups(){return l(this,Ci,oE).call(this)}subscribeId(){return s(this,lI)}return(){return c(this,null,function*(){return yield s(this,Jt).close(),{done:!0,value:void 0}})}[Symbol.asyncIterator](){return this}[Rt()](){return l(this,Ci,uC).call(this)}[Symbol.asyncDispose](){return l(this,Ci,uC).call(this)}}Jt=new WeakMap,lI=new WeakMap,ls=new WeakMap,us=new WeakMap,uI=new WeakMap,Ci=new WeakSet,oE=function(){return ce(this,null,function*(){for(;!(yield new QA(s(this,Jt).isDone()));){const A=yield new QA(s(this,Jt).readBigVarInt()),t=new Zd(s(this,Jt),A,s(this,lI),s(this,ls),s(this,us),s(this,uI));if(yield t,(yield new QA(Promise.race([t.endStatus(),s(this,Jt).closed()])))===TA.EndOfTrackAndGroup)return}})},uC=function(){return s(this,Jt).close().catch(()=>{})};class jd{constructor(A,t,e,g,B,o,n){C(this,Qi);C(this,mt);C(this,wI);C(this,ws);C(this,DI);C(this,Ds);C(this,ms);C(this,Ss,!1);C(this,mI);C(this,No,NA.get().createContext("GroupReader"));r(this,mt,A),r(this,wI,t),r(this,ws,e),r(this,DI,g),r(this,Ds,B),r(this,ms,o),r(this,mI,n)}streamId(){return s(this,mI)}groupId(){return s(this,DI)}subscribeId(){return s(this,wI)}next(){return c(this,null,function*(){try{if((yield s(this,mt).isDone())||s(this,Ss))return{done:!0,value:void 0};const A=yield s(this,mt).readBigVarInt(),t=yield s(this,mt).readVarInt();let e=0,g=new Uint8Array;return t>0?g=yield s(this,mt).read(t):e=yield s(this,mt).readVarInt(),RQ(e),e===TA.EndOfGroup&&r(this,Ss,!0),{done:!1,value:{subscribeId:s(this,wI),trackAlias:s(this,ws),groupId:s(this,DI),subGroupId:s(this,Ds),subscriberPriority:s(this,ms),streamId:s(this,mI),objectId:A,objectStatus:e,payload:g}}}catch(A){return s(this,No).info("Error reading object",{error:A}),{done:!0,value:void 0}}})}return(){return c(this,null,function*(){return yield s(this,mt).close().catch(()=>{}),{done:!0,value:void 0}})}groups(){return l(this,Qi,nE).call(this)}[Symbol.asyncIterator](){return this}[Rt()](){return l(this,Qi,wC).call(this)}[Symbol.asyncDispose](){return l(this,Qi,wC).call(this)}}mt=new WeakMap,wI=new WeakMap,ws=new WeakMap,DI=new WeakMap,Ds=new WeakMap,ms=new WeakMap,Ss=new WeakMap,mI=new WeakMap,No=new WeakMap,Qi=new WeakSet,nE=function(){return ce(this,null,function*(){yield this})},wC=function(){return s(this,mt).close().catch(()=>{})};function UQ(i,A){return c(this,null,function*(){const t=yield i.readVarInt();switch(t){case Io.StreamHeaderGroup:{const e=yield i.readBigVarInt(),g=yield i.readBigVarInt(),B=yield i.readBigVarInt(),o=yield i.readBigVarInt(),n=yield i.readUnsigned8();return new jd(i,e,g,B,o,n,A)}case Io.StreamHeaderTrack:{const e=yield i.readBigVarInt(),g=yield i.readBigVarInt(),B=yield i.readUnsigned8();return new Xd(i,e,g,B,A)}default:throw new Error("Unexpected message type "+t)}})}class zd{constructor(A,t){C(this,pe);C(this,ys);r(this,pe,A),r(this,ys,t)}start(A){s(this,pe).addEventListener("message",t=>{if(typeof t.data=="object"&&t.data instanceof ArrayBuffer){const e=new Uint8Array(t.data);e[0]==s(this,ys)&&A.enqueue(e.subarray(1))}}),s(this,pe).addEventListener("error",()=>A.error(new Error("WebSocket error"))),s(this,pe).addEventListener("close",()=>HC(()=>A.close()))}cancel(A){s(this,pe).close(void 0,A)}}pe=new WeakMap,ys=new WeakMap;class _d{constructor(A){C(this,Mt);C(this,ri,null);C(this,Ei,null);C(this,ci,null);r(this,Mt,A)}start(A){r(this,ri,t=>{if(typeof t.data=="object"&&t.data instanceof ArrayBuffer){const e=new Uint8Array(t.data),g=e[0]||0,B=g&127,o=(g>>7&1)>0;if(B&&B!==0){const n=e.subarray(1);A.enqueue([o,B,n])}}}),r(this,Ei,()=>HC(()=>A.close())),r(this,ci,()=>A.error(new Error("WebSocket error"))),s(this,Mt).addEventListener("message",s(this,ri)),s(this,Mt).addEventListener("error",s(this,ci)),s(this,Mt).addEventListener("close",s(this,Ei))}cancel(A){s(this,ri)&&s(this,Mt).removeEventListener("message",s(this,ri)),s(this,ci)&&s(this,Mt).removeEventListener("error",s(this,ci)),s(this,Ei)&&s(this,Mt).removeEventListener("close",s(this,Ei))}}Mt=new WeakMap,ri=new WeakMap,Ei=new WeakMap,ci=new WeakMap;function $d(i,A){return i[A]<<8|i[A+1]}function Al(i,A){return(i[A]<<24|i[A+1]<<16|i[A+2]<<8|i[A+3])>>>0}class go{constructor(A,t){C(this,rA);C(this,LA);C(this,fs);C(this,hi);C(this,fA,0);C(this,bo,new TextDecoder);r(this,LA,A),r(this,fs,t),r(this,hi,t.getReader())}readUnsigned8(){return c(this,null,function*(){return yield l(this,rA,Xi).call(this,1),s(this,LA)[_A(this,fA)._++]})}readString(){return c(this,null,function*(){const A=yield this.readVarInt(),t=yield this.read(A);return s(this,bo).decode(t)})}readVarInt(){return c(this,null,function*(){const A=yield this.readBigVarInt();if(A>Number.MAX_SAFE_INTEGER)throw new Error("VarInt is too large");return Number(A)})}readBigVarInt(){return c(this,null,function*(){yield l(this,rA,Xi).call(this,1);const A=s(this,LA)[s(this,fA)],t=(A&192)>>6;switch(s(this,LA)[s(this,fA)]=A&63,t){case 0:return q(s(this,LA)[_A(this,fA)._++]);case 1:{yield l(this,rA,Xi).call(this,2);const e=s(this,fA);return r(this,fA,s(this,fA)+2),q($d(s(this,LA),e))}case 2:{yield l(this,rA,Xi).call(this,4);const e=s(this,fA);return r(this,fA,s(this,fA)+4),q(Al(s(this,LA),e))}case 3:{yield l(this,rA,Xi).call(this,8);const e=s(this,fA);r(this,fA,s(this,fA)+8);const g=new DataView(s(this,LA).buffer,s(this,LA).byteOffset+e,8);return q(g.getBigUint64(0))}default:throw new Error("Invalid VarInt size")}})}read(A){return c(this,null,function*(){return yield l(this,rA,Xi).call(this,A),l(this,rA,DC).call(this,A)})}readAll(){return c(this,null,function*(){for(;yield l(this,rA,Fn).call(this););return l(this,rA,DC).call(this,l(this,rA,kB).call(this))})}isDone(){return c(this,null,function*(){return l(this,rA,kB).call(this)>0?!1:(yield l(this,rA,Fn).call(this))==0})}closed(){return c(this,null,function*(){return s(this,hi).closed})}close(){return c(this,null,function*(){return s(this,hi).releaseLock(),s(this,fs).cancel()})}}LA=new WeakMap,fs=new WeakMap,hi=new WeakMap,fA=new WeakMap,bo=new WeakMap,rA=new WeakSet,kB=function(){return s(this,LA).length-s(this,fA)},Fn=function(){return c(this,null,function*(){const{value:A,done:t}=yield s(this,hi).read();if(t)return Promise.resolve(0);if(l(this,rA,kB).call(this)===0)r(this,LA,A);else{const g=s(this,LA).subarray(s(this,fA)),B=new Uint8Array(g.length+A.length);B.set(g),B.set(A,g.byteLength),r(this,LA,B)}return r(this,fA,0),Promise.resolve(A.length)})},Xi=function(A){return c(this,null,function*(){for(;l(this,rA,kB).call(this)<A;)if((yield l(this,rA,Fn).call(this))===0)throw new Error("Read failed")})},aE=function(A){return s(this,LA).subarray(s(this,fA),s(this,fA)+A)},DC=function(A){const t=l(this,rA,aE).call(this,A);return r(this,fA,s(this,fA)+t.length),t};class NQ{constructor(A){C(this,Fs);C(this,Ht,new Uint8Array(8));C(this,ps,s(this,Ht).subarray(0,1));C(this,Lo,s(this,Ht).subarray(0,2));C(this,Jo,s(this,Ht).subarray(0,4));C(this,Mo,s(this,Ht).subarray(0,8));C(this,SI);C(this,te);C(this,Ho,new TextEncoder);r(this,SI,A),r(this,te,s(this,SI).getWriter())}writeString(A){return c(this,null,function*(){const t=s(this,Ho).encode(A);return yield this.writeVarInt(t.length),this.write(t)})}write(A){return s(this,te).write(A)}writeUnsigned8(A){return s(this,Ht)[0]=A,s(this,te).write(s(this,ps))}writeVarInt(A){if(A<0)throw new Error(`VarInt can not be negative: ${A}`);return s(this,te).write(l(this,Fs,mC).call(this,KQ(A,s(this,Ht),0)))}writeBigVarInt(A){if(A<0)throw new Error(`VarInt can not be negative: ${A}`);return s(this,te).write(l(this,Fs,mC).call(this,YQ(A,s(this,Ht),0)))}flush(){return c(this,null,function*(){})}close(){return c(this,null,function*(){s(this,te).releaseLock(),yield s(this,SI).close()})}}Ht=new WeakMap,ps=new WeakMap,Lo=new WeakMap,Jo=new WeakMap,Mo=new WeakMap,SI=new WeakMap,te=new WeakMap,Ho=new WeakMap,Fs=new WeakSet,mC=function(A){switch(A){case 1:return s(this,ps);case 2:return s(this,Lo);case 4:return s(this,Jo);default:return s(this,Mo)}};const bQ={OPEN:1},qo=class qo{constructor(A){C(this,zA,0);C(this,at,new Uint8Array(qo.DEFAULT_BUFFER_SIZE));C(this,di);C(this,vo,new TextEncoder);r(this,di,A)}writeString(A){return c(this,null,function*(){const t=s(this,vo).encode(A);return yield this.writeVarInt(t.length),this.write(t)})}ensureBufferSpace(A){if(s(this,at).length-s(this,zA)>=A)return;const t=new Uint8Array(s(this,at).length+A);t.set(s(this,at)),r(this,at,t)}write(A){return this.ensureBufferSpace(A.length),s(this,at).set(A,s(this,zA)),r(this,zA,s(this,zA)+A.byteLength),Promise.resolve()}writeUnsigned8(A){return this.ensureBufferSpace(1),s(this,at)[s(this,zA)]=A,r(this,zA,s(this,zA)+1),Promise.resolve()}writeVarInt(A){if(A<0)throw new Error(`VarInt can not be negative: ${A}`);return this.ensureBufferSpace(8),r(this,zA,s(this,zA)+KQ(A,s(this,at),s(this,zA))),Promise.resolve()}writeBigVarInt(A){if(A<0)throw new Error(`VarInt can not be negative: ${A}`);return this.ensureBufferSpace(8),r(this,zA,s(this,zA)+YQ(A,s(this,at),s(this,zA))),Promise.resolve()}flush(){if(s(this,di).readyState!==bQ.OPEN)throw new Error("Writer is not open");return s(this,di).send(s(this,at).subarray(0,s(this,zA))),r(this,zA,0),Promise.resolve()}close(){return s(this,di).close(),Promise.resolve()}};zA=new WeakMap,at=new WeakMap,di=new WeakMap,vo=new WeakMap,I(qo,"DEFAULT_BUFFER_SIZE",1024);let Ug=qo;const LQ=2**6-1,JQ=2**14-1,MQ=2**30-1,tl=Number.MAX_SAFE_INTEGER,el=q(2)**q(62)-q(1);function HQ(i,A,t){A[t]=i>>8&255,A[t+1]=i&255}function vQ(i,A,t){A[t]=i>>>24&255,A[t+1]=i>>16&255,A[t+2]=i>>8&255,A[t+3]=i&255}function qQ(i,A,t){new DataView(A.buffer,A.byteOffset+t,8).setBigUint64(0,i)}function KQ(i,A,t){if(i<=LQ)return A[t]=i,1;if(i<=JQ)return HQ(i|16384,A,t),2;if(i<=MQ)return vQ(i|2147483648,A,t),4;if(i<=tl)return qQ(BigInt(i)|BigInt(0xc000000000000000),A,t),8;throw new Error(`overflow, value larger than 53-bits: ${i}`)}function YQ(i,A,t){if(i<=LQ)return A[t]=Number(i),1;if(i<=JQ)return HQ(Number(i)|16384,A,t),2;if(i<=MQ)return vQ(Number(i)|2147483648,A,t),4;if(i<=el)return qQ(i|BigInt(0xc000000000000000),A,t),8;throw new Error(`overflow, value larger than 62-bits: ${i}`)}var J=(i=>(i[i.SubscribeUpdate=2]="SubscribeUpdate",i[i.Subscribe=3]="Subscribe",i[i.SubscribeOk=4]="SubscribeOk",i[i.SubscribeError=5]="SubscribeError",i[i.Announce=6]="Announce",i[i.AnnounceOk=7]="AnnounceOk",i[i.AnnounceError=8]="AnnounceError",i[i.Unannounce=9]="Unannounce",i[i.Unsubscribe=10]="Unsubscribe",i[i.SubscribeDone=11]="SubscribeDone",i[i.AnnounceCancel=12]="AnnounceCancel",i[i.TrackStatusRequest=13]="TrackStatusRequest",i[i.TrackStatus=14]="TrackStatus",i[i.Goaway=16]="Goaway",i[i.ClientSetup=64]="ClientSetup",i[i.ServerSetup=65]="ServerSetup",i[i.Unknown=255]="Unknown",i))(J||{});function so(i){return c(this,null,function*(){const A=yield i.readVarInt();if(A<1||A>32)throw new Error(`namespace must be between 1 and 32, got ${A}`);const t=[];for(let e=0;e<A;e++)t.push(yield i.readString());return t})}function ga(i,A){return c(this,null,function*(){yield i.writeVarInt(A.length);for(const t of A)yield i.writeString(t)})}const Bo=q(2);function II(i){return c(this,null,function*(){const A=yield i.readVarInt(),t=new Map;for(let e=0;e<A;e++){const g=yield i.readBigVarInt(),B=yield i.read(yield i.readVarInt());t.set(g,{type:g,payload:B})}return t})}function gI(i,A){return c(this,null,function*(){yield i.writeVarInt(A.size);for(const[t,e]of A)yield i.writeBigVarInt(t),yield i.writeVarInt(e.payload.length),yield i.write(e.payload)})}function il(i){return c(this,null,function*(){return{type:J.Announce,namespace:yield so(i),params:yield II(i)}})}function Il(i,A){return c(this,null,function*(){yield ga(i,A.namespace),yield gI(i,A.params)})}function gl(i){return c(this,null,function*(){return{type:J.AnnounceOk,namespace:yield so(i)}})}function sl(i,A){return c(this,null,function*(){yield ga(i,A.namespace)})}const Bl={"latest-group":1,"latest-object":2,"absolute-start":3,"absolute-range":4};function ol(i){return c(this,null,function*(){const A=yield i.readVarInt();switch(A){case 1:return{type:"latest-group"};case 2:return{type:"latest-object"};case 3:return{type:"absolute-start",start:{group:yield i.readBigVarInt(),object:yield i.readBigVarInt()}};case 4:return{type:"absolute-range",start:{group:yield i.readBigVarInt(),object:yield i.readBigVarInt()},end:{group:yield i.readBigVarInt(),object:yield i.readBigVarInt()}};default:throw new Error(`Invalid location type ${A}`)}})}function nl(i,A){return c(this,null,function*(){const t=Bl[A.type];switch(yield i.writeVarInt(t),A.type){case"absolute-range":yield i.writeBigVarInt(A.start.group),yield i.writeBigVarInt(A.start.object),yield i.writeBigVarInt(A.end.group),yield i.writeBigVarInt(A.end.object);break;case"absolute-start":yield i.writeBigVarInt(A.start.group),yield i.writeBigVarInt(A.start.object);break;case"latest-object":case"latest-group":break;default:throw new Error(`Invalid location type ${t}`)}})}function TQ(i){return c(this,null,function*(){const A=yield i.readUnsigned8();switch(A){case 0:return"inherit-publisher";case 1:return"ascending";case 2:return"descending";default:throw new Error(`Invalid location type ${A}`)}})}function PQ(i,A){return c(this,null,function*(){switch(A){case"inherit-publisher":yield i.writeUnsigned8(0);break;case"ascending":yield i.writeUnsigned8(1);break;case"descending":yield i.writeUnsigned8(2);break}})}function al(i){return c(this,null,function*(){const A=yield i.readBigVarInt(),t=yield i.readBigVarInt(),e=yield so(i),g=yield i.readString(),B=yield i.readUnsigned8(),o=yield TQ(i),n=yield ol(i),a=yield II(i);if(n.type==="absolute-range"){const Q=n.start.group>n.end.group,E=n.start.group===n.end.group&&n.start.object>n.end.object;if(Q||E)throw new Error("Invalid filter range")}return{type:J.Subscribe,id:A,trackAlias:t,namespace:e,name:g,subscriberPriority:B,groupOrder:o,filterType:n,params:a}})}function Cl(i,A){return c(this,null,function*(){yield i.writeBigVarInt(A.id),yield i.writeBigVarInt(A.trackAlias),yield ga(i,A.namespace),yield i.writeString(A.name),yield i.writeUnsigned8(A.subscriberPriority),yield PQ(i,A.groupOrder),yield nl(i,A.filterType),yield gI(i,A.params)})}const sa={TrackEnded:3,Expired:6};function Ql(i){return c(this,null,function*(){const A=yield i.readBigVarInt(),t=yield i.readVarInt(),e=yield i.readString(),g=(yield i.readUnsigned8())==1;let B;return g&&(B={group:yield i.readBigVarInt(),object:yield i.readBigVarInt()}),{type:J.SubscribeDone,id:A,errorCode:t,reason:e,finalInfo:B}})}function rl(i,A){return c(this,null,function*(){yield i.writeBigVarInt(A.id),yield i.writeVarInt(A.errorCode),yield i.writeString(A.reason),yield i.writeUnsigned8(A.finalInfo?1:0),A.finalInfo&&(yield i.writeBigVarInt(A.finalInfo.group),yield i.writeBigVarInt(A.finalInfo.object))})}function El(i){return c(this,null,function*(){return{type:J.SubscribeError,id:yield i.readBigVarInt(),errorCode:yield i.readBigVarInt(),reason:yield i.readString(),trackAlias:yield i.readBigVarInt()}})}function cl(i,A){return c(this,null,function*(){yield i.writeBigVarInt(A.id),yield i.writeBigVarInt(A.errorCode),yield i.writeString(A.reason),yield i.writeBigVarInt(A.trackAlias)})}function hl(i){return c(this,null,function*(){const A=yield i.readBigVarInt(),t=yield i.readBigVarInt(),e=yield TQ(i),g=(yield i.readUnsigned8())==1;let B;if(e=="inherit-publisher")throw new Error("SusbcribeOk cannot have inherit publisher group order");g&&(B={group:yield i.readBigVarInt(),object:yield i.readBigVarInt()});const o=yield II(i);return{type:J.SubscribeOk,id:A,groupOrder:e,expires:t,largestInfo:B,params:o}})}function dl(i,A){return c(this,null,function*(){yield i.writeBigVarInt(A.id),yield i.writeBigVarInt(A.expires),yield PQ(i,A.groupOrder),yield i.writeUnsigned8(A.largestInfo?1:0),A.largestInfo&&(yield i.writeBigVarInt(A.largestInfo.group),yield i.writeBigVarInt(A.largestInfo.object)),yield gI(i,A.params)})}function ll(i){return c(this,null,function*(){const A=yield i.readBigVarInt(),t=yield i.readBigVarInt(),e=yield i.readBigVarInt(),g=yield i.readBigVarInt(),B=yield i.readBigVarInt(),o=yield i.readUnsigned8(),n=yield II(i),a=t>g,Q=t===g&&e>B;if(a||Q)throw new Error("Invalid filter range");return{type:J.SubscribeUpdate,id:A,start:{group:t,object:e},end:{group:g,object:B},subscriberPriority:o,params:n}})}function ul(i,A){return c(this,null,function*(){yield i.writeBigVarInt(A.id),yield i.writeBigVarInt(A.start.group),yield i.writeBigVarInt(A.start.object),yield i.writeBigVarInt(A.end.group),yield i.writeBigVarInt(A.end.object),yield i.writeUnsigned8(A.subscriberPriority),yield gI(i,A.params)})}const wl={Subscriber:2},oo={Role:q(0)},xQ={Draft07:4278190087};function WQ(i){return c(this,null,function*(){const A=yield i.readVarInt();return A===xQ.Draft07?{type:"known",value:A}:{type:"unknown",value:A}})}function Dl(i,A){return c(this,null,function*(){yield i.writeVarInt(A.supportedVersions.length);for(const t of A.supportedVersions)yield i.writeVarInt(t.value);yield gI(i,A.parameters)})}function ml(i){return c(this,null,function*(){const A=[],t=yield i.readVarInt();for(let g=0;g<t;g++)A.push(yield WQ(i));const e=yield II(i);if(!e.has(oo.Role))throw new Error("Role parameter is required");return{type:J.ClientSetup,supportedVersions:A,parameters:e}})}function Sl(i,A){return c(this,null,function*(){yield i.writeVarInt(A.selectedVersion.value),yield gI(i,A.parameters)})}function yl(i){return c(this,null,function*(){const A=yield WQ(i);if(A.type!=="known")throw new Error("Expected known version");const t=yield II(i);if(!t.has(oo.Role))throw new Error("Role parameter is required");return{type:J.ServerSetup,selectedVersion:A,parameters:t}})}function fl(i){return c(this,null,function*(){return{type:J.Unsubscribe,id:yield i.readBigVarInt()}})}function pl(i,A){return c(this,null,function*(){yield i.writeBigVarInt(A.id)})}class OQ{constructor(A){C(this,hA);C(this,ee);C(this,yI,new Uint8Array);r(this,ee,A)}write(A){return c(this,null,function*(){yield s(this,ee).writeVarInt(A.type);const t=new Ug({close:()=>{},readyState:bQ.OPEN,send:e=>{r(this,yI,new Uint8Array(e))}});switch(A.type){case J.Subscribe:yield l(this,hA,rE).call(this,t,A);break;case J.Announce:yield l(this,hA,uE).call(this,t,A);break;case J.SubscribeOk:yield l(this,hA,EE).call(this,t,A);break;case J.SubscribeUpdate:yield l(this,hA,hE).call(this,t,A);break;case J.SubscribeError:yield l(this,hA,cE).call(this,t,A);break;case J.SubscribeDone:yield l(this,hA,dE).call(this,t,A);break;case J.Unsubscribe:yield l(this,hA,lE).call(this,t,A);break;case J.ClientSetup:yield l(this,hA,CE).call(this,t,A);break;case J.ServerSetup:yield l(this,hA,QE).call(this,t,A);break;case J.AnnounceOk:yield l(this,hA,wE).call(this,t,A);break;default:throw new Error(`Unknown message type: ${A.type}`)}yield t.flush(),yield s(this,ee).writeVarInt(s(this,yI).byteLength),yield s(this,ee).write(s(this,yI)),yield s(this,ee).flush()})}close(){return c(this,null,function*(){return s(this,ee).close()})}}ee=new WeakMap,yI=new WeakMap,hA=new WeakSet,CE=function(A,t){return c(this,null,function*(){yield Dl(A,t)})},QE=function(A,t){return c(this,null,function*(){yield Sl(A,t)})},rE=function(A,t){return c(this,null,function*(){yield Cl(A,t)})},EE=function(A,t){return c(this,null,function*(){yield dl(A,t)})},cE=function(A,t){return c(this,null,function*(){yield cl(A,t)})},hE=function(A,t){return c(this,null,function*(){yield ul(A,t)})},dE=function(A,t){return c(this,null,function*(){yield rl(A,t)})},lE=function(A,t){return c(this,null,function*(){yield pl(A,t)})},uE=function(A,t){return c(this,null,function*(){yield Il(A,t)})},wE=function(A,t){return c(this,null,function*(){yield sl(A,t)})};class Fl{constructor(A,t){C(this,fI);C(this,ks);C(this,Gs);r(this,fI,A),r(this,ks,new OQ(A)),r(this,Gs,t)}write(A){return c(this,null,function*(){yield s(this,fI).write(s(this,Gs)),yield s(this,ks).write(A)})}close(){return s(this,fI).close()}}fI=new WeakMap,ks=new WeakMap,Gs=new WeakMap,q(1025),q(1027),q(1033),q(2048);class kl extends Error{constructor(A,t){super(A),this.errorCode=t}}function Gl(i){return c(this,null,function*(){return{type:J.AnnounceError,namespace:yield so(i),errorCode:yield i.readBigVarInt(),reason:yield i.readString()}})}function Rl(i,A,t){return c(this,null,function*(){return{type:J.Unknown,messageType:A,payload:yield i.read(t)}})}class VQ{constructor(A){C(this,pA);r(this,pA,A)}cancel(){return s(this,pA).close()}read(){return c(this,null,function*(){const A=yield s(this,pA).readVarInt(),t=yield s(this,pA).readVarInt();switch(A){case J.ServerSetup:return yl(s(this,pA));case J.ClientSetup:return ml(s(this,pA));case J.Subscribe:return al(s(this,pA));case J.SubscribeOk:return hl(s(this,pA));case J.SubscribeDone:return Ql(s(this,pA));case J.SubscribeError:return El(s(this,pA));case J.SubscribeUpdate:return ll(s(this,pA));case J.Unsubscribe:return fl(s(this,pA));case J.Announce:return il(s(this,pA));case J.AnnounceOk:return gl(s(this,pA));case J.AnnounceError:return Gl(s(this,pA))}return Rl(s(this,pA),q(A),t)})}}pA=new WeakMap;const kI=class kI{constructor(A,t){C(this,Ko);C(this,Rs);C(this,pI);C(this,FI,new AA);C(this,Us,new AA);r(this,Rs,A),r(this,pI,t),s(this,FI).resolve()}write(A){return c(this,null,function*(){const t=yield l(this,Ko,DE).call(this);try{yield s(this,Rs).write(A)}finally{t.resolve()}})}markPostHandshake(){s(this,Us).resolve()}postHandshake(){return s(this,Us).promise}read(){return c(this,null,function*(){return s(this,pI).read()})}cancel(){return s(this,pI).cancel()}static wrapWebsocket(A){const t=new ReadableStream(new zd(A,s(kI,Yo))),e=new VQ(new go(new Uint8Array([]),t)),g=new Fl(new Ug(A),new Uint8Array([0]));return new kI(g,e)}static wrapWebTransport(A){const t=A.writable,e=A.readable;return new kI(new OQ(new NQ(t)),new VQ(new go(new Uint8Array,e)))}};Rs=new WeakMap,pI=new WeakMap,FI=new WeakMap,Us=new WeakMap,Ko=new WeakSet,DE=function(){const A=new AA,t=s(this,FI).promise.then(()=>A);return r(this,FI,A),t},Yo=new WeakMap,C(kI,Yo,0);let no=kI;function ZQ(i,A){return c(this,null,function*(){yield i.write({type:J.ClientSetup,supportedVersions:[{type:"known",value:xQ.Draft07}],parameters:new Map([[oo.Role,{type:oo.Role,payload:new Uint8Array([A])}]])});const t=yield i.read();if(i.markPostHandshake(),t.type!==J.ServerSetup)throw new Error("Expected server setup message");if(t.selectedVersion.type!=="known")throw new Error("Expected known version")})}class Ul{constructor(A){I(this,"announce");C(this,GI,new AA);this.announce=A}onOk(A){s(this,GI).resolve(A)}onError(A){const t=new kl(A.reason,A.errorCode);return s(this,GI).reject(t),t}ok(){return s(this,GI).promise}}GI=new WeakMap;function Nl(i){const A=new Ul(i);return new bl(A)}class bl{constructor(A){I(this,"state");this.state=A}}const UI=class UI{constructor(A){I(this,"subscribe");C(this,RI,new AA);C(this,Fe,new AA);C(this,li,new AA);C(this,To,Date.now());C(this,ui,new AA);C(this,St);switch(this.subscribe=A,A.filterType.type){case"absolute-start":r(this,St,{startGroup:A.filterType.start.group});break;case"absolute-range":r(this,St,{startGroup:A.filterType.start.group,endGroup:A.filterType.end.group});break}}onUpdate(A){r(this,St,{startGroup:A.start.group}),A.end.group>q(0)&&(s(this,St).endGroup=A.end.group-q(1))}onError(A){const t=new Error(A.reason);return s(this,RI).reject(t),s(this,Fe).reject(t),t}onDone(A){A.finalInfo&&(s(this,St)||r(this,St,{startGroup:q(0)}),s(this,St).endGroup=A.finalInfo.group),s(this,Fe).resolve(A)}onUnsubscribe(A){s(this,li).resolve(A)}onOk(A){const t=Math.max(0,Date.now()-s(this,To)),e=Number(A.expires);if(e>0){const g=Math.max(UI.minGraceTime,Math.min(e/10,UI.maxGraceTime));Promise.race([he(e-g-t),this.done().catch(F)]).then(()=>s(this,ui).resolve(this.expiryState())).catch(F)}s(this,RI).resolve(A)}done(){return s(this,Fe).promise}ok(){return s(this,RI).promise}range(){return s(this,St)}close(){s(this,ui).promise.catch(F),s(this,ui).reject(new Error("Subscription closed"))}expiryState(){return s(this,Fe).resolved&&s(this,Fe).resolved.errorCode!==sa.Expired?"done":s(this,li).pending?"active":"unsubscribed"}unsubscribed(){return s(this,li).promise}isUnsubscribed(){return s(this,li).resolved}expiryNotification(){return s(this,ui).promise}};RI=new WeakMap,Fe=new WeakMap,li=new WeakMap,To=new WeakMap,ui=new WeakMap,St=new WeakMap,I(UI,"maxGraceTime",15e3),I(UI,"minGraceTime",3e3);let ao=UI;class Ll{constructor(A){C(this,vA);C(this,Ns,!1);r(this,vA,A)}write(A){return c(this,null,function*(){s(this,Ns)||(yield s(this,vA).writeVarInt(Io.StreamHeaderGroup),yield s(this,vA).writeBigVarInt(A.subscribeId),yield s(this,vA).writeBigVarInt(A.trackAlias),yield s(this,vA).writeBigVarInt(A.groupId),yield s(this,vA).writeBigVarInt(A.subGroupId),yield s(this,vA).writeUnsigned8(A.subscriberPriority),r(this,Ns,!0)),yield s(this,vA).writeBigVarInt(A.objectId),yield s(this,vA).writeVarInt(A.payload.length),A.payload.length>0?yield s(this,vA).write(A.payload):yield s(this,vA).writeVarInt(A.objectStatus),yield s(this,vA).flush()})}close(){return c(this,null,function*(){yield s(this,vA).close()})}}vA=new WeakMap,Ns=new WeakMap;class Jl{constructor(A,t,e,g){C(this,Po);C(this,bs);C(this,Ct);C(this,Ls);C(this,Js);C(this,NI);C(this,Ms);r(this,bs,t),r(this,Ct,A),r(this,Ls,e),r(this,Js,g),r(this,Ms,NA.get().createContext(`SubscriptionWriter:${A.subscribe.name}`))}finalInfo(){return s(this,NI)}run(){return c(this,null,function*(){yield Promise.race([l(this,Po,mE).call(this).catch(A=>s(this,Ms).error("error writing subscription",A)),s(this,Ct).unsubscribed(),s(this,Ct).done(),s(this,Ct).expiryNotification().catch(F)])})}done(A,t){return c(this,null,function*(){if(s(this,Ct).isUnsubscribed())return;const e={type:J.SubscribeDone,id:s(this,Ct).subscribe.id,errorCode:A,reason:t,finalInfo:s(this,NI)};s(this,Ct).onDone(e),yield s(this,Js).push(e)})}[Rt()](){return this.done(sa.TrackEnded,"Track ended")}[Symbol.asyncDispose](){return this.done(sa.TrackEnded,"Track ended")}}bs=new WeakMap,Ct=new WeakMap,Ls=new WeakMap,Js=new WeakMap,NI=new WeakMap,Ms=new WeakMap,Po=new WeakSet,mE=function(){return c(this,null,function*(){try{for(var o=EA(s(this,bs)),n,a,Q;n=!(a=yield o.next()).done;n=!1){const E=a.value;var A=[];try{const h=s(this,Ct).range();if(h&&(h.startGroup>E.id||h.endGroup&&h.endGroup<E.id))break;const d=yield s(this,Ls).openSendStream();const m=new Ll(d);const y=ct(A,new Ml(m,E.consume(),s(this,Ct)),!0);yield y.run();r(this,NI,y.finalGroup())}catch(t){var e=t,g=!0}finally{var B=ht(A,e,g);B&&(yield B)}}}catch(a){Q=[a]}finally{try{n&&(a=o.return)&&(yield a.call(o))}finally{if(Q)throw Q[0]}}})};class Ml{constructor(A,t,e){C(this,wi);C(this,Hs);C(this,bI);C(this,vs);C(this,LI);r(this,wi,A),r(this,Hs,t),r(this,bI,e),r(this,LI,NA.get().createContext(`GroupSubscriptionWriter:${e.subscribe.name}`))}finalGroup(){return s(this,vs)}run(){return c(this,null,function*(){s(this,LI).debug("write group");try{for(var A=EA(s(this,Hs)),t,e,g;t=!(e=yield A.next()).done;t=!1){const B=e.value;yield s(this,wi).write({subscribeId:s(this,bI).subscribe.id,trackAlias:s(this,bI).subscribe.trackAlias,subGroupId:q(0),subscriberPriority:0,groupId:B.groupId,objectId:B.objectId,objectStatus:B.objectStatus,payload:B.payload}),r(this,vs,{group:B.groupId,object:B.objectId})}}catch(e){g=[e]}finally{try{t&&(e=A.return)&&(yield e.call(A))}finally{if(g)throw g[0]}}s(this,LI).debug("write group done")})}[Rt()](){return s(this,wi).close().catch(F)}[Symbol.asyncDispose](){return s(this,wi).close().catch(F)}}wi=new WeakMap,Hs=new WeakMap,bI=new WeakMap,vs=new WeakMap,LI=new WeakMap;class Hl{constructor(A,t,e){C(this,ke);I(this,"state");C(this,qs);C(this,Di);this.state=A,r(this,qs,t),r(this,Di,e)}ok(A){return c(this,null,function*(){var a,Q,E;const t=(a=this.state.range())==null?void 0:a.startGroup,e=A.latest(),g=e==null?void 0:e.id,B=(E=(Q=e==null?void 0:e.latest())==null?void 0:Q.objectId)!=null?E:q(0),o=A.consume(t!=null?t:g),n={type:J.SubscribeOk,id:this.state.subscribe.id,expires:q(0),groupOrder:"ascending",params:new Map,largestInfo:g?{group:g,object:B}:void 0};return yield s(this,Di).push(n),new Jl(this.state,o,s(this,qs),s(this,Di))})}invalidRange(){return l(this,ke,mg).call(this,q(1),"Invalid range")}retryTrackAlias(){return l(this,ke,mg).call(this,q(2),"Retry track alias")}trackDoesNotExist(){return l(this,ke,mg).call(this,q(3),"Track does not exist")}unauthorized(){return l(this,ke,mg).call(this,q(4),"Unauthorized")}timeout(){return l(this,ke,mg).call(this,q(5),"Timeout")}[Rt()](){return this.trackDoesNotExist()}[Symbol.asyncDispose](){return this.trackDoesNotExist()}}qs=new WeakMap,Di=new WeakMap,ke=new WeakSet,mg=function(A,t){const e={type:J.SubscribeError,id:this.state.subscribe.id,errorCode:A,reason:t,trackAlias:this.state.subscribe.trackAlias};return s(this,Di).push(e)},Lr=[jA({context:"Session",enter:"info",error:"error"})];class Ba{constructor(A,t,e){Zi(eC,5,this);C(this,JI);C(this,Ks);C(this,MI);C(this,mi,NA.get().createContext("Publisher"));C(this,Ge,new YA(new Map));C(this,Re,new YA(new Map));C(this,Ue,new Ze(10));r(this,JI,A),r(this,Ks,t),r(this,MI,e)}announce(A){return c(this,null,function*(){if(s(this,Ge).current().has(A.join("/")))throw new Error("Duplicate announcement");const t=new Map,e=s(this,JI).authToken();e&&t.set(Bo,{type:Bo,payload:new TextEncoder().encode(e)});const g={type:J.Announce,namespace:A,params:t},B=Nl(g);if(s(this,Ge).update(n=>n.set(g.namespace.join("/"),B)),yield s(this,MI).push(g),!(yield Promise.race([B.state.ok(),s(this,JI).closed()])))throw new Error("Session closed")})}close(){s(this,Re).current().forEach(A=>A.close()),s(this,Re).close(),s(this,Ge).close(),s(this,Ue).close()}incomingSubscriptions(){return s(this,Ue)}onMessage(A){return c(this,null,function*(){switch(A.type){case J.Subscribe:{const t=new ao(A);if(s(this,Re).update(e=>(e.set(A.id,t),e)),s(this,Ue).isFull()){const e=yield s(this,Ue).pop();yield e==null?void 0:e.timeout()}yield s(this,Ue).push(new Hl(t,s(this,Ks),s(this,MI)))}break;case J.SubscribeUpdate:{const t=s(this,Re).current().get(A.id);t||s(this,mi).debug("No subscription found",A),t==null||t.onUpdate(A)}break;case J.Unsubscribe:{const t=s(this,Re).current().get(A.id);t||s(this,mi).debug("No subscription found",A),t==null||t.onUnsubscribe(A)}break;case J.AnnounceOk:{const t=s(this,Ge).current().get(A.namespace.join("/"));t||s(this,mi).debug("No announcement found",A),t==null||t.state.onOk(A)}break;case J.AnnounceError:{const t=s(this,Ge).current().get(A.namespace.join("/"));t||s(this,mi).debug("No announcement found",A),t==null||t.state.onError(A)}break}})}}eC=Vi(null),JI=new WeakMap,Ks=new WeakMap,MI=new WeakMap,mi=new WeakMap,Ge=new WeakMap,Re=new WeakMap,Ue=new WeakMap,ZA(eC,1,"announce",Lr,Ba),Oe(eC,Ba);function vl(i,A){const t=new ao(A),[e,g]=Ve(100),B=new ql(t,e),o=new XQ(i,t,g);return[B,o]}class ql{constructor(A,t){I(this,"state");C(this,Si);this.state=A,r(this,Si,t)}onDone(A){this.state.onDone(A)}onData(A){return s(this,Si).push(A)}onError(A){const t=this.state.onError(A);s(this,Si).abort(t)}close(){this.state.close(),s(this,Si).close()}}Si=new WeakMap;class XQ{constructor(A,t,e){Zi(iC,5,this);C(this,KI);C(this,HI);C(this,RA);C(this,vI);C(this,qI,new AA);r(this,HI,A),r(this,RA,t),r(this,vI,e)}get id(){return s(this,RA).subscribe.id}get trackAlias(){return s(this,RA).subscribe.trackAlias}get name(){return s(this,RA).subscribe.name}range(){return s(this,RA).range()}expiryNotification(){return s(this,RA).expiryNotification()}update(A,t){return c(this,null,function*(){const e={type:J.SubscribeUpdate,id:s(this,RA).subscribe.id,start:{group:A,object:q(0)},end:{group:t+q(1),object:q(0)},params:new Map,subscriberPriority:0};s(this,RA).onUpdate(e),yield s(this,HI).push(e)})}unsubscribe(){return c(this,null,function*(){const A={type:J.Unsubscribe,id:s(this,RA).subscribe.id};s(this,RA).onUnsubscribe(A),yield s(this,HI).push(A)})}close(){var A,t;return s(this,qI).resolve(),(t=(A=s(this,vI)).return)==null?void 0:t.call(A)}closed(){return s(this,qI).promise}done(){return s(this,RA).done()}expiryState(){return s(this,RA).expiryState()}unsubscribed(){return s(this,RA).isUnsubscribed()}return(){return c(this,null,function*(){return s(this,qI).resolve(),yield this.unsubscribe(),{done:!0,value:void 0}})}groups(){return ce(this,null,function*(){var A,t;try{for(var m=EA(s(this,vI)),y,f,G;y=!(f=yield new QA(m.next())).done;y=!1){var n=f.value;var a=[];try{const b=ct(a,n,!0);try{for(var e=EA(b.groups()),g,B,o;g=!(B=yield new QA(e.next())).done;g=!1){const R=B.value;const v=(A=s(this,RA).range())==null?void 0:A.startGroup,P=(t=s(this,RA).range())==null?void 0:t.endGroup;if(v&&R.groupId()<v)return{done:!0,value:void 0};if(P&&R.groupId()>P)return{done:!0,value:void 0};yield R}}catch(B){o=[B]}finally{try{g&&(B=e.return)&&(yield new QA(B.call(e)))}finally{if(o)throw o[0]}}}catch(Q){var E=Q,h=!0}finally{var d=ht(a,E,h);d&&(yield new QA(d))}}}catch(f){G=[f]}finally{try{y&&(f=m.return)&&(yield new QA(f.call(m)))}finally{if(G)throw G[0]}}})}[Symbol.asyncIterator](){return this.groups()}objects(){return ce(this,null,function*(){try{for(var B=EA(this.groups()),o,n,a;o=!(n=yield new QA(B.next())).done;o=!1){const Q=n.value;try{for(var A=EA(Q),t,e,g;t=!(e=yield new QA(A.next())).done;t=!1){const E=e.value;yield E}}catch(e){g=[e]}finally{try{t&&(e=A.return)&&(yield new QA(e.call(A)))}finally{if(g)throw g[0]}}}}catch(n){a=[n]}finally{try{o&&(n=B.return)&&(yield new QA(n.call(B)))}finally{if(a)throw a[0]}}})}[(Jr=[jA({context:"SubscriptionConsumer",enter:"info"})],Rt())](){return l(this,KI,GB).call(this)}[Symbol.asyncDispose](){return l(this,KI,GB).call(this)}}iC=Vi(null),HI=new WeakMap,RA=new WeakMap,vI=new WeakMap,qI=new WeakMap,KI=new WeakSet,GB=function(){return c(this,null,function*(){return yield this.close(),this.unsubscribe()})},GB=ZA(iC,17,"#dispose",Jr,KI,GB),Oe(iC,XQ);const Kl=2e3;qr=[jA({context:"Session",return:"debug"})],vr=[jA({context:"Session",enter:"info",error:"error"})],Hr=[jA({context:"Session",enter:"debug"})],Mr=[jA({context:"Session",enter:"debug"})];class Co{constructor(A,t){Zi(YI,5,this);C(this,vt);C(this,ie);I(this,"nextSubscribeId",q(0));C(this,At,new YA(new Map));C(this,yi);C(this,fi,NA.get().createContext("Subscriber"));r(this,ie,A),r(this,yi,t),l(this,vt,kn).call(this).catch(F)}subscribe(g,B){return c(this,arguments,function*(A,t,e=new Map){const o=this.nextSubscribeId++,n=s(this,ie).authToken();n&&e.set(Bo,{type:Bo,payload:new TextEncoder().encode(n)});const a={type:J.Subscribe,namespace:A,name:t.name,id:o,trackAlias:o,groupOrder:t.groupOrder,subscriberPriority:t.priority,filterType:t.filterType,params:e},[Q,E]=vl(s(this,yi),a);if(s(this,At).update(d=>d.set(o,Q)),yield s(this,yi).push(a),!(yield Promise.race([Q.state.ok(),s(this,ie).closed()])))throw new Error("Session closed");return E.closed().then(()=>Promise.race([he(Kl),this.closed()])).then(()=>l(this,vt,Sg).call(this,E.id)).catch(()=>l(this,vt,Sg).call(this,E.id)),E})}closed(){return s(this,ie).closed()}transportType(){return s(this,ie).transportType()}url(){return s(this,ie).url()}onMessage(A){return c(this,null,function*(){switch(A.type){case J.Announce:yield s(this,yi).push({type:J.AnnounceOk,namespace:A.namespace});break;case J.SubscribeOk:{const t=s(this,At).current().get(A.id);t&&t.state.onOk(A)}break;case J.SubscribeError:{const t=s(this,At).current().get(A.id);t||s(this,fi).debug("No subscription found",A),t==null||t.onError(A),l(this,vt,Sg).call(this,A.id)}break;case J.SubscribeDone:{const t=s(this,At).current().get(A.id);t||s(this,fi).debug("No subscription found",A),t==null||t.onDone(A)}break}})}onObjectReader(A){return c(this,null,function*(){const t=s(this,At).current().get(A.subscribeId());if(!t){s(this,fi).warn("No subscription found",A.subscribeId());return}yield t.onData(A)})}close(){s(this,At).current().forEach(A=>A.close()),s(this,At).close()}}YI=Vi(null),ie=new WeakMap,At=new WeakMap,yi=new WeakMap,fi=new WeakMap,vt=new WeakSet,kn=function(){return c(this,null,function*(){try{for(var A=EA(s(this,At)),t,e,g;t=!(e=yield A.next()).done;t=!1){const B=e.value;const o=[...B.values()].map(n=>n.state.subscribe);s(this,fi).debug("current subscriptions",o)}}catch(e){g=[e]}finally{try{t&&(e=A.return)&&(yield e.call(A))}finally{if(g)throw g[0]}}})},Sg=function(A){s(this,At).isClosed()||s(this,At).update(t=>(t.delete(A),t))},kn=ZA(YI,17,"#observeChanges",qr,vt,kn),ZA(YI,1,"subscribe",vr,Co),ZA(YI,1,"close",Hr,Co),Sg=ZA(YI,17,"#deleteSubscription",Mr,vt,Sg),Oe(YI,Co);class oa{constructor(A,t){Zi(xI,5,this);C(this,FA);C(this,yt);C(this,Ys);C(this,pi);C(this,TI,NA.get().createContext("Session"));I(this,"subscriber");I(this,"publisher");C(this,PI);const[e,g]=Ve(100);r(this,yt,A),r(this,pi,g),this.subscriber=new Co(this,e),this.publisher=new Ba(this,A,e),r(this,Ys,l(this,FA,yE).call(this)),r(this,PI,new YA(t)),this.closed().then(()=>this.close()).catch(F)}updateAuthToken(A){s(this,PI).update(A)}authToken(){return s(this,PI).current()}transportType(){return s(this,yt).transportType()}url(){return s(this,yt).url()}closed(){return s(this,Ys)}close(){try{this.subscriber.close(),this.publisher.close(),s(this,pi).cancel("closing"),s(this,yt).close()}catch(A){s(this,TI).warn("Error closing session",A)}}[(Pr=[jA({context:"Session",return:"info",error:"error"})],Tr=[jA({context:"Session",return:"info",error:"error"})],Yr=[jA({context:"Session",return:"info",error:"error"})],Kr=[jA({context:"Session",enter:"debug"})],LC())](){l(this,FA,RB).call(this)}[Symbol.dispose](){l(this,FA,RB).call(this)}}xI=Vi(null),yt=new WeakMap,Ys=new WeakMap,pi=new WeakMap,TI=new WeakMap,PI=new WeakMap,FA=new WeakSet,SE=function(A){return c(this,null,function*(){var t,e;s(this,TI).debug("received message",A),yield(t=this.subscriber)==null?void 0:t.onMessage(A),yield(e=this.publisher)==null?void 0:e.onMessage(A),A.type,J.Goaway})},yE=function(){return c(this,null,function*(){return(yield Promise.all([l(this,FA,Rn).call(this),l(this,FA,Un).call(this),l(this,FA,Gn).call(this)])).find(t=>t instanceof Error)})},Gn=function(){return c(this,null,function*(){try{try{for(var A=EA(s(this,pi)),t,e,g;t=!(e=yield A.next()).done;t=!1){const B=e.value;s(this,TI).debug("sending message",B),yield s(this,yt).writeMessage(B)}}catch(e){g=[e]}finally{try{t&&(e=A.return)&&(yield e.call(A))}finally{if(g)throw g[0]}}}catch(B){return B}})},Rn=function(){return c(this,null,function*(){try{for(yield s(this,yt).afterHandshake();;){const A=yield s(this,yt).readMessage().catch(()=>{});if(!A)break;yield l(this,FA,SE).call(this,A)}}catch(A){return A}finally{s(this,pi).cancel("closing")}})},Un=function(){return c(this,null,function*(){var A;try{for(;;){const t=yield s(this,yt).objectStream();if(!t)break;yield(A=this.subscriber)==null?void 0:A.onObjectReader(t)}}catch(t){return t}})},RB=function(){this.close()},Gn=ZA(xI,17,"#runOutgoingMessages",Pr,FA,Gn),Rn=ZA(xI,17,"#runControl",Tr,FA,Rn),Un=ZA(xI,17,"#runObjects",Yr,FA,Un),RB=ZA(xI,17,"#dispose",Kr,FA,RB),Oe(xI,oa);const Yl=128;class Tl{constructor(A,t,e){C(this,qA);C(this,Qt);C(this,Ts);C(this,Fi,!0);C(this,WI,!1);C(this,Ps);r(this,Qt,A),r(this,Ts,t),r(this,Ps,e)}writeUnsigned8(A){return c(this,null,function*(){return l(this,qA,ji).call(this),yield l(this,qA,zi).call(this),s(this,Qt).writeUnsigned8(A)})}writeVarInt(A){return c(this,null,function*(){return l(this,qA,ji).call(this),yield l(this,qA,zi).call(this),s(this,Qt).writeVarInt(A)})}writeBigVarInt(A){return c(this,null,function*(){return l(this,qA,ji).call(this),yield l(this,qA,zi).call(this),s(this,Qt).writeBigVarInt(A)})}write(A){return c(this,null,function*(){return l(this,qA,ji).call(this),yield l(this,qA,zi).call(this),s(this,Qt).write(A)})}writeString(A){return c(this,null,function*(){return l(this,qA,ji).call(this),yield l(this,qA,zi).call(this),s(this,Qt).writeString(A)})}flush(){return c(this,null,function*(){l(this,qA,ji).call(this),r(this,Fi,!0),yield s(this,Qt).flush()})}close(){return c(this,null,function*(){s(this,WI)||(r(this,Fi,!0),yield l(this,qA,zi).call(this,!1),yield s(this,Qt).flush(),r(this,WI,!0),s(this,Ps).call(this))})}}Qt=new WeakMap,Ts=new WeakMap,Fi=new WeakMap,WI=new WeakMap,Ps=new WeakMap,qA=new WeakSet,ji=function(){if(s(this,WI))throw new Error("Stream is closed")},zi=function(A=!0){if(s(this,Fi))return r(this,Fi,!1),s(this,Qt).writeUnsigned8(s(this,Ts)|(A?Yl:0))};class Pl{constructor(A,t){C(this,xo);C(this,Ne);C(this,Ie);C(this,OI);C(this,ki);C(this,ge,new Map);C(this,VI,NA.get().createContext("WebSocketConnection"));C(this,ZI,new Set(new Array(128).fill(0).map((A,t)=>t+1)));r(this,Ne,A),r(this,Ie,t),r(this,OI,new ReadableStream(new _d(A))),s(this,Ne).addEventListener("close",()=>{s(this,Ie).markPostHandshake(),s(this,ge).forEach(e=>e.close())})}openSendStream(){const A=s(this,ZI).values().next().value;if(!A)throw new Error("No stream IDs available");return s(this,ZI).delete(A),Promise.resolve(new Tl(new Ug(s(this,Ne)),A,()=>l(this,xo,fE).call(this,A)))}transportType(){return"websocket"}url(){return s(this,Ne).url}afterHandshake(){return s(this,Ie).postHandshake()}objectStream(){return c(this,null,function*(){var A;for(;;){r(this,ki,s(this,OI).getReader());try{const{value:t,done:e}=yield s(this,ki).read();if(e)return;const[g,B,o]=t;if(s(this,ge).has(q(B))){const n=s(this,ge).get(q(B));if(!n)throw new Error("Stream not found");o.length>0&&(yield n.push(o)),g||(s(this,VI).debug("Closing stream",{streamId:B}),n.close(),s(this,ge).delete(q(B)))}else{let E;s(this,VI).debug("Creating new stream",{streamId:B});const[n,a]=Ve(1e3),Q=new ReadableStream({pull(h){return c(this,null,function*(){const d=yield a.pop();d?h.enqueue(d):h.close()})}});if(s(this,ge).set(q(B),n),g||(s(this,VI).debug("Closing new stream",{streamId:B}),yield Q.cancel(),s(this,ge).delete(q(B))),o.length>0)return yield UQ(new go(o,Q),B)}}finally{(A=s(this,ki))==null||A.releaseLock()}}})}close(){var A;return s(this,Ie).cancel().catch(F),s(this,OI).cancel("closing").catch(F),(A=s(this,ki))==null||A.cancel("closing").catch(F),s(this,Ne).close()}closed(){return Promise.resolve()}writeMessage(A){return c(this,null,function*(){yield s(this,Ie).write(A)})}readMessage(){return c(this,null,function*(){return s(this,Ie).read()})}}Ne=new WeakMap,Ie=new WeakMap,OI=new WeakMap,ki=new WeakMap,ge=new WeakMap,VI=new WeakMap,ZI=new WeakMap,xo=new WeakSet,fE=function(A){s(this,ZI).add(A)};class xl{constructor(A,t,e){C(this,Oo);C(this,se);C(this,Be);C(this,be,new Ze(100));C(this,xs);C(this,Ws,0);C(this,Wo,NA.get().createContext("WebTransportConnection"));r(this,xs,e),r(this,se,A),r(this,Be,t),l(this,Oo,pE).call(this).catch(g=>{s(this,Wo).debug("Incoming streams handling ended with error",g),s(this,Be).markPostHandshake(),s(this,be).close()}),s(this,se).closed.then(()=>{s(this,Be).markPostHandshake(),s(this,be).close()})}openSendStream(){return c(this,null,function*(){const A=yield s(this,se).createUnidirectionalStream();return new NQ(A)})}transportType(){return"webtransport"}url(){return s(this,xs)}afterHandshake(){return s(this,Be).postHandshake()}closed(){return c(this,null,function*(){yield s(this,se).closed})}close(){s(this,se).close()}writeMessage(A){return c(this,null,function*(){yield s(this,Be).write(A)})}readMessage(){return c(this,null,function*(){return s(this,Be).read()})}objectStream(){return c(this,null,function*(){return s(this,be).pop()})}}se=new WeakMap,Be=new WeakMap,be=new WeakMap,xs=new WeakMap,Ws=new WeakMap,Wo=new WeakMap,Oo=new WeakSet,pE=function(){return c(this,null,function*(){const A=s(this,se).incomingUnidirectionalStreams.getReader();for(;;){const{value:t,done:e}=yield A.read();if(e){s(this,be).close();return}const g=new go(new Uint8Array,t);yield s(this,be).push(UQ(g,s(this,Ws))),_A(this,Ws)._++}})};function na(i){return c(this,null,function*(){const A=new WebSocket(i.wsUrl||i.url);A.binaryType="arraybuffer",yield new Promise((B,o)=>{A.addEventListener("error",()=>o(new Error("WebSocket error")),{once:!0}),A.addEventListener("open",B,{once:!0})});const t=no.wrapWebsocket(A);ZQ(t,i.role).catch(()=>{A.close()});const e=new Pl(A,t);return new oa(e,i.authToken)})}function Wl(i){return c(this,null,function*(){const A="60b82e8021689e163c1041b4475ef9c86e7565bc45d1a0aa43f5148769f461c7",t=new Uint8Array(A.length/2);for(let a=0;a<t.length;a+=1)t[a]=parseInt(A.slice(2*a,2*a+2),16);const e=new WebTransport(i.url,{congestionControl:"low-latency"});yield Promise.race([e.ready,e.closed.then(()=>Promise.reject(new Error("WebTransport closed")))]);const g=yield e.createBidirectionalStream(),B=no.wrapWebTransport(g);ZQ(B,i.role).catch(()=>{e.close()});const o=new xl(e,B,i.url.toString());return new oa(o,i.authToken)})}function Ol(i){return c(this,null,function*(){if(self.WebTransport&&(i==null?void 0:i.preferredTransport)!=="websocket"&&i.url.protocol.startsWith("https")){const A=Wl(i).catch(()=>na(i)),t=yield Promise.race([A,he(i.websocketFallbackTimeoutMs)]);return t||na(i)}return na(i)})}class jt{constructor(){C(this,oe,{name:"",priority:0,groupOrder:"ascending",filterType:{type:"latest-group"}})}name(A){return s(this,oe).name=A,this}priority(A){return s(this,oe).priority=A,this}groupOrder(A){return s(this,oe).groupOrder=A,this}startGroup(A){return s(this,oe).filterType={type:"absolute-start",start:{group:A,object:q(0)}},this}range(A,t){return s(this,oe).filterType={type:"absolute-range",start:{group:A,object:q(0)},end:{group:t,object:q(0)}},this}build(){return s(this,oe)}}oe=new WeakMap;class jQ{constructor(A,t){C(this,XI);C(this,Os);r(this,XI,A),r(this,Os,t)}subscribe(A,t=new Map){return s(this,XI).subscribe(this.namespace(),A,t)}closed(){return s(this,XI).closed()}namespace(){return s(this,Os).namespace}}XI=new WeakMap,Os=new WeakMap;function Vl(i,A){return["com.vindral.moq",i]}function $e(i){const A=i[1];if(!A)throw new Error("namespace must contain a channel ID");return A}function Zl(i){return"tracks"in i}function Xl(i){const A=new TextDecoder().decode(i);return JSON.parse(A)}const IC=class IC{constructor(A,t){C(this,Zs);C(this,tt);C(this,qt);C(this,Gi,new x(100));C(this,rt);C(this,Vs);C(this,Vo,A=>c(this,null,function*(){if(!A)return s(this,tt).close();if(s(this,rt))return;const t=s(this,Gi).items().reduce((e,g)=>e<g?e:g,A);r(this,rt,l(this,Zs,SC).call(this,t,A)),s(this,rt).size===0&&(yield s(this,tt).close())}));r(this,tt,A),r(this,qt,t),A.done().then(e=>c(this,null,function*(){var g;return s(this,Vo).call(this,(g=e.finalInfo)==null?void 0:g.group)})).catch(F),r(this,Vs,A.groups())}static subscribe(A,t){return c(this,null,function*(){const e=yield A.subscribe(t);return new IC(e,void 0)})}subscribeId(){return s(this,tt).id}name(){return s(this,tt).name}largestGroupId(){return s(this,qt)}needsRenewal(){return s(this,tt).expiryState()==="active"&&s(this,rt)===void 0}endOfTrack(A){const t=s(this,Gi).items().reduce((e,g)=>e<g?e:g,A);return this.update(t,A)}update(A,t){return c(this,null,function*(){return r(this,rt,l(this,Zs,SC).call(this,A,t)),s(this,rt).size===0&&(yield s(this,tt).close()),s(this,tt).update(A,t)})}unsubscribe(){return s(this,tt).unsubscribe()}next(){return c(this,null,function*(){var e;if(s(this,rt)&&s(this,rt).size===0)return{done:!0,value:void 0};const A=yield s(this,Vs).next();if(A.done)return A;const t=A.value.groupId();return(e=s(this,rt))==null||e.delete(t),s(this,Gi).push(t),s(this,qt)||r(this,qt,t),r(this,qt,s(this,qt)<t?t:s(this,qt)),A})}return(){return s(this,tt).return()}[Symbol.asyncIterator](){return this}};tt=new WeakMap,qt=new WeakMap,Gi=new WeakMap,rt=new WeakMap,Vs=new WeakMap,Vo=new WeakMap,Zs=new WeakSet,SC=function(A,t){const e=new Set;for(let g=A;g<=t;g++)e==null||e.add(g);return s(this,Gi).items().forEach(g=>{e==null||e.delete(g)}),e};let Qo=IC;const gC=class gC{constructor(A){C(this,Xs);C(this,ft);C(this,Ri);C(this,ne,new Ze(10));C(this,Kt);C(this,js,(A,t)=>c(this,null,function*(){var h=[];try{const e=ct(h,yield s(this,ft).lock());const g={subscribeId:e.value.subscribeId()};if(!e.value.needsRenewal()){s(this,Kt).debug("Subscription does not need renewal",g);return}const B=e.value.largestGroupId();const o=B!==void 0;const n=new jt().name(t.name).priority(t.priority).groupOrder(t.groupOrder);g.largestGroupId=B;s(this,Kt).debug("Renewing subscription",g);switch(t.filterType.type){case"absolute-range":s(this,Kt).debug("Absolute range is not renewed",g);return;case"absolute-start":case"latest-group":case"latest-object":o&&n.startGroup(B+q(1));break}const a=n.build();g.newTrack=a;const[Q]=yield Promise.all([A.subscribe(a),o?e.value.update(B,B):e.value.unsubscribe()]);Q.done().then(()=>l(this,Xs,yC).call(this,Q)).catch(F);Q.expiryNotification().then(()=>s(this,js).call(this,A,a)).catch(F);const E=new Qo(Q,B);e.value=E;yield s(this,ne).push(E);s(this,Kt).info("Subscription renewed",g)}catch(d){var m=d,y=!0}finally{ht(h,m,y)}}));r(this,ft,new ac(A)),r(this,Ri,A),r(this,Kt,NA.get().createContext(`Renewable '${A.name()}'`))}static subscribe(A,t,e){return c(this,null,function*(){const g=e==null?void 0:e.params,B=e==null?void 0:e.largestGroupId,o=yield A.subscribe(t,g),n=new gC(new Qo(o,B));return o.done().then(()=>{var a;return l(a=n,Xs,yC).call(a,o)}).catch(F),o.expiryNotification().then(()=>{var a;return s(a=n,js).call(a,A,t)}).catch(F),n})}largestGroupId(){return s(this,ft).unsafeValue().largestGroupId()}update(A,t){return c(this,null,function*(){var g=[];try{const e=ct(g,yield s(this,ft).lock());s(this,ne).close();return e.value.update(A,t)}catch(B){var o=B,n=!0}finally{ht(g,o,n)}})}endOfTrack(A){return c(this,null,function*(){var e=[];try{const t=ct(e,yield s(this,ft).lock());s(this,ne).close();return t.value.endOfTrack(A)}catch(g){var B=g,o=!0}finally{ht(e,B,o)}})}unsubscribe(){return c(this,null,function*(){var t=[];try{const A=ct(t,yield s(this,ft).lock());s(this,ne).close();return A.value.unsubscribe()}catch(e){var g=e,B=!0}finally{ht(t,g,B)}})}return(){return c(this,null,function*(){var t=[];try{const A=ct(t,yield s(this,ft).lock());s(this,ne).close();return A.value.return()}catch(e){var g=e,B=!0}finally{ht(t,g,B)}})}next(){return c(this,null,function*(){var t,e;const A=yield s(this,Ri).next();if(A.done){yield(e=(t=s(this,Ri)).return)==null?void 0:e.call(t);const g=yield s(this,ne).pop();if(g)return r(this,Ri,g),this.next()}return A})}[Symbol.asyncIterator](){return this}objects(){return ce(this,null,function*(){try{for(var n=EA(this),a,Q,E;a=!(Q=yield new QA(n.next())).done;a=!1){var A=Q.value;var t=[];try{const h=ct(t,A,!0);yield*hC(h)}catch(e){var g=e,B=!0}finally{var o=ht(t,g,B);o&&(yield new QA(o))}}}catch(Q){E=[Q]}finally{try{a&&(Q=n.return)&&(yield new QA(Q.call(n)))}finally{if(E)throw E[0]}}})}};ft=new WeakMap,Ri=new WeakMap,ne=new WeakMap,Kt=new WeakMap,Xs=new WeakSet,yC=function(A){return c(this,null,function*(){var t;if(A.unsubscribed()||(t=A.range())!=null&&t.endGroup){s(this,Kt).info("Server initiated subscribe done but the subscription is already closing");return}if(s(this,ft).unsafeValue().subscribeId()!==A.id){s(this,Kt).info("subscribeId mismatch - the subscription already has been renewed");return}return this.return()})},js=new WeakMap;let ue=gC;const jl="catalog";function zQ(i){const A=Xl(i.payload);if(!Zl(A))throw new Error("unexpected catalog type");return A}const Xo=class Xo{constructor(A,t,e){C(this,Zo);C(this,Le);C(this,zs);C(this,_s);C(this,$s);r(this,zs,A),r(this,Le,t),r(this,_s,e),r(this,$s,l(this,Zo,FE).call(this)),this.closed().finally(()=>s(this,Le).close()).catch(F)}catalog(){return s(this,Le)}closed(){return s(this,$s)}close(){return c(this,null,function*(){return s(this,Le).close(),(yield s(this,zs).promise).unsubscribe()})}static start(A,t){return c(this,null,function*(){const e=AA.fromPromise(ue.subscribe(A,new jt().name(t.catalogName||jl).groupOrder("ascending").build())),g=AA.fromPromise(e.promise.then(a=>a.objects()));if(t.catalog)return new Xo(e,new YA(t.catalog),g);const o=yield(yield g.promise).next();if(!o.value)throw new Error("No catalog found");const n=zQ(o.value);return new Xo(e,new YA(n),g)})}};Le=new WeakMap,zs=new WeakMap,_s=new WeakMap,$s=new WeakMap,Zo=new WeakSet,FE=function(){return c(this,null,function*(){const A=yield s(this,_s).promise;try{for(var t=EA(A),e,g,B;e=!(g=yield t.next()).done;e=!1){const o=g.value;if(o.objectStatus!==TA.Normal)continue;const n=zQ(o);s(this,Le).update(n)}}catch(g){B=[g]}finally{try{e&&(g=t.return)&&(yield g.call(t))}finally{if(B)throw B[0]}}})};let aa=Xo;class zl{constructor(A,t,e,g){C(this,eB);C(this,AB);C(this,jI);C(this,tB);I(this,"track");C(this,zI,NA.get().createContext("CmafGroup"));this.track=g,r(this,AB,e),r(this,jI,A),r(this,tB,t)}[Symbol.asyncIterator](){return ce(this,null,function*(){const A={name:this.track.trackObject.name,namespace:this.track.namespace};s(this,zI).debug("start",D({},A));try{for(var t=EA(s(this,jI)),e,g,B;e=!(g=yield new QA(t.next())).done;e=!1){const o=g.value;if(o.objectStatus===TA.EndOfTrackAndGroup&&(yield new QA(this.track.endOfTrack(o.groupId))),o.objectStatus!==TA.Normal)continue;const n=s(this,tB).createFragment(o.payload),a=n.timescale(),Q=n.baseMediaDecodeTime()/a*1e3,E=n.duration()/a*1e3,h=Q+E,d=s(this,AB)/1e3*a;n.updateBaseMediaDecodeTime(n.baseMediaDecodeTime()-d);const m=this.track.timestampRange();if(m&&Q>=m[1])break;s(this,zI).debug("fragment",z(D({},A),{startTime:Q,endTime:h,subscribeId:o.subscribeId,groupId:o.groupId,objectId:o.objectId,streamId:o.streamId})),yield[o.groupId,n]}}catch(g){B=[g]}finally{try{e&&(g=t.return)&&(yield new QA(g.call(t)))}finally{if(B)throw B[0]}}s(this,zI).debug("end",D({},A))})}[Rt()](){return l(this,eB,fC).call(this)}[Symbol.asyncDispose](){return l(this,eB,fC).call(this)}}AB=new WeakMap,jI=new WeakMap,tB=new WeakMap,zI=new WeakMap,eB=new WeakSet,fC=function(){return c(this,null,function*(){var A,t;return yield(t=(A=s(this,jI)).return)==null?void 0:t.call(A),Promise.resolve()})};const _I=class _I{constructor(A,t,e,g,B){C(this,iB);C(this,Yt);C(this,IB);C(this,gB);I(this,"trackObject");I(this,"namespace");this.trackObject=A,this.namespace=t,r(this,Yt,e),r(this,iB,g),r(this,IB,B)}static subscribe(o,n,a){return c(this,arguments,function*(A,t,{timestampOffsetMs:e,startGroup:g,params:B}){var y;if(t.format!=="cmaf")throw new Error("format must be cmaf");const Q=new jt().name(t.name);g&&Q.startGroup(g);const E=Q.build();if(t.initTrack){const f=new jt().name(t.initTrack).build(),[G,b]=yield Promise.all([l(y=_I,jo,kE).call(y,A,f),ue.subscribe(A,E,{params:B,largestGroupId:g?g-q(1):void 0})]),R=new cQ(G);return new _I(t,A.namespace(),b,R,e)}lA(t.initData,"no init data found on track");const h=GC(t.initData),d=new cQ(new Uint8Array(h)),m=yield ue.subscribe(A,E,{params:B,largestGroupId:g?g-q(1):void 0});return new _I(t,A.namespace(),m,d,e)})}largestGroupId(){return s(this,Yt).largestGroupId()}stopAfterTimestampReached(A){r(this,gB,[0,A])}timestampRange(){return s(this,gB)}endOfTrack(A){return s(this,Yt).endOfTrack(A)}update(A,t){return s(this,Yt).update(A,t)}unsubscribe(){return c(this,null,function*(){return s(this,Yt).unsubscribe()})}next(){return c(this,null,function*(){const A=yield s(this,Yt).next();return A.done?A:{done:!1,value:new zl(A.value,s(this,iB),s(this,IB),this)}})}return(){return c(this,null,function*(){return yield s(this,Yt).return(),{done:!0,value:void 0}})}[Symbol.asyncIterator](){return this}[Rt()](){return this.unsubscribe()}[Symbol.asyncDispose](){return c(this,null,function*(){return this.unsubscribe()})}};iB=new WeakMap,Yt=new WeakMap,IB=new WeakMap,gB=new WeakMap,jo=new WeakSet,kE=function(A,t){return c(this,null,function*(){var B=[];try{const e=ct(B,yield A.subscribe(t),!0);const g=yield e.objects().next();if(g.done)throw new Error("No init object");yield e.close();return g.value.payload}catch(o){var n=o,a=!0}finally{var Q=ht(B,n,a);Q&&(yield Q)}})},C(_I,jo);let Ca=_I;const _Q=1e4,_l=3e4,sC=class sC{constructor(A,t,e){C(this,Ni);C(this,zo,NA.get().createContext("Timeline"));C(this,Je,new YA([]));C(this,Ui);C(this,sB);C(this,BB);C(this,oB);r(this,sB,A),r(this,BB,e),r(this,Ui,t),r(this,oB,l(this,Ni,pC).call(this,s(this,Ui))),this.closed().finally(()=>s(this,Je).close()).catch(F)}closed(){return s(this,oB)}close(){return c(this,null,function*(){return(yield s(this,Ui).promise).unsubscribe()})}timeline(){const[A,t]=s(this,Je).value();return A}timestampWallclockOffset(){return dt(this.timeline().map(A=>A.mediaPts-A.wallclock))}static start(A,t){const e=AA.fromPromise(ue.subscribe(A,new jt().name(t).groupOrder("ascending").build()));return new sC(A,e,t)}waitForWallclockTime(A){return c(this,null,function*(){return yield s(this,Je).waitFor(t=>!!t.find(e=>e.wallclock>=A)),this.timeline()})}waitForTimelineToHaveMinDuration(){return c(this,null,function*(){return yield s(this,Je).waitFor(A=>{const t=A[0],e=A[A.length-1];return!t||!e?!1:e.wallclock-t.wallclock>_Q}),this.timeline()})}};zo=new WeakMap,Je=new WeakMap,Ui=new WeakMap,sB=new WeakMap,BB=new WeakMap,oB=new WeakMap,Ni=new WeakSet,pC=function(A){return c(this,null,function*(){const t=yield A.promise;try{for(var m=EA(t),y,f,G;y=!(f=yield m.next()).done;y=!1){var n=f.value;var a=[];try{const b=ct(a,n,!0);try{for(var e=EA(b),g,B,o;g=!(B=yield e.next()).done;g=!1){const R=B.value;if(R.objectStatus!==TA.Normal)continue;const v=$l(R.payload);s(this,Je).update(P=>{var _,T;for(P.push(...v),P.sort((kA,aA)=>kA.wallclock-aA.wallclock);P[0]&&((T=(_=P[P.length-1])==null?void 0:_.wallclock)!=null?T:0)-P[0].wallclock>_l;)P.shift();return P}),t===s(this,Ui).resolved&&R.groupId>q(0)&&R.objectId==q(0)&&l(this,Ni,GE).call(this,R.groupId).catch(P=>{s(this,zo).warn("backfill failed",P)})}}catch(B){o=[B]}finally{try{g&&(B=e.return)&&(yield B.call(e))}finally{if(o)throw o[0]}}}catch(Q){var E=Q,h=!0}finally{var d=ht(a,E,h);d&&(yield d)}}}catch(f){G=[f]}finally{try{y&&(f=m.return)&&(yield f.call(m))}finally{if(G)throw G[0]}}})},GE=function(A){return c(this,null,function*(){const t=A-q(1),e=this.timeline(),g=e[0],B=e[e.length-1];if(!g||!B||B.wallclock-g.wallclock>_Q)return;const o=AA.fromPromise(ue.subscribe(s(this,sB),new jt().name(s(this,BB)).groupOrder("ascending").range(t,t).build()));return l(this,Ni,pC).call(this,o)})};let Qa=sC;function $l(i){var t;const A=new TextDecoder("utf-8").decode(i).split(`
|
|
2
|
-
`);return(t=A[0])!=null&&t.startsWith("MEDIA_PTS")&&A.shift(),A.filter(e=>e.length>0).map(e=>{const[g,B,o,n,a]=e.split(",");if(!g||!n)throw new Error(`invalid timeline row: ${e}`);return{mediaPts:parseInt(g),groupId:B?parseInt(B):void 0,objectId:o?parseInt(o):void 0,wallclock:parseInt(n),metadata:a}})}function Au(i){return typeof i.language=="string"}const BC=class BC{constructor(A,t,e,g,B){C(this,_o,new yQ);C(this,nB);C(this,Me);C(this,$I,0);I(this,"trackObject");I(this,"namespace");r(this,Me,A),r(this,nB,t),this.trackObject=e,this.namespace=g,r(this,$I,B)}static subscribe(A,t,e){return c(this,null,function*(){if(!Au(t))throw new Error("track object language is required");const g=new jt().name(t.name).build(),B=yield ue.subscribe(A,g),o=B.objects();return new BC(B,o,t,A.namespace(),e)})}largestGroupId(){return s(this,Me).largestGroupId()}update(A,t){return s(this,Me).update(A,t)}unsubscribe(){return s(this,Me).unsubscribe()}next(){return c(this,null,function*(){for(;;){const A=yield s(this,nB).next();if(A.done)return A;if(A.value.objectStatus!==TA.Normal)continue;const t=new TextDecoder().decode(A.value.payload),e=s(this,_o).parse(t).map(B=>(B.startTime-=s(this,$I)/1e3,B.endTime-=s(this,$I)/1e3,B));return{done:!1,value:{language:this.trackObject.language,cues:e}}}})}return(){return c(this,null,function*(){return yield s(this,Me).return(),{done:!0,value:void 0}})}[Symbol.asyncIterator](){return this}[Rt()](){return this.unsubscribe()}[Symbol.asyncDispose](){return this.unsubscribe()}};_o=new WeakMap,nB=new WeakMap,Me=new WeakMap,$I=new WeakMap;let ra=BC;xr=[jA({context:"Channel",enter:"info"})];const tg=class tg{constructor(A,t,e,g,B){C(this,Ag);I(this,"namespace");C(this,bi);C(this,Li);C(this,Ji);C(this,He);this.namespace=g,r(this,bi,A),r(this,Li,t),r(this,Ji,e),r(this,He,B)}static start(A,t){return c(this,null,function*(){const e=new jQ(A,{namespace:t.namespace}),[g,B]=yield Promise.all([Qa.start(e,"timeline"),aa.start(e,{catalog:t.catalog,namespace:t.namespace})]);return new tg(e,g,B,t.namespace,0)})}closed(){return s(this,Ji).closed()}catalog(){return s(this,Ji).catalog()}timestampWallclockOffset(){return s(this,Li).timestampWallclockOffset()}timestampOffsetMs(){return s(this,He)}setTimestampOffsetMs(A){r(this,He,A)}waitForWallclockTime(A){return s(this,Li).waitForWallclockTime(A)}subscribeCmafTrack(A,t){const e=t==null?void 0:t.startGroup,g=t==null?void 0:t.params,B=this.catalog().current().tracks,o=A["com.vindral.variant_uid"]!==void 0?B.find(n=>n["com.vindral.variant_uid"]===A["com.vindral.variant_uid"]):void 0;return l(this,Ag,Nn).call(this,()=>Ca.subscribe(s(this,bi),o!=null?o:A,{timestampOffsetMs:s(this,He),startGroup:e,params:g}))}subscribeWebVttTrack(A){return l(this,Ag,Nn).call(this,()=>ra.subscribe(s(this,bi),A,s(this,He)))}subscribeTrack(A){return l(this,Ag,Nn).call(this,()=>s(this,bi).subscribe(A))}close(){return Promise.all([s(this,Ji).close(),s(this,Li).close()])}};oC=Vi(null),bi=new WeakMap,Li=new WeakMap,Ji=new WeakMap,He=new WeakMap,Ag=new WeakSet,Nn=function(A){return c(this,null,function*(){const[t,e]=this.catalog().value();try{return yield A()}catch(g){if(t===this.catalog().current()&&e&&(yield Promise.race([e,he(500)])),t!==this.catalog().current())return A();throw g}})},ZA(oC,9,"start",xr,tg),Oe(oC,tg),Zi(oC,3,tg);let ro=tg;const tu=q(8);function eu(i){if(i<0||i>65535)throw new RangeError("burstMs must be between 0 and 65535 inclusive");const A=new Uint8Array([i>>8&255,i&255]);return{type:tu,payload:A}}const nC=class nC{constructor(A){C(this,$o);C(this,Mi);C(this,aB);const[t,e]=A.value.value();r(this,Mi,{createdAt:new Date,wallclock:new Date(t.ntpTimestamp),rtt:t.rtt}),r(this,aB,l(this,$o,RE).call(this,A))}wallclock(){const t=Date.now()-s(this,Mi).createdAt.getTime();return s(this,Mi).wallclock.getTime()+t}closed(){return s(this,aB)}static start(A){return new nC(A)}};Mi=new WeakMap,aB=new WeakMap,$o=new WeakSet,RE=function(A){return c(this,null,function*(){try{for(var t=EA(A.value),e,g,B;e=!(g=yield t.next()).done;e=!1){const o=g.value;r(this,Mi,{createdAt:new Date,wallclock:new Date(o.ntpTimestamp),rtt:o.rtt})}}catch(g){B=[g]}finally{try{e&&(g=t.return)&&(yield g.call(t))}finally{if(B)throw B[0]}}})};let Ea=nC;function Eo(i){return typeof i=="string"||i===null||i===void 0}function iu(i){return"provider"in i&&typeof i.provider=="string"&&(!("widevineLicenseUrl"in i)||Eo(i.widevineLicenseUrl))&&(!("playreadyLicenseUrl"in i)||Eo(i.playreadyLicenseUrl))&&(!("fairplayLicenseUrl"in i)||Eo(i.fairplayLicenseUrl))&&(!("fairplayCertificate"in i)||Eo(i.fairplayCertificate))}function Iu(i){try{return GC(i)}catch(A){throw new Error("Failed to convert fairplayCertificate")}}function gu(i){const A=new TextDecoder().decode(i),t=JSON.parse(A);if(!iu(t))throw new Error("Invalid drm object");const B=t,{fairplayCertificate:e}=B,g=_r(B,["fairplayCertificate"]);return z(D({},g),{fairplayCertificate:e?Iu(e):void 0})}class ca{constructor(A){I(this,"value");this.value=A}static create(A,t,e){return c(this,null,function*(){var a=[];try{const g=ct(a,yield A.subscribeTrack(new jt().name("drm").build()),!0);const B=g.objects();const o=yield B.next();if(o.done)throw new Error("No drm object received");const n=gu(o.value.payload);return new ca(z(D({},n),{videoCodec:t,audioCodec:e}))}catch(Q){var E=Q,h=!0}finally{var d=ht(a,E,h);d&&(yield d)}})}}function su(i){return"rtt"in i&&typeof i.rtt=="number"&&"ntpTimestamp"in i&&typeof i.ntpTimestamp=="number"&&"estimatedBandwidth"in i&&typeof i.estimatedBandwidth=="number"}function $Q(i){const A=new TextDecoder().decode(i),t=JSON.parse(A);if(!su(t))throw new Error("Invalid stats object");return t}const Bu=1e4,aC=class aC{constructor(A,t,e){C(this,An);I(this,"ip");I(this,"value");C(this,CB);this.ip=e,this.value=new YA(t),r(this,CB,l(this,An,UE).call(this,A))}closed(){return s(this,CB)}idleTimeout(){return c(this,null,function*(){for(;;){const[A,t]=this.value.value();try{yield Promise.race([vn(Bu,new Error("Idle timeout")),t])}catch(e){return e}}})}static start(A){return c(this,null,function*(){const e=(yield A.subscribe(new jt().name("stats").groupOrder("ascending").build())).objects(),g=yield e.next();if(g.done)throw new Error("No stats object received");const B=$Q(g.value.payload);if(!B.ip)throw new Error("Expected IP in initial stats object");return new aC(e,B,B.ip)})}};CB=new WeakMap,An=new WeakSet,UE=function(A){return c(this,null,function*(){try{for(var t=EA(A),e,g,B;e=!(g=yield t.next()).done;e=!1){const o=g.value;if(o.objectStatus!==TA.Normal)continue;const n=$Q(o.payload);this.value.update(n)}}catch(g){B=[g]}finally{try{e&&(g=t.return)&&(yield g.call(t))}finally{if(B)throw B[0]}}})};let ha=aC;class ou{constructor(A){C(this,tn,NA.get().createContext("UpstreamWatcher"));C(this,eg);r(this,eg,new YA(AA.fromPromise(A.closed())))}update(A){s(this,eg).update(AA.fromPromise(A.closed()))}closed(){return c(this,null,function*(){try{for(;;){const[A,t]=s(this,eg).value();let e=!1;yield Promise.race([t==null?void 0:t.then(()=>e=!0),A.promise.then(()=>{if(!e)throw s(this,tn).warn("Upstream closed"),new Error("Upstream closed")})])}}catch(A){return A}})}}tn=new WeakMap,eg=new WeakMap;class da{constructor(A,t){C(this,ig,NA.get().createContext("TracksIterator"));C(this,QB);C(this,rB);r(this,QB,A),r(this,rB,t)}[Symbol.asyncIterator](){return ce(this,null,function*(){const A=s(this,rB);try{for(var t=EA(s(this,QB)),e,g,B;e=!(g=yield new QA(t.next())).done;e=!1){const o=g.value;if(!o)continue;const n={name:o.trackObject.name,namespace:o.namespace};s(this,ig).debug("track start",D({mediaType:A},n)),yield*hC(o),s(this,ig).debug("track end",D({mediaType:A},n))}}catch(g){B=[g]}finally{try{e&&(g=t.return)&&(yield new QA(g.call(t)))}finally{if(B)throw B[0]}}s(this,ig).debug("tracks ended",{mediaType:A})})}}ig=new WeakMap,QB=new WeakMap,rB=new WeakMap;let nu=(Vr=[jA({context:"Player",enter:"info"})],Or=[jA({context:"Player",enter:"info",return:"info"})],Wr=[jA({context:"Player",enter:"info"})],ae=class{constructor(A,t,e){Zi(cB,5,this);C(this,xA);C(this,Ig);C(this,gg);C(this,Hi);C(this,JA);C(this,pt,new YA(void 0));C(this,Ft,new YA(void 0));C(this,ve,new YA(void 0));C(this,sg);C(this,EB);I(this,"subtitles",new da(s(this,ve),"subtitles"));I(this,"video",new da(s(this,Ft),"video"));I(this,"audio",new da(s(this,pt),"audio"));r(this,Ig,A),r(this,gg,Ea.start(e)),r(this,Hi,e),r(this,JA,new YA(t)),r(this,sg,new ou(t)),r(this,EB,Promise.race([e.idleTimeout(),l(this,xA,NE).call(this),s(this,sg).closed()])),s(this,Ig).closed().then(()=>this.close()).catch(F)}closed(){return s(this,EB)}static start(A,t){return c(this,null,function*(){const e=new Map;if(t.burstMs!==void 0){const E=eu(t.burstMs);e.set(E.type,E)}const g=new jQ(A,{namespace:Vl("auxiliary")}),[[B,o,n],a]=yield Promise.all([ro.start(A,t).then(E=>Promise.all([Promise.resolve(E),t.videoTrack?E.subscribeCmafTrack(t.videoTrack,{params:e}):void 0,t.audioTrack?E.subscribeCmafTrack(t.audioTrack,{params:e}):void 0])),ha.start(g)]),Q=new ae(A,B,a);return n&&s(Q,pt).update(n),o&&s(Q,Ft).update(o),Q})}connectionInfo(){const A=s(this,Hi).value.current();return{ip:s(this,Hi).ip,rtt:A.rtt,estimatedBandwidth:A.estimatedBandwidth}}stats(){return s(this,Hi).value}catalog(){return s(this,JA).current().catalog()}namespace(){return s(this,JA).current().namespace}videoTrack(){var A;return(A=s(this,Ft).current())==null?void 0:A.trackObject}audioTrack(){var A;return(A=s(this,pt).current())==null?void 0:A.trackObject}referenceClock(){return s(this,gg)}drm(){return c(this,null,function*(){var t,e;if(this.catalog().current().tracks.find(({name:g})=>g==="drm"))return ca.create(s(this,JA).current(),(t=this.videoTrack())==null?void 0:t.codec,(e=this.audioTrack())==null?void 0:e.codec)})}close(){return Promise.all([s(this,JA).current().close(),s(this,JA).close(),l(this,xA,bn).call(this,s(this,pt)),l(this,xA,bn).call(this,s(this,Ft)),l(this,xA,bn).call(this,s(this,ve))])}zap(A,t){return c(this,null,function*(){var y,f;const e=yield ro.start(s(this,Ig),A),g=s(this,gg).wallclock()-t,B=s(this,JA).current(),o=B.timestampWallclockOffset(),n=yield e.waitForWallclockTime(g);s(this,sg).update(e),yield s(this,JA).current().close();const a=n.toReversed().find(G=>G.wallclock<=g),Q=a!=null&&a.mediaPts?a.mediaPts-B.timestampOffsetMs():void 0,d=e.timestampWallclockOffset()-o+B.timestampOffsetMs();e.setTimestampOffsetMs(d);const m=a!=null&&a.groupId?q(a.groupId):void 0;Q&&((y=s(this,Ft).current())==null||y.stopAfterTimestampReached(Q),(f=s(this,pt).current())==null||f.stopAfterTimestampReached(Q)),s(this,JA).update(e),yield Promise.all([A.videoTrack?this.setVideoTrack(A.videoTrack,m):void 0,A.audioTrack?this.setAudioTrack(A.audioTrack,m):void 0])})}setSubtitleTrack(A){return c(this,null,function*(){var e,g;if(!A){yield(e=s(this,ve).current())==null?void 0:e.unsubscribe();return}const[t]=yield Promise.all([s(this,JA).current().subscribeWebVttTrack(A),(g=s(this,ve).current())==null?void 0:g.unsubscribe()]);s(this,ve).update(t)})}setVideoTrack(A,t){return c(this,null,function*(){const e=yield l(this,xA,UB).call(this,s(this,JA).current(),A,s(this,Ft).current(),t);s(this,Ft).update(e)})}setAudioTrack(A,t){return c(this,null,function*(){const e=yield l(this,xA,UB).call(this,s(this,JA).current(),A,s(this,pt).current(),t);s(this,pt).update(e)})}},cB=Vi(null),Ig=new WeakMap,gg=new WeakMap,Hi=new WeakMap,JA=new WeakMap,pt=new WeakMap,Ft=new WeakMap,ve=new WeakMap,sg=new WeakMap,EB=new WeakMap,xA=new WeakSet,bn=function(A){const t=A.current(),e=t==null?void 0:t.largestGroupId();return A.isClosed()||A.update(void 0),A.close(),e?t==null?void 0:t.update(e,e):t==null?void 0:t.unsubscribe()},UB=function(A,t,e,g){return c(this,null,function*(){const B=e==null?void 0:e.largestGroupId(),[o,n]=yield Promise.all([A.subscribeCmafTrack(t,{startGroup:g||(B?B+q(1):void 0)}),B?e==null?void 0:e.update(B,B):e==null?void 0:e.unsubscribe()]);return o})},NE=function(){return c(this,null,function*(){try{for(var B=EA(s(this,JA)),o,n,a;o=!(n=yield B.next()).done;o=!1){const Q=n.value;try{for(var A=EA(Q.catalog()),t,e,g;t=!(e=yield A.next()).done;t=!1){const E=e.value;yield Promise.all([l(this,xA,FC).call(this,E,s(this,Ft)),l(this,xA,FC).call(this,E,s(this,pt))])}}catch(e){g=[e]}finally{try{t&&(e=A.return)&&(yield e.call(A))}finally{if(g)throw g[0]}}}}catch(n){a=[n]}finally{try{o&&(n=B.return)&&(yield n.call(B))}finally{if(a)throw a[0]}}})},FC=function(A,t){return c(this,null,function*(){const e=t.current();if(!e)return;const g=e.trackObject.name,B=e.trackObject["com.vindral.variant_uid"],o=A.tracks.find(a=>a.name===g),n=A.tracks.find(a=>a["com.vindral.variant_uid"]===B);if(!o){if(!n){t.update(void 0);return}t.update(yield s(this,JA).current().subscribeCmafTrack(n))}})},ZA(cB,1,"close",Vr,ae),ZA(cB,1,"zap",Or,ae),UB=ZA(cB,17,"#replaceTrack",Wr,xA,UB),Oe(cB,ae),ae);function la(i,A,t){const e=new URL("/voq/subscribe",i);return e.searchParams.set("sessionId",A.sessionId),e.searchParams.set("clientId",A.clientId),e.searchParams.set("channelId",A.channelId),t&&e.searchParams.set("authToken",t),e}const au=1e4,CC=class CC{constructor(A,t,e,g,B,o,n){C(this,OA);C(this,UA);C(this,WA);C(this,et);C(this,vi,"disconnected");C(this,dA);C(this,qe,new Map);C(this,hB);C(this,Bg);C(this,dB);C(this,og,new Map);C(this,ng,A=>{if(!A){s(this,dA).setSubtitleTrack(void 0).catch(F);return}const t=s(this,qe).get($e(s(this,dA).namespace())),e=t==null?void 0:t.getTextTrack(A);e&&s(this,dA).setSubtitleTrack(e).catch(F)});C(this,lB,A=>{switch(A.type){case"subscribe":{if(s(this,ag)){s(this,WA).info("Ignoring - we are already switching");return}r(this,ag,!0),l(this,OA,JE).call(this,A.subscription).catch(t=>{s(this,WA).error("error handling subscription",t),s(this,UA).emit("received signal",{type:"subscription changed",subscription:A.subscription,reset:!0})}).finally(()=>r(this,ag,!1))}break;case"telemetry":FQ(new URL("/api/telemetry",s(this,et).url().replace("wss://","https://")),{body:A.body,headers:{"Content-Type":"text/plain"}}).catch(F);break;case"refresh auth":s(this,et).updateAuthToken(A.token);break}});C(this,ag,!1);I(this,"disconnect",(A="Disconnect Requested")=>{s(this,WA).info("Disconnecting",A),s(this,et).close(),s(this,dA).close().catch(F),r(this,og,new Map),r(this,vi,"disconnected")});r(this,UA,A),r(this,WA,t),r(this,et,e),r(this,dA,g),r(this,qe,B),r(this,hB,o),r(this,Bg,n),s(this,UA).on("send signal",s(this,lB)),s(this,UA).on("disconnect",this.disconnect),s(this,UA).on("text track",s(this,ng)),l(this,OA,bE).call(this).catch(F),l(this,OA,ME).call(this).catch(F)}get estimatedBandwidth(){return s(this,dB)}unload(){s(this,UA).off("send signal",s(this,lB)),s(this,UA).off("disconnect",this.disconnect),s(this,UA).off("text track",s(this,ng)),this.disconnect()}suspend(){}unsuspend(){}getStatistics(){const t=s(this,et).transportType()==="webtransport"?"moq":"moq_ws";return{edgeUrl:s(this,et).url(),connectionProtocol:t}}static start(A,t,e,g,B){return c(this,null,function*(){var R,v,P,_;const o=new Map(g.connectInfo.channels.map(T=>[$e(T.catalog.namespace),new wa(new YA(T.catalog))])),n=yield g.onConnectInfo(g.connectInfo),a=g.options.get("authenticationToken");let Q,E;typeof g.edgeUrl==="string"?Q=la(g.edgeUrl,n,a):(Q=la(g.edgeUrl.moqUrl||g.edgeUrl.moqWsUrl,n,a),E=la(g.edgeUrl.moqWsUrl,n,a));const h=(R=g.connectInfo.channels.find(T=>T.channelId===n.channelId))==null?void 0:R.catalog;t.debug("Resolved edge url",{edgeUrl:Q,edgeWsUrl:E}),lA(h,"no catalog found");const d=(v=o.get($e(h.namespace)))==null?void 0:v.getVideoTrack(n.video),m=(P=o.get($e(h.namespace)))==null?void 0:P.getAudioTrack(n.audio),y=yield Ol({url:Q,wsUrl:E,authToken:g.options.get("authenticationToken"),preferredTransport:g.options.get("webtransportEnabled")?"webtransport":"websocket",role:wl.Subscriber,websocketFallbackTimeoutMs:2e3}),f=yield Promise.race([nu.start(y.subscriber,{namespace:h.namespace,catalog:h,videoTrack:d==null?void 0:d.track,audioTrack:m==null?void 0:m.track,burstMs:n.burstMs||0}),vn(au,new Error("Timeout waiting for player to start")),Qc(y.closed(),"Session closed before player started")]),G=new wa(f.catalog());o.set($e(h.namespace),G),A.emit("received signal",{type:"client ip",ip:f.connectionInfo().ip}),f.drm().then(T=>{T&&A.emit("received drm data",T.value)}).catch(T=>{t.error("Error getting DRM data",T)});const b=new CC(A,t,y,f,o,e,B);return n.textTrack&&s(_=b,ng).call(_,n.textTrack),b})}getState(){return s(this,vi)}close(){s(this,et).close()}closed(){return Promise.race([s(this,et).closed(),s(this,dA).closed()])}};UA=new WeakMap,WA=new WeakMap,et=new WeakMap,vi=new WeakMap,dA=new WeakMap,qe=new WeakMap,hB=new WeakMap,Bg=new WeakMap,dB=new WeakMap,og=new WeakMap,OA=new WeakSet,bE=function(){return c(this,null,function*(){s(this,et).transportType()==="websocket"&&(yield he(5e3));try{for(var A=EA(s(this,dA).stats()),t,e,g;t=!(e=yield A.next()).done;t=!1){const{rtt:B,estimatedBandwidth:o}=e.value;r(this,dB,o),s(this,Bg).push(B),s(this,UA).emit("rtt",dt(s(this,Bg).items()))}}catch(e){g=[e]}finally{try{t&&(e=A.return)&&(yield e.call(A))}finally{if(g)throw g[0]}}})},ng=new WeakMap,lB=new WeakMap,ag=new WeakMap,LE=function(A){return c(this,null,function*(){var g;const t=yield s(this,hB).connect({channelId:A});if(!TC(t))throw new Error("no moq connect info found");const e=(g=t.channels.find(B=>B.channelId===A))==null?void 0:g.catalog;if(!e)throw new Error("no catalog found");return e})},JE=function(A){return c(this,null,function*(){var o,n,a;s(this,WA).info("handle subscription",A);const t=s(this,dA);let e=s(this,qe).get(A.channelId);if(e||(e=new wa(new YA(yield l(this,OA,LE).call(this,A.channelId))),s(this,qe).set(A.channelId,e)),t.namespace().join("/")!==e.namespace().join("/")){s(this,WA).info("changing channel",A.channelId);const Q=e.getVideoTrack(A.video),E=e.getAudioTrack(A.audio);yield t.zap({namespace:e.namespace(),catalog:e.catalog(),videoTrack:Q==null?void 0:Q.track,audioTrack:E==null?void 0:E.track},500),t.drm().then(h=>{h&&s(this,UA).emit("received drm data",h.value)}).catch(h=>{s(this,WA).error("Error getting DRM data",h)}),s(this,WA).info("switched channel",A.channelId),(o=s(this,qe).get($e(t.namespace())))==null||o.updateCatalog(t.catalog()),s(this,UA).emit("received signal",{type:"subscription changed",subscription:A});return}const g=e.getVideoTrack(A.video),B=e.getAudioTrack(A.audio);yield Promise.all([g&&g.track.name!==((n=s(this,dA).videoTrack())==null?void 0:n.name)?s(this,dA).setVideoTrack(g.track):void 0,B&&B.track.name!==((a=s(this,dA).audioTrack())==null?void 0:a.name)?s(this,dA).setAudioTrack(B.track):void 0]),s(this,UA).emit("received signal",{type:"subscription changed",subscription:A})})},ME=function(){return c(this,null,function*(){try{r(this,vi,"connecting"),s(this,WA).info("Connecting..."),r(this,vi,"connected"),yield Promise.all([l(this,OA,kC).call(this,s(this,dA).referenceClock(),s(this,dA).audio),l(this,OA,kC).call(this,s(this,dA).referenceClock(),s(this,dA).video),l(this,OA,HE).call(this,s(this,dA).subtitles)]),yield s(this,dA).closed(),s(this,et).close(),s(this,WA).info("Session closed")}catch(A){s(this,WA).warn("Session error",A)}})},HE=function(A){return c(this,null,function*(){try{for(var t=EA(A),e,g,B;e=!(g=yield t.next()).done;e=!1){const o=g.value;s(this,UA).emit("text track data",o)}}catch(g){B=[g]}finally{try{e&&(g=t.return)&&(yield g.call(t))}finally{if(B)throw B[0]}}})},kC=function(A,t){return c(this,null,function*(){var n;let e="",g="",B;const o=s(this,dA).videoTrack()===void 0;try{for(var d=EA(t),m,y,f;m=!(y=yield d.next()).done;m=!1){const G=y.value;const b=$e(G.track.namespace),R=G.track.trackObject.language,v=Kn((n=G.track.trackObject.codec)!=null?n:""),P=G.track.trackObject.codec,_=v?de({codec:v,codecString:P}):void 0,T=!!G.track.trackObject["com.vindral.drm"];try{for(var a=EA(G),Q,E,h;Q=!(E=yield a.next()).done;Q=!1){const[kA,aA]=E.value;const It={channelId:e!==""&&(o||aA.mediaType()==="video")&&e!==b?b:void 0,language:aA.mediaType()==="audio"&&g!==R?R:void 0,drmTransition:B!==void 0&&B!==T};e=b,g=R,B=T;const HA=aA.producerReferenceTime(),w=s(this,og).get(G.track.namespace)||0;if(HA&&Date.now()-w>1e3){s(this,og).set(G.track.namespace,Date.now());const k=A.wallclock()-HA.getTime();s(this,WA).debug("timing-info",{mediaType:aA.mediaType(),referenceClock:A,delta:k,groupId:kA,timestamp:aA.baseMediaDecodeTime()/aA.timescale()*1e3+k,wallclockTime:HA.getTime()}),s(this,UA).emit("received signal",{type:"timing info",timingInfo:{channelId:b,timestamp:aA.baseMediaDecodeTime()/aA.timescale()*1e3+k,wallclockTime:HA.getTime()}})}s(this,UA).emit("received moq data",{payload:aA,channelId:b,groupId:kA,mimeType:_,codec:v,switchInfo:It,renditionId:Cu(G.track.trackObject.name)})}}catch(E){h=[E]}finally{try{Q&&(E=a.return)&&(yield E.call(a))}finally{if(h)throw h[0]}}}}catch(y){f=[y]}finally{try{m&&(y=d.return)&&(yield y.call(d))}finally{if(f)throw f[0]}}})};let ua=CC;function Cu(i){return i.split("").reduce((t,e)=>t=e.charCodeAt(0)+(t<<6)+(t<<16)-t,0)}class wa{constructor(A){C(this,en);C(this,Ce);C(this,qi);r(this,Ce,A),r(this,qi,l(this,en,vE).call(this))}catalog(){return s(this,Ce).current()}namespace(){return s(this,Ce).current().namespace}updateCatalog(A){r(this,Ce,A)}getTextTrack(A){return s(this,Ce).current().tracks.find(t=>t.label===A)}getAudioTrack(A){if(!A.codec)return;const t=s(this,qi).filter(e=>!(!ze(e)||e.bitRate>A.bitRate||A.codec&&e.codec!==A.codec||A.language&&e.language!==A.language));return t[t.length-1]}getVideoTrack(A){if(!A.codec)return;const t=s(this,qi).filter(e=>!(!je(e)||e.bitRate>A.bitRate||A.codec&&e.codec!==A.codec));return t[t.length-1]}renditions(){return s(this,qi)}}Ce=new WeakMap,qi=new WeakMap,en=new WeakSet,vE=function(){const[A,t]=s(this,Ce).value();return PC(A)};const Qu=(i,A)=>{const t=new URL("/subscribe",i);return t.searchParams.append("channelId",A.channelId),t.searchParams.append("sessionId",A.sessionId),t.searchParams.append("clientId",A.clientId),A.audio&&A.audio.codec&&(t.searchParams.append("audio.bitRate",Math.round(A.audio.bitRate).toString()),t.searchParams.append("audio.codec",A.audio.codec),A.audio.language&&t.searchParams.append("audio.language",A.audio.language)),A.video&&A.video.codec&&(t.searchParams.append("video.width",A.video.width.toString()),t.searchParams.append("video.height",A.video.height.toString()),t.searchParams.append("video.bitRate",Math.round(A.video.bitRate).toString()),t.searchParams.append("video.codec",A.video.codec)),A.expectAdditionalConnection&&t.searchParams.append("expectAdditionalConnection",A.expectAdditionalConnection.toString()),A.burstMs&&t.searchParams.append("burstMs",A.burstMs.toString()),A.channelGroupId&&t.searchParams.append("channelGroupId",A.channelGroupId),A.authToken&&(t.searchParams.append("auth.token",A.authToken),t.searchParams.append("auth.type","jwt")),t.toString()};class ru extends st{constructor(t,e){super();I(this,"options");I(this,"websockets",[]);I(this,"logger");I(this,"reconnectState",{reconnectRetries:0});I(this,"isSuspended",!1);I(this,"_connectionAttemptCount",0);I(this,"connectStartTime",0);I(this,"_connectTime");I(this,"shouldContinueConnecting",!1);I(this,"_isConnectInProgress",!1);I(this,"readyState",()=>{if(this.websockets.length===0)return WebSocket.CLOSED;const t=this.websockets.map(e=>e.readyState);for(const e of t)if(e!==WebSocket.OPEN)return e;return WebSocket.OPEN});I(this,"url",()=>{var t;return(t=this.websockets[0])==null?void 0:t.url});I(this,"send",t=>{var e;this.websockets.length&&((e=this.websockets[0])==null||e.send(t))});I(this,"close",t=>{var g;let e=!1;return(g=this.websockets)==null||g.forEach(B=>{B.onmessage=F,B.removeEventListener("error",this.onError),B.removeEventListener("close",this.onClose),B.removeEventListener("open",this.onOpen),B.close(1e3,t),e=!0}),this.websockets=[],this.shouldContinueConnecting=!1,this._isConnectInProgress=!1,this.logger.info("Closed websocket",{reason:t}),e});I(this,"suspend",()=>{this.isSuspended=!0});I(this,"unsuspend",()=>{this.isSuspended=!1,this.readyState()!==WebSocket.OPEN&&!this.isConnectInProgress&&this.connect()});I(this,"onMessage",(t,e)=>{this.websockets.length!==0&&this.options.onMessage(t,e.data)});I(this,"onError",()=>{this.logger.info("On error",D({},this.options)),this.close("one websocket had an error"),this.emit("error",new O("WebSocket error",{code:"websocket_error",isFatal:!1}))});I(this,"onClose",t=>{switch(this.logger.info("Closed",z(D({},this.options),{reason:t.reason,code:t.code,isSuspended:this.isSuspended})),this.close("one websocket was closed"),t.code){case 4e3:this.emit("error",JB(pg()));break;case 4001:this.emit("error",JB(pg()));break;case 4002:this.emit("error",kc(pg()));break;case 4003:this.emit("error",eQ("internal",pg()));break;case 4010:this.emit("error",Gc("internal",pg()));break}this.emit("close",this)});I(this,"onOpen",()=>{this.logger.info("Opened",D({},this.options)),this.readyState()===WebSocket.OPEN&&(this._connectTime=Date.now()-this.connectStartTime,this.reconnectState.reconnectRetries=0,this._isConnectInProgress=!1,this.emit("open",this))});I(this,"connect",(t=!1)=>c(this,null,function*(){if(this.isConnectInProgress)return this.logger.info("Connect already in progress"),!1;if(this.isSuspended)return!1;if(this.readyState()!==WebSocket.CLOSED&&this.close("new connection in progress"),this.shouldContinueConnecting=!0,this._isConnectInProgress=!0,t&&this.options.reconnectDelay>0){this.logger.info("Waiting for reconnect delay",D({},this.options)),yield he(this.options.reconnectDelay);const e=yield this.options.reconnectHandler(this.reconnectState);if(this.reconnectState.reconnectRetries++,!e)return this._isConnectInProgress=!1,this.emit("error",iQ()),!1}this._connectionAttemptCount++;try{if(!this.shouldContinueConnecting)return this._isConnectInProgress=!1,this.logger.info("Connection aborted"),!1;const{url:e,connectionCount:g}=yield this.options.connectHandler();if(this.connectStartTime=Date.now(),!this.shouldContinueConnecting)return this._isConnectInProgress=!1,this.logger.info("Connection aborted"),!1;this.logger.info("Connecting websockets",z(D({},this.options),{url:e}));for(let B=0;B<g;B++){const o=new WebSocket(e);o.binaryType="arraybuffer",o.onmessage=n=>this.onMessage(B,n),o.addEventListener("error",this.onError),o.addEventListener("close",this.onClose),o.addEventListener("open",this.onOpen),this.websockets.push(o)}return!0}catch(e){return this._isConnectInProgress=!1,e instanceof O&&(this.logger.error("Failed to connect",e.toStringifiable()),e.isFatal())||this.shouldContinueConnecting&&(this.logger.info("Connection aborted",{error:e}),this.emit("error",new O("Failed to connect",{code:"failed_to_connect",isFatal:!1,source:e,type:"internal"}))),!1}}));this.options=t,this.logger=e}get isConnectInProgress(){return this._isConnectInProgress}get connectionCount(){return this.websockets.length}get connectionAttemptCount(){return this._connectionAttemptCount}get connectTime(){return this._connectTime}}const Eu=65536*8,cu=.9,hu=40,du=i=>{const A=i||hu;return Eu*cu*1e3/A},Tt=class Tt{constructor(A,t,e,g){I(this,"emitter");I(this,"transport");I(this,"logger");I(this,"config");I(this,"rtts");I(this,"lastPingSentTime",Date.now());I(this,"isPingInFlight",!1);I(this,"connectCount",0);I(this,"missedPings",0);I(this,"contextSwitchesInProgress",new Set);I(this,"contextSwitchesCompleted",new Set);I(this,"buffer",[]);I(this,"disconnected",new AA);I(this,"unload",()=>{this.logger.debug("Unloading module..."),this.close("Unloading"),this.emitter.off("send signal",this.sendSignal),this.emitter.off("disconnect",this.close),this.emitter.off("reconnect",this.reconnect),this.logger.debug("Unloaded module")});I(this,"suspend",()=>{this.resetPingState(),this.transport.suspend()});I(this,"unsuspend",()=>{this.transport.unsuspend()});I(this,"getState",()=>{switch(this.transport.readyState()){case WebSocket.OPEN:return"connected";case WebSocket.CONNECTING:return"connecting";default:return"disconnected"}});I(this,"sendSignal",A=>{if(this.logger.debug("sending signal",{signal:A}),this.transport.readyState()!==WebSocket.OPEN){this.logger.debug("transport is closed");return}this.transport.send(JSON.stringify(A))});I(this,"getStatistics",()=>{var A;return{edgeUrl:(A=this.transport)==null?void 0:A.url(),connectionProtocol:"vindral_ws"}});I(this,"onMessage",(A,t)=>{var e;if(this.pingCooldownExpired()&&this.sendPing(),this.contextSwitchesCompleted.size===((e=this.transport)==null?void 0:e.connectionCount)){this.logger.info("Completing context switch"),this.contextSwitchesInProgress.clear(),this.contextSwitchesCompleted.clear();const g=this.buffer.filter(([o,n])=>!(n instanceof ArrayBuffer)),B=this.buffer.filter(([o,n])=>n instanceof ArrayBuffer);g.map(o=>this.handleMessage(o[0],o[1])),B.map(o=>this.handleMessage(o[0],o[1])),this.buffer=[]}if(this.contextSwitchesInProgress.has(A)){if(!(t instanceof ArrayBuffer)){const g=JSON.parse(t);if(xC(g)&&g.type==="context switch complete"){this.logger.info("context switch completed",{socketId:A}),this.emitter.emit("context switch complete"),this.contextSwitchesCompleted.add(A);return}}this.buffer.push([A,t]);return}this.handleMessage(A,t)});I(this,"resolveEdgeUrl",()=>c(this,null,function*(){const A=this.config.connectInfo,t=yield this.config.onConnectInfo(A),e=this.config.options.getOverride("separateVideoSocketEnabled",t.channelId),g=this.config.options.get("media")==="audio+video";let B=1;g&&(B=e!==!1?2:1);const o=Qu(this.config.edgeUrl,{video:t.video,audio:t.audio,burstMs:t.burstMs,sessionId:t.sessionId,clientId:t.clientId,channelId:t.channelId,channelGroupId:t.channelGroupId,expectAdditionalConnection:B>1,authToken:this.config.options.get("authenticationToken")});return this.logger.debug("Resolved edge url",{edgeUrl:o}),{url:o,connectionCount:B}}));I(this,"handleMessage",(A,t)=>{if(t instanceof ArrayBuffer)this.emitter.emit("received data",t);else{const e=JSON.parse(t);if(!xC(e))return;switch(e.type){case"pong":this.lastPingSentTime&&(this.rtts.push(Date.now()-this.lastPingSentTime),this.isPingInFlight=!1,this.emitter.emit("rtt",dt(this.rtts.items())));break;case"context switch":this.logger.info("Starting context switch",{socketId:A}),this.emitter.emit("context switch started"),this.contextSwitchesInProgress.add(A);break;default:this.emitter.emit("received signal",e);break}}});I(this,"connectWebSocketTransport",()=>{const A=new ru({reconnectDelay:1e3,onMessage:this.onMessage,reconnectHandler:this.config.reconnectHandler,connectHandler:this.resolveEdgeUrl},this.logger.createContext("Transport"));return A.on("open",this.onTransportChange),A.on("close",this.onTransportChange),A.on("error",t=>this.disconnected.reject(t)),A.connect(),A});I(this,"close",(A="Disconnect Requested")=>{var t;this.contextSwitchesCompleted.clear(),this.contextSwitchesInProgress.clear(),this.buffer=[],this.resetPingState(),this.disconnected.resolve(),(t=this.transport)==null||t.close(A)});I(this,"onTransportChange",()=>{var A;this.getState()==="connected"?((A=this.transport)!=null&&A.connectTime&&(this.rtts.push(this.transport.connectTime/Tt.TLS_ROUNDTRIPS/(this.transport.connectionCount||1)),this.emitter.emit("rtt",dt(this.rtts.items()))),this.connectCount++,this.resetPingState()):(this.contextSwitchesCompleted.clear(),this.contextSwitchesInProgress.clear(),this.buffer=[],this.resetPingState(),this.disconnected.resolve()),this.emitter.emit("connection state",this.getState())});I(this,"reconnect",A=>{if(this.transport.isConnectInProgress){this.logger.debug("Stopping reconnect, already mid-connection");return}this.close(A)});I(this,"resetPingState",()=>{this.missedPings=0,this.isPingInFlight=!1});I(this,"pingCooldownExpired",()=>Date.now()-this.lastPingSentTime>Tt.PING_INTERVAL);I(this,"sendPing",()=>{if(this.isPingInFlight){this.missedPings++,this.missedPings>Tt.MAX_MISSED_PINGS&&this.reconnect("missed pings");return}this.isPingInFlight=!0,this.lastPingSentTime=Date.now(),this.missedPings=0,this.sendSignal({type:"ping"})});this.logger=t,this.emitter=A,this.config=e,this.rtts=g,this.emitter.on("send signal",this.sendSignal),this.emitter.on("disconnect",this.close),this.emitter.on("reconnect",this.reconnect),this.disconnected.promise.catch(F),this.transport=this.connectWebSocketTransport()}closed(){return this.disconnected.promise}};I(Tt,"PING_INTERVAL",5e3),I(Tt,"MAX_MISSED_PINGS",4),I(Tt,"TLS_ROUNDTRIPS",3),I(Tt,"start",(A,t,e,g)=>new Promise((B,o)=>{const n=new Tt(A,t,e,g);n.transport.once("error",a=>o(a)),n.transport.once("open",()=>B(n))}));let Da=Tt;class lu{constructor(A){C(this,Cg);C(this,Ke,[]);C(this,Qg);r(this,Cg,A)}select(A){if(s(this,Cg).edgeUrl)return s(this,Cg).edgeUrl;s(this,Ke).length===0&&r(this,Ke,s(this,Ke).concat(A));const t=s(this,Ke).shift();if(r(this,Qg,t),t)return t}shiftedEdge(){return s(this,Qg)}reset(){r(this,Qg,void 0),r(this,Ke,[])}}Cg=new WeakMap,Ke=new WeakMap,Qg=new WeakMap;const hg=class hg{constructor(A,t,e){C(this,sn);I(this,"emitter");I(this,"logger");I(this,"config");I(this,"apiClient");I(this,"connectionImpl");C(this,Pt,new x(10));C(this,xt,!0);C(this,rg);C(this,Ki,0);C(this,Ye,0);C(this,Yi,0);C(this,Eg);C(this,cg);I(this,"unload",()=>{var A;this.logger.debug("Unloading module..."),this.disconnect("Unloading"),(A=this.connectionImpl)==null||A.unload(),this.logger.debug("Unloaded module")});I(this,"suspend",()=>{var A;r(this,xt,!1),(A=this.connectionImpl)==null||A.suspend()});I(this,"unsuspend",()=>{var A;r(this,xt,!0),(A=this.connectionImpl)==null||A.unsuspend(),this.connect()});I(this,"getState",()=>this.connectionImpl?this.connectionImpl.getState():"disconnected");I(this,"getStatistics",()=>{const A=s(this,Ye)>0?s(this,Yi)/s(this,Ye):0;return this.connectionImpl?z(D({},this.connectionImpl.getStatistics()),{rtt:Xt(s(this,Pt).items()),estimatedBandwidth:this.estimatedBandwidth,connectCount:s(this,Yi),connectionAttemptCount:s(this,Ye),connectionSuccessRatio:A}):{rtt:{min:0,max:0,average:0,last:0},estimatedBandwidth:0,connectCount:s(this,Yi),connectionAttemptCount:s(this,Ye),connectionSuccessRatio:A,connectionProtocol:void 0}});I(this,"connect",()=>{r(this,xt,!0),!s(this,rg)&&r(this,rg,l(this,sn,qE).call(this))});I(this,"disconnect",(A="Disconnect Requested")=>{var t;r(this,xt,!1),(t=this.connectionImpl)==null||t.close(A)});I(this,"reconnect",A=>{this.disconnect(A),this.connect()});C(this,In,()=>c(this,null,function*(){try{return yield this.apiClient.connect(this.config.options.getOptions())}catch(A){if(Pd(A))switch(A.status){case 401:throw this.emitter.emit("error",JB(A)),JB(A);case 403:throw this.emitter.emit("error",IQ(A.message)),IQ(A.message)}throw this.emitter.emit("error",Uc(A instanceof Error?A:void 0)),A}}));C(this,gn,()=>c(this,null,function*(){const A=Date.now(),t=()=>Date.now()-A;return Promise.race([he(hg.PING_TIMEOUT),fetch(new URL("/api/v4/connect/ping",this.config.options.get("url")).toString(),{method:"HEAD"})]).then(t,t)}));this.logger=t,this.emitter=A,this.config=e,this.apiClient=new GQ({publicEndpoint:this.config.options.get("url").toString(),tokenFactory:()=>this.config.options.get("authenticationToken")})}get rtt(){return s(this,Pt).items().length>0?dt(s(this,Pt).items()):0}get estimatedBandwidth(){return this.connectionImpl&&"estimatedBandwidth"in this.connectionImpl&&this.connectionImpl.estimatedBandwidth?this.connectionImpl.estimatedBandwidth:du(this.rtt)}get firstConnectionTime(){return s(this,Eg)}get lastConnectionTime(){return s(this,cg)}};Pt=new WeakMap,xt=new WeakMap,rg=new WeakMap,Ki=new WeakMap,Ye=new WeakMap,Yi=new WeakMap,Eg=new WeakMap,cg=new WeakMap,In=new WeakMap,gn=new WeakMap,sn=new WeakSet,qE=function(){return c(this,null,function*(){var t;const A=new lu({edgeUrl:this.config.options.get("edgeUrl")});for(r(this,Ki,0);;){_A(this,Ki)._++,_A(this,Ye)._++;try{const[g,B]=yield Promise.all([s(this,In).call(this),s(this,gn).call(this)]),o=B/2;if(s(this,Pt).clear(),s(this,Pt).push(o),!s(this,xt))break;const n=A.select(g.edges);if(!n)throw new O("Failed to resolve edge url",{isFatal:!0,code:"failed_to_resolve_edge_url"});TC(g)?this.connectionImpl=yield ua.start(this.emitter,this.logger,this.apiClient,z(D({},this.config),{connectInfo:g,edgeUrl:n}),s(this,Pt)):(lA(typeof n=="string","Edge URL is expected to be a string"),this.connectionImpl=yield Da.start(this.emitter,this.logger,z(D({},this.config),{connectInfo:g,edgeUrl:n}),s(this,Pt))),A.reset(),_A(this,Yi)._++,r(this,Ki,0),r(this,cg,Date.now()),s(this,Eg)||r(this,Eg,s(this,cg)),yield this.connectionImpl.closed()}catch(g){this.logger.info("Failed to connect",g);const B=A.shiftedEdge();B&&this.emitter.emit("telemetry event",{code:"shifted_edge",edgeUrl:typeof B=="string"?B:B.moqUrl||B.moqWsUrl}),g instanceof O?this.emitter.emit("error",g):g instanceof Error&&this.emitter.emit("error",new O(g.message,{code:"start_failed",isFatal:!1}))}if((t=this.connectionImpl)==null||t.unload(),this.connectionImpl=void 0,!s(this,xt))break;if(!(yield this.config.reconnectHandler({reconnectRetries:s(this,Ki)}))){this.emitter.emit("error",iQ());break}if(yield he(1e3),!s(this,xt))break}r(this,rg,void 0)})},I(hg,"PING_TIMEOUT",1e3),I(hg,"create",(A,t,e)=>new hg(A,t,e));let ma=hg;const Sa=()=>({video:z(D({},bB()),{bitRate:le()}),audio:{bitRate:le()}}),uu=()=>({width:window.innerWidth,height:window.innerHeight,bitRate:le()}),dg=class dg{constructor(A,t,e,g){I(this,"emitter");I(this,"timers",new bA);I(this,"pictureInPictureSource");I(this,"element");I(this,"currentCap");I(this,"userSpecifiedCap");I(this,"renditionLevelSource");I(this,"resizeObserver");I(this,"elementSize");I(this,"_sizeBasedResolutionCapEnabled");I(this,"unload",()=>{var A;this.emitter.off("enter picture in picture",this.enterPictureInPicture),this.emitter.off("exit picture in picture",this.exitPictureInPicture),(A=this.resizeObserver)==null||A.disconnect(),this.suspend()});I(this,"load",()=>{window.ResizeObserver&&(this.resizeObserver=new ResizeObserver(this.onResize),this.resizeObserver.observe(this.element)),this.evaluateConstraintCap()});I(this,"unsuspend",()=>{this.timers.setInterval(this.evaluateConstraintCap,dg.CHECK_SIZE_INTERVAL),this.evaluateConstraintCap()});I(this,"suspend",()=>{this.timers.unload()});I(this,"setUserSpecifiedCap",A=>{var e;const t=(e=this.getUserSpecifiedCap())!=null?e:Sa();this.userSpecifiedCap=z(D({},t),{video:D(D({},t.video),A.video),audio:D(D({},t.audio),A.audio)}),this.evaluateConstraintCap()});I(this,"getUserSpecifiedCap",()=>this.userSpecifiedCap);I(this,"getCurrentConstraintCap",()=>this.currentCap);I(this,"getStatistics",()=>({constraintCap:this.getUserSpecifiedCap(),windowInnerWidth:window.innerWidth,windowInnerHeight:window.innerHeight,elementWidth:this.elementSize.width,elementHeight:this.elementSize.height,pixelRatio:window.devicePixelRatio}));I(this,"constrainSubscription",A=>{const t=this.getCurrentConstraintCap();return t&&(A.video.codec&&(A.video.bitRate=Math.min(t.video.bitRate,A.video.bitRate),A.video.width=Math.min(t.video.width,A.video.width),A.video.height=Math.min(t.video.height,A.video.height)),A.audio.codec&&(A.audio.bitRate=Math.min(t.audio.bitRate,A.audio.bitRate))),A});I(this,"onResize",A=>{A.forEach(t=>{this.elementSize={width:t.contentRect.width,height:t.contentRect.height}})});I(this,"evaluateConstraintCap",()=>{var o,n,a,Q,E;const A=this.sizeBasedResolutionCapEnabled?z(D({},Sa()),{video:uu()}):Sa();if(!this.resizeObserver){const h=this.element.getBoundingClientRect();this.elementSize={width:h.width,height:h.height}}if(this.sizeBasedResolutionCapEnabled){const h=window.devicePixelRatio,d=(o=this.pictureInPictureSource)==null?void 0:o.getPictureInPictureSize();this.elementSize.width>0&&this.elementSize.height>0&&(A.video.width=this.elementSize.width,A.video.height=this.elementSize.height),d&&(A.video.width=d.width,A.video.height=d.height),A.video.width*=h,A.video.height*=h}const e=this.renditionLevelSource.getRenditionLevels().find(h=>{if(h.video){const d=h.video.width/h.video.height,m=A.video.width/A.video.height;return d>m?h.video.width>A.video.width:h.video.height>A.video.height}});e&&e.video&&(A.video.width=e.video.width,A.video.height=e.video.height);const g=(n=this.userSpecifiedCap)==null?void 0:n.video,B=(a=this.userSpecifiedCap)==null?void 0:a.audio;g&&(A.video.width>g.width&&(A.video.width=g.width),A.video.height>g.height&&(A.video.height=g.height)),A.video.bitRate=(Q=g==null?void 0:g.bitRate)!=null?Q:A.video.bitRate,A.audio.bitRate=(E=B==null?void 0:B.bitRate)!=null?E:A.audio.bitRate,tI(A,this.currentCap)?this.currentCap=D({},A):(this.currentCap=D({},A),this.emitter.emit("constraint cap changed",A))});I(this,"enterPictureInPicture",A=>{this.pictureInPictureSource=A,this.evaluateConstraintCap()});I(this,"exitPictureInPicture",()=>{this.pictureInPictureSource=void 0,this.evaluateConstraintCap()});this.element=t;const B=this.element.getBoundingClientRect();this.elementSize={width:B.width,height:B.height},this.emitter=A,this.renditionLevelSource=e,this._sizeBasedResolutionCapEnabled=g,this.emitter.on("enter picture in picture",this.enterPictureInPicture),this.emitter.on("exit picture in picture",this.exitPictureInPicture)}get sizeBasedResolutionCapEnabled(){return this._sizeBasedResolutionCapEnabled}set sizeBasedResolutionCapEnabled(A){this._sizeBasedResolutionCapEnabled=A,this.evaluateConstraintCap()}};I(dg,"CHECK_SIZE_INTERVAL",1e3),I(dg,"create",(A,t,e,g)=>new dg(A,t,e,g));let ya=dg;const wu=5,Du=100,mu=1e3;class fa{constructor(A,t,e,g){I(this,"timers",bA.create());I(this,"logger");I(this,"emitter");I(this,"trackContexts");I(this,"playbackSource");I(this,"isSuspended",!1);I(this,"load",()=>{this.timers.setInterval(this.emitDecodedFrames,Du),this.timers.setInterval(this.emitDecodeRate,mu),this.emitter.on("init segment",this.onInitSegment),this.emitter.on("coded sample",this.decode)});I(this,"unload",()=>{this.trackContexts.forEach(({decoderContext:A})=>A.unload()),this.timers.unload(),this.emitter.off("init segment",this.onInitSegment),this.emitter.off("coded sample",this.decode)});I(this,"suspend",()=>{this.isSuspended=!0});I(this,"unsuspend",()=>{this.isSuspended=!1});I(this,"getBuffer",A=>{var t;return(t=this.trackContexts.get(A))==null?void 0:t.buffer});I(this,"videoDecodeRate",()=>{var B,o,n;const A=this.trackContexts.get("video"),t=(B=A==null?void 0:A.sampleDuration)!=null?B:40,e=Xt((o=A==null?void 0:A.decodeTime.items())!=null?o:[]),g=Xt((n=A==null?void 0:A.transportTime.items())!=null?n:[]);return t/(e.average+g.average)});I(this,"getStatistics",()=>{var B,o,n,a;const A=this.trackContexts.get("video"),t=Xt((B=A==null?void 0:A.decodeTime.items())!=null?B:[]),e=Xt((o=A==null?void 0:A.transportTime.items())!=null?o:[]),g=Xt((a=(n=this.trackContexts.get("audio"))==null?void 0:n.decodeTime.items())!=null?a:[]);return{videoDecodeRate:this.videoDecodeRate(),videoDecodeTime:t,audioDecodeTime:g,videoTransportTime:e}});I(this,"onInitSegment",({initSegment:A})=>{var e;const t=(e=this.trackContexts.get(A.type))==null?void 0:e.decoderContext;if(!t)throw new O("No known decoder context",{code:"no_known_decoder_context",isFatal:!1});t.initSegment(A)});I(this,"decode",A=>{const t=this.trackContexts.get(A.type);if(!t)throw new O("No known decoder context",{code:"no_known_decoder_context",isFatal:!1});if(this.isSuspended)return;t.sampleDuration=A.duration/A.timescale*1e3;const e=A.compositionTimeOffset||0,{decoderContext:g,buffer:B}=t,o=(A.timestamp+e)/A.timescale*1e3,n=A.duration/A.timescale*1e3,a=B[B.length-1];!a||o-wu>a.end?B.push({start:o,end:o+n}):o+n*5<a.end?t.buffer=[{start:o,end:o+n}]:a.end=o+n,g.enqueue(A),this.emitDecodedFrames()});I(this,"emitDecodedFrames",()=>{let A;this.updateBufferState(),this.trackContexts.forEach(t=>{var g,B;let e;for(;(e=(B=(g=t.decoderContext).error)==null?void 0:B.call(g))!==void 0;)this.emitter.emit("error",$C(!1,e));for(;(A=t.decoderContext.take())!==void 0;){const{statistics:o}=A;o&&(t.decodeTime.push(o.decodeTime),t.transportTime.push((o.transportTimeToWorker+o.transportTimeFromWorker)/o.samplesInBatch)),this.emitter.emit("decoded frame",A)}})});I(this,"emitDecodeRate",()=>{this.emitter.emit("video decode rate",this.videoDecodeRate())});I(this,"updateBufferState",()=>{let A;if(this.trackContexts.forEach(B=>{var o,n,a,Q;if(!A)A=B.buffer;else{const E=(n=(o=B.buffer[B.buffer.length-1])==null?void 0:o.end)!=null?n:0;((Q=(a=A[A.length-1])==null?void 0:a.end)!=null?Q:0)>E&&(A=B.buffer)}}),!A)return;const t=this.playbackSource.currentTime;let e=!0;this.trackContexts.forEach(B=>{B.buffer.some(n=>n.start<=t&&t<n.end)||(e=!1)});const g=e?"playing":"buffering";this.emitter.emit("buffer state",{buffered:A,currentTime:this.playbackSource.currentTime,isPaused:this.playbackSource.isPaused,playbackState:g})});this.logger=t,this.emitter=A,this.trackContexts=e,this.playbackSource=g}static create(A,t,e,g,B){return c(this,null,function*(){const o=new Map;for(const n of e)switch(n.type){case"audio":{const{OpusDecoderContext:a}=yield Promise.resolve().then(()=>xw);o.set(n.type,{buffer:[],decoderContext:yield a.create(48e3,2),decodeTime:new x(100),transportTime:new x(100),sampleDuration:40});break}case"video":{const{H264DecoderWorkerContext:a}=yield Promise.resolve().then(()=>Ow);o.set(n.type,{buffer:[],decoderContext:yield a.create(B),decodeTime:new x(100),transportTime:new x(100),sampleDuration:40});break}}return new fa(A,t,o,g)})}}const Bn=class Bn{constructor(A){I(this,"emitter");I(this,"isVisibleCount",0);I(this,"isHiddenCount",0);I(this,"isOnlineCount",0);I(this,"isOfflineCount",0);I(this,"isActive",document.visibilityState==="visible");I(this,"unload",()=>{document.removeEventListener("visibilitychange",this.onVisibilityChanged),window.removeEventListener("pagehide",this.onPageHide),window.removeEventListener("online",this.onOnline),window.removeEventListener("offline",this.onOffline)});I(this,"load",()=>{document.addEventListener("visibilitychange",this.onVisibilityChanged),window.addEventListener("pagehide",this.onPageHide),window.addEventListener("online",this.onOnline),window.addEventListener("offline",this.onOffline)});I(this,"unsuspend",()=>{});I(this,"getStatistics",()=>{var A,t,e,g,B;return{isVisible:this.isVisible,isOnline:this.isOnline,isVisibleCount:this.isVisibleCount,isHiddenCount:this.isHiddenCount,isOnlineCount:this.isOnlineCount,isOfflineCount:this.isOfflineCount,navigatorRtt:(A=navigator.connection)==null?void 0:A.rtt,navigatorEffectiveType:(t=navigator.connection)==null?void 0:t.effectiveType,navigatorConnectionType:(e=navigator.connection)==null?void 0:e.type,navigatorSaveData:(g=navigator.connection)==null?void 0:g.saveData,navigatorDownlink:(B=navigator.connection)==null?void 0:B.downlink}});I(this,"onOnline",()=>this.isOnlineCount++);I(this,"onOffline",()=>this.isOfflineCount++);I(this,"onPageHide",A=>this.emitter.emit("pagehide",A));I(this,"onVisibilityChanged",()=>{this.setIsActive(document.visibilityState==="visible")});I(this,"setIsActive",A=>{A!==this.isActive&&(this.emitter.emit("page active",A),A?this.isVisibleCount++:this.isHiddenCount++),this.isActive=A});this.emitter=A}get isOnline(){return navigator.onLine}get isVisible(){return document.visibilityState==="visible"}};I(Bn,"create",A=>new Bn(A));let pa=Bn;const Su=i=>(A,t,e)=>A.timestamp<=t||A.timestampAdded<=e-i,Te=class Te{constructor(A,t,e){I(this,"logger");I(this,"emitter");I(this,"waitingEvents",[]);I(this,"isTriggered",Su(Te.EVENT_TIMEOUT));I(this,"timeSource");I(this,"timers",new bA);I(this,"load",()=>{this.timers.setInterval(this.onBufferedStateChanged,Te.EVENT_CHECK_INTERVAL),this.emitter.on("add event",this.addEvent)});I(this,"unload",()=>{this.timers.unload(),this.emitter.off("add event",this.addEvent)});I(this,"addEvent",A=>{this.logger.debug("Adding event",{event:A}),!this.waitingEvents.some(t=>typeof t.id!="undefined"&&t.id===A.id)&&this.waitingEvents.push(z(D({},A),{timestampAdded:Date.now()}))});I(this,"extractEvent",(A,t)=>{t.type==="video"&&A.channelId!==t.channelId&&this.addEvent({type:"channel switch",channelId:t.channelId,timestamp:t.timestamp/t.timescale*1e3}),t.type==="audio"&&A.type==="audio"&&t.language!==void 0&&t.language!==A.language&&this.addEvent({type:"language switch",language:t.language,timestamp:t.timestamp/t.timescale*1e3})});I(this,"onBufferedStateChanged",()=>{var B;const A=Date.now(),t=(B=this.timeSource.drift)!=null?B:0,e=this.timeSource.serverCurrentTime-t;if(this.waitingEvents.length===0)return;const g=this.waitingEvents.filter(o=>this.isTriggered(o,e,A));this.waitingEvents=this.waitingEvents.filter(o=>!this.isTriggered(o,e,A)),g.forEach(o=>{this.logger.debug("Emitting event",{event:o}),this.emitter.emit("event",o)})});this.logger=t,this.emitter=A,this.timeSource=e}};I(Te,"EVENT_TIMEOUT",5e3),I(Te,"EVENT_CHECK_INTERVAL",20),I(Te,"create",(A,t,e)=>new Te(A,t,e));let Fa=Te;const kt=class kt{constructor(A){I(this,"emitter");I(this,"timers",bA.create());I(this,"bytesReceived",new Map);I(this,"timeoutInterval");I(this,"lastBytesUpdated",Date.now());I(this,"load",()=>{this.emitter.on("connection state",this.onConnectionState),this.timers.setInterval(()=>this.bytesReceived.forEach(A=>A.tick()),100)});I(this,"unload",()=>{this.emitter.off("connection state",this.onConnectionState),this.timers.unload()});I(this,"averageBitRate",A=>{var t,e;return((e=(t=this.bytesReceived.get(A))==null?void 0:t.average)!=null?e:0)*8});I(this,"totalBytesReceived",()=>{let A=0;return this.bytesReceived.forEach(t=>{A+=t.total}),A});I(this,"add",(A,t)=>{let e=this.bytesReceived.get(A);e||(e=new Ic(20),this.bytesReceived.set(A,e)),t>0&&(this.lastBytesUpdated=Date.now(),this.timeoutInterval||(this.timeoutInterval=this.timers.setInterval(this.checkTimeout,kt.UPDATE_RECEIVED_BYTES_INTERVAL))),e.add(t)});I(this,"getStatistics",()=>({bytesReceived:this.totalBytesReceived(),videoBitRate:this.averageBitRate("video"),audioBitRate:this.averageBitRate("audio")}));I(this,"onConnectionState",A=>{this.clearTimeoutInterval(),A==="connected"&&(this.lastBytesUpdated=Date.now(),this.timeoutInterval=this.timers.setInterval(this.checkTimeout,kt.UPDATE_RECEIVED_BYTES_INTERVAL))});I(this,"checkTimeout",()=>{const A=Date.now()-this.lastBytesUpdated;if(this.totalBytesReceived()===0&&A>kt.NO_DATA_ERROR_TIMEOUT){this.emitter.emit("error",Rc()),this.emitter.emit("reconnect","no incoming data"),this.clearTimeoutInterval();return}A>kt.NO_DATA_TIMEOUT&&this.totalBytesReceived()>0&&(this.emitter.emit("no data timeout",this.totalBytesReceived()),this.clearTimeoutInterval())});I(this,"clearTimeoutInterval",()=>{this.timeoutInterval&&(this.timers.clearInterval(this.timeoutInterval),this.timeoutInterval=void 0)});this.emitter=A}};I(kt,"NO_DATA_ERROR_TIMEOUT",20*1e3),I(kt,"NO_DATA_TIMEOUT",5*1e3),I(kt,"UPDATE_RECEIVED_BYTES_INTERVAL",1e3),I(kt,"create",A=>new kt(A));let ka=kt;const Ar=1e3,tr=50;class Ga{constructor(A){I(this,"logger");I(this,"trackingState",new Map);I(this,"runningJitter",new Map);I(this,"recentJitterSamples",new Map);I(this,"load",()=>{this.logger.debug("JitterModule loaded")});I(this,"unload",()=>{this.trackingState.clear(),this.runningJitter.clear(),this.recentJitterSamples.clear(),this.logger.debug("JitterModule unloaded")});this.logger=A}static create(A){return new Ga(A)}getTrackingKey(A,t){return`${A}-${t}`}recordSample(A){var d,m,y,f;const t=this.getTrackingKey(A.type,A.renditionId),e=(y=(m=(d=globalThis.performance)==null?void 0:d.now)==null?void 0:m.call(d))!=null?y:Date.now(),g=A.timestamp/A.timescale*1e3,B=this.trackingState.get(t);if(!B){this.trackingState.set(t,{lastArrivalTime:e,lastTimestampMs:g,jitterSamples:new x(Ar),interArrivalTimes:new x(Ar)}),this.runningJitter.set(t,0),this.recentJitterSamples.set(t,new x(tr));return}const o=g-B.lastTimestampMs;if(o<=0){B.lastArrivalTime=e,B.lastTimestampMs=g;return}const n=e-B.lastArrivalTime,a=Math.abs(n-o);B.jitterSamples.push(a),B.interArrivalTimes.push(n);const Q=(f=this.runningJitter.get(t))!=null?f:0,E=Q+(a-Q)/16;this.runningJitter.set(t,E);let h=this.recentJitterSamples.get(t);h||(h=new x(tr),this.recentJitterSamples.set(t,h)),h.push(a),B.lastArrivalTime=e,B.lastTimestampMs=g}getJitterForType(A){var t,e,g;for(const[B,o]of this.trackingState)if(B.startsWith(A)){if(o.jitterSamples.items().length<1)return;const a=(t=this.runningJitter.get(B))!=null?t:0,Q=(g=(e=this.recentJitterSamples.get(B))==null?void 0:e.items())!=null?g:[],{min:E,max:h,average:d}=Xt(Q);return{min:Math.round(E),max:Math.round(h),last:Math.round(d),average:Math.round(a)}}}getRunningJitter(A){for(const[t,e]of this.runningJitter)if(t.startsWith(A))return e}reset(A,t){if(A!==void 0&&t!==void 0){const e=this.getTrackingKey(A,t);this.trackingState.delete(e),this.runningJitter.delete(e),this.recentJitterSamples.delete(e)}else if(A!==void 0)for(const e of this.trackingState.keys())e.startsWith(A)&&(this.trackingState.delete(e),this.runningJitter.delete(e),this.recentJitterSamples.delete(e));else this.trackingState.clear(),this.runningJitter.clear(),this.recentJitterSamples.clear()}getStatistics(){return{audioJitter:this.getJitterForType("audio"),videoJitter:this.getJitterForType("video")}}}const yu=()=>window.AudioContext||window.webkitAudioContext,on=class on extends st{constructor(){super();I(this,"context",new(yu()));I(this,"timers",bA.create());I(this,"previousCurrentTime",0);I(this,"_isStuck",!1);I(this,"mediaStreamDestination");I(this,"unload",()=>(this.timers.unload(),this.context.removeEventListener("statechange",this.onStateChange),this.context.state!=="closed"?this.context.close():Promise.resolve()));I(this,"createGain",()=>this.context.createGain());I(this,"createBuffer",(t,e,g)=>this.context.createBuffer(t,e,g));I(this,"createBufferSource",()=>this.context.createBufferSource());I(this,"getMediaStreamDestination",()=>(this.mediaStreamDestination||(this.mediaStreamDestination=this.context.createMediaStreamDestination()),this.mediaStreamDestination));I(this,"getDefaultDestination",()=>this.context.destination);I(this,"createSplitter",()=>this.context.createChannelSplitter(2));I(this,"resume",()=>c(this,null,function*(){try{return yield Promise.race([this.context.resume(),vn(1e3,Fc())])}catch(t){throw this.suspend().catch(F),t}}));I(this,"suspend",()=>c(this,null,function*(){var t;yield(t=this.context.suspend())!=null?t:Promise.resolve()}));I(this,"onStateChange",()=>this.emit("state",this.state));this.context.addEventListener("statechange",this.onStateChange),this.timers.setInterval(()=>{this._isStuck=this.isRunning&&this.context.currentTime===this.previousCurrentTime,this._isStuck&&this.emit("stuck"),this.previousCurrentTime=this.context.currentTime},on.CHECK_INTERVAL)}get isStuck(){return this._isStuck}get isRunning(){return this.state==="running"}get currentTime(){return this.context.currentTime}get sampleRate(){return this.context.sampleRate}get state(){return this.context.state}};I(on,"CHECK_INTERVAL",1e3);let Ra=on;const fu=400,nn=class nn extends st{constructor(t,e,{muted:g,reInitWhenStuck:B,bufferTime:o}){super();I(this,"logger");I(this,"audio");I(this,"gainNode");I(this,"splitter");I(this,"_volume",1);I(this,"_userProvidedMuted",!1);I(this,"_muted",!1);I(this,"startTime",0);I(this,"samples",new Float32Array(0));I(this,"preInitSampleQueue",new x(500));I(this,"unplayedBufferSources",new x(100));I(this,"sampleRate",48e3);I(this,"channels",2);I(this,"index",0);I(this,"clockSource");I(this,"clockDelta");I(this,"startTimeIsInvalidated",!0);I(this,"lastSampleTimestamp",0);I(this,"reInitWhenStuck");I(this,"ignoreSuspendCalls",!1);I(this,"audioBufferMultiplier");I(this,"isActivated",!1);I(this,"unload",()=>c(this,null,function*(){var t,e;(t=this.gainNode)==null||t.disconnect(),yield(e=this.audio)==null?void 0:e.unload(),this.reset(),this.audio=void 0,this.gainNode=void 0}));I(this,"suspend",()=>{this.setGain(0)});I(this,"unsuspend",()=>{var t;this.setGain(this._volume),this.ignoreSuspendCalls=!!this.audio,(t=this.audio)==null||t.suspend().then(()=>c(this,null,function*(){yield this.resume(),this.ignoreSuspendCalls=!1})).catch(()=>{this.ignoreSuspendCalls=!1,this.emit("state change","suspended")})});I(this,"flush",(t=this.samples.length)=>{if(!this.audio||!this.gainNode)throw new O("AudioContext must be initialized to flush",{isFatal:!1,code:"audiocontext_must_be_initialized"});const e=Math.floor(t/this.channels);if(e<=0)return;const g=this.audio.createBufferSource(),B=this.audio.createBuffer(this.channels,e,this.sampleRate);let o=0;for(let a=0;a<this.channels;a++){o=a;const Q=B.getChannelData(a);for(let E=0;E<e;E++)Q[E]=this.samples[o],o+=this.channels}const n=Math.max(this.startTime,0);g.buffer=B,g.connect(this.gainNode),this.splitter&&g.connect(this.splitter),g.start(n),this.unplayedBufferSources.push([n,g]),this.startTime+=B.duration});I(this,"onDecodedFrame",t=>{if(!(this.gainNode&&this.audio&&this.audio.isRunning)){if(t.type==="audio"){this.preInitSampleQueue.push(z(D({},t),{data:t.data.slice(0,t.data.length)}));const e=this.clockSource.currentTime;this.preInitSampleQueue.filterPop(({timestamp:g,timescale:B})=>g/B*1e3>e)}return}for(;!this.preInitSampleQueue.isEmpty();){const e=this.preInitSampleQueue.items();this.preInitSampleQueue.clear(),e.forEach(this.onDecodedFrame)}if(this.unplayedBufferSources.filterPop(([e,g])=>{var B,o;return((o=(B=this.audio)==null?void 0:B.currentTime)!=null?o:0)<e}),t.type==="audio"){const e=t.timestamp/t.timescale*1e3;if(e<this.lastSampleTimestamp&&(this.logger.info("Unordered timestamp - invalidating start time"),this.startTimeIsInvalidated=!0),this.lastSampleTimestamp=e,this.startTimeIsInvalidated){const B=this.audio.currentTime*1e3,o=this.clockSource.currentTime,n=(B+e-o)/1e3;this.clockDelta=o-B,this.startTime=n,this.startTimeIsInvalidated=!1,this.unplayedBufferSources.items().forEach(([a,Q])=>{n<=a&&Q.stop()})}const g=t.data.length*this.audioBufferMultiplier;this.samples.length!==g&&(this.index>0&&this.flush(this.index),this.samples=new Float32Array(g),this.index=0),this.channels=t.channels,this.sampleRate=t.sampleRate,this.samples.set(t.data,this.index),this.index+=t.data.length,this.samples.length<=this.index&&(this.flush(this.samples.length),this.index=0)}});I(this,"play",()=>c(this,null,function*(){this.audio=this.getAudioContext(),yield this.resume()}));I(this,"pause",()=>{});I(this,"flushBuffer",()=>{var t,e;this.unplayedBufferSources.items().forEach(([g,B])=>{try{B.stop()}catch(o){}}),this.unplayedBufferSources.clear(),this.preInitSampleQueue.clear(),this.samples=new Float32Array(0),this.index=0,this.lastSampleTimestamp=0,this.startTime=(e=(t=this.audio)==null?void 0:t.currentTime)!=null?e:0,this.startTimeIsInvalidated=!0});I(this,"resume",()=>c(this,null,function*(){var t;if(!this._userProvidedMuted)try{yield(t=this.audio)==null?void 0:t.resume(),this._muted=this._userProvidedMuted,this.startTimeIsInvalidated=!0}catch(e){throw this._muted=!0,e}}));I(this,"getAudioContext",()=>this.audio?this.audio:this.setupContext());I(this,"setupContext",()=>{var t,e,g;return(t=this.audio)==null||t.unload(),this.audio=new Ra,this.audio.on("state",B=>{this.logger.info("AudioContext state change",{state:B}),B==="running"&&(this._muted=this._userProvidedMuted,this.setGain(this._volume)),!this.ignoreSuspendCalls&&this.emit("state change",B)}),this.audio.on("stuck",()=>{this.reInitWhenStuck&&(this.logger.info("Re-init audio context"),this.setupContext(),this.resume().catch(F),this.emit("stuck"))}),(e=this.gainNode)==null||e.disconnect(),this.gainNode=this.audio.createGain(),this.setGain(this._volume),this.startTime=this.audio.currentTime,(g=this.splitter)==null||g.disconnect(),this.splitter=this.audio.createSplitter(),this.audio});I(this,"setGain",t=>{this.gainNode&&(this.gainNode.gain.value=this._muted?0:t)});this._muted=g,this._userProvidedMuted=g,this.logger=t,this.clockSource=e,this.reInitWhenStuck=B,this.audioBufferMultiplier=o!==void 0&&o<fu?2:5}get isContextRunning(){var t;return((t=this.audio)==null?void 0:t.state)==="running"}get volume(){return this._volume}set volume(t){this._volume=t,this.muted||this.setGain(t)}get seekTime(){return 0}get totalSeekTime(){return 0}get isSeeking(){return!1}get muted(){var t;return this._muted||!((t=this.audio)!=null&&t.isRunning)}set muted(t){this._userProvidedMuted=t,this._muted=t,this.setGain(this._volume)}get isPaused(){return!1}get currentTime(){var t;return!this.audio||!this.audio.isRunning||this.audio.isStuck?this.clockSource.currentTime:this.audio.currentTime*1e3+((t=this.clockDelta)!=null?t:0)}set currentTime(t){this.logger.debug("setting current time to",{currentTime:t}),this.startTimeIsInvalidated=!0}get audioNode(){return this.splitter}useMediaStreamDestination(){var g;const t=this.getAudioContext(),e=t.getMediaStreamDestination();return(g=this.gainNode)==null||g.connect(e),t.isRunning||t.resume().catch(()=>{}),e}useDefaultDestination(){var g;const e=this.getAudioContext().getDefaultDestination();return(g=this.gainNode)==null||g.connect(e),e}};I(nn,"create",(t,e,g)=>new nn(t,e,g));let co=nn;class pu{constructor(){C(this,Et);C(this,uB,[]);C(this,Wt,document.createElement("canvas"));C(this,MA);C(this,Ti,window.devicePixelRatio||1);I(this,"config",{backgroundColor:"rgba(0,0,0,0.6)",textPadding:8,fontSize:"28px",lineGap:16});const A=s(this,Wt).getContext("2d",{alpha:!0});if(!A)throw new Error("Failed to create 2d context");r(this,MA,A),l(this,Et,yg).call(this)}get canvas(){return s(this,Wt)}setActiveCues(A){r(this,uB,A)}render(A,t=!1){const e=s(this,uB).flatMap(n=>n.text.split(`
|
|
3
|
-
`).flatMap(Q=>l(this,Et,YE).call(this,Q,A.width)).map(Q=>{l(this,Et,yg).call(this);const E=s(this,MA).measureText(Q);return{text:Q,measurement:E,size:{height:E.fontBoundingBoxAscent+E.fontBoundingBoxDescent+this.config.textPadding*2,width:E.width+this.config.textPadding*2}}})),g=Math.max(...e.map(n=>n.size.width)),B=e.reduce((n,{size:a})=>n+a.height,0)+(e.length-1)*this.config.lineGap;let o=0;l(this,Et,KE).call(this,g,B),s(this,MA).clearRect(0,0,s(this,Wt).width,s(this,Wt).height);for(const{size:n,text:a}of e)l(this,Et,yg).call(this),s(this,MA).fillStyle=this.config.backgroundColor,s(this,MA).fillRect(0,o,n.width,n.height),l(this,Et,yg).call(this),s(this,MA).fillText(a,this.config.textPadding,o+this.config.textPadding),o+=n.height+this.config.lineGap;t&&(s(this,MA).strokeStyle="red",s(this,MA).strokeRect(0,0,A.width,s(this,Wt).height))}}uB=new WeakMap,Wt=new WeakMap,MA=new WeakMap,Ti=new WeakMap,Et=new WeakSet,KE=function(A,t){s(this,Wt).width=A*s(this,Ti),s(this,Wt).height=t*s(this,Ti),s(this,MA).setTransform(s(this,Ti),0,0,s(this,Ti),0,0),this.canvas.style.width=`${A}px`,this.canvas.style.height=`${t}px`},yg=function(){s(this,MA).fillStyle="white",s(this,MA).textAlign="left",s(this,MA).textBaseline="top",s(this,MA).font=`${this.config.fontSize} sans-serif`},YE=function(A,t){const e=[],g=A.split(" ");let B="";for(;g.length>0;){l(this,Et,yg).call(this);let o=0;for(;s(this,MA).measureText(B+(B.length>0?" ":"")+g[0]).width+this.config.textPadding*2<=t&&g.length>0;)o++,B+=(B.length>0?" ":"")+g.shift();if(o==0){e.push(g.shift()||""),B="";continue}e.push(B),B=""}return e};const Fu=`
|
|
1
|
+
(function(w,S){typeof exports=="object"&&typeof module!="undefined"?S(exports):typeof define=="function"&&define.amd?define(["exports"],S):(w=typeof globalThis!="undefined"?globalThis:w||self,S(w.Vindral={}))})(this,(function(w){"use strict";var Yw=Object.create;var wr=Object.defineProperty,Pw=Object.defineProperties,xw=Object.getOwnPropertyDescriptor,Ww=Object.getOwnPropertyDescriptors;var Ga=Object.getOwnPropertySymbols;var dE=Object.prototype.hasOwnProperty,lE=Object.prototype.propertyIsEnumerable;var ze=(w,S)=>(S=Symbol[w])?S:Symbol.for("Symbol."+w),dt=w=>{throw TypeError(w)};var Ua=(w,S,R)=>S in w?wr(w,S,{enumerable:!0,configurable:!0,writable:!0,value:R}):w[S]=R,f=(w,S)=>{for(var R in S||(S={}))dE.call(S,R)&&Ua(w,R,S[R]);if(Ga)for(var R of Ga(S))lE.call(S,R)&&Ua(w,R,S[R]);return w},V=(w,S)=>Pw(w,Ww(S)),hE=(w,S)=>wr(w,"name",{value:S,configurable:!0});var uE=(w,S)=>{var R={};for(var T in w)dE.call(w,T)&&S.indexOf(T)<0&&(R[T]=w[T]);if(w!=null&&Ga)for(var T of Ga(w))S.indexOf(T)<0&&lE.call(w,T)&&(R[T]=w[T]);return R};var zi=w=>{var S;return[,,,Yw((S=w==null?void 0:w[ze("metadata")])!=null?S:null)]},mE=["class","method","getter","setter","accessor","field","value","get","set"],Rn=w=>w!==void 0&&typeof w!="function"?dt("Function expected"):w,Ow=(w,S,R,T,J)=>({kind:mE[w],name:S,metadata:T,addInitializer:Y=>R._?dt("Already initialized"):J.push(Rn(Y||null))}),jt=(w,S)=>Ua(S,ze("metadata"),w[3]),_i=(w,S,R,T)=>{for(var J=0,Y=w[S>>1],X=Y&&Y.length;J<X;J++)S&1?Y[J].call(R):T=Y[J].call(R,T);return T},_A=(w,S,R,T,J,Y)=>{var X,$,IA,aA,_e,G=S&7,_=!!(S&8),P=!!(S&16),zt=G>3?w.length+1:G?_?1:2:0,_t=mE[G+5],lA=G>3&&(w[zt-1]=[]),Mn=w[zt]||(w[zt]=[]),M=G&&(!P&&!_&&(J=J.prototype),G<5&&(G>3||!P)&&xw(G<4?J:{get[R](){return I(this,Y)},set[R](KA){return E(this,Y,KA)}},R));G?P&&G<4&&hE(Y,(G>2?"set ":G>1?"get ":"")+R):hE(J,R);for(var ts=T.length-1;ts>=0;ts--)aA=Ow(G,R,IA={},w[3],Mn),G&&(aA.static=_,aA.private=P,_e=aA.access={has:P?KA=>Vw(J,KA):KA=>R in KA},G^3&&(_e.get=P?KA=>(G^1?I:l)(KA,J,G^4?Y:M.get):KA=>KA[R]),G>2&&(_e.set=P?(KA,Je)=>E(KA,J,Je,G^4?Y:M.set):(KA,Je)=>KA[R]=Je)),$=(0,T[ts])(G?G<4?P?Y:M[_t]:G>4?void 0:{get:M.get,set:M.set}:J,aA),IA._=1,G^4||$===void 0?Rn($)&&(G>4?lA.unshift($):G?P?Y=$:M[_t]=$:J=$):typeof $!="object"||$===null?dt("Object expected"):(Rn(X=$.get)&&(M.get=X),Rn(X=$.set)&&(M.set=X),Rn(X=$.init)&&lA.unshift(X));return G||jt(w,J),M&&wr(J,R,M),P?G^4?Y:M:J},s=(w,S,R)=>Ua(w,typeof S!="symbol"?S+"":S,R),fr=(w,S,R)=>S.has(w)||dt("Cannot "+R),Vw=(w,S)=>Object(S)!==S?dt('Cannot use the "in" operator on this value'):w.has(S),I=(w,S,R)=>(fr(w,S,"read from private field"),R?R.call(w):S.get(w)),r=(w,S,R)=>S.has(w)?dt("Cannot add the same private member more than once"):S instanceof WeakSet?S.add(w):S.set(w,R),E=(w,S,R,T)=>(fr(w,S,"write to private field"),T?T.call(w,R):S.set(w,R),R),l=(w,S,R)=>(fr(w,S,"access private method"),R);var te=(w,S,R,T)=>({set _(J){E(w,S,J,R)},get _(){return I(w,S,T)}});var c=(w,S,R)=>new Promise((T,J)=>{var Y=IA=>{try{$(R.next(IA))}catch(aA){J(aA)}},X=IA=>{try{$(R.throw(IA))}catch(aA){J(aA)}},$=IA=>IA.done?T(IA.value):Promise.resolve(IA.value).then(Y,X);$((R=R.apply(w,S)).next())}),rA=function(w,S){this[0]=w,this[1]=S},lt=(w,S,R)=>{var T=(X,$,IA,aA)=>{try{var _e=R[X]($),G=($=_e.value)instanceof rA,_=_e.done;Promise.resolve(G?$[0]:$).then(P=>G?T(X==="return"?X:"next",$[1]?{done:P.done,value:P.value}:P,IA,aA):IA({value:P,done:_})).catch(P=>T("throw",P,IA,aA))}catch(P){aA(P)}},J=X=>Y[X]=$=>new Promise((IA,aA)=>T(X,$,IA,aA)),Y={};return R=R.apply(w,S),Y[ze("asyncIterator")]=()=>Y,J("next"),J("throw"),J("return"),Y},Dr=w=>{var S=w[ze("asyncIterator")],R=!1,T,J={};return S==null?(S=w[ze("iterator")](),T=Y=>J[Y]=X=>S[Y](X)):(S=S.call(w),T=Y=>J[Y]=X=>{if(R){if(R=!1,Y==="throw")throw X;return X}return R=!0,{done:!1,value:new rA(new Promise($=>{var IA=S[Y](X);IA instanceof Object||dt("Object expected"),$(IA)}),1)}}),J[ze("iterator")]=()=>J,T("next"),"throw"in S?T("throw"):J.throw=Y=>{throw Y},"return"in S&&T("return"),J},EA=(w,S,R)=>(S=w[ze("asyncIterator")])?S.call(w):(w=w[ze("iterator")](),S={},R=(T,J)=>(J=w[T])&&(S[T]=Y=>new Promise((X,$,IA)=>(Y=J.call(w,Y),IA=Y.done,Promise.resolve(Y.value).then(aA=>X({value:aA,done:IA}),$)))),R("next"),R("return"),S);var ue=(w,S,R)=>{if(S!=null){typeof S!="object"&&typeof S!="function"&&dt("Object expected");var T,J;R&&(T=S[ze("asyncDispose")]),T===void 0&&(T=S[ze("dispose")],R&&(J=T)),typeof T!="function"&&dt("Object not disposable"),J&&(T=function(){try{J.call(this)}catch(Y){return Promise.reject(Y)}}),w.push([R,T,S])}else R&&w.push([R]);return S},me=(w,S,R)=>{var T=typeof SuppressedError=="function"?SuppressedError:function(X,$,IA,aA){return aA=Error(IA),aA.name="SuppressedError",aA.error=X,aA.suppressed=$,aA},J=X=>S=R?new T(X,S,"An error was suppressed during disposal"):(R=!0,X),Y=X=>{for(;X=w.pop();)try{var $=X[1]&&X[1].call(X[2]);if(X[0])return Promise.resolve($).then(Y,IA=>(J(IA),Y()))}catch(IA){J(IA)}if(R)throw S};return Y()};var At,Cs,fe,qg,Kg,He,De,mA,et,Dt,oi,Tg,ai,Qs,Es,Yg,Sr,Bi,ri,Ce,Se,Pg,qe,MA,Ci,Qe,wE,pg,fE,tA,xg,Wg,Og,pt,cs,DE,SE,Lo,Qi,Ei,Vg,iA,ci,tt,pe,Ke,UA,Ft,kt,Jo,hs,Zg,Xg,wA,pE,yE,FE,kE,Mo,vo,RE,Gn,Ho,GE,UE,hI,dI,lI,uI,OA,se,nA,ms,Rt,it,hi,bE,pr,Te,ws,fs,mI,wI,Ds,fI,DI,Ye,Ss,SI,pI,ps,di,NE,yr,ye,ys,yI,Fs,FI,kI,RI,ks,Ko,li,LE,Fr,Ut,GI,Pe,ui,mi,wi,vA,UI,fi,pA,To,CA,Un,ba,$i,JE,kr,xe,bI,Yo,Po,xo,Rs,st,Wo,NI,Rr,Ae,Ee,Di,Oo,gt,Gs,hA,ME,vE,HE,qE,KE,TE,YE,PE,xE,WE,Us,LI,JI,yA,MI,bs,Ns,vI,Zo,OE,Xo,Js,Ms,bt,Si,jo,pi,Fe,TA,HI,qI,ce,KI,TI,Hs,YI,zo,VE,yi,PI,qs,xI,Ks,WI,Fi,Nt,yg,eE,Ts,OI,Ys,ki,Lt,Jt,Mt,Br,Ri,tE,Ps,bA,xs,Ws,rr,Os,bn,iE,sE,gE,IE,It,ge,Gi,Ui,Vs,We,Na,Fg,nE,oE,aE,BE,ke,VI,bi,Zs,Xs,FA,ZE,XE,js,La,Ja,Ma,Nn,he,ZI,Ni,zs,XI,YA,As,es,vt,nt,_s,Li,ot,Ji,$s,_o,jE,at,Bt,Ht,jI,zI,$o,Aa,zE,rt,Ag,_I,Ie,Oe,Mi,de,$I,ea,An,Gr,Re,vi,Ct,Ve,en,Ur,tn,qt,sn,gn,In,ta,_E,nn,eg,on,tg,an,br,Bn,Ze,rn,Cn,sa,$E,ga,Kt,Hi,Qn,En,cn,qi,Nr,Ac,Ia,hn,Tt,sg,rE,Ki,Ti,Yi,Yt,hr,gg,va,Pi,dn,na,ec,ln,oa,tc,aa,ng,og,un,mn,CE,QE,EE,ag,Bg,xi,HA,Ge,Ue,Pt,rg,wn,fn,Qt,VA,Ha,Ln,ic,Lr,kA,ZA,ne,Dn,dA,xt,Sn,Cg,pn,Qg,DA,sc,Eg,yn,cg,gc,Ic,Jn,nc,oc,Jr,Et,Wi,Ba,ac,hg,Wt,dg,je,be,lg,Oi,Ot,Vi,ug,mg,ra,Ca,Qa,Bc,Zt,Zi,oe,Xi,Dg,rc,Cc;const T={buffering:"_buffering_1ccif_1","buffering-fullscreen":"_buffering-fullscreen_1ccif_16",hidden:"_hidden_1ccif_25","buffering-indicator":"_buffering-indicator_1ccif_31"};class J{constructor(A){s(this,"attach",A=>{this.detach(),A.appendChild(this.element)});s(this,"attachBefore",(A,e)=>{this.detach(),A.insertBefore(this.element,e)});s(this,"detach",()=>this.element.remove());this.element=A}}const Y=T.hidden,X=T.buffering,$=T["buffering-fullscreen"],IA=T["buffering-indicator"];class aA extends J{constructor(){super(document.createElement("div"));s(this,"indicator",document.createElement("div"));s(this,"isHidden",()=>this.element.classList.contains(Y));s(this,"setHidden",e=>e?this.hide():this.show());s(this,"hide",()=>this.element.classList.add(Y));s(this,"show",()=>this.element.classList.remove(Y));s(this,"fullscreen",e=>{e?this.element.classList.add($):this.element.classList.remove($)});this.element.className=X,this.indicator.className=IA,this.element.appendChild(this.indicator)}}class _e{constructor(A){s(this,"maxSize",0);s(this,"size",0);s(this,"buffers",[]);s(this,"_borrowedBuffers",0);s(this,"get",A=>{const e=this.buffers.shift();return this._borrowedBuffers++,this.size<A||!e?(this.buffers=[],this.size=A,new ArrayBuffer(A)):e});s(this,"reclaim",A=>{this._borrowedBuffers=Math.max(0,this._borrowedBuffers-1),!(A.byteLength<this.size)&&(this.buffers.length>=this.maxSize||this.buffers.push(A))});this.maxSize=A}get bufferSize(){return this.size}get poolSize(){return this.buffers.length}get borrowedBuffers(){return this._borrowedBuffers}}const G=()=>{};class _{constructor(){s(this,"promise");s(this,"resolved");s(this,"resolve");s(this,"reject");s(this,"pending",!0);this.promise=new Promise((A,e)=>{this.resolve=t=>{this.pending=!1,this.resolved=t,A(t)},this.reject=t=>{this.pending=!1,e(t)}}),this.promise.catch(G)}static resolved(A){const e=new _;return e.resolve(A),e}static fromPromise(A){const e=new _;return e.promise=A,A.then(t=>{e.pending=!1,e.resolved=t},t=>{e.pending=!1,e.reject(t)}),e}}class P{constructor(A=50){s(this,"maxSize");s(this,"values",[]);s(this,"push",A=>{this.isFull()&&this.pop(),this.values.push(A)});s(this,"clear",()=>{this.values=[]});s(this,"pop",()=>this.values.shift());s(this,"peekFirst",()=>this.values[0]);s(this,"peekLast",()=>this.values[this.values.length-1]);s(this,"isFull",()=>this.values.length>=this.maxSize);s(this,"isEmpty",()=>this.values.length===0);s(this,"items",()=>this.values);s(this,"filterPop",A=>{for(;this.peekFirst()&&!A(this.peekFirst());)this.pop()});this.maxSize=A}}function zt(i){const A=new _t(i);return[A,A]}class _t{constructor(A){r(this,At);r(this,Cs,new _);r(this,fe);r(this,qg,!1);E(this,At,new P(A))}isFull(){return I(this,At).isFull()}close(){var A;(A=I(this,fe))==null||A.resolve(),E(this,qg,!0)}abort(A){var e,t;(e=I(this,fe))==null||e.promise.catch(G),(t=I(this,fe))==null||t.reject(A)}push(A){return c(this,null,function*(){var e;I(this,At).isFull()&&(yield I(this,Cs).promise),I(this,At).push(A),(e=I(this,fe))==null||e.resolve(),E(this,fe,new _)})}pop(){return c(this,null,function*(){var A;for(;!(I(this,qg)&&I(this,At).isEmpty());){const e=I(this,At).pop();if(e)return I(this,Cs).resolve(),E(this,Cs,new _),e;I(this,fe)||E(this,fe,new _),yield(A=I(this,fe))==null?void 0:A.promise}})}start(A){}pull(A){return c(this,null,function*(){const e=yield this.pop();e?A.enqueue(e):A.close()})}cancel(A){this.abort(new Error(A))}next(){return c(this,null,function*(){const A=yield this.pop().catch(()=>{});return A?{done:!1,value:A}:{done:!0,value:void 0}})}return(){return this.close(),Promise.resolve({done:!0,value:void 0})}[Symbol.asyncIterator](){return this}}At=new WeakMap,Cs=new WeakMap,fe=new WeakMap,qg=new WeakMap;function lA(i,A){if(!i)throw new Error(A)}const Mn=typeof DataView.prototype.getBigUint64=="function";function M(i){return Mn?BigInt(i):typeof BigInt!="function"?i:typeof i=="bigint"?Number(i):i}class ts{constructor(A,e=0){r(this,Kg);r(this,He);r(this,De);s(this,"position",()=>I(this,De));s(this,"peekBit",()=>this.getBit(I(this,He),I(this,De)));s(this,"readBit",()=>{const A=this.peekBit();return te(this,De)._++,A});s(this,"readBits",A=>{let e=0;for(let t=0;t<A;t++)e=e<<1|(this.getBit(I(this,He),te(this,De)._++)?1:0);return e});s(this,"remainingBits",()=>I(this,He).byteLength*8-I(this,De));s(this,"readSignedExpGolomb",()=>{const A=this.readUnsignedExpGolomb();return A&1?(A+1)/2:-(A/2)});s(this,"readUnsignedExpGolomb",()=>{let A=0;for(;this.getBit(I(this,He),te(this,De)._++)===0;)A++;let e=1<<A;for(let t=A-1;t>=0;t--)e|=this.getBit(I(this,He),te(this,De)._++)<<t;return e-1});s(this,"getBit",(A,e)=>{if(A.byteLength*8<=e)throw new Error("BitReader: Out of bounds");return A[e>>3]>>7-(e&7)&1});E(this,Kg,A),E(this,He,new Uint8Array(I(this,Kg))),E(this,De,e)}bytes(){return I(this,He)}}Kg=new WeakMap,He=new WeakMap,De=new WeakMap;const KA=(i,A,e)=>{let t=0;for(let g=A;g<=e;g++)if(g===A){const n=i[g];t+=n&127,n&128&&(t-=128)}else t=t*256+i[g];return t};class Je{constructor(A){r(this,mA);r(this,et);r(this,Dt);E(this,et,A),E(this,Dt,new DataView(A.buffer,A.byteOffset,A.byteLength)),E(this,mA,0)}position(){return I(this,mA)}byteOffset(){return I(this,et).byteOffset+I(this,mA)}buffer(){return I(this,et)}remaining(){return I(this,et).length-I(this,mA)}readUint8(){const A=I(this,Dt).getUint8(I(this,mA));return E(this,mA,I(this,mA)+1),A}readUint24(){const A=I(this,Dt).getUint32(I(this,mA))>>8&16777215;return E(this,mA,I(this,mA)+3),A}readUint16(){const A=I(this,Dt).getUint16(I(this,mA));return E(this,mA,I(this,mA)+2),A}readUint32(){const A=I(this,Dt).getUint32(I(this,mA));return E(this,mA,I(this,mA)+4),A}readUint64(){const A=KA(I(this,et),I(this,mA),I(this,mA)+7);return E(this,mA,I(this,mA)+8),A}readBytes(A){const e=I(this,et).subarray(I(this,mA),I(this,mA)+A);return E(this,mA,I(this,mA)+A),e}readRemaining(){return this.readBytes(this.remaining())}readUtf8String(){const A=[];let e;for(;(e=this.readUint8())!==0&&(A.push(e),this.remaining()!=0););return new TextDecoder().decode(new Uint8Array(A))}}mA=new WeakMap,et=new WeakMap,Dt=new WeakMap;class Qc{constructor(A=100){s(this,"internalBuffer");s(this,"view");s(this,"uint8");s(this,"_position",0);s(this,"_end",0);this.internalBuffer=new ArrayBuffer(A),this.view=new DataView(this.internalBuffer),this.uint8=new Uint8Array(this.internalBuffer)}position(){return this._position}seek(A){this._position=Math.max(0,Math.min(this._end,A))}seekToEnd(){this._position=this._end}writeUint8(A){this.writeAndMove(A,1)}writeUint16(A){this.writeAndMove(A,2)}writeUint24(A){this.writeAndMove(A,3)}writeUint32(A){this.writeAndMove(A,4)}writeUint64(A){const e=Math.floor(A/4294967296),t=(A&4294967295)>>>0;this.writeUint32(e),this.writeUint32(t)}writeUint32At(A,e){this.view.setUint32(A,e)}writeBytes(A){this.resizeIfNeeded(this.position()+A.byteLength),this.uint8.set(A,this.position()),this._position+=A.byteLength,this._end=Math.max(this._end,this._position)}buffer(){return this.internalBuffer.slice(0,this._end)}bufferExact(){return this._end===this.internalBuffer.byteLength?this.internalBuffer:this.internalBuffer.slice(0,this._end)}write(A,e){switch(this.resizeIfNeeded(this.position()+e),e){case 1:this.view.setUint8(this.position(),A);break;case 2:this.view.setUint16(this.position(),A);break;case 3:this.view.setUint8(this.position(),A>>16&255),this.view.setUint8(this.position()+1,A>>8&255),this.view.setUint8(this.position()+2,A&255);break;case 4:this.view.setUint32(this.position(),A);break}}writeAndMove(A,e){this.write(A,e),this._position+=e,this._end=Math.max(this._end,this._position)}resizeIfNeeded(A){if(A>this.internalBuffer.byteLength){const e=Math.max(A,this.internalBuffer.byteLength*2),t=new ArrayBuffer(e),g=new Uint8Array(t);g.set(this.uint8),this.internalBuffer=t,this.view=new DataView(this.internalBuffer),this.uint8=g}}}function Mr(i){const A=atob(i),e=new Uint8Array(A.length);for(let t=0;t<A.length;t++)e[t]=A.charCodeAt(t);return e.buffer}function is(){const i=self.MediaSource,A=self.ManagedMediaSource;return i!=null?i:A}const Ec=/(android|bbd+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up.(browser|link)|vodafone|wap|windows ce|xda|xiino\/i.test(a)||\/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-\//i,PA=navigator.userAgent.toLowerCase(),cc=Ec.test(PA),hc=()=>{const i=document.createElement("video");return i.canPlayType("application/vnd.apple.mpegURL")!==""||i.canPlayType("audio/mpegurl")!==""},dc=()=>{try{if(typeof WebAssembly=="object"&&typeof WebAssembly.instantiate=="function"){const i=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(i instanceof WebAssembly.Module)return new WebAssembly.Instance(i)instanceof WebAssembly.Instance}}catch(i){return!1}return!1},lc=()=>PA.indexOf("CrKey")!==-1,uc=()=>navigator.platform==="MacIntel"&&navigator.maxTouchPoints===0,vn=()=>navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1,vr=()=>Hr()||vn()?!0:/AppleWebKit/i.test(navigator.userAgent)&&!/Chrome|Chromium|Edg|OPR|Opera/i.test(navigator.userAgent),Hr=()=>PA.indexOf("iphone")>=0&&PA.indexOf("like iphone")<0||PA.indexOf("ipad")>=0&&PA.indexOf("like ipad")<0||PA.indexOf("ipod")>=0&&PA.indexOf("like ipod")<0||vn(),mc=()=>{var i,A;return vn()?!1:(A=(i=is())==null?void 0:i.isTypeSupported('audio/mp4; codecs="opus"'))!=null?A:!1},wc=()=>/^(?!.*chrome).*safari/i.test(PA);function fc(){var i,A;if(/(iPhone|iPod|iPad)/i.test(PA))return(A=(i=PA==null?void 0:PA.match(/OS [\d_]+/i))==null?void 0:i[0])==null?void 0:A.substring(3).split("_").map(e=>parseInt(e))[0]}function Dc(){var i,A;if(/^((?!chrome|android).)*safari/i.test(PA))return(A=(i=PA.match(/version\/([\d.]+)/))==null?void 0:i[1])==null?void 0:A.split(".").map(e=>parseInt(e))[0]}const Sc=()=>typeof HTMLCanvasElement!="undefined"&&typeof HTMLCanvasElement.prototype.captureStream=="function",qa=()=>{var e,t;const i=!!is();let A=!1;return i&&(A=mc()),{isMobile:cc,supportsMp4Opus:A,supportsMediaSource:i,supportsHls:hc(),supportsWebAssembly:dc(),supportsCanvasCaptureStream:Sc(),platform:{iosVersion:(e=fc())!=null?e:Number.MAX_SAFE_INTEGER,safariVersion:(t=Dc())!=null?t:Number.MAX_SAFE_INTEGER,isIpadOS:vn(),isMacOS:uc(),isIOS:Hr(),isWebKit:vr()}}},qr=i=>i,Kr=i=>i,Ka=i=>i,Hn=i=>i,Tr=i=>"orientation"in i?i.orientation:void 0,pc=(i=document)=>{const A=qr(i);return!!(i.fullscreenElement||i.fullscreen||A.mozFullScreen||A.webkitIsFullScreen)},Yr=i=>{var e,t,g,n;const A=Kr(i);return((e=i.requestFullscreen)==null?void 0:e.bind(i))||((t=A.webkitRequestFullscreen)==null?void 0:t.bind(A))||((g=A.webkitEnterFullscreen)==null?void 0:g.bind(A))||((n=A.mozRequestFullScreen)==null?void 0:n.bind(A))},yc=(i,A=document)=>{var t,g;const e=qr(A);return((t=A.exitFullscreen)==null?void 0:t.bind(A))||(e.webkitFullscreenElement&&e.webkitExitFullscreen?e.webkitExitFullscreen.bind(A):void 0)||(e.mozFullscreenElement&&e.mozCancelFullScreen?e.mozCancelFullScreen.bind(A):void 0)||(i?(g=Kr(i).webkitExitFullscreen)==null?void 0:g.bind(i):void 0)},Fc=i=>!!Yr(i),Pr=i=>{var e;const A=Hn(i);return(e=A.requestPictureInPicture)==null?void 0:e.bind(A)},kc=(i=document)=>{var A;return(A=Ka(i).exitPictureInPicture)==null?void 0:A.bind(i)},Rc=(i=document)=>!!Ka(i).pictureInPictureEnabled,Gc=(i=document)=>!!Ka(i).pictureInPictureElement,Uc=(i,A=document)=>!!Pr(i)&&Rc(A),bc=i=>i.pictureInPictureWindow,Nc=i=>Hn(i).webkitPresentationMode,Lc=(i,A)=>{var e,t;(t=(e=Hn(i)).webkitSetPresentationMode)==null||t.call(e,A)},Jc=i=>!!Hn(i).webkitSetPresentationMode,xr=(i,A)=>{if(A){i.setAttribute("autopictureinpicture","");return}i.removeAttribute("autopictureinpicture")},Mc=(i=screen)=>{var e;const A=Tr(i);return(e=A==null?void 0:A.lock)==null?void 0:e.bind(A)},vc=(i,A=screen)=>{var e;return(e=Mc(A))==null?void 0:e(i)},Hc=(i=screen)=>{var A,e;(e=(A=Tr(i))==null?void 0:A.unlock)==null||e.call(A)},qc=i=>{if(!i.supportsCanvasCaptureStream)return!1;if(!i.platform.isIOS)return!0;const{iosVersion:A,safariVersion:e,isIpadOS:t}=i.platform,g=Number.isFinite(A)&&A!==Number.MAX_SAFE_INTEGER,n=Number.isFinite(e)&&e!==Number.MAX_SAFE_INTEGER;return g?A>=15:t&&n?e>=15:typeof VideoDecoder!="undefined"};class ss{constructor(A,e,t){s(this,"onSuccess");s(this,"onError");s(this,"doExecute");this.doExecute=A,this.onSuccess=e,this.onError=t}execute(A){try{this.doExecute(A),this.onSuccess()}catch(e){this.onError(e)}}}const we=i=>i.reduce((A,e)=>A+e,0)/i.length,Wr=i=>{if(i.length<2)return;let A=0;for(let e=1;e<i.length;e++)A+=i[e]-i[e-1];return A/(i.length-1)},$t=i=>({last:i[i.length-1]||0,average:i.length===0?0:we(i),max:i.length===0?0:Math.max(...i),min:i.length===0?0:Math.min(...i)}),Kc=i=>{let A=0,e=0,t=0,g=0,n=0;for(let C=0;C<i.length;C++){const{x:Q,y:h}=i[C];A+=Q,e+=h,t+=Q*h,g+=Q*Q,n+=h*h}const o=(i.length*t-A*e)/(i.length*g-A*A),a=(e-o*A)/i.length,B=((i.length*t-A*e)/Math.sqrt((i.length*g-A*A)*(i.length*n-e*e)))**2;return{slope:o,intercept:a,r2:B,predict:C=>o*(i.length+C)+a}};class Tc{constructor(A=10){s(this,"rates");s(this,"_total",0);s(this,"accumulatedValues",0);s(this,"lastTickTime",Date.now());s(this,"add",A=>{this.accumulatedValues+=A,this._total+=A});s(this,"tick",()=>{const A=this.accumulatedValues/((Date.now()-this.lastTickTime)/1e3);this.rates.push(A),this.accumulatedValues=0,this.lastTickTime=Date.now()});this.rates=new P(A)}get total(){return this._total}get average(){return this.rates.isEmpty()?0:we(this.rates.items())}get minMaxAverage(){return $t(this.rates.items())}}const gs=(i,A)=>{if(i===A)return!0;if(i==null||typeof i!="object"||A==null||typeof A!="object")return!1;let e=0,t=0;for(const g in i)e+=1;for(const g in A)if(t+=1,!(g in i)||!gs(i[g],A[g]))return!1;return e==t};class ie{constructor(){s(this,"listeners",{})}emit(A,e){const t=this.listeners[A];if(t){let g=!1;for(let a=0;a<t.length;a++)if(t[a].once){g=!0;break}g&&(this.listeners[A]=t.filter(a=>!a.once));let n;const o=t.length;for(let a=0;a<o;a++){const B=t[a].fn(e);typeof B=="function"&&(n||(n=[]),n.push(B))}if(n)for(let a=0;a<n.length;a++)n[a]()}}off(A,e){const t=this.listeners[A];t&&(this.listeners[A]=t.filter(g=>g.fn!==e))}on(A,e){this.add(A,e,!1)}once(A,e){this.add(A,e,!0)}hasListeners(A){const e=this.listeners[A];return e!==void 0&&e.length>0}reset(){this.listeners={}}add(A,e,t){const g=this.listeners[A],n={fn:e,once:t};g?g.push(n):this.listeners[A]=[n]}}const Ta=1e3,Ya=Ta*1e3,Or=Ya*1e3,Pa=(i,A,e)=>i%A===0?i/A:(i/A).toFixed(e),Yc=(i,A=1)=>i>=Or?`${Pa(i,Or,A)} Gbit/s`:i>=Ya?`${Pa(i,Ya,A)} Mbit/s`:i>=Ta?`${Pa(i,Ta,A)} Kbit/s`:`${i} bit/s`,Pc=({width:i,height:A})=>`${i}x${A}`,xc=i=>i%1e3===0?`${i/1e3} kHz`:i>1e3?`${(i/1e3).toFixed(1)} kHz`:`${i} Hz`,Vr=["off","error","warn","info","debug","trace"],Wc={OFF:"off"},St=class St{constructor({context:A,logLevel:e,debug:t}){r(this,oi,new Map);r(this,Tg,"");r(this,ai,!1);r(this,Qs,"off");s(this,"trace",(...A)=>{});s(this,"debug",(...A)=>{});s(this,"info",(...A)=>{});s(this,"warn",(...A)=>{});s(this,"error",(...A)=>{});s(this,"table",(...A)=>{});s(this,"count",(...A)=>{});E(this,Tg,A),E(this,Qs,e),E(this,ai,t||!1),this.setLevel(e),this.setDebug(I(this,ai))}setDebug(A){E(this,ai,A);for(const[e,t]of I(this,oi))t.setDebug(A);A?(this.table=console.table.bind(console),this.count=console.count.bind(console)):(this.table=()=>{},this.count=()=>{})}setLevel(A){E(this,Qs,A);for(const[t,g]of I(this,oi))g.setLevel(A);const e=Vr.indexOf(A);for(const[t,g]of Vr.entries())g!=="off"&&(t<=e?this[g]=console[g].bind(console,"%c%s %c%s","font-weight:bold;",g.toUpperCase(),"font-weight:normal;",I(this,Tg)):this[g]=()=>{})}createContext(A){const e=I(this,oi).get(A);if(!e){const t=new St({context:`${A}`,logLevel:I(this,Qs),debug:I(this,ai)});return I(this,oi).set(A,t),t}return e}static get(){return I(St,Es)||E(St,Es,new St({context:"Vindral",logLevel:"off"})),I(St,Es)}};oi=new WeakMap,Tg=new WeakMap,ai=new WeakMap,Qs=new WeakMap,Es=new WeakMap,r(St,Es);let GA=St;function $A(i){const A=GA.get().createContext(i.context);return function(t,g){const n=String(g.name);function o(...a){i.enter&&A[i.enter](`Enter '${n}'`,f({},a));try{const B=t.call(this,...a);return B instanceof Promise?B.then(C=>{i.return&&A[i.return](`Return '${n}'`,C)}).catch(C=>{i.error&&A[i.error](`Error '${n}'`,C)}):i.return&&A[i.return](`Return '${n}'`,B),B}catch(B){throw i.error&&A[i.error](`Error '${n}'`,B),B}}return o}}function Me(){return typeof Symbol.asyncDispose!="symbol"&&Object.defineProperty(Symbol,"asyncDispose",{value:Symbol.for("asyncDispose")}),Symbol.asyncDispose}function Zr(){return typeof Symbol.dispose!="symbol"&&Object.defineProperty(Symbol,"dispose",{value:Symbol.for("dispose")}),Symbol.dispose}class Oc{constructor(A,e){r(this,Yg);s(this,"value");s(this,"unlocker");this.value=A,this.unlocker=e}unlocked(){var A;return(A=this.unlocker)==null?void 0:A.promise}[Zr()](){l(this,Yg,Sr).call(this)}[Symbol.dispose](){l(this,Yg,Sr).call(this)}}Yg=new WeakSet,Sr=function(){this.unlocker.resolve(this.value)};class Vc{constructor(A){r(this,Bi);r(this,ri,new _);E(this,Bi,A),I(this,ri).resolve(A)}unsafeValue(){return I(this,Bi)}isLocked(){return I(this,ri).pending}lock(){return c(this,null,function*(){const A=new _;A.promise.then(t=>{E(this,Bi,t)}).catch(G);const e=I(this,ri).promise.then(()=>A);return E(this,ri,A),yield e,new Oc(I(this,Bi),A)})}}Bi=new WeakMap,ri=new WeakMap;class xA{constructor(A){r(this,Ce);r(this,Se);E(this,Ce,A),E(this,Se,new _)}isClosed(){var A;return!((A=I(this,Se))!=null&&A.pending)}current(){return I(this,Ce)}value(){var A;return[I(this,Ce),(A=I(this,Se))==null?void 0:A.promise]}update(A){var e;if(!((e=I(this,Se))!=null&&e.pending))throw new Error("ObservableValue is closed");E(this,Ce,A instanceof Function?A(I(this,Ce)):A),I(this,Se).resolve(I(this,Ce)),E(this,Se,new _)}close(){var A;(A=I(this,Se))==null||A.resolve(I(this,Ce)),E(this,Se,void 0)}waitFor(A){return c(this,null,function*(){if(A(I(this,Ce)))return I(this,Ce);for(;;){const[e,t]=this.value();if(!t)throw new Error("ObservableValue was closed while waiting for condition");const g=yield t;if(A(g))return g}})}[Symbol.asyncIterator](){return lt(this,null,function*(){for(;;){const[A,e]=this.value();if(yield A,!e)return;yield new rA(e)}})}}Ce=new WeakMap,Se=new WeakMap;const Xr=(i,A)=>{const e=f({},i);return typeof e!="object"||A.forEach(t=>{delete e[t]}),e},No=class No{constructor(){s(this,"pendingTimeouts",new Set);s(this,"pendingIntervals",new Set);s(this,"clearTimeout",A=>{this.pendingTimeouts.delete(A)&&window.clearTimeout(A)});s(this,"clearInterval",A=>{this.pendingIntervals.delete(A)&&window.clearInterval(A)});s(this,"setTimeout",(A,e,...t)=>{const g=window.setTimeout(()=>{A(...t),this.clearTimeout(g)},e);return this.pendingTimeouts.add(g),g});s(this,"setInterval",(A,e,...t)=>{const g=window.setInterval(()=>{A(...t)},e);return this.pendingIntervals.add(g),g});s(this,"unload",()=>{this.pendingIntervals.forEach(this.clearInterval),this.pendingTimeouts.forEach(this.clearTimeout)})}};s(No,"create",()=>new No);let JA=No;const Ai=(i,A=Date.now())=>{const e=i.length;if(e>0){const t=e-1,g=i[t];g.end||(g.end=A)}},Is=(i,A=Date.now())=>{Ai(i),i.push({start:A})},ns=i=>i.reduce((A,e)=>{var t;return A+(((t=e.end)!=null?t:Date.now())-e.start)},0),jr=(i,A,e=Date.now())=>i.reduce((t,g)=>{var a;const n=Math.max(e-A,g.start),o=(a=g.end)!=null?a:e;return Math.max(0,o-n)+t},0);function zr(i){try{return i()}catch(A){return A}}const _r=i=>{try{return JSON.parse(i)}catch(A){return}};class Zc{constructor(){s(this,"highEntropyValues");var A;(A=self.navigator.userAgentData)==null||A.getHighEntropyValues(["architecture","model","platformVersion","fullVersionList"]).then(e=>{this.highEntropyValues=e}).catch(G)}getUserAgentInformation(){var n,o,a,B,C,Q;const A=window.location.origin,t=!A||A=="null"?"":`${window.location.pathname}${window.location.search}`.substring(0,1e3),g={locationOrigin:window.location.origin,locationPath:t,ancestorOrigins:((n=window.location.ancestorOrigins)==null?void 0:n.length)>0?Array.from(window.location.ancestorOrigins):void 0,hardwareConcurrency:navigator.hardwareConcurrency,deviceMemory:navigator.deviceMemory};if(self.navigator.userAgentData&&this.highEntropyValues){const d=[...(o=this.highEntropyValues.brands)!=null?o:[]];d.sort((N,U)=>N.brand.localeCompare(U.brand));const u=[...(a=this.highEntropyValues.fullVersionList)!=null?a:[]];u.sort((N,U)=>N.brand.localeCompare(U.brand));const m=u.map(N=>N.version),p=d.map(N=>N.brand),y=d.map(N=>N.version),k=parseInt((C=(B=this.highEntropyValues.platformVersion)==null?void 0:B.split(".")[0])!=null?C:"1",10);return f({userAgentLegacy:window.navigator.userAgent,ua:{browser:{brands:p,fullVersionBrands:m,majorVersions:y},device:this.highEntropyValues.model||"Other",os:{family:this.highEntropyValues.platform||"Other",version:(Q=this.highEntropyValues.platformVersion)!=null?Q:"1",major_version:Number.isFinite(k)?k:0}}},g)}else return f({userAgent:window.navigator.userAgent},g)}}const $r=()=>{const i=[...Array(256).keys()].map(e=>e.toString(16).padStart(2,"0")),A=crypto.getRandomValues(new Uint8Array(16));return A[6]=A[6]&15|64,A[8]=A[8]&63|128,[...A.entries()].map(([e,t])=>[4,6,8,10].includes(e)?`-${i[t]}`:i[t]).join("")},ut=i=>c(null,null,function*(){return new Promise(A=>setTimeout(A,i))}),xa=(e,...t)=>c(null,[e,...t],function*(i,A=new Error("Timeout")){return new Promise((g,n)=>setTimeout(()=>n(A),i))});class AC extends ie{constructor(e){super();s(this,"config");s(this,"hlsUrl");s(this,"element");s(this,"connectingTimeout");s(this,"castingAvailable",!1);s(this,"updateAuthenticationToken",e=>{this.config.authenticationToken=e,this.hlsUrl=this.getHlsUrl(),this.castingAvailable&&(this.element.src=this.hlsUrl)});s(this,"unload",()=>{this.element&&(this.element.removeEventListener("webkitplaybacktargetavailabilitychanged",this.onAirPlayAvailable),this.element.removeEventListener("webkitcurrentplaybacktargetiswirelesschanged",this.onAirPlayPlaybackChanged),this.element.remove())});s(this,"onAirPlayAvailable",e=>{switch(e.availability){case"available":{this.castingAvailable=!0,this.element.src!==this.hlsUrl&&this.checkHlsUrl(this.hlsUrl).then(g=>{g&&(this.element.src=this.hlsUrl,this.emit("available"))});break}case"not-available":this.castingAvailable=!1;break}});s(this,"onAirPlayPlaybackChanged",()=>{window.clearTimeout(this.connectingTimeout),this.element.webkitCurrentPlaybackTargetIsWireless?(this.emit("connected"),this.element.style.display="block",this.element.paused&&this.element.play()):(this.emit("disconnected"),this.element.pause(),this.element.src="",this.element.src=this.hlsUrl,this.element.style.display="none")});this.config=e,this.hlsUrl=this.getHlsUrl(),this.element=document.createElement("video"),this.element.style.position="absolute",this.element.style.top="0",this.element.style.bottom="0",this.element.style.left="0",this.element.style.right="0",this.element.style.width="100%",this.element.style.height="100%",this.element.style.zIndex="1001",this.element.style.display="none",this.element.id="vindral-airplay-element",this.element.slot="overlay",this.element.playsInline=!0,this.element.controls=!0,this.element.preload="metadata",this.element.addEventListener("webkitplaybacktargetavailabilitychanged",this.onAirPlayAvailable),this.element.addEventListener("webkitcurrentplaybacktargetiswirelesschanged",this.onAirPlayPlaybackChanged),this.config.container.appendChild(this.element)}get casting(){return this.element.webkitCurrentPlaybackTargetIsWireless}set channelId(e){}showPlaybackTargetPicker(){this.element.paused&&(this.element.play(),this.connectingTimeout=window.setTimeout(()=>{this.casting||(this.element.pause(),this.element.src="",this.element.src=this.hlsUrl)},3e4)),this.element.webkitShowPlaybackTargetPicker()}static isAirPlaySupported(){return!!window.WebKitPlaybackTargetAvailabilityEvent}getHlsUrl(){const e=new URL(`/api/hls?channelId=${this.config.channelId}`,this.config.url);return this.config.authenticationToken&&e.searchParams.set("authenticationToken",this.config.authenticationToken),e.toString()}checkHlsUrl(e){return c(this,null,function*(){try{return(yield fetch(e,{method:"HEAD"})).ok}catch(t){return!1}})}}class eC extends ie{constructor(e){super();s(this,"state","not casting");s(this,"config");s(this,"unloaded",!1);s(this,"updateAuthenticationToken",e=>{this.config&&(this.config.options.authenticationToken=e,this.send({type:"updateAuthToken",token:e}))});s(this,"unload",()=>{var e;this.unloaded=!0,(e=this.getSession())==null||e.removeMessageListener("urn:x-cast:com.vindral.castdata",this.onMessage)});s(this,"init",()=>c(this,null,function*(){return new Promise((e,t)=>{let g=!1;const n=setTimeout(()=>{g=!0,t()},1e4);window.__onGCastApiAvailable=o=>{if(g){g=!1;return}if(clearTimeout(n),!o)return t();setTimeout(()=>{try{this.onGCastApiAvailable(),e()}catch(a){t()}},1e3)},this.castLibrariesAdded()&&window.cast?window.__onGCastApiAvailable(!0):this.verifyCastLibraries()})}));s(this,"start",()=>c(this,null,function*(){var e;yield(e=this.getInstance())==null?void 0:e.requestSession()}));s(this,"stop",()=>{var e;(e=this.getSession())==null||e.endSession(!0)});s(this,"getReceiverName",()=>{var e,t;return((t=(e=this.getSession())==null?void 0:e.getCastDevice())==null?void 0:t.friendlyName)||void 0});s(this,"onGCastApiAvailable",()=>{var n;const e=this.getInstance();if(!e)throw"cast context should exist";const t=e.getSessionState(),g=((n=this.config)==null?void 0:n.receiverApplicationId)||"A5452297";e.setOptions({receiverApplicationId:g,autoJoinPolicy:chrome.cast.AutoJoinPolicy.TAB_AND_ORIGIN_SCOPED,resumeSavedSession:!0}),e.addEventListener(cast.framework.CastContextEventType.SESSION_STATE_CHANGED,this.onSessionStateChanged),t===cast.framework.SessionState.SESSION_STARTED&&setTimeout(()=>{this.state="casting",this.emit("resumed")})});s(this,"send",e=>{var t;(t=this.getSession())==null||t.sendMessage("urn:x-cast:com.vindral.castdata",e)});s(this,"onMessage",(e,t)=>{if(e==="urn:x-cast:com.vindral.castdata")try{const g=JSON.parse(t);switch(g.type){case"metadata":this.emit("metadata",g.metadata);break;case"serverWallclockTime":this.emit("server wallclock time",g.serverWallclockTime);break;default:break}}catch(g){}});s(this,"onSessionStarted",()=>{var e;(e=this.getSession())==null||e.addMessageListener("urn:x-cast:com.vindral.castdata",this.onMessage),this.send({type:"start",config:this.config})});s(this,"onSessionStateChanged",e=>{if(!this.unloaded)switch(e.sessionState){case cast.framework.SessionState.SESSION_START_FAILED:this.state="not casting",this.emit("failed");break;case cast.framework.SessionState.SESSION_ENDED:this.state="not casting",this.emit("disconnected");break;case cast.framework.SessionState.SESSION_ENDING:break;case cast.framework.SessionState.SESSION_RESUMED:this.onSessionStarted(),this.state="casting",this.emit("resumed");break;case cast.framework.SessionState.SESSION_STARTED:this.onSessionStarted(),this.state="casting",this.emit("connected");break;case cast.framework.SessionState.SESSION_STARTING:break}});s(this,"getInstance",()=>{var e;return(e=window.cast)==null?void 0:e.framework.CastContext.getInstance()});s(this,"getSession",()=>{var e;return(e=this.getInstance())==null?void 0:e.getCurrentSession()});s(this,"castLibrariesAdded",()=>!!(document.querySelector("#vindralCastFrameworkLib")&&document.querySelector("#vindralCastSenderLib")));s(this,"verifyCastLibraries",()=>{if(this.castLibrariesAdded())return;const e=document.createElement("script");e.type="text/javascript",e.id="vindralCastFrameworkLib",e.src="//www.gstatic.com/cast/sdk/libs/sender/1.0/cast_framework.js",document.head.appendChild(e);const t=document.createElement("script");t.type="text/javascript",t.id="vindralCastSenderLib",t.src="//www.gstatic.com/cv/js/sender/v1/cast_sender.js",document.head.appendChild(t)});this.config=e}get casting(){return this.state==="casting"}get volume(){var e,t;return(t=(e=this.getSession())==null?void 0:e.getVolume())!=null?t:0}set volume(e){var t;(t=this.getSession())==null||t.setVolume(e)}get language(){var e,t;return(t=(e=this.config)==null?void 0:e.options)==null?void 0:t.language}set language(e){this.config&&(this.config.options.language=e,this.send({type:"setLanguage",language:e}))}get channelId(){var e;return((e=this.config)==null?void 0:e.options.channelId)||""}set channelId(e){this.config&&(this.config.options.channelId=e,this.send({type:"setChannelId",channelId:e}))}}const Wa=i=>{switch(i){case"h264":case"av1":return"video";case"aac":case"opus":case"mp3":return"audio";case"webvtt":return"text";default:throw new Error("Unknown codec")}};function Oa(i){if(i.startsWith("opus"))return"opus";if(i.startsWith("mp4a"))return"aac";if(i.startsWith("avc1"))return"h264";if(i.startsWith("av01"))return"av1";if(i.startsWith("webvtt"))return"webvtt"}function tC(i){return!(typeof i.edges[0]=="string"||i.channels[0]&&!("catalog"in i.channels[0]))}function iC(i){return i.tracks.filter(A=>!!A.codec).filter(A=>Oa(A.codec||"")).map((A,e)=>{const t=A.codec,g=A.bitrate;lA(t,"codec is required"),lA(g!==void 0,"bitrate is required");const n=Oa(t);if(lA(n,"codec is required"),Wa(n)==="audio"){const o=A.samplerate||0,a=A.channelConfig==="stereo"?2:1;return{track:A,id:e,codec:n,codecString:t,bitRate:g,channels:a,sampleRate:o,language:A.language}}return Wa(n)==="text"?{track:A,id:e,bitRate:0,codec:n,kind:"subtitles",codecString:t,label:A.label,language:A.language}:(lA(A.width,"width is required"),lA(A.height,"width is required"),lA(A.framerate,"framerate is required"),{track:A,id:e,codec:n,bitRate:g,codecString:t,width:A.width,height:A.height,frameRate:A.framerate})}).sort((A,e)=>A.bitRate-e.bitRate)}const ei=i=>"width"in i&&typeof i.width=="number",ti=i=>"sampleRate"in i&&typeof i.sampleRate=="number",mt=i=>{switch(i.codec){case"opus":return'audio/mp4; codecs="opus"';case"mp3":return"audio/mpeg";case"webvtt":return"text/vtt";case"aac":return i.codecString?`audio/mp4; codecs="${i.codecString}"`:"audio/mp4";case"h264":return i.codecString?`video/mp4; codecs="${i.codecString}"`:"video/mp4";case"av1":return i.codecString?`video/mp4; codecs="${i.codecString}"`:"video/mp4"}},wt=()=>Number.MAX_SAFE_INTEGER,qn=()=>({width:Number.MAX_SAFE_INTEGER,height:Number.MAX_SAFE_INTEGER}),sC=i=>!(typeof i!="object"||i===null||!("type"in i)),Xc={sizeBasedResolutionCapEnabled:!0,pictureInPictureEnabled:!0,abrEnabled:!0,burstEnabled:!1,mseEnabled:!0,mseOpusEnabled:!0,muted:!1,volume:1,minBufferTime:1500,maxBufferTime:1500,logLevel:Wc.OFF,maxSize:qn(),maxVideoBitRate:wt(),maxAudioBitRate:wt(),maxInitialBitRate:2.5*1e3*1e3,tags:[],media:"audio+video",poster:!0,reconnectHandler:i=>i.reconnectRetries<30,iosWakeLockEnabled:!1,telemetryEnabled:!0,streamToMediaElementEnabled:!1,iosMediaElementEnabled:!1,pauseSupportEnabled:!0,webcodecsHardwareAcceleration:"no-preference",offscreenCanvasEnabled:void 0,advanced:{},videoCodecs:["av1","h264"],webtransportEnabled:!0},Va=i=>{i.width=320,i.height=180,i.style.width="100%",i.style.position="relative",i.style.backgroundColor="#000"},jc={backgroundColor:"rgba(0,0,0,0.6)",textPadding:8,fontSize:"28px",lineGap:16};class gC{constructor(){r(this,Qe);r(this,Pg,[]);r(this,qe,document.createElement("canvas"));r(this,MA);r(this,Ci,window.devicePixelRatio||1);s(this,"config",f({},jc));const A=I(this,qe).getContext("2d",{alpha:!0});if(!A)throw new Error("Failed to create 2d context");E(this,MA,A),l(this,Qe,pg).call(this)}get canvas(){return I(this,qe)}setActiveCues(A){E(this,Pg,A)}render(A,e=!1){const t=I(this,Pg).flatMap(a=>a.text.split(`
|
|
2
|
+
`).flatMap(C=>l(this,Qe,fE).call(this,C,A.width)).map(C=>{l(this,Qe,pg).call(this);const Q=I(this,MA).measureText(C);return{text:C,measurement:Q,size:{height:Q.fontBoundingBoxAscent+Q.fontBoundingBoxDescent+this.config.textPadding*2,width:Q.width+this.config.textPadding*2}}})),g=Math.max(...t.map(a=>a.size.width)),n=t.reduce((a,{size:B})=>a+B.height,0)+(t.length-1)*this.config.lineGap;let o=0;l(this,Qe,wE).call(this,g,n),I(this,MA).clearRect(0,0,I(this,qe).width,I(this,qe).height);for(const{size:a,text:B}of t)l(this,Qe,pg).call(this),I(this,MA).fillStyle=this.config.backgroundColor,I(this,MA).fillRect(0,o,a.width,a.height),l(this,Qe,pg).call(this),I(this,MA).fillText(B,this.config.textPadding,o+this.config.textPadding),o+=a.height+this.config.lineGap;e&&(I(this,MA).strokeStyle="red",I(this,MA).strokeRect(0,0,A.width,I(this,qe).height))}}Pg=new WeakMap,qe=new WeakMap,MA=new WeakMap,Ci=new WeakMap,Qe=new WeakSet,wE=function(A,e){I(this,qe).width=A*I(this,Ci),I(this,qe).height=e*I(this,Ci),I(this,MA).setTransform(I(this,Ci),0,0,I(this,Ci),0,0),this.canvas.style.width=`${A}px`,this.canvas.style.height=`${e}px`},pg=function(){I(this,MA).fillStyle="white",I(this,MA).textAlign="left",I(this,MA).textBaseline="top",I(this,MA).font=`${this.config.fontSize} sans-serif`},fE=function(A,e){const t=[],g=A.split(" ");let n="";for(;g.length>0;){l(this,Qe,pg).call(this);let o=0;for(;I(this,MA).measureText(n+(n.length>0?" ":"")+g[0]).width+this.config.textPadding*2<=e&&g.length>0;)o++,n+=(n.length>0?" ":"")+g.shift();if(o==0){t.push(g.shift()||""),n="";continue}t.push(n),n=""}return t};function IC(i,A){const e=A*.05,t=i*.035;return`${Math.max(Math.round(Math.min(e,t)),16)}px`}function nC(i){var u;const{subtitleWidth:A,subtitleHeight:e,canvasWidth:t,canvasHeight:g,containerWidth:n,bottomPadding:o}=i,a=(u=i.baseMargin)!=null?u:20,B=t/n,C=A*B,Q=e*B,h=(t-C)/2,d=g-Q-(o+a)*B;return{drawWidth:C,drawHeight:Q,x:h,y:d}}function zc(i,A,e){const t=2*i.drawWidth/A,g=2*i.drawHeight/e,n=2*i.x/A-1,o=1-2*i.y/e;return{scaleX:t,scaleY:g,translateX:n,translateY:o}}const Za={width:256,height:144};class _c extends ie{constructor(){super();s(this,"canvas",document.createElement("canvas"));s(this,"context",null);s(this,"size",Za);s(this,"hasWarnedNoVideoFrame",!1);s(this,"subtitleRenderer",null);s(this,"hasActiveSubtitles",!1);s(this,"load",()=>{if(this.hasWarnedNoVideoFrame=!1,this.context=this.canvas.getContext("2d",{alpha:!1,desynchronized:!0}),!this.context)throw new Error("Failed to get 2D rendering context");this.setSize(Za)});s(this,"unload",()=>{this.context=null,this.subtitleRenderer=null,this.hasActiveSubtitles=!1,this.setSize(Za)});s(this,"setActiveCues",(e,t)=>{this.subtitleRenderer||(this.subtitleRenderer=new gC),this.subtitleRenderer.config.fontSize=IC(t.width,t.height),this.subtitleRenderer.setActiveCues(e),this.subtitleRenderer.render(t),this.hasActiveSubtitles=e.length>0});s(this,"render",(e,t=0)=>{if(!this.context)return;if(!e.videoFrame){this.hasWarnedNoVideoFrame||(console.warn("[VideoFrameCanvas2DRenderer] No VideoFrame in sample, cannot render"),this.hasWarnedNoVideoFrame=!0);return}const g=e.videoFrame;this.setSize({width:e.width,height:e.height});try{this.context.drawImage(g,0,0,this.canvas.width,this.canvas.height),this.renderSubtitles(t)}catch(n){this.emit("context lost",n instanceof Error?n:new Error("Failed to render VideoFrame"))}});s(this,"renderSubtitles",e=>{if(!this.hasActiveSubtitles||!this.subtitleRenderer||!this.context)return;const t=this.subtitleRenderer.canvas;if(t.width===0||t.height===0)return;const g=window.devicePixelRatio||1,n=this.canvas.clientWidth||this.canvas.width,o=nC({subtitleWidth:t.width/g,subtitleHeight:t.height/g,canvasWidth:this.canvas.width,canvasHeight:this.canvas.height,containerWidth:n,bottomPadding:e});this.context.drawImage(t,o.x,o.y,o.drawWidth,o.drawHeight)});s(this,"setSize",e=>{e.width===this.size.width&&e.height===this.size.height||(this.size=e,this.canvas.width=e.width,this.canvas.height=e.height,this.context&&(this.context.fillStyle="#000",this.context.fillRect(0,0,e.width,e.height)))});Va(this.canvas)}}const $c=`
|
|
4
3
|
precision mediump float;
|
|
5
4
|
uniform sampler2D texture;
|
|
6
5
|
|
|
@@ -12,7 +11,7 @@ void main() {
|
|
|
12
11
|
|
|
13
12
|
gl_FragColor = vec4(y, y, y, a);
|
|
14
13
|
}
|
|
15
|
-
`,
|
|
14
|
+
`,Ah=`
|
|
16
15
|
attribute vec2 position;
|
|
17
16
|
varying vec2 texture_coordinate;
|
|
18
17
|
uniform mat4 model;
|
|
@@ -21,7 +20,7 @@ void main() {
|
|
|
21
20
|
texture_coordinate = position;
|
|
22
21
|
gl_Position = model * vec4(position, 0.0, 1.0);
|
|
23
22
|
}
|
|
24
|
-
`,
|
|
23
|
+
`,oC="connection_failed",aC="connection_failed_will_not_attempt_again",BC="authentication_error",rC="authentication_expired",CC="channel_not_found",QC="no_incoming_data_error",EC="connection_inactivity",eh="missing_init_segment",th="no_track_context",ih="invalid_track_context_state",cC="disconnected_by_edge",sh="decoder_error",gh="audio_player_error",Ih="unsupported_audio_codec",nh="media_source_error",oh="webgl_context_lost_error",ah="access_forbidden",Bh="channel_switch_failed",rh="drm_error";class x extends Error{constructor(e,t,g={}){super(e);s(this,"props");s(this,"extra",{});s(this,"code",()=>this.props.code);s(this,"isFatal",()=>this.props.isFatal);s(this,"source",()=>this.props.source);s(this,"type",()=>{var e;return(e=this.props.type)!=null?e:"external"});s(this,"toStringifiable",()=>{var g;const e=this.source(),t=e instanceof Error?e.stack:this.stack;return V(f({},this.extra),{code:this.props.code,isFatal:this.props.isFatal,type:this.props.type,message:this.message,sourceMessage:(g=this.source())==null?void 0:g.message,stack:t})});this.props=t,this.extra=g,Object.setPrototypeOf(this,new.target.prototype)}}const Ch=(i,A)=>new x("MediaElement Error",{isFatal:i,code:"media_element_error",source:A},{mediaErrorCode:A.code}),Xa=(i,A)=>new x("Decoder Error",{isFatal:i,code:sh,source:A,type:"internal"}),Qh=(i,A,e)=>new x(`No decoder available for audio codec "${i}" in non-MSE playback. ${A}`,{isFatal:!0,code:Ih,source:e,type:"external"},{codec:i,reason:A}),hC=(i,A)=>new x("Audio Player Error",{isFatal:i,code:gh,source:A,type:"internal"}),Eh=(i,A)=>new x(`No init segment for rendition id ${i} for channel ${A}`,{isFatal:!1,code:eh,type:"internal"}),dC=(i,A,e,t)=>new x("MediaSource Error",{isFatal:i,code:nh,source:A,type:"internal"},{type:t,consecutiveErrorsCount:e}),Kn=(i,A)=>new x(`No track context for ${i}${A?`, rendition id ${A}`:""}`,{isFatal:!1,code:th,type:"internal"}),ch=(i,A)=>new x(`Track context is in an invalid state for ${i}${A?`, rendition id ${A}`:""}`,{isFatal:!1,code:ih,type:"internal"}),hh=()=>new x("Web Audio Context resume timeout",{isFatal:!1,code:"web_audio_context_resume_timeout"}),kg=i=>new x("Disconnected From Edge Server",{type:"external",source:i,isFatal:!1,code:cC}),Tn=i=>new x("Authentication Failed",{isFatal:!0,code:BC,source:i}),dh=i=>new x("Authentication Expired",{isFatal:!0,code:rC,source:i}),lh=(i,A)=>new x("Connection closed due to inactivity",{isFatal:!1,code:EC,source:A,type:i}),lC=(i,A)=>new x("Channel not found",{isFatal:!1,code:CC,source:A,type:i}),uh=i=>new x("No Incoming Data",{isFatal:!1,code:QC,source:i}),mh=i=>new x("Connection attempt failed",{isFatal:!1,code:oC,source:i}),uC=()=>new x("Connection failed - no more reconnect attempts",{isFatal:!0,code:aC}),wh=i=>new x("WebGL Context Lost",{isFatal:!1,code:oh,source:i,type:"internal"}),mC=i=>new x(i,{isFatal:!0,code:ah}),wC=i=>new x(`Channel switch to '${i}' failed`,{isFatal:!1,code:Bh}),fC=(i,A=!1,e)=>new x(i,{isFatal:A,code:rh,source:e}),DC=(i,A)=>{let e=i.getContext("webgl",A);if(e||(e=i.getContext("experimental-webgl",A)),!e)throw new x("Failed to create webgl context",{isFatal:!0,code:"failed_to_create_web_gl_context"});return e},os=(i,A,e)=>{const t=i.createShader(A);if(!t)throw new x("Failed to create shader",{isFatal:!0,code:"failed_to_create_shader"});if(i.shaderSource(t,e),i.compileShader(t),!i.getShaderParameter(t,i.COMPILE_STATUS)){const g=i.getShaderInfoLog(t);throw new x(`Failed to compile shader: ${g!=null?g:""}`,{isFatal:!0,code:"failed_to_compile_shader"})}return t},ii=i=>{const A=i.createTexture();if(!A)throw new x("Failed to create texture",{isFatal:!0,code:"failed_to_create_texture"});return i.bindTexture(i.TEXTURE_2D,A),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.NEAREST),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),A},SC=(i,A)=>{const e=i.createBuffer();if(!e)throw new x("Failed to create buffer",{isFatal:!0,code:"failed_to_create_buffer"});return i.bindBuffer(i.ARRAY_BUFFER,e),i.bufferData(i.ARRAY_BUFFER,A.buffer,i.STATIC_DRAW),e},ja=(i,A,e)=>{const t=i.createProgram();if(!t)throw new x("Failed to create program",{isFatal:!0,code:"failed_to_create_program"});if(i.attachShader(t,e),i.attachShader(t,A),i.linkProgram(t),!i.getProgramParameter(t,i.LINK_STATUS)){const g=i.getShaderInfoLog(t);throw new x(`Failed to link program: ${g!=null?g:""}`,{isFatal:!0,code:"failed_to_link_program"})}return t};class fh{constructor(A){r(this,cs);r(this,tA);r(this,xg);r(this,Wg);r(this,Og);r(this,pt);s(this,"subtitleRenderer",new gC);r(this,Lo,(A,e,t,g)=>[A,0,0,0,0,-e,0,0,0,0,1,0,t,g,0,1]);E(this,tA,A),E(this,xg,ii(A)),E(this,Wg,os(A,A.FRAGMENT_SHADER,$c)),E(this,Og,os(A,A.VERTEX_SHADER,Ah)),E(this,pt,ja(A,I(this,Og),I(this,Wg)))}setActiveCues(A,e){this.subtitleRenderer.config.fontSize=IC(e.width,e.height),this.subtitleRenderer.setActiveCues(A),this.subtitleRenderer.render(e)}render(A){const e=this.subtitleRenderer.canvas;if(e.width===0)return;const t=window.devicePixelRatio||1,g=e.width/t,n=e.height/t,o=nC({subtitleWidth:g,subtitleHeight:n,canvasWidth:A.canvasWidth,canvasHeight:A.canvasHeight,containerWidth:A.containerWidth,bottomPadding:A.bottomPadding}),a=zc(o,A.canvasWidth,A.canvasHeight);I(this,tA).useProgram(I(this,pt)),l(this,cs,DE).call(this),l(this,cs,SE).call(this,a.scaleX,a.scaleY,a.translateX,a.translateY),I(this,tA).uniform1i(I(this,tA).getUniformLocation(I(this,pt),"texture"),4),I(this,tA).activeTexture(I(this,tA).TEXTURE4),I(this,tA).bindTexture(I(this,tA).TEXTURE_2D,I(this,xg)),I(this,tA).enable(I(this,tA).BLEND),I(this,tA).blendFunc(I(this,tA).SRC_ALPHA,I(this,tA).ONE_MINUS_SRC_ALPHA),I(this,tA).texImage2D(I(this,tA).TEXTURE_2D,0,I(this,tA).RGBA,I(this,tA).RGBA,I(this,tA).UNSIGNED_BYTE,e),I(this,tA).texParameteri(I(this,tA).TEXTURE_2D,I(this,tA).TEXTURE_MAG_FILTER,I(this,tA).LINEAR),I(this,tA).drawArrays(I(this,tA).TRIANGLE_STRIP,0,4)}}tA=new WeakMap,xg=new WeakMap,Wg=new WeakMap,Og=new WeakMap,pt=new WeakMap,cs=new WeakSet,DE=function(){const A=I(this,tA).getAttribLocation(I(this,pt),"position");I(this,tA).enableVertexAttribArray(A),I(this,tA).vertexAttribPointer(A,2,I(this,tA).FLOAT,!1,0,0)},SE=function(A,e,t,g){const n=I(this,tA).getUniformLocation(I(this,pt),"model");I(this,tA).uniformMatrix4fv(n,!1,I(this,Lo).call(this,A,e,t,g))},Lo=new WeakMap;const pC=`
|
|
25
24
|
precision mediump float;
|
|
26
25
|
uniform sampler2D y_texture;
|
|
27
26
|
uniform sampler2D u_texture;
|
|
@@ -37,7 +36,7 @@ void main() {
|
|
|
37
36
|
|
|
38
37
|
gl_FragColor = vec4(y, u, v, 1) * conversion;
|
|
39
38
|
}
|
|
40
|
-
`,
|
|
39
|
+
`,yC=`
|
|
41
40
|
attribute vec2 position;
|
|
42
41
|
varying vec2 texture_coordinate;
|
|
43
42
|
uniform mat4 model;
|
|
@@ -46,8 +45,9 @@ void main() {
|
|
|
46
45
|
texture_coordinate = position;
|
|
47
46
|
gl_Position = model * vec4(position, 0.0, 1.0);
|
|
48
47
|
}
|
|
49
|
-
`,sr={width:256,codedWidth:256,height:144,codedHeight:144},Br={preserveDrawingBuffer:!1,alpha:!1,depth:!1,stencil:!1,antialias:!1,premultipliedAlpha:!1},xe=class xe extends st{constructor(){super();I(this,"canvas",document.createElement("canvas"));I(this,"context",er(this.canvas,Br));I(this,"pixelShader",sI(this.context,this.context.FRAGMENT_SHADER,Ir));I(this,"vertexShader",sI(this.context,this.context.VERTEX_SHADER,gr));I(this,"buffer",ir(this.context,xe.SQUARE_VERTICES));I(this,"program",Ua(this.context,this.vertexShader,this.pixelShader));I(this,"textures",{y:Ai(this.context),u:Ai(this.context),v:Ai(this.context)});I(this,"textRenderer");I(this,"size",sr);I(this,"modelLocation",null);I(this,"conversionLocation",null);I(this,"cachedScaleX",0);I(this,"cachedScaleY",0);I(this,"cachedTransformMatrix",null);I(this,"texturesNeedRealloc",!0);I(this,"onContextLost",t=>{this.textRenderer=void 0;const e=new Error(t instanceof WebGLContextEvent?t.statusMessage:"webgl context lost");this.emit("context lost",Nc(e)),t.preventDefault()});I(this,"onContextRestored",()=>{this.emit("context restored"),this.context=er(this.canvas,Br),this.pixelShader=sI(this.context,this.context.FRAGMENT_SHADER,Ir),this.vertexShader=sI(this.context,this.context.VERTEX_SHADER,gr),this.buffer=ir(this.context,xe.SQUARE_VERTICES),this.program=Ua(this.context,this.vertexShader,this.pixelShader),this.textures={y:Ai(this.context),u:Ai(this.context),v:Ai(this.context)},this.load()});I(this,"load",()=>{this.context.useProgram(this.program),this.setupPositionVertexAttributes(),this.texturesNeedRealloc=!0,this.setSize(sr),this.modelLocation=this.context.getUniformLocation(this.program,"model"),this.conversionLocation=this.context.getUniformLocation(this.program,"conversion"),this.context.uniform1i(this.context.getUniformLocation(this.program,"y_texture"),0),this.context.uniform1i(this.context.getUniformLocation(this.program,"u_texture"),1),this.context.uniform1i(this.context.getUniformLocation(this.program,"v_texture"),2),this.setConversionMatrix(xe.REC709)});I(this,"unload",()=>{var e;this.setSize({width:1,height:1,codedHeight:1,codedWidth:1}),[this.textures.y,this.textures.u,this.textures.v].forEach(g=>this.context.deleteTexture(g)),this.context.deleteShader(this.pixelShader),this.context.deleteShader(this.vertexShader),this.context.deleteProgram(this.program),this.context.deleteBuffer(this.buffer),this.canvas.removeEventListener("webglcontextlost",this.onContextLost),this.canvas.removeEventListener("webglcontextrestored",this.onContextRestored),(e=this.context.getExtension("WEBGL_lose_context"))==null||e.loseContext()});I(this,"resetSize",()=>{this.setSize({width:this.size.width/2,height:this.size.height/2,codedHeight:this.size.codedHeight/2,codedWidth:this.size.codedWidth/2})});I(this,"render",(t,e)=>{if(this.context.useProgram(this.program),this.setSize({width:t.width,height:t.height,codedWidth:t.codedWidth,codedHeight:t.codedHeight}),this.setModelMatrix(this.size.width/this.size.codedWidth,this.size.height/this.size.codedHeight),this.context.activeTexture(this.context.TEXTURE0),this.updateTexture(this.textures.y,this.size.codedWidth,this.size.codedHeight,t.data[0]),this.context.activeTexture(this.context.TEXTURE1),this.updateTexture(this.textures.u,this.size.codedWidth/2,this.size.codedHeight/2,t.data[1]),this.context.activeTexture(this.context.TEXTURE2),this.updateTexture(this.textures.v,this.size.codedWidth/2,this.size.codedHeight/2,t.data[2]),this.texturesNeedRealloc=!1,this.context.drawArrays(this.context.TRIANGLE_STRIP,0,4),this.textRenderer){const g=e.style.getPropertyValue("--vindral-subtitle-offset")||e.style.getPropertyValue("--vindral-control-bar-offset"),B=parseInt(g||"0",10),o=Number.isNaN(B)?0:-B;this.textRenderer.render({width:Math.max(e.clientWidth,960)*window.devicePixelRatio,height:Math.max(e.clientHeight,540)*window.devicePixelRatio,padding:o})}});I(this,"updateTexture",(t,e,g,B)=>{const n=this.context.LUMINANCE,a=this.context.UNSIGNED_BYTE;this.context.bindTexture(this.context.TEXTURE_2D,t),this.texturesNeedRealloc?this.context.texImage2D(this.context.TEXTURE_2D,0,n,e,g,0,n,a,B):this.context.texSubImage2D(this.context.TEXTURE_2D,0,0,0,e,g,n,a,B)});I(this,"setupPositionVertexAttributes",()=>{const t=this.context.getAttribLocation(this.program,"position");this.context.enableVertexAttribArray(t),this.context.vertexAttribPointer(t,2,this.context.FLOAT,!1,0,0)});I(this,"setSize",t=>{t.width===this.size.width&&t.height===this.size.height&&t.codedWidth===this.size.codedWidth&&t.codedHeight===this.size.codedHeight||(this.size=t,this.texturesNeedRealloc=!0,this.canvas.setAttribute("width",t.width.toString()),this.canvas.setAttribute("height",t.height.toString()),this.context.viewport(0,0,t.width,t.height),this.setModelMatrix(t.width/t.codedWidth,t.height/t.codedHeight))});I(this,"setModelMatrix",(t,e)=>{(this.cachedScaleX!==t||this.cachedScaleY!==e||!this.cachedTransformMatrix)&&(this.cachedScaleX=t,this.cachedScaleY=e,this.cachedTransformMatrix=this.transformMatrix(t,e)),this.context.uniformMatrix4fv(this.modelLocation,!1,this.cachedTransformMatrix)});I(this,"setConversionMatrix",t=>{this.context.uniformMatrix4fv(this.conversionLocation,!1,t)});I(this,"transformMatrix",(t,e)=>[2/t,0,0,0,0,-2/e,0,0,0,0,2/1,0,-1,1,0,1]);this.canvas.addEventListener("webglcontextlost",this.onContextLost),this.canvas.addEventListener("webglcontextrestored",this.onContextRestored,!1),this.canvas.style.width="100%",this.canvas.style.position="relative"}getTextRenderer(){return this.textRenderer||(this.textRenderer=new Gu(this.context)),this.textRenderer}};I(xe,"SQUARE_VERTICES",new Float32Array([0,0,0,1,1,0,1,1])),I(xe,"REC709",[1.16438,0,1.79274,-.97295,1.16438,-.21325,-.53291,.30148,1.16438,2.1124,0,-1.1334,0,0,0,1]),I(xe,"REC601",[1.16438,0,1.59603,-.87079,1.16438,-.39176,-.81297,.52959,1.16438,2.01723,0,-1.08139,0,0,0,1]);let Na=xe;const Qn=class Qn{constructor(A,t,e,g){I(this,"oldTimestampLimit",400);I(this,"pool");I(this,"logger");I(this,"videoRenderer",new Na);I(this,"renderQueue",[]);I(this,"clockSource");I(this,"isFirstFrame",!0);I(this,"animationFrameRequest");I(this,"renderedFrameCount",0);I(this,"rendererDroppedFrameCount",0);I(this,"renderTargetSize");I(this,"load",()=>{this.videoRenderer.load()});I(this,"unload",()=>(this.stopRender(),this.videoRenderer.unload(),Promise.resolve()));I(this,"suspend",()=>{this.renderQueue=[],this.stopRender()});I(this,"unsuspend",()=>{this.animationFrameRequest=requestAnimationFrame(this.render)});I(this,"element",()=>this.videoRenderer.canvas);I(this,"getStatistics",()=>({renderedFrameCount:this.renderedFrameCount,rendererDroppedFrameCount:this.rendererDroppedFrameCount,contextLostCount:0,contextRestoredCount:0}));I(this,"resetSize",()=>{this.videoRenderer.resetSize()});I(this,"setActiveCues",(A,t)=>{this.videoRenderer.getTextRenderer().setActiveCues(A,t)});I(this,"onDecodedFrame",A=>{if(A.type==="video")if(this.isFirstFrame)this.isFirstFrame=!1,requestAnimationFrame(()=>{this.renderSample(A)});else{const t=(this.clockSource.currentTime-this.oldTimestampLimit)/1e3;this.renderQueue=this.renderQueue.filter(e=>{const g=e.timestamp/e.timescale,B=A.timestamp/A.timescale,o=g>t&&g<=B;return o||this.pool.reclaim(e.buffer),o}),this.renderQueue.push(A)}});I(this,"render",()=>{const A=this.clockSource.currentTime;let t=this.renderQueue[0],e,g=0;for(;t&&(t.timestamp+(t.compositionTimeOffset||0))/t.timescale*1e3<=A;)t=this.renderQueue.shift(),t&&(g++,e&&this.pool.reclaim(e.buffer),e=t),t=this.renderQueue[0];e&&this.renderSample(e),this.rendererDroppedFrameCount+=Math.max(g-1,0),this.animationFrameRequest=requestAnimationFrame(this.render)});I(this,"renderSample",A=>{this.renderedFrameCount++,this.videoRenderer.render(A,this.renderTargetSize),this.pool.reclaim(A.buffer)});I(this,"stopRender",()=>{this.animationFrameRequest&&cancelAnimationFrame(this.animationFrameRequest)});this.logger=A,this.clockSource=t,this.pool=e,this.renderTargetSize=g||this.videoRenderer.canvas}};I(Qn,"create",(A,t,e,g)=>new Qn(A,t,e,g));let ho=Qn;class or{constructor(){C(this,We,[]);r(this,We,[])}addTextTrack(A,t,e){const g=[],B={kind:A,label:t,language:e,mode:"disabled",cues:g,addCue:o=>{g.push(o)},removeCue:o=>{const n=g.findIndex(a=>a===o);n!==-1&&g.splice(n,1)}};return s(this,We).push(B),B}set language(A){s(this,We).forEach(t=>{t.language===A?t.mode="showing":t.mode="hidden"})}get language(){var A;return(A=s(this,We).find(t=>t.mode==="showing"))==null?void 0:A.language}getActiveCues(A){const t=s(this,We).find(e=>e.mode==="showing");return t?t.cues.filter(({startTime:e,endTime:g})=>A>=e&&A<=g):[]}}We=new WeakMap;const ti=(i,A)=>{let t;for(t=A;i>1;i--)t+=A;return t};class Ru{constructor(){I(this,"audio");I(this,"unmute",()=>this.audio.play().catch(F));const A=document.createElement("div");A.innerHTML="<audio x-webkit-airplay='deny'></audio>";const t=A.children.item(0);if(t instanceof HTMLAudioElement)this.audio=t,this.audio.controls=!1,this.audio.disableRemotePlayback=!0,this.audio.preload="auto",this.audio.src="data:audio/mpeg;base64,//uQx"+ti(23,"A")+"WGluZwAAAA8AAAACAAACcQCA"+ti(16,"gICA")+ti(66,"/")+"8AAABhTEFNRTMuMTAwA8MAAAAAAAAAABQgJAUHQQAB9AAAAnGMHkkI"+ti(320,"A")+"//sQxAADgnABGiAAQBCqgCRMAAgEAH"+ti(15,"/")+"7+n/9FTuQsQH//////2NG0jWUGlio5gLQTOtIoeR2WX////X4s9Atb/JRVCbBUpeRUq"+ti(18,"/")+"9RUi0f2jn/+xDECgPCjAEQAABN4AAANIAAAAQVTEFNRTMuMTAw"+ti(97,"V")+"Q==",this.audio.loop=!1,this.audio.load();else throw new Error("Failed to create audio tag")}}const rn=class rn{constructor(A,t,e,g,B,o){I(this,"logger");I(this,"emitter");I(this,"audioPlayer");I(this,"videoPlayer");I(this,"pool");I(this,"unmuter",new Ru);I(this,"_isPaused",!1);I(this,"isDisconnected",!1);I(this,"timers",new bA);I(this,"textTracks",new or);I(this,"playbackRate");I(this,"reset",()=>{});I(this,"load",()=>{this.audioPlayer.useDefaultDestination(),this.emitter.on("decoded frame",this.onDecodedFrame),this.emitter.on("flush buffers",this.flushBuffers),this.videoPlayer.load(),this.timers.setInterval(()=>{if(!this.textTracks.language)return;const A=this.textTracks.getActiveCues(this.currentTime/1e3);this.videoPlayer.setActiveCues(A,{width:this.videoPlayer.element().clientWidth,height:this.videoPlayer.element().clientHeight})},100)});I(this,"unload",()=>{this.emitter.off("decoded frame",this.onDecodedFrame),this.emitter.off("flush buffers",this.flushBuffers),this.audioPlayer.unload(),this.videoPlayer.unload(),this.timers.unload()});I(this,"suspend",()=>{this.videoPlayer.suspend(),this.audioPlayer.suspend()});I(this,"unsuspend",()=>{this.videoPlayer.unsuspend(),this.audioPlayer.unsuspend()});I(this,"element",()=>this.videoPlayer.element());I(this,"getStatistics",()=>this.videoPlayer.getStatistics());I(this,"flushBuffers",()=>{this.audioPlayer.flushBuffer()});I(this,"activateAudioPlayer",()=>(this.isDisconnected&&(this.isDisconnected=!1,this.audioPlayer.useDefaultDestination()),this._isPaused=!1,this.unmuter.unmute(),this.audioPlayer.play()));I(this,"onDecodedFrame",A=>{try{this.audioPlayer.onDecodedFrame(A)}catch(t){t instanceof Error&&this.emitter.emit("error",AQ(!1,t))}this.videoPlayer.onDecodedFrame(A)});this.logger=t,this.emitter=A,this.pool=e,this.audioPlayer=co.create(this.logger.createContext("AudioPlayerModule"),g,{muted:B,reInitWhenStuck:!0}),o!==void 0&&(this.audioPlayer.volume=o),this.audioPlayer.on("stuck",()=>{this.isDisconnected=!0}),this.audioPlayer.on("state change",()=>{this.emitter.emit("volume state",{volume:this.volume,isMuted:this.muted})}),this.videoPlayer=ho.create(this.logger.createContext("VideoPlayerModule"),this.audioPlayer,this.pool)}get volume(){return this.audioPlayer.volume}set volume(A){this.audioPlayer.volume=A}get muted(){return this.audioPlayer.muted}set muted(A){const t=this.muted;this.audioPlayer.muted=A,!A&&t&&this.activateAudioPlayer().catch(F)}get currentTime(){return this.audioPlayer.currentTime}set currentTime(A){this.audioPlayer.currentTime=A}get isActivated(){return this.audioPlayer.isActivated}set isActivated(A){this.audioPlayer.isActivated=A}get seekTime(){return this.audioPlayer.seekTime}get totalSeekTime(){return this.audioPlayer.totalSeekTime}get isPaused(){return this._isPaused}get isSeeking(){return this.audioPlayer.isSeeking}get audioNode(){return this.audioPlayer.audioNode}play(){this.activateAudioPlayer().then(()=>{this.emitter.emit("media element state","playing")}).catch(()=>{this.emitter.emit("needs user input",{forAudio:!0,forVideo:!1})})}pause(){this._isPaused=!0,this.audioPlayer.pause(),this.emitter.emit("media element state","paused")}};I(rn,"create",(A,t,e,g,B,o)=>new rn(A,t,e,g,B,o));let ba=rn;const En=class En{constructor(A,t,e,g,{muted:B,volume:o,type:n,poster:a}){I(this,"logger");I(this,"emitter");I(this,"mediaElement");I(this,"audioPlayer");I(this,"videoPlayer");I(this,"pool");I(this,"isDisconnected",!0);I(this,"_userProvidedMuted",!1);I(this,"timers",new bA);I(this,"volumeState");I(this,"textTracks",new or);I(this,"reset",()=>{});I(this,"load",()=>{this.mediaElement.load(),this.emitter.on("decoded frame",this.onDecodedFrame),this.emitter.on("flush buffers",this.flushBuffers),this.emitter.on("ios-hack: reset size",this.resetCanvasSize),this.emitter.on("enter picture in picture",this.onEnterIOSHack),this.emitter.on("exit picture in picture",this.onExitIOSHack),this.element().element.addEventListener("webkitendfullscreen",this.onExitIOSHack),this.element().element.addEventListener("webkitbeginfullscreen",this.onEnterIOSHack),this.videoPlayer.load(),this.timers.setInterval(()=>{if(!this.textTracks.language)return;const A=this.textTracks.getActiveCues(this.currentTime/1e3);this.videoPlayer.setActiveCues(A,{width:this.mediaElement.element.clientWidth,height:this.mediaElement.element.clientHeight})},100)});I(this,"unload",()=>{this.emitter.off("decoded frame",this.onDecodedFrame),this.emitter.off("flush buffers",this.flushBuffers),this.emitter.off("ios-hack: reset size",this.resetCanvasSize),this.emitter.off("enter picture in picture",this.onEnterIOSHack),this.emitter.off("exit picture in picture",this.onExitIOSHack),this.element().element.removeEventListener("webkitendfullscreen",this.onExitIOSHack),this.element().element.removeEventListener("webkitbeginfullscreen",this.onEnterIOSHack),this.mediaElement.unload(),this.timers.unload(),this.audioPlayer.unload(),this.videoPlayer.unload()});I(this,"suspend",()=>{this.videoPlayer.suspend(),this.audioPlayer.suspend()});I(this,"unsuspend",()=>{this.videoPlayer.unsuspend(),this.audioPlayer.unsuspend()});I(this,"element",()=>this.mediaElement);I(this,"getStatistics",()=>this.videoPlayer.getStatistics());I(this,"activateAudioPlayer",()=>(this.isDisconnected&&this.connectStreams(),this.audioPlayer.play()));I(this,"flushBuffers",()=>{this.audioPlayer.flushBuffer()});I(this,"resetCanvasSize",()=>{this.videoPlayer.resetSize()});I(this,"onEnterIOSHack",()=>{this.mediaElement._iosHackEnterPiPMode()});I(this,"onExitIOSHack",()=>{this.mediaElement._iosHackExitPiPMode()});I(this,"onDecodedFrame",A=>{try{this.audioPlayer.onDecodedFrame(A)}catch(t){t instanceof Error&&this.emitter.emit("error",AQ(!1,t))}this.videoPlayer.onDecodedFrame(A)});I(this,"connectStreams",()=>{const A=this.videoPlayer.element().captureStream(),t=this.audioPlayer.useMediaStreamDestination().stream,e=[];e.push(...A.getTracks(),...t.getTracks()),this.mediaElement.element.srcObject=new MediaStream(e),this.isDisconnected=!1});I(this,"updateVolumeState",()=>{const A={isMuted:this.muted,volume:this.volume};tI(A,this.volumeState)||(this.volumeState=A,this.emitter.emit("volume state",this.volumeState))});this.logger=t,this.emitter=A,this.pool=e,this._userProvidedMuted=B,this.mediaElement=new $n({poster:a,type:n,muted:B,volume:o,autoplay:!1,logger:this.logger.createContext("MediaElement")}),this.mediaElement.on("volume state",Q=>{this.updateVolumeState(),!Q.isMuted&&!this.audioPlayer.isContextRunning&&this.activateAudioPlayer().catch(F),Q.isMuted||(this._userProvidedMuted=!1)}),this.mediaElement.on("media element state",Q=>{Q==="paused"&&this.audioPlayer.flushBuffer(),this.emitter.emit("media element state",Q)}),this.audioPlayer=co.create(this.logger.createContext("AudioPlayerModule"),g,{muted:!1,reInitWhenStuck:!1}),this.audioPlayer.on("stuck",()=>{this.isDisconnected=!0}),this.audioPlayer.on("state change",Q=>{Q==="suspended"||Q==="interrupted"?this.mediaElement.muted=!0:Q==="running"&&(this.mediaElement.muted=this._userProvidedMuted||document.visibilityState==="hidden"),this.updateVolumeState()}),this.videoPlayer=ho.create(this.logger.createContext("VideoPlayerModule"),this.audioPlayer,this.pool,this.mediaElement.element),this.volumeState={volume:this.volume,isMuted:this.muted}}get volume(){return this.mediaElement.volume}set volume(A){this.mediaElement.volume=A}get muted(){return this.mediaElement.muted||this.audioPlayer.muted}set muted(A){const t=this.muted;this._userProvidedMuted=A,this.mediaElement.muted=A,!A&&t&&this.activateAudioPlayer().catch(F)}get currentTime(){return this.audioPlayer.currentTime}set currentTime(A){this.audioPlayer.currentTime=A}get isActivated(){return this.mediaElement.isActivated}set isActivated(A){this.mediaElement.isActivated=A}get seekTime(){return this.mediaElement.seekTime}get totalSeekTime(){return this.mediaElement.totalSeekTime}get isPaused(){return this.mediaElement.isPaused}get isSeeking(){return this.mediaElement.isSeeking}get audioNode(){return this.audioPlayer.audioNode}play(){const A=this._userProvidedMuted;return this.activateAudioPlayer().catch(()=>{A||this.emitter.emit("needs user input",{forAudio:!0,forVideo:!1})}),this.mediaElement.play()}pause(){this.mediaElement.pause()}};I(En,"create",(A,t,e,g,B)=>new En(A,t,e,g,B));let La=En;const Uu=()=>i=>nr(i.buffered.start(0),i.buffered.end(i.buffered.length-1)),nr=(i,A)=>t=>t.remove(Math.max(0,i),Math.min(Number.POSITIVE_INFINITY,A)),ar=i=>A=>A.appendBuffer(i),Nu=i=>A=>A.changeType(i),bu=i=>A=>i(A);class Lu{constructor(A){I(this,"commandQueue",[]);I(this,"sourceBuffer");I(this,"currentInit");I(this,"handleQueue",()=>{var A;this.sourceBuffer.updating||(A=this.commandQueue.shift())==null||A.execute(this.sourceBuffer)});I(this,"appendBuffer",(A,t)=>new Promise((e,g)=>{if(t&&this.currentInit!==t){const o=new AI(ar(t),e,g);this.commandQueue.push(o),this.currentInit=t}const B=new AI(ar(A),e,g);this.commandQueue.push(B),this.handleQueue()}));I(this,"execute",A=>new Promise((t,e)=>{const g=new AI(bu(A),t,e);this.commandQueue.push(g),this.handleQueue()}));I(this,"buffered",()=>this.sourceBuffer.buffered);I(this,"removeFromMediaSource",A=>{A.removeSourceBuffer(this.sourceBuffer)});I(this,"changeType",A=>new Promise((t,e)=>{const g=new AI(Nu(A),t,e);this.commandQueue.push(g),this.handleQueue()}));I(this,"removeBuffer",(A,t)=>new Promise((e,g)=>{const B=new AI(nr(A,t),e,g);this.commandQueue.push(B),this.handleQueue()}));I(this,"flush",()=>new Promise((A,t)=>{const e=new AI(Uu,A,t);this.commandQueue.push(e),this.handleQueue()}));this.sourceBuffer=A,this.sourceBuffer.addEventListener("updateend",this.handleQueue)}}class Cr extends st{constructor(){super();I(this,"MediaSource",$i());I(this,"mediaSource",new this.MediaSource);I(this,"isOpen",()=>this.mediaSource.readyState==="open");I(this,"isClosed",()=>this.mediaSource.readyState==="closed");I(this,"isEnded",()=>this.mediaSource.readyState==="ended");I(this,"createObjectURL",()=>URL.createObjectURL(this.mediaSource));I(this,"attach",t=>{const e=t;if("srcObject"in e)try{e.srcObject=this.mediaSource}catch(g){if(g instanceof Error&&g.name!=="TypeError")throw g;e.src=this.createObjectURL()}else t.src=this.createObjectURL()});I(this,"detach",t=>{if(this.mediaSource&&this.mediaSource.readyState==="open")try{this.mediaSource.endOfStream()}catch(e){}t.srcObject&&(t.srcObject=null),t.src!==""&&(URL.revokeObjectURL(t.src),t.removeAttribute("src")),t.load()});I(this,"addSourceBuffer",t=>{const e=this.mediaSource.addSourceBuffer(t);return new Lu(e)});I(this,"removeSourceBuffer",t=>{t.removeFromMediaSource(this.mediaSource)});I(this,"endOfStream",t=>{this.mediaSource.endOfStream(t)});I(this,"onSourceOpen",()=>{this.setDurationIfNeeded(),this.emit("source open")});I(this,"onSourceEnded",()=>this.emit("source ended"));I(this,"onSourceClosed",()=>this.emit("source close"));I(this,"setDurationIfNeeded",()=>{if(Number.isNaN(this.mediaSource.duration)&&this.mediaSource.readyState==="open"){for(let t=0;t<this.mediaSource.sourceBuffers.length;t++){const e=this.mediaSource.sourceBuffers[t];if(e!=null&&e.updating)return}this.mediaSource.duration=Number.POSITIVE_INFINITY}});this.mediaSource.addEventListener("sourceopen",this.onSourceOpen),this.mediaSource.addEventListener("sourceclose",this.onSourceClosed),this.mediaSource.addEventListener("sourceended",this.onSourceEnded)}}I(Cr,"isTypeSupported",t=>{var e,g;return(g=(e=$i())==null?void 0:e.isTypeSupported(t))!=null?g:!1});class Qr{constructor(){I(this,"initSegments",new Map);I(this,"set",(A,t,e)=>{var B;const g=(B=this.initSegments.get(A))!=null?B:new Map;g.set(t,e),this.initSegments.set(A,g)});I(this,"get",(A,t)=>{var e;return(e=this.initSegments.get(A))==null?void 0:e.get(t)})}}function Ju(i,{mediaSource:A,mimeType:t,codec:e}){return z(D({},i),{state:"initialized",mimeType:t,codec:e,sourceBuffer:A.addSourceBuffer(t),isWorkingOnPendingSamples:!1,sequenceNumber:0,lastBufferCleanupTime:Date.now()})}function rr({initSegments:i,pendingSamples:A}){return{state:"uninitialized",initSegments:i!=null?i:new Qr,sequenceNumber:0,isWorkingOnPendingSamples:!1,hasFirstSync:!!A,pendingSamples:A!=null?A:[],pendingSamplesOffset:0,consecutiveQuotaExceededErrorCount:0,successfulAppendCalls:0}}const cn=class cn{constructor(A,t,e){I(this,"maxChunkSize",20);I(this,"minConsecutiveErrorsBeforeEmit",5);I(this,"maxSecondsInBuffer",60);I(this,"logger");I(this,"timers",bA.create());I(this,"emitter");I(this,"mediaElement");I(this,"mediaSource",new Cr);I(this,"trackContexts",new Map);I(this,"autoRecoverFromMediaErrors",!0);I(this,"quotaErrorCount",0);I(this,"recoveredFromErrorCount",0);I(this,"sourceOpenStartTime",Date.now());I(this,"sourceOpenEndTime",Date.now());I(this,"pendingTracksToAddSourceBuffers");I(this,"hasAddedInitialPosterFrame",!0);I(this,"load",()=>{this.emitter.on("init segment",this.init),this.emitter.on("coded sample",this.onCodedSample),this.emitter.on("flush buffers",this.flushBuffers),this.emitter.on("fragment",this.onFragment)});I(this,"unload",()=>{this.logger.debug("Unloading module..."),this.emitter.off("init segment",this.init),this.emitter.off("coded sample",this.onCodedSample),this.emitter.off("flush buffers",this.flushBuffers),this.emitter.off("fragment",this.onFragment),this.mediaSource.off("source ended",this.onSourceEnded),this.mediaSource.off("source open",this.onSourceOpen),this.mediaSource.detach(this.mediaElement),this.trackContexts.forEach(A=>{A.pendingSamples=[],A.pendingSamplesOffset=0}),this.timers.unload(),this.logger.debug("Unloaded module")});I(this,"getStatistics",()=>{var t,e,g,B;const A={quotaErrorCount:this.quotaErrorCount,mediaSourceOpenTime:this.sourceOpenEndTime-this.sourceOpenStartTime,successfulAudioAppendsCalls:(t=this.trackContexts.get("audio"))==null?void 0:t.successfulAppendCalls,successfulVideoAppendCalls:(e=this.trackContexts.get("video"))==null?void 0:e.successfulAppendCalls};if(this.mediaElement instanceof HTMLVideoElement){const o=(B=(g=this.mediaElement).getVideoPlaybackQuality)==null?void 0:B.call(g);A.totalVideoFrames=o==null?void 0:o.totalVideoFrames,A.droppedVideoFrames=o==null?void 0:o.droppedVideoFrames}return A});I(this,"flushBuffers",()=>{this.trackContexts.forEach(A=>{A.pendingSamples=[],A.pendingSamplesOffset=0,A.hasFirstSync=!1,A.state!=="uninitialized"&&this.mediaSource.isOpen()&&A.sourceBuffer.removeBuffer(0,Number.POSITIVE_INFINITY).catch(t=>{this.logger.error("Failed to remove buffer",t)})})});I(this,"setTrackContexts",(A=new Map)=>{this.logger.debug("setTrackContexts"),["audio","video"].forEach(e=>{var Q,E,h;const g=A.get(e),B=(Q=g==null?void 0:g.pendingSamples)!=null?Q:[],o=g==null?void 0:g.initSegments;let n=(E=g==null?void 0:g.pendingSamplesOffset)!=null?E:0;for(;n<B.length&&!((h=B[n])!=null&&h.isSync);)n++;const a=rr({pendingSamples:B,initSegments:o});a.pendingSamplesOffset=n,this.trackContexts.set(e,a)})});I(this,"setSourceBuffers",A=>c(this,null,function*(){if(this.mediaSource.isClosed()){this.pendingTracksToAddSourceBuffers=A;return}let t=!0;for(const e of A){const g=this.trackContexts.get(e.type);if(!g||g.state==="uninitialized"||g.mimeType!==e.mimeType){t=!1;break}}if(t){this.logger.debug("Already setup with the correct mime types");return}for(const e of A){let g=this.trackContexts.get(e.type);g||(g=rr({pendingSamples:[],initSegments:new Qr}),this.trackContexts.set(e.type,g)),g.state==="initialized"?e.mimeType!==g.mimeType&&(yield g.sourceBuffer.changeType(e.mimeType)):this.trackContexts.set(e.type,Ju(g,{mimeType:e.mimeType,mediaSource:this.mediaSource,codec:e.codec}))}}));I(this,"getBuffer",A=>{const t=[];if(this.mediaSource.isClosed())return[];const e=this.trackContexts.get(A);if(!e||e.state==="uninitialized")return[];try{const g=e.sourceBuffer.buffered();if(!g)return[];for(let B=0;B<g.length;B++)t.push({start:g.start(B)*1e3,end:g.end(B)*1e3});return t}catch(g){return[]}});I(this,"init",({initSegment:A,mimeType:t})=>{this.logger.debug("Added init segment",{channel:A.channelId,renditionId:A.renditionId});const e=this.trackContexts.get(A.type);if(!e)throw LB(A.type,A.renditionId);e.state==="initialized"&&(e.mimeType=t);const g=hd({codec:A.codec,timescale:A.timescale,initData:A.data});g&&e.initSegments.set(A.channelId,A.renditionId,new Uint8Array(g))});I(this,"append",(A,t)=>c(this,null,function*(){var n;const e=A[0];if(!e)return;const g=this.trackContexts.get(e.type),B=g==null?void 0:g.initSegments.get(e.channelId,e.renditionId);if(this.mediaSource.isClosed())return;if(!B)throw fc(e.renditionId,e.channelId);if(!g)throw LB(e.type,e.renditionId);if(g.state==="uninitialized")throw pc(e.type,e.renditionId);if(t){const a=(e.timestamp+((n=e.compositionTimeOffset)!=null?n:0))/e.timescale;yield g.sourceBuffer.removeBuffer(a,Number.POSITIVE_INFINITY);const Q=g.previousSample;if(Q&&Q.codec!==e.codec&&g.sourceBuffer.changeType)try{yield g.sourceBuffer.changeType(g.mimeType)}catch(E){}"fragmented"in e||(yield g.sourceBuffer.appendBuffer(B))}const o=Math.max(0,e.timestamp/e.timescale-this.maxSecondsInBuffer);o>0&&Date.now()-g.lastBufferCleanupTime>1e4&&(g.lastBufferCleanupTime=Date.now(),yield g.sourceBuffer.removeBuffer(0,o+10));try{let a=g.sequenceNumber;if("fragmented"in e)for(const Q of A)"initData"in Q&&(yield g.sourceBuffer.appendBuffer(Q.data,Q.initData));else{const Q=md(A,a++);yield g.sourceBuffer.appendBuffer(Q)}g.sequenceNumber=a,g.consecutiveQuotaExceededErrorCount=0,g.successfulAppendCalls++}catch(a){throw a instanceof DOMException&&a.code===DOMException.QUOTA_EXCEEDED_ERR&&(this.quotaErrorCount++,g.consecutiveQuotaExceededErrorCount++,this.logger.error("quota exceeded error",{error:a})),a}}));I(this,"onFragment",({fragment:A,mimeType:t,codec:e,channelId:g,renditionId:B})=>{const o=A.mediaType(),n=A.rawBytes(),a=A.header().rawBytes(),Q=A.baseMediaDecodeTime(),E=A.timescale(),h=A.duration(),d=o==="video"?A.startsWithKeyframe():!0,m=A.compositionTimeOffset(0);if(o==="text"){this.logger.warn("Skipping unexpected text fragment");return}if(!e){this.logger.warn("Skipping fragment with no codec");return}const y=this.trackContexts.get(o);if(!y)throw LB(o);y.state==="initialized"&&t&&(y.mimeType=t,y.initSegments.set(g,B,a));const f={fragmented:!0,type:o,data:n,initData:a,timestamp:Q,duration:h,timescale:E,channelId:g,renditionId:B,isSync:d,codec:e,fragment:A,compositionTimeOffset:m};this.onCodedSample(f)});I(this,"onCodedSample",A=>{if(A.duration===0)return;const t=this.trackContexts.get(A.type);if(!t)throw LB(A.type,A.renditionId);if(!(!t.hasFirstSync&&!A.isSync)){if(this.hasAddedInitialPosterFrame&&A.isSync&&A.type==="video"){this.hasAddedInitialPosterFrame=!1;const e=D({},A);"fragment"in e?(e.fragment=e.fragment.clone(),e.fragment.updateBaseMediaDecodeTime(0),e.data=e.fragment.rawBytes()):e.timestamp=0,t.pendingSamples.push(e)}t.hasFirstSync=!0,t.pendingSamples.push(A),t.state!=="uninitialized"&&(t.isWorkingOnPendingSamples||vu(t,this.append,this.maxChunkSize).catch(e=>{if(t.isWorkingOnPendingSamples=!1,e instanceof Error){if(this.logger.error("append failed",{message:e.message,name:e.name}),e instanceof DOMException&&e.code===DOMException.QUOTA_EXCEEDED_ERR){if(t.consecutiveQuotaExceededErrorCount>=this.minConsecutiveErrorsBeforeEmit){const g=tQ(!1,e,t.consecutiveQuotaExceededErrorCount,A.type);this.emitter.emit("error",g)}}else{const g=tQ(!1,e,t.consecutiveQuotaExceededErrorCount,A.type);this.emitter.emit("error",g)}this.mediaElement.error&&this.onSourceEnded()}}))}});I(this,"onSourceOpen",()=>{this.logger.debug("source opened"),this.sourceOpenEndTime=Date.now(),this.pendingTracksToAddSourceBuffers&&(this.setSourceBuffers(this.pendingTracksToAddSourceBuffers),this.pendingTracksToAddSourceBuffers=void 0)});I(this,"onSourceEnded",()=>{const{error:A}=this.mediaElement;if(A){const t=/AUDIO_RENDERER/.test(A.message)||!this.autoRecoverFromMediaErrors,e=yc(t,A);if(this.logger.error("MediaElement error",{error:e}),this.emitter.emit("error",e),!e.isFatal()){this.logger.info("Re-opening MediaSource"),this.emitter.emit("recovered from media error",{error:e,count:this.recoveredFromErrorCount}),this.recoveredFromErrorCount++;const g=!this.mediaElement.paused,B=[];this.trackContexts.forEach((o,n)=>{o.state==="initialized"&&B.push({type:n,mimeType:o.mimeType,codec:o.codec})}),this.sourceOpenStartTime=Date.now(),this.pendingTracksToAddSourceBuffers=B,this.mediaElement.src="",this.setTrackContexts(this.trackContexts),this.mediaSource.attach(this.mediaElement),g&&this.mediaElement.play().catch(F)}}this.logger.debug("source ended")});this.logger=A,this.mediaElement=e,this.emitter=t}};I(cn,"create",(A,t,e)=>{const g=new cn(A,t,e);return g.setTrackContexts(),g.mediaSource.on("source ended",g.onSourceEnded),g.mediaSource.on("source open",g.onSourceOpen),g.mediaSource.attach(e),g});let Ja=cn;const Er=(i,A)=>{var n;const t=i.renditionId!==A.renditionId,e=i.channelId!==A.channelId,g=((n=i.timestamp)!=null?n:0)>A.timestamp,B=i.type==="video"&&A.type==="video"&&"levelIdc"in i&&"levelIdc"in A&&i.levelIdc!==A.levelIdc;let o=!1;return i.type==="video"&&A.type==="video"&&"width"in i&&"width"in A&&(o=A.width!==i.width||A.height!==i.height),e||t||g||o||B},Mu=32,Hu=i=>{const A=i.pendingSamplesOffset;if(A!==0){if(A>=i.pendingSamples.length){i.pendingSamples=[],i.pendingSamplesOffset=0;return}A<Mu||A*2<i.pendingSamples.length||(i.pendingSamples=i.pendingSamples.slice(A),i.pendingSamplesOffset=0)}},vu=(i,A,t)=>c(null,null,function*(){for(i.isWorkingOnPendingSamples=!0;i.pendingSamplesOffset<i.pendingSamples.length;){const e=[];let g=i.pendingSamplesOffset;for(let n=i.pendingSamplesOffset;n<i.pendingSamples.length;n++){g=n;const a=i.pendingSamples[n],Q=i.pendingSamples[n+1];if(a&&(e.push(a),Q)){if(Er(a,Q))break;const E=(a.timestamp+a.duration)/a.timescale;if(Q.timestamp/Q.timescale-E>.1)break}if(n-i.pendingSamplesOffset>=t-1)break}const B=e[0];if(!B)break;const o=i.previousSample?Er(i.previousSample,B):!0;yield A(e,o),i.pendingSamplesOffset=g+1,i.previousSample=e[e.length-1],Hu(i)}i.isWorkingOnPendingSamples=!1}),hn=class hn{constructor(A,t){I(this,"logger");I(this,"emitter");I(this,"element");I(this,"pictureInPictureWindow");I(this,"unload",()=>{this.emitter.off("add picture in picture listener",this.onEnablePictureInPicture)});I(this,"onEnablePictureInPicture",A=>{this.element=A.element,A.element.addEventListener("leavepictureinpicture",()=>{this.pictureInPictureWindow=void 0,this.logger.debug("Leave picture in picture"),this.emitter.emit("exit picture in picture")}),A.element.addEventListener("enterpictureinpicture",t=>{this.pictureInPictureWindow=t.pictureInPictureWindow,this.logger.debug("Enter picture in picture"),this.emitter.emit("enter picture in picture",this)}),A.element.autopictureinpicture=!0});I(this,"getPictureInPictureSize",()=>this.pictureInPictureWindow);I(this,"isPictureInPictureActive",()=>this.isWebkitPresentationModeActive()||this.isStandardPictureInPictureActive());I(this,"isPictureInPictureSupported",()=>this.isWebkitPresentationModeSupported()||this.isStandardPictureInPictureSupported());I(this,"requestPictureInPicture",()=>(this.emitter.emit("ios-hack: reset size"),this.isStandardPictureInPictureSupported()?this.requestStandardPictureInPicture():this.isWebkitPresentationModeSupported()?this.requestWebkitPresentationMode("picture-in-picture"):Promise.reject(new Error("Picture in picture is not supported"))));I(this,"exitPictureInPicture",()=>this.isStandardPictureInPictureSupported()?this.exitStandardPictureInPicture():this.isWebkitPresentationModeSupported()?this.requestWebkitPresentationMode("inline"):Promise.reject(new Error("Picture in picture is not supported")));I(this,"getStatistics",()=>({isPictureInPictureActive:this.isPictureInPictureActive()}));I(this,"requestStandardPictureInPicture",()=>c(this,null,function*(){return yield this.element.requestPictureInPicture()}));I(this,"exitStandardPictureInPicture",()=>c(null,null,function*(){return yield document.exitPictureInPicture()}));I(this,"isStandardPictureInPictureSupported",()=>!!this.element&&!!this.element.requestPictureInPicture&&!!document.pictureInPictureEnabled);I(this,"isStandardPictureInPictureActive",()=>!!this.element&&!!document.pictureInPictureElement);I(this,"isWebkitPresentationModeActive",()=>!!this.element&&this.element.webkitPresentationMode==="picture-in-picture");I(this,"requestWebkitPresentationMode",A=>c(this,null,function*(){return this.element.webkitSetPresentationMode(A),Promise.resolve()}));I(this,"isWebkitPresentationModeSupported",()=>!!this.element&&!!this.element.webkitSetPresentationMode);this.emitter=A,this.logger=t,this.emitter.on("add picture in picture listener",this.onEnablePictureInPicture)}};I(hn,"create",(A,t)=>new hn(A,t));let Ma=hn;const dn=class dn{constructor(A,t,e,g){I(this,"emitter");I(this,"logger");I(this,"clockSource");I(this,"state","buffering");I(this,"bufferFullness",0);I(this,"targetBufferTime");I(this,"lastBufferStateEvent","drained");I(this,"firstFrameTime");I(this,"currentTimeIsInRange",!1);I(this,"needsInputForAudioCount",0);I(this,"needsInputForVideoCount",0);I(this,"unload",()=>{this.emitter.off("buffer state",this.onBufferedStateChanged),this.emitter.off("needs user input",this.onNeedsUserInput)});I(this,"setTargetBufferTime",A=>{this.targetBufferTime=A,this.emitter.emit("target buffer time",A)});I(this,"getTargetBufferTime",()=>this.targetBufferTime);I(this,"getBufferFullness",()=>this.bufferFullness);I(this,"getLastBufferStateEvent",()=>this.lastBufferStateEvent);I(this,"getState",()=>this.state);I(this,"getFirstFrameTime",()=>this.firstFrameTime);I(this,"getStatistics",()=>({bufferTime:this.targetBufferTime,needsInputForAudioCount:this.needsInputForAudioCount,needsInputForVideoCount:this.needsInputForVideoCount}));I(this,"onBufferedStateChanged",({buffered:A,isPaused:t,playbackState:e})=>{const g=this.clockSource.currentTime,B=A.some(h=>h.start<=g&&g<h.end),o=A[A.length-1],n=o?o.end-o.start>=this.targetBufferTime:!1,a=o?Math.max(0,o.end-g)/this.targetBufferTime:0;let Q=t?"paused":e;const E=this.state;this.currentTimeIsInRange!==B&&!B?(this.lastBufferStateEvent="drained",this.emitter.emit("buffer state event",this.lastBufferStateEvent)):B&&n&&this.lastBufferStateEvent==="drained"&&(this.lastBufferStateEvent="filled",this.emitter.emit("buffer state event",this.lastBufferStateEvent)),Q==="playing"&&!this.firstFrameTime&&(this.firstFrameTime=Date.now()),this.currentTimeIsInRange=B,this.state=Q,this.bufferFullness=B?a:0,E!==Q&&this.emitter.emit("playback state",Q),this.emitter.emit("buffer fullness",this.bufferFullness)});I(this,"onNeedsUserInput",({forAudio:A,forVideo:t})=>{A&&this.needsInputForAudioCount++,t&&this.needsInputForVideoCount++});this.emitter=A,this.logger=t,this.clockSource=e,this.targetBufferTime=g,this.emitter.on("buffer state",this.onBufferedStateChanged),this.emitter.on("needs user input",this.onNeedsUserInput),this.emitter.emit("target buffer time",g)}};I(dn,"create",(A,t,e,g)=>new dn(A,t,e,g));let Ha=dn;const va=()=>({upgradesFromLevel:[],downgradesFromLevel:[],bufferingRanges:[],activeRanges:[],decodeRate:Number.MAX_SAFE_INTEGER}),qu=()=>({levels:{},levelDowngrades:[],levelUpgrades:[],bufferFullness:0,general:va()}),ln=class ln{constructor(A,t,e){I(this,"minBufferFullnessLengthForRegression",6);I(this,"logger");I(this,"emitter");I(this,"timers",bA.create());I(this,"metrics",qu());I(this,"bufferFullness",new x(30));I(this,"bufferFullnessRegression");I(this,"currentLevel");I(this,"isSuspended",!1);I(this,"_fatalQosCount",0);I(this,"targetBufferTime",0);I(this,"renditionLevelSource");I(this,"qualityIndexOrder",[]);I(this,"hasAsserted",!1);I(this,"load",()=>{this.emitter.on("playback state",this.onPlaybackState),this.emitter.on("buffer fullness",this.onBufferFullness),this.emitter.on("rendition level changed",this.onRenditionLevelChanged),this.emitter.on("video decode rate",this.onVideoDecodeRate),this.emitter.on("target buffer time",this.onTargetBufferTime)});I(this,"unload",()=>{this.emitter.off("playback state",this.onPlaybackState),this.emitter.off("buffer fullness",this.onBufferFullness),this.emitter.off("rendition level changed",this.onRenditionLevelChanged),this.emitter.off("video decode rate",this.onVideoDecodeRate),this.emitter.off("target buffer time",this.onTargetBufferTime),this.suspend()});I(this,"suspend",()=>{this.isSuspended=!0,this.timers.unload(),this.stopBuffering(),this.unsetActive()});I(this,"unsuspend",()=>{this.isSuspended=!1,this.currentLevel&&this.setActive()});I(this,"fatalQosGraceTime",()=>1e4*(this.fatalQosCount+1));I(this,"incrementFatalQosCount",()=>{this._fatalQosCount++});I(this,"getMetrics",()=>this.metrics);I(this,"getLevelStats",A=>{var e,g,B,o;const t=((g=(e=A.video)==null?void 0:e.bitRate)!=null?g:0)+((o=(B=A.audio)==null?void 0:B.bitRate)!=null?o:0);return this.metrics.levels[t]});I(this,"getBufferFullnessRegression",()=>this.bufferFullnessRegression);I(this,"getTargetBufferTime",()=>this.targetBufferTime);I(this,"activeRatios",()=>{const A=new Map,t=iI(this.metrics.general.activeRanges);if(Object.entries(this.metrics.levels).forEach(([e,g])=>{var a;const B=parseInt(e,10),o=t?iI(g.activeRanges)/t:0,n=this.getQualityIndex(B).toString();A.set(n,((a=A.get(n))!=null?a:0)+o)}),!this.hasAsserted){const e=A.size?Math.abs(Array.from(A.values()).reduce((g,B)=>g+B,0)-1)<=.02:!0;e||(this.hasAsserted=!0,console.assert(e,`Active ratios should be close to 1 - actual: ${Array.from(A.values()).reduce((g,B)=>g+B,0)}`))}return A});I(this,"bufferingRatios",()=>{const A=new Map,t=iI(this.metrics.general.bufferingRanges);if(Object.entries(this.metrics.levels).forEach(([e,g])=>{var a;const B=parseInt(e,10),o=t?iI(g.bufferingRanges)/t:0,n=this.getQualityIndex(B).toString();A.set(n,((a=A.get(n))!=null?a:0)+o)}),!this.hasAsserted){const e=Array.from(A.values()).reduce((g,B)=>g+B,0)<=1;e||(this.hasAsserted=!0,console.assert(e,`Buffering ratios should be less than 1 - actual: ${Array.from(A.values()).reduce((g,B)=>g+B,0)}`))}return A});I(this,"bufferingEventsLast",A=>this.metrics.general.bufferingRanges.filter(t=>t.start>=Date.now()-A).length);I(this,"timeSpentBufferingLast",A=>MC(this.metrics.general.bufferingRanges,A));I(this,"timeSpentActiveLast",A=>MC(this.metrics.general.activeRanges,A));I(this,"timeSpentPlayingInAtLeastLevelRatio",A=>{var a,Q,E,h;const t=this.timeSpentBuffering(),e=this.timeActive(),g=this.bufferingRatios(),B=this.activeRatios(),o=((Q=(a=A.video)==null?void 0:a.bitRate)!=null?Q:0)+((h=(E=A.audio)==null?void 0:E.bitRate)!=null?h:0),n=t/e;return Object.keys(this.metrics.levels).map(d=>parseInt(d,10)).filter(d=>d>=o).reduce((d,m)=>{var f,G;const y=this.getQualityIndex(m).toString();return((f=B.get(y))!=null?f:0)-((G=g.get(y))!=null?G:0)*n+d},0)});I(this,"timeSpentBuffering",()=>iI(this.metrics.general.bufferingRanges));I(this,"timeActive",()=>iI(this.metrics.general.activeRanges));I(this,"getStatistics",()=>{const A=this.timeSpentBuffering(),t=this.timeActive(),e=this.metrics.general.bufferingRanges.length,g=this.activeRatios(),B=t/6e4,o=t>0?A/t:0,n=Math.max(B,1),a=B>0?e/n:0,Q=[...g].reduce((b,[R,v])=>b+parseInt(R,10)*v,0),E=6e4,h=this.timeSpentActiveLast(E),d=this.timeSpentBufferingLast(E),m=h>0?d/h:0,y=this.metrics.general.upgradesFromLevel.length+this.metrics.general.downgradesFromLevel.length,f=B>0?y/n:0,G=e>0?A/e:0;return{timeSpentBuffering:A,bufferingEventsCount:e,timeSpentRatio:[...g].reduce((b,[R,v])=>(b[R]=v,b),{}),fatalQosCount:this.fatalQosCount,bufferingRatio:o,bufferingEventsPerMinute:a,averageRenditionIndex:Q,bufferingRatioPerMinute:m,renditionChangesPerMinute:f,timePerBufferingEvent:G}});I(this,"onRenditionLevelChanged",A=>{var B,o,n,a,Q,E,h,d,m,y,f,G,b,R;const t=((n=(o=(B=A.from)==null?void 0:B.video)==null?void 0:o.bitRate)!=null?n:0)+((E=(Q=(a=A.from)==null?void 0:a.audio)==null?void 0:Q.bitRate)!=null?E:0),e=((m=(d=(h=A.to)==null?void 0:h.video)==null?void 0:d.bitRate)!=null?m:0)+((G=(f=(y=A.to)==null?void 0:y.audio)==null?void 0:f.bitRate)!=null?G:0);this.logger.info("rendition level changed",{fromLevel:t,toLevel:e}),this.metrics.general.activeRanges.length===0&&this.setActive(),A.from&&A.to&&(t<e?this.metrics.general.upgradesFromLevel.push(Date.now()):this.metrics.general.downgradesFromLevel.push(Date.now()));let g=!1;if(A.from){const v=(b=this.metrics.levels[t])!=null?b:va();t<e?v.upgradesFromLevel.push(Date.now()):v.downgradesFromLevel.push(Date.now()),Xe(v.activeRanges);const P=v.bufferingRanges[v.bufferingRanges.length-1];g=!!P&&!P.end,Xe(v.bufferingRanges),this.metrics.levels[t]=v}if(A.to){const v=(R=this.metrics.levels[e])!=null?R:va();eI(v.activeRanges),g&&eI(v.bufferingRanges),this.metrics.levels[e]=v,this.currentLevel=e}});I(this,"onBufferFullness",A=>{this.bufferFullness.push(A),this.metrics.bufferFullness=A,this.bufferFullness.items().length>=this.minBufferFullnessLengthForRegression&&(this.bufferFullnessRegression=this.calculateLinearRegression())});I(this,"onPlaybackState",A=>{switch(this.logger.info("Playback state",{state:A,currentLevel:this.currentLevel}),A){case"playing":this.stopBuffering();break;case"buffering":this.isSuspended||this.startBuffering();break}});I(this,"onVideoDecodeRate",A=>{var e;if(this.metrics.general.decodeRate=A,!this.currentLevel)return;const t=this.metrics.levels[(e=this.currentLevel)!=null?e:0];t&&(t.decodeRate=A)});I(this,"onTargetBufferTime",A=>{this.targetBufferTime=A});I(this,"calculateLinearRegression",()=>ic(this.bufferFullness.items().map((A,t)=>({x:t,y:A}))));I(this,"stopBuffering",()=>{if(this.currentLevel){const A=this.metrics.levels[this.currentLevel];A&&Xe(A.bufferingRanges)}Xe(this.metrics.general.bufferingRanges)});I(this,"startBuffering",()=>{if(this.currentLevel){const A=this.metrics.levels[this.currentLevel];A&&eI(A.bufferingRanges)}eI(this.metrics.general.bufferingRanges)});I(this,"unsetActive",()=>{if(this.currentLevel){const A=this.metrics.levels[this.currentLevel];A&&Xe(A.activeRanges)}Xe(this.metrics.general.activeRanges)});I(this,"getQualityIndex",A=>{var e,g;if(!this.qualityIndexOrder.length){const o=((g=(e=this.renditionLevelSource)==null?void 0:e.getRenditionLevels())!=null?g:[]).map(n=>{var a,Q,E,h;return((Q=(a=n.video)==null?void 0:a.bitRate)!=null?Q:0)+((h=(E=n.audio)==null?void 0:E.bitRate)!=null?h:0)}).filter(n=>n>0);this.qualityIndexOrder=[...new Set(o)].sort((n,a)=>a-n)}let t=this.qualityIndexOrder.indexOf(A);return t===-1&&(this.qualityIndexOrder.push(A),this.qualityIndexOrder.sort((B,o)=>o-B),t=this.qualityIndexOrder.indexOf(A)),t});this.logger=t,this.emitter=A,this.renditionLevelSource=e}get fatalQosCount(){return this._fatalQosCount}setActive(){if(this.currentLevel){const A=this.metrics.levels[this.currentLevel];A&&eI(A.activeRanges)}eI(this.metrics.general.activeRanges)}};I(ln,"create",(A,t,e)=>new ln(A,t,e));let qa=ln;const un=class un{constructor(A,t){I(this,"renditions",new Map);I(this,"renditionLevels",[]);I(this,"languages",[]);I(this,"emitter");I(this,"subscriptionSource");I(this,"renditionLevelChangeCount",0);I(this,"unload",()=>{this.emitter.off("renditions",this.onRenditions),this.emitter.off("subscription changed",this.onSubscriptionChanged)});I(this,"getRenditionLevels",A=>A?this.createRenditionLevels(A):this.renditionLevels);I(this,"getRenditionLevel",A=>{var n;const t=A!=null?A:this.getCurrentSubscription(),e=A?this.createRenditionLevels(A):this.renditionLevels;if(!t.video)return e.length?e[0]:void 0;const g=t.video.bitRate||Number.MAX_SAFE_INTEGER,B=t.video.width||Number.MAX_SAFE_INTEGER,o=t.video.height||Number.MAX_SAFE_INTEGER;return(n=e.filter(a=>a.video&&t.video?a.video.bitRate<=g&&a.video.width<=B&&a.video.height<=o:!0).pop())!=null?n:e[0]});I(this,"setRenditions",(A,t)=>{this.renditions.set(A,t)});I(this,"getLanguages",()=>this.languages);I(this,"getVideoRendition",(A,t=this.getCurrentSubscription().channelId)=>{const e=this.getRendition(A,t);if(e&&je(e))return e});I(this,"getAudioRenditions",A=>{const t=this.renditions.get(A);return t==null?void 0:t.filter(g=>ze(g))});I(this,"getVideoRenditions",A=>{const t=this.renditions.get(A);return t==null?void 0:t.filter(g=>je(g))});I(this,"getAudioRendition",(A,t=this.getCurrentSubscription().channelId)=>{const e=this.getRendition(A,t);if(e&&ze(e))return e});I(this,"getRendition",(A,t=this.getCurrentSubscription().channelId)=>{var e;return(e=this.renditions.get(t))==null?void 0:e.find(g=>g.id===A)});I(this,"getStatistics",()=>{var t,e,g,B,o,n,a,Q,E,h;const A=this.getRenditionLevel();return{videoCodec:(t=A==null?void 0:A.video)==null?void 0:t.codec,audioCodec:(e=A==null?void 0:A.audio)==null?void 0:e.codec,videoRenditionId:(g=A==null?void 0:A.video)==null?void 0:g.id,audioRenditionId:(B=A==null?void 0:A.audio)==null?void 0:B.id,videoWidth:(o=A==null?void 0:A.video)==null?void 0:o.width,videoHeight:(n=A==null?void 0:A.video)==null?void 0:n.height,expectedVideoBitRate:(a=A==null?void 0:A.video)==null?void 0:a.bitRate,expectedAudioBitRate:(Q=A==null?void 0:A.audio)==null?void 0:Q.bitRate,frameRate:(E=A==null?void 0:A.video)==null?void 0:E.frameRate,language:(h=A==null?void 0:A.audio)==null?void 0:h.language,renditionLevelChangeCount:this.renditionLevelChangeCount}});I(this,"onRenditions",A=>{const t=this.subscriptionSource.getCurrentSubscription();this.renditions.set(A.channelId,A.renditions),this.updateRenditionLevels({to:t,from:t})});I(this,"onSubscriptionChanged",A=>{this.updateRenditionLevels(A)});I(this,"updateRenditionLevels",({to:A,from:t})=>{var Q;const{channelId:e,initiator:g}=A,B=this.getRenditionLevel(t),o=new Set;((Q=this.renditions.get(e))!=null?Q:[]).filter(E=>E.codec!=="webvtt").forEach(E=>E.language?o.add(E.language):void 0),this.languages=Array.from(o),this.renditionLevels=this.createRenditionLevels(A);const a=this.getRenditionLevel(A);tI(B,a)||(this.renditionLevelChangeCount++,this.emitter.emit("rendition level changed",{to:a,from:B,reason:g?"manual":"abr"}))});I(this,"createRenditionLevels",A=>{var E;const{video:t,audio:e,channelId:g}=A,B=(E=this.renditions.get(g))!=null?E:[],o=B.filter(je).filter(h=>t&&h.codec===t.codec),n=B.filter(ze).filter(h=>e&&h.codec===e.codec&&h.language===e.language),a=Math.max(o.length,n.length),Q=[];for(let h=0;h<a;h++){const d=o[Math.min(o.length-1,h)],m=n[Math.min(n.length-1,h)];Q.push({audio:m,video:d})}return Q});I(this,"getCurrentSubscription",()=>this.subscriptionSource.getCurrentSubscription());this.subscriptionSource=t,this.emitter=A,this.emitter.on("renditions",this.onRenditions),this.emitter.on("subscription changed",this.onSubscriptionChanged)}};I(un,"create",(A,t)=>new un(A,t));let Ka=un;const Ng=i=>JSON.parse(JSON.stringify(i)),Ku=1e4,wn=class wn{constructor(A,t,e){I(this,"logger");I(this,"timers",new bA);I(this,"emitter");I(this,"targetSubscription");I(this,"currentSubscription");I(this,"_isSwitchingSubscription",!1);I(this,"pendingSubscriptionTimeoutId");I(this,"burstMs",0);I(this,"unload",()=>{this.logger.debug("Unloading module..."),this.timers.unload(),this.emitter.off("subscription changed",this.onSubscriptionChanged),this.logger.debug("Unloaded module")});I(this,"isSwitchingSubscription",()=>this._isSwitchingSubscription);I(this,"getTargetSubscription",()=>this.targetSubscription);I(this,"getCurrentSubscription",()=>this.currentSubscription);I(this,"enableBurst",A=>{this.burstMs=A});I(this,"setSize",A=>{this.targetSubscription.video.width=A.width,this.targetSubscription.video.height=A.height,this.scheduleSubscriptionChange()});I(this,"setVideoConstraint",A=>{this.targetSubscription.video=A,this.scheduleSubscriptionChange()});I(this,"setAudioConstraint",A=>{this.targetSubscription.audio=A,this.scheduleSubscriptionChange()});I(this,"setVideoBitRate",A=>{this.targetSubscription.video.bitRate=A,this.scheduleSubscriptionChange()});I(this,"setAudioBitRate",A=>{this.targetSubscription.audio.bitRate=A,this.scheduleSubscriptionChange()});I(this,"setChannelId",A=>{this.targetSubscription.channelId=A,this.scheduleSubscriptionChange()});I(this,"setLanguage",A=>{this.targetSubscription.audio.language=A,this.scheduleSubscriptionChange()});I(this,"setVideoCodec",A=>{this.targetSubscription.video.codec=A,this.scheduleSubscriptionChange()});I(this,"setAudioCodec",A=>{this.targetSubscription.audio.codec=A,this.scheduleSubscriptionChange()});I(this,"setBurst",A=>{A?this.targetSubscription.burstMs=A:delete this.targetSubscription.burstMs});I(this,"isNewSubscription",()=>{const A=["burstMs","meta","initiator","channelGroupId"];return!tI(JC(this.currentSubscription,A),JC(this.targetSubscription,A))});I(this,"onSubscriptionChanged",({to:A,reset:t})=>{this.logger.debug("onSubscriptionChanged",{to:A,reset:t}),t?this.targetSubscription=Ng(this.currentSubscription):this.currentSubscription=Ng(A),this._isSwitchingSubscription=this.isNewSubscription()});I(this,"scheduleSubscriptionChange",()=>{this.targetSubscription=Ng(this.targetSubscription),this._isSwitchingSubscription=this.isNewSubscription();const A=this.currentSubscription.channelId,t=this.targetSubscription.channelId,e=A!==t;this._isSwitchingSubscription&&(e&&this.burstMs?this.setBurst(this.burstMs):this.setBurst(0),this.pendingSubscriptionTimeoutId&&(this.timers.clearTimeout(this.pendingSubscriptionTimeoutId),this.pendingSubscriptionTimeoutId=void 0),e&&this.timers.setTimeout(()=>{this.currentSubscription.channelId===A&&this.targetSubscription.channelId===t&&(this.logger.warn("Channel switch timeout",t),this.targetSubscription=Ng(this.currentSubscription),this.emitter.emit("channel switch timeout",t))},Ku),this.pendingSubscriptionTimeoutId=this.timers.setTimeout(()=>this.emitter.emit("send signal",{type:"subscribe",subscription:this.getTargetSubscription()}),0))});this.logger=A,this.targetSubscription=t,this.currentSubscription=Ng(t),this.emitter=e,this.emitter.on("subscription changed",this.onSubscriptionChanged)}};I(wn,"create",(A,t,e)=>new wn(A,e,t));let Ya=wn;const cr=5e3,Yu=()=>RC()||jE(),Tu=()=>Yu()?100:0,hr=i=>A=>A>i,lo={seek:{toleranceMs:200,toleranceMaxMs:2500,toleranceMultiplierStep:1,backoffEveryN:2,cooldownMs:1e3,timeoutMs:5e3,aheadToleranceMs:150,keyframeSearchBeforeMs:50,keyframeSearchAfterMs:100},timeshift:{enabled:!1,toleranceMs:50,toleranceMaxMs:600,backoffEveryN:3},playbackRate:{enabled:!1,startDiff:60,stopDiff:40,maxDiff:300,speed:.02,cooldownMs:2e3},backoff:{enabled:!0,decayEnabled:!0,decayCooldownMultiplier:3,decayCheckInterval:15e3}},Dn=class Dn{constructor(A,t,e,g,B){I(this,"emitter");I(this,"logger");I(this,"playbackSource");I(this,"bufferSource");I(this,"keyframeTimestamps",new x(10));I(this,"lastSeekTime",Date.now());I(this,"lastAdjustmentTime",Date.now());I(this,"lastDecayCheckTime",Date.now());I(this,"config");I(this,"state");I(this,"allowTimeshiftOnAudio",!1);I(this,"syncInfoToleranceMaxMs",150);I(this,"syncInfoToleranceStep",20);I(this,"seekOvershoot",Tu());I(this,"timers",bA.create());I(this,"rtt",0);I(this,"channelSyncInfo",new Map);I(this,"seekAdjustmentCount",0);I(this,"timeshiftAdjustmentCount",0);I(this,"syncInfoCorrectionCount",0);I(this,"playbackRateAdjustmentCount",0);I(this,"lastPlaybackRateChangeTime",0);I(this,"seekAdjustmentTimestamps",[]);I(this,"timeshiftAdjustmentTimestamps",[]);I(this,"_driftSamplesToAverage",5);I(this,"driftSamples",new x(this._driftSamplesToAverage));I(this,"timestampOffset");I(this,"currentChannelId");I(this,"highestSeenTimestamps",new Map);I(this,"isSuspended",!1);I(this,"isSyncAdjustmentActivated",!1);I(this,"queuedTimeshift",!1);I(this,"load",()=>{this.timers.setInterval(this.onSync,100)});I(this,"unload",()=>{this.logger.debug("Unloading module..."),this.emitter.off("rtt",this.updateRtt),this.timers.unload(),this.logger.debug("Unloaded module")});I(this,"suspend",()=>{this.isSuspended=!0});I(this,"unsuspend",()=>{this.resetSyncState(),this.isSuspended=!1});I(this,"deactivateSyncAdjustments",()=>{this.isSyncAdjustmentActivated=!1});I(this,"activateSyncAdjustments",()=>{this.tryApplySyncInfo(0),this.lastSeekTime=Date.now(),this.isSyncAdjustmentActivated=!0});I(this,"reset",()=>{this.logger.info("Reset sync state"),this.currentChannelId=void 0,this.timestampOffset=void 0,this.resetSyncState(),this.highestSeenTimestamps.clear()});I(this,"getTimeshiftOffset",()=>{var A;return(A=this.timestampOffset)!=null?A:0});I(this,"getCurrentChannelId",()=>this.currentChannelId);I(this,"resetSyncState",()=>{this.state.seekToleranceMultiplier=1,this.state.timeshiftToleranceMultiplier=1,this.seekAdjustmentTimestamps=[],this.timeshiftAdjustmentTimestamps=[],this.driftSamples.clear()});I(this,"getEffectiveSeekToleranceMs",()=>this.config.timeshift.enabled?this.config.seek.toleranceMs*2:this.config.seek.toleranceMs);I(this,"getLiveEdgeTime",A=>{const t=this.channelSyncInfo.get(A);if(!t)return;const e=Date.now()-t.localTimestamp;return t.timestamp+e});I(this,"getLiveEdgeTimeLatencyAdjusted",A=>{const t=this.getLiveEdgeTime(A);if(t)return t+this.rtt/2});I(this,"getWallclockTime",A=>{const t=this.channelSyncInfo.get(A);if(!t)return;const e=Date.now()-t.localTimestamp;return t.wallclockTime+e});I(this,"getWallclockTimeLatencyAdjusted",A=>{const t=this.getWallclockTime(A);if(t)return t+this.rtt/2});I(this,"processSample",A=>{var g;if(!A.channelId)throw new Error("Sample must be assigned to a channel");this.currentChannelId||(this.currentChannelId=A.channelId),this.timestampOffset||(this.timestampOffset=A.timestamp/A.timescale*1e3-cr);const t=A.type==="video"&&A.isSync;if(this.currentChannelId!==A.channelId){let B=Number.MAX_SAFE_INTEGER;console.assert(this.highestSeenTimestamps.size!==0,"no known timestamps"),this.highestSeenTimestamps.forEach(n=>{B=Math.min(B,n)});const o=A.timestamp/A.timescale*1e3;this.currentChannelId=A.channelId,this.timestampOffset=o-B}else(t||this.allowTimeshiftOnAudio)&&this.tryTimeshiftSync();const e=this.timestampOffset*A.timescale/1e3;return A.timestamp-=e,t&&this.keyframeTimestamps.push(A.timestamp/A.timescale*1e3),this.highestSeenTimestamps.set(A.type,Math.max((g=this.highestSeenTimestamps.get(A.type))!=null?g:0,A.timestamp/A.timescale*1e3)),A});I(this,"processFragment",(A,t)=>{var o;this.currentChannelId||(this.currentChannelId=A);const e=t.mediaType();if(!e)throw new Error("Fragment must have a media type");this.timestampOffset||(this.timestampOffset=t.baseMediaDecodeTime()/t.timescale()*1e3-cr);const g=t.mediaType()==="video"&&t.startsWithKeyframe();this.currentChannelId!==A?(console.assert(this.highestSeenTimestamps.size!==0,"no known timestamps"),this.highestSeenTimestamps.forEach(n=>{}),this.currentChannelId=A):(g||this.allowTimeshiftOnAudio)&&this.tryTimeshiftSync();const B=this.timestampOffset*t.timescale()/1e3;return t.updateBaseMediaDecodeTime(t.baseMediaDecodeTime()-B),g&&this.keyframeTimestamps.push(t.baseMediaDecodeTime()/t.timescale()*1e3),this.highestSeenTimestamps.set(e,Math.max((o=this.highestSeenTimestamps.get(e))!=null?o:0,t.baseMediaDecodeTime()/t.timescale()*1e3)),t});I(this,"forceSeek",()=>{this.logger.debug("Forcing seek",{amount:this.serverCurrentTime-this.playbackSource.currentTime}),this.playbackSource.currentTime=this.serverCurrentTime});I(this,"forceTimeshift",()=>{this.queuedTimeshift=!0});I(this,"setPlaybackRateAdjustmentEnabled",A=>{this.config.playbackRate.enabled=A});I(this,"getStatistics",()=>{const A=this.driftSamples.items(),t=A.length>0?dt(A.map(Math.abs)):0;return{drift:this.drift,seekAdjustmentCount:this.seekAdjustmentCount,timeshiftAdjustmentCount:this.timeshiftAdjustmentCount,seekTime:this.playbackSource.seekTime,totalSeekTime:this.playbackSource.totalSeekTime,seekToleranceMultiplier:this.state.seekToleranceMultiplier,currentSeekToleranceMs:this.currentSeekToleranceMs(),currentAheadToleranceMs:this.currentAheadToleranceMs(),isPlaybackRateAdjustmentEnabled:this.config.playbackRate.enabled,playbackRate:this.playbackSource.playbackRate||1,playbackRateAdjustmentCount:this.playbackRateAdjustmentCount,averageDrift:t}});I(this,"updateRtt",A=>{this.rtt=A});I(this,"isPlaybackSourceReadyToSeek",()=>!this.isSeeking()&&this.isSeekCooldownExpired()&&this.isSyncAdjustmentActivated);I(this,"isSeeking",()=>this.playbackSource.isSeeking?!this.isSeekTimeoutExpired():!1);I(this,"isAllowedToSync",()=>this.isPlaybackSourceReadyToSeek()&&!!this.currentChannelId&&!this.isSuspended&&!this.playbackSource.isPaused);I(this,"isSeekCooldownExpired",()=>Date.now()-this.lastSeekTime>this.config.seek.cooldownMs);I(this,"isSeekTimeoutExpired",()=>Date.now()-this.lastSeekTime>this.config.seek.timeoutMs);I(this,"currentTimeshiftToleranceMs",()=>Math.min(this.config.timeshift.toleranceMs*this.state.timeshiftToleranceMultiplier,this.config.timeshift.toleranceMaxMs));I(this,"currentSeekToleranceMs",()=>Math.min(this.state.seekToleranceMultiplier*this.getEffectiveSeekToleranceMs(),this.config.seek.toleranceMaxMs));I(this,"currentAheadToleranceMs",()=>{const A=Math.max(this.config.seek.aheadToleranceMs*this.state.seekToleranceMultiplier,400),t=this.playbackSource.seekTime>500?A:this.config.seek.aheadToleranceMs;return Math.min(t,this.bufferSource.getTargetBufferTime()/2)});I(this,"tryDecayMultipliers",()=>{if(!this.config.backoff.decayEnabled)return;const A=Date.now();if(A-this.lastDecayCheckTime<this.config.backoff.decayCheckInterval)return;this.lastDecayCheckTime=A;const t=this.seekAdjustmentTimestamps.length>0?Math.max(...this.seekAdjustmentTimestamps):0,e=this.timeshiftAdjustmentTimestamps.length>0?Math.max(...this.timeshiftAdjustmentTimestamps):0,g=Math.max(t,e,this.lastAdjustmentTime),B=A-g,o=Math.max(this.state.seekToleranceMultiplier,this.state.timeshiftToleranceMultiplier),a=this.config.seek.timeoutMs*this.config.backoff.decayCooldownMultiplier*o;if(B<a)return;let Q=!1;if(this.state.seekToleranceMultiplier>1){const E=Math.max(1,this.state.seekToleranceMultiplier-.5);E!==this.state.seekToleranceMultiplier&&(this.logger.info("Decaying seek tolerance multiplier",{from:this.state.seekToleranceMultiplier,to:E,timeSinceLastAdjustment:B,requiredStabilityMs:a}),this.state.seekToleranceMultiplier=E,Q=!0)}if(this.state.timeshiftToleranceMultiplier>1){const E=Math.max(1,this.state.timeshiftToleranceMultiplier-.5);E!==this.state.timeshiftToleranceMultiplier&&(this.logger.info("Decaying timeshift tolerance multiplier",{from:this.state.timeshiftToleranceMultiplier,to:E,timeSinceLastAdjustment:B,requiredStabilityMs:a}),this.state.timeshiftToleranceMultiplier=E,Q=!0)}if(Q){const E=A-a*2;this.seekAdjustmentTimestamps=this.seekAdjustmentTimestamps.filter(h=>h>E),this.timeshiftAdjustmentTimestamps=this.timeshiftAdjustmentTimestamps.filter(h=>h>E)}});I(this,"applyBackoff",()=>{if(this.config.backoff.enabled&&(this.lastAdjustmentTime=Date.now(),this.seekAdjustmentCount>0&&this.seekAdjustmentCount%this.config.seek.backoffEveryN===0)){const A=this.state.seekToleranceMultiplier,t=this.config.seek.toleranceMaxMs/this.getEffectiveSeekToleranceMs();this.state.seekToleranceMultiplier=Math.min(this.state.seekToleranceMultiplier+this.config.seek.toleranceMultiplierStep,t),A!==this.state.seekToleranceMultiplier&&this.logger.info("Backoff: Increasing seek tolerance multiplier",{from:A,to:this.state.seekToleranceMultiplier,currentSeekToleranceMs:this.currentSeekToleranceMs()})}});I(this,"tryPlaybackRateSync",A=>{if(!this.config.playbackRate.enabled)return!1;const t=this.playbackSource.playbackRate!==1,e=Math.abs(A),g=t&&e<this.config.playbackRate.stopDiff,B=!t&&e>=this.config.playbackRate.startDiff;if(e>this.config.playbackRate.maxDiff)return t&&(this.playbackSource.playbackRate=1,this.lastPlaybackRateChangeTime=Date.now()),!1;const o=Date.now(),n=o-this.lastPlaybackRateChangeTime>=this.config.playbackRate.cooldownMs;if(g&&n)return this.playbackSource.playbackRate=1,this.lastPlaybackRateChangeTime=o,this.logger.info("Resetting playback rate to 1",{drift:A}),!0;if(B&&n){const a=A>0?1+this.config.playbackRate.speed:1-this.config.playbackRate.speed;return this.playbackSource.playbackRate=a,this.lastPlaybackRateChangeTime=o,this.playbackRateAdjustmentCount++,this.logger.info("Adjusting playback rate",{drift:A,targetRate:a}),!0}if(t&&e>=this.config.playbackRate.stopDiff&&e<=this.config.playbackRate.maxDiff){const a=A>0?1+this.config.playbackRate.speed:1-this.config.playbackRate.speed;return this.playbackSource.playbackRate!==a&&n&&(this.playbackSource.playbackRate=a,this.lastPlaybackRateChangeTime=o,this.logger.info("Changing playback rate direction",{drift:A,targetRate:a})),!0}return!t&&e<this.config.playbackRate.startDiff?!0:t});I(this,"tryTimeshiftSync",()=>{var B;if(!this.config.timeshift.enabled||!this.isAllowedToSync()||this.playbackSource.playbackRate!==1)return;const A=(B=this.drift)!=null?B:0;this.driftSamples.push(A);const t=dt(this.driftSamples.items());if(this.queuedTimeshift&&t>0){this.queuedTimeshift=!1,this.applyTimeshift(t);return}if(t>=this.getEffectiveSeekToleranceMs()||t<this.currentTimeshiftToleranceMs())return;const e=Date.now()-this.config.seek.timeoutMs*this.state.timeshiftToleranceMultiplier,g=this.timeshiftAdjustmentTimestamps.filter(hr(e)).length;if(g&&this.state.timeshiftToleranceMultiplier>2){this.logger.info("Too many timeshifts within sliding window",{timeshiftCooldownThreshold:e,recentTimeshiftCount:g});return}this.applyTimeshift(t)});I(this,"applySeek",A=>{const t=this.playbackSource.seekTime,e=this.playbackSource.currentTime+A,g=this.findKeyframeCloseToTimestamp(e);if(!g&&!this.keyframeTimestamps.isEmpty())return;const B=g&&g>e+this.seekOvershoot?g:e+this.seekOvershoot;this.logger.info("Adjusting for drift using seek",{drift:A,currentTime:this.playbackSource.currentTime,targetCurrentTime:B,seekTime:t,rtt:this.rtt,seekToleranceMultiplier:this.state.seekToleranceMultiplier}),this.lastSeekTime=Date.now(),this.driftSamples.clear(),this.seekAdjustmentTimestamps.push(this.lastSeekTime),this.seekAdjustmentCount++,this.playbackSource.currentTime=B+Math.min(t,this.bufferSource.getTargetBufferTime()),this.applyBackoff()});I(this,"applyTimeshift",A=>{var g;const t=(g=A!=null?A:this.drift)!=null?g:0;if(!this.timestampOffset)return;const e=t;if(this.logger.info("Adjusting for drift using timeshift",{drift:t,syncAmount:e,currentTime:this.playbackSource.currentTime,rtt:this.rtt,timeshiftToleranceMultiplier:this.state.timeshiftToleranceMultiplier}),this.timestampOffset+=e,this.lastSeekTime=Date.now(),this.lastAdjustmentTime=Date.now(),!this.playbackSource.isPaused&&(this.driftSamples.clear(),this.timeshiftAdjustmentTimestamps.push(this.lastSeekTime),this.timeshiftAdjustmentCount++,this.config.backoff.enabled&&this.timeshiftAdjustmentCount>0&&this.timeshiftAdjustmentCount%this.config.timeshift.backoffEveryN===0)){const B=this.state.timeshiftToleranceMultiplier,o=this.config.timeshift.toleranceMaxMs/this.config.timeshift.toleranceMs;this.state.timeshiftToleranceMultiplier=Math.min(this.state.timeshiftToleranceMultiplier+1,o),B!==this.state.timeshiftToleranceMultiplier&&this.logger.info("Backoff: Increasing timeshift tolerance multiplier",{from:B,to:this.state.timeshiftToleranceMultiplier,currentTimeshiftToleranceMs:this.currentTimeshiftToleranceMs()})}});I(this,"onSync",()=>{var B;if(this.tryDecayMultipliers(),!this.isAllowedToSync())return;const A=(B=this.drift)!=null?B:0;if(this.driftSamples.push(A),this.driftSamples.items().length<this.driftSamplesToAverage&&Math.abs(A)<2e3)return;const t=dt(this.driftSamples.items());if(this.tryPlaybackRateSync(t)||t<0&&-t<this.currentAheadToleranceMs()||t>0&&t<this.currentSeekToleranceMs()||Math.abs(t)<1||!this.isSeekCooldownExpired())return;const e=Date.now()-this.config.seek.timeoutMs*this.state.seekToleranceMultiplier,g=this.seekAdjustmentTimestamps.filter(hr(e)).length;if(g&&this.state.seekToleranceMultiplier>2){this.logger.info("Too many seek adjustments within sliding window",{seekCooldownThreshold:e,recentSeekCount:g});return}this.applySeek(t)});I(this,"findKeyframeCloseToTimestamp",A=>{const t=this.keyframeTimestamps.items();for(const e of t){const g=e>=A-this.config.seek.keyframeSearchBeforeMs,B=e<=A+this.config.seek.keyframeSearchAfterMs;if(g&&B)return e}});this.logger=t,this.emitter=A,this.playbackSource=e,this.bufferSource=g,this.config={seek:D({},lo.seek),timeshift:D({},lo.timeshift),playbackRate:D({},lo.playbackRate),backoff:D({},lo.backoff)},this.config.timeshift.enabled=B,this.state={seekToleranceMultiplier:1,timeshiftToleranceMultiplier:1},typeof window!="undefined"&&window.location.search.includes("playbackRateAdjustmentEnabled")&&(this.config.playbackRate.enabled=!0),this.emitter.on("rtt",this.updateRtt),this.logger.info("SyncModule initialized",{config:this.config})}get driftSamplesToAverage(){return this._driftSamplesToAverage}set driftSamplesToAverage(A){this._driftSamplesToAverage=A,this.driftSamples=new x(A)}updateChannelSyncInfo(A,t){const e=Date.now(),g=this.channelSyncInfo.get(A),B=this.getLiveEdgeTime(A);if(this.isSuspended)return;if(!g||!B){this.logger.info("Initial timing info",{syncInfo:t}),this.channelSyncInfo.set(A,z(D({},t),{localTimestamp:e,timeDifferences:new x(12)}));return}const o=t.wallclockTime-g.wallclockTime,n=t.timestamp-g.timestamp,a=e-g.localTimestamp,Q=n-a;if(g.timeDifferences.push(Q),this.logger.debug("Timing info",{rtt:this.rtt,channelId:A,syncInfo:t,localTimestamp:e,diffFromEstimated:Q,timestampDelta:n,wallclockDelta:o,localWallclockDelta:a}),Math.abs(Q)>=Math.max(this.bufferSource.getTargetBufferTime()*2,3e3)){this.logger.info("Resetting sync info",{diffFromEstimated:Q}),this.channelSyncInfo.set(A,z(D({},t),{localTimestamp:e,timeDifferences:new x(g.timeDifferences.maxSize+1)})),this.currentChannelId&&this.currentChannelId===A&&(this.reset(),this.emitter.emit("channel reset"));return}g.timeDifferences.items().length<3||this.tryApplySyncInfo(Math.min(this.syncInfoToleranceMaxMs,this.syncInfoCorrectionCount*this.syncInfoToleranceStep))}tryApplySyncInfo(A){const t=this.getCurrentChannelId();if(!t)return;const e=this.channelSyncInfo.get(t);if(!e)return;const g=Xt(e.timeDifferences.items());Math.abs(g.average)>A&&(this.logger.info("Adjusting sync info",z(D({},g),{tolerance:A})),e.timestamp+=g.average,this.syncInfoCorrectionCount++,e.timeDifferences.clear())}get serverCurrentTime(){return this.channelCurrentTime-this.getTimeshiftOffset()}get channelCurrentTime(){const A=this.getCurrentChannelId();if(!A)return 0;const t=this.getLiveEdgeTime(A);return t?t-this.bufferSource.getTargetBufferTime():0}get drift(){return this.serverCurrentTime-this.playbackSource.currentTime}};I(Dn,"create",(A,t,e,g,B)=>new Dn(A,t,e,g,B));let Ta=Dn;const Pu={enabled:!0,interval:3e4,includeErrors:!0,includeEvents:!0,includeStats:!0,maxRetries:10,maxErrorReports:50,maxEvents:50},Pa=(i,A)=>z(D({},A),{type:i,timestamp:new Date().toISOString(),discriminator:"web"}),mn=class mn{constructor(A,t,e,g){I(this,"logger");I(this,"timers",new bA);I(this,"emitter");I(this,"options");I(this,"parentContext");I(this,"unsentLines",new x(100));I(this,"retries",0);I(this,"errorCount",0);I(this,"eventCount",0);I(this,"statsCount",0);I(this,"unload",()=>{this.logger.debug("Unloading module..."),window.removeEventListener("error",this.onError),window.removeEventListener("unhandledrejection",this.onRejection),this.timers.unload(),this.emitter.off("error",this.addError),this.emitter.off("visibilitystate",this.onVisibilityChange),this.emitter.off("pagehide",this.onPageHide),this.emitter.off("telemetry event",this.addEvent),this.addStats({isFinal:!0,initiator:"unload"}),this.send("beacon"),this.logger.debug("Unloaded module")});I(this,"load",()=>{window.addEventListener("error",this.onError),window.addEventListener("unhandledrejection",this.onRejection),this.emitter.on("error",this.addError),this.emitter.on("visibilitystate",this.onVisibilityChange),this.emitter.on("pagehide",this.onPageHide),this.emitter.on("telemetry event",this.addEvent),this.timers.setInterval(()=>{this.addStats(),this.send("fetch")},this.options.interval)});I(this,"addStats",({isFinal:A,initiator:t}={isFinal:!1,initiator:"interval"},e={})=>{if(!this.options.includeStats)return;const g=this.parentContext.getStatistics(),B=Pa("stats",z(D(D({},e),g),{isFinal:A,initiator:t,count:this.statsCount++}));this.unsentLines.push(B)});I(this,"addEvent",A=>{if(!this.options.includeEvents||this.eventCount>this.options.maxEvents)return;const t=this.parentContext.getStatistics(),e=Pa("event",D(D({},t),A));this.eventCount++,this.unsentLines.push(e)});I(this,"getStatistics",()=>({errorCount:this.errorCount}));I(this,"send",A=>c(this,null,function*(){if(this.options.enabled&&!(this.retries>=this.options.maxRetries)&&!this.unsentLines.isEmpty()){this.logger.debug("Sending telemetry",{lines:this.unsentLines.items()});try{const t=this.unsentLines.items().map(e=>JSON.stringify(e)).reverse().join(`
|
|
50
|
-
`);A==="beacon"?navigator.sendBeacon(this.options.url,t):this.parentContext.connectionState==="connected"?this.emitter.emit("send signal",{type:"telemetry",body:t}):yield FQ(new URL(this.options.url),{body:t,headers:{"Content-Type":"text/plain"}}),this.retries=0,this.unsentLines.clear()}catch(t){this.retries++}}}));I(this,"onVisibilityChange",A=>{A==="hidden"&&(this.addStats({isFinal:!0,initiator:"visibilitychange"}),this.send("beacon"))});I(this,"onPageHide",A=>{this.addStats({isFinal:!0,initiator:"pagehide"},{persisted:A.persisted}),this.send("beacon")});I(this,"onRejection",A=>this.addError(A.reason));I(this,"onError",A=>this.addError(A.error));I(this,"addError",A=>{const{includeErrors:t,maxErrorReports:e}=this.options;if(t&&A instanceof O){if(this.errorCount++,this.errorCount>e)return;const g=this.parentContext.getStatistics();this.unsentLines.push(Pa("error",D(D({},g),A.toStringifiable())))}});this.logger=A,this.emitter=t,this.options=D(D({},Pu),e),this.parentContext=g}};I(mn,"create",(A,t,e,g)=>new mn(A,t,e,g));let uo=mn;const Sn=class Sn{constructor(A,t,e){I(this,"logger");I(this,"element");I(this,"documentState");I(this,"timers",new bA);I(this,"unload",()=>{this.timers.unload()});I(this,"unpause",()=>{this.element.userHasProvidedInput&&this.element.isPaused&&this.documentState.isVisible&&this.documentState.isOnline&&(this.logger.debug("Unpause video"),this.element.tryPlay())});this.logger=A,this.element=t,this.documentState=e,this.timers.setInterval(this.unpause,100)}};I(Sn,"create",(A,t,e)=>new Sn(A,t,e));let wo=Sn;const xu=["minBufferTime","maxBufferTime","burstEnabled","sizeBasedResolutionCapEnabled","separateVideoSocketEnabled","webcodecsEnabled","webcodecsHardwareAcceleration","offscreenCanvasEnabled","videoCodecs"];function Wu(i){return xu.includes(i)}class Ou{constructor(A){I(this,"options");I(this,"overrides",new Map);this.options=A}getOptions(){return this.options}addOverrides(A,t){this.overrides.set(A,t)}set(A,t){this.options[A]=t}get(A,t){var e;if(t&&Wu(A)){const g=(e=this.overrides.get(t))==null?void 0:e[A];if(typeof g!="undefined")return g}return this.options[A]}getOverride(A,t){var e;return(e=this.overrides.get(t))==null?void 0:e[A]}}const Vu=6,Zu=i=>{let A=[i],t=0,e=0,g=!1;const B=(n,a)=>{var G,b,R;n.flags&&Rg(n.flags)&&(t=(G=n.compositionTimeOffset)!=null?G:0),n.timestamp+=t,n.compositionTimeOffset=((b=n.compositionTimeOffset)!=null?b:0)-t;const Q=n.timestamp/n.timescale,h=a.flags&&Rg(a.flags)?(R=a.compositionTimeOffset)!=null?R:0:t,m=(a.timestamp+h)/a.timescale,y=Math.max(0,Math.round((m-Q)*n.timescale));return y>0&&(e=y),z(D({},n),{duration:y>0?y:e})};return(n,a=!1)=>{if(n.flags&&Rg(n.flags)&&a&&(g=!g),!(a&&A.length<Vu&&g)&&A.length>0){g=!1;let E=n;for(let d=A.length-1;d>0;d--){const m=A[d];if(!m||!E)break;m.timestamp>=E.timestamp?A.splice(d,1):E=m}const h=A.map((d,m)=>B(d,A[m+1]||n));return A=[n],h}return A.push(n),[]}},Xu=(i,A,t)=>{if(je(A))return D(z(D({},i),{type:"video",codec:A.codec,isSync:Rg(i.flags),data:i.payload,duration:0,width:A.width,height:A.height}),t);if(A.codec==="webvtt")throw new Error("WebVTT is not supported");return z(D({},i),{type:"audio",channels:A.channels,sampleRate:A.sampleRate,codec:A.codec,language:A.language,isSync:Rg(i.flags),data:i.payload,duration:0})},dr=(i,A)=>i&&typeof i=="object"&&A in i,lr=i=>!(typeof i!="object"||!dr(i,"channelId")||typeof i.channelId!="string"||!dr(i,"url")||typeof i.url!="string"||i.channelId.length===0||i.url.length===0),ju=i=>{if(!lr(i))throw new O("Invalid options",{isFatal:!0,code:"invalid_options"});const A=D({},i);return Object.keys(A).forEach(t=>{const e=A;typeof e[t]=="undefined"&&delete e[t]}),A},zu=i=>{if(typeof i!="object"||i===null)throw new Error("not an object");if(!("video"in i))throw new Error("missing video in subscription");if(!("audio"in i))throw new Error("missing audio in subscription");if(!("channelId"in i))throw new Error("missing channelId");return!0},Qe=class Qe extends st{constructor(t){super();I(this,"pictureInPicture");I(this,"drm");I(this,"browser",Ln());I(this,"options");I(this,"element");I(this,"playbackSource");I(this,"emitter",new st);I(this,"logger");I(this,"modules");I(this,"clientIp");I(this,"sessionId");I(this,"clientId",qC());I(this,"_channels",[]);I(this,"createdAt",Date.now());I(this,"hasCalledConnect",!1);I(this,"latestEmittedLanguages",[]);I(this,"wakeLock");I(this,"pool",new Zt(Qe.MAX_POOL_SIZE));I(this,"userAgentInformation",new Cc);I(this,"encryptedMediaExtensions");C(this,Pi,0);C(this,it,[]);I(this,"sampleProcessingSesssions",new Map);I(this,"sizes",new Map);I(this,"isSuspended",!0);I(this,"disconnectTimeout");C(this,xi);I(this,"attach",t=>{var e;(e=this.wakeLock)==null||e.attach(t),t.appendChild(this.element)});I(this,"getOptions",()=>this.options.getOptions());I(this,"getThumbnailUrl",()=>{let t=this.options.get("edgeUrl")||this.options.get("url");t=t.replace("wss://","https://"),t=t.replace("ws://","http://"),t=t.endsWith("/")?t.slice(0,-1):t;const e=window.devicePixelRatio||1,g=Math.round(window.innerWidth*e),B=Math.round(window.innerHeight*e),o=this.options.get("authenticationToken"),n=o?`&auth.token=${o}`:"";return`${t}/api/thumbnail?channelId=${this.channelId}${n}&width=${g}&height=${B}`});I(this,"updateAuthenticationToken",t=>{this.logger.debug("Got new auth token",{token:t}),this.options.set("authenticationToken",t),this.emitter.emit("send signal",{type:"refresh auth",token:t})});I(this,"connect",()=>{this.hasCalledConnect||(this.play(),this._connect())});I(this,"_connect",()=>{var t,e;this.hasCalledConnect||(this.hasCalledConnect=!0,Object.values(this.modules).forEach(g=>{g&&"load"in g&&g.load()}),this.unsuspend(),this.playbackSource instanceof $n&&((e=(t=this.playbackSource).load)==null||e.call(t)),this.modules.connection.connect())});I(this,"getCastOptions",()=>({url:this.options.get("url"),channelId:this.options.get("channelId"),channelGroupId:this.options.get("channelGroupId"),authenticationToken:this.options.get("authenticationToken"),language:this.options.get("language"),logLevel:this.options.get("logLevel"),minBufferTime:this.options.get("minBufferTime"),tags:this.options.get("tags"),ownerSessionId:this.sessionId,edgeUrl:this.options.get("edgeUrl"),media:this.options.get("media"),drm:this.options.get("drm")}));I(this,"onConnectInfo",t=>c(this,null,function*(){var Q;this.sessionId=qC();const e=this.modules.subscription.getTargetSubscription(),g=t.channels.find(E=>E.channelId===e.channelId);if(this.emitter.emit("connect info",t),"timeshift"in t&&t.timeshift?(t.timeshift,this._channels=t.channels.map(E=>z(D({},E),{timeshift:t.timeshift})),this.emit("timeshift info",t.timeshift)):this._channels=t.channels,this.updateTextTracks((Q=g==null?void 0:g.renditions)!=null?Q:[]),!this.textTrack&&this.options.get("textTrack")&&(this.textTrack=this.options.get("textTrack")),yield Promise.all(t.channels.map(E=>c(this,null,function*(){E.overrides&&this.options.addOverrides(E.channelId,E.overrides),E.renditions=yield this.filterRenditions(E.renditions),this.modules.renditions.setRenditions(E.channelId,E.renditions)}))),!g)throw eQ("external");const B=this.options.getOverride("sizeBasedResolutionCapEnabled",this.channelId);B!==void 0&&(this.modules.constraintCap.sizeBasedResolutionCapEnabled=B);const o=this.options.getOverride("minBufferTime",this.channelId),n=this.options.getOverride("maxBufferTime",this.channelId);if((o||n)&&(this.modules.bufferTime.updateConfig({minBufferTime:this.options.get("minBufferTime",this.channelId),maxBufferTime:this.options.get("maxBufferTime",this.channelId)}),this.targetBufferTime=this.options.get("minBufferTime",this.channelId)),this.options.get("burstEnabled",this.channelId)&&this.modules.subscription.enableBurst(this.targetBufferTime),this.emit("is live",g.isLive),!g.isLive)throw new Error("Waiting for channel to go live");this.patchSubscription(g,this.modules.connection.estimatedBandwidth),yield this.initializeDecodingModule(),this.resetModules(),this.emit("rendition levels",this.modules.renditions.getRenditionLevels()),this.emit("channels",this.channels),this.emitLanguagesIfChanged(),this.sampleProcessingSesssions.clear();const a=this.options.get("burstEnabled",this.channelId);return{video:this.targetSubscription.video,audio:this.targetSubscription.audio,burstMs:a?this.targetBufferTime:void 0,sessionId:this.sessionId,clientId:this.clientId,channelId:this.channelId,channelGroupId:this.options.get("channelGroupId"),authToken:this.options.get("authenticationToken"),textTrack:this.textTrack}}));I(this,"emitLanguagesIfChanged",()=>{const t=this.modules.renditions.getLanguages(),e=this.latestEmittedLanguages;t.length==e.length&&t.every(B=>e.includes(B))||(this.logger.debug("Emitting new languages",{currentLanguages:t}),this.latestEmittedLanguages=t,this.emit("languages",this.latestEmittedLanguages))});I(this,"updateTextTracks",t=>{const e=t.filter(g=>g.codec==="webvtt");e.forEach(g=>{if(!s(this,it).find(o=>o.language===g.language)){if(this.modules.canvasModule){const o=this.modules.canvasModule.textTracks.addTextTrack(g.kind,g.label||g.language||"",g.language||"");s(this,it).push(o)}else if(this.mediaElement instanceof HTMLVideoElement){const o=this.mediaElement.addTextTrack(g.kind,g.label||g.language,g.language);s(this,it).push(o)}}});for(const g of s(this,it))e.find(o=>o.language===g.language)?g.mode==="disabled"&&(g.mode="hidden"):g.mode="disabled";this.emit("text tracks",this.textTracks)});I(this,"cleanupTextTracks",(t=this.currentTime-2e4)=>{s(this,it).forEach(e=>{if(e.cues)for(const g of e.cues)g.endTime*1e3<t-2e3&&e.removeCue(g)})});I(this,"filterRenditions",t=>c(this,null,function*(){const e=yield Promise.all(t.map(n=>c(this,null,function*(){var E,h,d,m;if(ze(n))return!(this.willUseMediaSource()&&!((E=$i())!=null&&E.isTypeSupported(de(n))));if(!je(n)||!this.isSupportedVideoCodecProfile(n.codec,n.codecString))return!1;if(!this.willUseMediaSource()){const y=this.options.get("advanced"),f=(h=y.wasmDecodingConstraint.bitRate)!=null?h:Number.MAX_SAFE_INTEGER,G=(d=y.wasmDecodingConstraint.width)!=null?d:Number.MAX_SAFE_INTEGER,b=(m=y.wasmDecodingConstraint.height)!=null?m:Number.MAX_SAFE_INTEGER;return n.bitRate<=f&&n.width<=G&&n.height<=b}const a=yield Nd(n);if(!a.supported||n.codec=="av1"&&!a.smooth&&!a.powerEfficient)return!1;const Q=this.options.getOverride("maxVideoBitRate",this.channelId);return Q?Q>=n.bitRate:!0})));let g=t.filter((n,a)=>e[a]);const B=g.filter(n=>n.codec==="h264").reverse()[0],o=g.filter(n=>n.codec==="av1").reverse()[0];return B&&o&&B.width>o.width&&B.height>o.height&&(g=g.filter(n=>n.codec!=="av1")),g}));I(this,"patchSubscription",(t,e)=>{const g=this.options.get("maxInitialBitRate"),B=Math.min(this.options.get("maxVideoBitRate"),g,e,this.targetSubscription.video.bitRate),o=Math.min(this.options.get("maxAudioBitRate"),g,e,this.targetSubscription.audio.bitRate),n=this.options.get("media")==="audio"?[]:this.options.get("videoCodecs",this.channelId),a=this.supportedAudioCodecs(),Q=t.renditions.filter(ze),E=t.renditions.filter(je),h=a.find(f=>Q.find(G=>G.codec===f)!==void 0),d=n.find(f=>E.find(G=>G.codec===f)!==void 0),m=Q.map(f=>f.language);if(this.logger.debug("supported and selected codecs",{audioCodecs:a,videoCodecs:n,audioCodec:h,videoCodec:d}),d){const f=this.options.get("maxSize");this.modules.subscription.setVideoConstraint(D({codec:d,bitRate:this.abrEnabled?B:this.options.get("maxVideoBitRate")},f))}h&&(this.modules.subscription.setAudioConstraint({codec:h,bitRate:this.abrEnabled?o:this.options.get("maxAudioBitRate"),language:this.options.get("language")}),(!m.includes(this.options.get("language"))||this.language===void 0)&&this.modules.subscription.setLanguage(m[0])),this.alignSizeAndBitRate(this.targetSubscription);const y=this.modules.subscription.getTargetSubscription();this.emitter.emit("subscription changed",{to:y,from:this.modules.subscription.getCurrentSubscription()})});I(this,"isSupportedVideoCodecProfile",(t,e)=>{if(this.willUseMediaSource()){const g=$i();return g?g.isTypeSupported(de({codec:t,codecString:e})):!0}if(t==="h264"){const g=!!(e!=null&&e.startsWith("avc1.42")),B=!!(e!=null&&e.startsWith("avc1.66."));return g||B}return t!=="av1"});I(this,"supportedAudioCodecs",()=>{if(this.options.get("media")==="video")return[];const t=[];return this.willUseMediaSource()&&t.push("aac"),(this.browser.supportsMp4Opus&&this.options.get("mseOpusEnabled")||!this.willUseMediaSource())&&t.push("opus"),t});I(this,"initializeDecodingModule",()=>c(this,null,function*(){var g,B;const t=this.currentRenditionLevel,e=[];if(!t)throw new O("No currentRenditionLevel",{code:"no_current_rendition_level",isFatal:!1});if(t!=null&&t.video&&e.push({type:"video",mimeType:de(t.video),codec:t.video.codec}),t!=null&&t.audio&&e.push({type:"audio",codec:t.audio.codec,mimeType:de(t.audio)}),e.length===0)throw new O("Can't initialize decoding module without tracks",{code:"no_tracks",isFatal:!1});if(this.willUseMediaSource()&&this.element instanceof HTMLMediaElement)this.emitter.emit("flush buffers"),yield(g=this.modules.mseModule)==null?void 0:g.setSourceBuffers(e);else{const o=yield fa.create(this.emitter,this.logger.createContext("DecoderModule"),e,this.playbackSource,this.pool);(B=this.modules.decoder)==null||B.unload(),this.modules.decoder=o,this.modules.decoder.load()}}));I(this,"unload",()=>c(this,null,function*(){var t,e,g;this.logger.debug("Unloading modules..."),yield Promise.all(Object.values(this.modules).map(B=>B==null?void 0:B.unload())),(t=this.wakeLock)==null||t.unload(),this.pool=new Zt(Qe.MAX_POOL_SIZE),(g=(e=this.playbackSource).unload)==null||g.call(e),this.element.remove(),this.emitter.reset(),this.encryptedMediaExtensions.unload(),this.reset(),this.logger.debug("Unloaded modules")}));I(this,"userInput",()=>{this.play()});I(this,"pause",()=>{this.options.get("pauseSupportEnabled")&&this.playbackState!=="paused"&&(this.playbackSource.pause(),this.hasCalledConnect&&this.suspend())});I(this,"registerDebugInstance",()=>{Ud(this)});I(this,"play",()=>{var t;this.hasCalledConnect?this.unsuspend():this.playbackState!=="playing"&&(this._connect(),self.addEventListener("__vindral_register_debug__",this.registerDebugInstance),this.modules.timer.setInterval(()=>this.cleanupTextTracks(),Qe.REMOVE_CUE_THRESHOLD)),(t=this.wakeLock)==null||t.enable(),this.playbackState==="paused"&&(this.resetModules(),this.emitter.emit("flush buffers"),this.cleanupTextTracks(Number.MAX_SAFE_INTEGER)),this.playbackSource.play()});I(this,"getStatistics",()=>{const t=Object.values(this.modules).reduce((h,d)=>d&&"getStatistics"in d?D(D({},h),d.getStatistics()):h,this.getRuntimeInfo()),e=Math.round(this.timeActive>0?(t.bytesReceived||0)*8/(this.timeActive/1e3):0),g=this.uptime/36e5,B=Math.max(0,(t.connectCount||0)-1),o=g>0?B/g:0,n=this.timeActive/6e4,a=Math.max(n,1),Q=n>0?(t.seekAdjustmentCount||0)/a:0,E=n>0?(t.timeshiftAdjustmentCount||0)/a:0;return z(D({},t),{averageBitRate:e,reconnectsPerHour:o,seekAdjustmentsPerMinute:Q,timeshiftAdjustmentsPerMinute:E})});I(this,"resetModules",()=>{Object.values(this.modules).forEach(t=>{t&&"reset"in t&&t.reset()}),this.sampleProcessingSesssions.clear(),this.playbackSource.currentTime=0,this.playbackSource.isActivated=!1});I(this,"getRuntimeInfo",()=>{const t=this.modules.canvasModule?this.options.get("iosMediaElementEnabled"):void 0;return D({uptime:Date.now()-this.createdAt,version:"4.1.10",clientId:this.clientId,sessionId:this.sessionId,channelId:this.channelId,channelGroupId:this.options.get("channelGroupId"),ip:this.clientIp,url:this.options.get("url"),timeToFirstFrame:this.timeToFirstFrame(),iosMediaElementEnabled:t},this.userAgentInformation.getUserAgentInformation())});I(this,"onMediaElementState",t=>{this.logger.info("media element state",{state:t}),this.options.get("pauseSupportEnabled")&&(t==="paused"?this.modules.documentState.isVisible&&(this.suspend(),this.modules.connection.disconnect()):(this.unsuspend(),this.modules.connection.getState()==="disconnected"&&this.modules.connection.unsuspend()))});I(this,"onBufferEvent",t=>{var g,B,o,n;this.emit("buffer state event",t);const e=!this.playbackSource.isActivated||this.playbackSource.isPaused;if(t==="filled"&&e){const a=Math.max(this.currentTime,(B=(g=this.videoBufferedRanges[0])==null?void 0:g.start)!=null?B:0,(n=(o=this.audioBufferedRanges[0])==null?void 0:o.start)!=null?n:0);this.logger.info("Buffer filled - starting playback",{currentTime:a}),this.playbackSource.currentTime=a,this.modules.sync.activateSyncAdjustments(),this.playbackSource.isActivated=!0}else t==="drained"&&this.playbackSource.isPaused&&(this.playbackSource.isActivated=!1,this.modules.sync.deactivateSyncAdjustments())});I(this,"timeToFirstFrame",()=>{const t=this.modules.playback.getFirstFrameTime(),e=this.modules.connection.firstConnectionTime;if(e&&t)return t-e});this.options=new Ou(D(D({},rc),ju(t)));const e=["localhost","127.0.0.1"];t.telemetryEnabled===void 0&&e.includes(location.hostname)&&this.options.set("telemetryEnabled",!1);const g={channelId:this.options.get("channelId"),audio:{language:this.options.get("language"),bitRate:this.options.get("maxAudioBitRate")},video:{bitRate:this.options.get("maxVideoBitRate"),width:this.options.get("maxSize").width,height:this.options.get("maxSize").height}},B=NA.get();B.setLevel(this.options.get("logLevel")),B.setDebug(!1),this.logger=B;const o=Ma.create(this.emitter,this.logger.createContext("PictureInPictureModule")),n=bA.create(),a=ma.create(this.emitter,this.logger.createContext("ConnectionModule"),{reconnectHandler:this.options.get("reconnectHandler"),options:this.options,onConnectInfo:this.onConnectInfo}),Q=Ya.create(this.logger.createContext("SubscriptionModule"),this.emitter,g),E=Ka.create(this.emitter,Q),h=qa.create(this.emitter,this.logger.createContext("QualityOfServiceModule"),E),d=Ha.create(this.emitter,this.logger.createContext("PlaybackModule"),this,this.options.get("minBufferTime"));this.encryptedMediaExtensions=new CQ(this.emitter,this.logger.createContext("EncryptedMediaExtensions"),t.drm),this.drm={setHeaders:w=>{this.encryptedMediaExtensions.headers=w},setQueryParams:w=>{this.encryptedMediaExtensions.queryParams=w}};const m=pa.create(this.emitter),y=this.options.get("poster"),f=y===!0?this.getThumbnailUrl():y||void 0;let G,b,R;if(this.willUseMediaSource()){const w=new $n({type:this.options.get("media")=="audio"?"audio":"video",autoplay:!1,muted:this.options.get("muted")||this.options.get("media")==="video",volume:this.options.get("volume"),logger:this.logger.createContext("MediaElement"),poster:f});w.on("buffer state",k=>this.emitter.emit("buffer state",k)),w.on("needs user input",k=>this.emitter.emit("needs user input",k)),w.on("volume state",k=>this.emit("volume state",k)),w.on("media element state",k=>this.onMediaElementState(k)),this.element=w.element,this.playbackSource=w,CQ.isSupported()&&this.encryptedMediaExtensions.attach(w.element),G=Ja.create(this.logger.createContext("MseModule"),this.emitter,this.element),this.options.get("pauseSupportEnabled")||(b=wo.create(this.logger.createContext("UnpauseModule"),w,m)),this.options.get("pictureInPictureEnabled")&&this.emitter.emit("add picture in picture listener",{element:w.element})}else if(this.browser.platform.iosVersion>=15&&this.options.get("iosMediaElementEnabled")&&this.browser.supportsCanvasCaptureStream){const w=La.create(this.emitter,this.logger.createContext("ModernCanvasModule"),this.pool,this,{type:this.options.get("media")=="audio"?"audio":"video",muted:this.options.get("muted")||this.options.get("media")==="video",volume:this.options.get("volume"),poster:f}),k=w.element();this.element=k.element,this.playbackSource=w,R=w,this.options.get("pictureInPictureEnabled")&&this.browser.platform.iosVersion>15&&this.emitter.emit("add picture in picture listener",{element:this.element}),this.options.get("pauseSupportEnabled")||(b=wo.create(this.logger.createContext("UnpauseModule"),k,m))}else{const w=ba.create(this.emitter,this.logger.createContext("LegacyCanvasModule"),this.pool,this,this.options.get("muted")||this.options.get("media")==="video",this.options.get("volume"));this.element=w.element(),this.playbackSource=w,R=w,this.options.get("iosWakeLockEnabled")&&(this.wakeLock=new Gd)}this.emitter.on("channel reset",this.resetModules),this.emitter.on("no data timeout",this.resetModules),this.emitter.on("media element state",w=>this.onMediaElementState(w)),this.emitter.on("volume state",w=>this.emit("volume state",w)),this.options.get("pauseSupportEnabled")||this.emitter.on("exit picture in picture",()=>n.setTimeout(()=>this.play(),0)),this.emitter.on("constraint cap changed",w=>{this.logger.info("new cap set",{cap:w}),this.alignSizeAndBitRate(this.targetSubscription)}),this.pictureInPicture={enter:()=>o.requestPictureInPicture(),exit:()=>o.exitPictureInPicture(),isActive:()=>o.isPictureInPictureActive(),isSupported:()=>o.isPictureInPictureSupported()},this.emitter.on("error",w=>{if(w.type()==="external"&&this.emit("error",w),w.isFatal())return()=>{this.unload()}});const v=this.browser.platform.isWebKit,P=Ta.create(this.emitter,this.logger.createContext("SyncModule"),this.playbackSource,d,this.willUseMediaSource()&&!v),_=Ga.create(this.logger.createContext("JitterModule")),T=(this.options.get("edgeUrl")||this.options.get("url")).replace("wss://","https://").replace("ws://","http://").replace("//lb.","//errors."),kA=new URL("/telemetry",T).toString(),aA=uo.create(this.logger.createContext("TelemetryModule"),this.emitter,{url:kA,enabled:this.options.get("telemetryEnabled"),includeStats:!1,interval:5e3},this);this.modules={telemetry:aA,bufferTime:ia.create(this.emitter,this.logger.createContext("BufferTimeModule"),h,this,{maxBufferTime:this.options.get("maxBufferTime"),minBufferTime:this.options.get("minBufferTime")}),incomingData:ka.create(this.emitter),adaptivity:ea.create(this.emitter,this.logger.createContext("AdaptivityModule"),h,{cooldownTime:Math.max(this.options.get("minBufferTime"),2e3)}),constraintCap:ya.create(this.emitter,this.element,E,this.options.get("abrEnabled")?this.options.get("sizeBasedResolutionCapEnabled"):!1),event:Fa.create(this.emitter,this.logger.createContext("EventModule"),P),sync:P,jitter:_,documentState:m,connection:a,playback:d,pictureInPicture:o,timer:n,subscription:Q,renditions:E,qualityOfService:h,mseModule:G,unpause:b,canvasModule:R},this.modules.adaptivity.isEnabled=this.options.get("abrEnabled"),this.emitter.on("page active",w=>{var k;w&&typeof this.disconnectTimeout=="number"&&(this.modules.timer.clearInterval(this.disconnectTimeout),this.disconnectTimeout=void 0),w?this.playbackSource.isPaused||(this.logger.debug("Unsuspending"),this.unsuspend()):(this.logger.debug("Suspending"),this.suspend(),this.modules.decoder?this.options.get("iosBackgroundPlayEnabled")?(this.modules.decoder.unsuspend(),(k=this.modules.canvasModule)==null||k.unsuspend()):this.modules.connection.disconnect():(this.disconnectTimeout&&this.modules.timer.clearInterval(this.disconnectTimeout),this.disconnectTimeout=this.modules.timer.setInterval(()=>{const IA=this.playbackState==="paused"||this.muted;this.connectionState==="connected"&&IA&&(this.emitter.emit("flush buffers"),this.modules.connection.disconnect("Page inactive timeout"))},Qe.DISCONNECT_TIMEOUT)))});let mA;this.emitter.on("context switch complete",()=>{mA||(mA=window.setTimeout(()=>{window.clearTimeout(mA),mA=void 0,this.emit("context switch","completed"),this.emitLanguagesIfChanged()},this.targetBufferTime))}),this.emitter.on("context switch started",()=>this.emit("context switch","started")),this.emitter.on("needs user input",w=>this.emit("needs user input",w)),this.emitter.on("event",w=>{switch(w.type){case"metadata":this.emit("metadata",w);break;case"channel switch":this.emit("channel switch",{channelId:w.channelId});break;case"language switch":this.emit("language switch",{language:w.language});break}}),this.emitter.on("buffer state event",this.onBufferEvent),this.emitter.on("playback state",w=>this.emit("playback state",w)),this.emitter.on("rendition level changed",({to:w})=>{w&&this.emit("rendition level",w)}),this.emitter.on("connection state",w=>{this.emit("connection state",w)}),this.emitter.on("recovered from media error",()=>{this.modules.adaptivity.reset(this.targetBufferTime*2)}),this.emitter.once("connect info",w=>{var X,K,$;const IA=((K=(X=w.telemetry)==null?void 0:X.probability)!=null?K:1)>=Math.random();w.telemetry&&(($=this.modules.telemetry)==null||$.unload(),this.modules.telemetry=uo.create(this.logger.createContext("TelemetryModule"),this.emitter,z(D({},w.telemetry),{enabled:this.options.get("telemetryEnabled")&&IA}),this),this.modules.telemetry.load())}),this.emitter.on("adapt level",w=>{var U,M,V,CA,W;this.logger.debug("adapt level",{direction:w});const k=this.modules.renditions.getRenditionLevels(),IA=this.modules.renditions.getRenditionLevel(),X=k.findIndex(Z=>Z===IA),K=k.length-1;let $=X;switch(w){case"upgrade":{const Z=Math.min(X+1,K),VA=k[Z],wg=(U=this.modules.connection.estimatedBandwidth)!=null?U:le(),fB=((V=(M=VA==null?void 0:VA.audio)==null?void 0:M.bitRate)!=null?V:0)+((W=(CA=VA==null?void 0:VA.video)==null?void 0:CA.bitRate)!=null?W:0),Wi=wg*2>fB;VA&&Wi&&this.modules.adaptivity.isQoSOk(VA)&&($=Z)}break;case"downgrade":$=Math.max(X-1,0);break;case"double downgrade":$=Math.max(X-2,0);break;case"reconnect":if(X===0||this.modules.qualityOfService.timeSpentBufferingLast(6e3)>5e3){if(!this.modules.connection.lastConnectionTime||Date.now()-this.modules.connection.lastConnectionTime<this.modules.qualityOfService.fatalQosGraceTime()||this.modules.connection.getState()!=="connected")return;this.modules.qualityOfService.incrementFatalQosCount(),this.logger.info("Reconnecting due to poor qos"),this.modules.connection.reconnect("Fatal QOS"),this.emitter.emit("adapted level");return}else $=0}if($===X)return;const oA=k[$];this.alignSizeAndBitRate(z(D({},this.targetSubscription),{video:D(D({},this.targetSubscription.video),oA==null?void 0:oA.video),audio:D(D({},this.targetSubscription.audio),oA==null?void 0:oA.audio)})),this.emitter.emit("adapted level")}),this.emitter.on("text track data",w=>{const k=s(this,it).find($=>$.language===w.language),X=this.modules.sync.getTimeshiftOffset()/1e3,K=X-s(this,Pi);if(r(this,Pi,X),k){if(k.cues)for(const $ of k.cues)$.startTime-=K,$.endTime-=K;for(const $ of w.cues){const oA=new VTTCue($.startTime-X,$.endTime-X,$.text);k.addCue(oA)}}}),this.emitter.on("received signal",w=>{var X;const k=w,IA=this.modules.subscription.getCurrentSubscription();switch(this.logger.debug("received",D({},k)),k.type){case"client ip":this.clientIp=k.ip;break;case"renditions":this.updateTextTracks(k.renditions),r(this,xi,this.filterRenditions(k.renditions).then(K=>{this.emitter.emit("renditions",{renditions:K,channelId:this.currentSubscription.channelId}),this.emit("rendition levels",this.modules.renditions.getRenditionLevels()),this.emitLanguagesIfChanged()}).finally(()=>{r(this,xi,void 0)}));break;case"subscription changed":try{zu(k.subscription)}catch(K){this.emitter.emit("error",new O("Subscription failed validation",{source:K instanceof Error?K:void 0,isFatal:!1,code:"subscription_failed_validation"}))}this.emitter.emit("subscription changed",{reset:k.reset,to:k.subscription,from:this.modules.subscription.getCurrentSubscription()}),k.reset&&IA.channelId!==k.subscription.channelId&&(this.emit("error",gQ(k.subscription.channelId)),this.emit("channel switch failed",{channelId:IA.channelId})),this.modules.sync.allowTimeshiftOnAudio=!((X=k.subscription.video)!=null&&X.codec),this.modules.adaptivity.reset();break;case"timing info":this.modules.sync.updateChannelSyncInfo(k.timingInfo.channelId,k.timingInfo),this.emit("server wallclock time",k.timingInfo.wallclockTime);break}}),this.emitter.on("channel switch timeout",w=>{this.emit("error",gQ(w)),this.emit("channel switch failed",{channelId:this.currentSubscription.channelId})}),this.emitter.on("received data",w=>{const k=this.modules.subscription.getCurrentSubscription(),IA=Fd(w);if(!k){this.logger.warn("Received unwanted message",D({},IA));return}HA(z(D({},IA),{channelId:k.channelId}))}),this.emitter.on("received moq data",w=>{var $,oA,U;const k=w.payload.mediaType(),IA=w.channelId,X=w.renditionId,K=this.modules.sync.processFragment(IA,w.payload);if(k!=="text"&&this.modules.jitter.recordSample({type:k,renditionId:X,timestamp:K.baseMediaDecodeTime(),timescale:K.timescale()}),w.switchInfo.channelId&&(w.switchInfo.drmTransition&&this.emitter.emit("error",sQ("Switching between DRM and non-DRM channels is not supported",!0)),this.encryptedMediaExtensions.onChannelSwitch(),this.emit("rendition levels",this.modules.renditions.getRenditionLevels()),this.modules.event.addEvent({type:"channel switch",channelId:w.switchInfo.channelId,timestamp:K.baseMediaDecodeTime()/K.timescale()*1e3})),w.switchInfo.language&&this.modules.event.addEvent({type:"language switch",language:w.switchInfo.language,timestamp:K.baseMediaDecodeTime()/K.timescale()*1e3}),this.modules.incomingData.add(k,w.payload.rawBytes().byteLength),K.fragment().emsgs.forEach(M=>{if(!M.presentationTime)return;const V=$c(M.data);V&&this.modules.event.addEvent({id:M.id,timestamp:M.presentationTime/M.timescale*1e3-this.modules.sync.getTimeshiftOffset(),content:V.txx.value,type:"metadata"})}),this.modules.decoder){const M=($=K.header().init().moov.traks[0])==null?void 0:$.mdia.minf.stbl.stsd,V=(oA=M==null?void 0:M.avc1)==null?void 0:oA.avcC.bytes,CA=(U=M==null?void 0:M.codec)!=null?U:"h264";if(V){const W=V.buffer.slice(V.byteOffset,V.byteOffset+V.byteLength);if(k==="text")throw new Error("Subtitles are not supported");this.emitter.emit("init segment",{initSegment:{channelId:IA,renditionId:X,data:W,timescale:1e3,type:k,codec:CA},mimeType:k})}for(let W=0;W<K.samplesCount();W++){const Z=K.sample(W);Z&&this.emitter.emit("coded sample",z(D({},Z),{renditionId:X,channelId:IA,data:Z.data.buffer.slice(Z.data.byteOffset,Z.data.byteOffset+Z.data.byteLength)}))}}else this.emitter.emit("fragment",{mimeType:w.mimeType,codec:w.codec,fragment:K,channelId:IA,renditionId:X})});const It=this.options.get("container");It&&this.attach(It),this.logger.info("Created Vindral instance",{options:this.options});const HA=w=>c(this,null,function*(){const k=w.channelId;s(this,xi)&&(yield s(this,xi));const IA=this.modules.renditions.getRendition(w.renditionId,k);if(!yd(w.flags)){if(fd(w.flags)){const K=new TextDecoder().decode(w.payload),$=this.modules.sync.getTimeshiftOffset();if(w.renditionId!==0){const oA=vC(K);if(oA&&oA.language!==void 0){const M=new yQ().parse(oA.content||""),V=$/1e3,CA=s(this,it).find(Z=>Z.language===oA.language),W=V-s(this,Pi);if(r(this,Pi,V),CA){if(CA.cues)for(const Z of CA.cues)Z.startTime-=W,Z.endTime-=W;for(const Z of M){const VA=new VTTCue(Z.startTime-V,Z.endTime-V,Z.text);CA.addCue(VA)}}}}else this.modules.event.addEvent({timestamp:w.timestamp/w.timescale*1e3-this.modules.sync.getTimeshiftOffset(),content:K,type:"metadata"})}else if(IA!=null&&IA.codec){const X=qn(IA.codec);if(X==="text")throw new Error("Subtitles are not supported");if(this.modules.incomingData.add(X,w.payload.byteLength),Sd(w.flags)){const K=z(D({type:X,data:w.payload,codec:IA.codec},w),{channelId:k}),$=dd(K.codec,K.payload);$&&this.sizes.set(K.renditionId,$);const oA=de({codec:IA.codec,codecString:IA.codecString});this.emitter.emit("init segment",{initSegment:K,mimeType:oA}),this.emit("initialized media")}else{const K=Xu(w,IA,this.sizes.get(w.renditionId));this.modules.jitter.recordSample(K);let $=this.sampleProcessingSesssions.get(X);if(!$)$=Zu(this.modules.sync.processSample(K)),this.sampleProcessingSesssions.set(X,$);else{const oA=$(this.modules.sync.processSample(K),this.isSwitchingRenditionLevel&&K.type==="video");let U=K;oA.forEach(M=>{this.modules.event.extractEvent(M,U),this.emitter.emit("coded sample",M),U=M})}}}}});this.options.get("maxVideoBitRate")!==Number.MAX_SAFE_INTEGER&&(this.maxVideoBitRate=this.options.get("maxVideoBitRate")),this.options.get("maxAudioBitRate")!==Number.MAX_SAFE_INTEGER&&(this.maxAudioBitRate=this.options.get("maxAudioBitRate")),tI(this.options.get("maxSize"),bB())||(this.maxSize=this.options.get("maxSize")),this.options.get("burstEnabled")&&Q.enableBurst(this.targetBufferTime)}set volume(t){this.playbackSource.volume=t}get volume(){return this.playbackSource.volume}set muted(t){if(t===this.muted)return;const e=this.playbackSource.muted;this.playbackSource.muted=t,!t&&e&&!this.playbackSource.isPaused&&this.playbackSource.play()}get muted(){return this.playbackSource.muted}get media(){return this.options.get("media")}get videoBitRate(){return this.modules.incomingData.averageBitRate("video")}get audioBitRate(){return this.modules.incomingData.averageBitRate("audio")}get connectionState(){return this.modules.connection.getState()}get playbackState(){return this.modules.playback.getState()}get bufferFullness(){return this.modules.playback.getBufferFullness()}get sizeBasedResolutionCapEnabled(){return this.modules.constraintCap.sizeBasedResolutionCapEnabled}set sizeBasedResolutionCapEnabled(t){this.modules.constraintCap.sizeBasedResolutionCapEnabled=t}get abrEnabled(){return this.modules.adaptivity.isEnabled}set abrEnabled(t){this.modules.constraintCap.sizeBasedResolutionCapEnabled=t?this.options.get("sizeBasedResolutionCapEnabled"):!1,this.modules.adaptivity.isEnabled=t,this.alignSizeAndBitRate(this.targetSubscription)}get serverEdgeTime(){return this.modules.sync.getLiveEdgeTimeLatencyAdjusted(this.currentSubscription.channelId)}get serverWallclockTime(){return this.modules.sync.getWallclockTimeLatencyAdjusted(this.currentSubscription.channelId)}get currentTime(){return this.modules.sync.serverCurrentTime}get channelCurrentTime(){return this.modules.sync.channelCurrentTime}get targetBufferTime(){return this.modules.playback.getTargetBufferTime()}set targetBufferTime(t){this.modules.playback.getTargetBufferTime()!==t&&(this.modules.playback.setTargetBufferTime(t),this.playbackSource.currentTime=this.modules.sync.serverCurrentTime,this.options.get("burstEnabled",this.channelId)?this.modules.subscription.enableBurst(this.targetBufferTime):this.modules.subscription.enableBurst(0))}get playbackLatency(){var t;if(this.playbackSource.currentTime!==0)return this.targetBufferTime+((t=this.modules.sync.drift)!=null?t:0)+this.modules.connection.rtt/2}get playbackWallclockTime(){if(!(!this.serverWallclockTime||!this.playbackLatency))return this.serverWallclockTime-this.playbackLatency}get channels(){return this._channels}get languages(){return this.modules.renditions.getLanguages()}get language(){return this.modules.subscription.getTargetSubscription().audio.language}set language(t){if(t===this.language)return;const e=this.languages;if(t!==void 0&&e.length>0&&!e.includes(t)){this.logger.warn(`Language "${t}" is not available. Available languages: ${e.join(", ")}`);return}this.modules.subscription.setLanguage(t),this.alignSizeAndBitRate(this.targetSubscription)}set textTrack(t){t!==this.textTrack&&(s(this,it).forEach(e=>{if(e.label===t)e.mode="showing";else{if(e.mode==="showing"&&e.cues)for(const g of[...e.cues])e.removeCue(g);e.mode="hidden"}}),this.emitter.emit("text track",t))}get textTracks(){return s(this,it).filter(t=>t.mode!=="disabled").map(t=>t.label)}get textTrack(){var t;return(t=s(this,it).find(e=>e.mode==="showing"))==null?void 0:t.label}get channelId(){var t,e;return(e=(t=this.modules)==null?void 0:t.subscription.getTargetSubscription().channelId)!=null?e:this.options.get("channelId")}set channelId(t){if(t===this.channelId)return;this.modules.subscription.setChannelId(t);const e=this.options.get("media")==="audio"?[]:this.options.get("videoCodecs"),g=this.modules.renditions.getAudioRenditions(t),B=this.modules.renditions.getVideoRenditions(t),o=this.targetSubscription.audio.language,n=g==null?void 0:g.some(Q=>Q.language===o),a=e.find(Q=>(B==null?void 0:B.find(E=>E.codec===Q))!==void 0);a&&this.modules.subscription.setVideoCodec(a),this.logger.debug("Channel switch - started",{audioRenditions:g,targetSubscriptionLanguage:o,targetHasCurrentLanguage:n}),this.alignSizeAndBitRate(this.targetSubscription)}get maxSize(){var g,B;const{width:t,height:e}=(B=(g=this.modules.constraintCap.getCurrentConstraintCap())==null?void 0:g.video)!=null?B:bB();return{width:t,height:e}}set maxSize(t){this.modules.constraintCap.setUserSpecifiedCap({video:{width:t.width,height:t.height}}),this.alignSizeAndBitRate(this.targetSubscription)}get maxVideoBitRate(){var t,e;return(e=(t=this.modules.constraintCap.getCurrentConstraintCap())==null?void 0:t.video.bitRate)!=null?e:le()}set maxVideoBitRate(t){this.modules.constraintCap.setUserSpecifiedCap({video:{bitRate:t}}),this.alignSizeAndBitRate(this.targetSubscription)}get maxAudioBitRate(){var t,e;return(e=(t=this.modules.constraintCap.getCurrentConstraintCap())==null?void 0:t.audio.bitRate)!=null?e:le()}set maxAudioBitRate(t){this.modules.constraintCap.setUserSpecifiedCap({audio:{bitRate:t}}),this.alignSizeAndBitRate(this.targetSubscription)}get renditionLevels(){return this.modules.renditions.getRenditionLevels()}get currentRenditionLevel(){return this.modules.renditions.getRenditionLevel()}get targetRenditionLevel(){return this.modules.renditions.getRenditionLevel(this.modules.subscription.getTargetSubscription())}get isSwitchingRenditionLevel(){return this.modules.subscription.isSwitchingSubscription()}get videoBufferedRanges(){var t,e,g,B;return(B=(g=(t=this.modules.mseModule)==null?void 0:t.getBuffer("video"))!=null?g:(e=this.modules.decoder)==null?void 0:e.getBuffer("video"))!=null?B:[]}get audioBufferedRanges(){var t,e,g,B;return(B=(g=(t=this.modules.mseModule)==null?void 0:t.getBuffer("audio"))!=null?g:(e=this.modules.decoder)==null?void 0:e.getBuffer("audio"))!=null?B:[]}getApiClient(){return this.modules.connection.apiClient}get lastBufferEvent(){return this.modules.playback.getLastBufferStateEvent()}get activeRatios(){return this.modules.qualityOfService.activeRatios()}get bufferingRatios(){return this.modules.qualityOfService.bufferingRatios()}get timeSpentBuffering(){return this.modules.qualityOfService.timeSpentBuffering()}get timeActive(){return this.modules.qualityOfService.timeActive()}get mediaElement(){return this.element}get audioNode(){var t;return(t=this.modules)!=null&&t.canvasModule?this.modules.canvasModule.audioNode:void 0}get drmStatistics(){var t;return(t=this.encryptedMediaExtensions)==null?void 0:t.getStatistics()}get uptime(){return Date.now()-this.createdAt}suspend(){this.isSuspended||(Object.values(this.modules).forEach(t=>{t&&"suspend"in t&&t.suspend()}),this.isSuspended=!0)}unsuspend(){this.isSuspended&&(Object.values(this.modules).forEach(t=>{t&&"unsuspend"in t&&t.unsuspend()}),this.isSuspended=!1)}alignSizeAndBitRate(t){const e=this.modules.constraintCap.constrainSubscription(z(D({},t),{video:D({},t.video),audio:D({},t.audio)})),g=this.modules.constraintCap.getUserSpecifiedCap();!this.abrEnabled&&g&&(e.audio.bitRate=g.audio.bitRate,e.video.bitRate=g.video.bitRate,e.video.width=g.video.width,e.video.height=g.video.height);const B=this.modules.renditions.getRenditionLevel(e);if(B){if(B.video&&(this.modules.subscription.setVideoBitRate(B.video.bitRate),this.modules.subscription.setSize(B.video)),B.audio)this.modules.subscription.setAudioBitRate(B.audio.bitRate),this.modules.subscription.setLanguage(B.audio.language);else if(e.audio.language){let o=this.modules.renditions.getAudioRenditions(e.channelId);!this.abrEnabled&&g&&(o=o==null?void 0:o.filter(h=>h.bitRate<g.audio.bitRate));const n=e.audio.language,a=o==null?void 0:o.some(h=>h.language===n),Q=o==null?void 0:o.find(h=>h.language),E=(o==null?void 0:o.length)&&o[0]||void 0;a||(Q?(this.logger.debug("Randomizing language since target did not have current language"),this.modules.subscription.setAudioBitRate(Q.bitRate),this.modules.subscription.setLanguage(Q.language)):(this.logger.debug("Randomizing audio rendition since target did not have current language"),E!=null&&E.bitRate&&this.modules.subscription.setAudioBitRate(E.bitRate),this.modules.subscription.setLanguage(E==null?void 0:E.language)))}}}get currentSubscription(){return this.modules.subscription.getCurrentSubscription()}get targetSubscription(){return this.modules.subscription.getTargetSubscription()}willUseMediaSource(){return this.browser.supportsMediaSource&&this.options.get("mseEnabled")}};Pi=new WeakMap,it=new WeakMap,xi=new WeakMap,I(Qe,"MAX_POOL_SIZE",10),I(Qe,"DISCONNECT_TIMEOUT",15*1e3),I(Qe,"REMOVE_CUE_THRESHOLD",1e3*10);let Do=Qe;const ur={bar:"_bar_qm7bl_1",hidden:"_hidden_qm7bl_47"},bg={"channel-selection-item":"_channel-selection-item_suenn_1","channel-selection-item-selected":"_channel-selection-item-selected_suenn_8","channel-selection-item-image":"_channel-selection-item-image_suenn_13",withThumbnails:"_withThumbnails_suenn_19","hide-on-small":"_hide-on-small_suenn_27"},_u={"icon-button":"_icon-button_5fg7v_1"},wr={enter:{viewBox:"-12 -12 38 38",content:`<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(-5.000000, -5.000000)">
|
|
48
|
+
`,FC={width:256,codedWidth:256,height:144,codedHeight:144},kC={preserveDrawingBuffer:!1,alpha:!1,depth:!1,stencil:!1,antialias:!1,premultipliedAlpha:!1},yt=class yt extends ie{constructor(){super();s(this,"canvas",document.createElement("canvas"));s(this,"context",DC(this.canvas,kC));s(this,"pixelShader",os(this.context,this.context.FRAGMENT_SHADER,pC));s(this,"vertexShader",os(this.context,this.context.VERTEX_SHADER,yC));s(this,"buffer",SC(this.context,yt.SQUARE_VERTICES));s(this,"program",ja(this.context,this.vertexShader,this.pixelShader));s(this,"textures",{y:ii(this.context),u:ii(this.context),v:ii(this.context)});s(this,"textRenderer");s(this,"size",FC);s(this,"modelLocation",null);s(this,"conversionLocation",null);s(this,"cachedScaleX",0);s(this,"cachedScaleY",0);s(this,"cachedTransformMatrix",null);s(this,"texturesNeedRealloc",!0);s(this,"onContextLost",e=>{this.textRenderer=void 0;const t=new Error(e instanceof WebGLContextEvent?e.statusMessage:"webgl context lost");this.emit("context lost",wh(t)),e.preventDefault()});s(this,"onContextRestored",()=>{this.emit("context restored"),this.context=DC(this.canvas,kC),this.pixelShader=os(this.context,this.context.FRAGMENT_SHADER,pC),this.vertexShader=os(this.context,this.context.VERTEX_SHADER,yC),this.buffer=SC(this.context,yt.SQUARE_VERTICES),this.program=ja(this.context,this.vertexShader,this.pixelShader),this.textures={y:ii(this.context),u:ii(this.context),v:ii(this.context)},this.load()});s(this,"load",()=>{this.context.useProgram(this.program),this.setupPositionVertexAttributes(),this.texturesNeedRealloc=!0,this.setSize(FC),this.modelLocation=this.context.getUniformLocation(this.program,"model"),this.conversionLocation=this.context.getUniformLocation(this.program,"conversion"),this.context.uniform1i(this.context.getUniformLocation(this.program,"y_texture"),0),this.context.uniform1i(this.context.getUniformLocation(this.program,"u_texture"),1),this.context.uniform1i(this.context.getUniformLocation(this.program,"v_texture"),2),this.setConversionMatrix(yt.REC709)});s(this,"unload",()=>{var t;this.setSize({width:1,height:1,codedHeight:1,codedWidth:1}),[this.textures.y,this.textures.u,this.textures.v].forEach(g=>this.context.deleteTexture(g)),this.context.deleteShader(this.pixelShader),this.context.deleteShader(this.vertexShader),this.context.deleteProgram(this.program),this.context.deleteBuffer(this.buffer),this.canvas.removeEventListener("webglcontextlost",this.onContextLost),this.canvas.removeEventListener("webglcontextrestored",this.onContextRestored),(t=this.context.getExtension("WEBGL_lose_context"))==null||t.loseContext()});s(this,"resetSize",()=>{this.setSize({width:this.size.width/2,height:this.size.height/2,codedHeight:this.size.codedHeight/2,codedWidth:this.size.codedWidth/2})});s(this,"render",(e,t)=>{if(this.context.useProgram(this.program),this.setSize({width:e.width,height:e.height,codedWidth:e.codedWidth,codedHeight:e.codedHeight}),this.setModelMatrix(this.size.width/this.size.codedWidth,this.size.height/this.size.codedHeight),this.context.activeTexture(this.context.TEXTURE0),this.updateTexture(this.textures.y,this.size.codedWidth,this.size.codedHeight,e.data[0]),this.context.activeTexture(this.context.TEXTURE1),this.updateTexture(this.textures.u,this.size.codedWidth/2,this.size.codedHeight/2,e.data[1]),this.context.activeTexture(this.context.TEXTURE2),this.updateTexture(this.textures.v,this.size.codedWidth/2,this.size.codedHeight/2,e.data[2]),this.texturesNeedRealloc=!1,this.context.drawArrays(this.context.TRIANGLE_STRIP,0,4),this.textRenderer){const g=t.style.getPropertyValue("--vindral-subtitle-offset")||t.style.getPropertyValue("--vindral-control-bar-offset"),n=parseInt(g||"0",10),o=Number.isNaN(n)?0:-n;this.textRenderer.render({canvasWidth:this.size.width,canvasHeight:this.size.height,containerWidth:t.clientWidth||this.canvas.clientWidth||this.size.width,bottomPadding:o})}});s(this,"updateTexture",(e,t,g,n)=>{const a=this.context.LUMINANCE,B=this.context.UNSIGNED_BYTE;this.context.bindTexture(this.context.TEXTURE_2D,e),this.texturesNeedRealloc?this.context.texImage2D(this.context.TEXTURE_2D,0,a,t,g,0,a,B,n):this.context.texSubImage2D(this.context.TEXTURE_2D,0,0,0,t,g,a,B,n)});s(this,"setupPositionVertexAttributes",()=>{const e=this.context.getAttribLocation(this.program,"position");this.context.enableVertexAttribArray(e),this.context.vertexAttribPointer(e,2,this.context.FLOAT,!1,0,0)});s(this,"setSize",e=>{e.width===this.size.width&&e.height===this.size.height&&e.codedWidth===this.size.codedWidth&&e.codedHeight===this.size.codedHeight||(this.size=e,this.texturesNeedRealloc=!0,this.canvas.setAttribute("width",e.width.toString()),this.canvas.setAttribute("height",e.height.toString()),this.context.viewport(0,0,e.width,e.height),this.setModelMatrix(e.width/e.codedWidth,e.height/e.codedHeight))});s(this,"setModelMatrix",(e,t)=>{(this.cachedScaleX!==e||this.cachedScaleY!==t||!this.cachedTransformMatrix)&&(this.cachedScaleX=e,this.cachedScaleY=t,this.cachedTransformMatrix=this.transformMatrix(e,t)),this.context.uniformMatrix4fv(this.modelLocation,!1,this.cachedTransformMatrix)});s(this,"setConversionMatrix",e=>{this.context.uniformMatrix4fv(this.conversionLocation,!1,e)});s(this,"transformMatrix",(e,t)=>[2/e,0,0,0,0,-2/t,0,0,0,0,2/1,0,-1,1,0,1]);this.canvas.addEventListener("webglcontextlost",this.onContextLost),this.canvas.addEventListener("webglcontextrestored",this.onContextRestored,!1),Va(this.canvas)}getTextRenderer(){return this.textRenderer||(this.textRenderer=new fh(this.context)),this.textRenderer}};s(yt,"SQUARE_VERTICES",new Float32Array([0,0,0,1,1,0,1,1])),s(yt,"REC709",[1.16438,0,1.79274,-.97295,1.16438,-.21325,-.53291,.30148,1.16438,2.1124,0,-1.1334,0,0,0,1]),s(yt,"REC601",[1.16438,0,1.59603,-.87079,1.16438,-.39176,-.81297,.52959,1.16438,2.01723,0,-1.08139,0,0,0,1]);let za=yt;class Yn{constructor(A,e,t,g){s(this,"keySystem");s(this,"licenseServerUrl");s(this,"certificate");s(this,"headers",{});s(this,"queryParams",{});r(this,Qi);r(this,Ei);E(this,Qi,e),this.keySystem=A,this.licenseServerUrl=t,this.certificate=g}get statistics(){return{keySystem:I(this,Qi).keySystem,licenseServerUrl:this.licenseServerUrl,mediaKeySystemConfiguration:I(this,Qi).getConfiguration()}}getMediaKeys(){return c(this,null,function*(){return I(this,Ei)?I(this,Ei):(E(this,Ei,yield I(this,Qi).createMediaKeys()),I(this,Ei))})}requestLicense(A){return c(this,null,function*(){const e=new URL(this.licenseServerUrl);for(const[n,o]of Object.entries(this.queryParams))e.searchParams.append(n,o);const t=yield fetch(e,{method:"POST",body:A,headers:f({"Content-Type":"application/octet-stream"},this.headers)});if(!t.ok)throw new Error(`Failed to fetch license: ${t.statusText}`);return yield t.arrayBuffer()})}}Qi=new WeakMap,Ei=new WeakMap;function RC(i){const A=window.atob(i.replace(/-/g,"+").replace(/_/g,"/"));let e="";for(let t=0;t<A.length;t++)e+=("0"+A.charCodeAt(t).toString(16)).substr(-2);return e}function Dh(i){let A="";for(let e=0;e<i.length;e+=2)A+=String.fromCharCode(parseInt(i.substr(e,2),16));return window.btoa(A).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function Sh(i,A){if(i.byteLength!==A.byteLength)return!1;const e=new Uint8Array(i),t=new Uint8Array(A);for(let g=0;g<e.length;g++)if(e[g]!==t[g])return!1;return!0}class ph extends Yn{constructor(e,t){super("clearkey",e,"");r(this,Vg);E(this,Vg,t)}handleLicenseRequest(e){const t=new Uint8Array(e),g=String.fromCharCode(...t),n=JSON.parse(g),o=[];for(let C=0;C<n.kids.length;C++){const Q=n.kids[C];if(Q){const h=RC(Q).toLowerCase(),d=I(this,Vg)[h];d&&o.push({kty:"oct",alg:"A128KW",kid:Q,k:Dh(d)})}}const a=JSON.stringify({keys:o,type:n.type});return new TextEncoder().encode(a)}}Vg=new WeakMap;const GC={playready:["150","2000","3000"],widevine:["SW_SECURE_CRYPTO","SW_SECURE_DECODE","HW_SECURE_CRYPTO","HW_SECURE_DECODE","HW_SECURE_ALL"],fairplay:[""],clearkey:[""]},_a={initDataTypes:["cenc"],audioCapabilities:[{contentType:'audio/mp4; codecs="mp4a.40.2"'}],videoCapabilities:[{contentType:'video/mp4; codecs="avc1.42c01f"'}]},yh={fairplay:{keySystem:"com.apple.fps",supportedConfig:{initDataTypes:["sinf"],videoCapabilities:[{contentType:'video/mp4; codecs="avc1.42c01f"'}]}},playready:{keySystem:"com.microsoft.playready",supportedConfig:_a},widevine:{keySystem:"com.widevine.alpha",supportedConfig:_a},clearkey:{keySystem:"org.w3.clearkey",supportedConfig:_a}},UC=(i,A)=>c(null,null,function*(){return navigator.requestMediaKeySystemAccess(i,[A]).catch(()=>{})}),bC=(i,A,e,t,g,n)=>c(null,null,function*(){let o;for(const a of t){const B=e==null?void 0:e.map(Q=>V(f({},Q),{robustness:a,contentType:n?`${g==="audioCapabilities"?"audio/mp4":"video/mp4"}; codecs="${n}"`:Q.contentType}));if(!(yield UC(i,{initDataTypes:A,[g]:B})))break;o=B}return o}),Fh=(i,A,e,t)=>c(null,null,function*(){const{keySystem:g,supportedConfig:n}=yh[i],{initDataTypes:o,videoCapabilities:a,audioCapabilities:B}=n,C=t==null?void 0:t[i],Q=(C==null?void 0:C.videoRobustness)||GC[i],h=(C==null?void 0:C.audioRobustness)||GC[i],[d,u]=yield Promise.all([bC(g,o,a,Q,"videoCapabilities",A),bC(g,o,B,h,"audioCapabilities",e)]);return!d&&!u?void 0:yield UC(g,{initDataTypes:o,videoCapabilities:d,audioCapabilities:u})}),kh=(i,A,e,t)=>c(null,null,function*(){let g;for(const n of i)if(g=yield Fh(n,A,e,t),g)return{keySystem:n,mediaKeySystemAccess:g}});class Rh extends Yn{constructor(A,e,t){super("fairplay",A,e,t)}}const Gh=i=>{var a,B,C,Q;const A=String.fromCharCode(...new Uint16Array(i)),e=new window.DOMParser().parseFromString(A,"application/xml"),t=e.getElementsByTagName("HttpHeaders")[0];let g={};if(t){const h=t.getElementsByTagName("name"),d=t.getElementsByTagName("value");for(let u=0;u<h.length;u++){const m=(a=h[u])==null?void 0:a.childNodes[0],p=(B=d[u])==null?void 0:B.childNodes[0];m!=null&&m.nodeValue&&p&&p.nodeValue&&(g[m.nodeValue]=p.nodeValue)}}const n=e.getElementsByTagName("Challenge")[0];let o;return n&&((C=n.childNodes[0])!=null&&C.nodeValue)&&(o=window.atob((Q=n.childNodes[0])==null?void 0:Q.nodeValue)),e.querySelector("parsererror")&&(g={"Content-Type":"text/xml; charset=utf-8",SOAPAction:'"http://schemas.microsoft.com/DRM/2007/03/protocols/AcquireLicense"'},o=i),{headers:g,message:o}};class Uh extends Yn{constructor(A,e){super("playready",A,e)}requestLicense(A){return c(this,null,function*(){lA(this.licenseServerUrl,"No license server URL set");const e=new URL(this.licenseServerUrl);for(const[n,o]of Object.entries(this.queryParams))e.searchParams.append(n,o);const t=Gh(A),g=yield fetch(e,{method:"POST",headers:f(f({},t.headers),this.headers),body:t.message});if(!g.ok)throw new Error(`Failed to fetch license: ${g.statusText}`);return yield g.arrayBuffer()})}}class bh extends Yn{constructor(A,e){super("widevine",A,e)}}const Nh=5e3;class NC{constructor(A,e,t={}){r(this,wA);r(this,iA);r(this,ci);r(this,tt);r(this,pe,new _);r(this,Ke);r(this,UA);r(this,Ft,new Map);r(this,kt);r(this,Jo,qa());r(this,hs);r(this,Zg,A=>{if(I(this,iA).info("Received DRM data",{drmData:A}),window.clearTimeout(I(this,hs)),I(this,UA)){const e=l(this,wA,UE).call(this,A)[I(this,UA).keySystem];e&&(I(this,UA).licenseServerUrl=e)}I(this,pe).resolve(A)});r(this,Xg,A=>{I(this,iA).info("Encrypted event received",{event:A}),l(this,wA,pE).call(this,A)});r(this,Mo,A=>{var n,o;I(this,iA).debug("Session message received",{event:A});const e=A.target,t=A.message;if(!I(this,Ft).get(e)){I(this,iA).error("No active session found for event",{event:A});return}I(this,iA).debug("Requesting license for session",{sessionId:e.sessionId,licenseServerUrl:(n=I(this,UA))==null?void 0:n.licenseServerUrl}),(o=I(this,UA))==null||o.requestLicense(t).then(a=>{I(this,iA).debug("License received for session",{sessionId:e.sessionId}),e.update(a).catch(B=>{l(this,wA,Gn).call(this,{message:"Failed to update session with license",isFatal:!1,error:B})})}).catch(a=>{l(this,wA,Gn).call(this,{message:"Failed to request license",isFatal:!1,error:a})})});r(this,vo,A=>{const e=A.target;I(this,iA).debug("Key status changed for session",{sessionId:e.sessionId}),e.keyStatuses.forEach((t,g)=>{const n=RC(window.btoa(String.fromCharCode(...new Uint8Array(g))));I(this,iA).debug("Key status",{base64kid:n,status:t})})});r(this,Ho,A=>c(this,null,function*(){const e=l(this,wA,GE).call(this,A);I(this,iA).debug("Prioritized key system list",{keySystemList:e});const t=yield kh(e,A.videoCodec,A.audioCodec,{widevine:I(this,Ke).widevine,playready:I(this,Ke).playready});if(!t)return I(this,iA).warn("No supported key system found"),null;I(this,iA).debug("Supported key system found",t.mediaKeySystemAccess.getConfiguration());const{keySystem:g,mediaKeySystemAccess:n}=t;let o=null;return g==="clearkey"?(lA(A.clearkeys,"No clearkeys found"),o=new ph(n,A.clearkeys)):g==="playready"?(lA(A.playreadyLicenseUrl,"No playreadyLicenseUrl found"),o=new Uh(n,A.playreadyLicenseUrl)):g==="widevine"?(lA(A.widevineLicenseUrl,"No widevineLicenseUrl found"),o=new bh(n,A.widevineLicenseUrl)):g==="fairplay"&&(lA(A.fairplayLicenseUrl,"No fairplayLicenseUrl found"),lA(A.fairplayCertificate,"No fairplayCertificate found"),o=new Rh(n,A.fairplayLicenseUrl,A.fairplayCertificate)),o&&(o.headers=I(this,Ke).headers||{},o.queryParams=I(this,Ke).queryParams||{}),o}));E(this,ci,A),E(this,iA,e),E(this,Ke,t),I(this,ci).on("received drm data",I(this,Zg))}static isSupported(){return!!navigator.requestMediaKeySystemAccess}attach(A){E(this,tt,A),I(this,iA).info("Media element attached"),I(this,tt).addEventListener("encrypted",I(this,Xg))}getStatistics(){var A,e;return!I(this,pe).resolved&&!((A=I(this,UA))!=null&&A.statistics)?null:f(f({},I(this,pe).resolved),(e=I(this,UA))==null?void 0:e.statistics)}unload(){var A;I(this,iA).info("Unloading EncryptedMediaExtensions"),I(this,ci).off("received drm data",I(this,Zg)),(A=I(this,tt))==null||A.removeEventListener("encrypted",I(this,Xg)),I(this,Ft).forEach((e,t)=>{t.close()}),I(this,Ft).clear(),E(this,kt,void 0),E(this,UA,void 0)}set headers(A){I(this,Ke).headers=A,I(this,UA)&&(I(this,UA).headers=A)}set queryParams(A){I(this,Ke).queryParams=A,I(this,UA)&&(I(this,UA).queryParams=A)}onChannelSwitch(){if(!I(this,pe).resolved){I(this,iA).debug("DRM is not used, skipping channel switch handling");return}wc()&&I(this,Jo).platform.safariVersion<18&&l(this,wA,Gn).call(this,{message:"DRM channel switch not supported on Safari < 18",isFatal:!0}),window.clearTimeout(I(this,hs));const A=I(this,pe).resolved;E(this,pe,new _),E(this,hs,window.setTimeout(()=>{I(this,pe).resolve(A)},Nh))}}iA=new WeakMap,ci=new WeakMap,tt=new WeakMap,pe=new WeakMap,Ke=new WeakMap,UA=new WeakMap,Ft=new WeakMap,kt=new WeakMap,Jo=new WeakMap,hs=new WeakMap,Zg=new WeakMap,Xg=new WeakMap,wA=new WeakSet,pE=function(A){return c(this,null,function*(){try{yield l(this,wA,yE).call(this),I(this,iA).debug("Media keys initialization completed"),yield l(this,wA,FE).call(this,A.initData,A.initDataType)}catch(e){l(this,wA,Gn).call(this,{message:"Failed to handle encrypted event",isFatal:!0,error:e})}})},yE=function(){return c(this,null,function*(){var e;I(this,iA).debug("Initializing media keys");const A=yield I(this,pe).promise;if((e=I(this,tt))!=null&&e.mediaKeys){I(this,iA).debug("Media keys already set on media element");return}if(I(this,kt)){I(this,iA).debug("Media keys initialization already in progress, waiting for completion"),yield I(this,kt);return}E(this,kt,c(this,null,function*(){const t=yield I(this,Ho).call(this,A);I(this,iA).debug("CDM obtained",{cdm:t}),lA(I(this,tt),"No media element found"),lA(t,"No CDM found");const g=yield t.getMediaKeys();t.certificate&&(yield l(this,wA,RE).call(this,g,t.certificate)),I(this,iA).debug("Setting media keys on media element"),yield I(this,tt).setMediaKeys(g),E(this,UA,t)})),yield I(this,kt)})},FE=function(A,e){return c(this,null,function*(){lA(I(this,UA),"No CDM manager found");const t=yield I(this,UA).getMediaKeys();if(!A||!l(this,wA,kE).call(this,A)){I(this,iA).debug("Duplicate initData, no need to create new session",{initData:A});return}const g=t.createSession();I(this,iA).debug("Creating new session",{session:g}),g.addEventListener("keystatuseschange",I(this,vo)),g.closed.then(n=>{I(this,iA).info("Session is closed",{reason:n})}),g.addEventListener("message",I(this,Mo)),I(this,Ft).set(g,A),I(this,iA).debug("Generating request for session",{session:g,initDataType:e,initData:A}),yield g.generateRequest(e,A)})},kE=function(A){for(const[e,t]of I(this,Ft))if(Sh(A,t))return!1;return!0},Mo=new WeakMap,vo=new WeakMap,RE=function(A,e){return c(this,null,function*(){try{I(this,iA).debug("Setting server certificate",{certificate:e}),(yield A.setServerCertificate(e))||I(this,iA).warn("Server certificates are not supported by the CDM.")}catch(t){I(this,iA).error("Failed to set server certificate",{error:t})}})},Gn=function(A){const{message:e,isFatal:t,error:g}=A;I(this,iA).error(e,{error:g}),I(this,ci).emit("error",fC(e,t,g))},Ho=new WeakMap,GE=function(A){const e=[];return A.clearkeys&&e.push("clearkey"),A.playreadyLicenseUrl&&e.push("playready"),A.widevineLicenseUrl&&e.push("widevine"),A.fairplayLicenseUrl&&A.fairplayCertificate&&e.push("fairplay"),e},UE=function(A){return{fairplay:A.fairplayLicenseUrl,playready:A.playreadyLicenseUrl,widevine:A.widevineLicenseUrl,clearkey:void 0}};const Lh=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],LC=(i,A)=>{const e=Lh.indexOf(A);if(e===-1||i<1||i>8||i===7)return;const t=2,g=new ArrayBuffer(2),n=new Uint8Array(g),o=i===8?7:i;return n[0]=t<<3|e>>1,n[1]=(e&1)<<7|o<<3,g},Jh=7,Mh=8,vh=i=>{const A=i.getUint32(0,!1),e=i.getUint8(0)<<16|i.getUint16(1,!1);let t=0;return e===1?t+=3:A===1&&(t+=4),t},Hh=i=>vh(new DataView(i,0))!==0,JC=(i,A=0)=>{for(let e=A;e<i.byteLength-4;e++){const t=i.getUint32(e)===1,g=(i.getUint8(e)<<16|i.getUint16(e+1))===1;if(t||g)return{position:e,nalPrefixSize:t?4:3}}},qh=i=>i&31,Kh=(i,A)=>{const e=new DataView(i,0);let t=JC(e);for(;t;){const{position:g,nalPrefixSize:n}=t,o=JC(e,g+4),a=o?o.position-g-n:void 0;if(!A(new DataView(i,g+n,a),n))return;t=o}},MC=i=>{const A=[],e=[];if(!Hh(i)){const t=new DataView(i,0),g=t.getUint8(5)&31;let n=6;for(let a=0;a<g;a++){const B=t.getUint16(n);A.push(i.slice(n+2,n+2+B)),n+=B+2}const o=t.getUint8(n);n+=1;for(let a=0;a<o;a++){const B=t.getUint16(n);e.push(i.slice(n+2,n+2+B)),n+=B+2}return{sequenceParameterSets:A,pictureParameterSets:e}}return Kh(i,t=>{const g=t.byteOffset+t.byteLength;switch(qh(t.getUint8(0))){case Mh:e.push(t.buffer.slice(t.byteOffset,g));break;case Jh:A.push(t.buffer.slice(t.byteOffset,g));break}return!0}),{sequenceParameterSets:A,pictureParameterSets:e}},Th=i=>{var m;const A=new DataView(i),e=A.getUint8(1),t=A.getUint8(2),g=A.getUint8(3),n=new ts(i,32);n.readUnsignedExpGolomb();let o=1;switch(e){case 100:case 110:case 122:case 244:case 44:case 83:case 86:case 118:case 128:case 138:case 144:{if(o=n.readUnsignedExpGolomb(),o===3&&n.readBits(1),n.readUnsignedExpGolomb()+8,n.readUnsignedExpGolomb()+8,n.readBit(),n.readBit()){for(let y=0;y<(o!=3?8:12);y++)if(n.readBit()){const N=y<6?16:64;let U=0,K=8,W=8;for(let Z=0;Z<N;Z++)W!=0&&(U=n.readSignedExpGolomb(),W=(K+U+256)%256),K=W==0?K:W}}break}}n.readUnsignedExpGolomb();const a=n.readUnsignedExpGolomb();if(a==0)n.readUnsignedExpGolomb();else if(a==1)throw new Error("Unhandled case");n.readUnsignedExpGolomb(),n.readBit();const B=n.readUnsignedExpGolomb(),C=n.readUnsignedExpGolomb(),Q=n.readBit();Q===0&&n.readBit(),n.readBit();let h=B+1,d=C+1;if(d*=2-Q,d*=16,h*=16,n.readBit()){const p=o==1?1:0,k=1<<(o==1||o==2?1:0),N=2-Q<<p,U=n.readUnsignedExpGolomb()*k,K=n.readUnsignedExpGolomb()*k,W=n.readUnsignedExpGolomb()*N,Z=n.readUnsignedExpGolomb()*N;h-=U+K,d-=W+Z}let u={numerator:1,denumerator:1};return n.readBit()&&n.readBit()&&(u=(m=Yh[n.readBits(8)])!=null?m:{numerator:0,denumerator:0}),{width:h,height:d,pixelAspectRatio:u,profileIdc:e,constraintFlags:t,levelIdc:g}},Yh=[{numerator:0,denumerator:0},{numerator:1,denumerator:1},{numerator:12,denumerator:11},{numerator:10,denumerator:11},{numerator:16,denumerator:11},{numerator:40,denumerator:33},{numerator:24,denumerator:11},{numerator:20,denumerator:11},{numerator:32,denumerator:11},{numerator:80,denumerator:33},{numerator:18,denumerator:11},{numerator:15,denumerator:11},{numerator:64,denumerator:33},{numerator:160,denumerator:99},{numerator:4,denumerator:3},{numerator:3,denumerator:2},{numerator:2,denumerator:1}],Ph=184549376;function xh(i){const A=new Je(i),e=Wh(A);(e.flags&Ph)!==0&&Oh(A);const t=Vh(A);if(String.fromCharCode(...t.frameId)==="TXXX"){const n=new Je(A.readBytes(t.size));return{header:e,txx:Zh(n)}}}function Wh(i){const A=i.readBytes(3),e=i.readUint8(),t=i.readUint8(),g=i.readUint8(),n=i.readUint32();return{id:A,majorVersion:e,minorVersion:t,flags:g,size:n}}function Oh(i){const A=i.readUint32();return i.readBytes(A-4),{}}function Vh(i){const A=i.readBytes(4),e=i.readUint32(),t=i.readUint16();return{frameId:A,size:e,flags:t}}function Zh(i){const A=i.readUint8(),e=i.readUtf8String(),t=i.readUtf8String();return{encoding:A,description:e,value:t}}function vC(i){let A=i.readUint32();const e=String.fromCharCode(i.readUint8(),i.readUint8(),i.readUint8(),i.readUint8());return A===1&&(A=i.readUint64()-8),{size:A-8,type:e}}function Xh(i,A){const e=vC(A),t=new Je(A.readBytes(e.size));if(e.type!==i.type)throw new Error(`invalid error type: ${e.type}, expected ${i.type}`);const g=i.decodeData(t);return t.readRemaining(),g}function ve(i){const A=i.readUint8(),e=i.readUint24();return{version:A,flags:e}}const ds=class ds{constructor({timescale:A,presentationTime:e,presentationTimeDelta:t,schemeIdUri:g,value:n,eventDuration:o,id:a,data:B}){s(this,"type",ds.type);s(this,"timescale");s(this,"presentationTime");s(this,"presentationTimeDelta");s(this,"schemeIdUri");s(this,"value");s(this,"eventDuration");s(this,"id");s(this,"data");this.timescale=A,this.presentationTime=e,this.presentationTimeDelta=t,this.schemeIdUri=g,this.value=n,this.eventDuration=o,this.id=a,this.data=B}static decodeData(A){const{version:e}=ve(A);switch(e){case 1:{const t=A.readUint32(),g=A.readUint64(),n=A.readUint32(),o=A.readUint32(),a=A.readUtf8String(),B=A.readUtf8String(),C=A.remaining(),Q=A.readBytes(C);return new ds({timescale:t,presentationTime:g,eventDuration:n,id:o,schemeIdUri:a,value:B,data:Q})}case 0:{const t=A.readUtf8String(),g=A.readUtf8String(),n=A.readUint32(),o=A.readUint32(),a=A.readUint32(),B=A.readUint32(),C=A.remaining(),Q=A.readBytes(C);return new ds({timescale:n,presentationTimeDelta:o,schemeIdUri:t,value:g,eventDuration:a,id:B,data:Q})}default:throw new Error(`unsupported version ${e}`)}}};s(ds,"type","emsg");let Pn=ds;const jg=class jg{constructor(A){s(this,"type",jg.type);s(this,"data");this.data=A}static decodeData(A){const e=A.readRemaining();return new jg(e)}};s(jg,"type","mdat");let xn=jg;const zg=class zg{constructor(A,e,t){s(this,"type",zg.type);s(this,"extra");s(this,"byteOffset");s(this,"baseMediaDecodeTime");this.extra=A,this.byteOffset=e,this.baseMediaDecodeTime=t}static decodeData(A){const e=ve(A),t=A.byteOffset();let g=0;return e.version===1?g=A.readUint64():g=A.readUint32(),new zg(e,t,g)}};s(zg,"type","tfdt");let Wn=zg;const jh=1,zh=2,_h=8,$h=16,Ad=32,_g=class _g{constructor(A,e,t,g){s(this,"type",_g.type);s(this,"extra");s(this,"defaultSampleDuration");s(this,"defaultSampleSize");s(this,"defaultSampleFlags");this.extra=A,this.defaultSampleDuration=e,this.defaultSampleSize=t,this.defaultSampleFlags=g}static decodeData(A){const e=ve(A);let t,g,n;return A.readUint32(),(e.flags&jh)>0&&A.readUint64(),(e.flags&zh)>0&&A.readUint32(),(e.flags&_h)>0&&(t=A.readUint32()),(e.flags&$h)>0&&(g=A.readUint32()),(e.flags&Ad)>0&&(n=A.readUint32()),new _g(e,t,g,n)}};s(_g,"type","tfhd");let On=_g;const cA=class cA{constructor(A,e,t){s(this,"type",cA.type);s(this,"dataOffset");s(this,"firstSampleFlags");s(this,"samplesCount");s(this,"sampleDurations",[]);s(this,"sampleSizes",[]);s(this,"sampleFlags",[]);s(this,"sampleCts",[]);this.dataOffset=e,this.firstSampleFlags=t,this.samplesCount=A}is_sync_sample(A){const e=cA.FLAG_SAMPLE_FLAG_IS_NON_SYNC|cA.FLAG_SAMPLE_DEPENDS_YES,t=this.sampleFlags[A];if(typeof t!="undefined")return(t&e)===0;if(A===0&&this.firstSampleFlags)return(this.firstSampleFlags&e)===0}static decodeData(A){const{flags:e}=ve(A),t=A.readUint32();let g,n;e&cA.TRUN_DATA_OFFSET&&(g=A.readUint32()),e&cA.TRUN_FIRST_SAMPLE_FLAGS&&(n=A.readUint32());const o=new cA(t,g,n);for(let a=0;a<t;a++)e&cA.SAMPLE_DURATION&&o.sampleDurations.push(A.readUint32()),e&cA.SAMPLE_SIZE&&o.sampleSizes.push(A.readUint32()),e&cA.SAMPLE_FLAGS&&o.sampleFlags.push(A.readUint32()),e&cA.SAMPLE_CTS&&o.sampleCts.push(A.readUint32());return o}};s(cA,"TRUN_DATA_OFFSET",1),s(cA,"TRUN_FIRST_SAMPLE_FLAGS",4),s(cA,"SAMPLE_DURATION",256),s(cA,"SAMPLE_SIZE",512),s(cA,"SAMPLE_FLAGS",1024),s(cA,"SAMPLE_CTS",2048),s(cA,"FLAG_SAMPLE_FLAG_IS_NON_SYNC",65536),s(cA,"FLAG_SAMPLE_DEPENDS_NO",33554432),s(cA,"FLAG_SAMPLE_DEPENDS_YES",16777216),s(cA,"type","trun");let Rg=cA;const $g=class $g{constructor(A,e,t){s(this,"type",$g.type);s(this,"tfhd");s(this,"tfdt");s(this,"trun");this.tfhd=A,this.tfdt=e,this.trun=t}static decodeData(A){let e,t,g;for(;A.remaining()>0;){const n=Be(A);n instanceof On&&(e=n),n instanceof Wn&&(t=n),n instanceof Rg&&(g=n)}return new $g(e,t,g)}};s($g,"type","traf");let Vn=$g;const AI=class AI{constructor(A){s(this,"type",AI.type);s(this,"traf");this.traf=A}static decodeData(A){let e;for(;A.remaining()>0;){const t=Be(A);t instanceof Vn&&(e=t)}if(!e)throw new Error("No traf found");return new AI(e)}};s(AI,"type","moof");let Zn=AI;const eI=class eI{constructor(){s(this,"type",eI.type)}static decodeData(A){return new eI}};s(eI,"type","mvhd");let Xn=eI;const tI=class tI{constructor(A){s(this,"type",tI.type);s(this,"fourCC");this.fourCC=A}mediaType(){switch(this.fourCC){case"vide":return"video";case"soun":return"audio";case"sbtl":return"text";default:throw new Error("Unknown media type")}}static decodeData(A){ve(A),A.readUint32();const e=String.fromCharCode(...A.readBytes(4));return new tI(e)}};s(tI,"type","hdlr");let jn=tI;const ls=class ls{constructor(A,e,t,g){s(this,"type",ls.type);s(this,"creationTime");s(this,"modificationTime");s(this,"timescale");s(this,"duration");this.creationTime=A,this.modificationTime=e,this.timescale=t,this.duration=g}static decodeData(A){const{version:e}=ve(A);if(e===1){const a=A.readUint64(),B=A.readUint64(),C=A.readUint32(),Q=A.readUint64();return new ls(a,B,C,Q)}const t=A.readUint32(),g=A.readUint32(),n=A.readUint32(),o=A.readUint32();return new ls(t,g,n,o)}};s(ls,"type","mdhd");let zn=ls;const iI=class iI{constructor(A,e,t,g,n){s(this,"type",iI.type);s(this,"av01");s(this,"avc1");s(this,"mp4a");s(this,"opus");s(this,"codec");this.avc1=A,this.av01=e,this.mp4a=t,this.opus=g,this.codec=n}mediaType(){return this.avc1||this.av01?"video":"audio"}width(){var A;return(A=this.avc1)==null?void 0:A.width}height(){var A;return(A=this.avc1)==null?void 0:A.height}static decodeData(A){ve(A);const e=A.readUint32();let t,g,n,o,a;for(let B=0;B<e;B++)for(;A.remaining()>0;){const C=Be(A);switch(C.type){case"avc1":t="h264",g=C;break;case"av01":t="av1",a=C;break;case"mp4a":t="aac",n=C;break;case"Opus":t="opus",o=C;break}}return new iI(g,a,n,o,t)}};s(iI,"type","stsd");let _n=iI;const sI=class sI{constructor(A){s(this,"type",sI.type);s(this,"stsd");this.stsd=A}static decodeData(A){let e;for(;A.remaining()>0;){const t=Be(A);t instanceof _n&&(e=t)}if(!e)throw new Error("No stsd found");return new sI(e)}};s(sI,"type","stbl");let $n=sI;const gI=class gI{constructor(A){s(this,"type",gI.type);s(this,"stbl");this.stbl=A}static decodeData(A){let e;for(;A.remaining()>0;){const t=Be(A);t instanceof $n&&(e=t)}if(!e)throw new Error("No stbl found");return new gI(e)}};s(gI,"type","minf");let Ao=gI;const II=class II{constructor(A,e,t){s(this,"type",II.type);s(this,"hdlr");s(this,"minf");s(this,"mdhd");this.hdlr=A,this.minf=e,this.mdhd=t}static decodeData(A){let e,t,g;for(;A.remaining()>0;){const n=Be(A);n instanceof jn&&(e=n),n instanceof Ao&&(t=n),n instanceof zn&&(g=n)}if(!e)throw new Error("No hdlr found");if(!t)throw new Error("No minf found");if(!g)throw new Error("No mdhd found");return new II(e,t,g)}};s(II,"type","mdia");let eo=II;const nI=class nI{constructor(A,e,t,g,n,o,a,B){s(this,"type",nI.type);s(this,"modificationTime");s(this,"creationTime");s(this,"trackId");s(this,"duration");s(this,"alternateGroup");s(this,"volume");s(this,"width");s(this,"height");this.modificationTime=A,this.creationTime=e,this.trackId=t,this.duration=g,this.alternateGroup=n,this.volume=o,this.width=a,this.height=B}static decodeData(A){const e=ve(A);let t=0,g=0;e.version===1?(t=A.readUint64(),g=A.readUint64()):(t=A.readUint32(),g=A.readUint32());const n=A.readUint32();A.readUint32();const o=A.readUint32();A.readUint32(),A.readUint32(),A.readUint16();const a=A.readUint16(),B=A.readUint16();A.readUint16(),new Array(9).fill(0).map(()=>A.readUint32());const C=A.readUint16();A.readUint16();const Q=A.readUint16();return A.readUint16(),new nI(t,g,n,o,a,B,C,Q)}};s(nI,"type","tkhd");let to=nI;const oI=class oI{constructor(A,e){s(this,"type",oI.type);s(this,"tkhd");s(this,"mdia");this.tkhd=A,this.mdia=e}static decodeData(A){let e,t;for(;A.remaining()>0;){const g=Be(A);g instanceof to&&(e=g),g instanceof eo&&(t=g)}if(!e)throw new Error("No tkhd found");if(!t)throw new Error("No mdia found");return new oI(e,t)}};s(oI,"type","trak");let io=oI;const aI=class aI{constructor(A,e){s(this,"type",aI.type);s(this,"mvhd");s(this,"traks");this.mvhd=A,this.traks=e}static decodeData(A){let e;const t=[];for(;A.remaining()>0;){const g=Be(A);g instanceof io&&t.push(g),g instanceof Xn&&(e=g)}if(!e)throw new Error("No mvhd found");return new aI(e,t)}};s(aI,"type","moov");let so=aI;const BI=class BI{constructor(A,e,t,g,n,o,a,B){s(this,"type",BI.type);s(this,"configurationVersion");s(this,"avcProfileIndication");s(this,"profileCompatibility");s(this,"avcLevelIndication");s(this,"lengthSizeMinusOne");s(this,"sequenceParameterSets");s(this,"pictureParameterSets");s(this,"bytes");this.configurationVersion=A,this.avcProfileIndication=e,this.profileCompatibility=t,this.avcLevelIndication=g,this.lengthSizeMinusOne=n,this.sequenceParameterSets=o,this.pictureParameterSets=a,this.bytes=B}static decodeData(A){const e=A.buffer(),t=A.readUint8(),g=A.readUint8(),n=A.readUint8(),o=A.readUint8(),a=A.readUint8()&3,B=A.readUint8()&31,C=[];for(let d=0;d<B;d++){const u=A.readBytes(A.readUint16());C.push(u)}const Q=A.readUint8(),h=[];for(let d=0;d<Q;d++){const u=A.readBytes(A.readUint16());h.push(u)}return new BI(t,g,n,o,a,C,h,e)}};s(BI,"type","avcC");let $a=BI;const rI=class rI{constructor(A,e,t,g,n){s(this,"type",rI.type);s(this,"avcC");s(this,"width");s(this,"height");s(this,"horizontalResolution");s(this,"verticalResolution");this.avcC=A,this.width=e,this.height=t,this.horizontalResolution=g,this.verticalResolution=n}static decodeData(A){A.readUint32(),A.readUint16(),A.readUint16(),A.readUint32(),A.readUint64(),A.readUint32();const e=A.readUint16(),t=A.readUint16(),g=A.readUint32(),n=A.readUint32();A.readUint32(),A.readUint16(),A.readBytes(32),A.readUint16(),A.readUint16();let o;for(;A.remaining()>0;){const a=Be(A);a.type==="avcC"&&(o=a)}if(!o)throw new Error("no avcC");return new rI(o,e,t,g,n)}};s(rI,"type","avc1");let AB=rI;const ed=i=>{for(let A=0;A<i.length-1;A++){if(i[A]!==5)continue;let e=0,t=0,g=A+1;for(;g<i.length&&t<4;){const a=i[g];if(e=e<<7|a&127,t++,g++,(a&128)===0)break}if(e<=0||t===4&&(i[g-1]&128)!==0)continue;const n=A+1+t,o=n+e;if(o<=i.length)return i.slice(n,o)}},CI=class CI{constructor(A){s(this,"type",CI.type);s(this,"decoderConfig");this.decoderConfig=A}static decodeData(A){var g;ve(A);const e=A.readRemaining(),t=(g=ed(e))!=null?g:new Uint8Array(0);return new CI(t)}};s(CI,"type","esds");let eB=CI;const QI=class QI{constructor(A,e,t){s(this,"type",QI.type);s(this,"channelCount");s(this,"sampleRate");s(this,"esds");this.channelCount=A,this.sampleRate=e,this.esds=t}static decodeData(A){A.readUint32(),A.readUint16(),A.readUint16();const e=A.readUint16();A.readUint16(),A.readUint32();const t=A.readUint16();A.readUint16(),A.readUint32();const g=A.readUint16();A.readUint16(),e===1?A.readBytes(16):e===2&&A.readBytes(36);let n;for(;A.remaining()>0;){const o=Be(A);o.type==="esds"&&(n=o)}return new QI(t,g,n)}};s(QI,"type","mp4a");let tB=QI;const EI=class EI{constructor(A,e,t,g,n,o,a){s(this,"type",EI.type);s(this,"version");s(this,"channelCount");s(this,"preSkip");s(this,"inputSampleRate");s(this,"outputGain");s(this,"channelMappingFamily");s(this,"channelMappingTable");this.version=A,this.channelCount=e,this.preSkip=t,this.inputSampleRate=g,this.outputGain=n,this.channelMappingFamily=o,this.channelMappingTable=a}static decodeData(A){const e=A.readUint8(),t=A.readUint8(),g=A.readUint16(),n=A.readUint32(),o=A.readUint16(),a=o>32767?o-65536:o,B=A.readUint8(),C=A.readRemaining();return new EI(e,t,g,n,a,B,C)}};s(EI,"type","dOps");let iB=EI;const cI=class cI{constructor(A,e,t){s(this,"type",cI.type);s(this,"dops");s(this,"channelCount");s(this,"sampleRate");this.dops=A,this.channelCount=e,this.sampleRate=t}static decodeData(A){A.readUint32(),A.readUint16(),A.readUint16();const e=A.readUint16();A.readUint16(),A.readUint32();const t=A.readUint16();A.readUint16(),A.readUint32();const g=A.readUint16();A.readUint16(),e===1&&(A.readUint64(),A.readUint64());const n=Xh(iB,A);return new cI(n,t,g)}};s(cI,"type","Opus");let sB=cI;const us=class us{constructor(A,e){s(this,"type",us.type);s(this,"ntpTimestamp");s(this,"mediaTime");this.ntpTimestamp=A,this.mediaTime=e}date(){const[A,e]=this.ntpTimestamp,t=A*1e3+e/2**32*1e3,g=new Date(Date.UTC(1900,0,1,0,0,0));return new Date(g.getTime()+t)}static decodeData(A){const{version:e}=ve(A);A.readUint32();const t=A.readUint32(),g=A.readUint32();if(e===1){const o=A.readUint64();return new us([t,g],o)}const n=A.readUint32();return new us([t,g],n)}};s(us,"type","prft");let go=us;class td{constructor(A,e){r(this,hI);r(this,dI);E(this,hI,A),E(this,dI,e.readBytes(A.size))}data(){return I(this,dI)}get type(){return I(this,hI).type}}hI=new WeakMap,dI=new WeakMap;const id={moov:so,trak:io,tkhd:to,mvhd:Xn,moof:Zn,traf:Vn,tfhd:On,tfdt:Wn,trun:Rg,mdat:xn,mdia:eo,hdlr:jn,minf:Ao,stbl:$n,mdhd:zn,stsd:_n,prft:go,avc1:AB,avcC:$a,esds:eB,mp4a:tB,Opus:sB,emsg:Pn};function Be(i){const A=vC(i),e=id[A.type],t=new Je(i.readBytes(A.size));if(!e){const n=new td(A,t);return t.readRemaining(),n}const g=e.decodeData(t);return t.readRemaining(),g}function sd(i){if(i.byteLength<8)throw new Error("Buffer too small");const A=new Je(i),e=new Map;for(;A.remaining()>0;){const n=Be(A);e.set(n.type,n)}const t=e.get("ftyp"),g=e.get("moov");if(!t)throw new Error("ftyp atom not found");if(!g||!(g instanceof so))throw new Error("moov atom not found");return{ftyp:t,moov:g}}function gd(i){if(i.byteLength<8)throw new Error("Buffer too small");const A=new Je(i),e=new Map,t=[];for(;A.remaining()>0;){const a=Be(A);a instanceof Pn&&t.push(a),e.set(a.type,a)}const g=e.get("moof"),n=e.get("mdat"),o=e.get("prft");if(!g||!(g instanceof Zn))throw new Error("moof atom not found");if(!n||!(n instanceof xn))throw new Error("mdat atom not found");if(o&&!(o instanceof go))throw new Error("invalid prft found");return{moof:g,mdat:n,prft:o,emsgs:t}}class Id{constructor(A){r(this,lI);r(this,uI);E(this,lI,A),E(this,uI,sd(A))}rawBytes(){return I(this,lI)}init(){return I(this,uI)}}lI=new WeakMap,uI=new WeakMap;const ar=class ar{constructor(A,e){r(this,OA);r(this,se);r(this,nA);E(this,OA,e),E(this,se,A),E(this,nA,gd(e))}clone(){return new ar(I(this,se),new Uint8Array(I(this,OA).buffer.slice(I(this,OA).byteOffset,I(this,OA).byteOffset+I(this,OA).byteLength)))}updateBaseMediaDecodeTime(A){const e=new DataView(I(this,OA).buffer,I(this,OA).byteOffset,I(this,OA).byteLength);if(I(this,nA).moof.traf.tfdt)if(I(this,nA).moof.traf.tfdt.baseMediaDecodeTime=A,I(this,nA).moof.traf.tfdt.extra.version===1){const t=Math.floor(A/4294967296),g=(A&4294967295)>>>0;e.setUint32(I(this,nA).moof.traf.tfdt.byteOffset-I(this,OA).byteOffset,t),e.setUint32(I(this,nA).moof.traf.tfdt.byteOffset-I(this,OA).byteOffset+4,g)}else e.setUint32(I(this,nA).moof.traf.tfdt.byteOffset-I(this,OA).byteOffset,A)}producerReferenceTime(){if(I(this,nA).prft)return I(this,nA).prft.date()}duration(){const A=I(this,nA).moof.traf.trun,e=I(this,nA).moof.traf.tfhd;if((A==null?void 0:A.sampleDurations.length)===0){const t=(A==null?void 0:A.samplesCount)||1;if(e!=null&&e.defaultSampleDuration)return(e==null?void 0:e.defaultSampleDuration)*t}return(A==null?void 0:A.sampleDurations.reduce((t,g)=>t+g,0))||0}baseMediaDecodeTime(){var e;const A=(e=I(this,nA).moof.traf.tfdt)==null?void 0:e.baseMediaDecodeTime;if(!A)throw new Error("no baseMediaDecodeTime");return A}startsWithKeyframe(){var t;const A=I(this,nA).moof.traf.trun,e=(A==null?void 0:A.firstSampleFlags)||(A==null?void 0:A.sampleFlags[0])||((t=I(this,nA).moof.traf.tfhd)==null?void 0:t.defaultSampleFlags);return e?(e&Rg.FLAG_SAMPLE_DEPENDS_NO)!==0:!1}compositionTimeOffset(A){var e;return(e=I(this,nA).moof.traf.trun)==null?void 0:e.sampleCts[A]}timescale(){const A=I(this,se).init().moov.traks[0];if(!A)throw new Error("no tracks");return A.mdia.mdhd.timescale}mediaType(){var e;const A=(e=I(this,se).init().moov.traks[0])==null?void 0:e.mdia.hdlr.mediaType();if(!A)throw new Error("no media type");return A}header(){return I(this,se)}fragment(){return I(this,nA)}samplesCount(){var A;return((A=I(this,nA).moof.traf.trun)==null?void 0:A.samplesCount)||0}sample(A){var p,y,k,N,U,K,W,Z,j,QA,NA,ee,qA,XA,jA,Xt;const e=(p=I(this,se).init().moov.traks[0])==null?void 0:p.mdia.minf.stbl.stsd.codec,t=((y=I(this,nA).moof.traf.trun)==null?void 0:y.samplesCount)||0,g=(k=I(this,nA).moof.traf.tfdt)==null?void 0:k.baseMediaDecodeTime;if(A>=t||typeof g=="undefined"||!e)return;const n=this.compositionTimeOffset(A),o=((N=I(this,nA).moof.traf.trun)==null?void 0:N.sampleDurations[A])||0,a=((U=I(this,nA).moof.traf.trun)==null?void 0:U.sampleDurations.slice(0,A).reduce((le,D)=>le+D,0))||0,B=g+a,C=((K=I(this,se).init().moov.traks[0])==null?void 0:K.mdia.mdhd.timescale)||1e3,Q=((W=I(this,nA).moof.traf.trun)==null?void 0:W.sampleSizes[A])||I(this,nA).mdat.data.byteLength,h=((Z=I(this,nA).moof.traf.trun)==null?void 0:Z.sampleSizes.slice(0,A).reduce((le,D)=>le+D,0))||0,d=I(this,nA).mdat.data.subarray(h,h+Q),u=((j=I(this,nA).moof.traf.trun)==null?void 0:j.is_sync_sample(A))||!1;if(this.mediaType()==="video"){const le=((QA=I(this,se).init().moov.traks[0])==null?void 0:QA.tkhd.width)||0,D=((NA=I(this,se).init().moov.traks[0])==null?void 0:NA.tkhd.height)||0;return{type:"video",codec:e,width:le,height:D,duration:o,isSync:u,timescale:C,timestamp:B,compositionTimeOffset:n,data:d}}const m=(ee=I(this,se).init().moov.traks[0])==null?void 0:ee.mdia.minf.stbl.stsd;return{type:"audio",codec:e,channels:((qA=m==null?void 0:m.opus)==null?void 0:qA.channelCount)||((XA=m==null?void 0:m.mp4a)==null?void 0:XA.channelCount)||0,sampleRate:((jA=m==null?void 0:m.opus)==null?void 0:jA.sampleRate)||((Xt=m==null?void 0:m.mp4a)==null?void 0:Xt.sampleRate)||0,duration:o,isSync:u,timestamp:B,compositionTimeOffset:n,data:d,timescale:C}}rawBytes(){return I(this,OA)}};OA=new WeakMap,se=new WeakMap,nA=new WeakMap;let gB=ar;class HC{constructor(A){r(this,ms);E(this,ms,new Id(A))}header(){return I(this,ms)}createFragment(A){return new gB(I(this,ms),A)}}ms=new WeakMap;function H(i){const A=new ArrayBuffer(i.length),e=new Uint8Array(A);for(let t=0,g=i.length;t<g;t++)e[t]=i.charCodeAt(t);return new Uint8Array(A)}const AA={ftyp:H("ftyp"),mvhd:H("mvhd"),moov:H("moov"),trak:H("trak"),tkhd:H("tkhd"),mdia:H("mdia"),mdhd:H("mdhd"),hdlr:H("hdlr"),minf:H("minf"),vmhd:H("vmhd"),smhd:H("smhd"),dinf:H("dinf"),dref:H("dref"),stbl:H("stbl"),stsd:H("stsd"),avc1:H("avc1"),av01:H("av01"),av1C:H("av1C"),avcC:H("avcC"),esds:H("esds"),colr:H("colr"),nclx:H("nclx"),mvex:H("mvex"),trex:H("trex"),udta:H("udta"),meta:H("meta"),ilst:H("ilst"),moof:H("moof"),mfhd:H("mfhd"),traf:H("traf"),tfhd:H("tfhd"),tfdt:H("tfdt"),trun:H("trun"),mdat:H("mdat"),mp4a:H("mp4a"),Opus:H("Opus"),prft:H("prft"),dOps:H("dOps"),emsg:H("emsg")},nd=1e3,re={vide:H("vide"),soun:H("soun"),videoHandler:H("VideoHandler\0"),soundHandler:H("SoundHandler\0"),url:H("url "),pasp:H("pasp"),btrt:H("btrt"),stts:H("stts"),stsc:H("stsc"),stsz:H("stsz"),stco:H("stco"),data:H("data"),mdir:H("mdir"),appl:H("appl")},Gg=H("iso6"),qC=new Uint8Array([0,0,2,0]),od=[Gg,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([97,118,99,49]),new Uint8Array([109,112,52,49])],ad=[Gg,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([97,118,48,49]),new Uint8Array([109,112,52,49])],Bd=[Gg,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([109,112,52,49])];class KC{constructor(A){s(this,"writer");s(this,"moofOffset",0);this.writer=new Qc(A)}}const uA=(i,A,e)=>{i.writer.writeUint32(e+8),i.writer.writeBytes(A)},fA=(i,A,e,t,g)=>{uA(i,A,e+4),i.writer.writeUint8(t),i.writer.writeUint24(g)},IB=(i,A)=>{uA(i,AA.ftyp,Gg.byteLength+qC.byteLength+A.reduce((e,t)=>e+t.byteLength,0)),i.writer.writeBytes(Gg),i.writer.writeBytes(qC),A.forEach(e=>i.writer.writeBytes(e))},rd=2**32,Cd=2208988800,Qd=(i,A,e,t)=>{fA(i,AA.prft,20,1,0);const n=e/1e3,o=Math.floor(n),B=(n-o)*1e3*1e3*rd/1e6;i.writer.writeUint32(A),i.writer.writeUint32(o+Cd),i.writer.writeUint32(B),i.writer.writeUint64(t)},Ed=(i,A,e)=>{fA(i,AA.mvhd,96,0,0),i.writer.writeUint32(0),i.writer.writeUint32(0),i.writer.writeUint32(e),i.writer.writeUint32(A),i.writer.writeUint32(65536),i.writer.writeUint16(256),i.writer.writeBytes(new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])),i.writer.writeUint32(2)},TC=i=>"sequenceParameterSets"in i,nB=i=>"sequenceHeader"in i,si=i=>i.type=="video",Ug=i=>i.type=="audio",cd=(i,A,e)=>{const t=i.writer.position();fA(i,AA.tkhd,0,0,3),i.writer.writeUint32(0),i.writer.writeUint32(0),i.writer.writeUint32(A.trackId),i.writer.writeUint32(0),i.writer.writeUint32(A.duration*e/A.timescale),i.writer.writeUint32(0),i.writer.writeUint32(0),i.writer.writeUint16(0),i.writer.writeUint16(Ug(A)?1:0),i.writer.writeUint16(Ug(A)?256:0),i.writer.writeUint16(0),i.writer.writeBytes(new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0])),si(A)?(i.writer.writeUint32(A.width*65536),i.writer.writeUint32(A.height*65536)):Ug(A)&&(i.writer.writeUint32(0),i.writer.writeUint32(0)),i.writer.writeUint32At(t,i.writer.position()-t)},hd=(i,A)=>{fA(i,AA.mdhd,20,0,0),i.writer.writeUint32(0),i.writer.writeUint32(0),i.writer.writeUint32(A.timescale),i.writer.writeUint32(A.duration);const e=A.lang||"und",t=(e.charCodeAt(0)&31)<<10|(e.charCodeAt(1)&31)<<5|e.charCodeAt(2)&31;i.writer.writeUint16(t),i.writer.writeUint16(0)},dd=(i,A)=>{const e=i.writer.position();fA(i,AA.hdlr,0,0,0),i.writer.writeUint32(0),i.writer.writeBytes(si(A)?re.vide:re.soun),i.writer.writeUint32(0),i.writer.writeUint32(0),i.writer.writeUint32(0),i.writer.writeBytes(si(A)?re.videoHandler:re.soundHandler),i.writer.writeUint32At(e,i.writer.position()-e)},ld=i=>{const A=i.writer.position();uA(i,AA.dinf,0),fA(i,AA.dref,16,0,0),i.writer.writeUint32(1),fA(i,re.url,0,0,1),i.writer.writeUint32At(A,i.writer.position()-A)},ud=(i,A)=>{const e=i.writer.position();uA(i,AA.avcC,0),i.writer.writeUint8(1),i.writer.writeUint8(A.sequenceParameterSets[0][1]),i.writer.writeUint8(A.sequenceParameterSets[0][2]),i.writer.writeUint8(A.sequenceParameterSets[0][3]),i.writer.writeUint8(255),i.writer.writeUint8(224|A.sequenceParameterSets.length),A.sequenceParameterSets.forEach(t=>{i.writer.writeUint16(t.byteLength),i.writer.writeBytes(t)}),i.writer.writeUint8(A.pictureParameterSets.length),A.pictureParameterSets.forEach(t=>{i.writer.writeUint16(t.byteLength),i.writer.writeBytes(t)}),i.writer.writeUint32At(e,i.writer.position()-e)},md=(i,A)=>{var a,B;const e=i.writer.position();uA(i,AA.av1C,0);const{seqProfile:t,operatingPoints:g,colorConfig:n}=A.parsedSequenceHeader,o=g[0];i.writer.writeUint8(129),i.writer.writeUint8(t<<5|((a=o==null?void 0:o.seqLevelIdx)!=null?a:0)),i.writer.writeUint8(((B=o==null?void 0:o.tier)!=null?B:0)|(n.highBitDepth?1:0)|(n.bitDepth===12?1:0)<<5|(n.monoChrome?1:0)<<4|n.subsamplingX<<3|n.subsamplingY<<2|n.chromaSamplePosition&65535),i.writer.writeUint8(0),i.writer.writeBytes(A.sequenceHeader),i.writer.writeUint32At(e,i.writer.position()-e)},wd=(i,A)=>{const e=i.writer.position(),t=nB(A)?AA.av01:AA.avc1;uA(i,t,0),i.writer.writeUint32(0),i.writer.writeUint16(0),i.writer.writeUint16(1),i.writer.writeUint16(0),i.writer.writeUint16(0),i.writer.writeUint32(0),i.writer.writeUint32(0),i.writer.writeUint32(0),i.writer.writeUint16(A.width),i.writer.writeUint16(A.height),i.writer.writeUint32(4718592),i.writer.writeUint32(4718592),i.writer.writeUint32(0),i.writer.writeUint16(1),i.writer.writeUint8(0),i.writer.writeBytes(new Uint8Array(31)),i.writer.writeUint16(24),i.writer.writeUint16(-1),TC(A)?ud(i,A):nB(A)&&(md(i,A),A.parsedSequenceHeader.colorConfig&&(uA(i,AA.colr,11),i.writer.writeBytes(AA.nclx),i.writer.writeUint16(A.parsedSequenceHeader.colorConfig.colorPrimaries),i.writer.writeUint16(A.parsedSequenceHeader.colorConfig.transferCharacteristics),i.writer.writeUint16(A.parsedSequenceHeader.colorConfig.matrixCoefficients),i.writer.writeUint8(A.parsedSequenceHeader.colorConfig.colorRange?1:0))),A.pixelAspectRatio&&(uA(i,re.pasp,8),i.writer.writeUint32(A.pixelAspectRatio.numerator),i.writer.writeUint32(A.pixelAspectRatio.denumerator)),A.bitrate&&(uA(i,re.btrt,12),i.writer.writeUint32(0),i.writer.writeUint32(A.bitrate),i.writer.writeUint32(A.bitrate)),i.writer.writeUint32At(e,i.writer.position()-e)},Io=(i,A,e)=>{let t=3;for(i.writer.writeUint8(A);t>0;t--)i.writer.writeUint8(e>>7*t|128);i.writer.writeUint8(e&127)},fd=(i,A)=>{const e=A.decoderConfig.byteLength>0?A.decoderConfig.byteLength+5:0,t=i.writer.position();fA(i,AA.esds,0,0,0),Io(i,3,21+e+5+1),i.writer.writeUint16(A.trackId),i.writer.writeUint8(0),Io(i,4,13+e);const g=A.codec==="mp3"&&A.sampleRate>24e3?107:64;i.writer.writeUint8(g),i.writer.writeUint8(21),i.writer.writeUint24(0),i.writer.writeUint32(A.bitrate||0),i.writer.writeUint32(A.bitrate||0),A.decoderConfig.byteLength>0&&(Io(i,5,A.decoderConfig.byteLength),i.writer.writeBytes(A.decoderConfig)),Io(i,6,1),i.writer.writeUint8(2),i.writer.writeUint32At(t,i.writer.position()-t)},Dd=i=>{switch(i){case"aac":case"mp3":return AA.mp4a;case"opus":return AA.Opus}},Sd=(i,A)=>{const e=i.writer.position();uA(i,AA.dOps,0),i.writer.writeUint8(0);const t=A.decoderConfig,g=new DataView(t.buffer,t.byteOffset,t.byteLength);i.writer.writeUint8(g.getUint8(9)),i.writer.writeUint16(g.getUint16(10,!0)),i.writer.writeUint32(g.getUint32(12,!0)),i.writer.writeUint16(g.getUint16(16,!0)),i.writer.writeBytes(A.decoderConfig.slice(18)),i.writer.writeUint32At(e,i.writer.position()-e)},pd=(i,A)=>{const e=i.writer.position();switch(uA(i,Dd(A.codec),0),i.writer.writeUint32(0),i.writer.writeUint16(0),i.writer.writeUint16(1),i.writer.writeUint16(0),i.writer.writeUint16(0),i.writer.writeUint32(0),i.writer.writeUint16(A.channelCount),i.writer.writeUint16(16),i.writer.writeUint32(0),i.writer.writeUint16(A.sampleRate),i.writer.writeUint16(0),A.codec){case"aac":case"mp3":fd(i,A);break;case"opus":Sd(i,A);break}A.bitrate&&(uA(i,re.btrt,12),i.writer.writeUint32(0),i.writer.writeUint32(A.bitrate),i.writer.writeUint32(A.bitrate)),i.writer.writeUint32At(e,i.writer.position()-e)},yd=(i,A)=>{const e=i.writer.position();uA(i,AA.stbl,0);const t=i.writer.position();fA(i,AA.stsd,0,0,0),i.writer.writeUint32(1),si(A)?wd(i,A):Ug(A)&&pd(i,A),i.writer.writeUint32At(t,i.writer.position()-t),fA(i,re.stts,4,0,0),i.writer.writeUint32(0),fA(i,re.stsc,4,0,0),i.writer.writeUint32(0),fA(i,re.stsz,8,0,0),i.writer.writeUint32(0),i.writer.writeUint32(0),fA(i,re.stco,4,0,0),i.writer.writeUint32(0),i.writer.writeUint32At(e,i.writer.position()-e)},Fd=(i,A)=>{const e=i.writer.position();uA(i,AA.minf,0),si(A)?(fA(i,AA.vmhd,8,0,1),i.writer.writeUint32(0),i.writer.writeUint32(0)):Ug(A)&&(fA(i,AA.smhd,4,0,0),i.writer.writeUint16(0),i.writer.writeUint16(0)),ld(i),yd(i,A),i.writer.writeUint32At(e,i.writer.position()-e)},kd=(i,A)=>{const e=i.writer.position();uA(i,AA.mdia,0),hd(i,A),dd(i,A),Fd(i,A),i.writer.writeUint32At(e,i.writer.position()-e)},Rd=(i,A,e)=>{const t=i.writer.position();uA(i,AA.trak,0),cd(i,A,e),kd(i,A),i.writer.writeUint32At(t,i.writer.position()-t)},Gd=(i,A)=>{fA(i,AA.trex,20,0,0),i.writer.writeUint32(A.trackId),i.writer.writeUint32(1),i.writer.writeUint32(0),i.writer.writeUint32(0),i.writer.writeUint32(0)},Ud=(i,A)=>{const e=i.writer.position();uA(i,AA.mvex,0),A.forEach(t=>Gd(i,t)),i.writer.writeUint32At(e,i.writer.position()-e)},bd=(i,A,e,t)=>{const g=i.writer.position();uA(i,AA.moov,0),Ed(i,0,e),A.forEach(n=>Rd(i,n,e)),Ud(i,A),i.writer.writeUint32At(g,i.writer.position()-g)},Nd=(i,A)=>{const e=i.writer.position();fA(i,AA.tfhd,16,0,56),i.writer.writeUint32(A.trackId),i.writer.writeUint32(A.defaultDuration||0),i.writer.writeUint32(A.defaultSize||0),i.writer.writeUint32(A.defaultFlags||0),i.writer.writeUint32At(e,i.writer.position()-e)},Ld=(i,A)=>{const e=i.writer.position();fA(i,AA.tfdt,8,1,0);const t=Math.floor(A.timestamp/4294967296),g=(A.timestamp&4294967295)>>>0;i.writer.writeUint32(t),i.writer.writeUint32(g),i.writer.writeUint32At(e,i.writer.position()-e)},Jd=(i,A)=>{if(!A.samples[0])throw new Error("At least one sample must be provided");const e=A.samples.some(B=>!!B.compositionTimeOffset),t=oB(A.samples[0])!==A.defaultFlags,g=A.samples.length>1;let n=1;t&&(n|=4),e&&(n|=2048),g&&(n|=512,n|=256,n|=1024);const o=i.writer.position();fA(i,AA.trun,16,1,n),i.writer.writeUint32(A.samples.length);const a=i.writer.position();i.writer.writeUint32(0),t&&i.writer.writeUint32(oB(A.samples[0]));for(const B of A.samples)g&&(i.writer.writeUint32(B.duration),i.writer.writeUint32(B.data.byteLength),i.writer.writeUint32(oB(B))),e&&i.writer.writeUint32(B.compositionTimeOffset||0);i.writer.writeUint32At(a,i.writer.position()-i.moofOffset+8),i.writer.writeUint32At(o,i.writer.position()-o)},oB=i=>i.isSync?33554432:16842752,Md=(i,A)=>{const e=i.writer.position();uA(i,AA.traf,0),Nd(i,A),Ld(i,A),Jd(i,A),i.writer.writeUint32At(e,i.writer.position()-e)},vd=(i,A)=>{fA(i,AA.mfhd,4,0,0),i.writer.writeUint32(A)},Hd=(i,A)=>{const e=i.writer.position();uA(i,AA.moof,0),vd(i,A.sequenceNumber),Md(i,A),i.writer.writeUint32At(e,i.writer.position()-e)},qd=(i,A,e)=>{uA(i,AA.mdat,e);for(const t of A.samples){const g=t.data instanceof ArrayBuffer?new Uint8Array(t.data):t.data;i.writer.writeBytes(g)}},no=(i,A)=>{const e=new KC,t=i.filter(n=>si(n)&&TC(n)).length>0;return i.filter(n=>si(n)&&nB(n)).length>0?IB(e,ad):t?IB(e,od):IB(e,Bd),bd(e,i,nd),e.writer.buffer()},oo=i=>{var t;let A=0;for(const g of i.samples)A+=g.data.byteLength;const e=new KC(A+256);return((t=i.samples[0])==null?void 0:t.producerReferenceTime)!==void 0&&Qd(e,i.trackId,i.samples[0].producerReferenceTime,i.timestamp),e.moofOffset=e.writer.position(),Hd(e,i),qd(e,i,A),e.writer.bufferExact()},Kd=(i,A)=>{const e=i[0];if(!e)throw new Error("At least one sample must be provided");return oo({trackId:1,timestamp:e.timestamp,sequenceNumber:A,defaultSize:e.data.byteLength,defaultFlags:33554432,defaultDuration:e.duration,samples:i})},Td=(i,A,e,t)=>no([{type:"audio",codec:"aac",decoderConfig:i,channelCount:A,sampleRate:e,timescale:t,duration:0,trackId:1}]),YC=i=>{const{sequenceParameterSets:A,pictureParameterSets:e}=MC(i),t=A[0],g=e[0];if(!t||!g)throw new Error("No sps or pps provided");return Th(t)},Yd=(i,A)=>{const e=i[0];if(!e)throw new Error("At least one sample must be provided");return oo({trackId:1,timestamp:e.timestamp,sequenceNumber:A,defaultSize:e.data.byteLength,defaultFlags:e.isSync?33554432:16842752,defaultDuration:e.duration,samples:i})},Pd=(i,A)=>{const{sequenceParameterSets:e,pictureParameterSets:t}=MC(i),g=YC(i);return no([{type:"video",sequenceParameterSets:e.map(n=>new Uint8Array(n)),pictureParameterSets:t.map(n=>new Uint8Array(n)),width:g.width,height:g.height,timescale:A,duration:0,trackId:1}])},xd=(i,A,e)=>no([{type:"audio",trackId:1,channelCount:A,timescale:e,codec:"opus",decoderConfig:i,duration:0,sampleRate:48e3}]),Wd=(i,A)=>{const e=i[0];if(!e)throw new Error("At least one sample must be provided");return oo({trackId:1,timestamp:e.timestamp,sequenceNumber:A,defaultSize:e.data.byteLength,defaultFlags:33554432,defaultDuration:e.duration,samples:i})},Od=i=>{if(i.length<=78)return;let e=78;for(;e+8<=i.length;){const t=new DataView(i.buffer,i.byteOffset+e,8),g=t.getUint32(0),n=String.fromCharCode(t.getUint8(4),t.getUint8(5),t.getUint8(6),t.getUint8(7));if(g<8||e+g>i.length)break;if(n==="av1C")return i.slice(e+8,e+g);e+=g}},PC=i=>{const A=new ts(i);return A.peekBit()===1&&A.readBits(32),Xd(A),il(A)},Vd=i=>{let A=0,e=0;for(let t=0;t<8;t++){const g=i.readBits(8);if(A|=(g&127)<<t*7,e+=1,(g&128)!==128)break}return[e,A]},Zd=i=>{let A=0;for(;A<100&&i.readBit()===0;)A++;return A>=32?0:i.readBits(A)+(1<<A)-1},Xd=i=>{const A=i.remainingBits()/8,e=i.readBits(8);if((e>>7&1)!==0)return;const g=e>>3&15,n=e>>2&1,o=e>>1&1;n==1&&i.readBits(8);const[a,B]=o?Vd(i):[0,A];return{headerLength:1+n+a,type:g,obuSize:B}},jd=i=>{const A=i.readBits(32),e=i.readBits(32),t=i.readBit()!==0;let g=0;return t&&(g=Zd(i)+1),{timescale:e,equalPictureInterval:t,numUnitsInDisplayTick:A,numTicksPerPicture:g}},xC=2,aB=2,zd=1,_d=2,$d=2,Al=13,el=0,tl=2,WC=0,il=i=>{const A=i.readBits(3),e=i.readBit()!==0,t=i.readBit()!==0;let g,n=!1,o=!1,a=!1,B=0,C=0;const Q=[];if(t)i.readBits(5);else{if(o=i.readBit()!==0,o&&(g=jd(i),n=i.readBit()!==0,n))throw new Error("Not implemented");a=i.readBit()!==0;const L=i.readBits(5)+1;for(let z=0;z<L;z++){const F=i.readBits(12),b=i.readBits(5);let v=0;if(b>7&&(v=i.readBit()),n)throw new Error("decoderModelInfoPresentFlag==1");a&&i.readBit()!==0&&i.readBits(4),Q.push({tier:v,operatingPointIdc:F,seqLevelIdx:b})}}const h=i.readBits(4)+1,d=i.readBits(4)+1,u=i.readBits(h)+1,m=i.readBits(d)+1;let p=!1;t?p=!1:p=i.readBit()!==0,p&&(B=i.readBits(4)+2,C=i.readBits(3)+1);const y=i.readBit()!==0,k=i.readBit()!==0,N=i.readBit()!==0;let U=!1,K=!1,W=!1,Z=!1,j=!1,QA=!1,NA=!1,ee=xC,qA=aB,XA=0;t||(U=i.readBit()!==0,K=i.readBit()!==0,W=i.readBit()!==0,Z=i.readBit()!==0,j=i.readBit()!==0,j&&(QA=i.readBit()!==0,NA=i.readBit()!==0),i.readBit()!==0?ee=xC:ee=i.readBit(),ee>0?i.readBit()>0?qA=aB:qA=i.readBit():qA=aB,j?XA=i.readBits(3):XA=0);const jA=i.readBit()!==0,Xt=i.readBit()!==0,le=i.readBit()!==0;return{seqProfile:A,stillPicture:e,reducedStillPictureHeader:t,timingInfoPresentFlag:o,timingInfo:g!=null?g:{equalPictureInterval:!1,numUnitsInDisplayTick:0,timescale:0,numTicksPerPicture:0},decoderModelInfoPresentFlag:n,initialDisplayDelayPresentFlag:a,operatingPoints:Q,frameWidthBits:h,frameHeightBits:d,maxFrameWidth:u,maxFrameHeight:m,frameIdNumbersPresentFlag:p,deltaFrameIdLength:B,additionalFrameIdLength:C,use_128x128Superblock:y,enableFilterIntra:k,enableIntraEdgeFilter:N,enableInterintraCompound:U,enableMaskedCompound:K,enableWarpedMotion:W,enableDualFilter:Z,enableOrderHint:j,enableJntComp:QA,enableRefFrameMvs:NA,seqForceScreenContentTools:ee,seqForceIntegerMv:qA,orderHintBits:XA,enableSuperres:jA,enableCdef:Xt,enableRestoration:le,colorConfig:sl(i,A),filmGrainParamsPresent:i.readBit()!==0}},sl=(i,A)=>{const e=i.readBit()!==0;let t=8,g=!1;A===2&&e?t=i.readBit()!==0?12:10:A<=2&&(t=e?10:8),A===1?g=!1:g=i.readBit()!==0;const n=g?1:3,o=i.readBit()!==0;let a=_d,B=$d,C=tl,Q=!1,h=0,d=0,u=WC,m=!1;return o&&(a=i.readBits(8),B=i.readBits(8),C=i.readBits(8)),g?(Q=i.readBit()!==0,h=1,d=1,u=WC,m=!1,{highBitDepth:e,bitDepth:t,monoChrome:g,chromaSamplePosition:u,colorPrimaries:a,colorRange:Q,matrixCoefficients:C,numPlanes:n,separateUvDeltaQ:m,subsamplingX:h,subsamplingY:d,transferCharacteristics:B}):a===zd&&B==Al&&C==el?(Q=!0,h=0,d=0,{highBitDepth:e,bitDepth:t,monoChrome:g,chromaSamplePosition:u,colorPrimaries:a,colorRange:Q,matrixCoefficients:C,numPlanes:n,separateUvDeltaQ:m,subsamplingX:h,subsamplingY:d,transferCharacteristics:B}):(Q=i.readBit()!==0,A===0?(h=1,d=1):A===1?(h=0,d=0):t===12?(h=i.readBit(),h!==0?d=i.readBit():d=0):(h=1,d=0),h!==0&&d!==0&&(u=i.readBits(2)),m=i.readBit()!==0,{highBitDepth:e,bitDepth:t,monoChrome:g,chromaSamplePosition:u,colorPrimaries:a,colorRange:Q,matrixCoefficients:C,numPlanes:n,separateUvDeltaQ:m,subsamplingX:h,subsamplingY:d,transferCharacteristics:B})},gl=i=>{const A=PC(i);if(A)return{width:A.maxFrameWidth,height:A.maxFrameHeight}},Il=(i,A)=>{const e=i[0];if(!e)throw new Error("At least one sample must be provided");return oo({trackId:1,timestamp:e.timestamp,sequenceNumber:A,defaultSize:e.data.byteLength,defaultFlags:e.isSync?33554432:16842752,defaultDuration:e.duration,samples:i})},nl=(i,A)=>{const e=PC(i);if(!e)throw new Error("Failed to parse sequence header");return no([{type:"video",parsedSequenceHeader:e,sequenceHeader:new Uint8Array(i),width:e.maxFrameWidth,height:e.maxFrameHeight,timescale:A,duration:0,trackId:1}])},ol=i=>{const{codec:A,initData:e,timescale:t}=i;switch(A){case"h264":return Bl(e,t);case"av1":return rl(e,t);case"opus":return Cl(e,t,i.channelCount||2);case"aac":return Ql(e,t,i.channelCount||2);default:throw new Error(`Failed to initialize ${A} segment`)}},al=(i,A)=>{switch(i){case"h264":return YC(A);case"av1":return gl(A)}},Bl=(i,A)=>Pd(i,A),rl=(i,A)=>nl(i,A),Cl=(i,A,e)=>xd(new Uint8Array(i),e,A),Ql=(i,A,e)=>Td(new Uint8Array(i),e,A,A),El=(i,A)=>{if(!i[0])throw new Error("At least one sample must be provided");switch(i[0].codec){case"h264":return Yd(i,A);case"opus":return Wd(i,A);case"aac":return Kd(i,A);case"av1":return Il(i,A);default:throw new Error(`Unsupported codec ${i[0].codec}`)}},cl=i=>{if(!i)return;const A=i.channelMappingTable,e=new Uint8Array(19+A.byteLength),t=new DataView(e.buffer,e.byteOffset,e.byteLength);return e.set([79,112,117,115,72,101,97,100],0),t.setUint8(8,1),t.setUint8(9,i.channelCount),t.setUint16(10,i.preSkip,!0),t.setUint32(12,i.inputSampleRate,!0),t.setInt16(16,i.outputGain,!0),t.setUint8(18,i.channelMappingFamily),A.byteLength>0&&e.set(A,19),e},OC=(i,A)=>{if(i<1||i>2)return;const e=new Uint8Array(19),t=new DataView(e.buffer,e.byteOffset,e.byteLength);return e.set([79,112,117,115,72,101,97,100]),t.setUint8(8,1),t.setUint8(9,i),t.setUint16(10,3840,!0),t.setUint32(12,A,!0),t.setInt16(16,0,!0),t.setUint8(18,0),e},bg=i=>!!(i&1),hl=i=>!!(i&2),dl=i=>!!(i&4),ll=i=>!!(i&8),ul=i=>!!(i&16),ml=i=>{const A=new DataView(i,0),e=A.getUint8(0),t=A.getUint16(1),g=A.getUint8(3),n=A.getUint8(4),o=KA(new Uint8Array(i),5,12),a=A.getUint32(13),B=ul(g)?A.getInt16(17):void 0,C=i.slice(t);return{version:e,renditionId:n,flags:g,timestamp:o,timescale:a,payload:C,compositionTimeOffset:B}},wl="data:video/mp4;base64,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",ao=()=>"wakeLock"in navigator&&window.navigator.userAgent.indexOf("Samsung")===-1;class fl{constructor(){s(this,"enabled",!1);s(this,"wakeLockVideo");s(this,"_wakeLock",null);s(this,"handleVisibilityChange",()=>{this._wakeLock!==null&&document.visibilityState==="visible"&&this.enable()});ao()&&(this._wakeLock=null,document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("fullscreenchange",this.handleVisibilityChange))}_addSourceToVideo(A,e,t){const g=document.createElement("source");g.src=t,g.type=`video/${e}`,A.appendChild(g)}get isEnabled(){return this.enabled}attach(A){if(!ao()){if(!this.wakeLockVideo){const e=document.createElement("video");this.wakeLockVideo=e,this.wakeLockVideo.setAttribute("title","Live Stream"),this.wakeLockVideo.setAttribute("playsinline",""),this._addSourceToVideo(this.wakeLockVideo,"mp4",wl),Object.assign(this.wakeLockVideo.style,{position:"absolute",left:"-100%",top:"-100%"}),this.wakeLockVideo.addEventListener("loadedmetadata",()=>{e.addEventListener("timeupdate",()=>{e.currentTime>.5&&(e.currentTime=Math.random())})})}A&&A.appendChild(this.wakeLockVideo)}}enable(){return c(this,null,function*(){var A,e;return ao()?navigator.wakeLock.request("screen").then(t=>{this._wakeLock=t,this.enabled=!0,this._wakeLock.addEventListener("release",()=>{})}).catch(()=>{this.enabled=!1}):((e=(A=this.wakeLockVideo)==null?void 0:A.play())!=null?e:Promise.resolve()).then(g=>(this.enabled=!0,g)).catch(()=>{this.enabled=!1})})}disable(){var A,e;ao()?(this._wakeLock&&this._wakeLock.release(),this._wakeLock=null):((A=this.wakeLockVideo)==null||A.pause(),(e=this.wakeLockVideo)==null||e.remove()),this.enabled=!1}unload(){document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("fullscreenchange",this.handleVisibilityChange),this.disable()}}const Dl=/\r\n|\r|\n/;class VC{constructor(A){r(this,Rt);r(this,it);E(this,Rt,A),E(this,it,0)}skipEmptyLines(){let A=0;for(;I(this,Rt)[I(this,it)]==="";)te(this,it)._++,A++;return A}readLine(){return I(this,Rt)[te(this,it)._++]}takeUntilEmptyLine(){const A=[];for(;I(this,Rt)[I(this,it)]!=="";){const e=this.readLine();if(e===void 0)break;A.push(e)}return A}linesLeft(){return I(this,Rt).length-I(this,it)}}Rt=new WeakMap,it=new WeakMap;class ZC{constructor(){r(this,hi)}parse(A){const e=[],t=A.split(Dl),g=new VC(t),n=g.readLine();if(!n||!n.startsWith("WEBVTT"))throw new Error("missing 'WEBVTT' signature");for(;g.readLine()!=="";);for(;g.linesLeft()>0;){const o=l(this,hi,bE).call(this,g);o&&e.push(o),g.skipEmptyLines()}return e}}hi=new WeakSet,bE=function(A){A.skipEmptyLines();const e=A.takeUntilEmptyLine(),t=new VC(e);let g=t.readLine(),n;if(g!=null&&g.startsWith("NOTE"))return;if(g!=null&&g.includes("-->")||(n=g,g=t.readLine()),g===void 0)throw new Error("expected cue line");const[o,a]=g.split("-->").map(u=>u.trim());if(!o||!a)throw new Error(`a cue needs both start and end time start: ${o} end: ${a}`);const[B,C]=a.split(" ",1).map(u=>u.trim());if(!B)throw new Error(`missing end time: ${B}`);const Q=t.readLine();if(!Q)throw new Error("missing text");const h=l(this,hi,pr).call(this,o),d=l(this,hi,pr).call(this,B);return{id:n,startTime:h,endTime:d,text:Q}},pr=function(A){const e=A.split(":");if(e.length==2){const[a=0,B=0]=e.map(Q=>parseFloat(Q));return a*60+B}const[t=0,g=0,n=0]=e.map(a=>parseFloat(a));return t*60*60+g*60+n};const Sl=i=>{const A=window;A.vindralInstances=A.vindralInstances||{},A.vindralInstances[i.getStatistics().clientId.substring(0,8)]=i};class BB extends ie{constructor({type:e,autoplay:t,muted:g,volume:n,logger:o,poster:a}){super();s(this,"element");s(this,"logger");s(this,"seekTimes",new P(10));s(this,"seekStartTime");s(this,"_totalSeekTime",0);s(this,"_userProvidedMuted");s(this,"timers",new JA);s(this,"_userHasProvidedInput",!1);s(this,"_isPaused",!0);s(this,"isActivated",!1);s(this,"dummy");s(this,"_iosHackEnterPiPMode",()=>{const e=this.element.parentElement,t=this.element.clientWidth/this.element.clientHeight;this.element.style.position="fixed",this.element.style.opacity="0",this.element.style.pointerEvents="none",e&&(this.dummy=document.createElement("video"),this.dummy.style.paddingBottom="calc(100% / "+t+")",this.dummy.style.width="100%",this.dummy.style.height="0px",e.appendChild(this.dummy))});s(this,"_iosHackExitPiPMode",()=>{this.element.style.position="relative",this.element.style.opacity="1",this.element.style.pointerEvents="auto",this.dummy&&(this.dummy.remove(),this.dummy=void 0)});s(this,"attach",e=>{this.element.remove(),e.appendChild(this.element)});s(this,"load",()=>{this.timers.setInterval(this.onPlayPause,500),this.timers.setTimeout(()=>{this.timers.setInterval(this.onBufferStateChange,500)},1e4)});s(this,"unload",()=>{this.timers.unload()});s(this,"getPlaybackRate",()=>this.element.playbackRate);s(this,"getPlaybackState",()=>this.element.readyState>=this.element.HAVE_FUTURE_DATA?"playing":"buffering");s(this,"setPlaybackRate",e=>{this.element.playbackRate=e});s(this,"getBuffer",()=>{const e=[],t=this.element.buffered;if(!t)return[];for(let g=0;g<t.length;g++)e.push({start:t.start(g)*1e3,end:t.end(g)*1e3});return e});s(this,"pause",()=>{this._isPaused=!1,this.element.pause()});s(this,"tryPlay",()=>{this.element.muted=this._userProvidedMuted,this._play().catch(G)});s(this,"play",()=>{this.element.muted=this._userProvidedMuted,this._play().catch(e=>{if(e instanceof Error){const t=new x("Media Play Error",{source:e,isFatal:!1,code:"media_play_error"});this.emit("error",t)}})});s(this,"_play",()=>c(this,null,function*(){try{yield this.element.play(),this._userHasProvidedInput=!this.muted||this._userProvidedMuted}catch(e){if(e instanceof Error&&e.name==="NotAllowedError")if(this._userHasProvidedInput=!1,this.element.muted)this.emit("needs user input",{forAudio:!0,forVideo:!0});else return this.element.muted=!0,this.emit("needs user input",{forAudio:!0,forVideo:!1}),this._play();else throw e}}));s(this,"onEvent",e=>{this.logger.trace(e.type,{state:this.element.readyState,event:e,playbackState:this.getPlaybackState()})});s(this,"onVolumeChange",()=>{this.logger.info("volume state",{isMuted:this.element.muted,volume:this.element.volume}),this.emit("volume state",{isMuted:this.element.muted,volume:this.element.volume})});s(this,"onPlayPause",()=>{this._isPaused!==this.element.paused&&(this._isPaused=this.element.paused,this.logger.info("player pause change",{paused:this.element.paused}),this.emit("media element state",this.element.paused?"paused":"playing"))});s(this,"onBufferStateChange",()=>{this.emit("buffer state",{isPaused:this.element.paused,buffered:this.getBuffer(),currentTime:this.currentTime,playbackState:this.getPlaybackState()})});s(this,"onSeekStart",()=>{this.seekStartTime=Date.now()});s(this,"onSeekEnd",()=>{if(!this.seekStartTime)return;const e=Date.now()-this.seekStartTime;this.seekTimes.push(e),this._totalSeekTime+=e,this.seekStartTime=void 0});this.logger=o,this._userProvidedMuted=g,this.element=document.createElement(e),this.element instanceof HTMLVideoElement&&(this.element.playsInline=!0),this.element.controls=!1,this.element.autoplay=t,this.element.muted=g,n!==void 0&&(this.element.volume=n),this.element.style.display="block",this.element.style.width="100%",this.element.disableRemotePlayback=!0,this.element.setAttribute("poster","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAJCAQAAACRI2S5AAAAEElEQVR42mNkIAAYRxWAAQAG9gAKqv6+AwAAAABJRU5ErkJggg=="),this.onPlayPause(),setTimeout(()=>{!this.element||!a||this.element.setAttribute("poster",a)},0),this.element.addEventListener("stalled",this.onEvent),this.element.addEventListener("canplay",this.onEvent),this.element.addEventListener("loadeddata",this.onEvent),this.element.addEventListener("loadedmetadata",this.onEvent),this.element.addEventListener("canplaythrough",this.onEvent),this.element.addEventListener("waiting",this.onEvent),this.element.addEventListener("playing",this.onPlayPause),this.element.addEventListener("pause",this.onPlayPause),this.element.addEventListener("seeked",this.onSeekEnd),this.element.addEventListener("seeking",this.onSeekStart),this.element.addEventListener("volumechange",this.onVolumeChange),this.element.addEventListener("timeupdate",this.onBufferStateChange),this.element.addEventListener("progress",this.onBufferStateChange)}get seekTime(){return this.seekTimes.isEmpty()?0:we(this.seekTimes.items())}get totalSeekTime(){return this._totalSeekTime}get isSeeking(){return this.element.seeking}get currentTime(){return isNaN(this.element.currentTime)?0:this.element.currentTime*1e3}set currentTime(e){Number.isFinite(e)&&(this.element.currentTime=e/1e3)}get playbackRate(){return this.element.playbackRate}set playbackRate(e){this.element.playbackRate=e}get volume(){return this.element.volume}set volume(e){this.element.volume=e}get muted(){return this.element.muted}set muted(e){this._userProvidedMuted=e,this.element.muted=e}get userHasProvidedInput(){return this._userHasProvidedInput}get isPaused(){return this._isPaused}}const pl=i=>{if(!navigator.mediaCapabilities)return Promise.resolve({smooth:!0,supported:!0,powerEfficient:!0,failedToQuery:!0});if(i.codec==="webvtt")throw new Error("WebVTT is not supported");let A;return ti(i)?A={type:"media-source",audio:{contentType:mt(i),bitrate:i.bitRate,channels:i.channels.toString(),samplerate:i.sampleRate}}:A={type:"media-source",video:{contentType:mt(i),bitrate:i.bitRate,width:i.width,height:i.height,framerate:i.frameRate[0]/i.frameRate[1]}},navigator.mediaCapabilities.decodingInfo(A)},yl=.15,Fl=.2,XC=.4,kl=.5,Rl=.6,rB=15,Gl={cooldownTime:3e3,maxBufferingEvents:{last10Seconds:0},maxBufferingRatio:{last10Seconds:0},maxRecentDowngradesCount:3,maxDowngradeLookbackMs:60*1e3,minTimeSpentPlaying:{factor:.5,ratio:.1},maxCooldownRatio:2},CB=i=>A=>A>i,qo=class qo{constructor(A,e,t,g){s(this,"qualityOfServiceSource");s(this,"config");s(this,"emitter");s(this,"logger");s(this,"isSuspended",!1);s(this,"lastAdaptTime",Date.now());s(this,"isEnabled",!0);s(this,"load",()=>{this.emitter.on("buffer state",this.onBufferState),this.emitter.on("adapted level",this.onAdaptedLevel)});s(this,"unload",()=>{this.emitter.off("buffer state",this.onBufferState),this.emitter.off("adapted level",this.onAdaptedLevel)});s(this,"suspend",()=>{this.isSuspended=!0});s(this,"unsuspend",()=>{this.reset(),this.isSuspended=!1});s(this,"reset",(A=0)=>{this.lastAdaptTime=Date.now()+A});s(this,"getStatistics",()=>({isAbrEnabled:this.isEnabled}));s(this,"isQoSOk",A=>{const e=this.qualityOfServiceSource.getLevelStats(A),{upgradesFromLevel:t,downgradesFromLevel:g}=e!=null?e:{upgradesFromLevel:[],downgradesFromLevel:[]},n=Date.now()-this.config.maxDowngradeLookbackMs,o=g.filter(CB(n)).length,a=t.filter(CB(n)).length;if(o-a>this.config.maxRecentDowngradesCount)return this.logger.debug("Recent downgrades count is over maximum",{downgrades:o-a,maxRecentDowngradesCount:this.config.maxRecentDowngradesCount}),!1;const B=this.qualityOfServiceSource.timeSpentPlayingInAtLeastLevelRatio(A),C=this.qualityOfServiceSource.timeActive()-this.qualityOfServiceSource.timeSpentBuffering(),Q=B*C/this.config.maxDowngradeLookbackMs;if(o>1&&Q<this.config.minTimeSpentPlaying.factor)return this.logger.debug("Time spent playing is too low",{recentDowngrades:o,timeSpentPlayingInAtLeastLevelRatio:B}),!1;if(o>1&&B<this.config.minTimeSpentPlaying.ratio)return this.logger.debug("Time spent playing in at least this level is too low",{recentDowngrades:o,timeSpentPlayingInAtLeastLevelRatio:B}),!1;const h=Math.max(0,g.length-t.length-Q),d=Date.now()-this.config.maxDowngradeLookbackMs*h,u=g.filter(CB(d)).length;return u&&h>this.config.maxCooldownRatio?(this.logger.debug("Too many downgrades compared to time spent playing",{downgradesWithinCooldownTime:u,cooldownRatio:h}),!1):!0});s(this,"onBufferState",A=>{if(!this.isEnabled||this.isSuspended||this.lastAdaptTime+this.config.cooldownTime>Date.now())return;const{bufferFullness:e,general:t}=this.qualityOfServiceSource.getMetrics(),g=this.qualityOfServiceSource.getBufferFullnessRegression();if(!g)return;const n=10*1e3,o=30*1e3,{slope:a}=g,B=g.predict(rB),C=a<0,Q=g.predict(rB)<XC&&g.slope<0,h=g.predict(rB)>Rl,d=this.qualityOfServiceSource.timeSpentBufferingLast(o),u=this.qualityOfServiceSource.timeSpentActiveLast(o),m=this.qualityOfServiceSource.bufferingEventsLast(o),p=u>0?d/u:0,y=this.qualityOfServiceSource.getTargetBufferTime();if(e<.15&&p>.8){this.adaptLevel("reconnect");return}if(t.decodeRate<=.9){this.adaptLevel("downgrade");return}if(e>kl&&h&&!this.tooMuchTimeBuffering(n)&&!this.tooManyBufferingEvents(n)){this.adaptLevel("upgrade");return}if(y<1e3){A.playbackState==="buffering"&&(m>5||p>.3)&&this.adaptLevel("downgrade");return}(Q||e<yl)&&C&&e<XC&&B<Fl&&this.adaptLevel(A.playbackState==="buffering"?"double downgrade":"downgrade")});s(this,"onAdaptedLevel",()=>{this.reset()});s(this,"adaptLevel",A=>this.emitter.emit("adapt level",A));this.qualityOfServiceSource=t,this.config=f(f({},Gl),g),this.emitter=A,this.logger=e}tooMuchTimeBuffering(A){const e=this.qualityOfServiceSource.timeSpentActiveLast(A);return(e?this.qualityOfServiceSource.timeSpentBufferingLast(A)/e:0)>this.config.maxBufferingRatio.last10Seconds}tooManyBufferingEvents(A){return this.qualityOfServiceSource.timeSpentBufferingLast(A)>this.config.maxBufferingEvents.last10Seconds}};s(qo,"create",(A,e,t,g={})=>new qo(A,e,t,g));let QB=qo;const Ul={minBufferTime:1500,maxBufferTime:1500,cooldownTime:3e4,maxBufferingEvents:{last30Seconds:3},maxBufferingRatio:{last30Seconds:.15}},Gt=class Gt{constructor(A,e,t,g,n){s(this,"qualityOfServiceSource");s(this,"targetBufferTimeTarget");s(this,"config");s(this,"emitter");s(this,"logger");s(this,"isSuspended",!1);s(this,"lastIncreaseTime",Date.now());s(this,"bufferTimeAdjustmentCount",0);s(this,"load",()=>{this.emitter.on("buffer state",this.onBufferState)});s(this,"unload",()=>{this.emitter.off("buffer state",this.onBufferState)});s(this,"suspend",()=>{this.isSuspended=!0});s(this,"unsuspend",()=>{this.reset(),this.isSuspended=!1});s(this,"reset",()=>{this.lastIncreaseTime=Date.now()});s(this,"getStatistics",()=>({bufferTimeAdjustmentCount:this.bufferTimeAdjustmentCount}));s(this,"onBufferState",A=>{const{minBufferTime:e,maxBufferTime:t,cooldownTime:g}=this.config;if(this.isSuspended||this.lastIncreaseTime+g>Date.now()||this.targetBufferTimeTarget.targetBufferTime>=t)return;const n=this.qualityOfServiceSource.timeSpentBufferingLast(30*1e3),o=this.qualityOfServiceSource.bufferingEventsLast(30*1e3),a=this.qualityOfServiceSource.timeSpentActiveLast(30*1e3),B=n/a,C=Math.ceil(Math.max((t-e)/(Gt.BUFFER_TIME_MAX_STEPS-1),Gt.BUFFER_TIME_STEP_SIZE));(B>this.config.maxBufferingRatio.last30Seconds||o>this.config.maxBufferingEvents.last30Seconds)&&(this.targetBufferTimeTarget.targetBufferTime=Math.min(t,this.targetBufferTimeTarget.targetBufferTime+C),this.bufferTimeAdjustmentCount++,this.reset())});this.qualityOfServiceSource=t,this.targetBufferTimeTarget=g,this.config=f(f({},Ul),n),this.emitter=A,this.logger=e}updateConfig(A){this.config=f(f({},this.config),A)}};s(Gt,"BUFFER_TIME_STEP_SIZE",500),s(Gt,"BUFFER_TIME_MAX_STEPS",3),s(Gt,"create",(A,e,t,g,n={})=>new Gt(A,e,t,g,n));let EB=Gt;const bl=i=>i?{Authorization:`Bearer ${i}`}:void 0,Nl=(i,A)=>{try{const e=i.ancestorOrigins;if(e&&e.length>0)return Array.from(e).join(",")||void 0}catch(e){}try{if(A.referrer)return new URL(A.referrer).origin||void 0}catch(e){}},Ll=i=>typeof i=="object"&&i!==null&&"message"in i;class Jl extends Error{constructor({status:e,url:t,body:g}){const n=_r(g),o=Ll(n)?n.message:`Url ${t.toString()}, Status code: ${e}, Body: ${g}`;super(o);s(this,"status");s(this,"body");s(this,"url");this.status=e,this.body=g,this.url=t,Object.setPrototypeOf(this,new.target.prototype)}}const Ml=i=>typeof i.status=="number",vl=()=>{if(!(typeof window=="undefined"||typeof document=="undefined"))return Nl(window.location,document)},Hl=i=>{const A=vl();if(!A||i.searchParams.has("parentOrigin"))return i;const e=new URL(i.toString());return e.searchParams.append("parentOrigin",A),e},jC=(i,A)=>c(null,null,function*(){const e=Hl(i),t=yield fetch(e.toString(),f({mode:"cors"},A));if(!t.ok)throw new Jl({status:t.status,url:e,body:yield t.text()});return t}),cB=(i,A)=>c(null,null,function*(){return yield(yield jC(i,f({},A))).json()}),zC=(i,A)=>c(null,null,function*(){return jC(i,f({method:"POST"},A))});function ql(i){var A;return!(typeof i.edges[0]=="string"||i.channels[0]&&"catalog"in i.channels[0]&&typeof((A=i.channels[0])==null?void 0:A.catalog)=="undefined")}const _C={lbConnect:i=>i.channelGroupId?`connect?channelId=${i.channelId}&channelGroupId=${i.channelGroupId}`:`connect?channelId=${i.channelId}`,thumbnails:(i,A)=>A?i.channelGroupId?`thumbnail/?channelGroupId=${i.channelGroupId}&auth.token=${A}&auth.type=jwt`:i.channelId?`thumbnail/?channelId=${i.channelId}&auth.token=${A}&auth.type=jwt`:"thumbnail":"thumbnail"};class $C{constructor(A){s(this,"baseUrl");s(this,"tokenFactory");this.baseUrl=new URL("/api/v4/",A.publicEndpoint).toString(),this.tokenFactory=A.tokenFactory}connect(A){return c(this,null,function*(){const{channelId:e,channelGroupId:t}=A,g={channelId:e,channelGroupId:t},n=new URL(_C.lbConnect(A),this.baseUrl),o=this.getAuthToken(g),a=yield cB(n,{headers:this.getHeaders(o)});if(ql(a)){const B=a.channels.map(C=>{const Q=this.toChannel(C,g),h=iC(C.catalog);return V(f(f({},C),Q),{renditions:h})});return V(f({},a),{channels:B})}else{const B=a.channels.map(C=>{const Q=this.toChannel(C,g);return f(f({},C),Q)});return V(f({},a),{channels:B})}})}getChannel(A){return c(this,null,function*(){const e={channelId:A},t=new URL(`channel/${A}`,this.baseUrl),g=this.getAuthToken(e),n=yield cB(t,{headers:this.getHeaders(g)});return this.toChannel(n,e,g)})}getChannels(A){return c(this,null,function*(){const e={channelGroupId:A},t=new URL(`channels/${A}`,this.baseUrl),g=this.getAuthToken(e),n=yield cB(t,{headers:this.getHeaders(g)}),o=Array.isArray(n)?n:n.channels;return this.toChannels(o,e,g)})}getHeaders(A){var t;return(t=bl(A))!=null?t:{}}getAuthToken(A){return this.tokenFactory?this.tokenFactory(A):void 0}toChannels(A,e,t){return A.map(g=>this.toChannel(g,e,t))}toChannel(A,e,t){const{baseUrl:g,sizes:n}=A.thumbnail,o=g||new URL(_C.thumbnails(e,t),this.baseUrl),a=n.map(B=>new URL(`?channelId=${A.channelId}&width=${B.width}&height=${B.height}${Kl(e,t)}`,o).toString());return{channelId:A.channelId,name:A.name,isLive:A.isLive,thumbnailUrls:a}}}const Kl=(i,A)=>A?i.channelGroupId?`&channelGroupId=${i.channelGroupId}&auth.token=${A}&auth.type=jwt`:`&auth.token=${A}&auth.type=jwt`:"";var Bo=(i=>(i[i.StreamHeaderGroup=4]="StreamHeaderGroup",i[i.FetchHeader=5]="FetchHeader",i[i.StreamHeaderTrack=60]="StreamHeaderTrack",i))(Bo||{});const WA={Normal:0,ObjectDoesNotExist:1,GroupDoesNotExist:2,EndOfGroup:3,EndOfTrackAndGroup:4};function AQ(i){switch(i){case WA.Normal:case WA.ObjectDoesNotExist:case WA.GroupDoesNotExist:case WA.EndOfGroup:case WA.EndOfTrackAndGroup:return}throw new Error("Unknown object status "+i)}class Tl{constructor(A,e,t,g,n,o){r(this,Te);r(this,ws);r(this,fs);r(this,mI);r(this,wI);r(this,Ds,new _);r(this,fI,0);r(this,DI);E(this,Te,A),E(this,ws,e),E(this,fs,t),E(this,mI,g),E(this,wI,n),E(this,DI,o)}endStatus(){return I(this,Ds).promise}groupId(){return I(this,ws)}subscribeId(){return I(this,fs)}next(){return c(this,null,function*(){if(!I(this,Ds).pending)return{done:!0,value:void 0};if(yield I(this,Te).isDone())return{done:!0,value:void 0};const A=I(this,fI)===0?I(this,ws):yield I(this,Te).readBigVarInt(),e=yield I(this,Te).readBigVarInt(),t=yield I(this,Te).readVarInt();let g=0,n=new Uint8Array;return t>0?n=yield I(this,Te).read(t):g=yield I(this,Te).readVarInt(),AQ(g),(g===WA.EndOfTrackAndGroup||g===WA.EndOfGroup)&&I(this,Ds).resolve(g),te(this,fI)._++,{done:!1,value:{subscribeId:I(this,fs),trackAlias:I(this,mI),groupId:A,subGroupId:M(0),objectId:e,subscriberPriority:I(this,wI),streamId:I(this,DI),objectStatus:g,payload:n}}})}return(){return c(this,null,function*(){for(;!(yield this.next()).done;);return{done:!0,value:void 0}})}[Symbol.asyncIterator](){return this}[Me()](){return Promise.resolve()}[Symbol.asyncDispose](){return Promise.resolve()}}Te=new WeakMap,ws=new WeakMap,fs=new WeakMap,mI=new WeakMap,wI=new WeakMap,Ds=new WeakMap,fI=new WeakMap,DI=new WeakMap;class Yl{constructor(A,e,t,g,n){r(this,di);r(this,Ye);r(this,Ss);r(this,SI);r(this,pI);r(this,ps);E(this,Ye,A),E(this,Ss,e),E(this,SI,t),E(this,pI,g),E(this,ps,n)}streamId(){return I(this,ps)}groups(){return l(this,di,NE).call(this)}subscribeId(){return I(this,Ss)}return(){return c(this,null,function*(){return yield I(this,Ye).close(),{done:!0,value:void 0}})}[Symbol.asyncIterator](){return this}[Me()](){return l(this,di,yr).call(this)}[Symbol.asyncDispose](){return l(this,di,yr).call(this)}}Ye=new WeakMap,Ss=new WeakMap,SI=new WeakMap,pI=new WeakMap,ps=new WeakMap,di=new WeakSet,NE=function(){return lt(this,null,function*(){for(;!(yield new rA(I(this,Ye).isDone()));){const A=yield new rA(I(this,Ye).readBigVarInt()),e=new Tl(I(this,Ye),A,I(this,Ss),I(this,SI),I(this,pI),I(this,ps));if(yield e,(yield new rA(Promise.race([e.endStatus(),I(this,Ye).closed()])))===WA.EndOfTrackAndGroup)return}})},yr=function(){return I(this,Ye).close().catch(()=>{})};class Pl{constructor(A,e,t,g,n,o,a){r(this,li);r(this,ye);r(this,ys);r(this,yI);r(this,Fs);r(this,FI);r(this,kI);r(this,RI,!1);r(this,ks);r(this,Ko,GA.get().createContext("GroupReader"));E(this,ye,A),E(this,ys,e),E(this,yI,t),E(this,Fs,g),E(this,FI,n),E(this,kI,o),E(this,ks,a)}streamId(){return I(this,ks)}groupId(){return I(this,Fs)}subscribeId(){return I(this,ys)}next(){return c(this,null,function*(){try{if((yield I(this,ye).isDone())||I(this,RI))return{done:!0,value:void 0};const A=yield I(this,ye).readBigVarInt(),e=yield I(this,ye).readVarInt();let t=0,g=new Uint8Array;return e>0?g=yield I(this,ye).read(e):t=yield I(this,ye).readVarInt(),AQ(t),t===WA.EndOfGroup&&E(this,RI,!0),{done:!1,value:{subscribeId:I(this,ys),trackAlias:I(this,yI),groupId:I(this,Fs),subGroupId:I(this,FI),subscriberPriority:I(this,kI),streamId:I(this,ks),objectId:A,objectStatus:t,payload:g}}}catch(A){return I(this,Ko).info("Error reading object",{error:A}),{done:!0,value:void 0}}})}return(){return c(this,null,function*(){return yield I(this,ye).close().catch(()=>{}),{done:!0,value:void 0}})}groups(){return l(this,li,LE).call(this)}[Symbol.asyncIterator](){return this}[Me()](){return l(this,li,Fr).call(this)}[Symbol.asyncDispose](){return l(this,li,Fr).call(this)}}ye=new WeakMap,ys=new WeakMap,yI=new WeakMap,Fs=new WeakMap,FI=new WeakMap,kI=new WeakMap,RI=new WeakMap,ks=new WeakMap,Ko=new WeakMap,li=new WeakSet,LE=function(){return lt(this,null,function*(){yield this})},Fr=function(){return I(this,ye).close().catch(()=>{})};function eQ(i,A){return c(this,null,function*(){const e=yield i.readVarInt();switch(e){case Bo.StreamHeaderGroup:{const t=yield i.readBigVarInt(),g=yield i.readBigVarInt(),n=yield i.readBigVarInt(),o=yield i.readBigVarInt(),a=yield i.readUnsigned8();return new Pl(i,t,g,n,o,a,A)}case Bo.StreamHeaderTrack:{const t=yield i.readBigVarInt(),g=yield i.readBigVarInt(),n=yield i.readUnsigned8();return new Yl(i,t,g,n,A)}default:throw new Error("Unexpected message type "+e)}})}class xl{constructor(A,e){r(this,Ut);r(this,GI);E(this,Ut,A),E(this,GI,e)}start(A){I(this,Ut).addEventListener("message",e=>{if(typeof e.data=="object"&&e.data instanceof ArrayBuffer){const t=new Uint8Array(e.data);t[0]==I(this,GI)&&A.enqueue(t.subarray(1))}}),I(this,Ut).addEventListener("error",()=>A.error(new Error("WebSocket error"))),I(this,Ut).addEventListener("close",()=>zr(()=>A.close()))}cancel(A){I(this,Ut).close(void 0,A)}}Ut=new WeakMap,GI=new WeakMap;class Wl{constructor(A){r(this,Pe);r(this,ui,null);r(this,mi,null);r(this,wi,null);E(this,Pe,A)}start(A){E(this,ui,e=>{if(typeof e.data=="object"&&e.data instanceof ArrayBuffer){const t=new Uint8Array(e.data),g=t[0]||0,n=g&127,o=(g>>7&1)>0;if(n&&n!==0){const a=t.subarray(1);A.enqueue([o,n,a])}}}),E(this,mi,()=>zr(()=>A.close())),E(this,wi,()=>A.error(new Error("WebSocket error"))),I(this,Pe).addEventListener("message",I(this,ui)),I(this,Pe).addEventListener("error",I(this,wi)),I(this,Pe).addEventListener("close",I(this,mi))}cancel(A){I(this,ui)&&I(this,Pe).removeEventListener("message",I(this,ui)),I(this,wi)&&I(this,Pe).removeEventListener("error",I(this,wi)),I(this,mi)&&I(this,Pe).removeEventListener("close",I(this,mi))}}Pe=new WeakMap,ui=new WeakMap,mi=new WeakMap,wi=new WeakMap;function Ol(i,A){return i[A]<<8|i[A+1]}function Vl(i,A){return(i[A]<<24|i[A+1]<<16|i[A+2]<<8|i[A+3])>>>0}class ro{constructor(A,e){r(this,CA);r(this,vA);r(this,UI);r(this,fi);r(this,pA,0);r(this,To,new TextDecoder);E(this,vA,A),E(this,UI,e),E(this,fi,e.getReader())}readUnsigned8(){return c(this,null,function*(){return yield l(this,CA,$i).call(this,1),I(this,vA)[te(this,pA)._++]})}readString(){return c(this,null,function*(){const A=yield this.readVarInt(),e=yield this.read(A);return I(this,To).decode(e)})}readVarInt(){return c(this,null,function*(){const A=yield this.readBigVarInt();if(A>Number.MAX_SAFE_INTEGER)throw new Error("VarInt is too large");return Number(A)})}readBigVarInt(){return c(this,null,function*(){yield l(this,CA,$i).call(this,1);const A=I(this,vA)[I(this,pA)],e=(A&192)>>6;switch(I(this,vA)[I(this,pA)]=A&63,e){case 0:return M(I(this,vA)[te(this,pA)._++]);case 1:{yield l(this,CA,$i).call(this,2);const t=I(this,pA);return E(this,pA,I(this,pA)+2),M(Ol(I(this,vA),t))}case 2:{yield l(this,CA,$i).call(this,4);const t=I(this,pA);return E(this,pA,I(this,pA)+4),M(Vl(I(this,vA),t))}case 3:{yield l(this,CA,$i).call(this,8);const t=I(this,pA);E(this,pA,I(this,pA)+8);const g=new DataView(I(this,vA).buffer,I(this,vA).byteOffset+t,8);return M(Mn?g.getBigUint64(0):g.getUint32(0)*4294967296+g.getUint32(4))}default:throw new Error("Invalid VarInt size")}})}read(A){return c(this,null,function*(){return yield l(this,CA,$i).call(this,A),l(this,CA,kr).call(this,A)})}readAll(){return c(this,null,function*(){for(;yield l(this,CA,ba).call(this););return l(this,CA,kr).call(this,l(this,CA,Un).call(this))})}isDone(){return c(this,null,function*(){return l(this,CA,Un).call(this)>0?!1:(yield l(this,CA,ba).call(this))==0})}closed(){return c(this,null,function*(){return I(this,fi).closed})}close(){return c(this,null,function*(){return I(this,fi).releaseLock(),I(this,UI).cancel()})}}vA=new WeakMap,UI=new WeakMap,fi=new WeakMap,pA=new WeakMap,To=new WeakMap,CA=new WeakSet,Un=function(){return I(this,vA).length-I(this,pA)},ba=function(){return c(this,null,function*(){const{value:A,done:e}=yield I(this,fi).read();if(e)return Promise.resolve(0);if(l(this,CA,Un).call(this)===0)E(this,vA,A);else{const g=I(this,vA).subarray(I(this,pA)),n=new Uint8Array(g.length+A.length);n.set(g),n.set(A,g.byteLength),E(this,vA,n)}return E(this,pA,0),Promise.resolve(A.length)})},$i=function(A){return c(this,null,function*(){for(;l(this,CA,Un).call(this)<A;)if((yield l(this,CA,ba).call(this))===0)throw new Error("Read failed")})},JE=function(A){return I(this,vA).subarray(I(this,pA),I(this,pA)+A)},kr=function(A){const e=l(this,CA,JE).call(this,A);return E(this,pA,I(this,pA)+e.length),e};class tQ{constructor(A){r(this,NI);r(this,xe,new Uint8Array(8));r(this,bI,I(this,xe).subarray(0,1));r(this,Yo,I(this,xe).subarray(0,2));r(this,Po,I(this,xe).subarray(0,4));r(this,xo,I(this,xe).subarray(0,8));r(this,Rs);r(this,st);r(this,Wo,new TextEncoder);E(this,Rs,A),E(this,st,I(this,Rs).getWriter())}writeString(A){return c(this,null,function*(){const e=I(this,Wo).encode(A);return yield this.writeVarInt(e.length),this.write(e)})}write(A){return I(this,st).write(A)}writeUnsigned8(A){return I(this,xe)[0]=A,I(this,st).write(I(this,bI))}writeVarInt(A){if(A<0)throw new Error(`VarInt can not be negative: ${A}`);return I(this,st).write(l(this,NI,Rr).call(this,BQ(A,I(this,xe),0)))}writeBigVarInt(A){if(A<0)throw new Error(`VarInt can not be negative: ${A}`);return I(this,st).write(l(this,NI,Rr).call(this,rQ(A,I(this,xe),0)))}flush(){return c(this,null,function*(){})}close(){return c(this,null,function*(){I(this,st).releaseLock(),yield I(this,Rs).close()})}}xe=new WeakMap,bI=new WeakMap,Yo=new WeakMap,Po=new WeakMap,xo=new WeakMap,Rs=new WeakMap,st=new WeakMap,Wo=new WeakMap,NI=new WeakSet,Rr=function(A){switch(A){case 1:return I(this,bI);case 2:return I(this,Yo);case 4:return I(this,Po);default:return I(this,xo)}};const iQ={OPEN:1},Vo=class Vo{constructor(A){r(this,Ae,0);r(this,Ee,new Uint8Array(Vo.DEFAULT_BUFFER_SIZE));r(this,Di);r(this,Oo,new TextEncoder);E(this,Di,A)}writeString(A){return c(this,null,function*(){const e=I(this,Oo).encode(A);return yield this.writeVarInt(e.length),this.write(e)})}ensureBufferSpace(A){if(I(this,Ee).length-I(this,Ae)>=A)return;const e=new Uint8Array(I(this,Ee).length+A);e.set(I(this,Ee)),E(this,Ee,e)}write(A){return this.ensureBufferSpace(A.length),I(this,Ee).set(A,I(this,Ae)),E(this,Ae,I(this,Ae)+A.byteLength),Promise.resolve()}writeUnsigned8(A){return this.ensureBufferSpace(1),I(this,Ee)[I(this,Ae)]=A,E(this,Ae,I(this,Ae)+1),Promise.resolve()}writeVarInt(A){if(A<0)throw new Error(`VarInt can not be negative: ${A}`);return this.ensureBufferSpace(8),E(this,Ae,I(this,Ae)+BQ(A,I(this,Ee),I(this,Ae))),Promise.resolve()}writeBigVarInt(A){if(A<0)throw new Error(`VarInt can not be negative: ${A}`);return this.ensureBufferSpace(8),E(this,Ae,I(this,Ae)+rQ(A,I(this,Ee),I(this,Ae))),Promise.resolve()}flush(){if(I(this,Di).readyState!==iQ.OPEN)throw new Error("Writer is not open");return I(this,Di).send(I(this,Ee).subarray(0,I(this,Ae))),E(this,Ae,0),Promise.resolve()}close(){return I(this,Di).close(),Promise.resolve()}};Ae=new WeakMap,Ee=new WeakMap,Di=new WeakMap,Oo=new WeakMap,s(Vo,"DEFAULT_BUFFER_SIZE",1024);let Ng=Vo;const sQ=2**6-1,gQ=2**14-1,IQ=2**30-1,nQ=Number.MAX_SAFE_INTEGER;function oQ(i,A,e){A[e]=i>>8&255,A[e+1]=i&255}function aQ(i,A,e){A[e]=i>>>24&255,A[e+1]=i>>16&255,A[e+2]=i>>8&255,A[e+3]=i&255}function BQ(i,A,e){if(i<=sQ)return A[e]=i,1;if(i<=gQ)return oQ(i|16384,A,e),2;if(i<=IQ)return aQ(i|2147483648,A,e),4;if(i<=nQ)return CQ(i,A,e),8;throw new Error(`overflow, value larger than 53-bits: ${i}`)}function rQ(i,A,e){if(i<=sQ)return A[e]=Number(i),1;if(i<=gQ)return oQ(Number(i)|16384,A,e),2;if(i<=IQ)return aQ(Number(i)|2147483648,A,e),4;if(i<=nQ)return CQ(Number(i),A,e),8;throw new Error(`overflow, value larger than 53-bits: ${i}`)}function CQ(i,A,e){const t=new DataView(A.buffer,A.byteOffset+e,8);t.setUint32(0,i/4294967296),t.setUint32(4,i&4294967295),A[e]=192}var q=(i=>(i[i.SubscribeUpdate=2]="SubscribeUpdate",i[i.Subscribe=3]="Subscribe",i[i.SubscribeOk=4]="SubscribeOk",i[i.SubscribeError=5]="SubscribeError",i[i.Announce=6]="Announce",i[i.AnnounceOk=7]="AnnounceOk",i[i.AnnounceError=8]="AnnounceError",i[i.Unannounce=9]="Unannounce",i[i.Unsubscribe=10]="Unsubscribe",i[i.SubscribeDone=11]="SubscribeDone",i[i.AnnounceCancel=12]="AnnounceCancel",i[i.TrackStatusRequest=13]="TrackStatusRequest",i[i.TrackStatus=14]="TrackStatus",i[i.Goaway=16]="Goaway",i[i.ClientSetup=64]="ClientSetup",i[i.ServerSetup=65]="ServerSetup",i[i.Unknown=255]="Unknown",i))(q||{});function Co(i){return c(this,null,function*(){const A=yield i.readVarInt();if(A<1||A>32)throw new Error(`namespace must be between 1 and 32, got ${A}`);const e=[];for(let t=0;t<A;t++)e.push(yield i.readString());return e})}function hB(i,A){return c(this,null,function*(){yield i.writeVarInt(A.length);for(const e of A)yield i.writeString(e)})}const Qo=M(2);function as(i){return c(this,null,function*(){const A=yield i.readVarInt(),e=new Map;for(let t=0;t<A;t++){const g=yield i.readBigVarInt(),n=yield i.read(yield i.readVarInt());e.set(g,{type:g,payload:n})}return e})}function Bs(i,A){return c(this,null,function*(){yield i.writeVarInt(A.size);for(const[e,t]of A)yield i.writeBigVarInt(e),yield i.writeVarInt(t.payload.length),yield i.write(t.payload)})}function Zl(i){return c(this,null,function*(){return{type:q.Announce,namespace:yield Co(i),params:yield as(i)}})}function Xl(i,A){return c(this,null,function*(){yield hB(i,A.namespace),yield Bs(i,A.params)})}function jl(i){return c(this,null,function*(){return{type:q.AnnounceOk,namespace:yield Co(i)}})}function zl(i,A){return c(this,null,function*(){yield hB(i,A.namespace)})}const _l={"latest-group":1,"latest-object":2,"absolute-start":3,"absolute-range":4};function $l(i){return c(this,null,function*(){const A=yield i.readVarInt();switch(A){case 1:return{type:"latest-group"};case 2:return{type:"latest-object"};case 3:return{type:"absolute-start",start:{group:yield i.readBigVarInt(),object:yield i.readBigVarInt()}};case 4:return{type:"absolute-range",start:{group:yield i.readBigVarInt(),object:yield i.readBigVarInt()},end:{group:yield i.readBigVarInt(),object:yield i.readBigVarInt()}};default:throw new Error(`Invalid location type ${A}`)}})}function Au(i,A){return c(this,null,function*(){const e=_l[A.type];switch(yield i.writeVarInt(e),A.type){case"absolute-range":yield i.writeBigVarInt(A.start.group),yield i.writeBigVarInt(A.start.object),yield i.writeBigVarInt(A.end.group),yield i.writeBigVarInt(A.end.object);break;case"absolute-start":yield i.writeBigVarInt(A.start.group),yield i.writeBigVarInt(A.start.object);break;case"latest-object":case"latest-group":break;default:throw new Error(`Invalid location type ${e}`)}})}function QQ(i){return c(this,null,function*(){const A=yield i.readUnsigned8();switch(A){case 0:return"inherit-publisher";case 1:return"ascending";case 2:return"descending";default:throw new Error(`Invalid location type ${A}`)}})}function EQ(i,A){return c(this,null,function*(){switch(A){case"inherit-publisher":yield i.writeUnsigned8(0);break;case"ascending":yield i.writeUnsigned8(1);break;case"descending":yield i.writeUnsigned8(2);break}})}function eu(i){return c(this,null,function*(){const A=yield i.readBigVarInt(),e=yield i.readBigVarInt(),t=yield Co(i),g=yield i.readString(),n=yield i.readUnsigned8(),o=yield QQ(i),a=yield $l(i),B=yield as(i);if(a.type==="absolute-range"){const C=a.start.group>a.end.group,Q=a.start.group===a.end.group&&a.start.object>a.end.object;if(C||Q)throw new Error("Invalid filter range")}return{type:q.Subscribe,id:A,trackAlias:e,namespace:t,name:g,subscriberPriority:n,groupOrder:o,filterType:a,params:B}})}function tu(i,A){return c(this,null,function*(){yield i.writeBigVarInt(A.id),yield i.writeBigVarInt(A.trackAlias),yield hB(i,A.namespace),yield i.writeString(A.name),yield i.writeUnsigned8(A.subscriberPriority),yield EQ(i,A.groupOrder),yield Au(i,A.filterType),yield Bs(i,A.params)})}const dB={TrackEnded:3,Expired:6};function iu(i){return c(this,null,function*(){const A=yield i.readBigVarInt(),e=yield i.readVarInt(),t=yield i.readString(),g=(yield i.readUnsigned8())==1;let n;return g&&(n={group:yield i.readBigVarInt(),object:yield i.readBigVarInt()}),{type:q.SubscribeDone,id:A,errorCode:e,reason:t,finalInfo:n}})}function su(i,A){return c(this,null,function*(){yield i.writeBigVarInt(A.id),yield i.writeVarInt(A.errorCode),yield i.writeString(A.reason),yield i.writeUnsigned8(A.finalInfo?1:0),A.finalInfo&&(yield i.writeBigVarInt(A.finalInfo.group),yield i.writeBigVarInt(A.finalInfo.object))})}function gu(i){return c(this,null,function*(){return{type:q.SubscribeError,id:yield i.readBigVarInt(),errorCode:yield i.readBigVarInt(),reason:yield i.readString(),trackAlias:yield i.readBigVarInt()}})}function Iu(i,A){return c(this,null,function*(){yield i.writeBigVarInt(A.id),yield i.writeBigVarInt(A.errorCode),yield i.writeString(A.reason),yield i.writeBigVarInt(A.trackAlias)})}function nu(i){return c(this,null,function*(){const A=yield i.readBigVarInt(),e=yield i.readBigVarInt(),t=yield QQ(i),g=(yield i.readUnsigned8())==1;let n;if(t=="inherit-publisher")throw new Error("SusbcribeOk cannot have inherit publisher group order");g&&(n={group:yield i.readBigVarInt(),object:yield i.readBigVarInt()});const o=yield as(i);return{type:q.SubscribeOk,id:A,groupOrder:t,expires:e,largestInfo:n,params:o}})}function ou(i,A){return c(this,null,function*(){yield i.writeBigVarInt(A.id),yield i.writeBigVarInt(A.expires),yield EQ(i,A.groupOrder),yield i.writeUnsigned8(A.largestInfo?1:0),A.largestInfo&&(yield i.writeBigVarInt(A.largestInfo.group),yield i.writeBigVarInt(A.largestInfo.object)),yield Bs(i,A.params)})}function au(i){return c(this,null,function*(){const A=yield i.readBigVarInt(),e=yield i.readBigVarInt(),t=yield i.readBigVarInt(),g=yield i.readBigVarInt(),n=yield i.readBigVarInt(),o=yield i.readUnsigned8(),a=yield as(i),B=e>g,C=e===g&&t>n;if(B||C)throw new Error("Invalid filter range");return{type:q.SubscribeUpdate,id:A,start:{group:e,object:t},end:{group:g,object:n},subscriberPriority:o,params:a}})}function Bu(i,A){return c(this,null,function*(){yield i.writeBigVarInt(A.id),yield i.writeBigVarInt(A.start.group),yield i.writeBigVarInt(A.start.object),yield i.writeBigVarInt(A.end.group),yield i.writeBigVarInt(A.end.object),yield i.writeUnsigned8(A.subscriberPriority),yield Bs(i,A.params)})}const ru={Subscriber:2},Eo={Role:M(0)},cQ={Draft07:4278190087};function hQ(i){return c(this,null,function*(){const A=yield i.readVarInt();return A===cQ.Draft07?{type:"known",value:A}:{type:"unknown",value:A}})}function Cu(i,A){return c(this,null,function*(){yield i.writeVarInt(A.supportedVersions.length);for(const e of A.supportedVersions)yield i.writeVarInt(e.value);yield Bs(i,A.parameters)})}function Qu(i){return c(this,null,function*(){const A=[],e=yield i.readVarInt();for(let g=0;g<e;g++)A.push(yield hQ(i));const t=yield as(i);if(!t.has(Eo.Role))throw new Error("Role parameter is required");return{type:q.ClientSetup,supportedVersions:A,parameters:t}})}function Eu(i,A){return c(this,null,function*(){yield i.writeVarInt(A.selectedVersion.value),yield Bs(i,A.parameters)})}function cu(i){return c(this,null,function*(){const A=yield hQ(i);if(A.type!=="known")throw new Error("Expected known version");const e=yield as(i);if(!e.has(Eo.Role))throw new Error("Role parameter is required");return{type:q.ServerSetup,selectedVersion:A,parameters:e}})}function hu(i){return c(this,null,function*(){return{type:q.Unsubscribe,id:yield i.readBigVarInt()}})}function du(i,A){return c(this,null,function*(){yield i.writeBigVarInt(A.id)})}class dQ{constructor(A){r(this,hA);r(this,gt);r(this,Gs,new Uint8Array);E(this,gt,A)}write(A){return c(this,null,function*(){yield I(this,gt).writeVarInt(A.type);const e=new Ng({close:()=>{},readyState:iQ.OPEN,send:t=>{E(this,Gs,new Uint8Array(t))}});switch(A.type){case q.Subscribe:yield l(this,hA,HE).call(this,e,A);break;case q.Announce:yield l(this,hA,xE).call(this,e,A);break;case q.SubscribeOk:yield l(this,hA,qE).call(this,e,A);break;case q.SubscribeUpdate:yield l(this,hA,TE).call(this,e,A);break;case q.SubscribeError:yield l(this,hA,KE).call(this,e,A);break;case q.SubscribeDone:yield l(this,hA,YE).call(this,e,A);break;case q.Unsubscribe:yield l(this,hA,PE).call(this,e,A);break;case q.ClientSetup:yield l(this,hA,ME).call(this,e,A);break;case q.ServerSetup:yield l(this,hA,vE).call(this,e,A);break;case q.AnnounceOk:yield l(this,hA,WE).call(this,e,A);break;default:throw new Error(`Unknown message type: ${A.type}`)}yield e.flush(),yield I(this,gt).writeVarInt(I(this,Gs).byteLength),yield I(this,gt).write(I(this,Gs)),yield I(this,gt).flush()})}close(){return c(this,null,function*(){return I(this,gt).close()})}}gt=new WeakMap,Gs=new WeakMap,hA=new WeakSet,ME=function(A,e){return c(this,null,function*(){yield Cu(A,e)})},vE=function(A,e){return c(this,null,function*(){yield Eu(A,e)})},HE=function(A,e){return c(this,null,function*(){yield tu(A,e)})},qE=function(A,e){return c(this,null,function*(){yield ou(A,e)})},KE=function(A,e){return c(this,null,function*(){yield Iu(A,e)})},TE=function(A,e){return c(this,null,function*(){yield Bu(A,e)})},YE=function(A,e){return c(this,null,function*(){yield su(A,e)})},PE=function(A,e){return c(this,null,function*(){yield du(A,e)})},xE=function(A,e){return c(this,null,function*(){yield Xl(A,e)})},WE=function(A,e){return c(this,null,function*(){yield zl(A,e)})};class lu{constructor(A,e){r(this,Us);r(this,LI);r(this,JI);E(this,Us,A),E(this,LI,new dQ(A)),E(this,JI,e)}write(A){return c(this,null,function*(){yield I(this,Us).write(I(this,JI)),yield I(this,LI).write(A)})}close(){return I(this,Us).close()}}Us=new WeakMap,LI=new WeakMap,JI=new WeakMap,M(1025),M(1027),M(1033),M(2048);class uu extends Error{constructor(A,e){super(A),this.errorCode=e}}function mu(i){return c(this,null,function*(){return{type:q.AnnounceError,namespace:yield Co(i),errorCode:yield i.readBigVarInt(),reason:yield i.readString()}})}function wu(i,A,e){return c(this,null,function*(){return{type:q.Unknown,messageType:A,payload:yield i.read(e)}})}class lQ{constructor(A){r(this,yA);E(this,yA,A)}cancel(){return I(this,yA).close()}read(){return c(this,null,function*(){const A=yield I(this,yA).readVarInt(),e=yield I(this,yA).readVarInt();switch(A){case q.ServerSetup:return cu(I(this,yA));case q.ClientSetup:return Qu(I(this,yA));case q.Subscribe:return eu(I(this,yA));case q.SubscribeOk:return nu(I(this,yA));case q.SubscribeDone:return iu(I(this,yA));case q.SubscribeError:return gu(I(this,yA));case q.SubscribeUpdate:return au(I(this,yA));case q.Unsubscribe:return hu(I(this,yA));case q.Announce:return Zl(I(this,yA));case q.AnnounceOk:return jl(I(this,yA));case q.AnnounceError:return mu(I(this,yA))}return wu(I(this,yA),M(A),e)})}}yA=new WeakMap;const Ls=class Ls{constructor(A,e){r(this,Zo);r(this,MI);r(this,bs);r(this,Ns,new _);r(this,vI,new _);E(this,MI,A),E(this,bs,e),I(this,Ns).resolve()}write(A){return c(this,null,function*(){const e=yield l(this,Zo,OE).call(this);try{yield I(this,MI).write(A)}finally{e.resolve()}})}markPostHandshake(){I(this,vI).resolve()}postHandshake(){return I(this,vI).promise}read(){return c(this,null,function*(){return I(this,bs).read()})}cancel(){return I(this,bs).cancel()}static wrapWebsocket(A){const e=new ReadableStream(new xl(A,I(Ls,Xo))),t=new lQ(new ro(new Uint8Array([]),e)),g=new lu(new Ng(A),new Uint8Array([0]));return new Ls(g,t)}static wrapWebTransport(A){const e=A.writable,t=A.readable;return new Ls(new dQ(new tQ(e)),new lQ(new ro(new Uint8Array,t)))}};MI=new WeakMap,bs=new WeakMap,Ns=new WeakMap,vI=new WeakMap,Zo=new WeakSet,OE=function(){const A=new _,e=I(this,Ns).promise.then(()=>A);return E(this,Ns,A),e},Xo=new WeakMap,r(Ls,Xo,0);let co=Ls;function uQ(i,A){return c(this,null,function*(){yield i.write({type:q.ClientSetup,supportedVersions:[{type:"known",value:cQ.Draft07}],parameters:new Map([[Eo.Role,{type:Eo.Role,payload:new Uint8Array([A])}]])});const e=yield i.read();if(i.markPostHandshake(),e.type!==q.ServerSetup)throw new Error("Expected server setup message");if(e.selectedVersion.type!=="known")throw new Error("Expected known version")})}class fu{constructor(A){s(this,"announce");r(this,Js,new _);this.announce=A}onOk(A){I(this,Js).resolve(A)}onError(A){const e=new uu(A.reason,A.errorCode);return I(this,Js).reject(e),e}ok(){return I(this,Js).promise}}Js=new WeakMap;function Du(i){const A=new fu(i);return new Su(A)}class Su{constructor(A){s(this,"state");this.state=A}}const vs=class vs{constructor(A){s(this,"subscribe");r(this,Ms,new _);r(this,bt,new _);r(this,Si,new _);r(this,jo,Date.now());r(this,pi,new _);r(this,Fe);switch(this.subscribe=A,A.filterType.type){case"absolute-start":E(this,Fe,{startGroup:A.filterType.start.group});break;case"absolute-range":E(this,Fe,{startGroup:A.filterType.start.group,endGroup:A.filterType.end.group});break}}onUpdate(A){E(this,Fe,{startGroup:A.start.group}),A.end.group>M(0)&&(I(this,Fe).endGroup=A.end.group-M(1))}onError(A){const e=new Error(A.reason);return I(this,Ms).reject(e),I(this,bt).reject(e),e}onDone(A){A.finalInfo&&(I(this,Fe)||E(this,Fe,{startGroup:M(0)}),I(this,Fe).endGroup=A.finalInfo.group),I(this,bt).resolve(A)}onUnsubscribe(A){I(this,Si).resolve(A)}onOk(A){const e=Math.max(0,Date.now()-I(this,jo)),t=Number(A.expires);if(t>0){const g=Math.max(vs.minGraceTime,Math.min(t/10,vs.maxGraceTime));Promise.race([ut(t-g-e),this.done().catch(G)]).then(()=>I(this,pi).resolve(this.expiryState())).catch(G)}I(this,Ms).resolve(A)}done(){return I(this,bt).promise}ok(){return I(this,Ms).promise}range(){return I(this,Fe)}close(){I(this,pi).promise.catch(G),I(this,pi).reject(new Error("Subscription closed"))}expiryState(){return I(this,bt).resolved&&I(this,bt).resolved.errorCode!==dB.Expired?"done":I(this,Si).pending?"active":"unsubscribed"}unsubscribed(){return I(this,Si).promise}isUnsubscribed(){return I(this,Si).resolved}expiryNotification(){return I(this,pi).promise}};Ms=new WeakMap,bt=new WeakMap,Si=new WeakMap,jo=new WeakMap,pi=new WeakMap,Fe=new WeakMap,s(vs,"maxGraceTime",15e3),s(vs,"minGraceTime",3e3);let ho=vs;class pu{constructor(A){r(this,TA);r(this,HI,!1);E(this,TA,A)}write(A){return c(this,null,function*(){I(this,HI)||(yield I(this,TA).writeVarInt(Bo.StreamHeaderGroup),yield I(this,TA).writeBigVarInt(A.subscribeId),yield I(this,TA).writeBigVarInt(A.trackAlias),yield I(this,TA).writeBigVarInt(A.groupId),yield I(this,TA).writeBigVarInt(A.subGroupId),yield I(this,TA).writeUnsigned8(A.subscriberPriority),E(this,HI,!0)),yield I(this,TA).writeBigVarInt(A.objectId),yield I(this,TA).writeVarInt(A.payload.length),A.payload.length>0?yield I(this,TA).write(A.payload):yield I(this,TA).writeVarInt(A.objectStatus),yield I(this,TA).flush()})}close(){return c(this,null,function*(){yield I(this,TA).close()})}}TA=new WeakMap,HI=new WeakMap;class yu{constructor(A,e,t,g){r(this,zo);r(this,qI);r(this,ce);r(this,KI);r(this,TI);r(this,Hs);r(this,YI);E(this,qI,e),E(this,ce,A),E(this,KI,t),E(this,TI,g),E(this,YI,GA.get().createContext(`SubscriptionWriter:${A.subscribe.name}`))}finalInfo(){return I(this,Hs)}run(){return c(this,null,function*(){yield Promise.race([l(this,zo,VE).call(this).catch(A=>I(this,YI).error("error writing subscription",A)),I(this,ce).unsubscribed(),I(this,ce).done(),I(this,ce).expiryNotification().catch(G)])})}done(A,e){return c(this,null,function*(){if(I(this,ce).isUnsubscribed())return;const t={type:q.SubscribeDone,id:I(this,ce).subscribe.id,errorCode:A,reason:e,finalInfo:I(this,Hs)};I(this,ce).onDone(t),yield I(this,TI).push(t)})}[Me()](){return this.done(dB.TrackEnded,"Track ended")}[Symbol.asyncDispose](){return this.done(dB.TrackEnded,"Track ended")}}qI=new WeakMap,ce=new WeakMap,KI=new WeakMap,TI=new WeakMap,Hs=new WeakMap,YI=new WeakMap,zo=new WeakSet,VE=function(){return c(this,null,function*(){try{for(var o=EA(I(this,qI)),a,B,C;a=!(B=yield o.next()).done;a=!1){const Q=B.value;var A=[];try{const h=I(this,ce).range();if(h&&(h.startGroup>Q.id||h.endGroup&&h.endGroup<Q.id))break;const d=yield I(this,KI).openSendStream();const u=new pu(d);const m=ue(A,new Fu(u,Q.consume(),I(this,ce)),!0);yield m.run();E(this,Hs,m.finalGroup())}catch(e){var t=e,g=!0}finally{var n=me(A,t,g);n&&(yield n)}}}catch(B){C=[B]}finally{try{a&&(B=o.return)&&(yield B.call(o))}finally{if(C)throw C[0]}}})};class Fu{constructor(A,e,t){r(this,yi);r(this,PI);r(this,qs);r(this,xI);r(this,Ks);E(this,yi,A),E(this,PI,e),E(this,qs,t),E(this,Ks,GA.get().createContext(`GroupSubscriptionWriter:${t.subscribe.name}`))}finalGroup(){return I(this,xI)}run(){return c(this,null,function*(){I(this,Ks).debug("write group");try{for(var A=EA(I(this,PI)),e,t,g;e=!(t=yield A.next()).done;e=!1){const n=t.value;yield I(this,yi).write({subscribeId:I(this,qs).subscribe.id,trackAlias:I(this,qs).subscribe.trackAlias,subGroupId:M(0),subscriberPriority:0,groupId:n.groupId,objectId:n.objectId,objectStatus:n.objectStatus,payload:n.payload}),E(this,xI,{group:n.groupId,object:n.objectId})}}catch(t){g=[t]}finally{try{e&&(t=A.return)&&(yield t.call(A))}finally{if(g)throw g[0]}}I(this,Ks).debug("write group done")})}[Me()](){return I(this,yi).close().catch(G)}[Symbol.asyncDispose](){return I(this,yi).close().catch(G)}}yi=new WeakMap,PI=new WeakMap,qs=new WeakMap,xI=new WeakMap,Ks=new WeakMap;class ku{constructor(A,e,t){r(this,Nt);s(this,"state");r(this,WI);r(this,Fi);this.state=A,E(this,WI,e),E(this,Fi,t)}ok(A){return c(this,null,function*(){var B,C,Q;const e=(B=this.state.range())==null?void 0:B.startGroup,t=A.latest(),g=t==null?void 0:t.id,n=(Q=(C=t==null?void 0:t.latest())==null?void 0:C.objectId)!=null?Q:M(0),o=A.consume(e!=null?e:g),a={type:q.SubscribeOk,id:this.state.subscribe.id,expires:M(0),groupOrder:"ascending",params:new Map,largestInfo:g?{group:g,object:n}:void 0};return yield I(this,Fi).push(a),new yu(this.state,o,I(this,WI),I(this,Fi))})}invalidRange(){return l(this,Nt,yg).call(this,M(1),"Invalid range")}retryTrackAlias(){return l(this,Nt,yg).call(this,M(2),"Retry track alias")}trackDoesNotExist(){return l(this,Nt,yg).call(this,M(3),"Track does not exist")}unauthorized(){return l(this,Nt,yg).call(this,M(4),"Unauthorized")}timeout(){return l(this,Nt,yg).call(this,M(5),"Timeout")}[Me()](){return this.trackDoesNotExist()}[Symbol.asyncDispose](){return this.trackDoesNotExist()}}WI=new WeakMap,Fi=new WeakMap,Nt=new WeakSet,yg=function(A,e){const t={type:q.SubscribeError,id:this.state.subscribe.id,errorCode:A,reason:e,trackAlias:this.state.subscribe.trackAlias};return I(this,Fi).push(t)},eE=[$A({context:"Session",enter:"info",error:"error"})];class lB{constructor(A,e,t){_i(Br,5,this);r(this,Ts);r(this,OI);r(this,Ys);r(this,ki,GA.get().createContext("Publisher"));r(this,Lt,new xA(new Map));r(this,Jt,new xA(new Map));r(this,Mt,new _t(10));E(this,Ts,A),E(this,OI,e),E(this,Ys,t)}announce(A){return c(this,null,function*(){if(I(this,Lt).current().has(A.join("/")))throw new Error("Duplicate announcement");const e=new Map,t=I(this,Ts).authToken();t&&e.set(Qo,{type:Qo,payload:new TextEncoder().encode(t)});const g={type:q.Announce,namespace:A,params:e},n=Du(g);if(I(this,Lt).update(a=>a.set(g.namespace.join("/"),n)),yield I(this,Ys).push(g),!(yield Promise.race([n.state.ok(),I(this,Ts).closed()])))throw new Error("Session closed")})}close(){I(this,Jt).current().forEach(A=>A.close()),I(this,Jt).close(),I(this,Lt).close(),I(this,Mt).close()}incomingSubscriptions(){return I(this,Mt)}onMessage(A){return c(this,null,function*(){switch(A.type){case q.Subscribe:{const e=new ho(A);if(I(this,Jt).update(t=>(t.set(A.id,e),t)),I(this,Mt).isFull()){const t=yield I(this,Mt).pop();yield t==null?void 0:t.timeout()}yield I(this,Mt).push(new ku(e,I(this,OI),I(this,Ys)))}break;case q.SubscribeUpdate:{const e=I(this,Jt).current().get(A.id);e||I(this,ki).debug("No subscription found",A),e==null||e.onUpdate(A)}break;case q.Unsubscribe:{const e=I(this,Jt).current().get(A.id);e||I(this,ki).debug("No subscription found",A),e==null||e.onUnsubscribe(A)}break;case q.AnnounceOk:{const e=I(this,Lt).current().get(A.namespace.join("/"));e||I(this,ki).debug("No announcement found",A),e==null||e.state.onOk(A)}break;case q.AnnounceError:{const e=I(this,Lt).current().get(A.namespace.join("/"));e||I(this,ki).debug("No announcement found",A),e==null||e.state.onError(A)}break}})}}Br=zi(null),Ts=new WeakMap,OI=new WeakMap,Ys=new WeakMap,ki=new WeakMap,Lt=new WeakMap,Jt=new WeakMap,Mt=new WeakMap,_A(Br,1,"announce",eE,lB),jt(Br,lB);function Ru(i,A){const e=new ho(A),[t,g]=zt(100),n=new Gu(e,t),o=new mQ(i,e,g);return[n,o]}class Gu{constructor(A,e){s(this,"state");r(this,Ri);this.state=A,E(this,Ri,e)}onDone(A){this.state.onDone(A)}onData(A){return I(this,Ri).push(A)}onError(A){const e=this.state.onError(A);I(this,Ri).abort(e)}close(){this.state.close(),I(this,Ri).close()}}Ri=new WeakMap;class mQ{constructor(A,e,t){_i(rr,5,this);r(this,Os);r(this,Ps);r(this,bA);r(this,xs);r(this,Ws,new _);E(this,Ps,A),E(this,bA,e),E(this,xs,t)}get id(){return I(this,bA).subscribe.id}get trackAlias(){return I(this,bA).subscribe.trackAlias}get name(){return I(this,bA).subscribe.name}range(){return I(this,bA).range()}expiryNotification(){return I(this,bA).expiryNotification()}update(A,e){return c(this,null,function*(){const t={type:q.SubscribeUpdate,id:I(this,bA).subscribe.id,start:{group:A,object:M(0)},end:{group:e+M(1),object:M(0)},params:new Map,subscriberPriority:0};I(this,bA).onUpdate(t),yield I(this,Ps).push(t)})}unsubscribe(){return c(this,null,function*(){const A={type:q.Unsubscribe,id:I(this,bA).subscribe.id};I(this,bA).onUnsubscribe(A),yield I(this,Ps).push(A)})}close(){var A,e;return I(this,Ws).resolve(),(e=(A=I(this,xs)).return)==null?void 0:e.call(A)}closed(){return I(this,Ws).promise}done(){return I(this,bA).done()}expiryState(){return I(this,bA).expiryState()}unsubscribed(){return I(this,bA).isUnsubscribed()}return(){return c(this,null,function*(){return I(this,Ws).resolve(),yield this.unsubscribe(),{done:!0,value:void 0}})}groups(){return lt(this,null,function*(){var A,e;try{for(var u=EA(I(this,xs)),m,p,y;m=!(p=yield new rA(u.next())).done;m=!1){var a=p.value;var B=[];try{const k=ue(B,a,!0);try{for(var t=EA(k.groups()),g,n,o;g=!(n=yield new rA(t.next())).done;g=!1){const N=n.value;const U=(A=I(this,bA).range())==null?void 0:A.startGroup,K=(e=I(this,bA).range())==null?void 0:e.endGroup;if(U&&N.groupId()<U)return{done:!0,value:void 0};if(K&&N.groupId()>K)return{done:!0,value:void 0};yield N}}catch(n){o=[n]}finally{try{g&&(n=t.return)&&(yield new rA(n.call(t)))}finally{if(o)throw o[0]}}}catch(C){var Q=C,h=!0}finally{var d=me(B,Q,h);d&&(yield new rA(d))}}}catch(p){y=[p]}finally{try{m&&(p=u.return)&&(yield new rA(p.call(u)))}finally{if(y)throw y[0]}}})}[Symbol.asyncIterator](){return this.groups()}objects(){return lt(this,null,function*(){try{for(var n=EA(this.groups()),o,a,B;o=!(a=yield new rA(n.next())).done;o=!1){const C=a.value;try{for(var A=EA(C),e,t,g;e=!(t=yield new rA(A.next())).done;e=!1){const Q=t.value;yield Q}}catch(t){g=[t]}finally{try{e&&(t=A.return)&&(yield new rA(t.call(A)))}finally{if(g)throw g[0]}}}}catch(a){B=[a]}finally{try{o&&(a=n.return)&&(yield new rA(a.call(n)))}finally{if(B)throw B[0]}}})}[(tE=[$A({context:"SubscriptionConsumer",enter:"info"})],Me())](){return l(this,Os,bn).call(this)}[Symbol.asyncDispose](){return l(this,Os,bn).call(this)}}rr=zi(null),Ps=new WeakMap,bA=new WeakMap,xs=new WeakMap,Ws=new WeakMap,Os=new WeakSet,bn=function(){return c(this,null,function*(){return yield this.close(),this.unsubscribe()})},bn=_A(rr,17,"#dispose",tE,Os,bn),jt(rr,mQ);const Uu=2e3;IE=[$A({context:"Session",return:"debug"})],gE=[$A({context:"Session",enter:"info",error:"error"})],sE=[$A({context:"Session",enter:"debug"})],iE=[$A({context:"Session",enter:"debug"})];class lo{constructor(A,e){_i(Vs,5,this);r(this,We);r(this,It);s(this,"nextSubscribeId",M(0));r(this,ge,new xA(new Map));r(this,Gi);r(this,Ui,GA.get().createContext("Subscriber"));E(this,It,A),E(this,Gi,e),l(this,We,Na).call(this).catch(G)}subscribe(g,n){return c(this,arguments,function*(A,e,t=new Map){const o=this.nextSubscribeId++,a=I(this,It).authToken();a&&t.set(Qo,{type:Qo,payload:new TextEncoder().encode(a)});const B={type:q.Subscribe,namespace:A,name:e.name,id:o,trackAlias:o,groupOrder:e.groupOrder,subscriberPriority:e.priority,filterType:e.filterType,params:t},[C,Q]=Ru(I(this,Gi),B);if(I(this,ge).update(d=>d.set(o,C)),yield I(this,Gi).push(B),!(yield Promise.race([C.state.ok(),I(this,It).closed()])))throw new Error("Session closed");return Q.closed().then(()=>Promise.race([ut(Uu),this.closed()])).then(()=>l(this,We,Fg).call(this,Q.id)).catch(()=>l(this,We,Fg).call(this,Q.id)),Q})}closed(){return I(this,It).closed()}transportType(){return I(this,It).transportType()}url(){return I(this,It).url()}onMessage(A){return c(this,null,function*(){switch(A.type){case q.Announce:yield I(this,Gi).push({type:q.AnnounceOk,namespace:A.namespace});break;case q.SubscribeOk:{const e=I(this,ge).current().get(A.id);e&&e.state.onOk(A)}break;case q.SubscribeError:{const e=I(this,ge).current().get(A.id);e||I(this,Ui).debug("No subscription found",A),e==null||e.onError(A),l(this,We,Fg).call(this,A.id)}break;case q.SubscribeDone:{const e=I(this,ge).current().get(A.id);e||I(this,Ui).debug("No subscription found",A),e==null||e.onDone(A)}break}})}onObjectReader(A){return c(this,null,function*(){const e=I(this,ge).current().get(A.subscribeId());if(!e){I(this,Ui).warn("No subscription found",A.subscribeId());return}yield e.onData(A)})}close(){I(this,ge).current().forEach(A=>A.close()),I(this,ge).close()}}Vs=zi(null),It=new WeakMap,ge=new WeakMap,Gi=new WeakMap,Ui=new WeakMap,We=new WeakSet,Na=function(){return c(this,null,function*(){try{for(var A=EA(I(this,ge)),e,t,g;e=!(t=yield A.next()).done;e=!1){const n=t.value;const o=[...n.values()].map(a=>a.state.subscribe);I(this,Ui).debug("current subscriptions",o)}}catch(t){g=[t]}finally{try{e&&(t=A.return)&&(yield t.call(A))}finally{if(g)throw g[0]}}})},Fg=function(A){I(this,ge).isClosed()||I(this,ge).update(e=>(e.delete(A),e))},Na=_A(Vs,17,"#observeChanges",IE,We,Na),_A(Vs,1,"subscribe",gE,lo),_A(Vs,1,"close",sE,lo),Fg=_A(Vs,17,"#deleteSubscription",iE,We,Fg),jt(Vs,lo);class uB{constructor(A,e){_i(js,5,this);r(this,FA);r(this,ke);r(this,VI);r(this,bi);r(this,Zs,GA.get().createContext("Session"));s(this,"subscriber");s(this,"publisher");r(this,Xs);const[t,g]=zt(100);E(this,ke,A),E(this,bi,g),this.subscriber=new lo(this,t),this.publisher=new lB(this,A,t),E(this,VI,l(this,FA,XE).call(this)),E(this,Xs,new xA(e)),this.closed().then(()=>this.close()).catch(G)}updateAuthToken(A){I(this,Xs).update(A)}authToken(){return I(this,Xs).current()}transportType(){return I(this,ke).transportType()}url(){return I(this,ke).url()}closed(){return I(this,VI)}close(){try{this.subscriber.close(),this.publisher.close(),I(this,bi).cancel("closing"),I(this,ke).close()}catch(A){I(this,Zs).warn("Error closing session",A)}}[(BE=[$A({context:"Session",return:"info",error:"error"})],aE=[$A({context:"Session",return:"info",error:"error"})],oE=[$A({context:"Session",return:"info",error:"error"})],nE=[$A({context:"Session",enter:"debug"})],Zr())](){l(this,FA,Nn).call(this)}[Symbol.dispose](){l(this,FA,Nn).call(this)}}js=zi(null),ke=new WeakMap,VI=new WeakMap,bi=new WeakMap,Zs=new WeakMap,Xs=new WeakMap,FA=new WeakSet,ZE=function(A){return c(this,null,function*(){var e,t;I(this,Zs).debug("received message",A),yield(e=this.subscriber)==null?void 0:e.onMessage(A),yield(t=this.publisher)==null?void 0:t.onMessage(A),A.type,q.Goaway})},XE=function(){return c(this,null,function*(){return(yield Promise.all([l(this,FA,Ja).call(this),l(this,FA,Ma).call(this),l(this,FA,La).call(this)])).find(e=>e instanceof Error)})},La=function(){return c(this,null,function*(){try{try{for(var A=EA(I(this,bi)),e,t,g;e=!(t=yield A.next()).done;e=!1){const n=t.value;I(this,Zs).debug("sending message",n),yield I(this,ke).writeMessage(n)}}catch(t){g=[t]}finally{try{e&&(t=A.return)&&(yield t.call(A))}finally{if(g)throw g[0]}}}catch(n){return n}})},Ja=function(){return c(this,null,function*(){try{for(yield I(this,ke).afterHandshake();;){const A=yield I(this,ke).readMessage().catch(()=>{});if(!A)break;yield l(this,FA,ZE).call(this,A)}}catch(A){return A}finally{I(this,bi).cancel("closing")}})},Ma=function(){return c(this,null,function*(){var A;try{for(;;){const e=yield I(this,ke).objectStream();if(!e)break;yield(A=this.subscriber)==null?void 0:A.onObjectReader(e)}}catch(e){return e}})},Nn=function(){this.close()},La=_A(js,17,"#runOutgoingMessages",BE,FA,La),Ja=_A(js,17,"#runControl",aE,FA,Ja),Ma=_A(js,17,"#runObjects",oE,FA,Ma),Nn=_A(js,17,"#dispose",nE,FA,Nn),jt(js,uB);const bu=128;class Nu{constructor(A,e,t){r(this,YA);r(this,he);r(this,ZI);r(this,Ni,!0);r(this,zs,!1);r(this,XI);E(this,he,A),E(this,ZI,e),E(this,XI,t)}writeUnsigned8(A){return c(this,null,function*(){return l(this,YA,As).call(this),yield l(this,YA,es).call(this),I(this,he).writeUnsigned8(A)})}writeVarInt(A){return c(this,null,function*(){return l(this,YA,As).call(this),yield l(this,YA,es).call(this),I(this,he).writeVarInt(A)})}writeBigVarInt(A){return c(this,null,function*(){return l(this,YA,As).call(this),yield l(this,YA,es).call(this),I(this,he).writeBigVarInt(A)})}write(A){return c(this,null,function*(){return l(this,YA,As).call(this),yield l(this,YA,es).call(this),I(this,he).write(A)})}writeString(A){return c(this,null,function*(){return l(this,YA,As).call(this),yield l(this,YA,es).call(this),I(this,he).writeString(A)})}flush(){return c(this,null,function*(){l(this,YA,As).call(this),E(this,Ni,!0),yield I(this,he).flush()})}close(){return c(this,null,function*(){I(this,zs)||(E(this,Ni,!0),yield l(this,YA,es).call(this,!1),yield I(this,he).flush(),E(this,zs,!0),I(this,XI).call(this))})}}he=new WeakMap,ZI=new WeakMap,Ni=new WeakMap,zs=new WeakMap,XI=new WeakMap,YA=new WeakSet,As=function(){if(I(this,zs))throw new Error("Stream is closed")},es=function(A=!0){if(I(this,Ni))return E(this,Ni,!1),I(this,he).writeUnsigned8(I(this,ZI)|(A?bu:0))};class Lu{constructor(A,e){r(this,_o);r(this,vt);r(this,nt);r(this,_s);r(this,Li);r(this,ot,new Map);r(this,Ji,GA.get().createContext("WebSocketConnection"));r(this,$s,new Set(new Array(128).fill(0).map((A,e)=>e+1)));E(this,vt,A),E(this,nt,e),E(this,_s,new ReadableStream(new Wl(A))),I(this,vt).addEventListener("close",t=>{I(this,Ji).info("WebSocket closed",{code:t.code,reason:t.reason,wasClean:t.wasClean}),I(this,nt).markPostHandshake(),I(this,ot).forEach(g=>g.close())})}openSendStream(){const A=I(this,$s).values().next().value;if(!A)throw new Error("No stream IDs available");return I(this,$s).delete(A),Promise.resolve(new Nu(new Ng(I(this,vt)),A,()=>l(this,_o,jE).call(this,A)))}transportType(){return"websocket"}url(){return I(this,vt).url}afterHandshake(){return I(this,nt).postHandshake()}objectStream(){return c(this,null,function*(){var A;for(;;){E(this,Li,I(this,_s).getReader());try{const{value:e,done:t}=yield I(this,Li).read();if(t)return;const[g,n,o]=e;if(I(this,ot).has(M(n))){const a=I(this,ot).get(M(n));if(!a)throw new Error("Stream not found");o.length>0&&(yield a.push(o)),g||(I(this,Ji).debug("Closing stream",{streamId:n}),a.close(),I(this,ot).delete(M(n)))}else{let Q;I(this,Ji).debug("Creating new stream",{streamId:n});const[a,B]=zt(1e3),C=new ReadableStream({pull(h){return c(this,null,function*(){const d=yield B.pop();d?h.enqueue(d):h.close()})}});if(I(this,ot).set(M(n),a),g||(I(this,Ji).debug("Closing new stream",{streamId:n}),yield C.cancel(),I(this,ot).delete(M(n))),o.length>0)return yield eQ(new ro(o,C),n)}}finally{(A=I(this,Li))==null||A.releaseLock()}}})}close(){var A;return I(this,nt).cancel().catch(G),I(this,_s).cancel("closing").catch(G),(A=I(this,Li))==null||A.cancel("closing").catch(G),I(this,vt).close()}closed(){return Promise.resolve()}writeMessage(A){return c(this,null,function*(){yield I(this,nt).write(A)})}readMessage(){return c(this,null,function*(){return I(this,nt).read()})}}vt=new WeakMap,nt=new WeakMap,_s=new WeakMap,Li=new WeakMap,ot=new WeakMap,Ji=new WeakMap,$s=new WeakMap,_o=new WeakSet,jE=function(A){I(this,$s).add(A)};class Ju{constructor(A,e,t){r(this,Aa);r(this,at);r(this,Bt);r(this,Ht,new _t(100));r(this,jI);r(this,zI,0);r(this,$o,GA.get().createContext("WebTransportConnection"));E(this,jI,t),E(this,at,A),E(this,Bt,e),l(this,Aa,zE).call(this).catch(g=>{I(this,$o).debug("Incoming streams handling ended with error",g),I(this,Bt).markPostHandshake(),I(this,Ht).close()}),I(this,at).closed.then(()=>{I(this,Bt).markPostHandshake(),I(this,Ht).close()})}openSendStream(){return c(this,null,function*(){const A=yield I(this,at).createUnidirectionalStream();return new tQ(A)})}transportType(){return"webtransport"}url(){return I(this,jI)}afterHandshake(){return I(this,Bt).postHandshake()}closed(){return c(this,null,function*(){yield I(this,at).closed})}close(){I(this,at).close()}writeMessage(A){return c(this,null,function*(){yield I(this,Bt).write(A)})}readMessage(){return c(this,null,function*(){return I(this,Bt).read()})}objectStream(){return c(this,null,function*(){return I(this,Ht).pop()})}}at=new WeakMap,Bt=new WeakMap,Ht=new WeakMap,jI=new WeakMap,zI=new WeakMap,$o=new WeakMap,Aa=new WeakSet,zE=function(){return c(this,null,function*(){const A=I(this,at).incomingUnidirectionalStreams.getReader();for(;;){const{value:e,done:t}=yield A.read();if(t){I(this,Ht).close();return}const g=new ro(new Uint8Array,e);yield I(this,Ht).push(eQ(g,I(this,zI))),te(this,zI)._++}})};const Mu=GA.get().createContext("MoqClient");function mB(i){return c(this,null,function*(){const A=new WebSocket(i.wsUrl||i.url);A.binaryType="arraybuffer",yield new Promise((n,o)=>{A.addEventListener("error",()=>o(new Error("WebSocket error")),{once:!0}),A.addEventListener("open",n,{once:!0})});const e=co.wrapWebsocket(A);uQ(e,i.role).catch(n=>{throw Mu.warn("MoQ handshake failed, closing WebSocket",{error:n}),A.close(),n});const t=new Lu(A,e);return new uB(t,i.authToken)})}function vu(i){return c(this,null,function*(){const A="60b82e8021689e163c1041b4475ef9c86e7565bc45d1a0aa43f5148769f461c7",e=new Uint8Array(A.length/2);for(let B=0;B<e.length;B+=1)e[B]=parseInt(A.slice(2*B,2*B+2),16);const t=new WebTransport(i.url,{congestionControl:"low-latency"});yield Promise.race([t.ready,t.closed.then(()=>Promise.reject(new Error("WebTransport closed")))]);const g=yield t.createBidirectionalStream(),n=co.wrapWebTransport(g);uQ(n,i.role).catch(()=>{t.close()});const o=new Ju(t,n,i.url.toString());return new uB(o,i.authToken)})}function Hu(i){return c(this,null,function*(){if(self.WebTransport&&(i==null?void 0:i.preferredTransport)!=="websocket"&&i.url.protocol.startsWith("https")){const A=vu(i).catch(()=>mB(i)),e=yield Promise.race([A,ut(i.websocketFallbackTimeoutMs)]);return e||mB(i)}return mB(i)})}class $e{constructor(){r(this,rt,{name:"",priority:0,groupOrder:"ascending",filterType:{type:"latest-group"}})}name(A){return I(this,rt).name=A,this}priority(A){return I(this,rt).priority=A,this}groupOrder(A){return I(this,rt).groupOrder=A,this}startGroup(A){return I(this,rt).filterType={type:"absolute-start",start:{group:A,object:M(0)}},this}range(A,e){return I(this,rt).filterType={type:"absolute-range",start:{group:A,object:M(0)},end:{group:e,object:M(0)}},this}build(){return I(this,rt)}}rt=new WeakMap;class wQ{constructor(A,e){r(this,Ag);r(this,_I);E(this,Ag,A),E(this,_I,e)}subscribe(A,e=new Map){return I(this,Ag).subscribe(this.namespace(),A,e)}closed(){return I(this,Ag).closed()}namespace(){return I(this,_I).namespace}}Ag=new WeakMap,_I=new WeakMap;function qu(i,A){return["com.vindral.moq",i]}function gi(i){const A=i[1];if(!A)throw new Error("namespace must contain a channel ID");return A}function Ku(i){return"tracks"in i}function Tu(i){const A=new TextDecoder().decode(i);return JSON.parse(A)}const Cr=class Cr{constructor(A,e){r(this,An);r(this,Ie);r(this,Oe);r(this,Mi,new P(100));r(this,de);r(this,$I);r(this,ea,A=>c(this,null,function*(){if(!A)return I(this,Ie).close();if(I(this,de))return;const e=I(this,Mi).items().reduce((t,g)=>t<g?t:g,A);E(this,de,l(this,An,Gr).call(this,e,A)),I(this,de).size===0&&(yield I(this,Ie).close())}));E(this,Ie,A),E(this,Oe,e),A.done().then(t=>c(this,null,function*(){var g;return I(this,ea).call(this,(g=t.finalInfo)==null?void 0:g.group)})).catch(G),E(this,$I,A.groups())}static subscribe(A,e){return c(this,null,function*(){const t=yield A.subscribe(e);return new Cr(t,void 0)})}subscribeId(){return I(this,Ie).id}name(){return I(this,Ie).name}largestGroupId(){return I(this,Oe)}needsRenewal(){return I(this,Ie).expiryState()==="active"&&I(this,de)===void 0}endOfTrack(A){const e=I(this,Mi).items().reduce((t,g)=>t<g?t:g,A);return this.update(e,A)}update(A,e){return c(this,null,function*(){return E(this,de,l(this,An,Gr).call(this,A,e)),I(this,de).size===0&&(yield I(this,Ie).close()),I(this,Ie).update(A,e)})}unsubscribe(){return I(this,Ie).unsubscribe()}next(){return c(this,null,function*(){var t;if(I(this,de)&&I(this,de).size===0)return{done:!0,value:void 0};const A=yield I(this,$I).next();if(A.done)return A;const e=A.value.groupId();return(t=I(this,de))==null||t.delete(e),I(this,Mi).push(e),I(this,Oe)||E(this,Oe,e),E(this,Oe,I(this,Oe)<e?e:I(this,Oe)),A})}return(){return I(this,Ie).return()}[Symbol.asyncIterator](){return this}};Ie=new WeakMap,Oe=new WeakMap,Mi=new WeakMap,de=new WeakMap,$I=new WeakMap,ea=new WeakMap,An=new WeakSet,Gr=function(A,e){const t=new Set;for(let g=A;g<=e;g++)t==null||t.add(g);return I(this,Mi).items().forEach(g=>{t==null||t.delete(g)}),t};let uo=Cr;const Qr=class Qr{constructor(A){r(this,en);r(this,Re);r(this,vi);r(this,Ct,new _t(10));r(this,Ve);r(this,tn,(A,e)=>c(this,null,function*(){var h=[];try{const t=ue(h,yield I(this,Re).lock());const g={subscribeId:t.value.subscribeId()};if(!t.value.needsRenewal()){I(this,Ve).debug("Subscription does not need renewal",g);return}const n=t.value.largestGroupId();const o=n!==void 0;const a=new $e().name(e.name).priority(e.priority).groupOrder(e.groupOrder);g.largestGroupId=n;I(this,Ve).debug("Renewing subscription",g);switch(e.filterType.type){case"absolute-range":I(this,Ve).debug("Absolute range is not renewed",g);return;case"absolute-start":case"latest-group":case"latest-object":o&&a.startGroup(n+M(1));break}const B=a.build();g.newTrack=B;const[C]=yield Promise.all([A.subscribe(B),o?t.value.update(n,n):t.value.unsubscribe()]);C.done().then(()=>l(this,en,Ur).call(this,C)).catch(G);C.expiryNotification().then(()=>I(this,tn).call(this,A,B)).catch(G);const Q=new uo(C,n);t.value=Q;yield I(this,Ct).push(Q);I(this,Ve).info("Subscription renewed",g)}catch(d){var u=d,m=!0}finally{me(h,u,m)}}));E(this,Re,new Vc(A)),E(this,vi,A),E(this,Ve,GA.get().createContext(`Renewable '${A.name()}'`))}static subscribe(A,e,t){return c(this,null,function*(){const g=t==null?void 0:t.params,n=t==null?void 0:t.largestGroupId,o=yield A.subscribe(e,g),a=new Qr(new uo(o,n));return o.done().then(()=>{var B;return l(B=a,en,Ur).call(B,o)}).catch(G),o.expiryNotification().then(()=>{var B;return I(B=a,tn).call(B,A,e)}).catch(G),a})}largestGroupId(){return I(this,Re).unsafeValue().largestGroupId()}update(A,e){return c(this,null,function*(){var g=[];try{const t=ue(g,yield I(this,Re).lock());I(this,Ct).close();return t.value.update(A,e)}catch(n){var o=n,a=!0}finally{me(g,o,a)}})}endOfTrack(A){return c(this,null,function*(){var t=[];try{const e=ue(t,yield I(this,Re).lock());I(this,Ct).close();return e.value.endOfTrack(A)}catch(g){var n=g,o=!0}finally{me(t,n,o)}})}unsubscribe(){return c(this,null,function*(){var e=[];try{const A=ue(e,yield I(this,Re).lock());I(this,Ct).close();return A.value.unsubscribe()}catch(t){var g=t,n=!0}finally{me(e,g,n)}})}return(){return c(this,null,function*(){var e=[];try{const A=ue(e,yield I(this,Re).lock());I(this,Ct).close();return A.value.return()}catch(t){var g=t,n=!0}finally{me(e,g,n)}})}next(){return c(this,null,function*(){var e,t;const A=yield I(this,vi).next();if(A.done){yield(t=(e=I(this,vi)).return)==null?void 0:t.call(e);const g=yield I(this,Ct).pop();if(g)return E(this,vi,g),this.next()}return A})}[Symbol.asyncIterator](){return this}objects(){return lt(this,null,function*(){try{for(var a=EA(this),B,C,Q;B=!(C=yield new rA(a.next())).done;B=!1){var A=C.value;var e=[];try{const h=ue(e,A,!0);yield*Dr(h)}catch(t){var g=t,n=!0}finally{var o=me(e,g,n);o&&(yield new rA(o))}}}catch(C){Q=[C]}finally{try{B&&(C=a.return)&&(yield new rA(C.call(a)))}finally{if(Q)throw Q[0]}}})}};Re=new WeakMap,vi=new WeakMap,Ct=new WeakMap,Ve=new WeakMap,en=new WeakSet,Ur=function(A){return c(this,null,function*(){var e;if(A.unsubscribed()||(e=A.range())!=null&&e.endGroup){I(this,Ve).info("Server initiated subscribe done but the subscription is already closing");return}if(I(this,Re).unsafeValue().subscribeId()!==A.id){I(this,Ve).info("subscribeId mismatch - the subscription already has been renewed");return}return this.return()})},tn=new WeakMap;let ft=Qr;const Yu="catalog";function fQ(i){const A=Tu(i.payload);if(!Ku(A))throw new Error("unexpected catalog type");return A}const ia=class ia{constructor(A,e,t){r(this,ta);r(this,qt);r(this,sn);r(this,gn);r(this,In);E(this,sn,A),E(this,qt,e),E(this,gn,t),E(this,In,l(this,ta,_E).call(this)),this.closed().finally(()=>I(this,qt).close()).catch(G)}catalog(){return I(this,qt)}closed(){return I(this,In)}close(){return c(this,null,function*(){return I(this,qt).close(),(yield I(this,sn).promise).unsubscribe()})}static start(A,e){return c(this,null,function*(){const t=_.fromPromise(ft.subscribe(A,new $e().name(e.catalogName||Yu).groupOrder("ascending").build())),g=_.fromPromise(t.promise.then(B=>B.objects()));if(e.catalog)return new ia(t,new xA(e.catalog),g);const o=yield(yield g.promise).next();if(!o.value)throw new Error("No catalog found");const a=fQ(o.value);return new ia(t,new xA(a),g)})}};qt=new WeakMap,sn=new WeakMap,gn=new WeakMap,In=new WeakMap,ta=new WeakSet,_E=function(){return c(this,null,function*(){const A=yield I(this,gn).promise;try{for(var e=EA(A),t,g,n;t=!(g=yield e.next()).done;t=!1){const o=g.value;if(o.objectStatus!==WA.Normal)continue;const a=fQ(o);I(this,qt).update(a)}}catch(g){n=[g]}finally{try{t&&(g=e.return)&&(yield g.call(e))}finally{if(n)throw n[0]}}})};let wB=ia;class Pu{constructor(A,e,t,g){r(this,an);r(this,nn);r(this,eg);r(this,on);s(this,"track");r(this,tg,GA.get().createContext("CmafGroup"));this.track=g,E(this,nn,t),E(this,eg,A),E(this,on,e)}[Symbol.asyncIterator](){return lt(this,null,function*(){const A={name:this.track.trackObject.name,namespace:this.track.namespace};I(this,tg).debug("start",f({},A));try{for(var e=EA(I(this,eg)),t,g,n;t=!(g=yield new rA(e.next())).done;t=!1){const o=g.value;if(o.objectStatus===WA.EndOfTrackAndGroup&&(yield new rA(this.track.endOfTrack(o.groupId))),o.objectStatus!==WA.Normal)continue;const a=I(this,on).createFragment(o.payload),B=a.timescale(),C=a.baseMediaDecodeTime()/B*1e3,Q=a.duration()/B*1e3,h=C+Q,d=I(this,nn)/1e3*B;a.updateBaseMediaDecodeTime(a.baseMediaDecodeTime()-d);const u=this.track.timestampRange();if(u&&C>=u[1])break;I(this,tg).debug("fragment",V(f({},A),{startTime:C,endTime:h,subscribeId:o.subscribeId,groupId:o.groupId,objectId:o.objectId,streamId:o.streamId})),yield[o.groupId,a]}}catch(g){n=[g]}finally{try{t&&(g=e.return)&&(yield new rA(g.call(e)))}finally{if(n)throw n[0]}}I(this,tg).debug("end",f({},A))})}[Me()](){return l(this,an,br).call(this)}[Symbol.asyncDispose](){return l(this,an,br).call(this)}}nn=new WeakMap,eg=new WeakMap,on=new WeakMap,tg=new WeakMap,an=new WeakSet,br=function(){return c(this,null,function*(){var A,e;return yield(e=(A=I(this,eg)).return)==null?void 0:e.call(A),Promise.resolve()})};const ig=class ig{constructor(A,e,t,g,n){r(this,Bn);r(this,Ze);r(this,rn);r(this,Cn);s(this,"trackObject");s(this,"namespace");this.trackObject=A,this.namespace=e,E(this,Ze,t),E(this,Bn,g),E(this,rn,n)}static subscribe(o,a,B){return c(this,arguments,function*(A,e,{timestampOffsetMs:t,startGroup:g,params:n}){var m;if(e.format!=="cmaf")throw new Error("format must be cmaf");const C=new $e().name(e.name);g&&C.startGroup(g);const Q=C.build();if(e.initTrack){const p=new $e().name(e.initTrack).build(),[y,k]=yield Promise.all([l(m=ig,sa,$E).call(m,A,p),ft.subscribe(A,Q,{params:n,largestGroupId:g?g-M(1):void 0})]),N=new HC(y);return new ig(e,A.namespace(),k,N,t)}lA(e.initData,"no init data found on track");const h=Mr(e.initData),d=new HC(new Uint8Array(h)),u=yield ft.subscribe(A,Q,{params:n,largestGroupId:g?g-M(1):void 0});return new ig(e,A.namespace(),u,d,t)})}largestGroupId(){return I(this,Ze).largestGroupId()}stopAfterTimestampReached(A){E(this,Cn,[0,A])}timestampRange(){return I(this,Cn)}endOfTrack(A){return I(this,Ze).endOfTrack(A)}update(A,e){return I(this,Ze).update(A,e)}unsubscribe(){return c(this,null,function*(){return I(this,Ze).unsubscribe()})}next(){return c(this,null,function*(){const A=yield I(this,Ze).next();return A.done?A:{done:!1,value:new Pu(A.value,I(this,Bn),I(this,rn),this)}})}return(){return c(this,null,function*(){return yield I(this,Ze).return(),{done:!0,value:void 0}})}[Symbol.asyncIterator](){return this}[Me()](){return this.unsubscribe()}[Symbol.asyncDispose](){return c(this,null,function*(){return this.unsubscribe()})}};Bn=new WeakMap,Ze=new WeakMap,rn=new WeakMap,Cn=new WeakMap,sa=new WeakSet,$E=function(A,e){return c(this,null,function*(){var n=[];try{const t=ue(n,yield A.subscribe(e),!0);const g=yield t.objects().next();if(g.done)throw new Error("No init object");yield t.close();return g.value.payload}catch(o){var a=o,B=!0}finally{var C=me(n,a,B);C&&(yield C)}})},r(ig,sa);let fB=ig;const DQ=1e4,xu=3e4,Er=class Er{constructor(A,e,t){r(this,qi);r(this,ga,GA.get().createContext("Timeline"));r(this,Kt,new xA([]));r(this,Hi);r(this,Qn);r(this,En);r(this,cn);E(this,Qn,A),E(this,En,t),E(this,Hi,e),E(this,cn,l(this,qi,Nr).call(this,I(this,Hi))),this.closed().finally(()=>I(this,Kt).close()).catch(G)}closed(){return I(this,cn)}close(){return c(this,null,function*(){return(yield I(this,Hi).promise).unsubscribe()})}timeline(){const[A,e]=I(this,Kt).value();return A}timestampWallclockOffset(){return we(this.timeline().map(A=>A.mediaPts-A.wallclock))}static start(A,e){const t=_.fromPromise(ft.subscribe(A,new $e().name(e).groupOrder("ascending").build()));return new Er(A,t,e)}waitForWallclockTime(A){return c(this,null,function*(){return yield I(this,Kt).waitFor(e=>!!e.find(t=>t.wallclock>=A)),this.timeline()})}waitForTimelineToHaveMinDuration(){return c(this,null,function*(){return yield I(this,Kt).waitFor(A=>{const e=A[0],t=A[A.length-1];return!e||!t?!1:t.wallclock-e.wallclock>DQ}),this.timeline()})}};ga=new WeakMap,Kt=new WeakMap,Hi=new WeakMap,Qn=new WeakMap,En=new WeakMap,cn=new WeakMap,qi=new WeakSet,Nr=function(A){return c(this,null,function*(){const e=yield A.promise;try{for(var u=EA(e),m,p,y;m=!(p=yield u.next()).done;m=!1){var a=p.value;var B=[];try{const k=ue(B,a,!0);try{for(var t=EA(k),g,n,o;g=!(n=yield t.next()).done;g=!1){const N=n.value;if(N.objectStatus!==WA.Normal)continue;const U=Wu(N.payload);I(this,Kt).update(K=>{var W,Z;for(K.push(...U),K.sort((j,QA)=>j.wallclock-QA.wallclock);K[0]&&((Z=(W=K[K.length-1])==null?void 0:W.wallclock)!=null?Z:0)-K[0].wallclock>xu;)K.shift();return K}),e===I(this,Hi).resolved&&N.groupId>M(0)&&N.objectId==M(0)&&l(this,qi,Ac).call(this,N.groupId).catch(K=>{I(this,ga).warn("backfill failed",K)})}}catch(n){o=[n]}finally{try{g&&(n=t.return)&&(yield n.call(t))}finally{if(o)throw o[0]}}}catch(C){var Q=C,h=!0}finally{var d=me(B,Q,h);d&&(yield d)}}}catch(p){y=[p]}finally{try{m&&(p=u.return)&&(yield p.call(u))}finally{if(y)throw y[0]}}})},Ac=function(A){return c(this,null,function*(){const e=A-M(1),t=this.timeline(),g=t[0],n=t[t.length-1];if(!g||!n||n.wallclock-g.wallclock>DQ)return;const o=_.fromPromise(ft.subscribe(I(this,Qn),new $e().name(I(this,En)).groupOrder("ascending").range(e,e).build()));return l(this,qi,Nr).call(this,o)})};let DB=Er;function Wu(i){var e;const A=new TextDecoder("utf-8").decode(i).split(`
|
|
49
|
+
`);return(e=A[0])!=null&&e.startsWith("MEDIA_PTS")&&A.shift(),A.filter(t=>t.length>0).map(t=>{const[g,n,o,a,B]=t.split(",");if(!g||!a)throw new Error(`invalid timeline row: ${t}`);return{mediaPts:parseInt(g),groupId:n?parseInt(n):void 0,objectId:o?parseInt(o):void 0,wallclock:parseInt(a),metadata:B}})}function Ou(i){return typeof i.language=="string"}const cr=class cr{constructor(A,e,t,g,n){r(this,Ia,new ZC);r(this,hn);r(this,Tt);r(this,sg,0);s(this,"trackObject");s(this,"namespace");E(this,Tt,A),E(this,hn,e),this.trackObject=t,this.namespace=g,E(this,sg,n)}static subscribe(A,e,t){return c(this,null,function*(){if(!Ou(e))throw new Error("track object language is required");const g=new $e().name(e.name).build(),n=yield ft.subscribe(A,g),o=n.objects();return new cr(n,o,e,A.namespace(),t)})}largestGroupId(){return I(this,Tt).largestGroupId()}update(A,e){return I(this,Tt).update(A,e)}unsubscribe(){return I(this,Tt).unsubscribe()}next(){return c(this,null,function*(){for(;;){const A=yield I(this,hn).next();if(A.done)return A;if(A.value.objectStatus!==WA.Normal)continue;const e=new TextDecoder().decode(A.value.payload),t=I(this,Ia).parse(e).map(n=>(n.startTime-=I(this,sg)/1e3,n.endTime-=I(this,sg)/1e3,n));return{done:!1,value:{language:this.trackObject.language,cues:t}}}})}return(){return c(this,null,function*(){return yield I(this,Tt).return(),{done:!0,value:void 0}})}[Symbol.asyncIterator](){return this}[Me()](){return this.unsubscribe()}[Symbol.asyncDispose](){return this.unsubscribe()}};Ia=new WeakMap,hn=new WeakMap,Tt=new WeakMap,sg=new WeakMap;let SB=cr;rE=[$A({context:"Channel",enter:"info"})];const Ig=class Ig{constructor(A,e,t,g,n){r(this,gg);s(this,"namespace");r(this,Ki);r(this,Ti);r(this,Yi);r(this,Yt);this.namespace=g,E(this,Ki,A),E(this,Ti,e),E(this,Yi,t),E(this,Yt,n)}static start(A,e){return c(this,null,function*(){const t=new wQ(A,{namespace:e.namespace}),[g,n]=yield Promise.all([DB.start(t,"timeline"),wB.start(t,{catalog:e.catalog,namespace:e.namespace})]);return new Ig(t,g,n,e.namespace,0)})}closed(){return I(this,Yi).closed()}catalog(){return I(this,Yi).catalog()}timestampWallclockOffset(){return I(this,Ti).timestampWallclockOffset()}timestampOffsetMs(){return I(this,Yt)}setTimestampOffsetMs(A){E(this,Yt,A)}waitForWallclockTime(A){return I(this,Ti).waitForWallclockTime(A)}subscribeCmafTrack(A,e){const t=e==null?void 0:e.startGroup,g=e==null?void 0:e.params,n=this.catalog().current().tracks,o=A["com.vindral.variant_uid"]!==void 0?n.find(a=>a["com.vindral.variant_uid"]===A["com.vindral.variant_uid"]):void 0;return l(this,gg,va).call(this,()=>fB.subscribe(I(this,Ki),o!=null?o:A,{timestampOffsetMs:I(this,Yt),startGroup:t,params:g}))}subscribeWebVttTrack(A){return l(this,gg,va).call(this,()=>SB.subscribe(I(this,Ki),A,I(this,Yt)))}subscribeTrack(A){return l(this,gg,va).call(this,()=>I(this,Ki).subscribe(A))}close(){return Promise.all([I(this,Yi).close(),I(this,Ti).close()])}};hr=zi(null),Ki=new WeakMap,Ti=new WeakMap,Yi=new WeakMap,Yt=new WeakMap,gg=new WeakSet,va=function(A){return c(this,null,function*(){const[e,t]=this.catalog().value();try{return yield A()}catch(g){if(e===this.catalog().current()&&t&&(yield Promise.race([t,ut(500)])),e!==this.catalog().current())return A();throw g}})},_A(hr,9,"start",rE,Ig),jt(hr,Ig),_i(hr,3,Ig);let mo=Ig;const Vu=M(8);function Zu(i){if(i<0||i>65535)throw new RangeError("burstMs must be between 0 and 65535 inclusive");const A=new Uint8Array([i>>8&255,i&255]);return{type:Vu,payload:A}}const dr=class dr{constructor(A){r(this,na);r(this,Pi);r(this,dn);const[e,t]=A.value.value();E(this,Pi,{createdAt:new Date,wallclock:new Date(e.ntpTimestamp),rtt:e.rtt}),E(this,dn,l(this,na,ec).call(this,A))}wallclock(){const e=Date.now()-I(this,Pi).createdAt.getTime();return I(this,Pi).wallclock.getTime()+e}closed(){return I(this,dn)}static start(A){return new dr(A)}};Pi=new WeakMap,dn=new WeakMap,na=new WeakSet,ec=function(A){return c(this,null,function*(){try{for(var e=EA(A.value),t,g,n;t=!(g=yield e.next()).done;t=!1){const o=g.value;E(this,Pi,{createdAt:new Date,wallclock:new Date(o.ntpTimestamp),rtt:o.rtt})}}catch(g){n=[g]}finally{try{t&&(g=e.return)&&(yield g.call(e))}finally{if(n)throw n[0]}}})};let pB=dr;function wo(i){return typeof i=="string"||i===null||i===void 0}function Xu(i){return"provider"in i&&typeof i.provider=="string"&&(!("widevineLicenseUrl"in i)||wo(i.widevineLicenseUrl))&&(!("playreadyLicenseUrl"in i)||wo(i.playreadyLicenseUrl))&&(!("fairplayLicenseUrl"in i)||wo(i.fairplayLicenseUrl))&&(!("fairplayCertificate"in i)||wo(i.fairplayCertificate))}function ju(i){try{return Mr(i)}catch(A){throw new Error("Failed to convert fairplayCertificate")}}function zu(i){const A=new TextDecoder().decode(i),e=JSON.parse(A);if(!Xu(e))throw new Error("Invalid drm object");const n=e,{fairplayCertificate:t}=n,g=uE(n,["fairplayCertificate"]);return V(f({},g),{fairplayCertificate:t?ju(t):void 0})}class yB{constructor(A){s(this,"value");this.value=A}static create(A,e,t){return c(this,null,function*(){var B=[];try{const g=ue(B,yield A.subscribeTrack(new $e().name("drm").build()),!0);const n=g.objects();const o=yield n.next();if(o.done)throw new Error("No drm object received");const a=zu(o.value.payload);return new yB(V(f({},a),{videoCodec:e,audioCodec:t}))}catch(C){var Q=C,h=!0}finally{var d=me(B,Q,h);d&&(yield d)}})}}function _u(i){return"rtt"in i&&typeof i.rtt=="number"&&"ntpTimestamp"in i&&typeof i.ntpTimestamp=="number"&&"estimatedBandwidth"in i&&typeof i.estimatedBandwidth=="number"}function SQ(i){const A=new TextDecoder().decode(i),e=JSON.parse(A);if(!_u(e))throw new Error("Invalid stats object");return e}const $u=1e4,lr=class lr{constructor(A,e,t){r(this,oa);s(this,"ip");s(this,"value");r(this,ln);this.ip=t,this.value=new xA(e),E(this,ln,l(this,oa,tc).call(this,A))}closed(){return I(this,ln)}idleTimeout(){return c(this,null,function*(){for(;;){const[A,e]=this.value.value();try{yield Promise.race([xa($u,new Error("Idle timeout")),e])}catch(t){return t}}})}static start(A){return c(this,null,function*(){const t=(yield A.subscribe(new $e().name("stats").groupOrder("ascending").build())).objects(),g=yield t.next();if(g.done)throw new Error("No stats object received");const n=SQ(g.value.payload);if(!n.ip)throw new Error("Expected IP in initial stats object");return new lr(t,n,n.ip)})}};ln=new WeakMap,oa=new WeakSet,tc=function(A){return c(this,null,function*(){try{for(var e=EA(A),t,g,n;t=!(g=yield e.next()).done;t=!1){const o=g.value;if(o.objectStatus!==WA.Normal)continue;const a=SQ(o.payload);this.value.update(a)}}catch(g){n=[g]}finally{try{t&&(g=e.return)&&(yield g.call(e))}finally{if(n)throw n[0]}}})};let FB=lr;class Am{constructor(A){r(this,aa,GA.get().createContext("UpstreamWatcher"));r(this,ng);E(this,ng,new xA(_.fromPromise(A.closed())))}update(A){I(this,ng).update(_.fromPromise(A.closed()))}closed(){return c(this,null,function*(){try{for(;;){const[A,e]=I(this,ng).value();let t=!1;yield Promise.race([e==null?void 0:e.then(()=>t=!0),A.promise.then(()=>{if(!t)throw I(this,aa).warn("Upstream closed"),new Error("Upstream closed")})])}}catch(A){return A}})}}aa=new WeakMap,ng=new WeakMap;class kB{constructor(A,e){r(this,og,GA.get().createContext("TracksIterator"));r(this,un);r(this,mn);E(this,un,A),E(this,mn,e)}[Symbol.asyncIterator](){return lt(this,null,function*(){const A=I(this,mn);try{for(var e=EA(I(this,un)),t,g,n;t=!(g=yield new rA(e.next())).done;t=!1){const o=g.value;if(!o)continue;const a={name:o.trackObject.name,namespace:o.namespace};I(this,og).debug("track start",f({mediaType:A},a)),yield*Dr(o),I(this,og).debug("track end",f({mediaType:A},a))}}catch(g){n=[g]}finally{try{t&&(g=e.return)&&(yield new rA(g.call(e)))}finally{if(n)throw n[0]}}I(this,og).debug("tracks ended",{mediaType:A})})}}og=new WeakMap,un=new WeakMap,mn=new WeakMap;let em=(EE=[$A({context:"Player",enter:"info"})],QE=[$A({context:"Player",enter:"info",return:"info"})],CE=[$A({context:"Player",enter:"info"})],Qt=class{constructor(A,e,t){_i(fn,5,this);r(this,VA);r(this,ag);r(this,Bg);r(this,xi);r(this,HA);r(this,Ge,new xA(void 0));r(this,Ue,new xA(void 0));r(this,Pt,new xA(void 0));r(this,rg);r(this,wn);s(this,"subtitles",new kB(I(this,Pt),"subtitles"));s(this,"video",new kB(I(this,Ue),"video"));s(this,"audio",new kB(I(this,Ge),"audio"));E(this,ag,A),E(this,Bg,pB.start(t)),E(this,xi,t),E(this,HA,new xA(e)),E(this,rg,new Am(e)),E(this,wn,Promise.race([t.idleTimeout(),l(this,VA,ic).call(this),I(this,rg).closed()])),I(this,ag).closed().then(()=>this.close()).catch(G)}closed(){return I(this,wn)}static start(A,e){return c(this,null,function*(){const t=new Map;if(e.burstMs!==void 0){const Q=Zu(e.burstMs);t.set(Q.type,Q)}const g=new wQ(A,{namespace:qu("auxiliary")}),[[n,o,a],B]=yield Promise.all([mo.start(A,e).then(Q=>Promise.all([Promise.resolve(Q),e.videoTrack?Q.subscribeCmafTrack(e.videoTrack,{params:t}):void 0,e.audioTrack?Q.subscribeCmafTrack(e.audioTrack,{params:t}):void 0])),FB.start(g)]),C=new Qt(A,n,B);return a&&I(C,Ge).update(a),o&&I(C,Ue).update(o),C})}connectionInfo(){const A=I(this,xi).value.current();return{ip:I(this,xi).ip,rtt:A.rtt,estimatedBandwidth:A.estimatedBandwidth}}stats(){return I(this,xi).value}catalog(){return I(this,HA).current().catalog()}namespace(){return I(this,HA).current().namespace}videoTrack(){var A;return(A=I(this,Ue).current())==null?void 0:A.trackObject}audioTrack(){var A;return(A=I(this,Ge).current())==null?void 0:A.trackObject}referenceClock(){return I(this,Bg)}drm(){return c(this,null,function*(){var e,t;if(this.catalog().current().tracks.find(({name:g})=>g==="drm"))return yB.create(I(this,HA).current(),(e=this.videoTrack())==null?void 0:e.codec,(t=this.audioTrack())==null?void 0:t.codec)})}close(){return Promise.all([I(this,HA).current().close(),I(this,HA).close(),l(this,VA,Ha).call(this,I(this,Ge)),l(this,VA,Ha).call(this,I(this,Ue)),l(this,VA,Ha).call(this,I(this,Pt))])}zap(A,e){return c(this,null,function*(){var m,p;const t=yield mo.start(I(this,ag),A),g=I(this,Bg).wallclock()-e,n=I(this,HA).current(),o=n.timestampWallclockOffset(),a=yield t.waitForWallclockTime(g);I(this,rg).update(t),yield I(this,HA).current().close();const B=a.toReversed().find(y=>y.wallclock<=g),C=B!=null&&B.mediaPts?B.mediaPts-n.timestampOffsetMs():void 0,d=t.timestampWallclockOffset()-o+n.timestampOffsetMs();t.setTimestampOffsetMs(d);const u=B!=null&&B.groupId?M(B.groupId):void 0;C&&((m=I(this,Ue).current())==null||m.stopAfterTimestampReached(C),(p=I(this,Ge).current())==null||p.stopAfterTimestampReached(C)),I(this,HA).update(t),yield Promise.all([A.videoTrack?this.setVideoTrack(A.videoTrack,u):void 0,A.audioTrack?this.setAudioTrack(A.audioTrack,u):void 0])})}setSubtitleTrack(A){return c(this,null,function*(){var t,g;if(!A){yield(t=I(this,Pt).current())==null?void 0:t.unsubscribe();return}const[e]=yield Promise.all([I(this,HA).current().subscribeWebVttTrack(A),(g=I(this,Pt).current())==null?void 0:g.unsubscribe()]);I(this,Pt).update(e)})}setVideoTrack(A,e){return c(this,null,function*(){const t=yield l(this,VA,Ln).call(this,I(this,HA).current(),A,I(this,Ue).current(),e);I(this,Ue).update(t)})}setAudioTrack(A,e){return c(this,null,function*(){const t=yield l(this,VA,Ln).call(this,I(this,HA).current(),A,I(this,Ge).current(),e);I(this,Ge).update(t)})}},fn=zi(null),ag=new WeakMap,Bg=new WeakMap,xi=new WeakMap,HA=new WeakMap,Ge=new WeakMap,Ue=new WeakMap,Pt=new WeakMap,rg=new WeakMap,wn=new WeakMap,VA=new WeakSet,Ha=function(A){const e=A.current(),t=e==null?void 0:e.largestGroupId();return A.isClosed()||A.update(void 0),A.close(),t?e==null?void 0:e.update(t,t):e==null?void 0:e.unsubscribe()},Ln=function(A,e,t,g){return c(this,null,function*(){const n=t==null?void 0:t.largestGroupId(),[o,a]=yield Promise.all([A.subscribeCmafTrack(e,{startGroup:g||(n?n+M(1):void 0)}),n?t==null?void 0:t.update(n,n):t==null?void 0:t.unsubscribe()]);return o})},ic=function(){return c(this,null,function*(){try{for(var n=EA(I(this,HA)),o,a,B;o=!(a=yield n.next()).done;o=!1){const C=a.value;try{for(var A=EA(C.catalog()),e,t,g;e=!(t=yield A.next()).done;e=!1){const Q=t.value;yield Promise.all([l(this,VA,Lr).call(this,Q,I(this,Ue)),l(this,VA,Lr).call(this,Q,I(this,Ge))])}}catch(t){g=[t]}finally{try{e&&(t=A.return)&&(yield t.call(A))}finally{if(g)throw g[0]}}}}catch(a){B=[a]}finally{try{o&&(a=n.return)&&(yield a.call(n))}finally{if(B)throw B[0]}}})},Lr=function(A,e){return c(this,null,function*(){const t=e.current();if(!t)return;const g=t.trackObject.name,n=t.trackObject["com.vindral.variant_uid"],o=A.tracks.find(B=>B.name===g),a=A.tracks.find(B=>B["com.vindral.variant_uid"]===n);if(!o){if(!a){e.update(void 0);return}e.update(yield I(this,HA).current().subscribeCmafTrack(a))}})},_A(fn,1,"close",EE,Qt),_A(fn,1,"zap",QE,Qt),Ln=_A(fn,17,"#replaceTrack",CE,VA,Ln),jt(fn,Qt),Qt);function RB(i,A,e){const t=new URL("/voq/subscribe",i);return t.searchParams.set("sessionId",A.sessionId),t.searchParams.set("clientId",A.clientId),t.searchParams.set("channelId",A.channelId),e&&t.searchParams.set("authToken",e),t}const tm=1e4,ur=class ur{constructor(A,e,t,g,n,o,a){r(this,DA);r(this,kA);r(this,ZA);r(this,ne);r(this,Dn,"disconnected");r(this,dA);r(this,xt,new Map);r(this,Sn);r(this,Cg);r(this,pn);r(this,Qg,new Map);r(this,Eg,A=>{if(!A){I(this,dA).setSubtitleTrack(void 0).catch(G);return}const e=I(this,xt).get(gi(I(this,dA).namespace())),t=e==null?void 0:e.getTextTrack(A);t&&I(this,dA).setSubtitleTrack(t).catch(G)});r(this,yn,A=>{switch(A.type){case"subscribe":{if(I(this,cg)){I(this,ZA).info("Ignoring - we are already switching");return}E(this,cg,!0),l(this,DA,Ic).call(this,A.subscription).catch(e=>{I(this,ZA).error("error handling subscription",e),I(this,kA).emit("received signal",{type:"subscription changed",subscription:A.subscription,reset:!0})}).finally(()=>E(this,cg,!1))}break;case"telemetry":zC(new URL("/api/telemetry",I(this,ne).url().replace("wss://","https://")),{body:A.body,headers:{"Content-Type":"text/plain"}}).catch(G);break;case"refresh auth":I(this,ne).updateAuthToken(A.token);break}});r(this,cg,!1);s(this,"disconnect",(A="Disconnect Requested")=>{I(this,ZA).info("Disconnecting",A),I(this,ne).close(),I(this,dA).close().catch(G),E(this,Qg,new Map),l(this,DA,Jn).call(this,"disconnected")});E(this,kA,A),E(this,ZA,e),E(this,ne,t),E(this,dA,g),E(this,xt,n),E(this,Sn,o),E(this,Cg,a),I(this,kA).on("send signal",I(this,yn)),I(this,kA).on("disconnect",this.disconnect),I(this,kA).on("text track",I(this,Eg)),l(this,DA,sc).call(this).catch(G),l(this,DA,nc).call(this).catch(G)}get estimatedBandwidth(){return I(this,pn)}unload(){I(this,kA).off("send signal",I(this,yn)),I(this,kA).off("disconnect",this.disconnect),I(this,kA).off("text track",I(this,Eg)),this.disconnect()}suspend(){}unsuspend(){}getStatistics(){const e=I(this,ne).transportType()==="webtransport"?"moq":"moq_ws";return{edgeUrl:I(this,ne).url(),connectionProtocol:e}}static start(A,e,t,g,n){return c(this,null,function*(){var U,K,W,Z;const o=new Map(g.connectInfo.channels.map(j=>[gi(j.catalog.namespace),new UB(new xA(j.catalog))])),a=yield g.onConnectInfo(g.connectInfo),B=g.options.get("authenticationToken");let C,Q;typeof g.edgeUrl==="string"?C=RB(g.edgeUrl,a,B):(C=RB(g.edgeUrl.moqUrl||g.edgeUrl.moqWsUrl,a,B),Q=RB(g.edgeUrl.moqWsUrl,a,B));const h=(U=g.connectInfo.channels.find(j=>j.channelId===a.channelId))==null?void 0:U.catalog;e.debug("Resolved edge url",{edgeUrl:C,edgeWsUrl:Q}),lA(h,"no catalog found");const d=(K=o.get(gi(h.namespace)))==null?void 0:K.getVideoTrack(a.video),u=(W=o.get(gi(h.namespace)))==null?void 0:W.getAudioTrack(a.audio),m=yield Hu({url:C,wsUrl:Q,authToken:g.options.get("authenticationToken"),preferredTransport:g.options.get("webtransportEnabled")?"webtransport":"websocket",role:ru.Subscriber,websocketFallbackTimeoutMs:2e3}),p=m.closed().then(j=>{throw j instanceof Error?j:new Error(j?`Session closed before player started: ${String(j)}`:"Session closed before player started")}),y=yield Promise.race([em.start(m.subscriber,{namespace:h.namespace,catalog:h,videoTrack:d==null?void 0:d.track,audioTrack:u==null?void 0:u.track,burstMs:a.burstMs||0}),xa(tm,new Error("Timeout waiting for player to start")),p]),k=new UB(y.catalog());o.set(gi(h.namespace),k),A.emit("received signal",{type:"client ip",ip:y.connectionInfo().ip}),y.drm().then(j=>{j&&A.emit("received drm data",j.value)}).catch(j=>{e.error("Error getting DRM data",j)});const N=new ur(A,e,m,y,o,t,n);return a.textTrack&&I(Z=N,Eg).call(Z,a.textTrack),N})}getState(){return I(this,Dn)}close(){I(this,ne).close()}closed(){return Promise.race([I(this,ne).closed(),I(this,dA).closed()])}};kA=new WeakMap,ZA=new WeakMap,ne=new WeakMap,Dn=new WeakMap,dA=new WeakMap,xt=new WeakMap,Sn=new WeakMap,Cg=new WeakMap,pn=new WeakMap,Qg=new WeakMap,DA=new WeakSet,sc=function(){return c(this,null,function*(){I(this,ne).transportType()==="websocket"&&(yield ut(5e3));try{for(var A=EA(I(this,dA).stats()),e,t,g;e=!(t=yield A.next()).done;e=!1){const{rtt:n,estimatedBandwidth:o}=t.value;E(this,pn,o),I(this,Cg).push(n),I(this,kA).emit("rtt",we(I(this,Cg).items()))}}catch(t){g=[t]}finally{try{e&&(t=A.return)&&(yield t.call(A))}finally{if(g)throw g[0]}}})},Eg=new WeakMap,yn=new WeakMap,cg=new WeakMap,gc=function(A){return c(this,null,function*(){var g;const e=yield I(this,Sn).connect({channelId:A});if(!tC(e))throw new Error("no moq connect info found");const t=(g=e.channels.find(n=>n.channelId===A))==null?void 0:g.catalog;if(!t)throw new Error("no catalog found");return t})},Ic=function(A){return c(this,null,function*(){var o,a,B;I(this,ZA).info("handle subscription",A);const e=I(this,dA);let t=I(this,xt).get(A.channelId);if(t||(t=new UB(new xA(yield l(this,DA,gc).call(this,A.channelId))),I(this,xt).set(A.channelId,t)),e.namespace().join("/")!==t.namespace().join("/")){I(this,ZA).info("changing channel",A.channelId);const C=t.getVideoTrack(A.video),Q=t.getAudioTrack(A.audio);yield e.zap({namespace:t.namespace(),catalog:t.catalog(),videoTrack:C==null?void 0:C.track,audioTrack:Q==null?void 0:Q.track},500),e.drm().then(h=>{h&&I(this,kA).emit("received drm data",h.value)}).catch(h=>{I(this,ZA).error("Error getting DRM data",h)}),I(this,ZA).info("switched channel",A.channelId),(o=I(this,xt).get(gi(e.namespace())))==null||o.updateCatalog(e.catalog()),I(this,kA).emit("received signal",{type:"subscription changed",subscription:A});return}const g=t.getVideoTrack(A.video),n=t.getAudioTrack(A.audio);yield Promise.all([g&&g.track.name!==((a=I(this,dA).videoTrack())==null?void 0:a.name)?I(this,dA).setVideoTrack(g.track):void 0,n&&n.track.name!==((B=I(this,dA).audioTrack())==null?void 0:B.name)?I(this,dA).setAudioTrack(n.track):void 0]),I(this,kA).emit("received signal",{type:"subscription changed",subscription:A})})},Jn=function(A){E(this,Dn,A),I(this,kA).emit("connection state",A)},nc=function(){return c(this,null,function*(){try{l(this,DA,Jn).call(this,"connecting"),I(this,ZA).info("Connecting..."),l(this,DA,Jn).call(this,"connected"),yield Promise.all([l(this,DA,Jr).call(this,I(this,dA).referenceClock(),I(this,dA).audio),l(this,DA,Jr).call(this,I(this,dA).referenceClock(),I(this,dA).video),l(this,DA,oc).call(this,I(this,dA).subtitles)]),yield I(this,dA).closed(),I(this,ne).close(),I(this,ZA).info("Session closed")}catch(A){I(this,ZA).warn("Session error",A)}finally{l(this,DA,Jn).call(this,"disconnected")}})},oc=function(A){return c(this,null,function*(){try{for(var e=EA(A),t,g,n;t=!(g=yield e.next()).done;t=!1){const o=g.value;I(this,kA).emit("text track data",o)}}catch(g){n=[g]}finally{try{t&&(g=e.return)&&(yield g.call(e))}finally{if(n)throw n[0]}}})},Jr=function(A,e){return c(this,null,function*(){var a;let t="",g="",n;const o=I(this,dA).videoTrack()===void 0;try{for(var d=EA(e),u,m,p;u=!(m=yield d.next()).done;u=!1){const y=m.value;const k=gi(y.track.namespace),N=y.track.trackObject.language,U=Oa((a=y.track.trackObject.codec)!=null?a:""),K=y.track.trackObject.codec,W=U?mt({codec:U,codecString:K}):void 0,Z=!!y.track.trackObject["com.vindral.drm"];try{for(var B=EA(y),C,Q,h;C=!(Q=yield B.next()).done;C=!1){const[j,QA]=Q.value;const ee={channelId:t!==""&&(o||QA.mediaType()==="video")&&t!==k?k:void 0,language:QA.mediaType()==="audio"&&g!==N?N:void 0,drmTransition:n!==void 0&&n!==Z};t=k,g=N,n=Z;const qA=QA.producerReferenceTime(),XA=I(this,Qg).get(y.track.namespace)||0;if(qA&&Date.now()-XA>1e3){I(this,Qg).set(y.track.namespace,Date.now());const jA=A.wallclock()-qA.getTime();I(this,ZA).debug("timing-info",{mediaType:QA.mediaType(),referenceClock:A,delta:jA,groupId:j,timestamp:QA.baseMediaDecodeTime()/QA.timescale()*1e3+jA,wallclockTime:qA.getTime()}),I(this,kA).emit("received signal",{type:"timing info",timingInfo:{channelId:k,timestamp:QA.baseMediaDecodeTime()/QA.timescale()*1e3+jA,wallclockTime:qA.getTime()}})}I(this,kA).emit("received moq data",{payload:QA,channelId:k,groupId:j,mimeType:W,codec:U,switchInfo:ee,renditionId:im(y.track.trackObject.name)})}}catch(Q){h=[Q]}finally{try{C&&(Q=B.return)&&(yield Q.call(B))}finally{if(h)throw h[0]}}}}catch(m){p=[m]}finally{try{u&&(m=d.return)&&(yield m.call(d))}finally{if(p)throw p[0]}}})};let GB=ur;function im(i){return i.split("").reduce((e,t)=>e=t.charCodeAt(0)+(e<<6)+(e<<16)-e,0)}class UB{constructor(A){r(this,Ba);r(this,Et);r(this,Wi);E(this,Et,A),E(this,Wi,l(this,Ba,ac).call(this))}catalog(){return I(this,Et).current()}namespace(){return I(this,Et).current().namespace}updateCatalog(A){E(this,Et,A)}getTextTrack(A){return I(this,Et).current().tracks.find(e=>e.label===A)}getAudioTrack(A){if(!A.codec)return;const e=I(this,Wi).filter(t=>!(!ti(t)||t.bitRate>A.bitRate||A.codec&&t.codec!==A.codec||A.language&&t.language!==A.language));return e[e.length-1]}getVideoTrack(A){if(!A.codec)return;const e=I(this,Wi).filter(t=>!(!ei(t)||t.bitRate>A.bitRate||A.codec&&t.codec!==A.codec));return e[e.length-1]}renditions(){return I(this,Wi)}}Et=new WeakMap,Wi=new WeakMap,Ba=new WeakSet,ac=function(){const[A,e]=I(this,Et).value();return iC(A)};const sm=(i,A)=>{const e=new URL("/subscribe",i);return e.searchParams.append("channelId",A.channelId),e.searchParams.append("sessionId",A.sessionId),e.searchParams.append("clientId",A.clientId),A.audio&&A.audio.codec&&(e.searchParams.append("audio.bitRate",Math.round(A.audio.bitRate).toString()),e.searchParams.append("audio.codec",A.audio.codec),A.audio.language&&e.searchParams.append("audio.language",A.audio.language)),A.video&&A.video.codec&&(e.searchParams.append("video.width",A.video.width.toString()),e.searchParams.append("video.height",A.video.height.toString()),e.searchParams.append("video.bitRate",Math.round(A.video.bitRate).toString()),e.searchParams.append("video.codec",A.video.codec)),A.expectAdditionalConnection&&e.searchParams.append("expectAdditionalConnection",A.expectAdditionalConnection.toString()),A.burstMs&&e.searchParams.append("burstMs",A.burstMs.toString()),A.channelGroupId&&e.searchParams.append("channelGroupId",A.channelGroupId),A.authToken&&(e.searchParams.append("auth.token",A.authToken),e.searchParams.append("auth.type","jwt")),e.toString()};class gm extends ie{constructor(e,t){super();s(this,"options");s(this,"websockets",[]);s(this,"logger");s(this,"reconnectState",{reconnectRetries:0});s(this,"isSuspended",!1);s(this,"_connectionAttemptCount",0);s(this,"connectStartTime",0);s(this,"_connectTime");s(this,"shouldContinueConnecting",!1);s(this,"_isConnectInProgress",!1);s(this,"readyState",()=>{if(this.websockets.length===0)return WebSocket.CLOSED;const e=this.websockets.map(t=>t.readyState);for(const t of e)if(t!==WebSocket.OPEN)return t;return WebSocket.OPEN});s(this,"url",()=>{var e;return(e=this.websockets[0])==null?void 0:e.url});s(this,"send",e=>{var t;this.websockets.length&&((t=this.websockets[0])==null||t.send(e))});s(this,"close",e=>{var g;let t=!1;return(g=this.websockets)==null||g.forEach(n=>{n.onmessage=G,n.removeEventListener("error",this.onError),n.removeEventListener("close",this.onClose),n.removeEventListener("open",this.onOpen),n.close(1e3,e),t=!0}),this.websockets=[],this.shouldContinueConnecting=!1,this._isConnectInProgress=!1,this.logger.info("Closed websocket",{reason:e}),t});s(this,"suspend",()=>{this.isSuspended=!0});s(this,"unsuspend",()=>{this.isSuspended=!1,this.readyState()!==WebSocket.OPEN&&!this.isConnectInProgress&&this.connect()});s(this,"onMessage",(e,t)=>{this.websockets.length!==0&&this.options.onMessage(e,t.data)});s(this,"onError",()=>{this.logger.info("On error",f({},this.options)),this.close("one websocket had an error"),this.emit("error",new x("WebSocket error",{code:"websocket_error",isFatal:!1}))});s(this,"onClose",e=>{switch(this.logger.info("Closed",V(f({},this.options),{reason:e.reason,code:e.code,isSuspended:this.isSuspended})),this.close("one websocket was closed"),e.code){case 4e3:this.emit("error",Tn(kg()));break;case 4001:this.emit("error",Tn(kg()));break;case 4002:this.emit("error",dh(kg()));break;case 4003:this.emit("error",lC("internal",kg()));break;case 4010:this.emit("error",lh("internal",kg()));break}this.emit("close",this)});s(this,"onOpen",()=>{this.logger.info("Opened",f({},this.options)),this.readyState()===WebSocket.OPEN&&(this._connectTime=Date.now()-this.connectStartTime,this.reconnectState.reconnectRetries=0,this._isConnectInProgress=!1,this.emit("open",this))});s(this,"connect",(e=!1)=>c(this,null,function*(){if(this.isConnectInProgress)return this.logger.info("Connect already in progress"),!1;if(this.isSuspended)return!1;if(this.readyState()!==WebSocket.CLOSED&&this.close("new connection in progress"),this.shouldContinueConnecting=!0,this._isConnectInProgress=!0,e&&this.options.reconnectDelay>0){this.logger.info("Waiting for reconnect delay",f({},this.options)),yield ut(this.options.reconnectDelay);const t=yield this.options.reconnectHandler(this.reconnectState);if(this.reconnectState.reconnectRetries++,!t)return this._isConnectInProgress=!1,this.emit("error",uC()),!1}this._connectionAttemptCount++;try{if(!this.shouldContinueConnecting)return this._isConnectInProgress=!1,this.logger.info("Connection aborted"),!1;const{url:t,connectionCount:g}=yield this.options.connectHandler();if(this.connectStartTime=Date.now(),!this.shouldContinueConnecting)return this._isConnectInProgress=!1,this.logger.info("Connection aborted"),!1;this.logger.info("Connecting websockets",V(f({},this.options),{url:t}));for(let n=0;n<g;n++){const o=new WebSocket(t);o.binaryType="arraybuffer",o.onmessage=a=>this.onMessage(n,a),o.addEventListener("error",this.onError),o.addEventListener("close",this.onClose),o.addEventListener("open",this.onOpen),this.websockets.push(o)}return!0}catch(t){return this._isConnectInProgress=!1,t instanceof x&&(this.logger.error("Failed to connect",t.toStringifiable()),t.isFatal())||this.shouldContinueConnecting&&(this.logger.info("Connection aborted",{error:t}),this.emit("error",new x("Failed to connect",{code:"failed_to_connect",isFatal:!1,source:t,type:"internal"}))),!1}}));this.options=e,this.logger=t}get isConnectInProgress(){return this._isConnectInProgress}get connectionCount(){return this.websockets.length}get connectionAttemptCount(){return this._connectionAttemptCount}get connectTime(){return this._connectTime}}const Im=65536*8,nm=.9,om=40,am=i=>{const A=i||om;return Im*nm*1e3/A},Xe=class Xe{constructor(A,e,t,g){s(this,"emitter");s(this,"transport");s(this,"logger");s(this,"config");s(this,"rtts");s(this,"lastPingSentTime",Date.now());s(this,"isPingInFlight",!1);s(this,"connectCount",0);s(this,"missedPings",0);s(this,"contextSwitchesInProgress",new Set);s(this,"contextSwitchesCompleted",new Set);s(this,"buffer",[]);s(this,"disconnected",new _);s(this,"unload",()=>{this.logger.debug("Unloading module..."),this.close("Unloading"),this.emitter.off("send signal",this.sendSignal),this.emitter.off("disconnect",this.close),this.emitter.off("reconnect",this.reconnect),this.logger.debug("Unloaded module")});s(this,"suspend",()=>{this.resetPingState(),this.transport.suspend()});s(this,"unsuspend",()=>{this.transport.unsuspend()});s(this,"getState",()=>{switch(this.transport.readyState()){case WebSocket.OPEN:return"connected";case WebSocket.CONNECTING:return"connecting";default:return"disconnected"}});s(this,"sendSignal",A=>{if(this.logger.debug("sending signal",{signal:A}),this.transport.readyState()!==WebSocket.OPEN){this.logger.debug("transport is closed");return}this.transport.send(JSON.stringify(A))});s(this,"getStatistics",()=>{var A;return{edgeUrl:(A=this.transport)==null?void 0:A.url(),connectionProtocol:"vindral_ws"}});s(this,"onMessage",(A,e)=>{var t;if(this.pingCooldownExpired()&&this.sendPing(),this.contextSwitchesCompleted.size===((t=this.transport)==null?void 0:t.connectionCount)){this.logger.info("Completing context switch"),this.contextSwitchesInProgress.clear(),this.contextSwitchesCompleted.clear();const g=this.buffer.filter(([o,a])=>!(a instanceof ArrayBuffer)),n=this.buffer.filter(([o,a])=>a instanceof ArrayBuffer);g.map(o=>this.handleMessage(o[0],o[1])),n.map(o=>this.handleMessage(o[0],o[1])),this.buffer=[]}if(this.contextSwitchesInProgress.has(A)){if(!(e instanceof ArrayBuffer)){const g=JSON.parse(e);if(sC(g)&&g.type==="context switch complete"){this.logger.info("context switch completed",{socketId:A}),this.emitter.emit("context switch complete"),this.contextSwitchesCompleted.add(A);return}}this.buffer.push([A,e]);return}this.handleMessage(A,e)});s(this,"resolveEdgeUrl",()=>c(this,null,function*(){const A=this.config.connectInfo,e=yield this.config.onConnectInfo(A),t=this.config.options.getOverride("separateVideoSocketEnabled",e.channelId),g=this.config.options.get("media")==="audio+video";let n=1;g&&(n=t!==!1?2:1);const o=sm(this.config.edgeUrl,{video:e.video,audio:e.audio,burstMs:e.burstMs,sessionId:e.sessionId,clientId:e.clientId,channelId:e.channelId,channelGroupId:e.channelGroupId,expectAdditionalConnection:n>1,authToken:this.config.options.get("authenticationToken")});return this.logger.debug("Resolved edge url",{edgeUrl:o}),{url:o,connectionCount:n}}));s(this,"handleMessage",(A,e)=>{if(e instanceof ArrayBuffer)this.emitter.emit("received data",e);else{const t=JSON.parse(e);if(!sC(t))return;switch(t.type){case"pong":this.lastPingSentTime&&(this.rtts.push(Date.now()-this.lastPingSentTime),this.isPingInFlight=!1,this.emitter.emit("rtt",we(this.rtts.items())));break;case"context switch":this.logger.info("Starting context switch",{socketId:A}),this.emitter.emit("context switch started"),this.contextSwitchesInProgress.add(A);break;default:this.emitter.emit("received signal",t);break}}});s(this,"connectWebSocketTransport",()=>{const A=new gm({reconnectDelay:1e3,onMessage:this.onMessage,reconnectHandler:this.config.reconnectHandler,connectHandler:this.resolveEdgeUrl},this.logger.createContext("Transport"));return A.on("open",this.onTransportChange),A.on("close",this.onTransportChange),A.on("error",e=>this.disconnected.reject(e)),A.connect(),A});s(this,"close",(A="Disconnect Requested")=>{var e;this.contextSwitchesCompleted.clear(),this.contextSwitchesInProgress.clear(),this.buffer=[],this.resetPingState(),this.disconnected.resolve(),(e=this.transport)==null||e.close(A)});s(this,"onTransportChange",()=>{var A;this.getState()==="connected"?((A=this.transport)!=null&&A.connectTime&&(this.rtts.push(this.transport.connectTime/Xe.TLS_ROUNDTRIPS/(this.transport.connectionCount||1)),this.emitter.emit("rtt",we(this.rtts.items()))),this.connectCount++,this.resetPingState()):(this.contextSwitchesCompleted.clear(),this.contextSwitchesInProgress.clear(),this.buffer=[],this.resetPingState(),this.disconnected.resolve()),this.emitter.emit("connection state",this.getState())});s(this,"reconnect",A=>{if(this.transport.isConnectInProgress){this.logger.debug("Stopping reconnect, already mid-connection");return}this.close(A)});s(this,"resetPingState",()=>{this.missedPings=0,this.isPingInFlight=!1});s(this,"pingCooldownExpired",()=>Date.now()-this.lastPingSentTime>Xe.PING_INTERVAL);s(this,"sendPing",()=>{if(this.isPingInFlight){this.missedPings++,this.missedPings>Xe.MAX_MISSED_PINGS&&this.reconnect("missed pings");return}this.isPingInFlight=!0,this.lastPingSentTime=Date.now(),this.missedPings=0,this.sendSignal({type:"ping"})});this.logger=e,this.emitter=A,this.config=t,this.rtts=g,this.emitter.on("send signal",this.sendSignal),this.emitter.on("disconnect",this.close),this.emitter.on("reconnect",this.reconnect),this.disconnected.promise.catch(G),this.transport=this.connectWebSocketTransport()}closed(){return this.disconnected.promise}};s(Xe,"PING_INTERVAL",5e3),s(Xe,"MAX_MISSED_PINGS",4),s(Xe,"TLS_ROUNDTRIPS",3),s(Xe,"start",(A,e,t,g)=>new Promise((n,o)=>{const a=new Xe(A,e,t,g);a.transport.once("error",B=>o(B)),a.transport.once("open",()=>n(a))}));let bB=Xe;class Bm{constructor(A){r(this,hg);r(this,Wt,[]);r(this,dg);E(this,hg,A)}select(A){if(I(this,hg).edgeUrl)return I(this,hg).edgeUrl;I(this,Wt).length===0&&E(this,Wt,I(this,Wt).concat(A));const e=I(this,Wt).shift();if(E(this,dg,e),e)return e}shiftedEdge(){return I(this,dg)}reset(){E(this,dg,void 0),E(this,Wt,[])}}hg=new WeakMap,Wt=new WeakMap,dg=new WeakMap;const wg=class wg{constructor(A,e,t){r(this,Qa);s(this,"emitter");s(this,"logger");s(this,"config");s(this,"apiClient");s(this,"connectionImpl");r(this,je,new P(10));r(this,be,!0);r(this,lg);r(this,Oi,0);r(this,Ot,0);r(this,Vi,0);r(this,ug);r(this,mg);s(this,"unload",()=>{var A;this.logger.debug("Unloading module..."),this.disconnect("Unloading"),(A=this.connectionImpl)==null||A.unload(),this.logger.debug("Unloaded module")});s(this,"suspend",()=>{var A;E(this,be,!1),(A=this.connectionImpl)==null||A.suspend()});s(this,"unsuspend",()=>{var A;E(this,be,!0),(A=this.connectionImpl)==null||A.unsuspend(),this.connect()});s(this,"getState",()=>this.connectionImpl?this.connectionImpl.getState():"disconnected");s(this,"getStatistics",()=>{const A=I(this,Ot)>0?I(this,Vi)/I(this,Ot):0;return this.connectionImpl?V(f({},this.connectionImpl.getStatistics()),{rtt:$t(I(this,je).items()),estimatedBandwidth:this.estimatedBandwidth,connectCount:I(this,Vi),connectionAttemptCount:I(this,Ot),connectionSuccessRatio:A}):{rtt:{min:0,max:0,average:0,last:0},estimatedBandwidth:0,connectCount:I(this,Vi),connectionAttemptCount:I(this,Ot),connectionSuccessRatio:A,connectionProtocol:void 0}});s(this,"connect",()=>{E(this,be,!0),!I(this,lg)&&E(this,lg,l(this,Qa,Bc).call(this))});s(this,"disconnect",(A="Disconnect Requested")=>{var e;E(this,be,!1),(e=this.connectionImpl)==null||e.close(A)});s(this,"reconnect",A=>{this.disconnect(A),this.connect()});r(this,ra,()=>c(this,null,function*(){try{return yield this.apiClient.connect(this.config.options.getOptions())}catch(A){if(Ml(A))switch(A.status){case 401:throw this.emitter.emit("error",Tn(A)),Tn(A);case 403:throw this.emitter.emit("error",mC(A.message)),mC(A.message)}throw this.emitter.emit("error",mh(A instanceof Error?A:void 0)),A}}));r(this,Ca,()=>c(this,null,function*(){const A=Date.now(),e=()=>Date.now()-A;return Promise.race([ut(wg.PING_TIMEOUT),fetch(new URL("/api/v4/connect/ping",this.config.options.get("url")).toString(),{method:"HEAD"})]).then(e,e)}));this.logger=e,this.emitter=A,this.config=t,this.apiClient=new $C({publicEndpoint:this.config.options.get("url").toString(),tokenFactory:()=>this.config.options.get("authenticationToken")})}get rtt(){return I(this,je).items().length>0?we(I(this,je).items()):0}get estimatedBandwidth(){return this.connectionImpl&&"estimatedBandwidth"in this.connectionImpl&&this.connectionImpl.estimatedBandwidth?this.connectionImpl.estimatedBandwidth:am(this.rtt)}get firstConnectionTime(){return I(this,ug)}get lastConnectionTime(){return I(this,mg)}};je=new WeakMap,be=new WeakMap,lg=new WeakMap,Oi=new WeakMap,Ot=new WeakMap,Vi=new WeakMap,ug=new WeakMap,mg=new WeakMap,ra=new WeakMap,Ca=new WeakMap,Qa=new WeakSet,Bc=function(){return c(this,null,function*(){var e;const A=new Bm({edgeUrl:this.config.options.get("edgeUrl")});for(E(this,Oi,0);;){te(this,Oi)._++,te(this,Ot)._++;let t=!1;try{const[n,o]=yield Promise.all([I(this,ra).call(this),I(this,Ca).call(this)]),a=o/2;if(I(this,je).clear(),I(this,je).push(a),!I(this,be))break;const B=A.select(n.edges);if(!B)throw new x("Failed to resolve edge url",{isFatal:!0,code:"failed_to_resolve_edge_url"});tC(n)?this.connectionImpl=yield GB.start(this.emitter,this.logger,this.apiClient,V(f({},this.config),{connectInfo:n,edgeUrl:B}),I(this,je)):(lA(typeof B=="string","Edge URL is expected to be a string"),this.connectionImpl=yield bB.start(this.emitter,this.logger,V(f({},this.config),{connectInfo:n,edgeUrl:B}),I(this,je))),A.reset(),te(this,Vi)._++,E(this,Oi,0),E(this,mg,Date.now()),I(this,ug)||E(this,ug,I(this,mg)),yield this.connectionImpl.closed()}catch(n){this.logger.info("Failed to connect",n);const o=A.shiftedEdge();o&&this.emitter.emit("telemetry event",{code:"shifted_edge",edgeUrl:typeof o=="string"?o:o.moqUrl||o.moqWsUrl}),n instanceof x?(this.emitter.emit("error",n),t=n.isFatal()):n instanceof Error&&this.emitter.emit("error",new x(n.message,{code:"start_failed",isFatal:!1}))}if((e=this.connectionImpl)==null||e.unload(),this.connectionImpl=void 0,t){E(this,be,!1);break}if(!I(this,be))break;if(!(yield this.config.reconnectHandler({reconnectRetries:I(this,Oi)}))){this.emitter.emit("error",uC());break}if(yield ut(1e3),!I(this,be))break}E(this,lg,void 0)})},s(wg,"PING_TIMEOUT",1e3),s(wg,"create",(A,e,t)=>new wg(A,e,t));let NB=wg;const LB=()=>({video:V(f({},qn()),{bitRate:wt()}),audio:{bitRate:wt()}}),rm=()=>({width:window.innerWidth,height:window.innerHeight,bitRate:wt()}),fg=class fg{constructor(A,e,t,g){s(this,"emitter");s(this,"timers",new JA);s(this,"pictureInPictureSource");s(this,"element");s(this,"currentCap");s(this,"userSpecifiedCap");s(this,"renditionLevelSource");s(this,"resizeObserver");s(this,"elementSize");s(this,"_sizeBasedResolutionCapEnabled");s(this,"unload",()=>{var A;this.emitter.off("enter picture in picture",this.enterPictureInPicture),this.emitter.off("exit picture in picture",this.exitPictureInPicture),(A=this.resizeObserver)==null||A.disconnect(),this.suspend()});s(this,"load",()=>{window.ResizeObserver&&(this.resizeObserver=new ResizeObserver(this.onResize),this.resizeObserver.observe(this.element)),this.evaluateConstraintCap()});s(this,"setElement",A=>{var t;if(A===this.element)return;(t=this.resizeObserver)==null||t.disconnect(),this.element=A;const e=this.element.getBoundingClientRect();this.elementSize={width:e.width,height:e.height},this.resizeObserver&&this.resizeObserver.observe(this.element),this.evaluateConstraintCap()});s(this,"unsuspend",()=>{this.timers.setInterval(this.evaluateConstraintCap,fg.CHECK_SIZE_INTERVAL),this.evaluateConstraintCap()});s(this,"suspend",()=>{this.timers.unload()});s(this,"setUserSpecifiedCap",A=>{var t;const e=(t=this.getUserSpecifiedCap())!=null?t:LB();this.userSpecifiedCap=V(f({},e),{video:f(f({},e.video),A.video),audio:f(f({},e.audio),A.audio)}),this.evaluateConstraintCap()});s(this,"getUserSpecifiedCap",()=>this.userSpecifiedCap);s(this,"getCurrentConstraintCap",()=>this.currentCap);s(this,"getStatistics",()=>({constraintCap:this.getUserSpecifiedCap(),windowInnerWidth:window.innerWidth,windowInnerHeight:window.innerHeight,elementWidth:this.elementSize.width,elementHeight:this.elementSize.height,pixelRatio:window.devicePixelRatio}));s(this,"constrainSubscription",A=>{const e=this.getCurrentConstraintCap();return e&&(A.video.codec&&(A.video.bitRate=Math.min(e.video.bitRate,A.video.bitRate),A.video.width=Math.min(e.video.width,A.video.width),A.video.height=Math.min(e.video.height,A.video.height)),A.audio.codec&&(A.audio.bitRate=Math.min(e.audio.bitRate,A.audio.bitRate))),A});s(this,"onResize",A=>{A.forEach(e=>{this.elementSize={width:e.contentRect.width,height:e.contentRect.height}})});s(this,"evaluateConstraintCap",()=>{var o,a,B,C,Q;const A=this.sizeBasedResolutionCapEnabled?V(f({},LB()),{video:rm()}):LB();if(!this.resizeObserver){const h=this.element.getBoundingClientRect();this.elementSize={width:h.width,height:h.height}}if(this.sizeBasedResolutionCapEnabled){const h=window.devicePixelRatio,d=(o=this.pictureInPictureSource)==null?void 0:o.getPictureInPictureSize();this.elementSize.width>0&&this.elementSize.height>0&&(A.video.width=this.elementSize.width,A.video.height=this.elementSize.height),d&&(A.video.width=d.width,A.video.height=d.height),A.video.width*=h,A.video.height*=h}const t=this.renditionLevelSource.getRenditionLevels().find(h=>{if(h.video){const d=h.video.width/h.video.height,u=A.video.width/A.video.height;return d>u?h.video.width>A.video.width:h.video.height>A.video.height}});t&&t.video&&(A.video.width=t.video.width,A.video.height=t.video.height);const g=(a=this.userSpecifiedCap)==null?void 0:a.video,n=(B=this.userSpecifiedCap)==null?void 0:B.audio;g&&(A.video.width>g.width&&(A.video.width=g.width),A.video.height>g.height&&(A.video.height=g.height)),A.video.bitRate=(C=g==null?void 0:g.bitRate)!=null?C:A.video.bitRate,A.audio.bitRate=(Q=n==null?void 0:n.bitRate)!=null?Q:A.audio.bitRate,gs(A,this.currentCap)?this.currentCap=f({},A):(this.currentCap=f({},A),this.emitter.emit("constraint cap changed",A))});s(this,"enterPictureInPicture",A=>{this.pictureInPictureSource=A,this.evaluateConstraintCap()});s(this,"exitPictureInPicture",()=>{this.pictureInPictureSource=void 0,this.evaluateConstraintCap()});this.element=e;const n=this.element.getBoundingClientRect();this.elementSize={width:n.width,height:n.height},this.emitter=A,this.renditionLevelSource=t,this._sizeBasedResolutionCapEnabled=g,this.emitter.on("enter picture in picture",this.enterPictureInPicture),this.emitter.on("exit picture in picture",this.exitPictureInPicture)}get sizeBasedResolutionCapEnabled(){return this._sizeBasedResolutionCapEnabled}set sizeBasedResolutionCapEnabled(A){this._sizeBasedResolutionCapEnabled=A,this.evaluateConstraintCap()}};s(fg,"CHECK_SIZE_INTERVAL",1e3),s(fg,"create",(A,e,t,g)=>new fg(A,e,t,g));let JB=fg;const Cm=5,Qm=100,pQ=1e3;class MB{constructor(A,e,t,g,n=!1,o=!1,a=!1){s(this,"timers",JA.create());s(this,"logger");s(this,"emitter");s(this,"trackContexts");s(this,"playbackSource");s(this,"isSuspended",!1);s(this,"_webCodecsInUse");s(this,"_audioWebCodecsInUse");s(this,"_offscreenCanvasInUse");s(this,"decodedVideoSamplesInCurrentInterval",0);s(this,"currentVideoDecodeRate",Number.MAX_SAFE_INTEGER);s(this,"isAudioEmitRetryScheduled",!1);s(this,"videoKeyframeTimestamps",[]);s(this,"load",()=>{const A=this._audioWebCodecsInUse?20:Qm;this.timers.setInterval(this.emitDecodedFrames,A),this.timers.setInterval(this.emitDecodeRate,pQ),this.emitter.on("init segment",this.onInitSegment),this.emitter.on("coded sample",this.decode)});s(this,"unload",()=>{this.trackContexts.forEach(({decoderContext:A})=>A.unload()),this.timers.unload(),this.isAudioEmitRetryScheduled=!1,this.videoKeyframeTimestamps=[],this.emitter.off("init segment",this.onInitSegment),this.emitter.off("coded sample",this.decode)});s(this,"suspend",()=>{this.isSuspended=!0});s(this,"unsuspend",()=>{this.isSuspended=!1});s(this,"getBuffer",A=>{var e;return(e=this.trackContexts.get(A))==null?void 0:e.buffer});s(this,"getVideoKeyframeTimestamps",()=>this.videoKeyframeTimestamps);s(this,"videoDecodeRate",()=>this.currentVideoDecodeRate);s(this,"calculateVideoDecodeRate",()=>{var o;if(this._webCodecsInUse)return 2;const A=this.trackContexts.get("video");if(!A)return Number.MAX_SAFE_INTEGER;const e=(o=A.sampleDuration)!=null?o:40;if(!Number.isFinite(e)||e<=0)return 0;const t=1e3/e,n=this.decodedVideoSamplesInCurrentInterval*1e3/pQ/t;return!Number.isFinite(n)||n<0?0:n});s(this,"getStatistics",()=>{var o,a,B,C,Q;const A=this.trackContexts.get("video"),e=$t((o=A==null?void 0:A.decodeTime.items())!=null?o:[]),t=$t((a=A==null?void 0:A.transportTime.items())!=null?a:[]),g=$t((C=(B=this.trackContexts.get("audio"))==null?void 0:B.decodeTime.items())!=null?C:[]),n=this._offscreenCanvasInUse?(Q=A==null?void 0:A.getRenderStatistics)==null?void 0:Q.call(A):void 0;return V(f({videoDecodeRate:this.videoDecodeRate(),videoDecodeTime:e,audioDecodeTime:g,videoTransportTime:t,videoKeyframeIntervalMs:Wr(this.videoKeyframeTimestamps)},n?{renderedFrameCount:n.renderedFrameCount,rendererDroppedFrameCount:n.rendererDroppedFrameCount}:{}),{videoRenderer:this._offscreenCanvasInUse?"OffscreenCanvas":"Canvas",videoDecoder:this._webCodecsInUse?"WebCodecs":"WASM",audioRenderer:"AudioContext",audioDecoder:this._audioWebCodecsInUse?"WebCodecs":"WASM"})});s(this,"setSubtitleCues",(A,e,t,g,n)=>{var a;if(!this._offscreenCanvasInUse)return;const o=(a=this.trackContexts.get("video"))==null?void 0:a.decoderContext;o&&"setSubtitleCues"in o&&o.setSubtitleCues(A,e,t,g,n)});s(this,"onInitSegment",({initSegment:A})=>{var t;const e=(t=this.trackContexts.get(A.type))==null?void 0:t.decoderContext;if(!e)throw new x("No known decoder context",{code:"no_known_decoder_context",isFatal:!1});e.initSegment(A)});s(this,"decode",A=>{const e=this.trackContexts.get(A.type);if(!e)throw new x("No known decoder context",{code:"no_known_decoder_context",isFatal:!1});if(this.isSuspended)return;e.sampleDuration=A.duration/A.timescale*1e3;const t=A.compositionTimeOffset||0,{decoderContext:g,buffer:n}=e,o=(A.timestamp+t)/A.timescale*1e3,a=A.duration/A.timescale*1e3,B=n[n.length-1];if(!B||o-Cm>B.end?n.push({start:o,end:o+a}):o+a*5<B.end?(e.buffer=[{start:o,end:o+a}],A.type==="video"&&(this.videoKeyframeTimestamps=[])):B.end=o+a,A.type==="video"&&A.isSync){const C=this.videoKeyframeTimestamps[this.videoKeyframeTimestamps.length-1];C!==void 0&&o<C&&(this.videoKeyframeTimestamps=[]),this.videoKeyframeTimestamps.push(o),this.videoKeyframeTimestamps.length>20&&(this.videoKeyframeTimestamps=this.videoKeyframeTimestamps.slice(-20))}g.enqueue(A),this.emitDecodedFrames(),this._audioWebCodecsInUse&&A.type==="audio"&&this.scheduleAudioEmitRetry()});s(this,"scheduleAudioEmitRetry",()=>{this.isAudioEmitRetryScheduled||(this.isAudioEmitRetryScheduled=!0,this.timers.setTimeout(()=>{this.isAudioEmitRetryScheduled=!1,this.emitDecodedFrames()},0))});s(this,"emitDecodedFrames",()=>{let A;this.updateBufferState(),this.trackContexts.forEach((e,t)=>{var o,a,B,C,Q,h;let g;for(;(g=(a=(o=e.decoderContext).error)==null?void 0:a.call(o))!==void 0;)this.emitter.emit("error",Xa(!1,g));for(;(A=e.decoderContext.take())!==void 0;){const{statistics:d}=A;d&&(e.decodeTime.push(d.decodeTime),e.transportTime.push((d.transportTimeToWorker+d.transportTimeFromWorker)/d.samplesInBatch)),t==="video"&&this.decodedVideoSamplesInCurrentInterval++,this.emitter.emit("decoded frame",A)}let n=(C=(B=e.decoderContext).takeEstimatedStatistics)==null?void 0:C.call(B);for(;n!==void 0;)e.decodeTime.push(n.decodeTime),e.transportTime.push(n.transportTime),t==="video"&&this.decodedVideoSamplesInCurrentInterval++,n=(h=(Q=e.decoderContext).takeEstimatedStatistics)==null?void 0:h.call(Q)})});s(this,"emitDecodeRate",()=>{this.currentVideoDecodeRate=this.calculateVideoDecodeRate(),this.decodedVideoSamplesInCurrentInterval=0,this.emitter.emit("video decode rate",this.currentVideoDecodeRate)});s(this,"updateBufferState",()=>{let A;if(this.trackContexts.forEach(n=>{var o,a,B,C;if(!A)A=n.buffer;else{const Q=(a=(o=n.buffer[n.buffer.length-1])==null?void 0:o.end)!=null?a:0;((C=(B=A[A.length-1])==null?void 0:B.end)!=null?C:0)>Q&&(A=n.buffer)}}),!A)return;const e=this.playbackSource.currentTime;let t=!0;this.trackContexts.forEach(n=>{n.buffer.some(a=>a.start<=e&&e<a.end)||(t=!1)});const g=t?"playing":"buffering";this.emitter.emit("buffer state",{buffered:A,currentTime:this.playbackSource.currentTime,isPaused:this.playbackSource.isPaused,playbackState:g})});this.logger=e,this.emitter=A,this.trackContexts=t,this.playbackSource=g,this._webCodecsInUse=n,this._audioWebCodecsInUse=o,this._offscreenCanvasInUse=a}static create(A,e,t,g,n,o,a=!1,B="no-preference",C){return c(this,null,function*(){const Q=new Map,h=new Set;let d=!1,u=!1,m=!1;for(const p of g){if(h.has(p.type)){e.warn("Received duplicate track type for decoder initialization. Ignoring subsequent track.",{trackType:p.type,codec:p.codec,mimeType:p.mimeType});continue}switch(h.add(p.type),p.type){case"audio":{let y,k,N=!1;if(a){const{WebCodecsAudioDecoderContext:U}=yield Promise.resolve().then(()=>vw);if(N=U.isSupported(),N)try{y=yield U.create(e.createContext("WebCodecsAudio")),u=!0}catch(K){k=K instanceof Error?K:new Error("Failed to initialize WebCodecs audio decoder"),p.codec==="opus"&&e.warn("Failed to initialize WebCodecs audio decoder, falling back to WASM Opus decoder",{codec:p.codec,error:k})}}if(!y)if(p.codec==="opus"){const{OpusDecoderContext:U}=yield Promise.resolve().then(()=>qw);y=yield U.create(48e3,2)}else{const U=a?k?`WebCodecs audio decoder initialization failed: ${k.message}`:N?"WebCodecs audio decoder could not be initialized.":"WebCodecs AudioDecoder API is not supported in this environment.":"WebCodecs audio decoding is disabled.";throw Qh(p.codec,U,k)}Q.set(p.type,{buffer:[],decoderContext:y,decodeTime:new P(100),transportTime:new P(100),sampleDuration:40});break}case"video":{const{VideoDecoderWorkerContext:y}=yield Promise.resolve().then(()=>Tw),k=yield y.create(e.createContext("VideoDecoderWorker"),t,o,a,B,C,()=>n.currentTime);d=k.isWebCodecs,m=k.usingOffscreenCanvas,Q.set(p.type,{buffer:[],decoderContext:k,decodeTime:new P(100),transportTime:new P(100),sampleDuration:40,getRenderStatistics:k.getRenderStatistics});break}}}return new MB(A,e,Q,n,d,u,m)})}}const Ea=class Ea{constructor(A){s(this,"emitter");s(this,"isVisibleCount",0);s(this,"isHiddenCount",0);s(this,"isOnlineCount",0);s(this,"isOfflineCount",0);s(this,"isActive",document.visibilityState==="visible");s(this,"unload",()=>{document.removeEventListener("visibilitychange",this.onVisibilityChanged),window.removeEventListener("pagehide",this.onPageHide),window.removeEventListener("online",this.onOnline),window.removeEventListener("offline",this.onOffline)});s(this,"load",()=>{document.addEventListener("visibilitychange",this.onVisibilityChanged),window.addEventListener("pagehide",this.onPageHide),window.addEventListener("online",this.onOnline),window.addEventListener("offline",this.onOffline)});s(this,"unsuspend",()=>{});s(this,"getStatistics",()=>{var A,e,t,g,n;return{isVisible:this.isVisible,isOnline:this.isOnline,isVisibleCount:this.isVisibleCount,isHiddenCount:this.isHiddenCount,isOnlineCount:this.isOnlineCount,isOfflineCount:this.isOfflineCount,navigatorRtt:(A=navigator.connection)==null?void 0:A.rtt,navigatorEffectiveType:(e=navigator.connection)==null?void 0:e.effectiveType,navigatorConnectionType:(t=navigator.connection)==null?void 0:t.type,navigatorSaveData:(g=navigator.connection)==null?void 0:g.saveData,navigatorDownlink:(n=navigator.connection)==null?void 0:n.downlink}});s(this,"onOnline",()=>this.isOnlineCount++);s(this,"onOffline",()=>this.isOfflineCount++);s(this,"onPageHide",A=>this.emitter.emit("pagehide",A));s(this,"onVisibilityChanged",()=>{this.setIsActive(document.visibilityState==="visible")});s(this,"setIsActive",A=>{A!==this.isActive&&(this.emitter.emit("page active",A),A?this.isVisibleCount++:this.isHiddenCount++),this.isActive=A});this.emitter=A}get isOnline(){return navigator.onLine}get isVisible(){return document.visibilityState==="visible"}};s(Ea,"create",A=>new Ea(A));let vB=Ea;const Em=i=>(A,e,t)=>A.timestamp<=e||A.timestampAdded<=t-i,Vt=class Vt{constructor(A,e,t){s(this,"logger");s(this,"emitter");s(this,"waitingEvents",[]);s(this,"isTriggered",Em(Vt.EVENT_TIMEOUT));s(this,"timeSource");s(this,"timers",new JA);s(this,"load",()=>{this.timers.setInterval(this.onBufferedStateChanged,Vt.EVENT_CHECK_INTERVAL),this.emitter.on("add event",this.addEvent)});s(this,"unload",()=>{this.timers.unload(),this.emitter.off("add event",this.addEvent)});s(this,"addEvent",A=>{this.logger.debug("Adding event",{event:A}),!this.waitingEvents.some(e=>typeof e.id!="undefined"&&e.id===A.id)&&this.waitingEvents.push(V(f({},A),{timestampAdded:Date.now()}))});s(this,"extractEvent",(A,e)=>{e.type==="video"&&A.channelId!==e.channelId&&this.addEvent({type:"channel switch",channelId:e.channelId,timestamp:e.timestamp/e.timescale*1e3}),e.type==="audio"&&A.type==="audio"&&e.language!==void 0&&e.language!==A.language&&this.addEvent({type:"language switch",language:e.language,timestamp:e.timestamp/e.timescale*1e3})});s(this,"onBufferedStateChanged",()=>{var n;const A=Date.now(),e=(n=this.timeSource.drift)!=null?n:0,t=this.timeSource.serverCurrentTime-e;if(this.waitingEvents.length===0)return;const g=this.waitingEvents.filter(o=>this.isTriggered(o,t,A));this.waitingEvents=this.waitingEvents.filter(o=>!this.isTriggered(o,t,A)),g.forEach(o=>{this.logger.debug("Emitting event",{event:o}),this.emitter.emit("event",o)})});this.logger=e,this.emitter=A,this.timeSource=t}};s(Vt,"EVENT_TIMEOUT",5e3),s(Vt,"EVENT_CHECK_INTERVAL",20),s(Vt,"create",(A,e,t)=>new Vt(A,e,t));let HB=Vt;const Ne=class Ne{constructor(A){s(this,"emitter");s(this,"timers",JA.create());s(this,"bytesReceived",new Map);s(this,"timeoutInterval");s(this,"lastBytesUpdated",Date.now());s(this,"load",()=>{this.emitter.on("connection state",this.onConnectionState),this.timers.setInterval(()=>this.bytesReceived.forEach(A=>A.tick()),100)});s(this,"unload",()=>{this.emitter.off("connection state",this.onConnectionState),this.timers.unload()});s(this,"averageBitRate",A=>{var e,t;return((t=(e=this.bytesReceived.get(A))==null?void 0:e.average)!=null?t:0)*8});s(this,"totalBytesReceived",()=>{let A=0;return this.bytesReceived.forEach(e=>{A+=e.total}),A});s(this,"add",(A,e)=>{let t=this.bytesReceived.get(A);t||(t=new Tc(20),this.bytesReceived.set(A,t)),e>0&&(this.lastBytesUpdated=Date.now(),this.timeoutInterval||(this.timeoutInterval=this.timers.setInterval(this.checkTimeout,Ne.UPDATE_RECEIVED_BYTES_INTERVAL))),t.add(e)});s(this,"getStatistics",()=>({bytesReceived:this.totalBytesReceived(),videoBitRate:this.averageBitRate("video"),audioBitRate:this.averageBitRate("audio")}));s(this,"onConnectionState",A=>{this.clearTimeoutInterval(),A==="connected"&&(this.lastBytesUpdated=Date.now(),this.timeoutInterval=this.timers.setInterval(this.checkTimeout,Ne.UPDATE_RECEIVED_BYTES_INTERVAL))});s(this,"checkTimeout",()=>{const A=Date.now()-this.lastBytesUpdated;if(this.totalBytesReceived()===0&&A>Ne.NO_DATA_ERROR_TIMEOUT){this.emitter.emit("error",uh()),this.emitter.emit("reconnect","no incoming data"),this.clearTimeoutInterval();return}A>Ne.NO_DATA_TIMEOUT&&this.totalBytesReceived()>0&&(this.emitter.emit("no data timeout",this.totalBytesReceived()),this.clearTimeoutInterval())});s(this,"clearTimeoutInterval",()=>{this.timeoutInterval&&(this.timers.clearInterval(this.timeoutInterval),this.timeoutInterval=void 0)});this.emitter=A}};s(Ne,"NO_DATA_ERROR_TIMEOUT",20*1e3),s(Ne,"NO_DATA_TIMEOUT",5*1e3),s(Ne,"UPDATE_RECEIVED_BYTES_INTERVAL",1e3),s(Ne,"create",A=>new Ne(A));let qB=Ne;const yQ=1e3,FQ=50;class KB{constructor(A){s(this,"logger");s(this,"trackingState",new Map);s(this,"runningJitter",new Map);s(this,"recentJitterSamples",new Map);s(this,"load",()=>{this.logger.debug("JitterModule loaded")});s(this,"unload",()=>{this.trackingState.clear(),this.runningJitter.clear(),this.recentJitterSamples.clear(),this.logger.debug("JitterModule unloaded")});this.logger=A}static create(A){return new KB(A)}getTrackingKey(A,e){return`${A}-${e}`}recordSample(A){var d,u,m,p;const e=this.getTrackingKey(A.type,A.renditionId),t=(m=(u=(d=globalThis.performance)==null?void 0:d.now)==null?void 0:u.call(d))!=null?m:Date.now(),g=A.timestamp/A.timescale*1e3,n=this.trackingState.get(e);if(!n){this.trackingState.set(e,{lastArrivalTime:t,lastTimestampMs:g,jitterSamples:new P(yQ),interArrivalTimes:new P(yQ)}),this.runningJitter.set(e,0),this.recentJitterSamples.set(e,new P(FQ));return}const o=g-n.lastTimestampMs;if(o<=0){n.lastArrivalTime=t,n.lastTimestampMs=g;return}const a=t-n.lastArrivalTime,B=Math.abs(a-o);n.jitterSamples.push(B),n.interArrivalTimes.push(a);const C=(p=this.runningJitter.get(e))!=null?p:0,Q=C+(B-C)/16;this.runningJitter.set(e,Q);let h=this.recentJitterSamples.get(e);h||(h=new P(FQ),this.recentJitterSamples.set(e,h)),h.push(B),n.lastArrivalTime=t,n.lastTimestampMs=g}getJitterForType(A){var e,t,g;for(const[n,o]of this.trackingState)if(n.startsWith(A)){if(o.jitterSamples.items().length<1)return;const B=(e=this.runningJitter.get(n))!=null?e:0,C=(g=(t=this.recentJitterSamples.get(n))==null?void 0:t.items())!=null?g:[],{min:Q,max:h,average:d}=$t(C);return{min:Math.round(Q),max:Math.round(h),last:Math.round(d),average:Math.round(B)}}}getRunningJitter(A){for(const[e,t]of this.runningJitter)if(e.startsWith(A))return t}reset(A,e){if(A!==void 0&&e!==void 0){const t=this.getTrackingKey(A,e);this.trackingState.delete(t),this.runningJitter.delete(t),this.recentJitterSamples.delete(t)}else if(A!==void 0)for(const t of this.trackingState.keys())t.startsWith(A)&&(this.trackingState.delete(t),this.runningJitter.delete(t),this.recentJitterSamples.delete(t));else this.trackingState.clear(),this.runningJitter.clear(),this.recentJitterSamples.clear()}getStatistics(){return{audioJitter:this.getJitterForType("audio"),videoJitter:this.getJitterForType("video")}}}const cm=()=>window.AudioContext||window.webkitAudioContext,ca=class ca extends ie{constructor(){super();s(this,"context",new(cm()));s(this,"timers",JA.create());s(this,"previousCurrentTime",0);s(this,"_isStuck",!1);s(this,"mediaStreamDestination");s(this,"unload",()=>(this.timers.unload(),this.context.removeEventListener("statechange",this.onStateChange),this.context.state!=="closed"?this.context.close():Promise.resolve()));s(this,"createGain",()=>this.context.createGain());s(this,"createBuffer",(e,t,g)=>this.context.createBuffer(e,t,g));s(this,"createBufferSource",()=>this.context.createBufferSource());s(this,"getMediaStreamDestination",()=>(this.mediaStreamDestination||(this.mediaStreamDestination=this.context.createMediaStreamDestination()),this.mediaStreamDestination));s(this,"getDefaultDestination",()=>this.context.destination);s(this,"createSplitter",()=>this.context.createChannelSplitter(2));s(this,"resume",()=>c(this,null,function*(){try{return yield Promise.race([this.context.resume(),xa(1e3,hh())])}catch(e){throw this.suspend().catch(G),e}}));s(this,"suspend",()=>c(this,null,function*(){var e;yield(e=this.context.suspend())!=null?e:Promise.resolve()}));s(this,"onStateChange",()=>this.emit("state",this.state));this.context.addEventListener("statechange",this.onStateChange),this.timers.setInterval(()=>{this._isStuck=this.isRunning&&this.context.currentTime===this.previousCurrentTime,this._isStuck&&this.emit("stuck"),this.previousCurrentTime=this.context.currentTime},ca.CHECK_INTERVAL)}get isStuck(){return this._isStuck}get isRunning(){return this.state==="running"}get currentTime(){return this.context.currentTime}get sampleRate(){return this.context.sampleRate}get state(){return this.context.state}};s(ca,"CHECK_INTERVAL",1e3);let TB=ca;const hm=400,ha=class ha extends ie{constructor(e,t,{muted:g,reInitWhenStuck:n,bufferTime:o}){super();s(this,"logger");s(this,"audio");s(this,"gainNode");s(this,"splitter");s(this,"_volume",1);s(this,"_userProvidedMuted",!1);s(this,"_muted",!1);s(this,"startTime",0);s(this,"samples",new Float32Array(0));s(this,"preInitSampleQueue",new P(500));s(this,"unplayedBufferSources",new P(100));s(this,"sampleRate",48e3);s(this,"channels",2);s(this,"index",0);s(this,"clockSource");s(this,"clockDelta");s(this,"startTimeIsInvalidated",!0);s(this,"lastSampleTimestamp",0);s(this,"reInitWhenStuck");s(this,"ignoreSuspendCalls",!1);s(this,"audioBufferMultiplier");s(this,"isActivated",!1);s(this,"unload",()=>c(this,null,function*(){var e,t;(e=this.gainNode)==null||e.disconnect(),yield(t=this.audio)==null?void 0:t.unload(),this.reset(),this.audio=void 0,this.gainNode=void 0}));s(this,"suspend",()=>{this.setGain(0)});s(this,"unsuspend",()=>{var e;this.setGain(this._volume),this.ignoreSuspendCalls=!!this.audio,(e=this.audio)==null||e.suspend().then(()=>c(this,null,function*(){yield this.resume(),this.ignoreSuspendCalls=!1})).catch(()=>{this.ignoreSuspendCalls=!1,this.emit("state change","suspended")})});s(this,"flush",(e=this.samples.length)=>{if(!this.audio||!this.gainNode)throw new x("AudioContext must be initialized to flush",{isFatal:!1,code:"audiocontext_must_be_initialized"});const t=Math.floor(e/this.channels);if(t<=0)return;const g=this.audio.createBufferSource(),n=this.audio.createBuffer(this.channels,t,this.sampleRate);let o=0;for(let B=0;B<this.channels;B++){o=B;const C=n.getChannelData(B);for(let Q=0;Q<t;Q++)C[Q]=this.samples[o],o+=this.channels}const a=Math.max(this.startTime,0);g.buffer=n,g.connect(this.gainNode),this.splitter&&g.connect(this.splitter),g.start(a),this.unplayedBufferSources.push([a,g]),this.startTime+=n.duration});s(this,"onDecodedFrame",e=>{if(!(this.gainNode&&this.audio&&this.audio.isRunning)){if(e.type==="audio"){this.preInitSampleQueue.push(V(f({},e),{data:e.data.slice(0,e.data.length)}));const t=this.clockSource.currentTime;this.preInitSampleQueue.filterPop(({timestamp:g,timescale:n})=>g/n*1e3>t)}return}for(;!this.preInitSampleQueue.isEmpty();){const t=this.preInitSampleQueue.items();this.preInitSampleQueue.clear(),t.forEach(this.onDecodedFrame)}if(this.unplayedBufferSources.filterPop(([t,g])=>{var n,o;return((o=(n=this.audio)==null?void 0:n.currentTime)!=null?o:0)<t}),e.type==="audio"){const t=e.timestamp/e.timescale*1e3;if(t<this.lastSampleTimestamp&&(this.logger.info("Unordered timestamp - invalidating start time"),this.startTimeIsInvalidated=!0),this.lastSampleTimestamp=t,this.startTimeIsInvalidated){const n=this.audio.currentTime*1e3,o=this.clockSource.currentTime,a=(n+t-o)/1e3;this.clockDelta=o-n,this.startTime=a,this.startTimeIsInvalidated=!1,this.unplayedBufferSources.items().forEach(([B,C])=>{a<=B&&C.stop()})}const g=e.data.length*this.audioBufferMultiplier;this.samples.length!==g&&(this.index>0&&this.flush(this.index),this.samples=new Float32Array(g),this.index=0),this.channels=e.channels,this.sampleRate=e.sampleRate,this.samples.set(e.data,this.index),this.index+=e.data.length,this.samples.length<=this.index&&(this.flush(this.samples.length),this.index=0)}});s(this,"play",()=>c(this,null,function*(){this.audio=this.getAudioContext(),yield this.resume()}));s(this,"pause",()=>{});s(this,"flushBuffer",()=>{var e,t;this.unplayedBufferSources.items().forEach(([g,n])=>{try{n.stop()}catch(o){}}),this.unplayedBufferSources.clear(),this.preInitSampleQueue.clear(),this.samples=new Float32Array(0),this.index=0,this.lastSampleTimestamp=0,this.startTime=(t=(e=this.audio)==null?void 0:e.currentTime)!=null?t:0,this.startTimeIsInvalidated=!0});s(this,"resume",()=>c(this,null,function*(){var e;if(!this._userProvidedMuted)try{yield(e=this.audio)==null?void 0:e.resume(),this._muted=this._userProvidedMuted,this.startTimeIsInvalidated=!0}catch(t){throw this._muted=!0,t}}));s(this,"getAudioContext",()=>this.audio?this.audio:this.setupContext());s(this,"setupContext",()=>{var e,t,g;return(e=this.audio)==null||e.unload(),this.audio=new TB,this.audio.on("state",n=>{this.logger.info("AudioContext state change",{state:n}),n==="running"&&(this._muted=this._userProvidedMuted,this.setGain(this._volume)),!this.ignoreSuspendCalls&&this.emit("state change",n)}),this.audio.on("stuck",()=>{this.reInitWhenStuck&&(this.logger.info("Re-init audio context"),this.setupContext(),this.resume().catch(G),this.emit("stuck"))}),(t=this.gainNode)==null||t.disconnect(),this.gainNode=this.audio.createGain(),this.setGain(this._volume),this.startTime=this.audio.currentTime,(g=this.splitter)==null||g.disconnect(),this.splitter=this.audio.createSplitter(),this.audio});s(this,"setGain",e=>{this.gainNode&&(this.gainNode.gain.value=this._muted?0:e)});this._muted=g,this._userProvidedMuted=g,this.logger=e,this.clockSource=t,this.reInitWhenStuck=n,this.audioBufferMultiplier=o!==void 0&&o<hm?2:5}get isContextRunning(){var e;return((e=this.audio)==null?void 0:e.state)==="running"}get volume(){return this._volume}set volume(e){this._volume=e,this.muted||this.setGain(e)}get seekTime(){return 0}get totalSeekTime(){return 0}get isSeeking(){return!1}get muted(){var e;return this._muted||!((e=this.audio)!=null&&e.isRunning)}set muted(e){this._userProvidedMuted=e,this._muted=e,this.setGain(this._volume)}get isPaused(){return!1}get currentTime(){var e;return!this.audio||!this.audio.isRunning||this.audio.isStuck?this.clockSource.currentTime:this.audio.currentTime*1e3+((e=this.clockDelta)!=null?e:0)}set currentTime(e){this.logger.debug("setting current time to",{currentTime:e}),this.startTimeIsInvalidated=!0}get audioNode(){return this.splitter}useMediaStreamDestination(){var g;const e=this.getAudioContext(),t=e.getMediaStreamDestination();return(g=this.gainNode)==null||g.connect(t),e.isRunning||e.resume().catch(()=>{}),t}useDefaultDestination(){var g;const t=this.getAudioContext().getDefaultDestination();return(g=this.gainNode)==null||g.connect(t),t}};s(ha,"create",(e,t,g)=>new ha(e,t,g));let fo=ha;const da=class da{constructor(A,e,t,g,n,o){s(this,"staleFrameThresholdMs",400);s(this,"pool");s(this,"logger");s(this,"videoRenderer",new za);s(this,"videoFrameCanvas2DRenderer",null);s(this,"renderQueue",[]);s(this,"clockSource");s(this,"isFirstFrame",!0);s(this,"usingWebCodecs",!1);s(this,"onCanvasChangeCallback");s(this,"onRendererErrorCallback");s(this,"animationFrameRequest");s(this,"firstFrameAnimationFrameRequest");s(this,"pendingFirstFrameSample");s(this,"renderedFrameCount",0);s(this,"rendererDroppedFrameCount",0);s(this,"renderTargetSize");s(this,"load",()=>{this.videoRenderer.load(),this.subscribeToContextLost(this.videoRenderer)});s(this,"unload",()=>(this.stopRender(),this.clearRenderQueue(),this.unsubscribeFromContextLost(this.videoRenderer),this.videoRenderer.unload(),this.videoFrameCanvas2DRenderer&&(this.unsubscribeFromContextLost(this.videoFrameCanvas2DRenderer),this.videoFrameCanvas2DRenderer.unload()),Promise.resolve()));s(this,"suspend",()=>{this.clearRenderQueue(),this.stopRender()});s(this,"unsuspend",()=>{this.animationFrameRequest===void 0&&(this.animationFrameRequest=requestAnimationFrame(this.render))});s(this,"element",()=>this.usingWebCodecs&&this.videoFrameCanvas2DRenderer?this.videoFrameCanvas2DRenderer.canvas:this.videoRenderer.canvas);s(this,"getStatistics",()=>({renderedFrameCount:this.renderedFrameCount,rendererDroppedFrameCount:this.rendererDroppedFrameCount}));s(this,"resetSize",()=>{this.videoRenderer.resetSize()});s(this,"setActiveCues",(A,e)=>{this.usingWebCodecs&&this.videoFrameCanvas2DRenderer?this.videoFrameCanvas2DRenderer.setActiveCues(A,e):this.usingWebCodecs||this.videoRenderer.getTextRenderer().setActiveCues(A,e)});s(this,"onDecodedFrame",A=>{if(A.type==="video")if(this.isFirstFrame)this.isFirstFrame=!1,this.pendingFirstFrameSample=A,this.firstFrameAnimationFrameRequest=requestAnimationFrame(()=>{this.firstFrameAnimationFrameRequest=void 0;const e=this.pendingFirstFrameSample;this.pendingFirstFrameSample=void 0,e&&this.renderSample(e)});else{const e=(this.clockSource.currentTime-this.staleFrameThresholdMs)/1e3;this.renderQueue=this.renderQueue.filter(t=>{const g=this.samplePresentationTime(t),n=this.samplePresentationTime(A),o=g>e&&g<=n;return o||this.releaseSampleResources(t),o}),this.renderQueue.push(A)}});s(this,"render",()=>{const A=this.clockSource.currentTime;let e=this.renderQueue[0],t,g=0;for(;e&&this.samplePresentationTime(e)*1e3<=A;)e=this.renderQueue.shift(),e&&(g++,t&&this.releaseSampleResources(t),t=e),e=this.renderQueue[0];t&&this.renderSample(t),this.rendererDroppedFrameCount+=Math.max(g-1,0),this.animationFrameRequest=requestAnimationFrame(this.render)});s(this,"renderSample",A=>{var e,t;if(this.renderedFrameCount++,A.videoFrame){let g=this.videoFrameCanvas2DRenderer;if(!this.usingWebCodecs){this.logger.info("Switching to Canvas2D renderer for WebCodecs"),g||(g=new _c,g.load(),this.subscribeToContextLost(g),this.videoFrameCanvas2DRenderer=g);const n=this.videoRenderer.canvas,o=g.canvas;if(n.parentElement)try{n.parentElement.replaceChild(o,n)}catch(a){}this.usingWebCodecs=!0,(e=this.onCanvasChangeCallback)==null||e.call(this)}g?g.render(A,this.getSubtitlePadding()):this.videoRenderer.render(A,this.renderTargetSize),A.videoFrame.close()}else{if(this.usingWebCodecs){this.logger.info("Switching back to WebGL renderer for WASM");const g=this.videoFrameCanvas2DRenderer;if(!g){this.usingWebCodecs=!1,this.videoRenderer.render(A,this.renderTargetSize),A.buffer.byteLength>0&&this.pool.reclaim(A.buffer);return}const n=g.canvas,o=this.videoRenderer.canvas;if(n.parentElement)try{n.parentElement.replaceChild(o,n)}catch(a){}this.usingWebCodecs=!1,(t=this.onCanvasChangeCallback)==null||t.call(this)}this.videoRenderer.render(A,this.renderTargetSize)}A.buffer.byteLength>0&&this.pool.reclaim(A.buffer)});s(this,"stopRender",()=>{this.animationFrameRequest!==void 0&&(cancelAnimationFrame(this.animationFrameRequest),this.animationFrameRequest=void 0),this.firstFrameAnimationFrameRequest!==void 0&&(cancelAnimationFrame(this.firstFrameAnimationFrameRequest),this.firstFrameAnimationFrameRequest=void 0),this.pendingFirstFrameSample&&(this.releaseSampleResources(this.pendingFirstFrameSample),this.pendingFirstFrameSample=void 0)});s(this,"clearRenderQueue",()=>{this.renderQueue.forEach(A=>{this.releaseSampleResources(A)}),this.renderQueue=[]});s(this,"onRendererContextLost",A=>{var e;(e=this.onRendererErrorCallback)==null||e.call(this,A)});s(this,"subscribeToContextLost",A=>{const e=A;typeof e.on=="function"&&e.on("context lost",this.onRendererContextLost)});s(this,"unsubscribeFromContextLost",A=>{const e=A;typeof e.off=="function"&&e.off("context lost",this.onRendererContextLost)});s(this,"getSubtitlePadding",()=>{const A=this.renderTargetSize.style.getPropertyValue("--vindral-subtitle-offset")||this.renderTargetSize.style.getPropertyValue("--vindral-control-bar-offset"),e=parseInt(A||"0",10);return Number.isNaN(e)?0:-e});s(this,"samplePresentationTime",A=>(A.timestamp+(A.compositionTimeOffset||0))/A.timescale);s(this,"releaseSampleResources",A=>{var e;try{(e=A.videoFrame)==null||e.close()}catch(t){}A.buffer.byteLength>0&&this.pool.reclaim(A.buffer)});this.logger=A,this.clockSource=e,this.pool=t,this.renderTargetSize=g||this.videoRenderer.canvas,this.onCanvasChangeCallback=n,this.onRendererErrorCallback=o}};s(da,"create",(A,e,t,g,n,o)=>new da(A,e,t,g,n,o));let Do=da;class kQ{constructor(){r(this,Zt,[]);E(this,Zt,[])}addTextTrack(A,e,t){const g=[],n={kind:A,label:e,language:t,mode:"disabled",cues:g,addCue:o=>{g.push(o)},removeCue:o=>{const a=g.findIndex(B=>B===o);a!==-1&&g.splice(a,1)}};return I(this,Zt).push(n),n}set language(A){I(this,Zt).forEach(e=>{e.language===A?e.mode="showing":e.mode="hidden"})}get language(){var A;return(A=I(this,Zt).find(e=>e.mode==="showing"))==null?void 0:A.language}getActiveCues(A){const e=I(this,Zt).find(t=>t.mode==="showing");return e?e.cues.filter(({startTime:t,endTime:g})=>A>=t&&A<=g):[]}}Zt=new WeakMap;const Ii=(i,A)=>{let e;for(e=A;i>1;i--)e+=A;return e};class dm{constructor(){s(this,"audio");s(this,"unmute",()=>this.audio.play().catch(G));const A=document.createElement("div");A.innerHTML="<audio x-webkit-airplay='deny'></audio>";const e=A.children.item(0);if(e instanceof HTMLAudioElement)this.audio=e,this.audio.controls=!1,this.audio.disableRemotePlayback=!0,this.audio.preload="auto",this.audio.src="data:audio/mpeg;base64,//uQx"+Ii(23,"A")+"WGluZwAAAA8AAAACAAACcQCA"+Ii(16,"gICA")+Ii(66,"/")+"8AAABhTEFNRTMuMTAwA8MAAAAAAAAAABQgJAUHQQAB9AAAAnGMHkkI"+Ii(320,"A")+"//sQxAADgnABGiAAQBCqgCRMAAgEAH"+Ii(15,"/")+"7+n/9FTuQsQH//////2NG0jWUGlio5gLQTOtIoeR2WX////X4s9Atb/JRVCbBUpeRUq"+Ii(18,"/")+"9RUi0f2jn/+xDECgPCjAEQAABN4AAANIAAAAQVTEFNRTMuMTAw"+Ii(97,"V")+"Q==",this.audio.loop=!1,this.audio.load();else throw new Error("Failed to create audio tag")}}const la=class la{constructor(A,e,t,g,n,o,a,B){s(this,"logger");s(this,"emitter");s(this,"audioPlayer");s(this,"videoPlayer");s(this,"pool");s(this,"unmuter",new dm);s(this,"_isPaused",!1);s(this,"isDisconnected",!1);s(this,"timers",new JA);s(this,"isVideoRenderingEnabled",!0);s(this,"isLoaded",!1);s(this,"isSuspended",!0);s(this,"isVideoPlayerLoaded",!1);s(this,"textTracks",new kQ);s(this,"playbackRate");s(this,"reset",()=>{});s(this,"load",()=>{this.audioPlayer.useDefaultDestination(),this.emitter.on("decoded frame",this.onDecodedFrame),this.emitter.on("flush buffers",this.flushBuffers),this.isLoaded=!0,this.isVideoRenderingEnabled&&(this.videoPlayer.load(),this.isVideoPlayerLoaded=!0,this.startTextTrackInterval())});s(this,"unload",()=>{this.emitter.off("decoded frame",this.onDecodedFrame),this.emitter.off("flush buffers",this.flushBuffers),this.audioPlayer.unload(),this.isVideoPlayerLoaded&&(this.videoPlayer.unload(),this.isVideoPlayerLoaded=!1),this.timers.unload(),this.isLoaded=!1});s(this,"suspend",()=>{this.isSuspended=!0,this.isVideoRenderingEnabled&&this.videoPlayer.suspend(),this.audioPlayer.suspend()});s(this,"unsuspend",()=>{this.isSuspended=!1,this.isVideoRenderingEnabled&&this.videoPlayer.unsuspend(),this.audioPlayer.unsuspend()});s(this,"setVideoRenderingEnabled",A=>{if(A!==this.isVideoRenderingEnabled&&(this.isVideoRenderingEnabled=A,!!this.isLoaded)){if(!A){this.timers.unload(),this.videoPlayer.suspend();return}this.isVideoPlayerLoaded||(this.videoPlayer.load(),this.isVideoPlayerLoaded=!0),this.startTextTrackInterval(),this.isSuspended||this.videoPlayer.unsuspend()}});s(this,"element",()=>this.videoPlayer.element());s(this,"getStatistics",()=>this.videoPlayer.getStatistics());s(this,"startTextTrackInterval",()=>{this.timers.setInterval(()=>{if(!this.textTracks.language)return;const A=this.textTracks.getActiveCues(this.currentTime/1e3);this.videoPlayer.setActiveCues(A,{width:this.videoPlayer.element().clientWidth,height:this.videoPlayer.element().clientHeight})},100)});s(this,"flushBuffers",()=>{this.audioPlayer.flushBuffer()});s(this,"activateAudioPlayer",()=>(this.isDisconnected&&(this.isDisconnected=!1,this.audioPlayer.useDefaultDestination()),this._isPaused=!1,this.unmuter.unmute(),this.audioPlayer.play()));s(this,"onDecodedFrame",A=>{try{this.audioPlayer.onDecodedFrame(A)}catch(e){e instanceof Error&&this.emitter.emit("error",hC(!1,e))}this.isVideoRenderingEnabled&&this.videoPlayer.onDecodedFrame(A)});this.logger=e,this.emitter=A,this.pool=t,this.audioPlayer=fo.create(this.logger.createContext("AudioPlayerModule"),g,{muted:n,reInitWhenStuck:!0,bufferTime:B}),o!==void 0&&(this.audioPlayer.volume=o),this.audioPlayer.on("stuck",()=>{this.isDisconnected=!0}),this.audioPlayer.on("state change",()=>{this.emitter.emit("volume state",{volume:this.volume,isMuted:this.muted})}),this.videoPlayer=Do.create(this.logger.createContext("VideoPlayerModule"),this.audioPlayer,this.pool,void 0,a)}get volume(){return this.audioPlayer.volume}set volume(A){this.audioPlayer.volume=A}get muted(){return this.audioPlayer.muted}set muted(A){const e=this.muted;this.audioPlayer.muted=A,!A&&e&&this.activateAudioPlayer().catch(G)}get currentTime(){return this.audioPlayer.currentTime}set currentTime(A){this.audioPlayer.currentTime=A}get isActivated(){return this.audioPlayer.isActivated}set isActivated(A){this.audioPlayer.isActivated=A}get seekTime(){return this.audioPlayer.seekTime}get totalSeekTime(){return this.audioPlayer.totalSeekTime}get isPaused(){return this._isPaused}get isSeeking(){return this.audioPlayer.isSeeking}get audioNode(){return this.audioPlayer.audioNode}play(){this.activateAudioPlayer().then(()=>{this.emitter.emit("media element state","playing")}).catch(()=>{this.emitter.emit("needs user input",{forAudio:!0,forVideo:!1})})}pause(){this._isPaused=!0,this.audioPlayer.pause(),this.emitter.emit("media element state","paused")}};s(la,"create",(A,e,t,g,n,o,a,B)=>new la(A,e,t,g,n,o,a,B));let So=la;const ua=class ua{constructor(A,e,t,g,{muted:n,volume:o,type:a,poster:B,offscreenCanvas:C,bufferTime:Q}){s(this,"logger");s(this,"emitter");s(this,"mediaElement");s(this,"audioPlayer");s(this,"videoPlayer");s(this,"pool");s(this,"isDisconnected",!0);s(this,"_userProvidedMuted",!1);s(this,"timers",new JA);s(this,"offscreenCanvas");s(this,"nativeTextTrack");s(this,"nativeTrackCues",[]);s(this,"volumeState");s(this,"textTracks",new kQ);s(this,"reset",()=>{});s(this,"load",()=>{this.mediaElement.load(),this.emitter.on("decoded frame",this.onDecodedFrame),this.emitter.on("flush buffers",this.flushBuffers),this.emitter.on("ios-hack: reset size",this.resetCanvasSize),this.emitter.on("enter picture in picture",this.onEnterIOSHack),this.emitter.on("exit picture in picture",this.onExitIOSHack),this.element().element.addEventListener("webkitendfullscreen",this.onExitIOSHack),this.element().element.addEventListener("webkitbeginfullscreen",this.onEnterIOSHack),this.videoPlayer.load(),this.nativeTextTrack=this.mediaElement.element.addTextTrack("subtitles","",""),this.nativeTextTrack.mode="showing",this.timers.setInterval(()=>{if(!this.textTracks.language){this.clearNativeTrackCues();return}const A=this.textTracks.getActiveCues(this.currentTime/1e3);this.updateNativeTrackCues(A)},100)});s(this,"unload",()=>{this.emitter.off("decoded frame",this.onDecodedFrame),this.emitter.off("flush buffers",this.flushBuffers),this.emitter.off("ios-hack: reset size",this.resetCanvasSize),this.emitter.off("enter picture in picture",this.onEnterIOSHack),this.emitter.off("exit picture in picture",this.onExitIOSHack),this.element().element.removeEventListener("webkitendfullscreen",this.onExitIOSHack),this.element().element.removeEventListener("webkitbeginfullscreen",this.onEnterIOSHack),this.clearNativeTrackCues(),this.nativeTextTrack=void 0,this.mediaElement.unload(),this.timers.unload(),this.audioPlayer.unload(),this.videoPlayer.unload()});s(this,"suspend",()=>{this.videoPlayer.suspend(),this.audioPlayer.suspend()});s(this,"unsuspend",()=>{this.videoPlayer.unsuspend(),this.audioPlayer.unsuspend()});s(this,"element",()=>this.mediaElement);s(this,"getStatistics",()=>this.videoPlayer.getStatistics());s(this,"activateAudioPlayer",()=>(this.isDisconnected&&this.connectStreams(),this.audioPlayer.play()));s(this,"flushBuffers",()=>{this.audioPlayer.flushBuffer()});s(this,"resetCanvasSize",()=>{this.videoPlayer.resetSize()});s(this,"onEnterIOSHack",()=>{this.mediaElement._iosHackEnterPiPMode()});s(this,"onExitIOSHack",()=>{this.mediaElement._iosHackExitPiPMode()});s(this,"onDecodedFrame",A=>{try{this.audioPlayer.onDecodedFrame(A)}catch(e){e instanceof Error&&this.emitter.emit("error",hC(!1,e))}this.offscreenCanvas||this.videoPlayer.onDecodedFrame(A)});s(this,"onVideoPlayerError",A=>{if(A instanceof x){this.emitter.emit("error",A);return}this.emitter.emit("error",Xa(!1,A))});s(this,"connectStreams",()=>{const A=this.offscreenCanvas||this.videoPlayer.element();this.logger.info(`Connecting streams using ${this.offscreenCanvas?"OffscreenCanvas":"VideoPlayer"} canvas (${A.width}x${A.height})`);const e=A.captureStream(),t=this.audioPlayer.useMediaStreamDestination().stream,g=[...e.getTracks(),...t.getTracks()];this.logger.info(`Video tracks: ${e.getTracks().length}, Audio tracks: ${t.getTracks().length}`);const n=this.mediaElement.element.srcObject;n instanceof MediaStream&&n.getVideoTracks().forEach(o=>o.stop()),this.mediaElement.element.srcObject=new MediaStream(g),this.isDisconnected=!1});s(this,"setOffscreenCanvas",A=>{this.offscreenCanvas!==A&&(this.offscreenCanvas=A,this.reconnectCanvasStream())});s(this,"reconnectCanvasStream",()=>{if(!this.isDisconnected){const A=!this.mediaElement.element.paused;this.logger.info("Reconnecting canvas stream after renderer change",{wasPlaying:A}),this.connectStreams(),A&&this.mediaElement.tryPlay()}});s(this,"clearNativeTrackCues",()=>{if(this.nativeTextTrack){for(const A of this.nativeTrackCues)try{this.nativeTextTrack.removeCue(A)}catch(e){}this.nativeTrackCues=[]}});s(this,"updateNativeTrackCues",A=>{const e=this.nativeTextTrack;if(!e)return;const t=A.map(n=>n.text),g=this.nativeTrackCues.map(n=>n.text);if(!(t.length===g.length&&t.every((n,o)=>n===g[o]))){this.clearNativeTrackCues();for(const n of A){const o=new VTTCue(0,999999999,n.text);e.addCue(o),this.nativeTrackCues.push(o)}}});s(this,"updateVolumeState",()=>{const A={isMuted:this.muted,volume:this.volume};gs(A,this.volumeState)||(this.volumeState=A,this.emitter.emit("volume state",this.volumeState))});this.logger=e,this.emitter=A,this.pool=t,this._userProvidedMuted=n,this.offscreenCanvas=C,this.mediaElement=new BB({poster:B,type:a,muted:n,volume:o,autoplay:!1,logger:this.logger.createContext("MediaElement")}),this.mediaElement.on("volume state",h=>{this.updateVolumeState(),!h.isMuted&&!this.audioPlayer.isContextRunning&&this.activateAudioPlayer().catch(G),h.isMuted||(this._userProvidedMuted=!1)}),this.mediaElement.on("media element state",h=>{h==="paused"&&this.audioPlayer.flushBuffer(),this.emitter.emit("media element state",h)}),this.audioPlayer=fo.create(this.logger.createContext("AudioPlayerModule"),g,{muted:!1,reInitWhenStuck:!1,bufferTime:Q}),this.audioPlayer.on("stuck",()=>{this.isDisconnected=!0}),this.audioPlayer.on("state change",h=>{h==="suspended"||h==="interrupted"?this.mediaElement.muted=!0:h==="running"&&(this.mediaElement.muted=this._userProvidedMuted||document.visibilityState==="hidden"),this.updateVolumeState()}),this.videoPlayer=Do.create(this.logger.createContext("VideoPlayerModule"),this.audioPlayer,this.pool,this.mediaElement.element,()=>this.reconnectCanvasStream(),this.onVideoPlayerError),this.volumeState={volume:this.volume,isMuted:this.muted}}get volume(){return this.mediaElement.volume}set volume(A){this.mediaElement.volume=A}get muted(){return this.mediaElement.muted||this.audioPlayer.muted}set muted(A){const e=this.muted;this._userProvidedMuted=A,this.mediaElement.muted=A,!A&&e&&this.activateAudioPlayer().catch(G)}get currentTime(){return this.audioPlayer.currentTime}set currentTime(A){this.audioPlayer.currentTime=A}get isActivated(){return this.mediaElement.isActivated}set isActivated(A){this.mediaElement.isActivated=A}get seekTime(){return this.mediaElement.seekTime}get totalSeekTime(){return this.mediaElement.totalSeekTime}get isPaused(){return this.mediaElement.isPaused}get isSeeking(){return this.mediaElement.isSeeking}get audioNode(){return this.audioPlayer.audioNode}play(){const A=this._userProvidedMuted;return this.activateAudioPlayer().catch(()=>{A||this.emitter.emit("needs user input",{forAudio:!0,forVideo:!1})}),this.mediaElement.play()}pause(){this.mediaElement.pause()}};s(ua,"create",(A,e,t,g,n)=>new ua(A,e,t,g,n));let rs=ua;const lm=()=>i=>RQ(i.buffered.start(0),i.buffered.end(i.buffered.length-1)),RQ=(i,A)=>e=>e.remove(Math.max(0,i),Math.min(Number.POSITIVE_INFINITY,A)),GQ=i=>A=>A.appendBuffer(i),um=i=>A=>A.changeType(i),mm=i=>A=>i(A);class wm{constructor(A){s(this,"commandQueue",[]);s(this,"sourceBuffer");s(this,"currentInit");s(this,"handleQueue",()=>{var A;this.sourceBuffer.updating||(A=this.commandQueue.shift())==null||A.execute(this.sourceBuffer)});s(this,"appendBuffer",(A,e)=>new Promise((t,g)=>{if(e&&this.currentInit!==e){const o=new ss(GQ(e),t,g);this.commandQueue.push(o),this.currentInit=e}const n=new ss(GQ(A),t,g);this.commandQueue.push(n),this.handleQueue()}));s(this,"execute",A=>new Promise((e,t)=>{const g=new ss(mm(A),e,t);this.commandQueue.push(g),this.handleQueue()}));s(this,"buffered",()=>this.sourceBuffer.buffered);s(this,"removeFromMediaSource",A=>{A.removeSourceBuffer(this.sourceBuffer)});s(this,"changeType",A=>new Promise((e,t)=>{const g=new ss(um(A),e,t);this.commandQueue.push(g),this.handleQueue()}));s(this,"removeBuffer",(A,e)=>new Promise((t,g)=>{const n=new ss(RQ(A,e),t,g);this.commandQueue.push(n),this.handleQueue()}));s(this,"flush",()=>new Promise((A,e)=>{const t=new ss(lm,A,e);this.commandQueue.push(t),this.handleQueue()}));this.sourceBuffer=A,this.sourceBuffer.addEventListener("updateend",this.handleQueue)}}class UQ extends ie{constructor(){super();s(this,"MediaSource",is());s(this,"mediaSource",new this.MediaSource);s(this,"isOpen",()=>this.mediaSource.readyState==="open");s(this,"isClosed",()=>this.mediaSource.readyState==="closed");s(this,"isEnded",()=>this.mediaSource.readyState==="ended");s(this,"createObjectURL",()=>URL.createObjectURL(this.mediaSource));s(this,"attach",e=>{const t=e;if("srcObject"in t)try{t.srcObject=this.mediaSource}catch(g){if(g instanceof Error&&g.name!=="TypeError")throw g;t.src=this.createObjectURL()}else e.src=this.createObjectURL()});s(this,"detach",e=>{if(this.mediaSource&&this.mediaSource.readyState==="open")try{this.mediaSource.endOfStream()}catch(t){}e.srcObject&&(e.srcObject=null),e.src!==""&&(URL.revokeObjectURL(e.src),e.removeAttribute("src")),e.load()});s(this,"addSourceBuffer",e=>{const t=this.mediaSource.addSourceBuffer(e);return new wm(t)});s(this,"removeSourceBuffer",e=>{e.removeFromMediaSource(this.mediaSource)});s(this,"endOfStream",e=>{this.mediaSource.endOfStream(e)});s(this,"onSourceOpen",()=>{this.setDurationIfNeeded(),this.emit("source open")});s(this,"onSourceEnded",()=>this.emit("source ended"));s(this,"onSourceClosed",()=>this.emit("source close"));s(this,"setDurationIfNeeded",()=>{if(Number.isNaN(this.mediaSource.duration)&&this.mediaSource.readyState==="open"){for(let e=0;e<this.mediaSource.sourceBuffers.length;e++){const t=this.mediaSource.sourceBuffers[e];if(t!=null&&t.updating)return}this.mediaSource.duration=Number.POSITIVE_INFINITY}});this.mediaSource.addEventListener("sourceopen",this.onSourceOpen),this.mediaSource.addEventListener("sourceclose",this.onSourceClosed),this.mediaSource.addEventListener("sourceended",this.onSourceEnded)}}s(UQ,"isTypeSupported",e=>{var t,g;return(g=(t=is())==null?void 0:t.isTypeSupported(e))!=null?g:!1});class bQ{constructor(){s(this,"initSegments",new Map);s(this,"set",(A,e,t)=>{var n;const g=(n=this.initSegments.get(A))!=null?n:new Map;g.set(e,t),this.initSegments.set(A,g)});s(this,"get",(A,e)=>{var t;return(t=this.initSegments.get(A))==null?void 0:t.get(e)})}}function fm(i,{mediaSource:A,mimeType:e,codec:t}){return V(f({},i),{state:"initialized",mimeType:e,codec:t,sourceBuffer:A.addSourceBuffer(e),isWorkingOnPendingSamples:!1,sequenceNumber:0,lastBufferCleanupTime:Date.now()})}function NQ({initSegments:i,pendingSamples:A}){return{state:"uninitialized",initSegments:i!=null?i:new bQ,sequenceNumber:0,isWorkingOnPendingSamples:!1,hasFirstSync:!!A,pendingSamples:A!=null?A:[],pendingSamplesOffset:0,consecutiveQuotaExceededErrorCount:0,successfulAppendCalls:0}}const ma=class ma{constructor(A,e,t){s(this,"maxChunkSize",20);s(this,"minConsecutiveErrorsBeforeEmit",5);s(this,"maxSecondsInBuffer",60);s(this,"logger");s(this,"timers",JA.create());s(this,"emitter");s(this,"mediaElement");s(this,"mediaSource",new UQ);s(this,"trackContexts",new Map);s(this,"autoRecoverFromMediaErrors",!0);s(this,"quotaErrorCount",0);s(this,"recoveredFromErrorCount",0);s(this,"sourceOpenStartTime",Date.now());s(this,"sourceOpenEndTime",Date.now());s(this,"pendingTracksToAddSourceBuffers");s(this,"hasAddedInitialPosterFrame",!0);s(this,"videoKeyframeTimestamps",[]);s(this,"load",()=>{this.emitter.on("init segment",this.init),this.emitter.on("coded sample",this.onCodedSample),this.emitter.on("flush buffers",this.flushBuffers),this.emitter.on("fragment",this.onFragment)});s(this,"unload",()=>{this.logger.debug("Unloading module..."),this.emitter.off("init segment",this.init),this.emitter.off("coded sample",this.onCodedSample),this.emitter.off("flush buffers",this.flushBuffers),this.emitter.off("fragment",this.onFragment),this.mediaSource.off("source ended",this.onSourceEnded),this.mediaSource.off("source open",this.onSourceOpen),this.mediaSource.detach(this.mediaElement),this.trackContexts.forEach(A=>{A.pendingSamples=[],A.pendingSamplesOffset=0}),this.videoKeyframeTimestamps=[],this.timers.unload(),this.logger.debug("Unloaded module")});s(this,"getStatistics",()=>{var e,t,g,n;const A={quotaErrorCount:this.quotaErrorCount,mediaSourceOpenTime:this.sourceOpenEndTime-this.sourceOpenStartTime,successfulAudioAppendsCalls:(e=this.trackContexts.get("audio"))==null?void 0:e.successfulAppendCalls,successfulVideoAppendCalls:(t=this.trackContexts.get("video"))==null?void 0:t.successfulAppendCalls,videoKeyframeIntervalMs:Wr(this.videoKeyframeTimestamps),videoRenderer:"MSE",videoDecoder:"MSE",audioRenderer:"MSE",audioDecoder:"MSE"};if(this.mediaElement instanceof HTMLVideoElement){const o=(n=(g=this.mediaElement).getVideoPlaybackQuality)==null?void 0:n.call(g);A.totalVideoFrames=o==null?void 0:o.totalVideoFrames,A.droppedVideoFrames=o==null?void 0:o.droppedVideoFrames}return A});s(this,"flushBuffers",()=>{this.videoKeyframeTimestamps=[],this.trackContexts.forEach(A=>{A.pendingSamples=[],A.pendingSamplesOffset=0,A.hasFirstSync=!1,A.state!=="uninitialized"&&this.mediaSource.isOpen()&&A.sourceBuffer.removeBuffer(0,Number.POSITIVE_INFINITY).catch(e=>{this.logger.error("Failed to remove buffer",e)})})});s(this,"setTrackContexts",(A=new Map)=>{this.logger.debug("setTrackContexts"),["audio","video"].forEach(t=>{var C,Q,h;const g=A.get(t),n=(C=g==null?void 0:g.pendingSamples)!=null?C:[],o=g==null?void 0:g.initSegments;let a=(Q=g==null?void 0:g.pendingSamplesOffset)!=null?Q:0;for(;a<n.length&&!((h=n[a])!=null&&h.isSync);)a++;const B=NQ({pendingSamples:n,initSegments:o});B.pendingSamplesOffset=a,this.trackContexts.set(t,B)})});s(this,"setSourceBuffers",A=>c(this,null,function*(){if(this.mediaSource.isClosed()){this.pendingTracksToAddSourceBuffers=A;return}let e=!0;for(const t of A){const g=this.trackContexts.get(t.type);if(!g||g.state==="uninitialized"||g.mimeType!==t.mimeType){e=!1;break}}if(e){this.logger.debug("Already setup with the correct mime types");return}for(const t of A){let g=this.trackContexts.get(t.type);g||(g=NQ({pendingSamples:[],initSegments:new bQ}),this.trackContexts.set(t.type,g)),g.state==="initialized"?t.mimeType!==g.mimeType&&(yield g.sourceBuffer.changeType(t.mimeType)):this.trackContexts.set(t.type,fm(g,{mimeType:t.mimeType,mediaSource:this.mediaSource,codec:t.codec}))}}));s(this,"getBuffer",A=>{const e=[];if(this.mediaSource.isClosed())return[];const t=this.trackContexts.get(A);if(!t||t.state==="uninitialized")return[];try{const g=t.sourceBuffer.buffered();if(!g)return[];for(let n=0;n<g.length;n++)e.push({start:g.start(n)*1e3,end:g.end(n)*1e3});return e}catch(g){return[]}});s(this,"getVideoKeyframeTimestamps",()=>this.videoKeyframeTimestamps);s(this,"init",({initSegment:A,mimeType:e})=>{this.logger.debug("Added init segment",{channel:A.channelId,renditionId:A.renditionId});const t=this.trackContexts.get(A.type);if(!t)throw Kn(A.type,A.renditionId);t.state==="initialized"&&(t.mimeType=e);const g=ol({codec:A.codec,timescale:A.timescale,initData:A.data});g&&t.initSegments.set(A.channelId,A.renditionId,new Uint8Array(g))});s(this,"append",(A,e)=>c(this,null,function*(){var a;const t=A[0];if(!t)return;const g=this.trackContexts.get(t.type),n=g==null?void 0:g.initSegments.get(t.channelId,t.renditionId);if(this.mediaSource.isClosed())return;if(!n)throw Eh(t.renditionId,t.channelId);if(!g)throw Kn(t.type,t.renditionId);if(g.state==="uninitialized")throw ch(t.type,t.renditionId);if(e){const B=(t.timestamp+((a=t.compositionTimeOffset)!=null?a:0))/t.timescale;yield g.sourceBuffer.removeBuffer(B,Number.POSITIVE_INFINITY);const C=g.previousSample;if(C&&C.codec!==t.codec&&g.sourceBuffer.changeType)try{yield g.sourceBuffer.changeType(g.mimeType)}catch(Q){}"fragmented"in t||(yield g.sourceBuffer.appendBuffer(n))}const o=Math.max(0,t.timestamp/t.timescale-this.maxSecondsInBuffer);o>0&&Date.now()-g.lastBufferCleanupTime>1e4&&(g.lastBufferCleanupTime=Date.now(),yield g.sourceBuffer.removeBuffer(0,o+10));try{let B=g.sequenceNumber;if("fragmented"in t)for(const C of A)"initData"in C&&(yield g.sourceBuffer.appendBuffer(C.data,C.initData));else{const C=El(A,B++);yield g.sourceBuffer.appendBuffer(C)}g.sequenceNumber=B,g.consecutiveQuotaExceededErrorCount=0,g.successfulAppendCalls++}catch(B){throw B instanceof DOMException&&B.code===DOMException.QUOTA_EXCEEDED_ERR&&(this.quotaErrorCount++,g.consecutiveQuotaExceededErrorCount++,this.logger.error("quota exceeded error",{error:B})),B}}));s(this,"onFragment",({fragment:A,mimeType:e,codec:t,channelId:g,renditionId:n})=>{const o=A.mediaType(),a=A.rawBytes(),B=A.header().rawBytes(),C=A.baseMediaDecodeTime(),Q=A.timescale(),h=A.duration(),d=o==="video"?A.startsWithKeyframe():!0,u=A.compositionTimeOffset(0);if(o==="text"){this.logger.warn("Skipping unexpected text fragment");return}if(!t){this.logger.warn("Skipping fragment with no codec");return}const m=this.trackContexts.get(o);if(!m)throw Kn(o);m.state==="initialized"&&e&&(m.mimeType=e,m.initSegments.set(g,n,B));const p={fragmented:!0,type:o,data:a,initData:B,timestamp:C,duration:h,timescale:Q,channelId:g,renditionId:n,isSync:d,codec:t,fragment:A,compositionTimeOffset:u};this.onCodedSample(p)});s(this,"onCodedSample",A=>{var t;if(A.duration===0)return;const e=this.trackContexts.get(A.type);if(!e)throw Kn(A.type,A.renditionId);if(!(!e.hasFirstSync&&!A.isSync)){if(this.hasAddedInitialPosterFrame&&A.isSync&&A.type==="video"){this.hasAddedInitialPosterFrame=!1;const g=f({},A);"fragment"in g?(g.fragment=g.fragment.clone(),g.fragment.updateBaseMediaDecodeTime(0),g.data=g.fragment.rawBytes()):g.timestamp=0,e.pendingSamples.push(g)}if(e.hasFirstSync=!0,e.pendingSamples.push(A),A.type==="video"&&A.isSync){const g=(A.timestamp+((t=A.compositionTimeOffset)!=null?t:0))/A.timescale*1e3,n=this.videoKeyframeTimestamps[this.videoKeyframeTimestamps.length-1];n!==void 0&&g<n&&(this.videoKeyframeTimestamps=[]),this.videoKeyframeTimestamps.push(g),this.videoKeyframeTimestamps.length>20&&(this.videoKeyframeTimestamps=this.videoKeyframeTimestamps.slice(-20))}e.state!=="uninitialized"&&(e.isWorkingOnPendingSamples||pm(e,this.append,this.maxChunkSize).catch(g=>{if(e.isWorkingOnPendingSamples=!1,g instanceof Error){if(this.logger.error("append failed",{message:g.message,name:g.name}),g instanceof DOMException&&g.code===DOMException.QUOTA_EXCEEDED_ERR){if(e.consecutiveQuotaExceededErrorCount>=this.minConsecutiveErrorsBeforeEmit){const n=dC(!1,g,e.consecutiveQuotaExceededErrorCount,A.type);this.emitter.emit("error",n)}}else{const n=dC(!1,g,e.consecutiveQuotaExceededErrorCount,A.type);this.emitter.emit("error",n)}this.mediaElement.error&&this.onSourceEnded()}}))}});s(this,"onSourceOpen",()=>{this.logger.debug("source opened"),this.sourceOpenEndTime=Date.now(),this.pendingTracksToAddSourceBuffers&&(this.setSourceBuffers(this.pendingTracksToAddSourceBuffers),this.pendingTracksToAddSourceBuffers=void 0)});s(this,"onSourceEnded",()=>{const{error:A}=this.mediaElement;if(A){const e=/AUDIO_RENDERER/.test(A.message)||!this.autoRecoverFromMediaErrors,t=Ch(e,A);if(this.logger.error("MediaElement error",{error:t}),this.emitter.emit("error",t),!t.isFatal()){this.logger.info("Re-opening MediaSource"),this.emitter.emit("recovered from media error",{error:t,count:this.recoveredFromErrorCount}),this.recoveredFromErrorCount++;const g=!this.mediaElement.paused,n=[];this.trackContexts.forEach((o,a)=>{o.state==="initialized"&&n.push({type:a,mimeType:o.mimeType,codec:o.codec})}),this.sourceOpenStartTime=Date.now(),this.pendingTracksToAddSourceBuffers=n,this.mediaElement.src="",this.setTrackContexts(this.trackContexts),this.mediaSource.attach(this.mediaElement),g&&this.mediaElement.play().catch(G)}}this.logger.debug("source ended")});this.logger=A,this.mediaElement=t,this.emitter=e}};s(ma,"create",(A,e,t)=>{const g=new ma(A,e,t);return g.setTrackContexts(),g.mediaSource.on("source ended",g.onSourceEnded),g.mediaSource.on("source open",g.onSourceOpen),g.mediaSource.attach(t),g});let YB=ma;const LQ=(i,A)=>{var a;const e=i.renditionId!==A.renditionId,t=i.channelId!==A.channelId,g=((a=i.timestamp)!=null?a:0)>A.timestamp,n=i.type==="video"&&A.type==="video"&&"levelIdc"in i&&"levelIdc"in A&&i.levelIdc!==A.levelIdc;let o=!1;return i.type==="video"&&A.type==="video"&&"width"in i&&"width"in A&&(o=A.width!==i.width||A.height!==i.height),t||e||g||o||n},Dm=32,Sm=i=>{const A=i.pendingSamplesOffset;if(A!==0){if(A>=i.pendingSamples.length){i.pendingSamples=[],i.pendingSamplesOffset=0;return}A<Dm||A*2<i.pendingSamples.length||(i.pendingSamples=i.pendingSamples.slice(A),i.pendingSamplesOffset=0)}},pm=(i,A,e)=>c(null,null,function*(){for(i.isWorkingOnPendingSamples=!0;i.pendingSamplesOffset<i.pendingSamples.length;){const t=[];let g=i.pendingSamplesOffset;for(let a=i.pendingSamplesOffset;a<i.pendingSamples.length;a++){g=a;const B=i.pendingSamples[a],C=i.pendingSamples[a+1];if(B&&(t.push(B),C)){if(LQ(B,C))break;const Q=(B.timestamp+B.duration)/B.timescale;if(C.timestamp/C.timescale-Q>.1)break}if(a-i.pendingSamplesOffset>=e-1)break}const n=t[0];if(!n)break;const o=i.previousSample?LQ(i.previousSample,n):!0;yield A(t,o),i.pendingSamplesOffset=g+1,i.previousSample=t[t.length-1],Sm(i)}i.isWorkingOnPendingSamples=!1}),wa=class wa{constructor(A,e){s(this,"logger");s(this,"emitter");s(this,"element");s(this,"pictureInPictureWindow");s(this,"unload",()=>{this.emitter.off("add picture in picture listener",this.onEnablePictureInPicture),this.detachElementListeners()});s(this,"onEnablePictureInPicture",A=>{this.detachElementListeners(),this.element=A.element,A.element.addEventListener("leavepictureinpicture",this.onLeavePictureInPicture),A.element.addEventListener("enterpictureinpicture",this.onEnterPictureInPicture),xr(A.element,!0)});s(this,"getPictureInPictureSize",()=>this.pictureInPictureWindow);s(this,"isPictureInPictureActive",()=>this.isWebkitPresentationModeActive()||this.isStandardPictureInPictureActive());s(this,"isPictureInPictureSupported",()=>this.isWebkitPresentationModeSupported()||this.isStandardPictureInPictureSupported());s(this,"requestPictureInPicture",()=>(this.emitter.emit("ios-hack: reset size"),this.isStandardPictureInPictureSupported()?this.requestStandardPictureInPicture():this.isWebkitPresentationModeSupported()?this.requestWebkitPresentationMode("picture-in-picture"):Promise.reject(new Error("Picture in picture is not supported"))));s(this,"exitPictureInPicture",()=>this.isStandardPictureInPictureSupported()?this.exitStandardPictureInPicture():this.isWebkitPresentationModeSupported()?this.requestWebkitPresentationMode("inline"):Promise.reject(new Error("Picture in picture is not supported")));s(this,"getStatistics",()=>({isPictureInPictureActive:this.isPictureInPictureActive()}));s(this,"detachElementListeners",()=>{this.element&&(this.element.removeEventListener("leavepictureinpicture",this.onLeavePictureInPicture),this.element.removeEventListener("enterpictureinpicture",this.onEnterPictureInPicture),xr(this.element,!1))});s(this,"onLeavePictureInPicture",()=>{this.pictureInPictureWindow=void 0,this.logger.debug("Leave picture in picture"),this.emitter.emit("exit picture in picture")});s(this,"onEnterPictureInPicture",A=>{this.pictureInPictureWindow=bc(A),this.logger.debug("Enter picture in picture"),this.emitter.emit("enter picture in picture",this)});s(this,"requestStandardPictureInPicture",()=>c(this,null,function*(){if(!this.element)throw new Error("Picture in picture is not supported");const A=Pr(this.element);if(!A)throw new Error("Picture in picture is not supported");yield A()}));s(this,"exitStandardPictureInPicture",()=>c(null,null,function*(){const A=kc();if(!A)throw new Error("Picture in picture is not supported");yield A()}));s(this,"isStandardPictureInPictureSupported",()=>!!this.element&&Uc(this.element));s(this,"isStandardPictureInPictureActive",()=>!!this.element&&Gc());s(this,"isWebkitPresentationModeActive",()=>!!this.element&&Nc(this.element)==="picture-in-picture");s(this,"requestWebkitPresentationMode",A=>c(this,null,function*(){return this.element&&Lc(this.element,A),Promise.resolve()}));s(this,"isWebkitPresentationModeSupported",()=>!!this.element&&Jc(this.element));this.emitter=A,this.logger=e,this.emitter.on("add picture in picture listener",this.onEnablePictureInPicture)}};s(wa,"create",(A,e)=>new wa(A,e));let PB=wa;const fa=class fa{constructor(A,e,t,g){s(this,"emitter");s(this,"logger");s(this,"clockSource");s(this,"state","buffering");s(this,"bufferFullness",0);s(this,"targetBufferTime");s(this,"lastBufferStateEvent","drained");s(this,"firstFrameTime");s(this,"currentTimeIsInRange",!1);s(this,"needsInputForAudioCount",0);s(this,"needsInputForVideoCount",0);s(this,"unload",()=>{this.emitter.off("buffer state",this.onBufferedStateChanged),this.emitter.off("needs user input",this.onNeedsUserInput)});s(this,"setTargetBufferTime",A=>{this.targetBufferTime=A,this.emitter.emit("target buffer time",A)});s(this,"getTargetBufferTime",()=>this.targetBufferTime);s(this,"getBufferFullness",()=>this.bufferFullness);s(this,"getLastBufferStateEvent",()=>this.lastBufferStateEvent);s(this,"getState",()=>this.state);s(this,"getFirstFrameTime",()=>this.firstFrameTime);s(this,"getStatistics",()=>({bufferTime:this.targetBufferTime,needsInputForAudioCount:this.needsInputForAudioCount,needsInputForVideoCount:this.needsInputForVideoCount}));s(this,"onBufferedStateChanged",({buffered:A,isPaused:e,playbackState:t})=>{const g=this.clockSource.currentTime,n=A.some(h=>h.start<=g&&g<h.end),o=A[A.length-1],a=o?o.end-o.start>=this.targetBufferTime:!1,B=o?Math.max(0,o.end-g)/this.targetBufferTime:0;let C=e?"paused":t;const Q=this.state;this.currentTimeIsInRange!==n&&!n?(this.lastBufferStateEvent="drained",this.emitter.emit("buffer state event",this.lastBufferStateEvent)):n&&a&&this.lastBufferStateEvent==="drained"&&(this.lastBufferStateEvent="filled",this.emitter.emit("buffer state event",this.lastBufferStateEvent)),C==="playing"&&!this.firstFrameTime&&(this.firstFrameTime=Date.now()),this.currentTimeIsInRange=n,this.state=C,this.bufferFullness=n?B:0,Q!==C&&this.emitter.emit("playback state",C),this.emitter.emit("buffer fullness",this.bufferFullness)});s(this,"onNeedsUserInput",({forAudio:A,forVideo:e})=>{A&&this.needsInputForAudioCount++,e&&this.needsInputForVideoCount++});this.emitter=A,this.logger=e,this.clockSource=t,this.targetBufferTime=g,this.emitter.on("buffer state",this.onBufferedStateChanged),this.emitter.on("needs user input",this.onNeedsUserInput),this.emitter.emit("target buffer time",g)}};s(fa,"create",(A,e,t,g)=>new fa(A,e,t,g));let xB=fa;const WB=()=>({upgradesFromLevel:[],downgradesFromLevel:[],bufferingRanges:[],activeRanges:[],decodeRate:Number.MAX_SAFE_INTEGER}),ym=()=>({levels:{},levelDowngrades:[],levelUpgrades:[],bufferFullness:0,general:WB()}),Da=class Da{constructor(A,e,t){s(this,"minBufferFullnessLengthForRegression",6);s(this,"logger");s(this,"emitter");s(this,"timers",JA.create());s(this,"metrics",ym());s(this,"bufferFullness",new P(30));s(this,"bufferFullnessRegression");s(this,"currentLevel");s(this,"isSuspended",!1);s(this,"_fatalQosCount",0);s(this,"targetBufferTime",0);s(this,"renditionLevelSource");s(this,"qualityIndexOrder",[]);s(this,"hasAsserted",!1);s(this,"load",()=>{this.emitter.on("playback state",this.onPlaybackState),this.emitter.on("buffer fullness",this.onBufferFullness),this.emitter.on("rendition level changed",this.onRenditionLevelChanged),this.emitter.on("video decode rate",this.onVideoDecodeRate),this.emitter.on("target buffer time",this.onTargetBufferTime)});s(this,"unload",()=>{this.emitter.off("playback state",this.onPlaybackState),this.emitter.off("buffer fullness",this.onBufferFullness),this.emitter.off("rendition level changed",this.onRenditionLevelChanged),this.emitter.off("video decode rate",this.onVideoDecodeRate),this.emitter.off("target buffer time",this.onTargetBufferTime),this.suspend()});s(this,"suspend",()=>{this.isSuspended=!0,this.timers.unload(),this.stopBuffering(),this.unsetActive()});s(this,"unsuspend",()=>{this.isSuspended=!1,this.currentLevel&&this.setActive()});s(this,"fatalQosGraceTime",()=>1e4*(this.fatalQosCount+1));s(this,"incrementFatalQosCount",()=>{this._fatalQosCount++});s(this,"getMetrics",()=>this.metrics);s(this,"getLevelStats",A=>{var t,g,n,o;const e=((g=(t=A.video)==null?void 0:t.bitRate)!=null?g:0)+((o=(n=A.audio)==null?void 0:n.bitRate)!=null?o:0);return this.metrics.levels[e]});s(this,"getBufferFullnessRegression",()=>this.bufferFullnessRegression);s(this,"getTargetBufferTime",()=>this.targetBufferTime);s(this,"activeRatios",()=>{const A=new Map,e=ns(this.metrics.general.activeRanges);if(Object.entries(this.metrics.levels).forEach(([t,g])=>{var B;const n=parseInt(t,10),o=e?ns(g.activeRanges)/e:0,a=this.getQualityIndex(n).toString();A.set(a,((B=A.get(a))!=null?B:0)+o)}),!this.hasAsserted){const t=A.size?Math.abs(Array.from(A.values()).reduce((g,n)=>g+n,0)-1)<=.02:!0;t||(this.hasAsserted=!0,console.assert(t,`Active ratios should be close to 1 - actual: ${Array.from(A.values()).reduce((g,n)=>g+n,0)}`))}return A});s(this,"bufferingRatios",()=>{const A=new Map,e=ns(this.metrics.general.bufferingRanges);if(Object.entries(this.metrics.levels).forEach(([t,g])=>{var B;const n=parseInt(t,10),o=e?ns(g.bufferingRanges)/e:0,a=this.getQualityIndex(n).toString();A.set(a,((B=A.get(a))!=null?B:0)+o)}),!this.hasAsserted){const t=Array.from(A.values()).reduce((g,n)=>g+n,0)<=1;t||(this.hasAsserted=!0,console.assert(t,`Buffering ratios should be less than 1 - actual: ${Array.from(A.values()).reduce((g,n)=>g+n,0)}`))}return A});s(this,"bufferingEventsLast",A=>this.metrics.general.bufferingRanges.filter(e=>e.start>=Date.now()-A).length);s(this,"timeSpentBufferingLast",A=>jr(this.metrics.general.bufferingRanges,A));s(this,"timeSpentActiveLast",A=>jr(this.metrics.general.activeRanges,A));s(this,"timeSpentPlayingInAtLeastLevelRatio",A=>{var B,C,Q,h;const e=this.timeSpentBuffering(),t=this.timeActive(),g=this.bufferingRatios(),n=this.activeRatios(),o=((C=(B=A.video)==null?void 0:B.bitRate)!=null?C:0)+((h=(Q=A.audio)==null?void 0:Q.bitRate)!=null?h:0),a=e/t;return Object.keys(this.metrics.levels).map(d=>parseInt(d,10)).filter(d=>d>=o).reduce((d,u)=>{var p,y;const m=this.getQualityIndex(u).toString();return((p=n.get(m))!=null?p:0)-((y=g.get(m))!=null?y:0)*a+d},0)});s(this,"timeSpentBuffering",()=>ns(this.metrics.general.bufferingRanges));s(this,"timeActive",()=>ns(this.metrics.general.activeRanges));s(this,"getStatistics",()=>{const A=this.timeSpentBuffering(),e=this.timeActive(),t=this.metrics.general.bufferingRanges.length,g=this.activeRatios(),n=e/6e4,o=e>0?A/e:0,a=Math.max(n,1),B=n>0?t/a:0,C=[...g].reduce((k,[N,U])=>k+parseInt(N,10)*U,0),Q=6e4,h=this.timeSpentActiveLast(Q),d=this.timeSpentBufferingLast(Q),u=h>0?d/h:0,m=this.metrics.general.upgradesFromLevel.length+this.metrics.general.downgradesFromLevel.length,p=n>0?m/a:0,y=t>0?A/t:0;return{timeSpentBuffering:A,bufferingEventsCount:t,timeSpentRatio:[...g].reduce((k,[N,U])=>(k[N]=U,k),{}),fatalQosCount:this.fatalQosCount,bufferingRatio:o,bufferingEventsPerMinute:B,averageRenditionIndex:C,bufferingRatioPerMinute:u,renditionChangesPerMinute:p,timePerBufferingEvent:y}});s(this,"onRenditionLevelChanged",A=>{var n,o,a,B,C,Q,h,d,u,m,p,y,k,N;const e=((a=(o=(n=A.from)==null?void 0:n.video)==null?void 0:o.bitRate)!=null?a:0)+((Q=(C=(B=A.from)==null?void 0:B.audio)==null?void 0:C.bitRate)!=null?Q:0),t=((u=(d=(h=A.to)==null?void 0:h.video)==null?void 0:d.bitRate)!=null?u:0)+((y=(p=(m=A.to)==null?void 0:m.audio)==null?void 0:p.bitRate)!=null?y:0);this.logger.info("rendition level changed",{fromLevel:e,toLevel:t}),this.metrics.general.activeRanges.length===0&&this.setActive(),A.from&&A.to&&(e<t?this.metrics.general.upgradesFromLevel.push(Date.now()):this.metrics.general.downgradesFromLevel.push(Date.now()));let g=!1;if(A.from){const U=(k=this.metrics.levels[e])!=null?k:WB();e<t?U.upgradesFromLevel.push(Date.now()):U.downgradesFromLevel.push(Date.now()),Ai(U.activeRanges);const K=U.bufferingRanges[U.bufferingRanges.length-1];g=!!K&&!K.end,Ai(U.bufferingRanges),this.metrics.levels[e]=U}if(A.to){const U=(N=this.metrics.levels[t])!=null?N:WB();Is(U.activeRanges),g&&Is(U.bufferingRanges),this.metrics.levels[t]=U,this.currentLevel=t}});s(this,"onBufferFullness",A=>{this.bufferFullness.push(A),this.metrics.bufferFullness=A,this.bufferFullness.items().length>=this.minBufferFullnessLengthForRegression&&(this.bufferFullnessRegression=this.calculateLinearRegression())});s(this,"onPlaybackState",A=>{switch(this.logger.info("Playback state",{state:A,currentLevel:this.currentLevel}),A){case"playing":this.stopBuffering();break;case"buffering":this.isSuspended||this.startBuffering();break}});s(this,"onVideoDecodeRate",A=>{var t;if(this.metrics.general.decodeRate=A,!this.currentLevel)return;const e=this.metrics.levels[(t=this.currentLevel)!=null?t:0];e&&(e.decodeRate=A)});s(this,"onTargetBufferTime",A=>{this.targetBufferTime=A});s(this,"calculateLinearRegression",()=>Kc(this.bufferFullness.items().map((A,e)=>({x:e,y:A}))));s(this,"stopBuffering",()=>{if(this.currentLevel){const A=this.metrics.levels[this.currentLevel];A&&Ai(A.bufferingRanges)}Ai(this.metrics.general.bufferingRanges)});s(this,"startBuffering",()=>{if(this.currentLevel){const A=this.metrics.levels[this.currentLevel];A&&Is(A.bufferingRanges)}Is(this.metrics.general.bufferingRanges)});s(this,"unsetActive",()=>{if(this.currentLevel){const A=this.metrics.levels[this.currentLevel];A&&Ai(A.activeRanges)}Ai(this.metrics.general.activeRanges)});s(this,"getQualityIndex",A=>{var t,g;if(!this.qualityIndexOrder.length){const o=((g=(t=this.renditionLevelSource)==null?void 0:t.getRenditionLevels())!=null?g:[]).map(a=>{var B,C,Q,h;return((C=(B=a.video)==null?void 0:B.bitRate)!=null?C:0)+((h=(Q=a.audio)==null?void 0:Q.bitRate)!=null?h:0)}).filter(a=>a>0);this.qualityIndexOrder=[...new Set(o)].sort((a,B)=>B-a)}let e=this.qualityIndexOrder.indexOf(A);return e===-1&&(this.qualityIndexOrder.push(A),this.qualityIndexOrder.sort((n,o)=>o-n),e=this.qualityIndexOrder.indexOf(A)),e});this.logger=e,this.emitter=A,this.renditionLevelSource=t}get fatalQosCount(){return this._fatalQosCount}setActive(){if(this.currentLevel){const A=this.metrics.levels[this.currentLevel];A&&Is(A.activeRanges)}Is(this.metrics.general.activeRanges)}};s(Da,"create",(A,e,t)=>new Da(A,e,t));let OB=Da;const Sa=class Sa{constructor(A,e){s(this,"renditions",new Map);s(this,"renditionLevels",[]);s(this,"languages",[]);s(this,"emitter");s(this,"subscriptionSource");s(this,"renditionLevelChangeCount",0);s(this,"unload",()=>{this.emitter.off("renditions",this.onRenditions),this.emitter.off("subscription changed",this.onSubscriptionChanged)});s(this,"getRenditionLevels",A=>A?this.createRenditionLevels(A):this.renditionLevels);s(this,"getRenditionLevel",A=>{var a;const e=A!=null?A:this.getCurrentSubscription(),t=A?this.createRenditionLevels(A):this.renditionLevels;if(!e.video)return t.length?t[0]:void 0;const g=e.video.bitRate||Number.MAX_SAFE_INTEGER,n=e.video.width||Number.MAX_SAFE_INTEGER,o=e.video.height||Number.MAX_SAFE_INTEGER;return(a=t.filter(B=>B.video&&e.video?B.video.bitRate<=g&&B.video.width<=n&&B.video.height<=o:!0).pop())!=null?a:t[0]});s(this,"setRenditions",(A,e)=>{this.renditions.set(A,e)});s(this,"getLanguages",()=>this.languages);s(this,"getVideoRendition",(A,e=this.getCurrentSubscription().channelId)=>{const t=this.getRendition(A,e);if(t&&ei(t))return t});s(this,"getAudioRenditions",A=>{const e=this.renditions.get(A);return e==null?void 0:e.filter(g=>ti(g))});s(this,"getVideoRenditions",A=>{const e=this.renditions.get(A);return e==null?void 0:e.filter(g=>ei(g))});s(this,"getAudioRendition",(A,e=this.getCurrentSubscription().channelId)=>{const t=this.getRendition(A,e);if(t&&ti(t))return t});s(this,"getRendition",(A,e=this.getCurrentSubscription().channelId)=>{var t;return(t=this.renditions.get(e))==null?void 0:t.find(g=>g.id===A)});s(this,"getStatistics",()=>{var e,t,g,n,o,a,B,C,Q,h;const A=this.getRenditionLevel();return{videoCodec:(e=A==null?void 0:A.video)==null?void 0:e.codec,audioCodec:(t=A==null?void 0:A.audio)==null?void 0:t.codec,videoRenditionId:(g=A==null?void 0:A.video)==null?void 0:g.id,audioRenditionId:(n=A==null?void 0:A.audio)==null?void 0:n.id,videoWidth:(o=A==null?void 0:A.video)==null?void 0:o.width,videoHeight:(a=A==null?void 0:A.video)==null?void 0:a.height,expectedVideoBitRate:(B=A==null?void 0:A.video)==null?void 0:B.bitRate,expectedAudioBitRate:(C=A==null?void 0:A.audio)==null?void 0:C.bitRate,frameRate:(Q=A==null?void 0:A.video)==null?void 0:Q.frameRate,language:(h=A==null?void 0:A.audio)==null?void 0:h.language,renditionLevelChangeCount:this.renditionLevelChangeCount}});s(this,"onRenditions",A=>{const e=this.subscriptionSource.getCurrentSubscription();this.renditions.set(A.channelId,A.renditions),this.updateRenditionLevels({to:e,from:e})});s(this,"onSubscriptionChanged",A=>{this.updateRenditionLevels(A)});s(this,"updateRenditionLevels",({to:A,from:e})=>{var C;const{channelId:t,initiator:g}=A,n=this.getRenditionLevel(e),o=new Set;((C=this.renditions.get(t))!=null?C:[]).filter(Q=>Q.codec!=="webvtt").forEach(Q=>Q.language?o.add(Q.language):void 0),this.languages=Array.from(o),this.renditionLevels=this.createRenditionLevels(A);const B=this.getRenditionLevel(A);gs(n,B)||(this.renditionLevelChangeCount++,this.emitter.emit("rendition level changed",{to:B,from:n,reason:g?"manual":"abr"}))});s(this,"createRenditionLevels",A=>{var Q;const{video:e,audio:t,channelId:g}=A,n=(Q=this.renditions.get(g))!=null?Q:[],o=n.filter(ei).filter(h=>e&&h.codec===e.codec),a=n.filter(ti).filter(h=>t&&h.codec===t.codec&&h.language===t.language),B=Math.max(o.length,a.length),C=[];for(let h=0;h<B;h++){const d=o[Math.min(o.length-1,h)],u=a[Math.min(a.length-1,h)];C.push({audio:u,video:d})}return C});s(this,"getCurrentSubscription",()=>this.subscriptionSource.getCurrentSubscription());this.subscriptionSource=e,this.emitter=A,this.emitter.on("renditions",this.onRenditions),this.emitter.on("subscription changed",this.onSubscriptionChanged)}};s(Sa,"create",(A,e)=>new Sa(A,e));let VB=Sa;const Lg=i=>JSON.parse(JSON.stringify(i)),Fm=1e4,pa=class pa{constructor(A,e,t){s(this,"logger");s(this,"timers",new JA);s(this,"emitter");s(this,"targetSubscription");s(this,"currentSubscription");s(this,"_isSwitchingSubscription",!1);s(this,"pendingSubscriptionTimeoutId");s(this,"burstMs",0);s(this,"unload",()=>{this.logger.debug("Unloading module..."),this.timers.unload(),this.emitter.off("subscription changed",this.onSubscriptionChanged),this.logger.debug("Unloaded module")});s(this,"isSwitchingSubscription",()=>this._isSwitchingSubscription);s(this,"getTargetSubscription",()=>this.targetSubscription);s(this,"getCurrentSubscription",()=>this.currentSubscription);s(this,"enableBurst",A=>{this.burstMs=A});s(this,"setSize",A=>{this.targetSubscription.video.width=A.width,this.targetSubscription.video.height=A.height,this.scheduleSubscriptionChange()});s(this,"setVideoConstraint",A=>{this.targetSubscription.video=A,this.scheduleSubscriptionChange()});s(this,"setAudioConstraint",A=>{this.targetSubscription.audio=A,this.scheduleSubscriptionChange()});s(this,"setVideoBitRate",A=>{this.targetSubscription.video.bitRate=A,this.scheduleSubscriptionChange()});s(this,"setAudioBitRate",A=>{this.targetSubscription.audio.bitRate=A,this.scheduleSubscriptionChange()});s(this,"setChannelId",A=>{this.targetSubscription.channelId=A,this.scheduleSubscriptionChange()});s(this,"setLanguage",A=>{this.targetSubscription.audio.language=A,this.scheduleSubscriptionChange()});s(this,"setVideoCodec",A=>{this.targetSubscription.video.codec=A,this.scheduleSubscriptionChange()});s(this,"setAudioCodec",A=>{this.targetSubscription.audio.codec=A,this.scheduleSubscriptionChange()});s(this,"setBurst",A=>{A?this.targetSubscription.burstMs=A:delete this.targetSubscription.burstMs});s(this,"isNewSubscription",()=>{const A=["burstMs","meta","initiator","channelGroupId"];return!gs(Xr(this.currentSubscription,A),Xr(this.targetSubscription,A))});s(this,"onSubscriptionChanged",({to:A,reset:e})=>{this.logger.debug("onSubscriptionChanged",{to:A,reset:e}),e?this.targetSubscription=Lg(this.currentSubscription):this.currentSubscription=Lg(A),this._isSwitchingSubscription=this.isNewSubscription()});s(this,"scheduleSubscriptionChange",()=>{this.targetSubscription=Lg(this.targetSubscription),this._isSwitchingSubscription=this.isNewSubscription();const A=this.currentSubscription.channelId,e=this.targetSubscription.channelId,t=A!==e;this._isSwitchingSubscription&&(t&&this.burstMs?this.setBurst(this.burstMs):this.setBurst(0),this.pendingSubscriptionTimeoutId&&(this.timers.clearTimeout(this.pendingSubscriptionTimeoutId),this.pendingSubscriptionTimeoutId=void 0),t&&this.timers.setTimeout(()=>{this.currentSubscription.channelId===A&&this.targetSubscription.channelId===e&&(this.logger.warn("Channel switch timeout",e),this.targetSubscription=Lg(this.currentSubscription),this.emitter.emit("channel switch timeout",e))},Fm),this.pendingSubscriptionTimeoutId=this.timers.setTimeout(()=>this.emitter.emit("send signal",{type:"subscribe",subscription:this.getTargetSubscription()}),0))});this.logger=A,this.targetSubscription=e,this.currentSubscription=Lg(e),this.emitter=t,this.emitter.on("subscription changed",this.onSubscriptionChanged)}};s(pa,"create",(A,e,t)=>new pa(A,t,e));let ZB=pa;const JQ=5e3,km=()=>vr()||lc(),Rm=()=>km()?100:0,MQ=i=>A=>A>i,po={seek:{toleranceMs:200,toleranceMaxMs:2500,toleranceMultiplierStep:1,backoffEveryN:2,cooldownMs:1e3,timeoutMs:5e3,aheadToleranceMs:150,keyframeSearchBeforeMs:50,keyframeSearchAfterMs:100},timeshift:{enabled:!1,toleranceMs:50,toleranceMaxMs:600,backoffEveryN:3},playbackRate:{enabled:!1,startDiff:60,stopDiff:40,maxDiff:300,speed:.02,cooldownMs:2e3},backoff:{enabled:!0,decayEnabled:!0,decayCooldownMultiplier:3,decayCheckInterval:15e3}},ya=class ya{constructor(A,e,t,g,n){s(this,"emitter");s(this,"logger");s(this,"playbackSource");s(this,"bufferSource");s(this,"keyframeTimestamps",new P(10));s(this,"lastSeekTime",Date.now());s(this,"lastAdjustmentTime",Date.now());s(this,"lastDecayCheckTime",Date.now());s(this,"config");s(this,"state");s(this,"allowTimeshiftOnAudio",!1);s(this,"syncInfoToleranceMaxMs",150);s(this,"syncInfoToleranceStep",20);s(this,"seekOvershoot",Rm());s(this,"timers",JA.create());s(this,"rtt",0);s(this,"channelSyncInfo",new Map);s(this,"seekAdjustmentCount",0);s(this,"timeshiftAdjustmentCount",0);s(this,"syncInfoCorrectionCount",0);s(this,"playbackRateAdjustmentCount",0);s(this,"lastPlaybackRateChangeTime",0);s(this,"seekAdjustmentTimestamps",[]);s(this,"timeshiftAdjustmentTimestamps",[]);s(this,"_driftSamplesToAverage",5);s(this,"driftSamples",new P(this._driftSamplesToAverage));s(this,"timestampOffset");s(this,"currentChannelId");s(this,"highestSeenTimestamps",new Map);s(this,"isSuspended",!1);s(this,"isSyncAdjustmentActivated",!1);s(this,"queuedTimeshift",!1);s(this,"load",()=>{this.timers.setInterval(this.onSync,100)});s(this,"unload",()=>{this.logger.debug("Unloading module..."),this.emitter.off("rtt",this.updateRtt),this.timers.unload(),this.logger.debug("Unloaded module")});s(this,"suspend",()=>{this.isSuspended=!0});s(this,"unsuspend",()=>{this.resetSyncState(),this.isSuspended=!1});s(this,"deactivateSyncAdjustments",()=>{this.isSyncAdjustmentActivated=!1});s(this,"activateSyncAdjustments",()=>{this.tryApplySyncInfo(0),this.lastSeekTime=Date.now(),this.isSyncAdjustmentActivated=!0});s(this,"reset",()=>{this.logger.info("Reset sync state"),this.currentChannelId=void 0,this.timestampOffset=void 0,this.resetSyncState(),this.highestSeenTimestamps.clear()});s(this,"getTimeshiftOffset",()=>{var A;return(A=this.timestampOffset)!=null?A:0});s(this,"getCurrentChannelId",()=>this.currentChannelId);s(this,"resetSyncState",()=>{this.state.seekToleranceMultiplier=1,this.state.timeshiftToleranceMultiplier=1,this.seekAdjustmentTimestamps=[],this.timeshiftAdjustmentTimestamps=[],this.driftSamples.clear()});s(this,"getEffectiveSeekToleranceMs",()=>this.config.timeshift.enabled?this.config.seek.toleranceMs*2:this.config.seek.toleranceMs);s(this,"getLiveEdgeTime",A=>{const e=this.channelSyncInfo.get(A);if(!e)return;const t=Date.now()-e.localTimestamp;return e.timestamp+t});s(this,"getLiveEdgeTimeLatencyAdjusted",A=>{const e=this.getLiveEdgeTime(A);if(e)return e+this.rtt/2});s(this,"getWallclockTime",A=>{const e=this.channelSyncInfo.get(A);if(!e)return;const t=Date.now()-e.localTimestamp;return e.wallclockTime+t});s(this,"getWallclockTimeLatencyAdjusted",A=>{const e=this.getWallclockTime(A);if(e)return e+this.rtt/2});s(this,"processSample",A=>{var g;if(!A.channelId)throw new Error("Sample must be assigned to a channel");this.currentChannelId||(this.currentChannelId=A.channelId),this.timestampOffset||(this.timestampOffset=A.timestamp/A.timescale*1e3-JQ);const e=A.type==="video"&&A.isSync;if(this.currentChannelId!==A.channelId){let n=Number.MAX_SAFE_INTEGER;console.assert(this.highestSeenTimestamps.size!==0,"no known timestamps"),this.highestSeenTimestamps.forEach(a=>{n=Math.min(n,a)});const o=A.timestamp/A.timescale*1e3;this.currentChannelId=A.channelId,this.timestampOffset=o-n}else(e||this.allowTimeshiftOnAudio)&&this.tryTimeshiftSync();const t=this.timestampOffset*A.timescale/1e3;return A.timestamp-=t,e&&this.keyframeTimestamps.push(A.timestamp/A.timescale*1e3),this.highestSeenTimestamps.set(A.type,Math.max((g=this.highestSeenTimestamps.get(A.type))!=null?g:0,A.timestamp/A.timescale*1e3)),A});s(this,"processFragment",(A,e)=>{var o;this.currentChannelId||(this.currentChannelId=A);const t=e.mediaType();if(!t)throw new Error("Fragment must have a media type");this.timestampOffset||(this.timestampOffset=e.baseMediaDecodeTime()/e.timescale()*1e3-JQ);const g=e.mediaType()==="video"&&e.startsWithKeyframe();this.currentChannelId!==A?(console.assert(this.highestSeenTimestamps.size!==0,"no known timestamps"),this.highestSeenTimestamps.forEach(a=>{}),this.currentChannelId=A):(g||this.allowTimeshiftOnAudio)&&this.tryTimeshiftSync();const n=this.timestampOffset*e.timescale()/1e3;return e.updateBaseMediaDecodeTime(e.baseMediaDecodeTime()-n),g&&this.keyframeTimestamps.push(e.baseMediaDecodeTime()/e.timescale()*1e3),this.highestSeenTimestamps.set(t,Math.max((o=this.highestSeenTimestamps.get(t))!=null?o:0,e.baseMediaDecodeTime()/e.timescale()*1e3)),e});s(this,"forceSeek",()=>{this.logger.debug("Forcing seek",{amount:this.serverCurrentTime-this.playbackSource.currentTime}),this.playbackSource.currentTime=this.serverCurrentTime});s(this,"forceTimeshift",()=>{this.queuedTimeshift=!0});s(this,"setPlaybackRateAdjustmentEnabled",A=>{this.config.playbackRate.enabled=A});s(this,"getStatistics",()=>{const A=this.driftSamples.items(),e=A.length>0?we(A.map(Math.abs)):0;return{drift:this.drift,seekAdjustmentCount:this.seekAdjustmentCount,timeshiftAdjustmentCount:this.timeshiftAdjustmentCount,seekTime:this.playbackSource.seekTime,totalSeekTime:this.playbackSource.totalSeekTime,seekToleranceMultiplier:this.state.seekToleranceMultiplier,currentSeekToleranceMs:this.currentSeekToleranceMs(),currentAheadToleranceMs:this.currentAheadToleranceMs(),isPlaybackRateAdjustmentEnabled:this.config.playbackRate.enabled,playbackRate:this.playbackSource.playbackRate||1,playbackRateAdjustmentCount:this.playbackRateAdjustmentCount,averageDrift:e}});s(this,"updateRtt",A=>{this.rtt=A});s(this,"isPlaybackSourceReadyToSeek",()=>!this.isSeeking()&&this.isSeekCooldownExpired()&&this.isSyncAdjustmentActivated);s(this,"isSeeking",()=>this.playbackSource.isSeeking?!this.isSeekTimeoutExpired():!1);s(this,"isAllowedToSync",()=>this.isPlaybackSourceReadyToSeek()&&!!this.currentChannelId&&!this.isSuspended&&!this.playbackSource.isPaused);s(this,"isSeekCooldownExpired",()=>Date.now()-this.lastSeekTime>this.config.seek.cooldownMs);s(this,"isSeekTimeoutExpired",()=>Date.now()-this.lastSeekTime>this.config.seek.timeoutMs);s(this,"currentTimeshiftToleranceMs",()=>Math.min(this.config.timeshift.toleranceMs*this.state.timeshiftToleranceMultiplier,this.config.timeshift.toleranceMaxMs));s(this,"currentSeekToleranceMs",()=>Math.min(this.state.seekToleranceMultiplier*this.getEffectiveSeekToleranceMs(),this.config.seek.toleranceMaxMs));s(this,"currentAheadToleranceMs",()=>{const A=Math.max(this.config.seek.aheadToleranceMs*this.state.seekToleranceMultiplier,400),e=this.playbackSource.seekTime>500?A:this.config.seek.aheadToleranceMs;return Math.min(e,this.bufferSource.getTargetBufferTime()/2)});s(this,"tryDecayMultipliers",()=>{if(!this.config.backoff.decayEnabled)return;const A=Date.now();if(A-this.lastDecayCheckTime<this.config.backoff.decayCheckInterval)return;this.lastDecayCheckTime=A;const e=this.seekAdjustmentTimestamps.length>0?Math.max(...this.seekAdjustmentTimestamps):0,t=this.timeshiftAdjustmentTimestamps.length>0?Math.max(...this.timeshiftAdjustmentTimestamps):0,g=Math.max(e,t,this.lastAdjustmentTime),n=A-g,o=Math.max(this.state.seekToleranceMultiplier,this.state.timeshiftToleranceMultiplier),B=this.config.seek.timeoutMs*this.config.backoff.decayCooldownMultiplier*o;if(n<B)return;let C=!1;if(this.state.seekToleranceMultiplier>1){const Q=Math.max(1,this.state.seekToleranceMultiplier-.5);Q!==this.state.seekToleranceMultiplier&&(this.logger.info("Decaying seek tolerance multiplier",{from:this.state.seekToleranceMultiplier,to:Q,timeSinceLastAdjustment:n,requiredStabilityMs:B}),this.state.seekToleranceMultiplier=Q,C=!0)}if(this.state.timeshiftToleranceMultiplier>1){const Q=Math.max(1,this.state.timeshiftToleranceMultiplier-.5);Q!==this.state.timeshiftToleranceMultiplier&&(this.logger.info("Decaying timeshift tolerance multiplier",{from:this.state.timeshiftToleranceMultiplier,to:Q,timeSinceLastAdjustment:n,requiredStabilityMs:B}),this.state.timeshiftToleranceMultiplier=Q,C=!0)}if(C){const Q=A-B*2;this.seekAdjustmentTimestamps=this.seekAdjustmentTimestamps.filter(h=>h>Q),this.timeshiftAdjustmentTimestamps=this.timeshiftAdjustmentTimestamps.filter(h=>h>Q)}});s(this,"applyBackoff",()=>{if(this.config.backoff.enabled&&(this.lastAdjustmentTime=Date.now(),this.seekAdjustmentCount>0&&this.seekAdjustmentCount%this.config.seek.backoffEveryN===0)){const A=this.state.seekToleranceMultiplier,e=this.config.seek.toleranceMaxMs/this.getEffectiveSeekToleranceMs();this.state.seekToleranceMultiplier=Math.min(this.state.seekToleranceMultiplier+this.config.seek.toleranceMultiplierStep,e),A!==this.state.seekToleranceMultiplier&&this.logger.info("Backoff: Increasing seek tolerance multiplier",{from:A,to:this.state.seekToleranceMultiplier,currentSeekToleranceMs:this.currentSeekToleranceMs()})}});s(this,"tryPlaybackRateSync",A=>{if(!this.config.playbackRate.enabled)return!1;const e=this.playbackSource.playbackRate!==1,t=Math.abs(A),g=e&&t<this.config.playbackRate.stopDiff,n=!e&&t>=this.config.playbackRate.startDiff;if(t>this.config.playbackRate.maxDiff)return e&&(this.playbackSource.playbackRate=1,this.lastPlaybackRateChangeTime=Date.now()),!1;const o=Date.now(),a=o-this.lastPlaybackRateChangeTime>=this.config.playbackRate.cooldownMs;if(g&&a)return this.playbackSource.playbackRate=1,this.lastPlaybackRateChangeTime=o,this.logger.info("Resetting playback rate to 1",{drift:A}),!0;if(n&&a){const B=A>0?1+this.config.playbackRate.speed:1-this.config.playbackRate.speed;return this.playbackSource.playbackRate=B,this.lastPlaybackRateChangeTime=o,this.playbackRateAdjustmentCount++,this.logger.info("Adjusting playback rate",{drift:A,targetRate:B}),!0}if(e&&t>=this.config.playbackRate.stopDiff&&t<=this.config.playbackRate.maxDiff){const B=A>0?1+this.config.playbackRate.speed:1-this.config.playbackRate.speed;return this.playbackSource.playbackRate!==B&&a&&(this.playbackSource.playbackRate=B,this.lastPlaybackRateChangeTime=o,this.logger.info("Changing playback rate direction",{drift:A,targetRate:B})),!0}return!e&&t<this.config.playbackRate.startDiff?!0:e});s(this,"tryTimeshiftSync",()=>{var n;if(!this.config.timeshift.enabled||!this.isAllowedToSync()||this.playbackSource.playbackRate!==1)return;const A=(n=this.drift)!=null?n:0;this.driftSamples.push(A);const e=we(this.driftSamples.items());if(this.queuedTimeshift&&e>0){this.queuedTimeshift=!1,this.applyTimeshift(e);return}if(e>=this.getEffectiveSeekToleranceMs()||e<this.currentTimeshiftToleranceMs())return;const t=Date.now()-this.config.seek.timeoutMs*this.state.timeshiftToleranceMultiplier,g=this.timeshiftAdjustmentTimestamps.filter(MQ(t)).length;if(g&&this.state.timeshiftToleranceMultiplier>2){this.logger.info("Too many timeshifts within sliding window",{timeshiftCooldownThreshold:t,recentTimeshiftCount:g});return}this.applyTimeshift(e)});s(this,"applySeek",A=>{const e=this.playbackSource.seekTime,t=this.playbackSource.currentTime+A,g=this.findKeyframeCloseToTimestamp(t);if(!g&&!this.keyframeTimestamps.isEmpty())return;const n=g&&g>t+this.seekOvershoot?g:t+this.seekOvershoot;this.logger.info("Adjusting for drift using seek",{drift:A,currentTime:this.playbackSource.currentTime,targetCurrentTime:n,seekTime:e,rtt:this.rtt,seekToleranceMultiplier:this.state.seekToleranceMultiplier}),this.lastSeekTime=Date.now(),this.driftSamples.clear(),this.seekAdjustmentTimestamps.push(this.lastSeekTime),this.seekAdjustmentCount++,this.playbackSource.currentTime=n+Math.min(e,this.bufferSource.getTargetBufferTime()),this.applyBackoff()});s(this,"applyTimeshift",A=>{var g;const e=(g=A!=null?A:this.drift)!=null?g:0;if(!this.timestampOffset)return;const t=e;if(this.logger.info("Adjusting for drift using timeshift",{drift:e,syncAmount:t,currentTime:this.playbackSource.currentTime,rtt:this.rtt,timeshiftToleranceMultiplier:this.state.timeshiftToleranceMultiplier}),this.timestampOffset+=t,this.lastSeekTime=Date.now(),this.lastAdjustmentTime=Date.now(),!this.playbackSource.isPaused&&(this.driftSamples.clear(),this.timeshiftAdjustmentTimestamps.push(this.lastSeekTime),this.timeshiftAdjustmentCount++,this.config.backoff.enabled&&this.timeshiftAdjustmentCount>0&&this.timeshiftAdjustmentCount%this.config.timeshift.backoffEveryN===0)){const n=this.state.timeshiftToleranceMultiplier,o=this.config.timeshift.toleranceMaxMs/this.config.timeshift.toleranceMs;this.state.timeshiftToleranceMultiplier=Math.min(this.state.timeshiftToleranceMultiplier+1,o),n!==this.state.timeshiftToleranceMultiplier&&this.logger.info("Backoff: Increasing timeshift tolerance multiplier",{from:n,to:this.state.timeshiftToleranceMultiplier,currentTimeshiftToleranceMs:this.currentTimeshiftToleranceMs()})}});s(this,"onSync",()=>{var n;if(this.tryDecayMultipliers(),!this.isAllowedToSync())return;const A=(n=this.drift)!=null?n:0;if(this.driftSamples.push(A),this.driftSamples.items().length<this.driftSamplesToAverage&&Math.abs(A)<2e3)return;const e=we(this.driftSamples.items());if(this.tryPlaybackRateSync(e)||e<0&&-e<this.currentAheadToleranceMs()||e>0&&e<this.currentSeekToleranceMs()||Math.abs(e)<1||!this.isSeekCooldownExpired())return;const t=Date.now()-this.config.seek.timeoutMs*this.state.seekToleranceMultiplier,g=this.seekAdjustmentTimestamps.filter(MQ(t)).length;if(g&&this.state.seekToleranceMultiplier>2){this.logger.info("Too many seek adjustments within sliding window",{seekCooldownThreshold:t,recentSeekCount:g});return}this.applySeek(e)});s(this,"findKeyframeCloseToTimestamp",A=>{const e=this.keyframeTimestamps.items();for(const t of e){const g=t>=A-this.config.seek.keyframeSearchBeforeMs,n=t<=A+this.config.seek.keyframeSearchAfterMs;if(g&&n)return t}});this.logger=e,this.emitter=A,this.playbackSource=t,this.bufferSource=g,this.config={seek:f({},po.seek),timeshift:f({},po.timeshift),playbackRate:f({},po.playbackRate),backoff:f({},po.backoff)},this.config.timeshift.enabled=n,this.state={seekToleranceMultiplier:1,timeshiftToleranceMultiplier:1},typeof window!="undefined"&&window.location.search.includes("playbackRateAdjustmentEnabled")&&(this.config.playbackRate.enabled=!0),this.emitter.on("rtt",this.updateRtt),this.logger.info("SyncModule initialized",{config:this.config})}get driftSamplesToAverage(){return this._driftSamplesToAverage}set driftSamplesToAverage(A){this._driftSamplesToAverage=A,this.driftSamples=new P(A)}updateChannelSyncInfo(A,e){const t=Date.now(),g=this.channelSyncInfo.get(A),n=this.getLiveEdgeTime(A);if(this.isSuspended)return;if(!g||!n){this.logger.info("Initial timing info",{syncInfo:e}),this.channelSyncInfo.set(A,V(f({},e),{localTimestamp:t,timeDifferences:new P(12)}));return}const o=e.wallclockTime-g.wallclockTime,a=e.timestamp-g.timestamp,B=t-g.localTimestamp,C=a-B;if(g.timeDifferences.push(C),this.logger.debug("Timing info",{rtt:this.rtt,channelId:A,syncInfo:e,localTimestamp:t,diffFromEstimated:C,timestampDelta:a,wallclockDelta:o,localWallclockDelta:B}),Math.abs(C)>=Math.max(this.bufferSource.getTargetBufferTime()*2,3e3)){this.logger.info("Resetting sync info",{diffFromEstimated:C}),this.channelSyncInfo.set(A,V(f({},e),{localTimestamp:t,timeDifferences:new P(g.timeDifferences.maxSize+1)})),this.currentChannelId&&this.currentChannelId===A&&(this.reset(),this.emitter.emit("channel reset"));return}g.timeDifferences.items().length<3||this.tryApplySyncInfo(Math.min(this.syncInfoToleranceMaxMs,this.syncInfoCorrectionCount*this.syncInfoToleranceStep))}tryApplySyncInfo(A){const e=this.getCurrentChannelId();if(!e)return;const t=this.channelSyncInfo.get(e);if(!t)return;const g=$t(t.timeDifferences.items());Math.abs(g.average)>A&&(this.logger.info("Adjusting sync info",V(f({},g),{tolerance:A})),t.timestamp+=g.average,this.syncInfoCorrectionCount++,t.timeDifferences.clear())}get serverCurrentTime(){return this.channelCurrentTime-this.getTimeshiftOffset()}get channelCurrentTime(){const A=this.getCurrentChannelId();if(!A)return 0;const e=this.getLiveEdgeTime(A);return e?e-this.bufferSource.getTargetBufferTime():0}get drift(){return this.serverCurrentTime-this.playbackSource.currentTime}};s(ya,"create",(A,e,t,g,n)=>new ya(A,e,t,g,n));let XB=ya;const Gm={enabled:!0,interval:3e4,includeErrors:!0,includeEvents:!0,includeStats:!0,maxRetries:10,maxErrorReports:50,maxEvents:50},jB=(i,A)=>V(f({},A),{type:i,timestamp:new Date().toISOString(),discriminator:"web"}),Fa=class Fa{constructor(A,e,t,g){s(this,"logger");s(this,"timers",new JA);s(this,"emitter");s(this,"options");s(this,"parentContext");s(this,"unsentLines",new P(100));s(this,"retries",0);s(this,"errorCount",0);s(this,"eventCount",0);s(this,"statsCount",0);s(this,"unload",()=>{this.logger.debug("Unloading module..."),window.removeEventListener("error",this.onError),window.removeEventListener("unhandledrejection",this.onRejection),this.timers.unload(),this.emitter.off("error",this.addError),this.emitter.off("visibilitystate",this.onVisibilityChange),this.emitter.off("pagehide",this.onPageHide),this.emitter.off("telemetry event",this.addEvent),this.addStats({isFinal:!0,initiator:"unload"}),this.send("beacon"),this.logger.debug("Unloaded module")});s(this,"load",()=>{window.addEventListener("error",this.onError),window.addEventListener("unhandledrejection",this.onRejection),this.emitter.on("error",this.addError),this.emitter.on("visibilitystate",this.onVisibilityChange),this.emitter.on("pagehide",this.onPageHide),this.emitter.on("telemetry event",this.addEvent),this.timers.setInterval(()=>{this.addStats(),this.send("fetch")},this.options.interval)});s(this,"addStats",({isFinal:A,initiator:e}={isFinal:!1,initiator:"interval"},t={})=>{if(!this.options.includeStats)return;const g=this.parentContext.getStatistics(),n=jB("stats",V(f(f({},t),g),{isFinal:A,initiator:e,count:this.statsCount++}));this.unsentLines.push(n)});s(this,"addEvent",A=>{if(!this.options.includeEvents||this.eventCount>this.options.maxEvents)return;const e=this.parentContext.getStatistics(),t=jB("event",f(f({},e),A));this.eventCount++,this.unsentLines.push(t)});s(this,"getStatistics",()=>({errorCount:this.errorCount}));s(this,"send",A=>c(this,null,function*(){if(this.options.enabled&&!(this.retries>=this.options.maxRetries)&&!this.unsentLines.isEmpty()){this.logger.debug("Sending telemetry",{lines:this.unsentLines.items()});try{const e=this.unsentLines.items().map(t=>JSON.stringify(t)).reverse().join(`
|
|
50
|
+
`);A==="beacon"?navigator.sendBeacon(this.options.url,e):this.parentContext.connectionState==="connected"?this.emitter.emit("send signal",{type:"telemetry",body:e}):yield zC(new URL(this.options.url),{body:e,headers:{"Content-Type":"text/plain"}}),this.retries=0,this.unsentLines.clear()}catch(e){this.retries++}}}));s(this,"onVisibilityChange",A=>{A==="hidden"&&(this.addStats({isFinal:!0,initiator:"visibilitychange"}),this.send("beacon"))});s(this,"onPageHide",A=>{this.addStats({isFinal:!0,initiator:"pagehide"},{persisted:A.persisted}),this.send("beacon")});s(this,"onRejection",A=>this.addError(A.reason));s(this,"onError",A=>this.addError(A.error));s(this,"addError",A=>{const{includeErrors:e,maxErrorReports:t}=this.options;if(e&&A instanceof x){if(this.errorCount++,this.errorCount>t)return;const g=this.parentContext.getStatistics();this.unsentLines.push(jB("error",f(f({},g),A.toStringifiable())))}});this.logger=A,this.emitter=e,this.options=f(f({},Gm),t),this.parentContext=g}};s(Fa,"create",(A,e,t,g)=>new Fa(A,e,t,g));let yo=Fa;const ka=class ka{constructor(A,e,t){s(this,"logger");s(this,"element");s(this,"documentState");s(this,"timers",new JA);s(this,"unload",()=>{this.timers.unload()});s(this,"unpause",()=>{this.element.userHasProvidedInput&&this.element.isPaused&&this.documentState.isVisible&&this.documentState.isOnline&&(this.logger.debug("Unpause video"),this.element.tryPlay())});this.logger=A,this.element=e,this.documentState=t,this.timers.setInterval(this.unpause,100)}};s(ka,"create",(A,e,t)=>new ka(A,e,t));let Fo=ka;const Um=["minBufferTime","maxBufferTime","burstEnabled","sizeBasedResolutionCapEnabled","separateVideoSocketEnabled","webcodecsHardwareAcceleration","offscreenCanvasEnabled","videoCodecs"];function bm(i){return Um.includes(i)}class Nm{constructor(A){s(this,"options");s(this,"overrides",new Map);this.options=A}getOptions(){return this.options}addOverrides(A,e){this.overrides.set(A,e)}set(A,e){this.options[A]=e}get(A,e){var t;if(e&&bm(A)){const g=(t=this.overrides.get(e))==null?void 0:t[A];if(typeof g!="undefined")return g}return this.options[A]}getOverride(A,e){var t;return(t=this.overrides.get(e))==null?void 0:t[A]}}const Lm=["mse","wasm"],Jm=i=>i!=null?i:Lm,Mm=i=>{if(!i)return!1;const A=i.headers&&Object.keys(i.headers).length>0,e=i.queryParams&&Object.keys(i.queryParams).length>0;return!!(A||e)},vm=(i,A,e)=>{if(Mm(e))return"mse";const t=Jm(i);for(const g of t)switch(g){case"mse":if(A)return"mse";break;case"webcodecs":if(typeof VideoDecoder!="undefined")return"webcodecs";break;case"wasm":return"wasm"}return"wasm"},Hm=6,qm=i=>{let A=[i],e=0,t=0,g=!1;const n=(a,B)=>{var y,k,N;a.flags&&bg(a.flags)&&(e=(y=a.compositionTimeOffset)!=null?y:0),a.timestamp+=e,a.compositionTimeOffset=((k=a.compositionTimeOffset)!=null?k:0)-e;const C=a.timestamp/a.timescale,h=B.flags&&bg(B.flags)?(N=B.compositionTimeOffset)!=null?N:0:e,u=(B.timestamp+h)/B.timescale,m=Math.max(0,Math.round((u-C)*a.timescale));return m>0&&(t=m),V(f({},a),{duration:m>0?m:t})};return(a,B=!1)=>{if(a.flags&&bg(a.flags)&&B&&(g=!g),!(B&&A.length<Hm&&g)&&A.length>0){g=!1;let Q=a;for(let d=A.length-1;d>0;d--){const u=A[d];if(!u||!Q)break;u.timestamp>=Q.timestamp?A.splice(d,1):Q=u}const h=A.map((d,u)=>n(d,A[u+1]||a));return A=[a],h}return A.push(a),[]}},Km=(i,A,e)=>{if(ei(A))return f(V(f({},i),{type:"video",codec:A.codec,isSync:bg(i.flags),data:i.payload,duration:0,width:A.width,height:A.height}),e);if(A.codec==="webvtt")throw new Error("WebVTT is not supported");return V(f({},i),{type:"audio",channels:A.channels,sampleRate:A.sampleRate,codec:A.codec,language:A.language,isSync:bg(i.flags),data:i.payload,duration:0})},vQ=(i,A)=>i&&typeof i=="object"&&A in i,HQ=i=>!(typeof i!="object"||!vQ(i,"channelId")||typeof i.channelId!="string"||!vQ(i,"url")||typeof i.url!="string"||i.channelId.length===0||i.url.length===0),Tm=i=>{if(!HQ(i))throw new x("Invalid options",{isFatal:!0,code:"invalid_options"});const A=f({},i);return Object.keys(A).forEach(e=>{const t=A;typeof t[e]=="undefined"&&delete t[e]}),A},Ym=i=>{if(typeof i!="object"||i===null)throw new Error("not an object");if(!("video"in i))throw new Error("missing video in subscription");if(!("audio"in i))throw new Error("missing audio in subscription");if(!("channelId"in i))throw new Error("missing channelId");return!0},qQ=i=>{switch(i){case"opus":return"opus";case"aac":return"mp4a.40.2";case"mp3":return"mp3";default:{const A=i;throw new Error(`Unsupported audio codec: ${A}`)}}};class Pm{constructor(A){s(this,"cache",new Map);s(this,"inFlight",new Map);s(this,"checkVideoSupport",A=>c(this,null,function*(){var n;if(typeof VideoDecoder=="undefined")return!1;const e=VideoDecoder.isConfigSupported;if(typeof e!="function")return!0;const t=(n=A.codecString)!=null?n:A.codec==="av1"?"av01.0.08M.08":"avc1.42E01E",g=`video|${t}|${A.width}x${A.height}`;return this.check(g,()=>e({codec:t,optimizeForLatency:!0,codedWidth:A.width,codedHeight:A.height}),!0,{message:"Failed to check WebCodecs rendition support. Falling back to optimistic support check.",codec:t,renditionId:A.id})}));s(this,"checkAudioSupport",A=>c(this,null,function*(){var o;if(typeof AudioDecoder=="undefined")return!1;const e=AudioDecoder.isConfigSupported;if(typeof e!="function")return!0;const t=(o=A.codecString)!=null?o:qQ(A.codec),g=`audio|${t}|${A.sampleRate}|${A.channels}`,n=A.codec==="aac"?LC(A.channels,A.sampleRate):A.codec==="opus"?OC(A.channels,A.sampleRate):void 0;return this.check(g,()=>e({codec:t,sampleRate:A.sampleRate,numberOfChannels:A.channels,description:n}),!1,{message:"Failed to check WebCodecs audio rendition support. Treating rendition as unsupported.",codec:t,renditionId:A.id})}));s(this,"check",(A,e,t,g)=>{const n=this.cache.get(A);if(n!==void 0)return Promise.resolve(n);const o=this.inFlight.get(A);if(o)return o;const a=Promise.resolve().then(e).then(({supported:B})=>(this.cache.set(A,B),B)).catch(B=>(this.logger.warn(g.message,{codec:g.codec,renditionId:g.renditionId,error:B}),this.cache.set(A,t),t)).finally(()=>{this.inFlight.delete(A)});return this.inFlight.set(A,a),a});this.logger=A}}const ct=class ct extends ie{constructor(e){var le;super();s(this,"pictureInPicture");s(this,"drm");s(this,"browser",qa());s(this,"options");s(this,"element");s(this,"playbackSource");s(this,"emitter",new ie);s(this,"logger");s(this,"modules");s(this,"clientIp");s(this,"sessionId");s(this,"clientId",$r());s(this,"_channels",[]);s(this,"createdAt",Date.now());s(this,"offscreenCanvasElement");s(this,"webCodecsRenditionSupport");s(this,"hasCalledConnect",!1);s(this,"latestEmittedLanguages",[]);s(this,"wakeLock");s(this,"pool",new _e(ct.MAX_POOL_SIZE));s(this,"userAgentInformation",new Zc);s(this,"encryptedMediaExtensions");r(this,Zi,0);r(this,oe,[]);s(this,"sampleProcessingSesssions",new Map);s(this,"sizes",new Map);s(this,"isSuspended",!0);s(this,"disconnectTimeout");s(this,"offscreenSubtitleInterval");r(this,Xi);s(this,"attach",e=>{var t;(t=this.wakeLock)==null||t.attach(e),e.appendChild(this.element)});s(this,"setElement",e=>{this.element!==e&&(this.element=e,this.modules.constraintCap.setElement(e))});s(this,"getOptions",()=>this.options.getOptions());s(this,"getThumbnailUrl",()=>{let e=this.options.get("edgeUrl")||this.options.get("url");e=e.replace("wss://","https://"),e=e.replace("ws://","http://"),e=e.endsWith("/")?e.slice(0,-1):e;const t=window.devicePixelRatio||1,g=Math.round(window.innerWidth*t),n=Math.round(window.innerHeight*t),o=this.options.get("authenticationToken"),a=o?`&auth.token=${o}`:"";return`${e}/api/thumbnail?channelId=${this.channelId}${a}&width=${g}&height=${n}`});s(this,"updateAuthenticationToken",e=>{this.logger.debug("Got new auth token",{token:e}),this.options.set("authenticationToken",e),this.emitter.emit("send signal",{type:"refresh auth",token:e})});s(this,"connect",()=>{this.hasCalledConnect||(this.play(),this._connect())});s(this,"_connect",()=>{var e,t;this.hasCalledConnect||(this.hasCalledConnect=!0,Object.values(this.modules).forEach(g=>{g&&"load"in g&&g.load()}),this.unsuspend(),this.playbackSource instanceof BB&&((t=(e=this.playbackSource).load)==null||t.call(e)),this.modules.connection.connect())});s(this,"getCastOptions",()=>({url:this.options.get("url"),channelId:this.options.get("channelId"),channelGroupId:this.options.get("channelGroupId"),authenticationToken:this.options.get("authenticationToken"),language:this.options.get("language"),logLevel:this.options.get("logLevel"),minBufferTime:this.options.get("minBufferTime"),tags:this.options.get("tags"),ownerSessionId:this.sessionId,edgeUrl:this.options.get("edgeUrl"),media:this.options.get("media"),drm:this.options.get("drm")}));s(this,"onConnectInfo",e=>c(this,null,function*(){var C;this.sessionId=$r();const t=this.modules.subscription.getTargetSubscription(),g=e.channels.find(Q=>Q.channelId===t.channelId);if(this.emitter.emit("connect info",e),"timeshift"in e&&e.timeshift?(e.timeshift,this._channels=e.channels.map(Q=>V(f({},Q),{timeshift:e.timeshift})),this.emit("timeshift info",e.timeshift)):this._channels=e.channels,this.updateTextTracks((C=g==null?void 0:g.renditions)!=null?C:[]),!this.textTrack&&this.options.get("textTrack")&&(this.textTrack=this.options.get("textTrack")),yield Promise.all(e.channels.map(Q=>c(this,null,function*(){Q.overrides&&this.options.addOverrides(Q.channelId,Q.overrides),Q.renditions=yield this.filterRenditions(Q.renditions),this.modules.renditions.setRenditions(Q.channelId,Q.renditions)}))),!g)throw lC("external");const n=this.options.getOverride("sizeBasedResolutionCapEnabled",this.channelId);n!==void 0&&(this.modules.constraintCap.sizeBasedResolutionCapEnabled=n);const o=this.options.getOverride("minBufferTime",this.channelId),a=this.options.getOverride("maxBufferTime",this.channelId);if((o||a)&&(this.modules.bufferTime.updateConfig({minBufferTime:this.options.get("minBufferTime",this.channelId),maxBufferTime:this.options.get("maxBufferTime",this.channelId)}),this.targetBufferTime=this.options.get("minBufferTime",this.channelId)),this.options.get("burstEnabled",this.channelId)&&this.modules.subscription.enableBurst(this.targetBufferTime),this.emit("is live",g.isLive),!g.isLive)throw new Error("Waiting for channel to go live");this.patchSubscription(g,this.modules.connection.estimatedBandwidth),yield this.initializeDecodingModule(),this.resetModules(),this.emit("rendition levels",this.modules.renditions.getRenditionLevels()),this.emit("channels",this.channels),this.emitLanguagesIfChanged(),this.sampleProcessingSesssions.clear();const B=this.options.get("burstEnabled",this.channelId);return{video:this.targetSubscription.video,audio:this.targetSubscription.audio,burstMs:B?this.targetBufferTime:void 0,sessionId:this.sessionId,clientId:this.clientId,channelId:this.channelId,channelGroupId:this.options.get("channelGroupId"),authToken:this.options.get("authenticationToken"),textTrack:this.textTrack}}));s(this,"emitLanguagesIfChanged",()=>{const e=this.modules.renditions.getLanguages(),t=this.latestEmittedLanguages;e.length==t.length&&e.every(n=>t.includes(n))||(this.logger.debug("Emitting new languages",{currentLanguages:e}),this.latestEmittedLanguages=e,this.emit("languages",this.latestEmittedLanguages))});s(this,"updateTextTracks",e=>{const t=e.filter(g=>g.codec==="webvtt");t.forEach(g=>{if(!I(this,oe).find(o=>o.language===g.language)){if(this.modules.canvasModule){const o=this.modules.canvasModule.textTracks.addTextTrack(g.kind,g.label||g.language||"",g.language||"");I(this,oe).push(o)}else if(this.mediaElement instanceof HTMLVideoElement){const o=this.mediaElement.addTextTrack(g.kind,g.label||g.language,g.language);I(this,oe).push(o)}}});for(const g of I(this,oe))t.find(o=>o.language===g.language)?g.mode==="disabled"&&(g.mode="hidden"):g.mode="disabled";this.emit("text tracks",this.textTracks)});s(this,"cleanupTextTracks",(e=this.currentTime-2e4)=>{I(this,oe).forEach(t=>{if(t.cues)for(const g of t.cues)g.endTime*1e3<e-2e3&&t.removeCue(g)})});s(this,"filterRenditions",e=>c(this,null,function*(){const t=yield Promise.all(e.map(a=>c(this,null,function*(){var Q;if(ti(a))return this.willUseMediaSource()&&!((Q=is())!=null&&Q.isTypeSupported(mt(a)))?!1:this.willUseMediaSource()||a.codec==="opus"?!0:this.isWebCodecsAudioAvailable(this.channelId)?this.webCodecsRenditionSupport.checkAudioSupport(a):!1;if(!ei(a)||!this.isSupportedVideoCodecProfile(a.codec,a.codecString))return!1;if(!this.willUseMediaSource())return this.isWebCodecsVideoAvailable(this.channelId)?this.webCodecsRenditionSupport.checkVideoSupport(a):!0;const B=yield pl(a);if(!B.supported||a.codec=="av1"&&!B.smooth&&!B.powerEfficient)return!1;const C=this.options.getOverride("maxVideoBitRate",this.channelId);return C?C>=a.bitRate:!0})));let g=e.filter((a,B)=>t[B]);const n=g.filter(a=>a.codec==="h264").reverse()[0],o=g.filter(a=>a.codec==="av1").reverse()[0];return n&&o&&n.width>o.width&&n.height>o.height&&(g=g.filter(a=>a.codec!=="av1")),g}));s(this,"patchSubscription",(e,t)=>{const g=this.options.get("maxInitialBitRate"),n=Math.min(this.options.get("maxVideoBitRate"),g,t,this.targetSubscription.video.bitRate),o=Math.min(this.options.get("maxAudioBitRate"),g,t,this.targetSubscription.audio.bitRate),a=this.options.get("media")==="audio"?[]:this.options.get("videoCodecs",this.channelId),B=this.supportedAudioCodecs(),C=e.renditions.filter(ti),Q=e.renditions.filter(ei),h=B.find(p=>C.find(y=>y.codec===p)!==void 0),d=a.find(p=>Q.find(y=>y.codec===p)!==void 0),u=C.map(p=>p.language);if(this.logger.debug("supported and selected codecs",{audioCodecs:B,videoCodecs:a,audioCodec:h,videoCodec:d}),d){const p=this.options.get("maxSize");this.modules.subscription.setVideoConstraint(f({codec:d,bitRate:this.abrEnabled?n:this.options.get("maxVideoBitRate")},p))}h&&(this.modules.subscription.setAudioConstraint({codec:h,bitRate:this.abrEnabled?o:this.options.get("maxAudioBitRate"),language:this.options.get("language")}),(!u.includes(this.options.get("language"))||this.language===void 0)&&this.modules.subscription.setLanguage(u[0])),this.alignSizeAndBitRate(this.targetSubscription);const m=this.modules.subscription.getTargetSubscription();this.emitter.emit("subscription changed",{to:m,from:this.modules.subscription.getCurrentSubscription()})});s(this,"isSupportedVideoCodecProfile",(e,t)=>{if(this.willUseMediaSource()){const g=is();return g?g.isTypeSupported(mt({codec:e,codecString:t})):!0}if(this.isWebCodecsVideoAvailable(this.channelId)&&(e==="h264"||e==="av1"))return!0;if(e==="h264"){const g=!!(t!=null&&t.startsWith("avc1.42")),n=!!(t!=null&&t.startsWith("avc1.66."));return g||n}return e!=="av1"});s(this,"supportedAudioCodecs",()=>{if(this.options.get("media")==="video")return[];const e=[];return(this.willUseMediaSource()||this.isWebCodecsAudioAvailable(this.channelId))&&e.push("aac"),(this.browser.supportsMp4Opus&&this.options.get("mseOpusEnabled")||!this.willUseMediaSource())&&e.push("opus"),this.isWebCodecsAudioAvailable(this.channelId)&&e.push("mp3"),e});s(this,"initializeDecodingModule",()=>c(this,null,function*(){var p,y;const e=this.currentRenditionLevel,t=[];if(!e)throw new x("No currentRenditionLevel",{code:"no_current_rendition_level",isFatal:!1});if(e!=null&&e.video&&t.push({type:"video",mimeType:mt(e.video),codec:e.video.codec}),e!=null&&e.audio&&t.push({type:"audio",codec:e.audio.codec,mimeType:mt(e.audio)}),t.length===0)throw new x("Can't initialize decoding module without tracks",{code:"no_tracks",isFatal:!1});if(this.willUseMediaSource()&&this.element instanceof HTMLMediaElement){this.emitter.emit("flush buffers"),yield(p=this.modules.mseModule)==null?void 0:p.setSourceBuffers(t);return}const g=this.shouldUseWebCodecs(this.channelId),n=this.options.get("webcodecsHardwareAcceleration",this.channelId),a=this.shouldUseOffscreenCanvas(this.channelId)&&g,B=typeof OffscreenCanvas!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLCanvasElement.prototype.transferControlToOffscreen=="function",C=a&&B&&typeof VideoDecoder!="undefined";let Q,h;if(C)try{h=document.createElement("canvas"),Va(h),Q=h.transferControlToOffscreen()}catch(k){Q=void 0,h=void 0,this.logger.warn("Failed to enable OffscreenCanvas; falling back to main thread rendering",{error:k})}else a&&this.logger.warn("OffscreenCanvas requested but not supported; falling back to main thread rendering");const d=yield MB.create(this.emitter,this.logger.createContext("DecoderModule"),this.options.get("logLevel"),t,this.playbackSource,this.pool,g,n,Q),{videoRenderer:u}=d.getStatistics(),m=this.modules.canvasModule;if(m instanceof So)if(u==="OffscreenCanvas"&&h){m.setVideoRenderingEnabled(!1);const k=this.element;k.parentElement?k.parentElement.replaceChild(h,k):this.logger.warn("OffscreenCanvas rendering is active but the current element is not attached to the DOM. Updating internal element reference only."),this.offscreenCanvasElement=h,this.setElement(h)}else{m.setVideoRenderingEnabled(!0),this.offscreenCanvasElement=void 0;const k=m.element();if(k!==this.element){const N=this.element;N.parentElement&&N.parentElement.replaceChild(k,N),this.setElement(k)}}else m instanceof rs&&(u==="OffscreenCanvas"&&h?(m.setOffscreenCanvas(h),this.offscreenCanvasElement=h):(m.setOffscreenCanvas(void 0),this.offscreenCanvasElement=void 0));(y=this.modules.decoder)==null||y.unload(),this.modules.decoder=d,this.modules.decoder.load(),this.setupOffscreenSubtitleRouting()}));s(this,"setupOffscreenSubtitleRouting",()=>{if(this.offscreenSubtitleInterval!==void 0&&(clearInterval(this.offscreenSubtitleInterval),this.offscreenSubtitleInterval=void 0),!this.offscreenCanvasElement||!this.modules.decoder||this.modules.canvasModule instanceof rs)return;const e=this.modules.decoder,t=this.modules.canvasModule;if(!t)return;let g=!1;this.offscreenSubtitleInterval=setInterval(()=>{var h,d,u,m;if(!t.textTracks.language){g&&(e.setSubtitleCues([],0,0,1,0),g=!1);return}g=!0;const o=t.textTracks.getActiveCues(this.currentTime/1e3).map(p=>({text:p.text})),a=((h=this.element)==null?void 0:h.clientWidth)||0,B=((d=this.element)==null?void 0:d.clientHeight)||0,C=((u=this.element)==null?void 0:u.style.getPropertyValue("--vindral-subtitle-offset"))||((m=this.element)==null?void 0:m.style.getPropertyValue("--vindral-control-bar-offset")),Q=parseInt(C||"0",10)||0;e.setSubtitleCues(o,a,B,globalThis.devicePixelRatio||1,-Q)},100)});s(this,"unload",()=>c(this,null,function*(){var e,t,g;this.logger.debug("Unloading modules..."),this.offscreenSubtitleInterval!==void 0&&(clearInterval(this.offscreenSubtitleInterval),this.offscreenSubtitleInterval=void 0),yield Promise.all(Object.values(this.modules).map(n=>n==null?void 0:n.unload())),(e=this.wakeLock)==null||e.unload(),this.pool=new _e(ct.MAX_POOL_SIZE),(g=(t=this.playbackSource).unload)==null||g.call(t),this.element.remove(),this.emitter.reset(),this.encryptedMediaExtensions.unload(),this.reset(),this.logger.debug("Unloaded modules")}));s(this,"userInput",()=>{this.play()});s(this,"pause",()=>{this.options.get("pauseSupportEnabled")&&this.playbackState!=="paused"&&(this.playbackSource.pause(),this.hasCalledConnect&&this.suspend())});s(this,"registerDebugInstance",()=>{Sl(this)});s(this,"play",()=>{var e;this.hasCalledConnect?this.unsuspend():this.playbackState!=="playing"&&(this._connect(),self.addEventListener("__vindral_register_debug__",this.registerDebugInstance),this.modules.timer.setInterval(()=>this.cleanupTextTracks(),ct.REMOVE_CUE_THRESHOLD)),(e=this.wakeLock)==null||e.enable(),this.playbackState==="paused"&&(this.resetModules(),this.emitter.emit("flush buffers"),this.cleanupTextTracks(Number.MAX_SAFE_INTEGER)),this.playbackSource.play()});s(this,"getStatistics",()=>{const e=Object.values(this.modules).reduce((h,d)=>d&&"getStatistics"in d?f(f({},h),d.getStatistics()):h,this.getRuntimeInfo()),t=Math.round(this.timeActive>0?(e.bytesReceived||0)*8/(this.timeActive/1e3):0),g=this.uptime/36e5,n=Math.max(0,(e.connectCount||0)-1),o=g>0?n/g:0,a=this.timeActive/6e4,B=Math.max(a,1),C=a>0?(e.seekAdjustmentCount||0)/B:0,Q=a>0?(e.timeshiftAdjustmentCount||0)/B:0;return V(f({},e),{averageBitRate:t,reconnectsPerHour:o,seekAdjustmentsPerMinute:C,timeshiftAdjustmentsPerMinute:Q})});s(this,"resetModules",()=>{Object.values(this.modules).forEach(e=>{e&&"reset"in e&&e.reset()}),this.sampleProcessingSesssions.clear(),this.playbackSource.currentTime=0,this.playbackSource.isActivated=!1});s(this,"getRuntimeInfo",()=>{const e=this.modules.canvasModule instanceof rs?!0:void 0;return f({uptime:Date.now()-this.createdAt,version:"4.2.0",clientId:this.clientId,sessionId:this.sessionId,channelId:this.channelId,channelGroupId:this.options.get("channelGroupId"),ip:this.clientIp,url:this.options.get("url"),timeToFirstFrame:this.timeToFirstFrame(),streamToMediaElementEnabled:e,iosMediaElementEnabled:e},this.userAgentInformation.getUserAgentInformation())});s(this,"onMediaElementState",e=>{this.logger.info("media element state",{state:e}),this.options.get("pauseSupportEnabled")&&(e==="paused"?this.modules.documentState.isVisible&&(this.suspend(),this.modules.connection.disconnect()):(this.unsuspend(),this.modules.connection.getState()==="disconnected"&&this.modules.connection.unsuspend()))});s(this,"onBufferEvent",e=>{var g,n,o,a;this.emit("buffer state event",e);const t=!this.playbackSource.isActivated||this.playbackSource.isPaused;if(e==="filled"&&t){const B=Math.max(this.currentTime,(n=(g=this.videoBufferedRanges[0])==null?void 0:g.start)!=null?n:0,(a=(o=this.audioBufferedRanges[0])==null?void 0:o.start)!=null?a:0);this.logger.info("Buffer filled - starting playback",{currentTime:B}),this.playbackSource.currentTime=B,this.modules.sync.activateSyncAdjustments(),this.playbackSource.isActivated=!0}else e==="drained"&&this.playbackSource.isPaused&&(this.playbackSource.isActivated=!1,this.modules.sync.deactivateSyncAdjustments())});s(this,"timeToFirstFrame",()=>{const e=this.modules.playback.getFirstFrameTime(),t=this.modules.connection.firstConnectionTime;if(t&&e)return e-t});this.options=new Nm(f(f({},Xc),Tm(e)));const t=["localhost","127.0.0.1"];e.telemetryEnabled===void 0&&t.includes(location.hostname)&&this.options.set("telemetryEnabled",!1);const g={channelId:this.options.get("channelId"),audio:{language:this.options.get("language"),bitRate:this.options.get("maxAudioBitRate")},video:{bitRate:this.options.get("maxVideoBitRate"),width:this.options.get("maxSize").width,height:this.options.get("maxSize").height}},n=GA.get();n.setLevel(this.options.get("logLevel")),n.setDebug(!1),this.logger=n,this.webCodecsRenditionSupport=new Pm(n),e.iosMediaElementEnabled!==void 0&&this.logger.warn("Option iosMediaElementEnabled is deprecated and will be removed in a future release. Use streamToMediaElementEnabled instead.");const o=(le=e.streamToMediaElementEnabled)!=null?le:e.iosMediaElementEnabled;o!==void 0&&(this.options.set("streamToMediaElementEnabled",o),this.options.set("iosMediaElementEnabled",o));const a=e.mseEnabled!==void 0,B=e.decoders!==void 0;a&&this.logger.warn('Option mseEnabled is deprecated and will be removed in a future release. Use decoders instead (e.g. decoders: ["wasm"]).'),a&&!B&&e.mseEnabled===!1&&this.options.set("decoders",["wasm"]);const C=PB.create(this.emitter,this.logger.createContext("PictureInPictureModule")),Q=JA.create(),h=NB.create(this.emitter,this.logger.createContext("ConnectionModule"),{reconnectHandler:this.options.get("reconnectHandler"),options:this.options,onConnectInfo:this.onConnectInfo}),d=ZB.create(this.logger.createContext("SubscriptionModule"),this.emitter,g),u=VB.create(this.emitter,d),m=OB.create(this.emitter,this.logger.createContext("QualityOfServiceModule"),u),p=xB.create(this.emitter,this.logger.createContext("PlaybackModule"),this,this.options.get("minBufferTime"));this.encryptedMediaExtensions=new NC(this.emitter,this.logger.createContext("EncryptedMediaExtensions"),e.drm),this.drm={setHeaders:D=>{this.encryptedMediaExtensions.headers=D},setQueryParams:D=>{this.encryptedMediaExtensions.queryParams=D}};const y=vB.create(this.emitter),k=this.options.get("poster"),N=k===!0?this.getThumbnailUrl():k||void 0;let U,K,W;if(this.willUseMediaSource()){const D=new BB({type:this.options.get("media")=="audio"?"audio":"video",autoplay:!1,muted:this.options.get("muted")||this.options.get("media")==="video",volume:this.options.get("volume"),logger:this.logger.createContext("MediaElement"),poster:N});D.on("buffer state",L=>this.emitter.emit("buffer state",L)),D.on("needs user input",L=>this.emitter.emit("needs user input",L)),D.on("volume state",L=>this.emit("volume state",L)),D.on("media element state",L=>this.onMediaElementState(L)),this.element=D.element,this.playbackSource=D,NC.isSupported()&&this.encryptedMediaExtensions.attach(D.element),U=YB.create(this.logger.createContext("MseModule"),this.emitter,this.element),this.options.get("pauseSupportEnabled")||(K=Fo.create(this.logger.createContext("UnpauseModule"),D,y)),this.options.get("pictureInPictureEnabled")&&this.emitter.emit("add picture in picture listener",{element:D.element})}else if(this.options.get("streamToMediaElementEnabled")&&qc(this.browser)){const D=rs.create(this.emitter,this.logger.createContext("ModernCanvasModule"),this.pool,this,{type:this.options.get("media")=="audio"?"audio":"video",muted:this.options.get("muted")||this.options.get("media")==="video",volume:this.options.get("volume"),poster:N,offscreenCanvas:this.offscreenCanvasElement,bufferTime:this.options.get("minBufferTime")}),L=D.element();this.element=L.element,this.playbackSource=D,W=D;const z=this.browser.platform.isIOS&&this.browser.platform.iosVersion<=15;this.options.get("pictureInPictureEnabled")&&!z&&this.emitter.emit("add picture in picture listener",{element:this.element}),this.options.get("pauseSupportEnabled")||(K=Fo.create(this.logger.createContext("UnpauseModule"),L,y))}else{let D;const L=()=>{this.setElement(D.element())};D=So.create(this.emitter,this.logger.createContext("LegacyCanvasModule"),this.pool,this,this.options.get("muted")||this.options.get("media")==="video",this.options.get("volume"),L,this.options.get("minBufferTime")),this.element=D.element(),this.playbackSource=D,W=D,this.options.get("iosWakeLockEnabled")&&(this.wakeLock=new fl)}this.emitter.on("channel reset",this.resetModules),this.emitter.on("no data timeout",this.resetModules),this.emitter.on("media element state",D=>this.onMediaElementState(D)),this.emitter.on("volume state",D=>this.emit("volume state",D)),this.options.get("pauseSupportEnabled")||this.emitter.on("exit picture in picture",()=>Q.setTimeout(()=>this.play(),0)),this.emitter.on("constraint cap changed",D=>{this.logger.info("new cap set",{cap:D}),this.alignSizeAndBitRate(this.targetSubscription)}),this.pictureInPicture={enter:()=>C.requestPictureInPicture(),exit:()=>C.exitPictureInPicture(),isActive:()=>C.isPictureInPictureActive(),isSupported:()=>C.isPictureInPictureSupported()},this.emitter.on("error",D=>{if(D.type()==="external"&&this.emit("error",D),D.isFatal())return()=>{this.unload()}});const Z=this.browser.platform.isWebKit,j=XB.create(this.emitter,this.logger.createContext("SyncModule"),this.playbackSource,p,this.willUseMediaSource()&&!Z),QA=KB.create(this.logger.createContext("JitterModule")),NA=(this.options.get("edgeUrl")||this.options.get("url")).replace("wss://","https://").replace("ws://","http://").replace("//lb.","//errors."),ee=new URL("/telemetry",NA).toString(),qA=yo.create(this.logger.createContext("TelemetryModule"),this.emitter,{url:ee,enabled:this.options.get("telemetryEnabled"),includeStats:!1,interval:5e3},this);this.modules={telemetry:qA,bufferTime:EB.create(this.emitter,this.logger.createContext("BufferTimeModule"),m,this,{maxBufferTime:this.options.get("maxBufferTime"),minBufferTime:this.options.get("minBufferTime")}),incomingData:qB.create(this.emitter),adaptivity:QB.create(this.emitter,this.logger.createContext("AdaptivityModule"),m,{cooldownTime:Math.max(this.options.get("minBufferTime"),2e3)}),constraintCap:JB.create(this.emitter,this.element,u,this.options.get("abrEnabled")?this.options.get("sizeBasedResolutionCapEnabled"):!1),event:HB.create(this.emitter,this.logger.createContext("EventModule"),j),sync:j,jitter:QA,documentState:y,connection:h,playback:p,pictureInPicture:C,timer:Q,subscription:d,renditions:u,qualityOfService:m,mseModule:U,unpause:K,canvasModule:W},this.modules.adaptivity.isEnabled=this.options.get("abrEnabled"),this.emitter.on("page active",D=>{var L;D&&typeof this.disconnectTimeout=="number"&&(this.modules.timer.clearInterval(this.disconnectTimeout),this.disconnectTimeout=void 0),D?this.playbackSource.isPaused||(this.logger.debug("Unsuspending"),this.unsuspend()):(this.logger.debug("Suspending"),this.suspend(),this.modules.decoder?this.options.get("iosBackgroundPlayEnabled")?(this.modules.decoder.unsuspend(),(L=this.modules.canvasModule)==null||L.unsuspend()):this.modules.connection.disconnect():(this.disconnectTimeout&&this.modules.timer.clearInterval(this.disconnectTimeout),this.disconnectTimeout=this.modules.timer.setInterval(()=>{const z=this.playbackState==="paused"||this.muted;this.connectionState==="connected"&&z&&(this.emitter.emit("flush buffers"),this.modules.connection.disconnect("Page inactive timeout"))},ct.DISCONNECT_TIMEOUT)))});let XA;this.emitter.on("context switch complete",()=>{XA||(XA=window.setTimeout(()=>{window.clearTimeout(XA),XA=void 0,this.emit("context switch","completed"),this.emitLanguagesIfChanged()},this.targetBufferTime))}),this.emitter.on("context switch started",()=>this.emit("context switch","started")),this.emitter.on("needs user input",D=>this.emit("needs user input",D)),this.emitter.on("event",D=>{switch(D.type){case"metadata":this.emit("metadata",D);break;case"channel switch":this.emit("channel switch",{channelId:D.channelId});break;case"language switch":this.emit("language switch",{language:D.language});break}}),this.emitter.on("buffer state event",this.onBufferEvent),this.emitter.on("playback state",D=>this.emit("playback state",D)),this.emitter.on("rendition level changed",({to:D})=>{D&&this.emit("rendition level",D)}),this.emitter.on("connection state",D=>{this.emit("connection state",D)}),this.emitter.on("recovered from media error",()=>{this.modules.adaptivity.reset(this.targetBufferTime*2)}),this.emitter.once("connect info",D=>{var F,b,v;const z=((b=(F=D.telemetry)==null?void 0:F.probability)!=null?b:1)>=Math.random();D.telemetry&&((v=this.modules.telemetry)==null||v.unload(),this.modules.telemetry=yo.create(this.logger.createContext("TelemetryModule"),this.emitter,V(f({},D.telemetry),{enabled:this.options.get("telemetryEnabled")&&z}),this),this.modules.telemetry.load())}),this.emitter.on("adapt level",D=>{var O,oA,RA,zA,sA;this.logger.debug("adapt level",{direction:D});const L=this.modules.renditions.getRenditionLevels(),z=this.modules.renditions.getRenditionLevel(),F=L.findIndex(gA=>gA===z),b=L.length-1;let v=F;switch(D){case"upgrade":{const gA=Math.min(F+1,b),BA=L[gA],SA=(O=this.modules.connection.estimatedBandwidth)!=null?O:wt(),LA=((RA=(oA=BA==null?void 0:BA.audio)==null?void 0:oA.bitRate)!=null?RA:0)+((sA=(zA=BA==null?void 0:BA.video)==null?void 0:zA.bitRate)!=null?sA:0),ht=SA*2>LA;BA&&ht&&this.modules.adaptivity.isQoSOk(BA)&&(v=gA)}break;case"downgrade":v=Math.max(F-1,0);break;case"double downgrade":v=Math.max(F-2,0);break;case"reconnect":if(F===0||this.modules.qualityOfService.timeSpentBufferingLast(6e3)>5e3){if(!this.modules.connection.lastConnectionTime||Date.now()-this.modules.connection.lastConnectionTime<this.modules.qualityOfService.fatalQosGraceTime()||this.modules.connection.getState()!=="connected")return;this.modules.qualityOfService.incrementFatalQosCount(),this.logger.info("Reconnecting due to poor qos"),this.modules.connection.reconnect("Fatal QOS"),this.emitter.emit("adapted level");return}else v=0}if(v===F)return;const eA=L[v];this.alignSizeAndBitRate(V(f({},this.targetSubscription),{video:f(f({},this.targetSubscription.video),eA==null?void 0:eA.video),audio:f(f({},this.targetSubscription.audio),eA==null?void 0:eA.audio)})),this.emitter.emit("adapted level")}),this.emitter.on("text track data",D=>{const L=I(this,oe).find(v=>v.language===D.language),F=this.modules.sync.getTimeshiftOffset()/1e3,b=F-I(this,Zi);if(E(this,Zi,F),L){if(L.cues)for(const v of L.cues)v.startTime-=b,v.endTime-=b;for(const v of D.cues){const eA=new VTTCue(v.startTime-F,v.endTime-F,v.text);L.addCue(eA)}}}),this.emitter.on("received signal",D=>{var F;const L=D,z=this.modules.subscription.getCurrentSubscription();switch(this.logger.debug("received",f({},L)),L.type){case"client ip":this.clientIp=L.ip;break;case"renditions":this.updateTextTracks(L.renditions),E(this,Xi,this.filterRenditions(L.renditions).then(b=>{this.emitter.emit("renditions",{renditions:b,channelId:this.currentSubscription.channelId}),this.emit("rendition levels",this.modules.renditions.getRenditionLevels()),this.emitLanguagesIfChanged()}).finally(()=>{E(this,Xi,void 0)}));break;case"subscription changed":try{Ym(L.subscription)}catch(b){this.emitter.emit("error",new x("Subscription failed validation",{source:b instanceof Error?b:void 0,isFatal:!1,code:"subscription_failed_validation"}))}this.emitter.emit("subscription changed",{reset:L.reset,to:L.subscription,from:this.modules.subscription.getCurrentSubscription()}),L.reset&&z.channelId!==L.subscription.channelId&&(this.emit("error",wC(L.subscription.channelId)),this.emit("channel switch failed",{channelId:z.channelId})),this.modules.sync.allowTimeshiftOnAudio=!((F=L.subscription.video)!=null&&F.codec),this.modules.adaptivity.reset();break;case"timing info":this.modules.sync.updateChannelSyncInfo(L.timingInfo.channelId,L.timingInfo),this.emit("server wallclock time",L.timingInfo.wallclockTime);break}}),this.emitter.on("channel switch timeout",D=>{this.emit("error",wC(D)),this.emit("channel switch failed",{channelId:this.currentSubscription.channelId})}),this.emitter.on("received data",D=>{const L=this.modules.subscription.getCurrentSubscription(),z=ml(D);if(!L){this.logger.warn("Received unwanted message",f({},z));return}Xt(V(f({},z),{channelId:L.channelId}))}),this.emitter.on("received moq data",D=>{var v,eA,O,oA,RA,zA;const L=D.payload.mediaType(),z=D.channelId,F=D.renditionId,b=this.modules.sync.processFragment(z,D.payload);if(L!=="text"&&this.modules.jitter.recordSample({type:L,renditionId:F,timestamp:b.baseMediaDecodeTime(),timescale:b.timescale()}),D.switchInfo.channelId&&(D.switchInfo.drmTransition&&this.emitter.emit("error",fC("Switching between DRM and non-DRM channels is not supported",!0)),this.encryptedMediaExtensions.onChannelSwitch(),this.emit("rendition levels",this.modules.renditions.getRenditionLevels()),this.modules.event.addEvent({type:"channel switch",channelId:D.switchInfo.channelId,timestamp:b.baseMediaDecodeTime()/b.timescale()*1e3})),D.switchInfo.language&&this.modules.event.addEvent({type:"language switch",language:D.switchInfo.language,timestamp:b.baseMediaDecodeTime()/b.timescale()*1e3}),this.modules.incomingData.add(L,D.payload.rawBytes().byteLength),(L==="video"||L==="audio")&&this.hasListeners("cmaf fragment")&&this.emit("cmaf fragment",{mediaType:L,initSegment:b.header().rawBytes().slice(),fragment:b.rawBytes().slice(),isKeyframe:b.startsWithKeyframe()}),b.fragment().emsgs.forEach(sA=>{if(!sA.presentationTime)return;const gA=xh(sA.data);gA&&this.modules.event.addEvent({id:sA.id,timestamp:sA.presentationTime/sA.timescale*1e3-this.modules.sync.getTimeshiftOffset(),content:gA.txx.value,type:"metadata"})}),this.modules.decoder){const sA=(v=b.header().init().moov.traks[0])==null?void 0:v.mdia.minf.stbl.stsd,gA=(eA=sA==null?void 0:sA.codec)!=null?eA:"h264";let BA;if(gA==="h264")BA=(O=sA==null?void 0:sA.avc1)==null?void 0:O.avcC.bytes;else if(gA==="av1"&&(sA!=null&&sA.av01)){const SA=sA.av01.data();BA=Od(SA)}else gA==="aac"?BA=(RA=(oA=sA==null?void 0:sA.mp4a)==null?void 0:oA.esds)==null?void 0:RA.decoderConfig:gA==="opus"&&(BA=cl((zA=sA==null?void 0:sA.opus)==null?void 0:zA.dops));if(BA){const SA=BA.buffer.slice(BA.byteOffset,BA.byteOffset+BA.byteLength);if(L==="text")throw new Error("Subtitles are not supported");this.emitter.emit("init segment",{initSegment:{channelId:z,renditionId:F,data:SA,timescale:1e3,type:L,codec:gA},mimeType:L})}else gA&&this.logger.warn("Failed to extract init data for codec",{codec:gA,channelId:z,renditionId:F});for(let SA=0;SA<b.samplesCount();SA++){const LA=b.sample(SA);LA&&this.emitter.emit("coded sample",V(f({},LA),{renditionId:F,channelId:z,data:LA.data.buffer.slice(LA.data.byteOffset,LA.data.byteOffset+LA.data.byteLength)}))}}else this.emitter.emit("fragment",{mimeType:D.mimeType,codec:D.codec,fragment:b,channelId:z,renditionId:F})});const jA=this.options.get("container");jA&&this.attach(jA),this.logger.info("Created Vindral instance",{options:this.options});const Xt=D=>c(this,null,function*(){const L=D.channelId;I(this,Xi)&&(yield I(this,Xi));const z=this.modules.renditions.getRendition(D.renditionId,L);if(!dl(D.flags)){if(ll(D.flags)){const b=new TextDecoder().decode(D.payload),v=this.modules.sync.getTimeshiftOffset();if(D.renditionId!==0){const eA=_r(b);if(eA&&eA.language!==void 0){const oA=new ZC().parse(eA.content||""),RA=v/1e3,zA=I(this,oe).find(gA=>gA.language===eA.language),sA=RA-I(this,Zi);if(E(this,Zi,RA),zA){if(zA.cues)for(const gA of zA.cues)gA.startTime-=sA,gA.endTime-=sA;for(const gA of oA){const BA=new VTTCue(gA.startTime-RA,gA.endTime-RA,gA.text);zA.addCue(BA)}}}}else this.modules.event.addEvent({timestamp:D.timestamp/D.timescale*1e3-this.modules.sync.getTimeshiftOffset(),content:b,type:"metadata"})}else if(z!=null&&z.codec){const F=Wa(z.codec);if(F==="text")throw new Error("Subtitles are not supported");if(this.modules.incomingData.add(F,D.payload.byteLength),hl(D.flags)){const b=V(f({type:F,data:D.payload,codec:z.codec},D),{channelId:L}),v=al(b.codec,b.payload);v&&this.sizes.set(b.renditionId,v);const eA=mt({codec:z.codec,codecString:z.codecString});this.emitter.emit("init segment",{initSegment:b,mimeType:eA}),this.emit("initialized media")}else{const b=Km(D,z,this.sizes.get(D.renditionId));this.modules.jitter.recordSample(b);let v=this.sampleProcessingSesssions.get(F);if(!v)v=qm(this.modules.sync.processSample(b)),this.sampleProcessingSesssions.set(F,v);else{const eA=this.willUseMediaSource()&&this.isSwitchingRenditionLevel&&b.type==="video",O=v(this.modules.sync.processSample(b),eA);let oA=b;O.forEach(RA=>{this.modules.event.extractEvent(RA,oA),this.emitter.emit("coded sample",RA),oA=RA})}}}}});this.options.get("maxVideoBitRate")!==Number.MAX_SAFE_INTEGER&&(this.maxVideoBitRate=this.options.get("maxVideoBitRate")),this.options.get("maxAudioBitRate")!==Number.MAX_SAFE_INTEGER&&(this.maxAudioBitRate=this.options.get("maxAudioBitRate")),gs(this.options.get("maxSize"),qn())||(this.maxSize=this.options.get("maxSize")),this.options.get("burstEnabled")&&d.enableBurst(this.targetBufferTime)}set volume(e){this.playbackSource.volume=e}get volume(){return this.playbackSource.volume}set muted(e){if(e===this.muted)return;const t=this.playbackSource.muted;this.playbackSource.muted=e,!e&&t&&!this.playbackSource.isPaused&&this.playbackSource.play()}get muted(){return this.playbackSource.muted}get media(){return this.options.get("media")}get videoBitRate(){return this.modules.incomingData.averageBitRate("video")}get audioBitRate(){return this.modules.incomingData.averageBitRate("audio")}get connectionState(){return this.modules.connection.getState()}get playbackState(){return this.modules.playback.getState()}get bufferFullness(){return this.modules.playback.getBufferFullness()}get sizeBasedResolutionCapEnabled(){return this.modules.constraintCap.sizeBasedResolutionCapEnabled}set sizeBasedResolutionCapEnabled(e){this.modules.constraintCap.sizeBasedResolutionCapEnabled=e}get abrEnabled(){return this.modules.adaptivity.isEnabled}set abrEnabled(e){this.modules.constraintCap.sizeBasedResolutionCapEnabled=e?this.options.get("sizeBasedResolutionCapEnabled"):!1,this.modules.adaptivity.isEnabled=e,this.alignSizeAndBitRate(this.targetSubscription)}get serverEdgeTime(){return this.modules.sync.getLiveEdgeTimeLatencyAdjusted(this.currentSubscription.channelId)}get serverWallclockTime(){return this.modules.sync.getWallclockTimeLatencyAdjusted(this.currentSubscription.channelId)}get currentTime(){return this.modules.sync.serverCurrentTime}get channelCurrentTime(){return this.modules.sync.channelCurrentTime}get targetBufferTime(){return this.modules.playback.getTargetBufferTime()}set targetBufferTime(e){this.modules.playback.getTargetBufferTime()!==e&&(this.modules.playback.setTargetBufferTime(e),this.playbackSource.currentTime=this.modules.sync.serverCurrentTime,this.options.get("burstEnabled",this.channelId)?this.modules.subscription.enableBurst(this.targetBufferTime):this.modules.subscription.enableBurst(0))}get playbackLatency(){var e;if(this.playbackSource.currentTime!==0)return this.targetBufferTime+((e=this.modules.sync.drift)!=null?e:0)+this.modules.connection.rtt/2}get playbackWallclockTime(){if(!(!this.serverWallclockTime||!this.playbackLatency))return this.serverWallclockTime-this.playbackLatency}get channels(){return this._channels}get languages(){return this.modules.renditions.getLanguages()}get language(){return this.modules.subscription.getTargetSubscription().audio.language}set language(e){if(e===this.language)return;const t=this.languages;if(e!==void 0&&t.length>0&&!t.includes(e)){this.logger.warn(`Language "${e}" is not available. Available languages: ${t.join(", ")}`);return}this.modules.subscription.setLanguage(e),this.alignSizeAndBitRate(this.targetSubscription)}set textTrack(e){e!==this.textTrack&&(I(this,oe).forEach(t=>{if(t.label===e)t.mode="showing";else{if(t.mode==="showing"&&t.cues)for(const g of[...t.cues])t.removeCue(g);t.mode="hidden"}}),this.emitter.emit("text track",e))}get textTracks(){return I(this,oe).filter(e=>e.mode!=="disabled").map(e=>e.label)}get textTrack(){var e;return(e=I(this,oe).find(t=>t.mode==="showing"))==null?void 0:e.label}get channelId(){var e,t;return(t=(e=this.modules)==null?void 0:e.subscription.getTargetSubscription().channelId)!=null?t:this.options.get("channelId")}set channelId(e){if(e===this.channelId)return;this.modules.subscription.setChannelId(e);const t=this.options.get("media")==="audio"?[]:this.options.get("videoCodecs"),g=this.modules.renditions.getAudioRenditions(e),n=this.modules.renditions.getVideoRenditions(e),o=this.targetSubscription.audio.language,a=g==null?void 0:g.some(C=>C.language===o),B=t.find(C=>(n==null?void 0:n.find(Q=>Q.codec===C))!==void 0);B&&this.modules.subscription.setVideoCodec(B),this.logger.debug("Channel switch - started",{audioRenditions:g,targetSubscriptionLanguage:o,targetHasCurrentLanguage:a}),this.alignSizeAndBitRate(this.targetSubscription)}get maxSize(){var g,n;const{width:e,height:t}=(n=(g=this.modules.constraintCap.getCurrentConstraintCap())==null?void 0:g.video)!=null?n:qn();return{width:e,height:t}}set maxSize(e){this.modules.constraintCap.setUserSpecifiedCap({video:{width:e.width,height:e.height}}),this.alignSizeAndBitRate(this.targetSubscription)}get maxVideoBitRate(){var e,t;return(t=(e=this.modules.constraintCap.getCurrentConstraintCap())==null?void 0:e.video.bitRate)!=null?t:wt()}set maxVideoBitRate(e){this.modules.constraintCap.setUserSpecifiedCap({video:{bitRate:e}}),this.alignSizeAndBitRate(this.targetSubscription)}get maxAudioBitRate(){var e,t;return(t=(e=this.modules.constraintCap.getCurrentConstraintCap())==null?void 0:e.audio.bitRate)!=null?t:wt()}set maxAudioBitRate(e){this.modules.constraintCap.setUserSpecifiedCap({audio:{bitRate:e}}),this.alignSizeAndBitRate(this.targetSubscription)}get renditionLevels(){return this.modules.renditions.getRenditionLevels()}get currentRenditionLevel(){return this.modules.renditions.getRenditionLevel()}get targetRenditionLevel(){return this.modules.renditions.getRenditionLevel(this.modules.subscription.getTargetSubscription())}get isSwitchingRenditionLevel(){return this.modules.subscription.isSwitchingSubscription()}get videoBufferedRanges(){var e,t,g,n;return(n=(g=(e=this.modules.mseModule)==null?void 0:e.getBuffer("video"))!=null?g:(t=this.modules.decoder)==null?void 0:t.getBuffer("video"))!=null?n:[]}get audioBufferedRanges(){var e,t,g,n;return(n=(g=(e=this.modules.mseModule)==null?void 0:e.getBuffer("audio"))!=null?g:(t=this.modules.decoder)==null?void 0:t.getBuffer("audio"))!=null?n:[]}get videoKeyframeTimestamps(){var e,t,g,n;return(n=(g=(e=this.modules.mseModule)==null?void 0:e.getVideoKeyframeTimestamps())!=null?g:(t=this.modules.decoder)==null?void 0:t.getVideoKeyframeTimestamps())!=null?n:[]}getApiClient(){return this.modules.connection.apiClient}get lastBufferEvent(){return this.modules.playback.getLastBufferStateEvent()}get activeRatios(){return this.modules.qualityOfService.activeRatios()}get bufferingRatios(){return this.modules.qualityOfService.bufferingRatios()}get timeSpentBuffering(){return this.modules.qualityOfService.timeSpentBuffering()}get timeActive(){return this.modules.qualityOfService.timeActive()}get mediaElement(){return this.element}get audioNode(){var e;return(e=this.modules)!=null&&e.canvasModule?this.modules.canvasModule.audioNode:void 0}get drmStatistics(){var e;return(e=this.encryptedMediaExtensions)==null?void 0:e.getStatistics()}get uptime(){return Date.now()-this.createdAt}suspend(){this.isSuspended||(Object.values(this.modules).forEach(e=>{e&&"suspend"in e&&e.suspend()}),this.isSuspended=!0)}unsuspend(){this.isSuspended&&(Object.values(this.modules).forEach(e=>{e&&"unsuspend"in e&&e.unsuspend()}),this.isSuspended=!1)}alignSizeAndBitRate(e){const t=this.modules.constraintCap.constrainSubscription(V(f({},e),{video:f({},e.video),audio:f({},e.audio)})),g=this.modules.constraintCap.getUserSpecifiedCap();!this.abrEnabled&&g&&(t.audio.bitRate=g.audio.bitRate,t.video.bitRate=g.video.bitRate,t.video.width=g.video.width,t.video.height=g.video.height);const n=this.modules.renditions.getRenditionLevel(t);if(n){if(n.video&&(this.modules.subscription.setVideoBitRate(n.video.bitRate),this.modules.subscription.setSize(n.video)),n.audio)this.modules.subscription.setAudioBitRate(n.audio.bitRate),this.modules.subscription.setLanguage(n.audio.language);else if(t.audio.language){let o=this.modules.renditions.getAudioRenditions(t.channelId);!this.abrEnabled&&g&&(o=o==null?void 0:o.filter(h=>h.bitRate<g.audio.bitRate));const a=t.audio.language,B=o==null?void 0:o.some(h=>h.language===a),C=o==null?void 0:o.find(h=>h.language),Q=(o==null?void 0:o.length)&&o[0]||void 0;B||(C?(this.logger.debug("Randomizing language since target did not have current language"),this.modules.subscription.setAudioBitRate(C.bitRate),this.modules.subscription.setLanguage(C.language)):(this.logger.debug("Randomizing audio rendition since target did not have current language"),Q!=null&&Q.bitRate&&this.modules.subscription.setAudioBitRate(Q.bitRate),this.modules.subscription.setLanguage(Q==null?void 0:Q.language)))}}}get currentSubscription(){return this.modules.subscription.getCurrentSubscription()}get targetSubscription(){return this.modules.subscription.getTargetSubscription()}resolvedDecoder(e){return vm(this.options.get("decoders",e),this.browser.supportsMediaSource,this.options.get("drm"))}willUseMediaSource(){return this.resolvedDecoder()==="mse"}shouldUseWebCodecs(e){return this.resolvedDecoder(e)==="webcodecs"}isWebCodecsVideoAvailable(e){return this.shouldUseWebCodecs(e)&&typeof VideoDecoder!="undefined"}isWebCodecsAudioAvailable(e){return this.shouldUseWebCodecs(e)&&typeof AudioDecoder!="undefined"}shouldUseOffscreenCanvas(e){const t=this.options.get("offscreenCanvasEnabled",e);return t!==void 0?t:this.shouldUseWebCodecs(e)}};Zi=new WeakMap,oe=new WeakMap,Xi=new WeakMap,s(ct,"MAX_POOL_SIZE",10),s(ct,"DISCONNECT_TIMEOUT",15*1e3),s(ct,"REMOVE_CUE_THRESHOLD",1e3*10);let ko=ct;const KQ={bar:"_bar_qm7bl_1",hidden:"_hidden_qm7bl_47"},Jg={"channel-selection-item":"_channel-selection-item_suenn_1","channel-selection-item-selected":"_channel-selection-item-selected_suenn_8","channel-selection-item-image":"_channel-selection-item-image_suenn_13",withThumbnails:"_withThumbnails_suenn_19","hide-on-small":"_hide-on-small_suenn_27"},xm={"icon-button":"_icon-button_5fg7v_1"},TQ={enter:{viewBox:"-12 -12 38 38",content:`<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(-5.000000, -5.000000)">
|
|
51
51
|
<path d="M6,14 C5.45,14 5,14.45 5,15 L5,18 C5,18.55 5.45,19 6,19 L9,19 C9.55,19 10,18.55 10,18 C10,17.45 9.55,17 9,17 L7,17 L7,15 C7,14.45 6.55,14 6,14 Z M6,10 C6.55,10 7,9.55 7,9 L7,7 L9,7 C9.55,7 10,6.55 10,6 C10,5.45 9.55,5 9,5 L6,5 C5.45,5 5,5.45 5,6 L5,9 C5,9.55 5.45,10 6,10 Z M17,17 L15,17 C14.45,17 14,17.45 14,18 C14,18.55 14.45,19 15,19 L18,19 C18.55,19 19,18.55 19,18 L19,15 C19,14.45 18.55,14 18,14 C17.45,14 17,14.45 17,15 L17,17 Z M14,6 C14,6.55 14.45,7 15,7 L17,7 L17,9 C17,9.55 17.45,10 18,10 C18.55,10 19,9.55 19,9 L19,6 C19,5.45 18.55,5 18,5 L15,5 C14.45,5 14,5.45 14,6 Z" fill="white"></path>
|
|
52
52
|
</g>`},exit:{viewBox:"-12 -12 38 38",content:`<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(-5.000000, -5.000000)">
|
|
53
53
|
<path d="M6,16 L8,16 L8,18 C8,18.55 8.45,19 9,19 C9.55,19 10,18.55 10,18 L10,15 C10,14.45 9.55,14 9,14 L6,14 C5.45,14 5,14.45 5,15 C5,15.55 5.45,16 6,16 Z M8,8 L6,8 C5.45,8 5,8.45 5,9 C5,9.55 5.45,10 6,10 L9,10 C9.55,10 10,9.55 10,9 L10,6 C10,5.45 9.55,5 9,5 C8.45,5 8,5.45 8,6 L8,8 Z M15,19 C15.55,19 16,18.55 16,18 L16,16 L18,16 C18.55,16 19,15.55 19,15 C19,14.45 18.55,14 18,14 L15,14 C14.45,14 14,14.45 14,15 L14,18 C14,18.55 14.45,19 15,19 Z M16,8 L16,6 C16,5.45 15.55,5 15,5 C14.45,5 14,5.45 14,6 L14,9 C14,9.55 14.45,10 15,10 L18,10 C18.55,10 19,9.55 19,9 C19,8.45 18.55,8 18,8 L16,8 Z" fill="white"></path>
|
|
@@ -57,4 +57,4 @@ void main() {
|
|
|
57
57
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2" />
|
|
58
58
|
</g>`},unmute:{viewBox:"-10 -10 44 44",content:`<g fill="none" stroke="white">
|
|
59
59
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15.536 8.464a5 5 0 010 7.072m2.828-9.9a9 9 0 010 12.728M5.586 15H4a1 1 0 01-1-1v-4a1 1 0 011-1h1.586l4.707-4.707C10.923 3.663 12 4.109 12 5v14c0 .891-1.077 1.337-1.707.707L5.586 15z" />
|
|
60
|
-
</svg>`},pause:{viewBox:"-160 -160 832 832",content:'<path fill="white" d="M208,432H160a16,16,0,0,1-16-16V96a16,16,0,0,1,16-16h48a16,16,0,0,1,16,16V416A16,16,0,0,1,208,432Z"/><path fill="white" d="M352,432H304a16,16,0,0,1-16-16V96a16,16,0,0,1,16-16h48a16,16,0,0,1,16,16V416A16,16,0,0,1,352,432Z"/>'},play:{viewBox:"-6 -6 36 36",content:'<path d="M7 17.259V6.74104C7 5.96925 7.83721 5.48837 8.50387 5.87726L18.2596 11.5681C18.5904 11.761 18.5904 12.2389 18.2596 12.4319L8.50387 18.1227C7.83721 18.5116 7 18.0308 7 17.259Z" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>'},airPlay:{viewBox:"-8 -8 40 40",content:'<path fill="white" d="M12.8 13.4c-.1-.1-.1-.2-.2-.2c-.5-.3-1.1-.2-1.5.2l-4 6c0 .2-.1.4-.1.6c0 .6.4 1 1 1h8c.2 0 .4-.1.6-.2c.5-.3.6-.9.3-1.4zM19 3H5C3.3 3 2 4.3 2 6v9c0 1.7 1.3 3 3 3h.8c.6 0 1-.4 1-1s-.4-1-1-1H5c-.6 0-1-.4-1-1V6c0-.6.4-1 1-1h14c.6 0 1 .4 1 1v9c0 .6-.4 1-1 1h-.8c-.6 0-1 .4-1 1s.4 1 1 1h.8c1.7 0 3-1.3 3-3V6c0-1.7-1.3-3-3-3"/>'}},$u=_u["icon-button"];class ei extends N{constructor(t,e,g){super(document.createElement("div"));I(this,"iconElement");I(this,"setIcon",t=>{this.iconElement.setAttribute("viewBox",wr[t].viewBox),this.iconElement.innerHTML=wr[t].content});I(this,"isHidden",()=>this.element.style.display==="none");I(this,"setHidden",t=>t?this.hide():this.show());I(this,"show",()=>{this.element.style.display="block"});I(this,"hide",()=>{this.element.style.display="none"});this.element.style.cursor="pointer",this.element.setAttribute("role","button"),this.element.setAttribute("aria-label",t),this.iconElement=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.iconElement.setAttribute("width","40px"),this.iconElement.setAttribute("height","40px"),this.iconElement.setAttribute("class",$u),this.setIcon(e),this.element.addEventListener("click",g),this.element.appendChild(this.iconElement)}}const mo={list:"_list_1vkum_1","list-item":"_list-item_1vkum_12","list-item-disabled":"_list-item-disabled_1vkum_16",hidden:"_hidden_1vkum_20"},Dr=mo.hidden,Aw=mo.list,tw=mo["list-item"],ew=mo["list-item-disabled"];class iw extends N{constructor({items:t,onItemClick:e,classNames:g=[],maxHeight:B}){super(document.createElement("div"));I(this,"onItemClick");I(this,"updateItems",t=>{var e;for(;this.element.firstChild;)(e=this.element.lastChild)==null||e.remove();t.forEach(g=>{const B=document.createElement("div");g.disabled||B.addEventListener("click",()=>this.onItemClick(g)),B.className=[tw,g.disabled?ew:""].join(" "),B.appendChild(g.element()),this.element.appendChild(B)})});I(this,"hide",()=>this.element.classList.add(Dr));I(this,"show",()=>this.element.classList.remove(Dr));this.element.className=[Aw,...g].join(" "),this.onItemClick=e,this.updateItems(t),B&&(this.element.style.maxHeight=B)}}const xa={container:"_container_13xnz_1",hidden:"_hidden_13xnz_6",list:"_list_13xnz_10"},Iw=xa.list,mr=xa.hidden,gw=xa.container;class So extends N{constructor({label:t,items:e,onItemClick:g,iconButtonType:B,onToggle:o}){super(document.createElement("div"));I(this,"iconButton");I(this,"onItemClick");I(this,"onToggle");I(this,"maxHeight");I(this,"items");I(this,"list");I(this,"onButtonClick",()=>{this.toggleShowChannels(),this.onToggle(this)});I(this,"toggleShowChannels",()=>{this.list?this.hideList():this.showList()});I(this,"handleItemClick",t=>{this.toggleShowChannels(),this.onItemClick(t)});I(this,"showList",()=>{this.list=new iw({items:this.items,onItemClick:this.handleItemClick,classNames:[Iw],maxHeight:this.maxHeight}),this.list.attach(this.element)});I(this,"hideList",()=>{var t;(t=this.list)==null||t.detach(),this.list=void 0});I(this,"updateItems",t=>{var e;this.items=t,(e=this.list)==null||e.updateItems(t)});I(this,"isListVisible",()=>this.list!==void 0);I(this,"hide",()=>{this.element.classList.add(mr)});I(this,"show",()=>{this.element.classList.remove(mr)});this.element.className=gw,this.onItemClick=g,this.onToggle=o,this.items=e,this.iconButton=new ei(t,B,this.onButtonClick),this.iconButton.attach(this.element)}}const sw=bg["hide-on-small"],Bw=bg["channel-selection-item"],ow=bg["channel-selection-item-selected"],nw=bg["channel-selection-item-image"],aw=bg.withThumbnails;class Cw extends So{constructor({vindral:A,enabled:t,thumbnailsEnabled:e,thumbnailModule:g}){const B=()=>{const n=A.channels.map(a=>({channel:a,disabled:!a.isLive,element:()=>{const Q=document.createElement("div");if(Q.className=[Bw,a.channelId===A.channelId?ow:""].join(" "),g&&e){Q.classList.add(aw);const E=document.createElement("p");E.innerHTML=a.name,Q.appendChild(E);const h=g.getImageUrl(a),d=document.createElement("img");h&&(d.className=nw,d.src=h,Q.style.backgroundImage=`url(${h})`)}else Q.innerHTML=a.name;return Q}}));this.maxHeight=`calc(${Math.max(110,A.mediaElement.clientHeight)}px - 46px)`,this.updateItems(n),n.length>1&&t!=!1?this.show():this.hide()};A.on("channels",B);const o=n=>A.channelId=n.channel.channelId;super({label:"Channel List",items:[],onItemClick:o,onToggle:F,iconButtonType:"channels"}),this.element.classList.add(sw),this.hide()}}const Sr={"language-button-item":"_language-button-item_1dov5_1","language-button-item-selected":"_language-button-item-selected_1dov5_6"},Qw=Sr["language-button-item"],rw=Sr["language-button-item-selected"];class Ew extends So{constructor({vindral:A}){const t=()=>{const g=A.languages.map(B=>({language:B,disabled:!1,element:()=>{const o=document.createElement("div");return o.className=[Qw,B===A.language?rw:""].join(" "),o.innerHTML=B,o}}));this.maxHeight=`calc(${Math.max(110,A.mediaElement.clientHeight)}px - 46px)`,this.updateItems(g),g.length>0?this.show():this.hide()};A.on("languages",t);const e=g=>A.language=g.language;super({label:"Language",items:[],onItemClick:e,onToggle:F,iconButtonType:"languages"}),this.hide()}}class cw extends N{constructor({vindral:t}){super(document.createElement("div"));I(this,"vindral");I(this,"playButton");I(this,"updateState",()=>{this.playButton.setIcon(this.playIcon())});I(this,"onPlayClick",()=>{this.vindral.playbackState!=="paused"?this.vindral.pause():this.vindral.play(),this.playButton.setIcon(this.playIcon())});I(this,"playIcon",()=>this.vindral.playbackState==="paused"?"play":"pause");this.element.style.cursor="pointer",this.vindral=t,this.playButton=new ei("Play",this.playIcon(),this.onPlayClick),this.playButton.attach(this.element)}}const Lg={item:"_item_5vhyo_1","item-selected":"_item-selected_5vhyo_6",title:"_title_5vhyo_10","sub-title":"_sub-title_5vhyo_14","hide-on-small":"_hide-on-small_5vhyo_21"},hw=Lg["hide-on-small"],dw=Lg.item,lw=Lg["item-selected"],uw=Lg.title,ww=Lg["sub-title"];class Dw extends So{constructor({vindral:A}){const t=()=>{const g=A.renditionLevels.map(B=>({rendition:B,disabled:!1,element:()=>{var y,f,G;const o=document.createElement("div");o.className=[dw,B===A.currentRenditionLevel?lw:""].join(" ");const n=document.createElement("span"),a=document.createElement("span"),{audio:Q,video:E}=B,h=E?sc(E):void 0,d=Q?Bc(Q.sampleRate):void 0;let m=gc(((y=E==null?void 0:E.bitRate)!=null?y:0)+((f=Q==null?void 0:Q.bitRate)!=null?f:0));if(E){const b=E.frameRate[0]/E.frameRate[1],R=E.frameRate[0]%E.frameRate[1]===0?`${b}p`:`${b.toFixed(2)}p`;m+=`, ${R}`}return n.innerHTML=(G=h!=null?h:d)!=null?G:"",n.className=uw,a.innerHTML=m,a.className=ww,o.appendChild(n),o.appendChild(a),o}}));this.maxHeight=`calc(${Math.max(110,A.mediaElement.clientHeight)}px - 46px)`,this.updateItems(g)};A.on("rendition level",t),A.on("rendition levels",t);const e=({rendition:g})=>{g.audio&&(A.maxAudioBitRate=g.audio.bitRate),g.video&&(A.maxVideoBitRate=g.video.bitRate,A.maxSize=g.video)};super({label:"Rendition Levels",items:[],onItemClick:e,onToggle:F,iconButtonType:"levels"}),this.element.classList.add(hw)}}class mw extends N{constructor(){super(document.createElement("div")),this.element.style.flexGrow="1"}}const yr={"text-track-button-item":"_text-track-button-item_1ry10_1","text-track-button-item-selected":"_text-track-button-item-selected_1ry10_6"},fr=yr["text-track-button-item"],pr=yr["text-track-button-item-selected"];class Sw extends So{constructor({vindral:A}){const t=()=>{const g=A.textTracks.map(B=>({textTrack:B,disabled:!1,element:()=>{const o=document.createElement("div");return o.className=[fr,B===A.textTrack?pr:""].join(" "),o.innerHTML=B,o}}));g.length>0?(g.push({textTrack:void 0,disabled:!1,element:()=>{const B=document.createElement("div");return B.className=[fr,A.textTrack===void 0?pr:""].join(" "),B.innerHTML="Off",B}}),this.show()):this.hide(),this.maxHeight=`calc(${Math.max(110,A.mediaElement.clientHeight)}px - 46px)`,this.updateItems(g)};A.on("text tracks",t);const e=g=>A.textTrack=g.textTrack;super({label:"Text Tracks",items:[],onItemClick:e,onToggle:F,iconButtonType:"textTracks"}),this.hide()}}class yw extends N{constructor({vindral:t}){super(document.createElement("div"));I(this,"vindral");I(this,"muteButton");I(this,"updateState",()=>{this.muteButton.setIcon(this.muteIcon())});I(this,"onMuteClick",()=>{this.vindral.muted=!this.vindral.muted,this.muteButton.setIcon(this.muteIcon())});I(this,"muteIcon",()=>this.vindral.muted?"mute":"unmute");this.element.style.cursor="pointer",this.vindral=t,this.muteButton=new ei("Mute",this.muteIcon(),this.onMuteClick),this.muteButton.attach(this.element)}}const yo=ur.hidden,fw=ur.bar;class pw extends N{constructor({vindral:t,onFullscreenClicked:e,onOneToOneClicked:g,onPipClicked:B,onAirPlayClicked:o,pauseButtonEnabled:n,fullscreenButtonEnabled:a,pipButtonEnabled:Q,channelSelectionEnabled:E,channelSelectionThumbnails:h,renditionLevelsEnabled:d,languagesButtonEnabled:m,textTracksButtonEnabled:y,oneToOneButtonEnabled:f,thumbnailModule:G}){super(document.createElement("div"));I(this,"items",[]);I(this,"isMouseInElement",!1);I(this,"volumeControls");I(this,"playControls");I(this,"oneToOneButton");I(this,"fullscreenButton");I(this,"airPlayButton");I(this,"containerElement");I(this,"hideLists",()=>{this.items.forEach(t=>"hideList"in t&&t.hideList())});I(this,"listButtons",()=>this.items);I(this,"isAnyListOpen",()=>this.items.filter(t=>"isListVisible"in t&&t.isListVisible()).length>0);I(this,"hasFocus",()=>this.isMouseInElement||this.isAnyListOpen());I(this,"isHidden",()=>this.element.classList.contains(yo));I(this,"hide",()=>{this.containerElement.style.setProperty("--vindral-control-bar-offset","0px"),this.element.classList.add(yo)});I(this,"show",()=>{this.containerElement.style.setProperty("--vindral-control-bar-offset","-96px"),this.element.classList.remove(yo)});I(this,"addCastButton",()=>{const t=document.createElement("google-cast-launcher");this.element.insertBefore(t,this.element.lastChild)});I(this,"addAirPlayButton",()=>{this.airPlayButton.attachBefore(this.element,this.element.lastChild)});I(this,"updateState",()=>{this.playControls.updateState(),this.volumeControls.updateState()});I(this,"onToggle",t=>{this.listButtons().filter(e=>t!==e).forEach(e=>"hideList"in e&&e.hideList())});this.element.className=[fw,yo].join(" ");const b=new mw;this.oneToOneButton=new ei("One to One","oneToOne",g),this.fullscreenButton=new ei("Fullscreen","enter",e),this.airPlayButton=new ei("AirPlay","airPlay",o);const R=new ei("Picture in Picture","pip",B),v=new Cw({vindral:t,enabled:E,thumbnailsEnabled:h,thumbnailModule:h?G:void 0}),P=new Dw({vindral:t});this.volumeControls=new yw({vindral:t}),this.playControls=new cw({vindral:t}),this.containerElement=t.mediaElement,n&&t.getOptions().pauseSupportEnabled&&this.playControls.attach(this.element),t.getOptions().media!=="video"&&this.volumeControls.attach(this.element),b.attach(this.element);const _=[];if(m){const T=new Ew({vindral:t});T.attach(this.element),_.push(T)}if(y){const T=new Sw({vindral:t});T.attach(this.element),_.push(T)}P.attach(this.element),v.attach(this.element),R.attach(this.element),this.oneToOneButton.attach(this.element),this.fullscreenButton.attach(this.element),this.items.push(b,..._,P,v,R,this.fullscreenButton),this.items.forEach(T=>"onToggle"in T&&(T.onToggle=this.onToggle)),f||this.oneToOneButton.hide(),a||this.fullscreenButton.hide(),Q||R.hide(),E||v.hide(),d||P.hide(),navigator.maxTouchPoints<1&&(this.element.addEventListener("mouseenter",()=>this.isMouseInElement=!0),this.element.addEventListener("mouseleave",()=>this.isMouseInElement=!1))}}const Fr={castoverlay:"_castoverlay_1n91l_1",hidden:"_hidden_1n91l_20"},Wa=Fr.hidden,Fw=Fr.castoverlay;class kw extends N{constructor(){super(document.createElement("div"));I(this,"onClick");I(this,"setText",t=>{this.element.innerText=t});I(this,"hide",()=>this.element.classList.add(Wa));I(this,"show",()=>this.element.classList.remove(Wa));this.element.classList.add(Fw),this.element.classList.add(Wa),this.element.innerText="device"}}const Jg={button:"_button_4ybkq_21",image:"_image_4ybkq_98",overlay:"_overlay_4ybkq_118",selected:"_selected_4ybkq_136",hidden:"_hidden_4ybkq_141"},Gw=Jg.button,Oa=Jg.hidden,Rw=Jg.overlay,kr=Jg.image,Gr=Jg.selected;class Uw extends N{constructor({title:t,onClick:e,imageUrl:g,selected:B}){super(document.createElement("button"));I(this,"overlay");I(this,"imageHolder1");I(this,"imageHolder2");I(this,"isImageHolder1Active",!1);I(this,"loadingOverlay");I(this,"transition",(t,e,g)=>{e.style.backgroundImage=`url(${g})`,e.style.opacity="1",t.style.opacity="0"});I(this,"setSelected",t=>{t?this.element.classList.add(Gr):this.element.classList.remove(Gr)});I(this,"setAnimationDelay",t=>{this.element.style.animationDelay=t});I(this,"hideLoading",()=>{this.loadingOverlay.hide()});I(this,"isHidden",()=>this.element.classList.contains(Oa));I(this,"setHidden",t=>t?this.hide():this.show());I(this,"hide",()=>this.element.classList.add(Oa));I(this,"show",()=>this.element.classList.remove(Oa));this.element.className=Gw,B&&this.setSelected(B),this.element.onclick=()=>{this.loadingOverlay.show(),e()},this.imageHolder1=document.createElement("div"),this.imageHolder1.className=kr,this.imageHolder1.style.animationFillMode="forwards",this.imageHolder2=document.createElement("div"),this.imageHolder2.className=kr,this.imageHolder2.style.animationFillMode="forwards",g&&(this.imageHolder1.style.backgroundImage=`url(${g})`,this.isImageHolder1Active=!0),this.loadingOverlay=new nA,this.loadingOverlay.attach(this.element),this.loadingOverlay.hide(),this.element.appendChild(this.imageHolder1),this.element.appendChild(this.imageHolder2),this.overlay=document.createElement("div"),this.overlay.className=Rw,this.element.appendChild(this.overlay);const o=document.createElement("span");o.innerHTML=t,this.element.appendChild(o),this.show()}setImageUrl(t){if(t){if(!this.imageHolder1.style.backgroundImage){this.imageHolder1.style.backgroundImage=`url(${t})`,this.isImageHolder1Active=!0;return}this.isImageHolder1Active?this.transition(this.imageHolder1,this.imageHolder2,t):this.transition(this.imageHolder2,this.imageHolder1,t),this.isImageHolder1Active=!this.isImageHolder1Active}}}const Rr={container:"_container_btpgd_13",hidden:"_hidden_btpgd_37"},Va=Rr.hidden,Nw=Rr.container;class bw extends N{constructor({vindral:t,thumbnailModule:e}){var g;super(document.createElement("div"));I(this,"thumbnailModule");I(this,"list");I(this,"vindral");I(this,"setSelected",t=>{this.list.forEach((e,g)=>{e.setSelected(g.channelId===t.channelId)}),t.channelId!==this.vindral.channelId&&(this.vindral.channelId=t.channelId)});I(this,"isHidden",()=>this.element.classList.contains(Va));I(this,"setHidden",t=>t?this.hide():this.show());I(this,"hide",()=>this.element.classList.add(Va));I(this,"show",()=>this.element.classList.remove(Va));this.thumbnailModule=e,this.list=new Map,this.vindral=t,this.vindral.on("context switch",B=>{if(B==="completed"){this.list.forEach(n=>n.hideLoading());const o=this.vindral.channelId;this.vindral.channels.forEach(n=>{var a;(a=this.list.get(n))==null||a.setSelected(n.channelId===o)})}}),this.vindral.on("channels",()=>{this.list.forEach(o=>o.detach()),this.list.clear();const B=this.vindral.channelId;this.vindral.channels.forEach((o,n)=>{var Q;if(!o.isLive)return;const a=new Uw({title:o.name,onClick:()=>{this.setSelected(o)},imageUrl:(Q=this.thumbnailModule)==null?void 0:Q.getImageUrl(o),selected:o.channelId===B});a.setAnimationDelay(`${n*.05}s`),this.list.set(o,a)}),this.list.forEach(o=>o.attach(this.element))}),(g=this.thumbnailModule)==null||g.on("updatedImages",()=>{this.list.forEach((B,o)=>{var n;B.setImageUrl((n=this.thumbnailModule)==null?void 0:n.getImageUrl(o))})}),this.element.className=Nw,this.show()}}const Za={fullscreen:"_fullscreen_1v9d8_1"}.fullscreen,yn=class yn extends st{constructor(t){super();C(this,ug);I(this,"container");I(this,"unload",()=>{document.removeEventListener("webkitfullscreenchange",this.onChange),document.removeEventListener("mozfullscreenchange",this.onChange),document.removeEventListener("fullscreenchange",this.onChange),this.container.removeEventListener("webkitendfullscreen",this.onChange)});I(this,"request",()=>l(this,ug,xE).call(this).catch(t=>{throw this.onChange(),t}));I(this,"exit",()=>l(this,ug,WE).call(this).catch(t=>{throw this.onChange(),t}));I(this,"onChange",()=>this.emit("on fullscreen change",this.isFullscreen()));I(this,"isFullscreen",()=>!!(document.fullscreenElement||document.fullscreen||document.mozFullScreen||document.webkitIsFullScreen||this.container.classList.contains(Za)));I(this,"isSupported",()=>yn.isFullscreenApiSupported(this.container)||!this.isInIframe());I(this,"isInIframe",()=>window.location!==window.parent.location);this.container=t,document.addEventListener("webkitfullscreenchange",this.onChange),document.addEventListener("mozfullscreenchange",this.onChange),document.addEventListener("fullscreenchange",this.onChange),this.container.addEventListener("webkitendfullscreen",this.onChange)}};ug=new WeakSet,xE=function(){return this.container.requestFullscreen?this.container.requestFullscreen():this.container.webkitRequestFullscreen?this.container.webkitRequestFullscreen():this.container.webkitEnterFullscreen?this.container.webkitEnterFullscreen():this.container.mozRequestFullScreen?this.container.mozRequestFullScreen():(this.container.classList.add(Za),Promise.resolve())},WE=function(){return document.exitFullscreen?document.exitFullscreen():document.webkitFullscreenElement&&document.webkitExitFullscreen?document.webkitExitFullscreen():document.mozFullscreenElement&&document.mozCancelFullScreen?document.mozCancelFullScreen():this.container.webkitExitFullscreen?this.container.webkitExitFullscreen():(this.container.classList.remove(Za),Promise.resolve())},I(yn,"isFullscreenApiSupported",t=>(t.requestFullscreen||t.webkitRequestFullscreen||t.webkitEnterFullscreen||t.mozRequestFullScreen)!==void 0);let Mg=yn;const Xa={player:"_player_j1uto_1","one-to-one":"_one-to-one_j1uto_19","audio-only":"_audio-only_j1uto_28"},ja={playoverlay:"_playoverlay_1niji_1",hidden:"_hidden_1niji_17","playoverlay-indicator":"_playoverlay-indicator_1niji_23"},fo=ja.hidden,Lw=ja.playoverlay,Jw=ja["playoverlay-indicator"];class Mw extends N{constructor(){super(document.createElement("div"));I(this,"onClick");I(this,"indicator",document.createElement("div"));I(this,"isHidden",()=>this.element.classList.contains(fo));I(this,"setHidden",t=>t?this.hide():this.show());I(this,"hide",()=>this.element.classList.add(fo));I(this,"show",()=>this.element.classList.remove(fo));this.element.classList.add(Lw),this.element.classList.add(fo),this.indicator.className=Jw,this.element.appendChild(this.indicator),this.element.onclick=()=>{this.onClick&&this.onClick()}}}class Hw extends st{constructor({vindral:t,refreshEveryMs:e}){super();I(this,"thumbnails",new Map);I(this,"interval");I(this,"channels");I(this,"refreshEveryMs");I(this,"isFetching",!1);I(this,"hasFetched",!1);this.channels=[...t.channels],this.refreshEveryMs=e||6e4,t.on("channels",()=>{this.channels=[...t.channels],this.hasFetched||this.refreshThumbnails()})}start(){this.interval||(this.interval=window.setInterval(()=>{this.refreshThumbnails()},this.refreshEveryMs))}stop(){window.clearInterval(this.interval)}getImageUrl(t){return this.thumbnails.get(t.channelId)}refreshThumbnails(){return c(this,null,function*(){if(!this.isFetching){this.isFetching=!0;try{const t=this.channels.map(e=>c(this,null,function*(){const g=e.thumbnailUrls.length<2?0:Math.ceil(e.thumbnailUrls.length/2),B=e.thumbnailUrls[g];if(B){const o=yield fetch(B);if(o.ok){const n=yield o.blob(),a=URL.createObjectURL(n),Q=this.thumbnails.get(e.channelId);Q&&Q.startsWith("blob:")&&URL.revokeObjectURL(Q),this.thumbnails.set(e.channelId,a)}}}));yield Promise.all(t),this.emit("updatedImages")}catch(t){console.warn("Error fetching thumbnails",t)}this.isFetching=!1,this.hasFetched=!0}})}}const vw=Xa.player,za=Xa["one-to-one"],qw=Xa["audio-only"],Kw={controlsEnabled:!0,castEnabled:!0,channelSelectionEnabled:!0,renditionLevelsEnabled:!1,languagesButtonEnabled:!0,textTracksButtonEnabled:!0,oneToOneButtonEnabled:!1,iosWakeLockEnabled:!0,hideTimeout:2e3,pauseButtonEnabled:!0,airPlayButtonEnabled:!1,playOverlayEnabled:!0,bufferingOverlayEnabled:!0},Yw=i=>!lr(i);class Tw{constructor(A,t){I(this,"core");I(this,"castSender");I(this,"airPlaySender");I(this,"options");I(this,"state");I(this,"playerElement",document.createElement("div"));I(this,"bufferingOverlay");I(this,"playOverlay");I(this,"castOverlay",new kw);I(this,"channelSelectionList");I(this,"bar");I(this,"stateInterval");I(this,"thumbnailModule");I(this,"browser",Ln());I(this,"unload",()=>{var A,t;this.stateInterval&&window.clearInterval(this.stateInterval),this.core.unload(),this.playerElement.remove(),(A=this.thumbnailModule)==null||A.stop(),(t=this.airPlaySender)==null||t.unload()});I(this,"attach",A=>{this.stateInterval&&window.clearInterval(this.stateInterval),this.stateInterval=window.setInterval(this.checkState,100),this.playerElement.remove(),A.appendChild(this.playerElement)});I(this,"setupCastSender",()=>c(this,null,function*(){if(this.options.castEnabled){try{yield this.castSender.init()}catch(A){return}this.castSender.on("connected",()=>{this.state.fullscreen.isFullscreen()&&this.exitFullscreen(),this.core.pause(),this.castOverlay.setText(`Casting to ${this.castSender.getReceiverName()||"device"}`),this.castOverlay.show()}),this.castSender.on("disconnected",()=>{document.hidden||this.core.play(),this.castOverlay.hide()}),this.bar.addCastButton()}}));I(this,"setupAirPlaySender",A=>{A.once("available",()=>{this.bar.addAirPlayButton()}),A.on("connected",()=>{this.core.mediaElement.style.display="hidden",this.core.pause()}),A.on("disconnected",()=>{this.core.mediaElement.style.display="block",document.hidden||this.core.play()})});I(this,"onMouseMove",()=>{this.options.controlsEnabled&&(this.bumpInteractTime(),this.bar.isHidden()&&this.bar.show())});I(this,"onClick",A=>{const t=A.detail===2&&(A.target instanceof HTMLVideoElement||A.target instanceof HTMLCanvasElement),e=this.options.fullscreenButtonEnabled!==!1&&this.options.controlsEnabled!==!1;t&&e&&this.toggleFullscreen().catch(g=>{console.error("error",g)})});I(this,"togglePip",()=>this.core.pictureInPicture.isActive()?this.core.pictureInPicture.exit():(this.triggerUserInput(),this.core.pictureInPicture.enter()));I(this,"toggleFullscreen",()=>c(this,null,function*(){return this.isInFullscreen()?this.exitFullscreen():this.enterFullscreen()}));I(this,"triggerUserInput",()=>{if(this.browser.platform.isIOS){const A=this.core.muted;this.core.muted=!A,this.core.muted=A}});I(this,"toggleOneToOne",()=>{this.playerElement.classList.contains(za)?this.playerElement.classList.remove(za):this.playerElement.classList.add(za)});I(this,"isInFullscreen",()=>this.state.fullscreen.isFullscreen());I(this,"enterFullscreen",()=>c(this,null,function*(){this.triggerUserInput(),this.iosHackResetSize(),this.bar.fullscreenButton.setIcon("exit"),yield this.state.fullscreen.request(),this.lockOrientation()}));I(this,"exitFullscreen",()=>(this.bar.fullscreenButton.setIcon("enter"),this.unlockOrientation(),this.state.fullscreen.exit()));I(this,"showAirPlayPicker",()=>{var A;(A=this.airPlaySender)==null||A.showPlaybackTargetPicker()});I(this,"lockOrientation",()=>{var t,e;if(!("orientation"in screen)||!screen.orientation.lock)return;const A=this.core.currentRenditionLevel;A!=null&&A.video&&screen.orientation.lock(((t=A==null?void 0:A.video)==null?void 0:t.width)>((e=A==null?void 0:A.video)==null?void 0:e.height)?"landscape-primary":"portrait-primary").catch(()=>{})});I(this,"unlockOrientation",()=>{!("orientation"in screen)||!screen.orientation.unlock||screen.orientation.unlock()});I(this,"checkState",()=>{this.bar.hasFocus()||this.state.lastInteractionTime&&this.state.lastInteractionTime<=Date.now()-this.options.hideTimeout&&this.core.media!=="audio"&&this.core.playbackState!=="paused"&&this.bar.hide()});I(this,"needsThumbnails",()=>{var A,t,e,g,B,o;return(t=(A=this.options.channelSelectionOptions)==null?void 0:A.barButton)!=null&&t.enabled&&((g=(e=this.options.channelSelectionOptions)==null?void 0:e.barButton)!=null&&g.thumbnails)?!0:!!((o=(B=this.options.channelSelectionOptions)==null?void 0:B.list)!=null&&o.enabled)});I(this,"bumpInteractTime",()=>{this.state.lastInteractionTime=Date.now()});var a,Q,E,h,d,m,y;const e=D(D({},Kw),t);this.options=e,this.playerElement.className=vw,Yw(A)?this.core=A:this.core=new Do(A);const g=!Mg.isFullscreenApiSupported(this.playerElement)&&Mg.isFullscreenApiSupported(this.core.mediaElement)?this.core.mediaElement:this.playerElement;this.state={isBuffering:!1,fullscreen:new Mg(g),lastInteractionTime:0},this.needsThumbnails()&&(this.thumbnailModule=new Hw({vindral:this.core,refreshEveryMs:t==null?void 0:t.thumbnailUpdateInterval}),this.thumbnailModule.start()),(Q=(a=this.options.channelSelectionOptions)==null?void 0:a.list)!=null&&Q.enabled&&(this.channelSelectionList=new bw({vindral:this.core,thumbnailModule:this.thumbnailModule}));const B=(t==null?void 0:t.channelSelectionEnabled)||((h=(E=t==null?void 0:t.channelSelectionOptions)==null?void 0:E.barButton)==null?void 0:h.enabled),o=(m=(d=t==null?void 0:t.channelSelectionOptions)==null?void 0:d.barButton)==null?void 0:m.thumbnails;this.bar=new pw(z(D({vindral:this.core,thumbnailModule:this.thumbnailModule},e),{channelSelectionEnabled:B,channelSelectionThumbnails:o,fullscreenButtonEnabled:this.core.media!=="audio"&&(t==null?void 0:t.fullscreenButtonEnabled)&&this.state.fullscreen.isSupported(),oneToOneButtonEnabled:this.core.media!=="audio"&&(t==null?void 0:t.oneToOneButtonEnabled),pipButtonEnabled:(t==null?void 0:t.pipButtonEnabled)&&this.core.pictureInPicture.isSupported(),onFullscreenClicked:()=>{this.toggleFullscreen().catch(f=>console.error("error",f))},onOneToOneClicked:()=>this.toggleOneToOne(),onPipClicked:()=>{this.togglePip().catch(f=>console.error("error",f))},onAirPlayClicked:()=>this.showAirPlayPicker()})),this.core.media==="audio"&&(this.playerElement.classList.add(qw),this.options.controlsEnabled&&this.bar.show());const n=this.core.getCastOptions();this.castSender=new YC({background:this.options.castBackground,receiverApplicationId:this.options.castReceiverApplicationId,options:n}),this.setupCastSender(),this.options.airPlayButtonEnabled&&KC.isAirPlaySupported()&&(this.airPlaySender=new KC({url:n.url,channelId:n.channelId,authenticationToken:n.authenticationToken,container:this.playerElement}),this.setupAirPlaySender(this.airPlaySender)),this.core.on("needs user input",f=>{var G;if(this.bar.updateState(),f.forVideo&&this.core.media!=="audio"||!this.options.controlsEnabled){(G=this.playOverlay)==null||G.show();return}f.forAudio&&this.options.controlsEnabled&&(this.state.lastInteractionTime=0,this.bar.show())}),this.core.on("volume state",()=>{this.bar.updateState()}),this.core.on("playback state",f=>{var G,b,R,v,P,_;switch(this.bar.updateState(),f){case"paused":this.bumpInteractTime(),(G=this.bufferingOverlay)==null||G.hide(),this.options.controlsEnabled&&this.bar.show(),(this.core.media!=="audio"||!this.options.controlsEnabled)&&((b=this.playOverlay)==null||b.show());break;case"playing":this.options.controlsEnabled&&((R=this.playOverlay)==null||R.hide()),(v=this.bufferingOverlay)==null||v.hide(),this.castOverlay.hide();break;case"buffering":{(P=this.bufferingOverlay)==null||P.show();const T=this.core.videoBufferedRanges[this.core.videoBufferedRanges.length-1],kA=!T||T.start>this.core.currentTime;(_=this.bufferingOverlay)==null||_.fullscreen(kA);break}}}),this.core.attach(this.playerElement),this.castOverlay.attach(this.playerElement),this.options.bufferingOverlayEnabled&&(this.bufferingOverlay=new nA,this.bufferingOverlay.attach(this.playerElement)),this.options.playOverlayEnabled&&(this.playOverlay=new Mw,this.playOverlay.attach(this.playerElement),this.playOverlay.onClick=()=>{var f;this.core.userInput(),(f=this.playOverlay)==null||f.hide()}),this.channelSelectionList&&this.channelSelectionList.attach(this.playerElement),this.bar.attach(this.playerElement),this.playerElement.addEventListener("click",this.onClick),this.playerElement.addEventListener("mousemove",this.onMouseMove),this.state.fullscreen.on("on fullscreen change",f=>{f?this.bar.fullscreenButton.setIcon("exit"):this.bar.fullscreenButton.setIcon("enter")}),(y=this.bufferingOverlay)==null||y.fullscreen(!0)}iosHackResetSize(){this.core.emitter.emit("ios-hack: reset size")}}var Pw=(function(){var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return(function(A){A=A||{};var t;t||(t=typeof A!="undefined"?A:{});var e,g;t.ready=new Promise(function(U,M){e=U,g=M});var B={},o;for(o in t)t.hasOwnProperty(o)&&(B[o]=t[o]);var n="";typeof document!="undefined"&&document.currentScript&&(n=document.currentScript.src),i&&(n=i),n.indexOf("blob:")!==0?n=n.substr(0,n.lastIndexOf("/")+1):n="";var a=t.print||console.log.bind(console),Q=t.printErr||console.warn.bind(console);for(o in B)B.hasOwnProperty(o)&&(t[o]=B[o]);B=null;var E;t.wasmBinary&&(E=t.wasmBinary),t.noExitRuntime,typeof WebAssembly!="object"&&kA("no native wasm support detected");var h,d=!1,m=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,y,f,G,b=[],R=[],v=[];function P(){var U=t.preRun.shift();b.unshift(U)}var _=0,T=null;t.preloadedImages={},t.preloadedAudios={};function kA(U){throw t.onAbort&&t.onAbort(U),Q(U),d=!0,U=new WebAssembly.RuntimeError("abort("+U+"). Build with -s ASSERTIONS=1 for more info."),g(U),U}function aA(U){return U.startsWith("data:application/octet-stream;base64,")}var mA="data:application/octet-stream;base64,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cSELA0AgUCAJQQJ0IgJqIgEgWCABKgIAkiJVIAIgEWoqAgAiVCBUIFVeGzgCACBQIAJBBHIiAmoiASBYIAEqAgCSIlUgAiARaioCACJUIFQgVV4bOAIAIAlBAmohCSALQQJrIgsNAAsLIARFDQAgUCAJQQJ0IgJqIgEgWCABKgIAkiJVIAIgEWoqAgAiVCBUIFVeGzgCAAsCQCAAQQFIDQAgAEEDcSEEQQAhCSAAQQFrQQNPBEAgAEF8cSEHA0AgESAJQQJ0IgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIBEgAkEEciIBakEANgIAIAEgK2pBgICAj3w2AgAgASAlakGAgICPfDYCACARIAJBCHIiAWpBADYCACABICtqQYCAgI98NgIAIAEgJWpBgICAj3w2AgAgESACQQxyIgFqQQA2AgAgASArakGAgICPfDYCACABICVqQYCAgI98NgIAIAlBBGohCSAHQQRrIgcNAAsLIARFDQADQCARIAlBAnQiAWpBADYCACABICtqQYCAgI98NgIAIAEgJWpBgICAj3w2AgAgCUEBaiEJIARBAWsiBA0ACwsCQCAXIB1OIgENACAdIBciCWtBA3EiCwRAA0AgESAJQQJ0IgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIAlBAWohCSALQQFrIgsNAAsLIB0gF0F/c2pBA0kNAANAIBEgCUECdCIEakEANgIAIAQgK2pBgICAj3w2AgAgBCAlakGAgICPfDYCACARIARBBGoiAmpBADYCACACICtqQYCAgI98NgIAIAIgJWpBgICAj3w2AgAgESAEQQhqIgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIBEgBEEMaiICakEANgIAIAIgK2pBgICAj3w2AgAgAiAlakGAgICPfDYCACAJQQRqIgkgHUcNAAsLAkAgAEEBSA0AQQAhCSAAQQFHBEAgAEF+cSELA0AgESAJIB1qQQJ0IgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIBEgCUEBciAdakECdCICakEANgIAIAIgK2pBgICAj3w2AgAgAiAlakGAgICPfDYCACAJQQJqIQkgC0ECayILDQALCyAAQQFxRQ0AIBEgCSAdakECdCIA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7xAdLz1MWmp3hZOhsMHR4PAPFSMyPUlWYW53gY2vxtrtSQ5tC20LbQttC20LbQttC20LbQttC20LkwuTC20LHguQDA0MnAvwC/ALwgvCC8ILkwuTC8ILnAtICx4LHgumClAPrg+lC4cMhwx2C/ALHgsyDKwMbQseCzwK+QncCm0LvA19DMILHwzLC0gLbQttC20LbQtIC0gLSAtIC0gLwQq+E74Tdgv1DTkN8AsNDOkKWAxYDJwLHgvRCewJwQpIC0wRNRCMCsEKnAvCC20LHgulC8sLbQttC20LbQtIC6YKJA7LC5wL8AvwCzkL9grwC5AM5wulC9sM2wylC+4MrwtrFJYT7AkKDcYNOQ19DBYMMA2lC4wKVwp/CukKHgtxCtkTNhQHEkwRnAlRC+cLhwxhDH8KtApICx4L6QoeC4wKMgxIC5MLbQttC20LbQuTC5MLkwuTC20LbQuTC5MLkwtqEIcMpQsfDMILSAtIC20LnAs5C2QLywucC8ILfQw5C7AOsA6sDB8MpQtIC20LSAucC3YL6QrpCh4LSAtIC2QKDg+uD4cMMgysDHYL5wuTC5MLDQweC+kK6QrpCukKFAoFD/APHQ28DRYMtArCC3YLMgwNDB4LHgtXClcKHgv2ChsUHhOZDAUPcQ1hDFELVQ17DYwKFApxCrQKHgv2CsEKDRDNDtsMWAxtC0gLSAttC+kKtArpCrQK6QoeC0gL9grZE74T5wvZDawM8AsNDIALHwxRC7QKtAq0Ch4L6Qo8CtUQ1RAsC98JhwwwDTANAwwDDDAN8AseC1cKFAqmCsEK8AtkC/YKSAu0Cn8KUQsfDE4MTgyQDGEM8AvCC5MLHgsXESoPbQtICx4LSAseCx4LSAtIC0gLHgtIC20LSAseC6ULZAtkC6ULpQvwCzIMkAxODPALwgucC5wLnAttC7QKhRA1EO4MEw1tC5MLSAulC6ULHgvpCrQKHgseCx4L6QrwD64PHwzCC20LbQttC0gLbQttCx4LHgseC+kKSAvcCgcS3xFhDHENhwylC1EL3gsyDLQKfwp/Cn8KtArpCowKNRCtEM0OSQ6mCtwKSAtIC8ILnAttCx4Lfwp/CukKSAt3EOINwQoeCx4LSAtIC0gLbQttC0gLbQttC20LkwtICzYUORPVCGgNzQ6XDRMNHgvuDJcNTgxRC5wJtwnBCm0Lew1l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OiBxbiA8PSAyNTYAYXNzZXJ0aW9uIGZhaWxlZDogeCAhPSB5AGNlbHQvY2VsdF9scGMuYwBhc3NlcnRpb24gZmFpbGVkOiAob3JkJjMpPT0wAGFzc2VydGlvbiBmYWlsZWQ6IG4+MABhc3NlcnRpb24gZmFpbGVkOiBvdmVybGFwPj0wAGFzc2VydGlvbiBmYWlsZWQ6IGxlbj49MwAuL2NlbHQvcGl0Y2guaABhc3NlcnRpb24gZmFpbGVkOiBtYXhfcGl0Y2g+MABjZWx0L3BpdGNoLmMAYXNzZXJ0aW9uIGZhaWxlZDogbGVuPjAAYXNzZXJ0aW9uIGZhaWxlZDogbGVuPj0zAC4vY2VsdC9waXRjaC5oAGNlbHQva2lzc19mZnQuYwBhc3NlcnRpb24gZmFpbGVkOiBtPT00AGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5tb2RlID09IG9wdXNfY3VzdG9tX21vZGVfY3JlYXRlKDQ4MDAwLCA5NjAsIE5VTEwpAGNlbHQvY2VsdF9kZWNvZGVyLmMAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPm92ZXJsYXAgPT0gMTIwAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5lbmQgPD0gMjEAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPmNoYW5uZWxzID09IDEgfHwgc3QtPmNoYW5uZWxzID09IDIAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnN0cmVhbV9jaGFubmVscyA9PSAxIHx8IHN0LT5zdHJlYW1fY2hhbm5lbHMgPT0gMgBhc3NlcnRpb24gZmFpbGVkOiBzdC0+ZG93bnNhbXBsZSA+IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnN0YXJ0ID09IDAgfHwgc3QtPnN0YXJ0ID09IDE3AGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5zdGFydCA8IHN0LT5lbmQAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPmFyY2ggPj0gMABhc3NlcnRpb24gZmFpbGVkOiBzdC0+YXJjaCA8PSBPUFVTX0FSQ0hNQVNLAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5sYXN0X3BpdGNoX2luZGV4IDw9IFBMQ19QSVRDSF9MQUdfTUFYAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5sYXN0X3BpdGNoX2luZGV4ID49IFBMQ19QSVRDSF9MQUdfTUlOIHx8IHN0LT5sYXN0X3BpdGNoX2luZGV4ID09IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfcGVyaW9kIDwgTUFYX1BFUklPRABhc3NlcnRpb24gZmFpbGVkOiBzdC0+cG9zdGZpbHRlcl9wZXJpb2QgPj0gQ09NQkZJTFRFUl9NSU5QRVJJT0QgfHwgc3QtPnBvc3RmaWx0ZXJfcGVyaW9kID09IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfcGVyaW9kX29sZCA8IE1BWF9QRVJJT0QAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfcGVyaW9kX29sZCA+PSBDT01CRklMVEVSX01JTlBFUklPRCB8fCBzdC0+cG9zdGZpbHRlcl9wZXJpb2Rfb2xkID09IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfdGFwc2V0IDw9IDIAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfdGFwc2V0ID49IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfdGFwc2V0X29sZCA8PSAyAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5wb3N0ZmlsdGVyX3RhcHNldF9vbGQgPj0gMAACAQAZFwIAfnx3bVcpEwkEAgBhc3NlcnRpb24gZmFpbGVkOiBhY2N1bT09MABhc3NlcnRpb24gZmFpbGVkOiBwY21fY291bnQgPT0gZnJhbWVfc2l6ZQBzcmMvb3B1c19kZWNvZGVyLmMAYXNzZXJ0aW9uIGZhaWxlZDogcmV0PT1mcmFtZV9zaXplLXBhY2tldF9mcmFtZV9zaXplAGFzc2VydGlvbiBmYWlsZWQ6IHJldD09cGFja2V0X2ZyYW1lX3NpemUAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPmNoYW5uZWxzID09IDEgfHwgc3QtPmNoYW5uZWxzID09IDIAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPkZzID09IDQ4MDAwIHx8IHN0LT5GcyA9PSAyNDAwMCB8fCBzdC0+RnMgPT0gMTYwMDAgfHwgc3QtPkZzID09IDEyMDAwIHx8IHN0LT5GcyA9PSA4MDAwAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5EZWNDb250cm9sLkFQSV9zYW1wbGVSYXRlID09IHN0LT5GcwBhc3NlcnRpb24gZmFpbGVkOiBzdC0+RGVjQ29udHJvbC5pbnRlcm5hbFNhbXBsZVJhdGUgPT0gMCB8fCBzdC0+RGVjQ29udHJvbC5pbnRlcm5hbFNhbXBsZVJhdGUgPT0gMTYwMDAgfHwgc3QtPkRlY0NvbnRyb2wuaW50ZXJuYWxTYW1wbGVSYXRlID09IDEyMDAwIHx8IHN0LT5EZWNDb250cm9sLmludGVybmFsU2FtcGxlUmF0ZSA9PSA4MDAwAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5EZWNDb250cm9sLm5DaGFubmVsc0FQSSA9PSBzdC0+Y2hhbm5lbHMAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPkRlY0NvbnRyb2wubkNoYW5uZWxzSW50ZXJuYWwgPT0gMCB8fCBzdC0+RGVjQ29udHJvbC5uQ2hhbm5lbHNJbnRlcm5hbCA9PSAxIHx8IHN0LT5EZWNDb250cm9sLm5DaGFubmVsc0ludGVybmFsID09IDIAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPkRlY0NvbnRyb2wucGF5bG9hZFNpemVfbXMgPT0gMCB8fCBzdC0+RGVjQ29udHJvbC5wYXlsb2FkU2l6ZV9tcyA9PSAxMCB8fCBzdC0+RGVjQ29udHJvbC5wYXlsb2FkU2l6ZV9tcyA9PSAyMCB8fCBzdC0+RGVjQ29udHJvbC5wYXlsb2FkU2l6ZV9tcyA9PSA0MCB8fCBzdC0+RGVjQ29udHJvbC5wYXlsb2FkU2l6ZV9tcyA9PSA2MABhc3NlcnRpb24gZmFpbGVkOiBzdC0+YXJjaCA+PSAwAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5hcmNoIDw9IE9QVVNfQVJDSE1BU0sAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnN0cmVhbV9jaGFubmVscyA9PSAxIHx8IHN0LT5zdHJlYW1fY2hhbm5lbHMgPT0gMgBhc3NlcnRpb24gZmFpbGVkOiAwAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgMTAwMTIsICgoKHZvaWQpKChlbmRiYW5kKSA9PSAob3B1c19pbnQzMikwKSksIChvcHVzX2ludDMyKShlbmRiYW5kKSkpKSA9PSBPUFVTX09LAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgMTAwMDgsICgoKHZvaWQpKChzdC0+c3RyZWFtX2NoYW5uZWxzKSA9PSAob3B1c19pbnQzMikwKSksIChvcHVzX2ludDMyKShzdC0+c3RyZWFtX2NoYW5uZWxzKSkpKSA9PSBPUFVTX09LAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgMTAwMTAsICgoKHZvaWQpKCgwKSA9PSAob3B1c19pbnQzMikwKSksIChvcHVzX2ludDMyKSgwKSkpKSA9PSBPUFVTX09LAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgNDAzMSwgKCgmcmVkdW5kYW50X3JuZykgKyAoKCZyZWR1bmRhbnRfcm5nKSAtIChvcHVzX3VpbnQzMiopKCZyZWR1bmRhbnRfcm5nKSkpKSkgPT0gT1BVU19PSwBhc3NlcnRpb24gZmFpbGVkOiAob3B1c19jdXN0b21fZGVjb2Rlcl9jdGwoY2VsdF9kZWMsIDEwMDEwLCAoKCh2b2lkKSgoc3RhcnRfYmFuZCkgPT0gKG9wdXNfaW50MzIpMCkpLCAob3B1c19pbnQzMikoc3RhcnRfYmFuZCkpKSkgPT0gT1BVU19PSwBhc3NlcnRpb24gZmFpbGVkOiAob3B1c19jdXN0b21fZGVjb2Rlcl9jdGwoY2VsdF9kZWMsIDQwMjgpKSA9PSBPUFVTX09LAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgMTAwMTUsICgoJmNlbHRfbW9kZSkgKyAoKCZjZWx0X21vZGUpIC0gKGNvbnN0IE9wdXNDdXN0b21Nb2RlKiopKCZjZWx0X21vZGUpKSkpKSA9PSBPUFVTX09LAEHwowILAQUAQfyjAgsBAQBBlKQCCwoCAAAAAwAAAHSTAEGspAILAQIAQbukAgsF//////8AQaymAgsCnJMAQeSmAgsDsJVQ";if(!aA(mA)){var It=mA;mA=t.locateFile?t.locateFile(It,n):n+It}function HA(){var U=mA;try{if(U==mA&&E)return new Uint8Array(E);if(aA(U))try{var M=X(U.slice(37)),V=new Uint8Array(M.length);for(U=0;U<M.length;++U)V[U]=M.charCodeAt(U);var CA=V}catch(Z){throw Error("Converting base64 string to bytes failed.")}else CA=void 0;var W=CA;if(W)return W;throw"both async and sync fetching of the wasm failed"}catch(Z){kA(Z)}}function w(){return E||typeof fetch!="function"?Promise.resolve().then(function(){return HA()}):fetch(mA,{credentials:"same-origin"}).then(function(U){if(!U.ok)throw"failed to load wasm binary file at '"+mA+"'";return U.arrayBuffer()}).catch(function(){return HA()})}function k(U){for(;0<U.length;){var M=U.shift();if(typeof M=="function")M(t);else{var V=M.s;typeof V=="number"?M.o===void 0?G.get(V)():G.get(V)(M.o):V(M.o===void 0?null:M.o)}}}var IA=[null,[],[]],X=typeof atob=="function"?atob:function(U){var M="",V=0;U=U.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var CA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(U.charAt(V++)),W="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(U.charAt(V++)),Z="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(U.charAt(V++)),VA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(U.charAt(V++));CA=CA<<2|W>>4,W=(W&15)<<4|Z>>2;var wg=(Z&3)<<6|VA;M+=String.fromCharCode(CA),Z!==64&&(M+=String.fromCharCode(W)),VA!==64&&(M+=String.fromCharCode(wg))}while(V<U.length);return M},K={d:function(){kA()},f:function(U,M,V){y.copyWithin(U,M,M+V)},c:function(){return!1},e:function(){return 0},b:function(){},a:function(U,M,V,CA){for(var W=0,Z=0;Z<V;Z++){for(var VA=f[M+8*Z>>2],wg=f[M+(8*Z+4)>>2],fB=0;fB<wg;fB++){var Wi=y[VA+fB],QC=IA[U];if(Wi===0||Wi===10){Wi=U===1?a:Q;for(var Ot=QC,re=0,Oi=re+NaN,Dg=re;Ot[Dg]&&!(Dg>=Oi);)++Dg;if(16<Dg-re&&Ot.subarray&&m)Ot=m.decode(Ot.subarray(re,Dg));else{for(Oi="";re<Dg;){var gt=Ot[re++];if(gt&128){var rC=Ot[re++]&63;if((gt&224)==192)Oi+=String.fromCharCode((gt&31)<<6|rC);else{var Zr=Ot[re++]&63;gt=(gt&240)==224?(gt&15)<<12|rC<<6|Zr:(gt&7)<<18|rC<<12|Zr<<6|Ot[re++]&63,65536>gt?Oi+=String.fromCharCode(gt):(gt-=65536,Oi+=String.fromCharCode(55296|gt>>10,56320|gt&1023))}}else Oi+=String.fromCharCode(gt)}Ot=Oi}Wi(Ot),QC.length=0}else QC.push(Wi)}W+=wg}return f[CA>>2]=W,0}};(function(){function U(W){t.asm=W.exports,h=t.asm.g,W=h.buffer,t.HEAP8=new Int8Array(W),t.HEAP16=new Int16Array(W),t.HEAP32=f=new Int32Array(W),t.HEAPU8=y=new Uint8Array(W),t.HEAPU16=new Uint16Array(W),t.HEAPU32=new Uint32Array(W),t.HEAPF32=new Float32Array(W),t.HEAPF64=new Float64Array(W),G=t.asm.n,R.unshift(t.asm.h),_--,t.monitorRunDependencies&&t.monitorRunDependencies(_),_==0&&T&&(W=T,T=null,W())}function M(W){U(W.instance)}function V(W){return w().then(function(Z){return WebAssembly.instantiate(Z,CA)}).then(W,function(Z){Q("failed to asynchronously prepare wasm: "+Z),kA(Z)})}var CA={a:K};if(_++,t.monitorRunDependencies&&t.monitorRunDependencies(_),t.instantiateWasm)try{return t.instantiateWasm(CA,U)}catch(W){return Q("Module.instantiateWasm callback failed with error: "+W),!1}return(function(){return E||typeof WebAssembly.instantiateStreaming!="function"||aA(mA)||typeof fetch!="function"?V(M):fetch(mA,{credentials:"same-origin"}).then(function(W){return WebAssembly.instantiateStreaming(W,CA).then(M,function(Z){return Q("wasm streaming compile failed: "+Z),Q("falling back to ArrayBuffer instantiation"),V(M)})})})().catch(g),{}})(),t.___wasm_call_ctors=function(){return(t.___wasm_call_ctors=t.asm.h).apply(null,arguments)},t._opus_decoder_create=function(){return(t._opus_decoder_create=t.asm.i).apply(null,arguments)},t._opus_decode_float=function(){return(t._opus_decode_float=t.asm.j).apply(null,arguments)},t._opus_decoder_destroy=function(){return(t._opus_decoder_destroy=t.asm.k).apply(null,arguments)},t._malloc=function(){return(t._malloc=t.asm.l).apply(null,arguments)},t._free=function(){return(t._free=t.asm.m).apply(null,arguments)};var $;T=function U(){$||oA(),$||(T=U)};function oA(){function U(){if(!$&&($=!0,t.calledRun=!0,!d)){if(k(R),e(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;){var M=t.postRun.shift();v.unshift(M)}k(v)}}if(!(0<_)){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)P();k(b),0<_||(t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),U()},1)):U())}}if(t.run=oA,t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);0<t.preInit.length;)t.preInit.pop()();return oA(),A.ready})})(),Ur=(i=>(i[i.OK=0]="OK",i[i["Bad argument"]=-1]="Bad argument",i[i["Buffer too small"]=-2]="Buffer too small",i[i["Internal error"]=-3]="Internal error",i[i["Invalid packet"]=-4]="Invalid packet",i[i.Unimplemented=-5]="Unimplemented",i[i["Invalid state"]=-6]="Invalid state",i[i["Memory allocation fail"]=-7]="Memory allocation fail",i))(Ur||{});const Gt=class Gt{constructor(A,t,e){I(this,"opusModule");I(this,"decoderInstance");I(this,"opusBufferPointer");I(this,"pcmBufferPointer");I(this,"opus");I(this,"pcm");I(this,"channels");I(this,"sampleRate");I(this,"pcmBufferByteSize",()=>Gt.MAX_SAMPLES*this.channels*Float32Array.BYTES_PER_ELEMENT);I(this,"unload",()=>{this.opusModule._free(this.opusBufferPointer),this.opusModule._free(this.pcmBufferPointer),this.opusModule._opus_decoder_destroy(this.decoderInstance)});I(this,"decode",A=>{this.opusModule.HEAPU8.set(new Uint8Array(A),this.opusBufferPointer);const t=this.opusModule._opus_decode_float(this.decoderInstance,this.opusBufferPointer,A.byteLength,this.pcmBufferPointer,Gt.MAX_SAMPLES,0);if(t<0)throw new Error(Ur[t]);return this.pcm.subarray(0,t*this.channels)});this.opusModule=A,this.channels=e,this.sampleRate=t,this.decoderInstance=this.opusModule._opus_decoder_create(t,e,0),this.opusBufferPointer=this.opusModule._malloc(Gt.MAX_OPUS_BUFFER),this.opus=this.opusModule.HEAPU8.subarray(this.opusBufferPointer,this.opusBufferPointer+Gt.MAX_OPUS_BUFFER),this.pcmBufferPointer=this.opusModule._malloc(this.pcmBufferByteSize());const g=this.pcmBufferPointer/Float32Array.BYTES_PER_ELEMENT;this.pcm=this.opusModule.HEAPF32.subarray(g,g+this.pcmBufferByteSize()/Float32Array.BYTES_PER_ELEMENT)}};I(Gt,"MAX_OPUS_BUFFER",1e3*1e3),I(Gt,"MAX_SAMPLES",6*960),I(Gt,"create",(A,t)=>c(null,null,function*(){return new Gt(yield Pw(),A,t)}));let _a=Gt;const SB=class SB{constructor(A){I(this,"decodedSamples",[]);I(this,"decoder");I(this,"errors",new x(10));I(this,"unload",()=>{this.decoder.unload()});I(this,"enqueue",A=>{try{const t=Date.now(),e=this.decoder.decode(A.data);this.decodedSamples.push(z(D({},A),{type:"audio",format:"f32",data:e,statistics:{decodeTime:Date.now()-t,transportTimeFromWorker:0,transportTimeToWorker:0,samplesInBatch:1}}))}catch(t){t instanceof Error&&this.errors.push($C(!1,t))}});I(this,"initSegment",F);I(this,"take",()=>this.decodedSamples.shift());this.decoder=A}error(){return this.errors.pop()}};I(SB,"create",(A,t)=>c(null,null,function*(){return new SB(yield _a.create(A,t))}));let $a=SB;const xw=Object.freeze(Object.defineProperty({__proto__:null,OpusDecoderContext:$a},Symbol.toStringTag,{value:"Module"})),Nr='var MA=Object.defineProperty,cA=Object.defineProperties;var qA=Object.getOwnPropertyDescriptors;var SA=Object.getOwnPropertySymbols;var YA=Object.prototype.hasOwnProperty,KA=Object.prototype.propertyIsEnumerable;var AA=(t,h,N)=>h in t?MA(t,h,{enumerable:!0,configurable:!0,writable:!0,value:N}):t[h]=N,IA=(t,h)=>{for(var N in h||(h={}))YA.call(h,N)&&AA(t,N,h[N]);if(SA)for(var N of SA(h))KA.call(h,N)&&AA(t,N,h[N]);return t},gA=(t,h)=>cA(t,qA(h));var D=(t,h,N)=>AA(t,typeof h!="symbol"?h+"":h,N);var T=(t,h,N)=>new Promise((Z,u)=>{var X=k=>{try{K(N.next(k))}catch(e){u(e)}},P=k=>{try{K(N.throw(k))}catch(e){u(e)}},K=k=>k.done?Z(k.value):Promise.resolve(k.value).then(X,P);K((N=N.apply(t,h)).next())});(function(){"use strict";const t="missing_init_segment";class h extends Error{constructor(A,C,E={}){super(A);D(this,"props");D(this,"extra",{});D(this,"code",()=>this.props.code);D(this,"isFatal",()=>this.props.isFatal);D(this,"source",()=>this.props.source);D(this,"type",()=>{var A;return(A=this.props.type)!=null?A:"external"});D(this,"toStringifiable",()=>{var E;const A=this.source(),C=A instanceof Error?A.stack:this.stack;return gA(IA({},this.extra),{code:this.props.code,isFatal:this.props.isFatal,type:this.props.type,message:this.message,sourceMessage:(E=this.source())==null?void 0:E.message,stack:C})});this.props=C,this.extra=E,Object.setPrototypeOf(this,new.target.prototype)}}const N=(Q,g)=>new h(`No init segment for rendition id ${Q} for channel ${g}`,{isFatal:!1,code:t,type:"internal"}),Z=7,u=8,X=Q=>{const g=Q.getUint32(0,!1),A=Q.getUint8(0)<<16|Q.getUint16(1,!1);let C=0;return A===1?C+=3:g===1&&(C+=4),C},P=Q=>X(new DataView(Q,0))!==0,K=(Q,g=0)=>{for(let A=g;A<Q.byteLength-4;A++){const C=Q.getUint32(A)===1,E=(Q.getUint8(A)<<16|Q.getUint16(A+1))===1;if(C||E)return{position:A,nalPrefixSize:C?4:3}}},k=Q=>Q&31,e=(Q,g)=>{const A=new DataView(Q,0);let C=K(A);for(;C;){const{position:E,nalPrefixSize:i}=C,a=K(A,E+4),s=a?a.position-E-i:void 0;if(!g(new DataView(Q,E+i,s),i))return;C=a}},hA=(Q,g)=>{const A=new DataView(Q,0),C=4;let E=0;for(;E<Q.byteLength;){const i=A.getUint32(E);if(!g(new DataView(Q,E+C,i)))return;E+=i+C}},GA=Q=>{const g=[],A=[];if(!P(Q)){const C=new DataView(Q,0),E=C.getUint8(5)&31;let i=6;for(let s=0;s<E;s++){const G=C.getUint16(i);g.push(Q.slice(i+2,i+2+G)),i+=G+2}const a=C.getUint8(i);i+=1;for(let s=0;s<a;s++){const G=C.getUint16(i);A.push(Q.slice(i+2,i+2+G)),i+=G+2}return{sequenceParameterSets:g,pictureParameterSets:A}}return e(Q,C=>{const E=C.byteOffset+C.byteLength;switch(k(C.getUint8(0))){case u:A.push(C.buffer.slice(C.byteOffset,E));break;case Z:g.push(C.buffer.slice(C.byteOffset,E));break}return!0}),{sequenceParameterSets:g,pictureParameterSets:A}};var NA=(function(){var Q=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return(function(g){g=g||{};var A;A||(A=typeof g!="undefined"?g:{});var C,E;A.ready=new Promise(function(I,B){C=I,E=B});var i={},a;for(a in A)A.hasOwnProperty(a)&&(i[a]=A[a]);var s="",G;s=self.location.href,Q&&(s=Q),s.indexOf("blob:")!==0?s=s.substr(0,s.lastIndexOf("/")+1):s="",G=function(I){try{var B=new XMLHttpRequest;return B.open("GET",I,!1),B.responseType="arraybuffer",B.send(null),new Uint8Array(B.response)}catch(o){if(I=aA(I))return I;throw o}};var R=A.printErr||console.warn.bind(console);for(a in i)i.hasOwnProperty(a)&&(A[a]=i[a]);i=null;var c;A.wasmBinary&&(c=A.wasmBinary),A.noExitRuntime,typeof WebAssembly!="object"&&l("no native wasm support detected");var w,b=!1,m,q,r,d,J,S,f;function QA(){var I=w.buffer;m=I,A.HEAP8=q=new Int8Array(I),A.HEAP16=d=new Int16Array(I),A.HEAP32=J=new Int32Array(I),A.HEAPU8=r=new Uint8Array(I),A.HEAPU16=new Uint16Array(I),A.HEAPU32=new Uint32Array(I),A.HEAPF32=S=new Float32Array(I),A.HEAPF64=f=new Float64Array(I)}var z,CA=[],EA=[],iA=[];function RA(){var I=A.preRun.shift();CA.unshift(I)}var Y=0,W=null;A.preloadedImages={},A.preloadedAudios={};function l(I){throw A.onAbort&&A.onAbort(I),R(I),b=!0,I=new WebAssembly.RuntimeError("abort("+I+"). Build with -s ASSERTIONS=1 for more info."),E(I),I}var x="data:application/octet-stream;base64,",M="data:application/octet-stream;base64,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agwNCyAEQRt2QeATagwMCyAEQRt2QYAUagwLCyAEQRp2QaAUagwKCyAEQRp2QeAUagwJCyAEQRp2QaAVagwICyAEQRp2QeAVagwHCyAEQRt2QaAWagwGCyAEQRx2QcAWagwFCyAEQRx2QdAWagwECyAEQR12QeAWagwDCyAEQR52QegWagwCCyAEQQBIBEBBASECDAQLQREhAiAKQQNGDQNBEiECIARB/////wNLDQNBIiECIApBAkYNA0EzQSMgBEGAgICAAkkbIQIMAwsgBEEXdkHAEmogBEEbdkGgEmogBEGAgICAAUkbCy0AACICDQEMBAtBAUERIARBf0obIQILIAJBBHYhByAGIAJBD3EiA2shAiAEIAN0IQQLIApBAWsiBQRAA0ACQCAHBEAgAkEKTQRAIABBICACaxALQX9GBEAMBwsgABAQIQRBICECCwJAAn8CQAJAAkACQAJAAkACQCAHQQFrDgYGAAECAwQFCyAEQR52Qe4WagwGCyAEQR52QfIWagwFCyAEQR12QfYWagwECyAEQR12Qf4WagwDCyAEQR12QYYXagwCCwJ/QfMAIARBGXZB8ABxayAEQYCAgIACTw0AGkH0ACAEQf////8ASw0AGkGFASAEQf///z9LDQAaQZYBIARB////H0sNABpBpwEgBEH///8PSw0AGkG4ASAEQf///wdLDQAaQckBIARB////A0sNABpB2gEgBEH///8BSw0AGkEAQesBIARBgICAAUkbCyIGQQR2IAdNDQIMCAsgBEEfdkHsFmoLLQAAIQYLIAZFBEAMBgsgCSAIQQJ0aiAGQQR2IgNBAWo2AgAgByADayEHIAIgBkEPcSIDayECIAQgA3QhBAwBCyAJIAhBAnRqQQE2AgBBACEHCyAIQQFqIgggBUcNAAsgASAHQQJ0aiAJQUBrIAVBAnRqKAIANgIAQQEgB3QhBiAFRQ0BIApBAmshAyAFQQFxBH8gASAJIANBAnQiBGooAgAgB2oiB0ECdGogCUFAayAEaigCADYCAEEBIAd0IAZyIQYgCkEDawUgAwshBCADRQ0BA0AgASAJIARBAnQiBWooAgAgB2oiA0ECdGogCUFAayAFaigCADYCACABIAkgBEEBayIFQQJ0IgxqKAIAIANqIgdBAnRqIAlBQGsgDGooAgA2AgBBASADdCAGckEBIAd0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FUUEQANAIAMgAiIALQAAOgAAIAMgAC0AAToAASADIAAtAAI6AAIgAyAALQADOgADIAMgAC0ABDoABCADIAAtAAU6AAUgAyAALQAGOgAGIAMgAC0ABzoAByADQQhqIQMgAEEIaiECIAdBCGsiBw0ACyAAQQdqIQALIAMgAC0AACAOEAQaIAEgCGohASAKQQFrIgoNAAsMAwsgC0EHcSEQIAQgBmogDWogBCAPIAQgD0obQX9zaiANQQAgDUEAShtrQQdJIREDQCALIQcgASEDIAkhACAQIgIEQANAIAMgAC0AADoAACAHQQFrIQcgA0EBaiEDIABBAWohACACQQFrIgINAAsLIBFFBEADQCADIAAtAAA6AAAgAyAALQABOgABIAMgAC0AAjoAAiADIAAtAAM6AAMgAyAALQAEOgAEIAMgAC0ABToABSADIAAtAAY6AAYgAyAALQAHOgAHIANBCGohAyAAQQhqIQAgB0EIayIHDQALCyABIAhqIQEgCkEBayIKDQALDAILIA4EQCALQQdxIRAgBCAGaiANaiAEIA8gBCAPShtBf3NqIA1BACANQQBKG2tBB0khEQNAIAEgCS0AACAMEAQiFSAMaiEDIAshByAJIQIgECIBBEADQCADIAIiAC0AADoAACAHQQFrIQcgA0EBaiEDIABBAWohAiABQQFrIgENAAsLIBFFBEADQCADIAIiAC0AADoAACADIAAtAAE6AAEgAyAALQACOgACIAMgAC0AAzoAAyADIAAtAAQ6AAQgAyAALQAFOgAFIAMgAC0ABjoABiADIAAtAAc6AAcgA0EIaiEDIABBCGohAiAHQQhrIgcNAAsgAEEHaiEACyADIAAtAAAgDhAEGiAIIBVqIQEgCkEBayIKDQALDAILIAtBB3EhECAEIAZqIA1qIAQgDyAEIA9KG0F/c2ogDUEAIA1BAEoba0EHSSERA0AgASAJLQAAIAwQBCIBIAxqIQMgCyEHIAkhACAQIgIEQANAIAMgAC0AADoAACAHQQFrIQcgA0EBaiEDIABBAWohACACQQFrIgINAAsLIBFFBEADQCADIAAtAAA6AAAgAyAALQABOgABIAMgAC0AAjoAAiADIAAtAAM6AAMgAyAALQAEOgAEIAMgAC0ABToABSADIAAtAAY6AAYgAyAALQAHOgAHIANBCGohAyAAQQhqIQAgB0EIayIHDQALCyABIAhqIQEgCkEBayIKDQALDAELIAEgCCAKbGohAQsgEkUNACALQQdxIRAgBCAGaiANaiAEIA8gBCAPShtBf3NqIA1BACANQQBKG2tBB0khEQNAIAEhAyAMBEAgASAJLQAAIAwQBCAMaiEDCwJAIAtFBEAgCSEADAELIAshByAJIQAgECICBEADQCADIAAtAAA6AAAgB0EBayEHIANBAWohAyAAQQFqIQAgAkEBayICDQALCyARDQADQCADIAAtAAA6AAAgAyAALQABOgABIAMgAC0AAjoAAiADIAAtAAM6AAMgAyAALQAEOgAEIAMgAC0ABToABSADIAAtAAY6AAYgAyAALQAHOgAHIANBCGohAyAAQQhqIQAgB0EIayIHDQALCyAOBEAgAyAAQQFrLQAAIA4QBBoLIAEgCGohASAEIAlqIQkgEkEBayISDQALCwJAIBZFDQAgCSAEayEJIBdFBEAgFCAFa0EDcSIDBEADQCATQQFrIRMgASAJIAsQCCAIaiEBIANBAWsiAw0ACwsgFCAFQX9zakEDSQ0BA0AgASAJIAsQCCAIaiAJIAsQCCAIaiAJIAsQCCAIaiAJIAsQCCAIaiEBIBNBBGsiEw0ACwwBCyALQQdxIQUgBCAGaiANaiAEIA8gBCAPShtBf3NqIA1BACANQQBKG2tBB0khBANAIAEhAyAMBEAgASAJLQAAIAwQBCAMaiEDCwJAIAtFBEAgCSEADAELIAshByAJIQAgBSICBEADQCADIAAtAAA6AAAgB0EBayEHIANBAWohAyAAQQFqIQAgAkEBayICDQALCyAEDQADQCADIAAtAAA6AAAgAyAALQABOgABIAMgAC0AAjoAAiADIAAtAAM6AAMgAyAALQAEOgAEIAMgAC0ABToABSADIAAtAAY6AAYgAyAALQAHOgAHIANBCGohAyAAQQhqIQAgB0EIayIHDQALCyAOBEAgAyAAQQFrLQAAIA4QBBoLIAEgCGohASATQQFrIhMNAAsLC+kCAQN/IAFBA3RB8DZqIgMoAgAhBSADLQAEIQMgAUEDdEGwNWoiAS0ABCEEAkAgASgCAEEERgRAIAIgBEEBdGouAQAhASAFQQRGBEAgASACIANBAXRqLgEAakEBakEBdQ8LAn8gACgCzAEiAgRAIAAoAgQgAigCBEYMAQtBAAtFDQEgASAAKALMASADQQF0ai4BHGpBAWpBAXUPCyAFQQRGBEAgAiADQQF0ai4BACEBAn8gACgCyAEiAgRAIAAoAgQgAigCBEYMAQtBAAtFDQEgASAAKALIASAEQQF0ai4BHGpBAWpBAXUPCwJ/IAAoAsgBIgEEQCAAKAIEIAEoAgRGDAELQQALIgIEfyAAKALIASAEQQF0ai4BHAVBAAshAQJ/IAAoAswBIgQEQCAAKAIEIAQoAgRGDAELQQALRQ0AIAAoAswBIANBAXRqLgEcIQAgAkUEQCAADwsgACABakEBakEBdSEBCyABC/IDAQN/IAEoAgAiA0H///8HRwRAIAEoAgQhBCAAIAIgAkEDcSACQRBJIgIbQQJ0IgVB8ClqKAIAQRBBCCACGyICbGogBUGwKWooAgBqIgAgAyAALQAAakGwLmotAAA6AAAgASgCCCEDIAAgBCAALQABakGwLmotAAA6AAEgASgCDCEEIAAgAyAALQACakGwLmotAAA6AAIgACAEIAAtAANqQbAuai0AADoAAyABKAIUIQMgACACaiIAIAEoAhAgAC0AAGpBsC5qLQAAOgAAIAEoAhghBCAAIAMgAC0AAWpBsC5qLQAAOgABIAEoAhwhAyAAIAQgAC0AAmpBsC5qLQAAOgACIAAgAyAALQADakGwLmotAAA6AAMgASgCJCEDIAAgAmoiACABKAIgIAAtAABqQbAuai0AADoAACABKAIoIQQgACADIAAtAAFqQbAuai0AADoAASABKAIsIQMgACAEIAAtAAJqQbAuai0AADoAAiAAIAMgAC0AA2pBsC5qLQAAOgADIAEoAjQhAyAAIAJqIgAgASgCMCAALQAAakGwLmotAAA6AAAgASgCOCECIAAgAyAALQABakGwLmotAAA6AAEgASgCPCEBIAAgAiAALQACakGwLmotAAA6AAIgACABIAAtAANqQbAuai0AADoAAwsL8CUBFH8gAyAFaiIbIAEuAQAiDkECdWohDSAEIAZqIhwgAS4BAiIKQQJ1aiELIAIoAghBBHQhAyACKAIEQQR0IQQgACAGQQR0aiAFaiEJAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAOQQNxQQR0IApBA3FBAnRyQdA7aigCAA4PAAECAwQFBgcICQoLDA0ODwsgAigCACAJIA0g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ADcDEAJ/AkAgAgRAIABBACAIa0HYAWxqKALEAQ0BC0EADAELIAYgCyAIQQR0ayIELQAFIAQtAARqIAQtAAZqIAQtAAdqIhggBC0AAyAELQACIAQtAAEgBC0AAGpqaiIXaiIFIAQtAA8gBC0ADiAELQANIAQtAAxqamoiGiAELQALIAQtAAogBC0ACSAELQAIampqIhlqIgRrIgc2AhQgBiAEIAVqIgo2AhBBASEbQQELIQUCQCANQQFrIAJGDQAgACAIQdgBbGooAsQBRQRADAELIAYgCyAIQQh0aiICLQAFIAItAARqIAItAAZqIAItAAdqIh4gAi0AAyACLQACIAItAAEgAi0AAGpqaiIfaiIEIAItAA8gAi0ADiACLQANIAItAAxqamoiICACLQALIAItAAogAi0ACSACLQAIampqIiFqIgJrIAdqIgc2AhQgBiACIARqIApqIgo2AhBBASEWIAVBAWohBQsCfwJAIANFDQAgAEEUaygCAEUNACAGIAtBAWsiAiAIQQZ0IhBqIgQgCEEEdCIJai0AACAELQAAaiAEIAhBBXQiDmotAABqIAQgCEEwbCIPai0AAGoiHCACIA9qLQAAIAIgDmotAAAgAiAJai0AACACLQAAampqIh1qIgwgBCAQaiICIBBqIgQgCWotAAAgBC0AAGogBCAOai0AAGogBCAPai0AAGoiECACIA9qLQAAIAIgDmotAAAgAiAJai0AACACLQAAampqIg5qIgJrIgQ2AiAgBiACIAxqIApqIgo2AhBBASEPIAVBAWohCUEBDAELQQAhBCAFIQlBAAshAgJAAkACQAJAAkAgAyAIQQFrRwRAIAAoApwDDQELQQAhDCAFDQEMAgsgBCALQRBqIgQgCEEGdCIRaiIAIAhBBHQiDGotAAAgAC0AAGogACAIQQV0IhJqLQAAaiAAIAhBMGwiE2otAABqIAQgE2otAAAgBCASai0AACAEIAxqLQAAIAstABBqampqIgsgACARaiIAIBFqIgQgDGotAAAgBC0AAGogBCASai0AAGogBCATai0AAGoiESAAIBNqLQAAIAAgEmotAAAgACAMai0AACAALQAAampqIgBqIgxraiEEIAsgDGogCmohCkEBIQwgAkEBaiECIAlBAWohCSAPRSAFQQBHckUEQCAcIB1qIA5qIBBqIAAgC2ogEWpr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IAhrQQJ0ampBEGpBBXVBsC5qLQAAIAAtABBqQQFqQQF2OgAQIAAgAiALai0AACAHIAQgEGoiBEEEdGogBSANaiIFayAEIAVrQQJ0ampBEGpBBXVBsC5qLQAAIAAtAABqQQFqQQF2OgAAIAJBAWohAiAAQQFqIQAgAUEBaiEBIANBAWsiAw0ACyAAIBFqIQAgASAPaiEBIAIgD2ohAiAKQQFrIgoNAAsLIBJBwANqJAALtQUBBH8gACgCFCEDIAAoAhAhBCAAKAIEIQUgACgCDCICIAEpAgA3AgAgAiABKQIINwIIIAIgBUEEdCIAaiICIAEpAhA3AgAgAiABKQIYNwIIIAAgAmoiAiABKQIgNwIAIAIgASkCKDcCCCAAIAJqIgIgASkCMDcCACACIAEpAjg3AgggACACaiICIAEpAkA3AgAgAiABKQJINwIIIAAgAmoiAiABKQJQNwIAIAIgASkCWDcCCCAAIAJqIgIgASkCYDcCACACIAEpAmg3AgggACACaiICIAEpAnA3AgAgAiABKQJ4NwIIIAAgAmoiAiABKQKAATcCACACIAEpAogBNwIIIAAgAmoiAiABKQKQATcCACACIAEpApgBNwIIIAAgAmoiAiABKQKgATcCACACIAEpAqgBNwIIIAAgAmoiAiABKQKwATcCACACIAEpArgBNwIIIAAgAmoiAiABKQLAATcCACACIAEpAsgBNwIIIAAgAmoiAiABKQLQATcCACACIAEpAtgBNwIIIAAgAmoiAiABKQLgATcCACACIAEpAugBNwIIIAAgAmoiACABKQLwATcCACAAIAEpAvgBNwIIIAQgASkCgAI3AgAgBCAFQQN0IgBqIgQgASkCiAI3AgAgACAEaiIEIAEpApACNwIAIAAgBGoiBCABKQKYAjcCACAAIARqIgQgASkCoAI3AgAgACAEaiIEIAEpAqgCNwIAIAAgBGoiBCABKQKwAjcCACAAIARqIAEpArgCNwIAIAMgASkCwAI3AgAgACADaiIDIAEpAsgCNwIAIAAgA2oiAyABKQLQAjcCACAAIANqIgMgASkC2AI3AgAgACADaiIDIAEpAuACNwIAIAAgA2oiAyABKQLoAjcCACAAIANqIgMgASkC8AI3AgAgACADaiABKQL4AjcCAAsDAAELqAwBCn8CQCABQQRPBEBBACADayIMQQF0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aiICIAYoAgA2AgAgAiAGKAIkNgIMIAIgBigCHDYCBCACIAYoAiA2AgggACAEQQFqNgIQIAZBADYCGCAGKAIUDQAgACABQQFrIgE2AiwLIAEgA0sNAAsMAQsgASgCACECIAAoAgwgACgCECIDQQR0aiIBIAU2AgwgASACNgIAIAEgBzYCCCABIAY2AgQgACADQQFqNgIQIAAoAhwhAwsgACgCACADQQFqECYLC14BAX8gAEHECWoiACgCFCIEIAAoAhBJBH8gACAEQQFqNgIUIAAoAgwgBEEEdGoFQQALIgBFBEBBAA8LIAEgACgCBDYCACACIAAoAgw2AgAgAyAAKAIINgIAIAAoAgALtAMBA38DQCAAIAJBAnRqIgEoAhQiAwRAIAMoAigQBSABKAIUQQA2AiggASgCFCgCVBAFIAEoAhRBADYCVCABKAIUEAUgAUEANgIUCyACQQFqIgJBIEcNAAtBACECA0AgACACQQJ0aiIBKAKUASIDBEAgAygCFBAFIAEoApQBQQA2AhQgASgClAEoAhgQBSABKAKUAUEANgIYIAEoApQBKAIcEAUgASgClAFBADYCHCABKAKUASgCLBAFIAEoApQBQQA2AiwgASgClAEQBSABQQA2ApQBCyACQQFqIgJBgAJHDQALIAAoArAaEAUgAEEANgKwGiAAKAK8CRAFIABBADYCvAkgACgClAkQBSAAQQA2ApQJIAAoArwaIgEEQCABEAUgAEEANgK8GgtBACEBQQAhAwJAIABBxAlqIgIoAgAiAEUNACACKAIcQX9GBEAgACEBDAELIAAhAQNAIAEgA0EobCIAaigCBBAFIAIoAgAiASAAakEANgIEIANBAWoiAyACKAIcQQFqSQ0ACwsgARAFIAJBADYCACACKAIEEAUgAkEANgIEIAIoAgwQBSACQQA2AgwL/tEDAkN/An4jAEGQAWsiGCQAIBhBADYCDAJAAkACQCAAKAKQGkUNACAAKAKUGiABRw0AIBggAEGsGmooAgA2AiAgGCAAQaQaaikCADcDGCAAKQKcGiFIIBhBADYCICAYQQA2AhggGCBINwMQIBggSD4CFCAEIAAoApgaNgIADAELQQYhIgJ/IAEhCAJAAkAgAkEESQ0AIAgtAAANACAILQABDQAgCC0AAiINQQFLDQBBAyEGIAhBA2ohBUECIQcCQANAIAUhCSANQf8BcSIBBH9BACENIAFBAUZBACAHQQFLGw0CQQAFIAdBAWoLIQcgCUEBaiEFIAktAAAhDSAGQQFqIgYgAkcNAAsgBCACNgIAQQEMAwsgBiEBQQAhB0EAIQUDQEEBIAcgDSAJLQAAIgpFaiILQQJGGyAHIApBA0YbIQcCQCAKQQFHDQAgC0ECSQ0AIBggASAGIAtqayICNgIcQQAgC0EDayIBIAEgC0sbIQ0MAwtBACALIAobIQ1BASAFIAtBAksbIAUgChshBSAJQQFqIQkgAUEBaiIBIAJHDQALIBggAiAGIA1qayICNgIcDAELIBggAjYCHEEBIQdBACENCyAYQQA2AiAgGEEANgIYIBggBiAIaiIBNgIUIBggATYCECAEIAYgDWogAmo2AgBBASENAkAgBQ0AQQAhDSAHRQ0AIBgCfyAYKAIcIgZFBEAgASECQQAMAQsgASECQQAhCQNAIAZBAWshBiACLQAAIQUCfwJAIAlBAkcNACAFQQNGBEBBASAGRQ0GGkEBIAItAAFBA0sNBhpBACEJIAJBAWoMAgsgBUEDTw0AQQEMBQsgASAFOgAAQQAgCUEBaiAFGyEJIAFBAWohASACQQFqCyECIAYNAAsgGCgCHAsgASACa2o2AhwLIA0LDQEgACAYKQMQNwKcGiAAQawaaiAYKAIgNgIAIABBpBpqIBgpAxg3AgAgBCgCACEBIAAgCDYClBogACABNgKYGgsgAEEANgKQGkEHISJBASECAkAgGEEQaiIBQQEQA0F/Rg0AIBggAUECEAM2AowBIBggAUEFEAMiATYCiAEgAUECa0EDSQ0AAkAgAUEMSw0AQQEgAXQiCUHAPHFFBEAgCUGgA3FFDQEgGCgCjAFFDQIgAUEGRw0BDAILIBgoAowBDQELQQAhAgsgAg0AIBgoAogBQQFrQQtLBEBBACEiDAELAn8gGEEQaiEGQQAhCSMAQSBrIgUkACAYQQA2AgwCQCAYKAKIASIBQRJLDQBBASABdCIBQcDfH3FFBEAgAUEicUUNASAAQbQKaigCAARAIBhBATYCDCAAQQA2ArQKCyAGIAVBHGoQHyIJDQFB8P8DIQkgACAFKAIcQQJ0aigClAEiDUUNASAAIA0oAgQiAUECdGooAhQiCEUNAQJAIAAoAggiAkEgRg0AIAEgAkYNACAYKAKIAUEFRw0CCwJAIABBmApqKAIAIgEgGCgCjAEiAkYNACABQQAgAhsNACAYQQE2AgwLIBgoAogBIQECQAJAIAAoApQKQQVGBEAgAUEFRw0BDAILIAFBBUcNAQsgGEEBNgIMC0EBIQkgCCgCDCELIwBBIGsiByQAIAcgBigCEDYCECAHIAYpAgg3AwggByAGKQIANwMAAkAgByAHQRxqEAIiAQ0AIAcgB0EcahACIgENACAHIAdBHGoQAiIBDQBBACEBA0AgASICQQFqIQEgCyACdg0ACyAHIAJBAWsQAyIBQX9GBEBBASEBDAELIAUgATYCGEEAIQELIAdBIGokACABDQEgBSgCGCIBIABBnApqKAIARwRAIAAgATYCnAogGEEBNgIMCyAYKAKIAUEFRgRAIAgoAgwhCyAFQRRqIQojAEEgayIHJAAgByAGKAIQNgIQIAcgBikCADcDACAHIAYpAgg3AwgCQCAHIAdBHGoQAiIBDQAgByAHQRxqEAIiAQ0AIAcgB0EcahACIgENAEEAIQEDQCABIgJBAWohASALIAJ2DQALIAcgAkEBaxADQX9GBEBBASEBDAELIAcgChACIQELIAdBIGokACABDQICQCAAKAKUCkEFRwRAIAUoAhQhAQwBCyAAQaAKaigCACIBIAUoAhQiAkYNACAYQQE2AgwgAiEBCyAAQaAKaiABNgIACwJAAkACQCAIKAIQDgIAAQILIBgoAogBIQsjAEEgayIHJAAgByAGKAIQNgIQIAcgBikCCDcDCCAHIAYpAgA3AwACQCAHIAdBHGoQAiIBDQAgByAHQRxqEAIiAQ0AIAcgB0EcahACIgENACAIKAIMIQpBACEBA0AgASICQQFqIQEgCiACdg0ACyAHIAJBAWsQA0F/RgRAQQEhAQwBCyALQQVGBEAgByAHQRxqEAIiAQ0BCyAIKAIUIQtBACEBA0AgASICQQFqIQEgCyACdg0ACyAHIAJBAWsQAyIBQX9GBEBBASEBDAELIAUgATYCCEEAIQELIAdBIGokACABDQMgBSgCCCIBIABBpApqKAIARwRAIAAgATYCpAogGEEBNgIMCyANKAIIRQ0BIBgoAogBIQcgBUEQaiENIwBBIGsiCSQAIAkgBigCEDYCECAJIAYpAgg3AwggCSAGKQIANwMAAkAgCSAJQRxqEAIiAQ0AIAkgCUEcahACIgENACAJIAlBHGoQAiIBDQAgCCgCDCEGQQAhAQNAIAEiAkEBaiEBIAYgAnYNAAsgCSACQQFrEANBf0YEQEEBIQEMAQsgB0EFRgRAIAkgCUEcahACIgENAQsgCCgCFCEGQQAhAQNAIAEiAkEBaiEBIAYgAnYNAAsgCSACQQFrEANBf0YEQEEBIQEMAQsgCSANEAYhAQsgCUEgaiQAIAEiCQ0DIAUoAhAiASAAQagKaigCAEYNASAAIAE2AqgKIBhBATYCDAwBCyAIKAIYDQAgGCgCiAEhCyANKAIIIQogBUEIaiEHIwBBIGsiCSQAIAkgBigCEDYCECAJIAYpAgg3AwggCSAGKQIANwMAAkAgCSAJQRxqEAIiAQ0AIAkgCUEcahACIgENACAJIAlBHGoQAiIBDQAgCCgCDCEGQQAhAQNAIAEiAkEBaiEBIAYgAnYNAAsgCSACQQFrEANBf0YEQEEBIQEMAQsgC0EFRgRAIAkgCUEcahACIgENAQsgCSAHEAYiAQ0AIAoEQCAJIAdBBGoQBiIBDQELQQAhAQsgCUEgaiQAIAEiCQ0CIAUoAggiASAAQawKaigCAEcEQCAAIAE2AqwKIBhBATYCDAsgDSgCCEUNACAFKAIMIgEgAEGwCmooAgBGDQAgACABNgKwCiAYQQE2AgwLIAAgGCkCiAE3ApQKQQAhCQwBCyAYQQE2AgwLIAVBIGokACAJCwRAQQQhIiAJQfD/A0YNAUEIISIMAQsCQCAYKAIMBEACQCAAKAKgCUUNACAAKAIQRQ0AQQkhIiAAKAK0Gg0DAkAgACgCpAlFBEAgAEHECWoiAiIBIAEoAgAgASgCHEEobGoiATYCCCAAIAEoAgA2ArgKIAIQJCAAIABBuApqQQAQJQwBCyAAIABBuApqIABB3ApqKAIAECULIARBADYCACAAQQA2ApwJIABBATYCkBoMAgsgAEEANgKcCSAAQQA2AqQJC0EAISICQAJAAkAgGCgCiAFBAWsOCAIEBAQCBAABBAsCfyMAQRBrIgUkACAYQShqQQBB3AAQBCEDAkAgGEEQaiIBQQgQAyICQX9GBEBBASECDAELIAMgAjYCACABQQEQAxogAUEBEAMaIAFBARADQX9GBEBBASECDAELIAFBBRADQX9GBEBBASECDAELIAFBCBADIgJBf0YEQEEBIQIMAQsgAyACNgIEIAEgA0EIahACIgINACADKAIIQR9LBEBBASECDAELIAEgBUEMahACIgINAEEBIQIgBSgCDCIEQQxLDQAgA0EBIARBBGp0NgIMIAEgBUEMahACIgINACAFKAIMIgJBAksEQEEBIQIMAQsgAyACNgIQAkACQAJAIAIOAgABAgsgASAFQQxqEAIiAg0CIAUoAgwiAkEMSwRAQQEhAgwDCyADQQEgAkEEanQ2AhQMAQtBASECIAFBARADIgRBf0YNASADIARBAUY2AhggASADQRxqEAYiAg0BIAEgA0EgahAGIgINASABIANBJGoQAiICDQFBASECIAMoAiQiBEH/AUsNASAEBEAgAyAEQQJ0EAoiAjYCKCACRQRAQf//AyECDAMLIAEgAhAGIgINAkEBIQYDQCAGIAMoAiRPDQIgBkECdCECIAZBAWohBiABIAIgAygCKGoQBiICRQ0ACwwCCyADQQA2AigLIAEgA0EsahACIgINAEEBIQIgAygCLEEQSw0AIAFBARADIgRBf0YNACADIARBAUY2AjAgASAFQQxqEAIiAg0AIAMgBSgCDEEBajYCNCABIAVBDGoQAiICDQBBASECIAMgBSgCDEEBajYCOCABQQEQA0EBakECSQ0AIAFBARADQX9GDQAgAUEBEAMiBEF/Rg0AIAMgBEEBRiICNgI8AkAgAkUEQCADKAI4IQkgAygCNCEGDAELIAEgA0FAaxACIgINASABIANBxABqEAIiAg0BIAEgA0HIAGoQAiICDQEgASADQcwAahACIgINAUEBIQIgAygCQCADKAJEQX9zIAMoAjQiBkEDdGpKDQEgAygCSCADKAJMQX9zIAMoAjgiCUEDdGpKDQELIAYgCWwhAkH/////ByEGAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADKAIEQQprDioAAQIDEBAQEBAQBAUGEBAQEBAQEAcICRAQEBAQEBAKCwwQEBAQEBAQDQ4QC0GApAkhBCACQeMASwwOC0GAjBUhBCACQYwDSwwNC0GA2DchBCACQYwDSwwMC0GA2DchBCACQYwDSwwLC0GA2DchBCACQYwDSwwKC0GAsO8AIQQgAkGYBksMCQtBgOy9ASEEIAJB1AxLDAgLQYDsvQEhBCACQdQMSwwHC0GA8KUDIQQgAkGQHEsMBgtBgIDg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OA0CIAEoAgAhEANAQQAhBEH/////ByEDQQAhAgNAIBAgAkEobGoiCigCGARAIAogBCAKKAIQIgogA0giDxshBCAKIAMgDxshAwsgAkEBaiICIAdNDQALAkAgBEUNACABKAIMIAEoAhAiA0EEdGoiAiAEKAIANgIAIAIgBCgCJDYCDCACIAQoAhw2AgQgAiAEKAIgNgIIIAEgA0EBajYCECAEQQA2AhggBCgCFA0AIAEgBkEBayIGNgIsCyAGIAdPDQALCyABKAIAIgMgB0EobGoiAiAFNgIMIAJCgICAgBA3AhAgAkEANgIYIAIgBTYCCCABIAlBAWo2AiggASAGQQFqNgIsIAMgB0EBahAmIAVBAWogASgCICIGcCIFIAhHDQALAkAgASgCECIJRQ0AIAEoAgAiBiABKAIcIgNBKGxqIgUoAgAhBCABKAIMIQdBACECA0AgBCAHIAJBBHRqKAIARwRAIAkgAkEBaiICRw0BDAILCyADRQ0AQQAhAgNAIAsgBiACQShsaiIJKAIARwRAIAMgAkEBaiICRw0BDAILCyAJIAQ2AgAgBSALNgIACyANDQQgASgCMCECDAILA0AMAAsACyANDQILIAIgCEYNACABIAggASgCICIBakEBayABcDYCMAtBAAwCCyABIAg2AjBBAAwBCyANCw0DCyAAQcQJaiIBIAEoAgAgASgCHEEobGoiATYCCCAAIAEoAgA2ArgKCyAAQdgKaiAdQdwHEAghFCAAQQE2AqQJIAAgGCkDiAE3AtAKIAAoApQJIQ0gAEGYC2ooAgAhA0EAIQlBACEQIAAoAhAiASgCNCIKIAEoAjgiBWwhBgJAIAAoAgwiASgCDCIHQQFGBEAgDUEAIAZBAnQQBBoMAQsCQAJAAkAgASgCECICQQNrQQJNBEAgASgCJCADbCIDIAYgAyAGSRshDyABKAIgIQMgAkF+cUEERw0BIAYgD2sgDyADGyEJCwJAAkACQAJAAkACQCACDgYBAgMABQQACyAGRQ0HIAZBA3EhECABKAIsIQJBACEBIAZBAWtBA08EQCAGQXxxIQQDQCANIAFBAnQiA2ogAiADaigCADYCACANIANBBHIiCWogAiAJaigCADYCACANIANBCHIiCWogAiAJaigCADYCACANIANBDHIiA2ogAiADaigCADYCACABQQRqIQEgBEEEayIEDQALCyAQRQ0HA0AgDSABQQJ0IgNqIAIgA2ooAgA2AgAgAUEBaiEBIBBBAWsiEA0ACwwHCyAHRQ0FIAEoAhQhA0EAIQkDQEEAIRAgBiAJTQ0HA0AgAyAQQQJ0aiIFKAIAIQQCQCAGIAlNDQAgBEUNAEEBIQEgCSECA0AgDSACQQJ0aiAQNgIAIAEgBSgCACIETw0BIAEgCWoiAiAGTw0BIAFBAWohAQwACwALIAcgEEEBaiIQS0EAIAYgBCAJaiIJSxsNAAsgBiAJSw0ACwwGCyAGRQ0FQQAhAQNAIA0gAUECdGogASAKbiICIAdsQQF2IAEgAiAKbGtqIAdwNgIAIAFBAWoiASAGRw0ACwwFCyABKAIcIQUgASgCGCEIAkAgBkUNACAHQQFrIQEgBkEHcSEQQQAhCSAGQQFrQQdPBEAgBkF4cSEEA0AgDSAJQQJ0IgJqIAE2AgAgDSACQQRyaiABNgIAIA0gAkEIcmogATYCACANIAJBDHJqIAE2AgAgDSACQRByaiABNgIAIA0gAkEUcmogATYCACANIAJBGHJqIAE2AgAgDSACQRxyaiABNgIAIAlBCGohCSAEQQhrIgQNAAsLIBBFDQADQCANIAlBAnRqIAE2AgAgCUEBaiEJIBBBAWsiEA0ACwsgB0ECayEBA0ACQCAIIAEiAkECdCIBaigCACIDIApuIgQgASAFaigCACIBIApuIglLDQAgAyAEIApsayIDIAEgCSAKbGsiBksNAANAIAQgCmwhByADIQEDQCANIAEgB2pBAnRqIAI2AgAgAUEBaiIBIAZNDQALIARBAWoiBCAJTQ0ACwsgAkEBayEBIAINAAsMBAsgCkUNAyAFRQ0DQQEgASgCICIHayEIIAVBfnEhBiAFQQFxIQtBACEDA0AgAyEBQQAhAiAGIQQgBUEBRwRAA0AgDSACIApsIBBqQQJ0aiAHIAggASAJSRs2AgAgDSACQQFyIApsIBBqQQJ0aiAHIAggAUEBaiAJSRs2AgAgAkECaiECIAFBAmohASAEQQJrIgQNAAsLIAsEQCANIAIgCmwgEGpBAnRqIAcgCCABIAlJGzYCAAsgAyAFaiEDIBBBAWoiECAKRw0ACwwDCyAGRQ0CQQEgASgCICICayEDIAZBA3EhBEEAIQEgBkEBa0EDTwRAIAZBfHEhBQNAIA0gAUECdGogAiADIAEgCUkbNgIAIA0gAUEBciIGQQJ0aiACIAMgBiAJSRs2AgAgDSABQQJyIgZBAnRqIAIgAyAGIAlJGzYCACANIAFBA3IiBkECdGogAiADIAYgCUkbNgIAIAFBBGohASAFQQRrIgUNAAsLIARFDQIDQCANIAFBAnRqIAIgAyABIAlJGzYCACABQQFqIQEgBEEBayIEDQALDAILAkAgBkUNACAGQQdxIQlBACECIAZBAWtBB08EQCAGQXhxIRADQCANIAJBAnQiAWpBATYCACANIAFBBHJqQQE2AgAgDSABQQhyakEBNgIAIA0gAUEMcmpBATYCACANIAFBEHJqQQE2AgAgDSABQRRyakEBNgIAIA0gAUEYcmpBATYCACANIAFBHHJqQQE2AgAgAkEIaiECIBBBCGsiEA0ACwsgCUUNAANAIA0gAkECdGpBATYCACACQQFqIQIgCUEBayIJDQALCyAPRQ0BIApBAWshDCAFQQFrIR1BASADQQF0IgFrIQQgAUEBayEGIANBAWshAiAFIANrQQF2IgghCyAKIANrQQF2IgchCSAIIQUgByEBQQAhEANAIA0gBSAKbCABakECdGoiESgCACIbQQFGBEAgEUEANgIACyAbQQFGIRECQAJAIAJBf0cNACABIAlHDQBBACECIAYhAyAJQQEgCUEBShtBAWsiASEJDAELAkAgAkEBRw0AIAEgB0cNAEEAIQIgBCEDIAdBAWoiASAMIAEgDEgbIgEhBwwBCwJAIANBf0cNACAFIAtHDQBBACEDIAQhAiALQQEgC0EBShtBAWsiBSELDAELAkAgA0EBRw0AIAUgCEcNAEEAIQMgBiECIAhBAWoiBSAdIAUgHUgbIgUhCAwBCyADIAVqIQUgASACaiEBCyAQIBFqIhAgD0kNAAsMAQsgBkUNAANADAALAAsLIABBxAlqIggQJEEPISICfyAAQeQKaigCACEFIABBhAtqKAIAIQlBACECIAgoAigiAwRAIAgoAgAhBANAIAQgAkEobGoiASgCFEEBa0EBTQRAIAEgBSABKAIMIgFJBH8gASAIKAIgawUgAQs2AggLIAJBAWoiAiADRw0ACwtBACAAQZwLaiINKAIARQ0AGkEAIQZBACANKAIEIgJBAksNABogBSEBA0ACQAJAAkACQAJAAkACQAJAIAIOAwABAwELIAEg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IAEgAmoiAS0AADoABCADIAEgAmoiAS0AADoABSADIAEgAmoiAS0AADoABiADIAEgAmoiAS0AADoAByADIAEgAmoiAS0AADoACCADIAEgAmoiAS0AADoACSADIAEgAmoiAS0AADoACiADIAEgAmoiAS0AADoACyADIAEgAmoiAS0AADoADCADIAEgAmoiAS0AADoADSADIAEgAmoiAS0AADoADiADIAEgAmotAAA6AA8gA0EQaiEDCyAdKAIAIAUgEGwiEEEIdGogDyAFQQN0IgFsQQN0aiALQQN0aiEKIAFB+P///wdxIQEgDkUEQCAIIAogAUF/c2oiAi0AADoAACAIIAogAWstAAA6AAEgCCACLQACOgACIAggAi0AAzoAAyAIIAItAAQ6AAQgCCACLQAFOgAFIAggAi0ABjoABiAIIAItAAc6AAcgCCACQQhqIgItAAA6AAggCCAQQQZ0IAJqIgJBCGstAAA6AAkgCCACQQdrLQAAOgAKIAggAkEGay0AADoACyAIIAJBBWstAAA6AAwgCCACQQRrLQAAOgANIAggAkEDay0AADoADiAIIAJBAmstAAA6AA8gCCACQQFrLQAAOgAQIAggAi0AADoAEQsgC0UNACADIApBAWsiAi0AADoAACADIAEgAmoiAi0AADoAASADIAEgAmoiAi0AADoAAiADIAEgAmoiAi0AADoAAyADIAEgAmoiAi0AADoABCADIAEgAmoiAi0AADoABSADIAEgAmoiAi0AADoABiADIAEgAmoiAi0AADoAByADIAEgAmogECAFa0EGdGoiAi0AADoACCADIAEgAmoiAi0AADoACSADIAEgAmoiAi0AADoACiADIAEgAmoiAi0AADoACyADIAEgAmoiAi0AADoADCADIAEgAmoiAi0AADoADSADIAEgAmoiAi0AADoADiADIAEgAmotAAA6AA8LAkACQEECIAYoAgAiAUEGRyABQQZJG0EBRgRAAn8gDCEDIA1ByAJqIQgCfyAGKALIASIBBEAgBigCBCABKAIERgwBC0EACyELAkAgE0UNACALRQ0AQQAgC0ECIAYoAsgBKAIAIgFBBkcgAUEGSRtBAkYbIQsLAn8gBigCzAEiAQRAIAYoAgQgASgCBEYMAQtBAAshBQJAIBNFDQAgBUUNAEEAIAVBAiAGKALMASgCACIBQQZHIAFBBkkbQQJGGyEFCwJ/IAYoAtQBIgEEQCAGKAIEIAEoAgRGDAELQQALIQICQCATRQ0AIAJFDQBBAiAGKALUASgCACIBQQZHIAFBBkkbQQJHIQILAkACQAJAAkACQAJAIAYoAgBBAWpBA3EOAwABAgMLQQEgBUUNBRpBASEHIAMhAQNAIAEgES0AIToAACABIBEtACI6AAEgASARLQAjOgACIAEgES0AJDoAAyABIBEtACU6AAQgASARLQAmOgAFIAEgES0AJzoABiABIBEtACg6AAcgASARLQApOgAIIAEgES0AKjoACSABIBEtACs6AAogASARLQAsOgALIAEgES0ALToADCABIBEtAC46AA0gASARLQAvOgAOIAEgES0AMDoADyAHQRBGDQQgAUEQaiEBIAdBAWohBwwACwALQQEgC0UNBBogAyEBA0AgASAHIBFqIgItAAA6AAAgASACLQAAOgABIAEgAi0AADoAAiABIAItAAA6AAMgASACLQAAOgAEIAEgAi0AADoABSABIAItAAA6AAYgASACLQAAOgAHIAEgAi0AADoACCABIAItAAA6AAkgASACLQAAOgAKIAEgAi0AADoACyABIAItAAA6AAwgASACLQAAOgANIAEgAi0AADoADiABIAItAAA6AA8gAUEQaiEBIAdBAWoiB0EQRw0ACwwCCyADAn8CQCALRQ0AIAVFDQAgES0ADyARLQAwIBEtAA4gES0ALyARLQANIBEtAC4gES0ADCARLQAtIBEtAAsgES0ALCARLQAKIBEtACsgES0ACSARLQAqIBEtAAggES0AKSARLQAHIBEtACggES0ABiARLQAnIBEtAAUgES0AJiARLQAEIBEtACUgES0AAyARLQAkIBEtAAIgES0AIyARLQABIBEtACIgES0AISARLQAAampqampqampqampqampqampqampqampqampqampqakEQakEFdgwBCyALBEAgES0ADyARLQAOIBEtAA0gES0ADCARLQALIBEtAAogES0ACSARLQAIIBEtAAcgES0ABiARLQAFIBEtAAQgES0AAyARLQACIBEtAAAgES0AAWpqampqampqampqampqakEIakEEdgwBC0GAASAFRQ0AGiARLQAwIBEtAC8gES0ALiARLQAtIBEtACwgES0AKyARLQAqIBEtACkgES0AKCAR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BS0AAyAFLQACIAUtAAAgBS0AAWpqakECakECdiIDCyEGIAIgA0H/AXFBgYKECGwiAzYAHCACIAZB/wFxQYGChAhsIgY2ABggAiADNgAUIAIgBjYAECACIAM2AAwgAiAGNgAIIAIgAzYABCACIAY2AAACQCAZBEAgBS0AByAFLQAGIAUtAAUgBS0ABGpqaiIKQQJqQQJ2IQMgEEUEQCADIQYMAgsgAyEGIActAAggBy0AByAHLQAGIAogBy0ABWpqampBBGpBA3YhAwwBCyAQRQRAQYABIQNBgAEhBgwBCyAHLQAIIActAAcgBy0ABSAHLQAGampqQQJqQQJ2IQMgBy0ABCAHLQADIActAAEgBy0AAmpqakECakECdiEGCyACIANB/wFxQYGChAhsIgM2ADwgAiAGQf8BcUGBgoQIbCIGNgA4IAIgAzYANCACIAY2ADAgAiADNgAsIAIgBjYAKCACIAM2ACQgAiAGNgAgDAQLIBkNAkEBDAULQQEgEEUNBBogAiAHLQABOgAAIAIgBy0AAToACCACIActAAE6ABAgAiAHLQABOgAYIAIgBy0AAToAICACIActAAE6ACggAiAHLQABOgAwIAIgBy0AAToAOCACIActAAI6AAEgAiAHLQACOgAJIAIgBy0AAjoAESACIActAAI6ABkgAiAHLQACOgAhIAIgBy0AAjoAKSACIActAAI6ADEgAiAHLQACOgA5IAIgBy0AAzoAAiACIActAAM6AAogAiAHLQADOgASIAIgBy0AAzoAGiACIActAAM6ACIgAiAHLQADOgAqIAIgBy0AAzoAMiACIActAAM6ADogAiAHLQAEOgADIAIgBy0ABDoACyACIActAAQ6ABMgAiAHLQAEOgAbIAIgBy0ABDoAIyACIActAAQ6ACsgAiAHLQAEOgAzIAIgBy0ABDoAOyACIActAAU6AAQgAiAHLQAFOgAMIAIgBy0ABToAFCACIActAAU6ABwgAiAHLQAFOgAkIAIgBy0ABToALCACIActAAU6ADQgAiAHLQAFOgA8IAIgBy0ABjoABSACIActAAY6AA0gAiAHLQAGOgAVIAIgBy0ABjoAHSACIActAAY6ACUgAiAHLQAGOgAtIAIgBy0ABjoANSACIActAAY6AD0gAiAHLQAHOgAGIAIgBy0ABzoADiACIActAAc6ABYgAiAH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IAMgDiARakGwLmotAAA6AAEgAigCHCERIAEtAAshDiADIBIgE2pBsC5qLQAAOgACIAMgDiARakGwLmotAAA6AAMgAigCJCERIAEtABEhDiADIAVqIgMgAigCICABLQAQakGwLmotAAA6AAAgAigCKCESIAEtABIhEyADIA4gEWpBsC5qLQAAOgABIAIoAiwhESABLQATIQ4gAyASIBNqQbAuai0AADoAAiADIA4gEWpBsC5qLQAAOgADIAIoAjQhESABLQAZIQ4gAyAFaiIDIAIoAjAgAS0AGGpBsC5qLQAAOgAAIAIoAjghEiABLQAaIRMgAyAOIBFqQbAuai0AADoAASACKAI8IQIgAS0AGyEBIAMgEiATakGwLmotAAA6AAIgAyABIAJqQbAuai0AADoAAwwBCyABKAIIIQIgAyABKAIANgIAIAMgB2oiAyACNgIAIAEoAhghAiADIAdqIgMgASgCEDYCACADIAdqIAI2AgALIAZBAWoiBkEYRw0ACwwBCyAdIAsQGAsgEEEgaiQAIAgiAw0BC0EAIQMLIAMLIgYNASAgKAK8CSApaigCxAEhAgJ/QQAhAwJAIBsoAgxBA3QgGygCEGsiAUUNAEEBIQMgAUEISw0AQQEgAUEBa3QgGxAQQSAgAWt2RwwBCyADCyAjKAIMckEARyEBAkACQCAUKAIEQQJrDgYAAQEBAQABCyAgIAQ2ArAJC0EBIQZBACABICAoApQJICAoApgJIAQQHSIEGw0BICIgAkEBRmohIiABDQALICBBrAlqKAIAICJqIgEgICgCmAlLDQAgICABNgKsCUEAIQYLICNBwANqJAAgBgsEQCAgKALYCiEAQQAhAyAgKAKoCSECAkAgIEGwCWooAgAiAUUNACAAIAFBAWsiAU8EQCABIQAMAQsgICgCvAkhBANAAkAgBCABQdgBbGooAgQgAkcNACADQQFqIgMgICgCECgCNCIJQQogCUEKSxtJDQAgASEADAILIAFBAWsiASAASw0ACwsDQAJAICAoArwJIABB2AFsaiIBKAIEIAJHDQAgASgCxAEiA0UNACABIANBAWs2AsQBICAoApQJICAoApgJIAAQHSIADQELC0ENISIMAgtBACEiQQAhAgJAAkACQAJAAkAgIEH8CmooAgAEQCAAKAKYCSIERQ0DIARBA3EhBiAAKAK8CSED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IARrQQJ0IAtrIAZqQQRqQQN1IgMgAyAMShsgAyAKSBsiAyAEakGwLmotAAA6AAAgASAJIANrQbAuai0AADoAAAwBCyAKIAQgC2ogBkEBdGpBAmpBAnY6AAAgASAJIAtBAXRqIAZqQQJqQQJ2OgAACyANICBqIgFBBGohAyAHKAI0IQQCQCAIKAIcIAEtAAMiCSABLQAEIgZrIgsgC0EfdSILaiALc00NACAIKAIgIgwgA0ECay0AACILIAlrIgogCkEfdSIKaiAKc00NACAMIAEtAAUiCiAGayIOIA5BH3UiDmogDnNNDQAgBEEDTQRAIAEgBCAIKAIYakEBay0AACIBQX9zIgwgAUEBaiIOIAYgCWtBAnQgCmsgC2pBBGpBA3UiASABIA5KGyABIAxIGyIBIAlqQbAuai0AADoAAyADIAYgAWtBsC5qLQAAOgAADAELIAEgCSAKaiALQQF0akECakECdjoAAyADIAYgCkEBdGogC2pBAmpBAnY6AAALIAgoAhwgAyAdaiIBQQFrIgotAAAiAyABLQAAIglrIgYgBkEfdSIGaiAGc00NACAIKAIgIgwgAUECay0AACIGIANrIgsgC0EfdSILaiALc00NACAMIAEtAAEiCyAJayIOIA5BH3UiDmogDnNNDQAgBEEDTQRAIAogAyAEIAgoAhhqQQFrLQAAIgRBf3MiCiAEQQFqIgwgCSADa0ECdCALayAGakEEakEDdSIEIAQgDEobIAQgCkgbIgRqQbAuai0AADoAACABIAkgBGtBsC5qLQAAOgAADAELIAogAyALaiAGQQF0akECakECdjoAACABIAkgC0EBdGogBmpBAmpBAnY6AAALAkACQCAHKAIAIgEgBygCCCIMRw0AIAEgBygCEEcNACABIAcoAhhHDQAgAUUNASACIAEgCCAQQQxsaiIBIB0QGiANIAcoAgAgASAdEBoMAQsgAQRAIAggEEEMbGoiAyEJIAEgAygCAGpBAWstAAAiBEF/cyEBIARBAWohBgJAIAMoAgQiBCACIBFqIgwtAAAiCyACLQAAIgprIg4gDkEfdSIOaiAOc00NACAJKAIIIg4gAiAbai0AACISIAtrIhMgE0EfdSITaiATc00NACAOIAIgHWotAAAiEyAKayIUIBRBH3UiFGogFHNNDQAgDCABIAYgCiALa0ECdCATayAS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AAEAAAABAAAADgAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAAEAAAAOAAAABAAAAAQAAAD/AAAAAAAAAP8AAAAAAAAAAQAAAA4AAAABAAAADwAAAP8AAAAAAAAA/wAAAAAAAAABAAAADgAAAAEAAAAPAAAABAAAAAQAAAAEAAAABQAAAAQAAAACAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAIAAAAEAAAACAAAAP8AAAAAAAAA/wAAAAAAAAAEAAAAAgAAAAQAAAADAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAACAAAABAAAAAMAAAAEAAAACAAAAAQAAAAJAAAABAAAAAYAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAAEAAAABgAAAAQAAAAMAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAAGAAAABAAAAAcAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAYAAAAEAAAABwAAAAQAAAAMAAAABAAAAA0AAAABAAAADgAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAAEAAAAOAAAA/wAAAAQAAAD/AAAAAAAAAP8AAAAAAAAAAQAAAAsAAAABAAAADgAAAP8AAAAAAAAA/wAAAAAAAAABAAAACwAAAAEAAAAOAAAABAAAAAEAAAD/AAAABAAAAAIAAAAKAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAAAgAAAAoAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAABAAAADwAAAAIAAAAKAAAA/wAAAAAAAAD/AAAAAAAAAAEAAAAPAAAAAgAAAAoAAAAEAAAABQAAAP8AAAAAAAAABAAAAAYAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAAEAAAABgAAAP8AAAAMAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAADAAAABAAAAAYAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAMAAAAEAAAABgAAAAQAAAAJAAAA/wAAAAwAAAD/AAAAAgAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAACAAAA/wAAAAgAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAcAAAD/AAAAAgAAAP8AAAAAAAAA/wAAAAAAAAAEAAAABwAAAP8AAAACAAAABAAAAA0AAAD/AAAACAAAAAMAAAAPAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAAAwAAAA8AAAAAAAAABQAAAP8AAAAAAAAA/wAAAAAAAAADAAAADwAAAAEAAAAKAAAA/wAAAAAAAAD/AAAAAAAAAAMAAAAPAAAAAQAAAAoAAAAAAAAABQAAAAQAAAAAAAAAAQAAAAsAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAABAAAACwAAAAQAAAABAAAA/wAAAAAAAAD/AAAAAAAAAAEAAAALAAAAAQAAAA4AAAD/AAAAAAAAAP8AAAAAAAAAAQAAAAsAAAABAAAADgAAAAQAAAABAAAABAAAAAQAAAAAAAAABwAAAP8AAAAAAAAA/wAAAAAAAAD/AEHUJwsVBwAAAAAAAAANAAAA/wAAAAAAAAD/AEH0JwsVBwAAAAQAAAACAAAA/wAAAAAAAAD/AEGUKAvZAQcAAAAEAAAAAgAAAAAAAAANAAAABAAAAAgAAAAEAAAAAwAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAADAAAABAAAAAkAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAMAAAAEAAAABgAAAP8AAAAAAAAA/wAAAAAAAAAEAAAAAwAAAAQAAAAGAAAABAAAAAkAAAAEAAAADAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAADAAAAAgAAAAMAAAAAAAAAAQAAAAAAAAABAAAAAgAAAAMAAAACAAAAAwAQfgpCwUEAAAABABBiCoLJQQAAAAEAAAACAAAAAgAAAAMAAAADAAAAAgAAAAIAAAADAAAAAwAQbEuC8gGAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAAAAQAAAAQAAAAFAAAAAgAAAAMAAAAGAAAABwAAAAgAAAAJAAAADAAAAA0AAAAKAAAACwAAAA4AAAAPAAAAAAAAAAEAAAABAEGENQshAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAQAAAAIAAAACAEG0NQsFBQAAAAQAQcQ1C8kGBwAAAAQAAAACAAAABAAAAAEAAAAEAAAABAAAAAQAAAADAAAABAAAAAYAAAAAAAAADQAAAAQAAAAIAAAAAAAAAA8AAAAEAAAACgAAAAQAAAAJAAAABAAAAAwAAAAEAAAACwAAAAQAAAAOAAAAAAAAABEAAAAEAAAAEAAAAAAAAAATAAAABAAAABIAAAAAAAAAFQAAAAQAAAAUAAAAAAAAABcAAAAEAAAAFgAAAAEAAAAKAAAAAQAAAAsAAAAEAAAAAAAAAAQAAAABAAAAAQAAAA4AAAABAAAADwAAAAQAAAAEAAAABAAAAAUAAAAEAAAAAgAAAAQAAAADAAAABAAAAAgAAAAEAAAACQAAAAQAAAAGAAAABAAAAAcAAAAEAAAADAAAAAQAAAANAAAAAQAAABIAAAABAAAAEwAAAAQAAAAQAAAABAAAABEAAAABAAAAFgAAAAEAAAAXAAAABAAAABQAAAAEAAAAFQAAAAEAAAALAAAAAQAAAA4AAAAEAAAAAQAAAP8AAAAEAAAAAQAAAA8AAAACAAAACgAAAAQAAAAFAAAA/wAAAAAAAAAEAAAAAwAAAAQAAAAGAAAABAAAAAkAAAD/AAAADAAAAAQAAAAHAAAA/wAAAAIAAAAEAAAADQAAAP8AAAAIAAAAAQAAABMAAAACAAAAEgAAAAQAAAARAAAA/wAAABAAAAABAAAAFwAAAAIAAAAWAAAABAAAABUAAAD/AAAAFAAAAAMAAAAPAAAAAQAAAAoAAAAAAAAABQAAAAQAAAAAAAAAAQAAAAsAAAABAAAADgAAAAQAAAABAAAABAAAAAQAAAAAAAAABwAAAAQAAAACAAAAAAAAAA0AAAAEAAAACAAAAAQAAAADAAAABAAAAAYAAAAEAAAACQAAAAQAAAAMAAAAAwAAABMAAAABAAAAEgAAAAAAAAARAAAABAAAABAAAAADAAAAFwAAAAEAAAAWAAAAAAAAABUAAAAEAAAAFAAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwBBljwLLgEBAQEBAQICAgICAgMDAwMDAwQEBAQEBAUFBQUFBQYGBgYGBgcHBwcHBwgICAgAQdA8C0UKAAAADQAAABAAAAALAAAADgAAABIAAAANAAAAEAAAABQAAAAOAAAAEgAAABcAAAAQAAAAFAAAABkAAAASAAAAFwAAAB0AQaE9CzMBAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMAQeQ9C8wCAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAdAAAAHgAAAB8AAAAgAAAAIAAAACEAAAAiAAAAIgAAACMAAAAjAAAAJAAAACQAAAAlAAAAJQAAACUAAAAmAAAAJgAAACYAAAAnAAAAJwAAACcAAAAnAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAvHw8AFxsdHgcLDQ4nKy0uEAMFCgwTFRocIyUqLAECBAgREhQYBgkWGSAhIiQoJikAEAECBAggAwUKDA8vBwsNDgYJHyMlKiwhIiQoJystLhESFBgTFRocFxsdHhYZJikAQbDAAAsDMCJQ";if(!M.startsWith(x)){var DA=M;M=A.locateFile?A.locateFile(DA,s):s+DA}function oA(){var I=M;try{if(I==M&&c)return new Uint8Array(c);var B=aA(I);if(B)return B;if(G)return G(I);throw"both async and sync fetching of the wasm failed"}catch(o){l(o)}}function LA(){return c||typeof fetch!="function"?Promise.resolve().then(function(){return oA()}):fetch(M,{credentials:"same-origin"}).then(function(I){if(!I.ok)throw"failed to load wasm binary file at \'"+M+"\'";return I.arrayBuffer()}).catch(function(){return oA()})}var H,v;function _(I){for(;0<I.length;){var B=I.shift();if(typeof B=="function")B(A);else{var o=B.u;typeof o=="number"?B.s===void 0?z.get(o)():z.get(o)(B.s):o(B.s===void 0?null:B.s)}}}var UA=typeof atob=="function"?atob:function(I){var B="",o=0;I=I.replace(/[^A-Za-z0-9\\+\\/=]/g,"");do{var y="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(I.charAt(o++)),F="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(I.charAt(o++)),U="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(I.charAt(o++)),sA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(I.charAt(o++));y=y<<2|F>>4,F=(F&15)<<4|U>>2;var JA=(U&3)<<6|sA;B+=String.fromCharCode(y),U!==64&&(B+=String.fromCharCode(F)),sA!==64&&(B+=String.fromCharCode(JA))}while(o<I.length);return B};function aA(I){if(I.startsWith(x)){try{var B=UA(I.slice(x.length)),o=new Uint8Array(B.length);for(I=0;I<B.length;++I)o[I]=B.charCodeAt(I)}catch(y){throw Error("Converting base64 string to bytes failed.")}return o}}var kA={a:function(I,B,o){r.copyWithin(I,B,B+o)},b:function(I){var B=r.length;if(I>>>=0,2147483648<I)return!1;for(var o=1;4>=o;o*=2){var y=B*(1+.2/o);y=Math.min(y,I+100663296),y=Math.max(I,y),0<y%65536&&(y+=65536-y%65536);A:{try{w.grow(Math.min(2147483648,y)-m.byteLength+65535>>>16),QA();var F=1;break A}catch(U){}F=void 0}if(F)return!0}return!1}};(function(){function I(F){A.asm=F.exports,w=A.asm.c,QA(),z=A.asm.r,EA.unshift(A.asm.d),Y--,A.monitorRunDependencies&&A.monitorRunDependencies(Y),Y==0&&W&&(F=W,W=null,F())}function B(F){I(F.instance)}function o(F){return LA().then(function(U){return WebAssembly.instantiate(U,y)}).then(F,function(U){R("failed to asynchronously prepare wasm: "+U),l(U)})}var y={a:kA};if(Y++,A.monitorRunDependencies&&A.monitorRunDependencies(Y),A.instantiateWasm)try{return A.instantiateWasm(y,I)}catch(F){return R("Module.instantiateWasm callback failed with error: "+F),!1}return(function(){return c||typeof WebAssembly.instantiateStreaming!="function"||M.startsWith(x)||typeof fetch!="function"?o(B):fetch(M,{credentials:"same-origin"}).then(function(F){return WebAssembly.instantiateStreaming(F,y).then(B,function(U){return R("wasm streaming compile failed: "+U),R("falling back to ArrayBuffer instantiation"),o(B)})})})().catch(E),{}})(),A.___wasm_call_ctors=function(){return(A.___wasm_call_ctors=A.asm.d).apply(null,arguments)},A._memcpy=function(){return(A._memcpy=A.asm.e).apply(null,arguments)},A._h264bsdInit=function(){return(A._h264bsdInit=A.asm.f).apply(null,arguments)},A._malloc=function(){return(A._malloc=A.asm.g).apply(null,arguments)},A._h264bsdDecode=function(){return(A._h264bsdDecode=A.asm.h).apply(null,arguments)},A._free=function(){return(A._free=A.asm.i).apply(null,arguments)},A._h264bsdShutdown=function(){return(A._h264bsdShutdown=A.asm.j).apply(null,arguments)},A._h264bsdNextOutputPicture=function(){return(A._h264bsdNextOutputPicture=A.asm.k).apply(null,arguments)},A._h264bsdNextOutputPictureRGBA=function(){return(A._h264bsdNextOutputPictureRGBA=A.asm.l).apply(null,arguments)},A._h264bsdPicWidth=function(){return(A._h264bsdPicWidth=A.asm.m).apply(null,arguments)},A._h264bsdPicHeight=function(){return(A._h264bsdPicHeight=A.asm.n).apply(null,arguments)},A._h264bsdCroppingParams=function(){return(A._h264bsdCroppingParams=A.asm.o).apply(null,arguments)},A._h264bsdAlloc=function(){return(A._h264bsdAlloc=A.asm.p).apply(null,arguments)},A._h264bsdFree=function(){return(A._h264bsdFree=A.asm.q).apply(null,arguments)},A.setValue=function(I,B,o){switch(o=o||"i8",o.charAt(o.length-1)==="*"&&(o="i32"),o){case"i1":q[I>>0]=B;break;case"i8":q[I>>0]=B;break;case"i16":d[I>>1]=B;break;case"i32":J[I>>2]=B;break;case"i64":v=[B>>>0,(H=B,1<=+Math.abs(H)?0<H?(Math.min(+Math.floor(H/4294967296),4294967295)|0)>>>0:~~+Math.ceil((H-+(~~H>>>0))/4294967296)>>>0:0)],J[I>>2]=v[0],J[I+4>>2]=v[1];break;case"float":S[I>>2]=B;break;case"double":f[I>>3]=B;break;default:l("invalid type for setValue: "+o)}},A.getValue=function(I,B){switch(B=B||"i8",B.charAt(B.length-1)==="*"&&(B="i32"),B){case"i1":return q[I>>0];case"i8":return q[I>>0];case"i16":return d[I>>1];case"i32":return J[I>>2];case"i64":return J[I>>2];case"float":return S[I>>2];case"double":return f[I>>3];default:l("invalid type for getValue: "+B)}return null};var O;W=function I(){O||$(),O||(W=I)};function $(){function I(){if(!O&&(O=!0,A.calledRun=!0,!b)){if(_(EA),C(A),A.onRuntimeInitialized&&A.onRuntimeInitialized(),A.postRun)for(typeof A.postRun=="function"&&(A.postRun=[A.postRun]);A.postRun.length;){var B=A.postRun.shift();iA.unshift(B)}_(iA)}}if(!(0<Y)){if(A.preRun)for(typeof A.preRun=="function"&&(A.preRun=[A.preRun]);A.preRun.length;)RA();_(CA),0<Y||(A.setStatus?(A.setStatus("Running..."),setTimeout(function(){setTimeout(function(){A.setStatus("")},1),I()},1)):I())}}if(A.run=$,A.preInit)for(typeof A.preInit=="function"&&(A.preInit=[A.preInit]);0<A.preInit.length;)A.preInit.pop()();return $(),g.ready})})();const FA=Q=>Q>=3&&Q<=15,yA=Q=>{switch(Q){case 5:return"Memory allocation error";case 4:return"Failed to activate param set";case 6:return"Byte stream error";case 7:return"NAL unit error";case 8:return"Access unit boundary check error";case 9:return"Pending activation error";case 10:return"Sequence parameter set error";case 11:return"Picture parameter set error";case 12:return"Slice header error";case 13:return"Slice data error";case 14:return"Gaps in frame num error";case 15:return"Reordering error";default:return"Decode error"}},n=class n{constructor(g){D(this,"h264Module");D(this,"decoderInstancePointer",0);D(this,"inputBufferPointer",0);D(this,"inputBufferLength",1024*1024);D(this,"bytesRead",0);D(this,"isIdrPointer",0);D(this,"picIdPointer",0);D(this,"numErrMbs",0);D(this,"croppingPointers",{croppingFlag:0,leftOffset:0,width:0,topOffset:0,height:0});D(this,"parameters");D(this,"getParameters",()=>this.parameters);D(this,"unload",()=>{this.shutdownDecoder(),this.h264Module._free(this.inputBufferPointer),this.h264Module._free(this.bytesRead),this.h264Module._free(this.isIdrPointer),this.h264Module._free(this.picIdPointer),this.h264Module._free(this.numErrMbs),this.h264Module._free(this.croppingPointers.croppingFlag),this.h264Module._free(this.croppingPointers.leftOffset),this.h264Module._free(this.croppingPointers.width),this.h264Module._free(this.croppingPointers.topOffset),this.h264Module._free(this.croppingPointers.height),this.inputBufferPointer=0,this.bytesRead=0,this.isIdrPointer=0,this.picIdPointer=0,this.numErrMbs=0,this.decoderInstancePointer=0,this.croppingPointers={croppingFlag:0,leftOffset:0,width:0,topOffset:0,height:0}});D(this,"shutdownDecoder",()=>{this.decoderInstancePointer!=0&&(this.h264Module._h264bsdShutdown(this.decoderInstancePointer),this.h264Module._h264bsdFree(this.decoderInstancePointer)),this.parameters=void 0});D(this,"initDecoder",()=>{this.decoderInstancePointer=this.h264Module._h264bsdAlloc(),this.h264Module._h264bsdInit(this.decoderInstancePointer,0)});D(this,"decode",g=>{if(g.byteLength>this.inputBufferLength){const i=this.h264Module._malloc(g.byteLength);this.h264Module._free(this.inputBufferPointer),this.inputBufferPointer=i}this.h264Module.HEAPU8.set(g,this.inputBufferPointer);let A=g.byteLength,C=0,E=0;do E=this.h264Module._h264bsdDecode(this.decoderInstancePointer,this.inputBufferPointer+C,A,0,this.bytesRead),C=this.h264Module.getValue(this.bytesRead,"i32"),A-=C;while(A>0&&!FA(E));switch(E){case 0:case 1:case 2:{if(E===1)return this.receiveFrame();if(E===2)return this.receiveHeader()}break;case 1024:break;default:throw new Error(yA(E))}});D(this,"receiveFrame",()=>{const g=this.h264Module._h264bsdNextOutputPicture(this.decoderInstancePointer,this.picIdPointer,this.isIdrPointer,this.numErrMbs);if(!g)return;if(!this.parameters){const C=this.h264Module._h264bsdPicWidth(this.decoderInstancePointer)*16,E=this.h264Module._h264bsdPicHeight(this.decoderInstancePointer)*16;this.h264Module._h264bsdCroppingParams(this.decoderInstancePointer,this.croppingPointers.croppingFlag,this.croppingPointers.leftOffset,this.croppingPointers.width,this.croppingPointers.topOffset,this.croppingPointers.height);const i=this.h264Module.getValue(this.croppingPointers.croppingFlag,"i32"),a=this.h264Module.getValue(this.croppingPointers.leftOffset,"i32"),s=this.h264Module.getValue(this.croppingPointers.width,"i32"),G=this.h264Module.getValue(this.croppingPointers.topOffset,"i32"),R=this.h264Module.getValue(this.croppingPointers.height,"i32");this.parameters={width:C,height:E,cropping:i?{left:a,top:G,width:s,height:R}:void 0}}const A=this.parameters.width*this.parameters.height*3/2;return this.h264Module.HEAPU8.subarray(g,g+A)});D(this,"receiveHeader",()=>{});this.h264Module=g,this.initDecoder(),this.inputBufferPointer=this.h264Module._malloc(this.inputBufferLength),this.bytesRead=g._malloc(4),this.isIdrPointer=g._malloc(4),this.picIdPointer=g._malloc(4),this.numErrMbs=g._malloc(4),this.croppingPointers={croppingFlag:g._malloc(4),leftOffset:g._malloc(4),width:g._malloc(4),topOffset:g._malloc(4),height:g._malloc(4)}}};D(n,"create",()=>T(null,null,function*(){return new n(yield NA())}));let j=n;const BA=Q=>{const{pictureParameterSets:g,sequenceParameterSets:A}=GA(Q.data),C=[...A,...g],E=new Uint8Array(C.reduce((a,s)=>a+s.byteLength+4,0));let i=0;return C.forEach(a=>{E[0+i]=0,E[1+i]=0,E[2+i]=0,E[3+i]=1,E.set(new Uint8Array(a),i+4),i+=a.byteLength+4}),E},p=class p{constructor(g){D(this,"decodedSamples",[]);D(this,"decoder");D(this,"initSegments",new Map);D(this,"previousSample");D(this,"isWaitingForSync",!0);D(this,"unload",()=>{this.decoder.unload()});D(this,"initSegment",g=>{this.initSegments.set(g.renditionId,g)});D(this,"enqueue",g=>{var s,G,R,c;const A=this.initSegments.get(g.renditionId);if(!A)throw N(g.renditionId,g.channelId);const C=((s=this.previousSample)==null?void 0:s.width)!==g.width||((G=this.previousSample)==null?void 0:G.height)!==g.height,E=((R=this.previousSample)==null?void 0:R.channelId)!==g.channelId,i=((c=this.previousSample)==null?void 0:c.renditionId)!==g.renditionId;if(this.previousSample){if(E||i||C){this.decoder.shutdownDecoder(),this.decoder.initDecoder();const w=BA(A);this.decoder.decode(w),this.isWaitingForSync=!0}}else{const w=BA(A);this.decoder.decode(w),this.isWaitingForSync=!0}if(this.previousSample){const w=this.previousSample;g.timestamp/g.timescale>(w.timestamp+w.duration*2)/w.timescale&&(this.isWaitingForSync=!0)}if(this.previousSample=g,this.isWaitingForSync&&!g.isSync)return;this.isWaitingForSync=!1;const a=Date.now();hA(g.data,w=>{var q,r,d,J;const b=new Uint8Array(w.buffer,w.byteOffset,w.byteLength),m=this.decoder.decode(b);if(m){if(!g.buffer)throw new Error("Expected sample to contain buffer");const S=this.decoder.getParameters();if(new Uint8Array(g.buffer).set(m),S){const f=[new Uint8Array(g.buffer,0,S.width*S.height),new Uint8Array(g.buffer,S.width*S.height,S.width/2*S.height/2),new Uint8Array(g.buffer,S.width*S.height+S.width/2*S.height/2,S.width/2*S.height/2)];this.decodedSamples.push(gA(IA({},g),{buffer:g.buffer,type:"video",format:"yuv420",colorPrimaries:"bt709",width:(r=(q=S.cropping)==null?void 0:q.width)!=null?r:S.width,height:(J=(d=S.cropping)==null?void 0:d.height)!=null?J:S.height,codedWidth:S.width,codedHeight:S.height,data:f,statistics:{decodeTime:Date.now()-a,transportTimeFromWorker:0,transportTimeToWorker:0,samplesInBatch:1}}))}}return!0})});D(this,"take",()=>this.decodedSamples.shift());this.decoder=g}};D(p,"create",()=>T(null,null,function*(){return new p(yield j.create())}));let V=p;const L=self,tA=()=>T(null,null,function*(){try{L.decoder=yield V.create(),L.postMessage({type:"ready"})}catch(Q){L.postMessage({type:"error",message:Q instanceof Error?Q.message:void 0})}}),wA=Q=>{const g=Q;g.data=null};tA(),L.addEventListener("message",Q=>{var g,A,C;switch(Q.data.type){case"decode samples":try{const E=Date.now()-Q.data.timestamp,i=[];Q.data.samples.map(G=>{var R;return(R=L.decoder)==null?void 0:R.enqueue(G)});let a;for(;a=(g=L.decoder)==null?void 0:g.take();)a.statistics&&(a.statistics.transportTimeToWorker=E,a.statistics.samplesInBatch=Q.data.samples.length),i.push(a);const s=i.map(G=>G.buffer);Q.data.samples.map(G=>wA(G)),L.postMessage({type:"decoded samples",samples:i,timestamp:Date.now(),samplesProcessedCount:Q.data.samples.length},s)}catch(E){L.postMessage({type:"error",message:E instanceof Error?E.message:void 0})}break;case"unload":(A=L.decoder)==null||A.unload(),L.decoder=void 0;break;case"init segment":(C=L.decoder)==null||C.initSegment(Q.data.initSegment);break}})})();\n',br=typeof self!="undefined"&&self.Blob&&new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);",Nr],{type:"text/javascript;charset=utf-8"});function Ww(i){let A;try{if(A=br&&(self.URL||self.webkitURL).createObjectURL(br),!A)throw"";const t=new Worker(A,{name:i==null?void 0:i.name});return t.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(A)}),t}catch(t){return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(Nr),{name:i==null?void 0:i.name})}}const yB=class yB{constructor(A,t){I(this,"decodedSamples",[]);I(this,"codedSamples",[]);I(this,"decoder");I(this,"errors",new x(10));I(this,"pool");I(this,"enqueuedSamplesCount",0);I(this,"processedSamplesCount",0);I(this,"targetSamplesInBatch",4);I(this,"targetSamplesInWorker",20);I(this,"unload",()=>{this.decoder.postMessage({type:"unload"}),this.decoder.removeEventListener("message",this.onDecoderEvent),this.decoder.terminate()});I(this,"enqueue",A=>{if(this.codedSamples.push(A),this.samplesInDecoder()===0||this.codedSamples.length>=this.targetSamplesInBatch){const t=this.codedSamples.slice(0,this.targetSamplesInBatch);this.codedSamples=this.codedSamples.slice(this.targetSamplesInBatch),t.forEach(e=>{const g=Math.ceil(e.width/16)*16,B=Math.ceil(e.height/16)*16,o=g*B*3/2;e.buffer=this.pool.get(o)}),this.sendSamples(t),this.enqueuedSamplesCount+=t.length}});I(this,"initSegment",A=>{const t={type:"init segment",initSegment:A};this.decoder.postMessage(t)});I(this,"take",()=>this.decodedSamples.shift());I(this,"samplesInDecoder",()=>this.enqueuedSamplesCount-this.processedSamplesCount);I(this,"sendSamples",A=>{const t={type:"decode samples",samples:A,timestamp:Date.now()},e=A.flatMap(g=>[g.data,g.buffer]);this.decoder.postMessage(t,e)});I(this,"onDecoderEvent",A=>{switch(A.data.type){case"ready":break;case"error":this.errors.push(new Error(A.data.message));break;case"decoded samples":{this.processedSamplesCount+=A.data.samplesProcessedCount;const t=A.data.timestamp;A.data.samples.forEach(e=>{e.statistics&&(e.statistics.transportTimeFromWorker=Date.now()-t)}),this.decodedSamples.push(...A.data.samples)}break}});this.decoder=A,this.pool=t,this.decoder.addEventListener("message",this.onDecoderEvent)}error(){return this.errors.pop()}};I(yB,"create",A=>c(null,null,function*(){const t=new Ww;return yield new Promise((e,g)=>{const B=o=>{t.removeEventListener("message",B),o.data.type==="ready"?e():g()};t.addEventListener("message",B)}),new yB(t,A)}));let AC=yB;const Ow=Object.freeze(Object.defineProperty({__proto__:null,H264DecoderWorkerContext:AC},Symbol.toStringTag,{value:"Module"}));u.AUTHENTICATION_EXPIRED_CODE=ZC,u.AUTHENTICATION_FAILED_CODE=VC,u.ApiClient=GQ,u.CHANNEL_NOT_FOUND_CODE=XC,u.CONNECTION_FAILED_AFTER_RETRIES_CODE=OC,u.CONNECTION_FAILED_CODE=WC,u.CastSender=YC,u.DISCONNECTED_BY_EDGE=_C,u.INACTIVITY_CODE=zC,u.NO_INCOMING_DATA=jC,u.Player=Tw,u.Vindral=Do,u.VindralError=O,Object.defineProperty(u,Symbol.toStringTag,{value:"Module"})}));
|
|
60
|
+
</svg>`},pause:{viewBox:"-160 -160 832 832",content:'<path fill="white" d="M208,432H160a16,16,0,0,1-16-16V96a16,16,0,0,1,16-16h48a16,16,0,0,1,16,16V416A16,16,0,0,1,208,432Z"/><path fill="white" d="M352,432H304a16,16,0,0,1-16-16V96a16,16,0,0,1,16-16h48a16,16,0,0,1,16,16V416A16,16,0,0,1,352,432Z"/>'},play:{viewBox:"-6 -6 36 36",content:'<path d="M7 17.259V6.74104C7 5.96925 7.83721 5.48837 8.50387 5.87726L18.2596 11.5681C18.5904 11.761 18.5904 12.2389 18.2596 12.4319L8.50387 18.1227C7.83721 18.5116 7 18.0308 7 17.259Z" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>'},airPlay:{viewBox:"-8 -8 40 40",content:'<path fill="white" d="M12.8 13.4c-.1-.1-.1-.2-.2-.2c-.5-.3-1.1-.2-1.5.2l-4 6c0 .2-.1.4-.1.6c0 .6.4 1 1 1h8c.2 0 .4-.1.6-.2c.5-.3.6-.9.3-1.4zM19 3H5C3.3 3 2 4.3 2 6v9c0 1.7 1.3 3 3 3h.8c.6 0 1-.4 1-1s-.4-1-1-1H5c-.6 0-1-.4-1-1V6c0-.6.4-1 1-1h14c.6 0 1 .4 1 1v9c0 .6-.4 1-1 1h-.8c-.6 0-1 .4-1 1s.4 1 1 1h.8c1.7 0 3-1.3 3-3V6c0-1.7-1.3-3-3-3"/>'}},Wm=xm["icon-button"];class ni extends J{constructor(e,t,g){super(document.createElement("div"));s(this,"iconElement");s(this,"setIcon",e=>{this.iconElement.setAttribute("viewBox",TQ[e].viewBox),this.iconElement.innerHTML=TQ[e].content});s(this,"isHidden",()=>this.element.style.display==="none");s(this,"setHidden",e=>e?this.hide():this.show());s(this,"show",()=>{this.element.style.display="block"});s(this,"hide",()=>{this.element.style.display="none"});this.element.style.cursor="pointer",this.element.setAttribute("role","button"),this.element.setAttribute("aria-label",e),this.iconElement=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.iconElement.setAttribute("width","40px"),this.iconElement.setAttribute("height","40px"),this.iconElement.setAttribute("class",Wm),this.setIcon(t),this.element.addEventListener("click",g),this.element.appendChild(this.iconElement)}}const Ro={list:"_list_1vkum_1","list-item":"_list-item_1vkum_12","list-item-disabled":"_list-item-disabled_1vkum_16",hidden:"_hidden_1vkum_20"},YQ=Ro.hidden,Om=Ro.list,Vm=Ro["list-item"],Zm=Ro["list-item-disabled"];class Xm extends J{constructor({items:e,onItemClick:t,classNames:g=[],maxHeight:n}){super(document.createElement("div"));s(this,"onItemClick");s(this,"updateItems",e=>{var t;for(;this.element.firstChild;)(t=this.element.lastChild)==null||t.remove();e.forEach(g=>{const n=document.createElement("div");g.disabled||n.addEventListener("click",()=>this.onItemClick(g)),n.className=[Vm,g.disabled?Zm:""].join(" "),n.appendChild(g.element()),this.element.appendChild(n)})});s(this,"hide",()=>this.element.classList.add(YQ));s(this,"show",()=>this.element.classList.remove(YQ));this.element.className=[Om,...g].join(" "),this.onItemClick=t,this.updateItems(e),n&&(this.element.style.maxHeight=n)}}const zB={container:"_container_13xnz_1",hidden:"_hidden_13xnz_6",list:"_list_13xnz_10"},jm=zB.list,PQ=zB.hidden,zm=zB.container;class Go extends J{constructor({label:e,items:t,onItemClick:g,iconButtonType:n,onToggle:o}){super(document.createElement("div"));s(this,"iconButton");s(this,"onItemClick");s(this,"onToggle");s(this,"maxHeight");s(this,"items");s(this,"list");s(this,"onButtonClick",()=>{this.toggleShowChannels(),this.onToggle(this)});s(this,"toggleShowChannels",()=>{this.list?this.hideList():this.showList()});s(this,"handleItemClick",e=>{this.toggleShowChannels(),this.onItemClick(e)});s(this,"showList",()=>{this.list=new Xm({items:this.items,onItemClick:this.handleItemClick,classNames:[jm],maxHeight:this.maxHeight}),this.list.attach(this.element)});s(this,"hideList",()=>{var e;(e=this.list)==null||e.detach(),this.list=void 0});s(this,"updateItems",e=>{var t;this.items=e,(t=this.list)==null||t.updateItems(e)});s(this,"isListVisible",()=>this.list!==void 0);s(this,"hide",()=>{this.element.classList.add(PQ)});s(this,"show",()=>{this.element.classList.remove(PQ)});this.element.className=zm,this.onItemClick=g,this.onToggle=o,this.items=t,this.iconButton=new ni(e,n,this.onButtonClick),this.iconButton.attach(this.element)}}const _m=Jg["hide-on-small"],$m=Jg["channel-selection-item"],Aw=Jg["channel-selection-item-selected"],ew=Jg["channel-selection-item-image"],tw=Jg.withThumbnails;class iw extends Go{constructor({vindral:A,enabled:e,thumbnailsEnabled:t,thumbnailModule:g}){const n=()=>{const a=A.channels.map(B=>({channel:B,disabled:!B.isLive,element:()=>{const C=document.createElement("div");if(C.className=[$m,B.channelId===A.channelId?Aw:""].join(" "),g&&t){C.classList.add(tw);const Q=document.createElement("p");Q.innerHTML=B.name,C.appendChild(Q);const h=g.getImageUrl(B),d=document.createElement("img");h&&(d.className=ew,d.src=h,C.style.backgroundImage=`url(${h})`)}else C.innerHTML=B.name;return C}}));this.maxHeight=`calc(${Math.max(110,A.mediaElement.clientHeight)}px - 46px)`,this.updateItems(a),a.length>1&&e!=!1?this.show():this.hide()};A.on("channels",n);const o=a=>A.channelId=a.channel.channelId;super({label:"Channel List",items:[],onItemClick:o,onToggle:G,iconButtonType:"channels"}),this.element.classList.add(_m),this.hide()}}const xQ={"language-button-item":"_language-button-item_1dov5_1","language-button-item-selected":"_language-button-item-selected_1dov5_6"},sw=xQ["language-button-item"],gw=xQ["language-button-item-selected"];class Iw extends Go{constructor({vindral:A}){const e=()=>{const g=A.languages.map(n=>({language:n,disabled:!1,element:()=>{const o=document.createElement("div");return o.className=[sw,n===A.language?gw:""].join(" "),o.innerHTML=n,o}}));this.maxHeight=`calc(${Math.max(110,A.mediaElement.clientHeight)}px - 46px)`,this.updateItems(g),g.length>0?this.show():this.hide()};A.on("languages",e);const t=g=>A.language=g.language;super({label:"Language",items:[],onItemClick:t,onToggle:G,iconButtonType:"languages"}),this.hide()}}class nw extends J{constructor({vindral:e}){super(document.createElement("div"));s(this,"vindral");s(this,"playButton");s(this,"updateState",()=>{this.playButton.setIcon(this.playIcon())});s(this,"onPlayClick",()=>{this.vindral.playbackState!=="paused"?this.vindral.pause():this.vindral.play(),this.playButton.setIcon(this.playIcon())});s(this,"playIcon",()=>this.vindral.playbackState==="paused"?"play":"pause");this.element.style.cursor="pointer",this.vindral=e,this.playButton=new ni("Play",this.playIcon(),this.onPlayClick),this.playButton.attach(this.element)}}const Mg={item:"_item_5vhyo_1","item-selected":"_item-selected_5vhyo_6",title:"_title_5vhyo_10","sub-title":"_sub-title_5vhyo_14","hide-on-small":"_hide-on-small_5vhyo_21"},ow=Mg["hide-on-small"],aw=Mg.item,Bw=Mg["item-selected"],rw=Mg.title,Cw=Mg["sub-title"];class Qw extends Go{constructor({vindral:A}){const e=()=>{const g=A.renditionLevels.map(n=>({rendition:n,disabled:!1,element:()=>{var m,p,y;const o=document.createElement("div");o.className=[aw,n===A.currentRenditionLevel?Bw:""].join(" ");const a=document.createElement("span"),B=document.createElement("span"),{audio:C,video:Q}=n,h=Q?Pc(Q):void 0,d=C?xc(C.sampleRate):void 0;let u=Yc(((m=Q==null?void 0:Q.bitRate)!=null?m:0)+((p=C==null?void 0:C.bitRate)!=null?p:0));if(Q){const k=Q.frameRate[0]/Q.frameRate[1],N=Q.frameRate[0]%Q.frameRate[1]===0?`${k}p`:`${k.toFixed(2)}p`;u+=`, ${N}`}return a.innerHTML=(y=h!=null?h:d)!=null?y:"",a.className=rw,B.innerHTML=u,B.className=Cw,o.appendChild(a),o.appendChild(B),o}}));this.maxHeight=`calc(${Math.max(110,A.mediaElement.clientHeight)}px - 46px)`,this.updateItems(g)};A.on("rendition level",e),A.on("rendition levels",e);const t=({rendition:g})=>{g.audio&&(A.maxAudioBitRate=g.audio.bitRate),g.video&&(A.maxVideoBitRate=g.video.bitRate,A.maxSize=g.video)};super({label:"Rendition Levels",items:[],onItemClick:t,onToggle:G,iconButtonType:"levels"}),this.element.classList.add(ow)}}class Ew extends J{constructor(){super(document.createElement("div")),this.element.style.flexGrow="1"}}const WQ={"text-track-button-item":"_text-track-button-item_1ry10_1","text-track-button-item-selected":"_text-track-button-item-selected_1ry10_6"},OQ=WQ["text-track-button-item"],VQ=WQ["text-track-button-item-selected"];class cw extends Go{constructor({vindral:A}){const e=()=>{const g=A.textTracks.map(n=>({textTrack:n,disabled:!1,element:()=>{const o=document.createElement("div");return o.className=[OQ,n===A.textTrack?VQ:""].join(" "),o.innerHTML=n,o}}));g.length>0?(g.push({textTrack:void 0,disabled:!1,element:()=>{const n=document.createElement("div");return n.className=[OQ,A.textTrack===void 0?VQ:""].join(" "),n.innerHTML="Off",n}}),this.show()):this.hide(),this.maxHeight=`calc(${Math.max(110,A.mediaElement.clientHeight)}px - 46px)`,this.updateItems(g)};A.on("text tracks",e);const t=g=>A.textTrack=g.textTrack;super({label:"Text Tracks",items:[],onItemClick:t,onToggle:G,iconButtonType:"textTracks"}),this.hide()}}class hw extends J{constructor({vindral:e}){super(document.createElement("div"));s(this,"vindral");s(this,"muteButton");s(this,"updateState",()=>{this.muteButton.setIcon(this.muteIcon())});s(this,"onMuteClick",()=>{this.vindral.muted=!this.vindral.muted,this.muteButton.setIcon(this.muteIcon())});s(this,"muteIcon",()=>this.vindral.muted?"mute":"unmute");this.element.style.cursor="pointer",this.vindral=e,this.muteButton=new ni("Mute",this.muteIcon(),this.onMuteClick),this.muteButton.attach(this.element)}}const Uo=KQ.hidden,dw=KQ.bar;class lw extends J{constructor({vindral:e,onFullscreenClicked:t,onOneToOneClicked:g,onPipClicked:n,onAirPlayClicked:o,pauseButtonEnabled:a,fullscreenButtonEnabled:B,pipButtonEnabled:C,channelSelectionEnabled:Q,channelSelectionThumbnails:h,renditionLevelsEnabled:d,languagesButtonEnabled:u,textTracksButtonEnabled:m,oneToOneButtonEnabled:p,thumbnailModule:y}){super(document.createElement("div"));s(this,"items",[]);s(this,"isMouseInElement",!1);s(this,"volumeControls");s(this,"playControls");s(this,"oneToOneButton");s(this,"fullscreenButton");s(this,"airPlayButton");s(this,"containerElement");s(this,"hideLists",()=>{this.items.forEach(e=>"hideList"in e&&e.hideList())});s(this,"listButtons",()=>this.items);s(this,"isAnyListOpen",()=>this.items.filter(e=>"isListVisible"in e&&e.isListVisible()).length>0);s(this,"hasFocus",()=>this.isMouseInElement||this.isAnyListOpen());s(this,"isHidden",()=>this.element.classList.contains(Uo));s(this,"hide",()=>{this.containerElement.style.setProperty("--vindral-control-bar-offset","0px"),this.element.classList.add(Uo)});s(this,"show",()=>{this.containerElement.style.setProperty("--vindral-control-bar-offset","-96px"),this.element.classList.remove(Uo)});s(this,"addCastButton",()=>{const e=document.createElement("google-cast-launcher");this.element.insertBefore(e,this.element.lastChild)});s(this,"addAirPlayButton",()=>{this.airPlayButton.attachBefore(this.element,this.element.lastChild)});s(this,"updateState",()=>{this.playControls.updateState(),this.volumeControls.updateState()});s(this,"onToggle",e=>{this.listButtons().filter(t=>e!==t).forEach(t=>"hideList"in t&&t.hideList())});this.element.className=[dw,Uo].join(" ");const k=new Ew;this.oneToOneButton=new ni("One to One","oneToOne",g),this.fullscreenButton=new ni("Fullscreen","enter",t),this.airPlayButton=new ni("AirPlay","airPlay",o);const N=new ni("Picture in Picture","pip",n),U=new iw({vindral:e,enabled:Q,thumbnailsEnabled:h,thumbnailModule:h?y:void 0}),K=new Qw({vindral:e});this.volumeControls=new hw({vindral:e}),this.playControls=new nw({vindral:e}),this.containerElement=e.mediaElement,a&&e.getOptions().pauseSupportEnabled&&this.playControls.attach(this.element),e.getOptions().media!=="video"&&this.volumeControls.attach(this.element),k.attach(this.element);const W=[];if(u){const Z=new Iw({vindral:e});Z.attach(this.element),W.push(Z)}if(m){const Z=new cw({vindral:e});Z.attach(this.element),W.push(Z)}K.attach(this.element),U.attach(this.element),N.attach(this.element),this.oneToOneButton.attach(this.element),this.fullscreenButton.attach(this.element),this.items.push(k,...W,K,U,N,this.fullscreenButton),this.items.forEach(Z=>"onToggle"in Z&&(Z.onToggle=this.onToggle)),p||this.oneToOneButton.hide(),B||this.fullscreenButton.hide(),C||N.hide(),Q||U.hide(),d||K.hide(),navigator.maxTouchPoints<1&&(this.element.addEventListener("mouseenter",()=>this.isMouseInElement=!0),this.element.addEventListener("mouseleave",()=>this.isMouseInElement=!1))}}const ZQ={castoverlay:"_castoverlay_1n91l_1",hidden:"_hidden_1n91l_20"},_B=ZQ.hidden,uw=ZQ.castoverlay;class mw extends J{constructor(){super(document.createElement("div"));s(this,"onClick");s(this,"setText",e=>{this.element.innerText=e});s(this,"hide",()=>this.element.classList.add(_B));s(this,"show",()=>this.element.classList.remove(_B));this.element.classList.add(uw),this.element.classList.add(_B),this.element.innerText="device"}}const vg={button:"_button_4ybkq_21",image:"_image_4ybkq_98",overlay:"_overlay_4ybkq_118",selected:"_selected_4ybkq_136",hidden:"_hidden_4ybkq_141"},ww=vg.button,$B=vg.hidden,fw=vg.overlay,XQ=vg.image,jQ=vg.selected;class Dw extends J{constructor({title:e,onClick:t,imageUrl:g,selected:n}){super(document.createElement("button"));s(this,"overlay");s(this,"imageHolder1");s(this,"imageHolder2");s(this,"isImageHolder1Active",!1);s(this,"loadingOverlay");s(this,"transition",(e,t,g)=>{t.style.backgroundImage=`url(${g})`,t.style.opacity="1",e.style.opacity="0"});s(this,"setSelected",e=>{e?this.element.classList.add(jQ):this.element.classList.remove(jQ)});s(this,"setAnimationDelay",e=>{this.element.style.animationDelay=e});s(this,"hideLoading",()=>{this.loadingOverlay.hide()});s(this,"isHidden",()=>this.element.classList.contains($B));s(this,"setHidden",e=>e?this.hide():this.show());s(this,"hide",()=>this.element.classList.add($B));s(this,"show",()=>this.element.classList.remove($B));this.element.className=ww,n&&this.setSelected(n),this.element.onclick=()=>{this.loadingOverlay.show(),t()},this.imageHolder1=document.createElement("div"),this.imageHolder1.className=XQ,this.imageHolder1.style.animationFillMode="forwards",this.imageHolder2=document.createElement("div"),this.imageHolder2.className=XQ,this.imageHolder2.style.animationFillMode="forwards",g&&(this.imageHolder1.style.backgroundImage=`url(${g})`,this.isImageHolder1Active=!0),this.loadingOverlay=new aA,this.loadingOverlay.attach(this.element),this.loadingOverlay.hide(),this.element.appendChild(this.imageHolder1),this.element.appendChild(this.imageHolder2),this.overlay=document.createElement("div"),this.overlay.className=fw,this.element.appendChild(this.overlay);const o=document.createElement("span");o.innerHTML=e,this.element.appendChild(o),this.show()}setImageUrl(e){if(e){if(!this.imageHolder1.style.backgroundImage){this.imageHolder1.style.backgroundImage=`url(${e})`,this.isImageHolder1Active=!0;return}this.isImageHolder1Active?this.transition(this.imageHolder1,this.imageHolder2,e):this.transition(this.imageHolder2,this.imageHolder1,e),this.isImageHolder1Active=!this.isImageHolder1Active}}}const zQ={container:"_container_btpgd_13",hidden:"_hidden_btpgd_37"},Ar=zQ.hidden,Sw=zQ.container;class pw extends J{constructor({vindral:e,thumbnailModule:t}){var g;super(document.createElement("div"));s(this,"thumbnailModule");s(this,"list");s(this,"vindral");s(this,"setSelected",e=>{this.list.forEach((t,g)=>{t.setSelected(g.channelId===e.channelId)}),e.channelId!==this.vindral.channelId&&(this.vindral.channelId=e.channelId)});s(this,"isHidden",()=>this.element.classList.contains(Ar));s(this,"setHidden",e=>e?this.hide():this.show());s(this,"hide",()=>this.element.classList.add(Ar));s(this,"show",()=>this.element.classList.remove(Ar));this.thumbnailModule=t,this.list=new Map,this.vindral=e,this.vindral.on("context switch",n=>{if(n==="completed"){this.list.forEach(a=>a.hideLoading());const o=this.vindral.channelId;this.vindral.channels.forEach(a=>{var B;(B=this.list.get(a))==null||B.setSelected(a.channelId===o)})}}),this.vindral.on("channels",()=>{this.list.forEach(o=>o.detach()),this.list.clear();const n=this.vindral.channelId;this.vindral.channels.forEach((o,a)=>{var C;if(!o.isLive)return;const B=new Dw({title:o.name,onClick:()=>{this.setSelected(o)},imageUrl:(C=this.thumbnailModule)==null?void 0:C.getImageUrl(o),selected:o.channelId===n});B.setAnimationDelay(`${a*.05}s`),this.list.set(o,B)}),this.list.forEach(o=>o.attach(this.element))}),(g=this.thumbnailModule)==null||g.on("updatedImages",()=>{this.list.forEach((n,o)=>{var a;n.setImageUrl((a=this.thumbnailModule)==null?void 0:a.getImageUrl(o))})}),this.element.className=Sw,this.show()}}const er={fullscreen:"_fullscreen_1v9d8_1"}.fullscreen,Ra=class Ra extends ie{constructor(e){super();r(this,Dg);s(this,"container");s(this,"unload",()=>{document.removeEventListener("webkitfullscreenchange",this.onChange),document.removeEventListener("mozfullscreenchange",this.onChange),document.removeEventListener("fullscreenchange",this.onChange),this.container.removeEventListener("webkitendfullscreen",this.onChange)});s(this,"request",()=>l(this,Dg,rc).call(this).catch(e=>{throw this.onChange(),e}));s(this,"exit",()=>l(this,Dg,Cc).call(this).catch(e=>{throw this.onChange(),e}));s(this,"onChange",()=>this.emit("on fullscreen change",this.isFullscreen()));s(this,"isFullscreen",()=>!!(pc()||this.container.classList.contains(er)));s(this,"isSupported",()=>Ra.isFullscreenApiSupported(this.container)||!this.isInIframe());s(this,"isInIframe",()=>window.location!==window.parent.location);this.container=e,document.addEventListener("webkitfullscreenchange",this.onChange),document.addEventListener("mozfullscreenchange",this.onChange),document.addEventListener("fullscreenchange",this.onChange),this.container.addEventListener("webkitendfullscreen",this.onChange)}};Dg=new WeakSet,rc=function(){const e=Yr(this.container);return e?e():(this.container.classList.add(er),Promise.resolve())},Cc=function(){const e=yc(this.container);return e?e():(this.container.classList.remove(er),Promise.resolve())},s(Ra,"isFullscreenApiSupported",e=>Fc(e));let Hg=Ra;const tr={player:"_player_h0il1_1","one-to-one":"_one-to-one_h0il1_19","audio-only":"_audio-only_h0il1_28"},ir={playoverlay:"_playoverlay_1niji_1",hidden:"_hidden_1niji_17","playoverlay-indicator":"_playoverlay-indicator_1niji_23"},bo=ir.hidden,yw=ir.playoverlay,Fw=ir["playoverlay-indicator"];class kw extends J{constructor(){super(document.createElement("div"));s(this,"onClick");s(this,"indicator",document.createElement("div"));s(this,"isHidden",()=>this.element.classList.contains(bo));s(this,"setHidden",e=>e?this.hide():this.show());s(this,"hide",()=>this.element.classList.add(bo));s(this,"show",()=>this.element.classList.remove(bo));this.element.classList.add(yw),this.element.classList.add(bo),this.indicator.className=Fw,this.element.appendChild(this.indicator),this.element.onclick=()=>{this.onClick&&this.onClick()}}}class Rw extends ie{constructor({vindral:e,refreshEveryMs:t}){super();s(this,"thumbnails",new Map);s(this,"interval");s(this,"channels");s(this,"refreshEveryMs");s(this,"isFetching",!1);s(this,"hasFetched",!1);this.channels=[...e.channels],this.refreshEveryMs=t||6e4,e.on("channels",()=>{this.channels=[...e.channels],this.hasFetched||this.refreshThumbnails()})}start(){this.interval||(this.interval=window.setInterval(()=>{this.refreshThumbnails()},this.refreshEveryMs))}stop(){window.clearInterval(this.interval)}getImageUrl(e){return this.thumbnails.get(e.channelId)}refreshThumbnails(){return c(this,null,function*(){if(!this.isFetching){this.isFetching=!0;try{const e=this.channels.map(t=>c(this,null,function*(){const g=t.thumbnailUrls.length<2?0:Math.ceil(t.thumbnailUrls.length/2),n=t.thumbnailUrls[g];if(n){const o=yield fetch(n);if(o.ok){const a=yield o.blob(),B=URL.createObjectURL(a),C=this.thumbnails.get(t.channelId);C&&C.startsWith("blob:")&&URL.revokeObjectURL(C),this.thumbnails.set(t.channelId,B)}}}));yield Promise.all(e),this.emit("updatedImages")}catch(e){console.warn("Error fetching thumbnails",e)}this.isFetching=!1,this.hasFetched=!0}})}}const Gw=tr.player,sr=tr["one-to-one"],Uw=tr["audio-only"],bw={controlsEnabled:!0,castEnabled:!0,channelSelectionEnabled:!0,renditionLevelsEnabled:!1,languagesButtonEnabled:!0,textTracksButtonEnabled:!0,oneToOneButtonEnabled:!1,iosWakeLockEnabled:!0,hideTimeout:2e3,pauseButtonEnabled:!0,airPlayButtonEnabled:!1,playOverlayEnabled:!0,bufferingOverlayEnabled:!0},Nw=i=>!HQ(i);class Lw{constructor(A,e){s(this,"core");s(this,"castSender");s(this,"airPlaySender");s(this,"options");s(this,"state");s(this,"playerElement",document.createElement("div"));s(this,"bufferingOverlay");s(this,"playOverlay");s(this,"castOverlay",new mw);s(this,"channelSelectionList");s(this,"bar");s(this,"stateInterval");s(this,"thumbnailModule");s(this,"browser",qa());s(this,"unload",()=>{var A,e;this.stateInterval&&window.clearInterval(this.stateInterval),this.core.unload(),this.playerElement.remove(),(A=this.thumbnailModule)==null||A.stop(),(e=this.airPlaySender)==null||e.unload()});s(this,"attach",A=>{this.stateInterval&&window.clearInterval(this.stateInterval),this.stateInterval=window.setInterval(this.checkState,100),this.playerElement.remove(),A.appendChild(this.playerElement)});s(this,"setupCastSender",()=>c(this,null,function*(){if(this.options.castEnabled){try{yield this.castSender.init()}catch(A){return}this.castSender.on("connected",()=>{this.state.fullscreen.isFullscreen()&&this.exitFullscreen(),this.core.pause(),this.castOverlay.setText(`Casting to ${this.castSender.getReceiverName()||"device"}`),this.castOverlay.show()}),this.castSender.on("disconnected",()=>{document.hidden||this.core.play(),this.castOverlay.hide()}),this.bar.addCastButton()}}));s(this,"setupAirPlaySender",A=>{A.once("available",()=>{this.bar.addAirPlayButton()}),A.on("connected",()=>{this.core.mediaElement.style.display="hidden",this.core.pause()}),A.on("disconnected",()=>{this.core.mediaElement.style.display="block",document.hidden||this.core.play()})});s(this,"onMouseMove",()=>{this.options.controlsEnabled&&(this.bumpInteractTime(),this.bar.isHidden()&&this.bar.show())});s(this,"onClick",A=>{const e=A.detail===2&&(A.target instanceof HTMLVideoElement||A.target instanceof HTMLCanvasElement),t=this.options.fullscreenButtonEnabled!==!1&&this.options.controlsEnabled!==!1;e&&t&&this.toggleFullscreen().catch(g=>{console.error("error",g)})});s(this,"togglePip",()=>this.core.pictureInPicture.isActive()?this.core.pictureInPicture.exit():(this.triggerUserInput(),this.core.pictureInPicture.enter()));s(this,"toggleFullscreen",()=>c(this,null,function*(){return this.isInFullscreen()?this.exitFullscreen():this.enterFullscreen()}));s(this,"triggerUserInput",()=>{if(this.browser.platform.isIOS){const A=this.core.muted;this.core.muted=!A,this.core.muted=A}});s(this,"toggleOneToOne",()=>{this.playerElement.classList.contains(sr)?this.playerElement.classList.remove(sr):this.playerElement.classList.add(sr)});s(this,"isInFullscreen",()=>this.state.fullscreen.isFullscreen());s(this,"enterFullscreen",()=>c(this,null,function*(){this.triggerUserInput(),this.iosHackResetSize(),this.bar.fullscreenButton.setIcon("exit"),yield this.state.fullscreen.request(),this.lockOrientation()}));s(this,"exitFullscreen",()=>(this.bar.fullscreenButton.setIcon("enter"),this.unlockOrientation(),this.state.fullscreen.exit()));s(this,"showAirPlayPicker",()=>{var A;(A=this.airPlaySender)==null||A.showPlaybackTargetPicker()});s(this,"lockOrientation",()=>{const A=this.core.currentRenditionLevel;if(!(A!=null&&A.video))return;const e=vc(A.video.width>A.video.height?"landscape-primary":"portrait-primary");e&&e.catch(()=>{})});s(this,"unlockOrientation",()=>{Hc()});s(this,"checkState",()=>{this.bar.hasFocus()||this.state.lastInteractionTime&&this.state.lastInteractionTime<=Date.now()-this.options.hideTimeout&&this.core.media!=="audio"&&this.core.playbackState!=="paused"&&this.bar.hide()});s(this,"needsThumbnails",()=>{var A,e,t,g,n,o;return(e=(A=this.options.channelSelectionOptions)==null?void 0:A.barButton)!=null&&e.enabled&&((g=(t=this.options.channelSelectionOptions)==null?void 0:t.barButton)!=null&&g.thumbnails)?!0:!!((o=(n=this.options.channelSelectionOptions)==null?void 0:n.list)!=null&&o.enabled)});s(this,"bumpInteractTime",()=>{this.state.lastInteractionTime=Date.now()});var B,C,Q,h,d,u,m;const t=f(f({},bw),e);this.options=t,this.playerElement.className=Gw,Nw(A)?this.core=A:this.core=new ko(A);const g=!Hg.isFullscreenApiSupported(this.playerElement)&&Hg.isFullscreenApiSupported(this.core.mediaElement)?this.core.mediaElement:this.playerElement;this.state={isBuffering:!1,fullscreen:new Hg(g),lastInteractionTime:0},this.needsThumbnails()&&(this.thumbnailModule=new Rw({vindral:this.core,refreshEveryMs:e==null?void 0:e.thumbnailUpdateInterval}),this.thumbnailModule.start()),(C=(B=this.options.channelSelectionOptions)==null?void 0:B.list)!=null&&C.enabled&&(this.channelSelectionList=new pw({vindral:this.core,thumbnailModule:this.thumbnailModule}));const n=(e==null?void 0:e.channelSelectionEnabled)||((h=(Q=e==null?void 0:e.channelSelectionOptions)==null?void 0:Q.barButton)==null?void 0:h.enabled),o=(u=(d=e==null?void 0:e.channelSelectionOptions)==null?void 0:d.barButton)==null?void 0:u.thumbnails;this.bar=new lw(V(f({vindral:this.core,thumbnailModule:this.thumbnailModule},t),{channelSelectionEnabled:n,channelSelectionThumbnails:o,fullscreenButtonEnabled:this.core.media!=="audio"&&(e==null?void 0:e.fullscreenButtonEnabled)&&this.state.fullscreen.isSupported(),oneToOneButtonEnabled:this.core.media!=="audio"&&(e==null?void 0:e.oneToOneButtonEnabled),pipButtonEnabled:(e==null?void 0:e.pipButtonEnabled)&&this.core.pictureInPicture.isSupported(),onFullscreenClicked:()=>{this.toggleFullscreen().catch(p=>console.error("error",p))},onOneToOneClicked:()=>this.toggleOneToOne(),onPipClicked:()=>{this.togglePip().catch(p=>console.error("error",p))},onAirPlayClicked:()=>this.showAirPlayPicker()})),this.core.media==="audio"&&(this.playerElement.classList.add(Uw),this.options.controlsEnabled&&this.bar.show());const a=this.core.getCastOptions();this.castSender=new eC({background:this.options.castBackground,receiverApplicationId:this.options.castReceiverApplicationId,options:a}),this.setupCastSender(),this.options.airPlayButtonEnabled&&AC.isAirPlaySupported()&&(this.airPlaySender=new AC({url:a.url,channelId:a.channelId,authenticationToken:a.authenticationToken,container:this.playerElement}),this.setupAirPlaySender(this.airPlaySender)),this.core.on("needs user input",p=>{var y;if(this.bar.updateState(),p.forVideo&&this.core.media!=="audio"||!this.options.controlsEnabled){(y=this.playOverlay)==null||y.show();return}p.forAudio&&this.options.controlsEnabled&&(this.state.lastInteractionTime=0,this.bar.show())}),this.core.on("volume state",()=>{this.bar.updateState()}),this.core.on("playback state",p=>{var y,k,N,U,K,W;switch(this.bar.updateState(),p){case"paused":this.bumpInteractTime(),(y=this.bufferingOverlay)==null||y.hide(),this.options.controlsEnabled&&this.bar.show(),(this.core.media!=="audio"||!this.options.controlsEnabled)&&((k=this.playOverlay)==null||k.show());break;case"playing":this.options.controlsEnabled&&((N=this.playOverlay)==null||N.hide()),(U=this.bufferingOverlay)==null||U.hide(),this.castOverlay.hide();break;case"buffering":{(K=this.bufferingOverlay)==null||K.show();const Z=this.core.videoBufferedRanges[this.core.videoBufferedRanges.length-1],j=!Z||Z.start>this.core.currentTime;(W=this.bufferingOverlay)==null||W.fullscreen(j);break}}}),this.core.attach(this.playerElement),this.castOverlay.attach(this.playerElement),this.options.bufferingOverlayEnabled&&(this.bufferingOverlay=new aA,this.bufferingOverlay.attach(this.playerElement)),this.options.playOverlayEnabled&&(this.playOverlay=new kw,this.playOverlay.attach(this.playerElement),this.playOverlay.onClick=()=>{var p;this.core.userInput(),(p=this.playOverlay)==null||p.hide()}),this.channelSelectionList&&this.channelSelectionList.attach(this.playerElement),this.bar.attach(this.playerElement),this.playerElement.addEventListener("click",this.onClick),this.playerElement.addEventListener("mousemove",this.onMouseMove),this.state.fullscreen.on("on fullscreen change",p=>{p?this.bar.fullscreenButton.setIcon("exit"):this.bar.fullscreenButton.setIcon("enter")}),(m=this.bufferingOverlay)==null||m.fullscreen(!0)}iosHackResetSize(){this.core.emitter.emit("ios-hack: reset size")}}class Jw{constructor(){s(this,"map",new Map)}enqueue(A,e){const t=this.map.get(A);t?t.push(e):this.map.set(A,[e])}dequeue(A){const e=this.map.get(A);if(e&&e.length>0){const t=e.shift();return e.length===0&&this.map.delete(A),t}}dequeueWithFallback(A){const e=this.dequeue(A);if(e!==void 0)return e;for(const[t,g]of this.map)if(g.length>0){const n=g.shift();return g.length===0&&this.map.delete(t),n}}removeLast(A){const e=this.map.get(A);!e||e.length===0||(e.pop(),e.length===0&&this.map.delete(A))}clear(){this.map.clear()}}const Mw=globalThis,ji=class ji{constructor(A){s(this,"decodedSamples",[]);s(this,"decoder",null);s(this,"logger");s(this,"initSegments",new Map);s(this,"previousSample");s(this,"previousCodec");s(this,"pendingSamples",new Jw);s(this,"errors",new P(10));s(this,"resetDecoderState",()=>{this.pendingSamples.clear(),this.previousSample=void 0,this.previousCodec=void 0});s(this,"ensureDecoder",()=>((!this.decoder||this.decoder.state==="closed")&&(this.decoder=this.createDecoder()),this.decoder));s(this,"createDecoder",()=>new AudioDecoder({output:A=>{const e=this.pendingSamples.dequeueWithFallback(A.timestamp);if(!e){A.close();return}const{sample:t,decodeStartTime:g}=e;try{const n=A.numberOfFrames,o=A.numberOfChannels,a=A.sampleRate,B=A.timestamp,C=A.duration,Q=new Float32Array(n*o);A.copyTo(Q,{planeIndex:0,format:"f32"});const h=Math.round(B*t.timescale/1e6),d=typeof C=="number"&&Number.isFinite(C)?Math.max(0,Math.round(C*t.timescale/1e6)):t.duration,u=V(f({},t),{timestamp:h,duration:d,type:"audio",format:"f32",data:Q,sampleRate:a,channels:o,statistics:{decodeTime:Math.max(performance.now()-g,0),transportTimeFromWorker:0,transportTimeToWorker:0,samplesInBatch:1}});this.decodedSamples.push(u)}finally{A.close()}},error:A=>{this.logger.error("Decoder error:",A.name,A.message),this.resetDecoderState(),this.errors.push(A)}}));s(this,"buildCodecString",qQ);s(this,"getDescription",(A,e)=>{const t=this.initSegments.get(e.renditionId);if(t&&t.data.byteLength>0&&t.codec===A)return t.data;if(A==="opus")return OC(e.channels,e.sampleRate);if(A==="aac")return LC(e.channels,e.sampleRate)});s(this,"unload",()=>{this.decodedSamples=[],this.resetDecoderState(),this.decoder&&this.decoder.state!=="closed"&&this.decoder.close(),this.decoder=null});s(this,"initSegment",A=>{this.initSegments.set(A.renditionId,A)});s(this,"enqueue",A=>{var C,Q;const e=this.ensureDecoder(),t=A.codec,g=((C=this.previousSample)==null?void 0:C.channelId)!==A.channelId,n=((Q=this.previousSample)==null?void 0:Q.renditionId)!==A.renditionId,o=this.previousCodec!==t;if(!this.previousSample||g||n||o){this.previousSample&&e.state==="configured"&&e.flush().catch(m=>{this.logger.warn("Failed to flush before reconfiguration:",m)});const h=this.buildCodecString(t),d=this.getDescription(t,A),u={codec:h,sampleRate:A.sampleRate,numberOfChannels:A.channels,description:d};try{e.configure(u),this.previousCodec=t}catch(m){this.logger.error(`Failed to configure decoder for ${t} (rendition ${A.renditionId}), dropping sample`,m),this.errors.push(m instanceof Error?m:new Error(`Failed to configure decoder for ${t}`)),this.resetDecoderState(),this.ensureDecoder();return}}if(A.timescale<=0){this.logger.error(`Invalid timescale ${A.timescale} in sample, dropping sample`);return}this.previousSample=A;const a=Math.floor(1e6*A.timestamp/A.timescale),B=Math.floor(1e6*A.duration/A.timescale);try{const h=new EncodedAudioChunk({type:"key",timestamp:a,duration:B>0?B:void 0,data:A.data});this.pendingSamples.enqueue(a,{sample:A,decodeStartTime:performance.now()}),e.decode(h)}catch(h){this.logger.error("Failed to decode chunk:",h),this.pendingSamples.removeLast(a),e.state==="closed"&&(this.resetDecoderState(),this.ensureDecoder())}});s(this,"flush",()=>c(this,null,function*(){if(this.decoder&&this.decoder.state==="configured")try{yield this.decoder.flush()}catch(A){this.logger.error("Failed to flush decoder:",A),this.resetDecoderState()}}));s(this,"error",()=>this.errors.pop());s(this,"take",()=>this.decodedSamples.shift());this.logger=A,this.decoder=this.createDecoder()}};s(ji,"isSupported",()=>typeof Mw.AudioDecoder!="undefined"),s(ji,"create",A=>c(null,null,function*(){if(!ji.isSupported())throw new Error("WebCodecs AudioDecoder is not supported in this environment");return new ji(A)}));let gr=ji;const vw=Object.freeze(Object.defineProperty({__proto__:null,WebCodecsAudioDecoderContext:gr},Symbol.toStringTag,{value:"Module"}));var Hw=(function(){var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return(function(A){A=A||{};var e;e||(e=typeof A!="undefined"?A:{});var t,g;e.ready=new Promise(function(F,b){t=F,g=b});var n={},o;for(o in e)e.hasOwnProperty(o)&&(n[o]=e[o]);var a="";typeof document!="undefined"&&document.currentScript&&(a=document.currentScript.src),i&&(a=i),a.indexOf("blob:")!==0?a=a.substr(0,a.lastIndexOf("/")+1):a="";var B=e.print||console.log.bind(console),C=e.printErr||console.warn.bind(console);for(o in n)n.hasOwnProperty(o)&&(e[o]=n[o]);n=null;var Q;e.wasmBinary&&(Q=e.wasmBinary),e.noExitRuntime,typeof WebAssembly!="object"&&j("no native wasm support detected");var h,d=!1,u=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,m,p,y,k=[],N=[],U=[];function K(){var F=e.preRun.shift();k.unshift(F)}var W=0,Z=null;e.preloadedImages={},e.preloadedAudios={};function j(F){throw e.onAbort&&e.onAbort(F),C(F),d=!0,F=new WebAssembly.RuntimeError("abort("+F+"). Build with -s ASSERTIONS=1 for more info."),g(F),F}function QA(F){return F.startsWith("data:application/octet-stream;base64,")}var NA="data:application/octet-stream;base64,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cSELA0AgUCAJQQJ0IgJqIgEgWCABKgIAkiJVIAIgEWoqAgAiVCBUIFVeGzgCACBQIAJBBHIiAmoiASBYIAEqAgCSIlUgAiARaioCACJUIFQgVV4bOAIAIAlBAmohCSALQQJrIgsNAAsLIARFDQAgUCAJQQJ0IgJqIgEgWCABKgIAkiJVIAIgEWoqAgAiVCBUIFVeGzgCAAsCQCAAQQFIDQAgAEEDcSEEQQAhCSAAQQFrQQNPBEAgAEF8cSEHA0AgESAJQQJ0IgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIBEgAkEEciIBakEANgIAIAEgK2pBgICAj3w2AgAgASAlakGAgICPfDYCACARIAJBCHIiAWpBADYCACABICtqQYCAgI98NgIAIAEgJWpBgICAj3w2AgAgESACQQxyIgFqQQA2AgAgASArakGAgICPfDYCACABICVqQYCAgI98NgIAIAlBBGohCSAHQQRrIgcNAAsLIARFDQADQCARIAlBAnQiAWpBADYCACABICtqQYCAgI98NgIAIAEgJWpBgICAj3w2AgAgCUEBaiEJIARBAWsiBA0ACwsCQCAXIB1OIgENACAdIBciCWtBA3EiCwRAA0AgESAJQQJ0IgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIAlBAWohCSALQQFrIgsNAAsLIB0gF0F/c2pBA0kNAANAIBEgCUECdCIEakEANgIAIAQgK2pBgICAj3w2AgAgBCAlakGAgICPfDYCACARIARBBGoiAmpBADYCACACICtqQYCAgI98NgIAIAIgJWpBgICAj3w2AgAgESAEQQhqIgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIBEgBEEMaiICakEANgIAIAIgK2pBgICAj3w2AgAgAiAlakGAgICPfDYCACAJQQRqIgkgHUcNAAsLAkAgAEEBSA0AQQAhCSAAQQFHBEAgAEF+cSELA0AgESAJIB1qQQJ0IgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIBEgCUEBciAdakECdCICakEANgIAIAIgK2pBgICAj3w2AgAgAiAlakGAgICPfDYCACAJQQJqIQkgC0ECayILDQALCyAAQQFxRQ0AIBEgCSAdakECdCIA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7xAdLz1MWmp3hZOhsMHR4PAPFSMyPUlWYW53gY2vxtrtSQ5tC20LbQttC20LbQttC20LbQttC20LkwuTC20LHguQDA0MnAvwC/ALwgvCC8ILkwuTC8ILnAtICx4LHgumClAPrg+lC4cMhwx2C/ALHgsyDKwMbQseCzwK+QncCm0LvA19DMILHwzLC0gLbQttC20LbQtIC0gLSAtIC0gLwQq+E74Tdgv1DTkN8AsNDOkKWAxYDJwLHgvRCewJwQpIC0wRNRCMCsEKnAvCC20LHgulC8sLbQttC20LbQtIC6YKJA7LC5wL8AvwCzkL9grwC5AM5wulC9sM2wylC+4MrwtrFJYT7AkKDcYNOQ19DBYMMA2lC4wKVwp/CukKHgtxCtkTNhQHEkwRnAlRC+cLhwxhDH8KtApICx4L6QoeC4wKMgxIC5MLbQttC20LbQuTC5MLkwuTC20LbQuTC5MLkwtqEIcMpQsfDMILSAtIC20LnAs5C2QLywucC8ILfQw5C7AOsA6sDB8MpQtIC20LSAucC3YL6QrpCh4LSAtIC2QKDg+uD4cMMgysDHYL5wuTC5MLDQweC+kK6QrpCukKFAoFD/APHQ28DRYMtArCC3YLMgwNDB4LHgtXClcKHgv2ChsUHhOZDAUPcQ1hDFELVQ17DYwKFApxCrQKHgv2CsEKDRDNDtsMWAxtC0gLSAttC+kKtArpCrQK6QoeC0gL9grZE74T5wvZDawM8AsNDIALHwxRC7QKtAq0Ch4L6Qo8CtUQ1RAsC98JhwwwDTANAwwDDDAN8AseC1cKFAqmCsEK8AtkC/YKSAu0Cn8KUQsfDE4MTgyQDGEM8AvCC5MLHgsXESoPbQtICx4LSAseCx4LSAtIC0gLHgtIC20LSAseC6ULZAtkC6ULpQvwCzIMkAxODPALwgucC5wLnAttC7QKhRA1EO4MEw1tC5MLSAulC6ULHgvpCrQKHgseCx4L6QrwD64PHwzCC20LbQttC0gLbQttCx4LHgseC+kKSAvcCgcS3xFhDHENhwylC1EL3gsyDLQKfwp/Cn8KtArpCowKNRCtEM0OSQ6mCtwKSAtIC8ILnAttCx4Lfwp/CukKSAt3EOINwQoeCx4LSAtIC0gLbQttC0gLbQttC20LkwtICzYUORPVCGgNzQ6XDRMNHgvuDJcNTgxRC5wJtwnBCm0Lew1l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OiBxbiA8PSAyNTYAYXNzZXJ0aW9uIGZhaWxlZDogeCAhPSB5AGNlbHQvY2VsdF9scGMuYwBhc3NlcnRpb24gZmFpbGVkOiAob3JkJjMpPT0wAGFzc2VydGlvbiBmYWlsZWQ6IG4+MABhc3NlcnRpb24gZmFpbGVkOiBvdmVybGFwPj0wAGFzc2VydGlvbiBmYWlsZWQ6IGxlbj49MwAuL2NlbHQvcGl0Y2guaABhc3NlcnRpb24gZmFpbGVkOiBtYXhfcGl0Y2g+MABjZWx0L3BpdGNoLmMAYXNzZXJ0aW9uIGZhaWxlZDogbGVuPjAAYXNzZXJ0aW9uIGZhaWxlZDogbGVuPj0zAC4vY2VsdC9waXRjaC5oAGNlbHQva2lzc19mZnQuYwBhc3NlcnRpb24gZmFpbGVkOiBtPT00AGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5tb2RlID09IG9wdXNfY3VzdG9tX21vZGVfY3JlYXRlKDQ4MDAwLCA5NjAsIE5VTEwpAGNlbHQvY2VsdF9kZWNvZGVyLmMAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPm92ZXJsYXAgPT0gMTIwAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5lbmQgPD0gMjEAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPmNoYW5uZWxzID09IDEgfHwgc3QtPmNoYW5uZWxzID09IDIAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnN0cmVhbV9jaGFubmVscyA9PSAxIHx8IHN0LT5zdHJlYW1fY2hhbm5lbHMgPT0gMgBhc3NlcnRpb24gZmFpbGVkOiBzdC0+ZG93bnNhbXBsZSA+IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnN0YXJ0ID09IDAgfHwgc3QtPnN0YXJ0ID09IDE3AGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5zdGFydCA8IHN0LT5lbmQAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPmFyY2ggPj0gMABhc3NlcnRpb24gZmFpbGVkOiBzdC0+YXJjaCA8PSBPUFVTX0FSQ0hNQVNLAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5sYXN0X3BpdGNoX2luZGV4IDw9IFBMQ19QSVRDSF9MQUdfTUFYAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5sYXN0X3BpdGNoX2luZGV4ID49IFBMQ19QSVRDSF9MQUdfTUlOIHx8IHN0LT5sYXN0X3BpdGNoX2luZGV4ID09IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfcGVyaW9kIDwgTUFYX1BFUklPRABhc3NlcnRpb24gZmFpbGVkOiBzdC0+cG9zdGZpbHRlcl9wZXJpb2QgPj0gQ09NQkZJTFRFUl9NSU5QRVJJT0QgfHwgc3QtPnBvc3RmaWx0ZXJfcGVyaW9kID09IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfcGVyaW9kX29sZCA8IE1BWF9QRVJJT0QAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfcGVyaW9kX29sZCA+PSBDT01CRklMVEVSX01JTlBFUklPRCB8fCBzdC0+cG9zdGZpbHRlcl9wZXJpb2Rfb2xkID09IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfdGFwc2V0IDw9IDIAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfdGFwc2V0ID49IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfdGFwc2V0X29sZCA8PSAyAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5wb3N0ZmlsdGVyX3RhcHNldF9vbGQgPj0gMAACAQAZFwIAfnx3bVcpEwkEAgBhc3NlcnRpb24gZmFpbGVkOiBhY2N1bT09MABhc3NlcnRpb24gZmFpbGVkOiBwY21fY291bnQgPT0gZnJhbWVfc2l6ZQBzcmMvb3B1c19kZWNvZGVyLmMAYXNzZXJ0aW9uIGZhaWxlZDogcmV0PT1mcmFtZV9zaXplLXBhY2tldF9mcmFtZV9zaXplAGFzc2VydGlvbiBmYWlsZWQ6IHJldD09cGFja2V0X2ZyYW1lX3NpemUAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPmNoYW5uZWxzID09IDEgfHwgc3QtPmNoYW5uZWxzID09IDIAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPkZzID09IDQ4MDAwIHx8IHN0LT5GcyA9PSAyNDAwMCB8fCBzdC0+RnMgPT0gMTYwMDAgfHwgc3QtPkZzID09IDEyMDAwIHx8IHN0LT5GcyA9PSA4MDAwAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5EZWNDb250cm9sLkFQSV9zYW1wbGVSYXRlID09IHN0LT5GcwBhc3NlcnRpb24gZmFpbGVkOiBzdC0+RGVjQ29udHJvbC5pbnRlcm5hbFNhbXBsZVJhdGUgPT0gMCB8fCBzdC0+RGVjQ29udHJvbC5pbnRlcm5hbFNhbXBsZVJhdGUgPT0gMTYwMDAgfHwgc3QtPkRlY0NvbnRyb2wuaW50ZXJuYWxTYW1wbGVSYXRlID09IDEyMDAwIHx8IHN0LT5EZWNDb250cm9sLmludGVybmFsU2FtcGxlUmF0ZSA9PSA4MDAwAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5EZWNDb250cm9sLm5DaGFubmVsc0FQSSA9PSBzdC0+Y2hhbm5lbHMAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPkRlY0NvbnRyb2wubkNoYW5uZWxzSW50ZXJuYWwgPT0gMCB8fCBzdC0+RGVjQ29udHJvbC5uQ2hhbm5lbHNJbnRlcm5hbCA9PSAxIHx8IHN0LT5EZWNDb250cm9sLm5DaGFubmVsc0ludGVybmFsID09IDIAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPkRlY0NvbnRyb2wucGF5bG9hZFNpemVfbXMgPT0gMCB8fCBzdC0+RGVjQ29udHJvbC5wYXlsb2FkU2l6ZV9tcyA9PSAxMCB8fCBzdC0+RGVjQ29udHJvbC5wYXlsb2FkU2l6ZV9tcyA9PSAyMCB8fCBzdC0+RGVjQ29udHJvbC5wYXlsb2FkU2l6ZV9tcyA9PSA0MCB8fCBzdC0+RGVjQ29udHJvbC5wYXlsb2FkU2l6ZV9tcyA9PSA2MABhc3NlcnRpb24gZmFpbGVkOiBzdC0+YXJjaCA+PSAwAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5hcmNoIDw9IE9QVVNfQVJDSE1BU0sAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnN0cmVhbV9jaGFubmVscyA9PSAxIHx8IHN0LT5zdHJlYW1fY2hhbm5lbHMgPT0gMgBhc3NlcnRpb24gZmFpbGVkOiAwAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgMTAwMTIsICgoKHZvaWQpKChlbmRiYW5kKSA9PSAob3B1c19pbnQzMikwKSksIChvcHVzX2ludDMyKShlbmRiYW5kKSkpKSA9PSBPUFVTX09LAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgMTAwMDgsICgoKHZvaWQpKChzdC0+c3RyZWFtX2NoYW5uZWxzKSA9PSAob3B1c19pbnQzMikwKSksIChvcHVzX2ludDMyKShzdC0+c3RyZWFtX2NoYW5uZWxzKSkpKSA9PSBPUFVTX09LAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgMTAwMTAsICgoKHZvaWQpKCgwKSA9PSAob3B1c19pbnQzMikwKSksIChvcHVzX2ludDMyKSgwKSkpKSA9PSBPUFVTX09LAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgNDAzMSwgKCgmcmVkdW5kYW50X3JuZykgKyAoKCZyZWR1bmRhbnRfcm5nKSAtIChvcHVzX3VpbnQzMiopKCZyZWR1bmRhbnRfcm5nKSkpKSkgPT0gT1BVU19PSwBhc3NlcnRpb24gZmFpbGVkOiAob3B1c19jdXN0b21fZGVjb2Rlcl9jdGwoY2VsdF9kZWMsIDEwMDEwLCAoKCh2b2lkKSgoc3RhcnRfYmFuZCkgPT0gKG9wdXNfaW50MzIpMCkpLCAob3B1c19pbnQzMikoc3RhcnRfYmFuZCkpKSkgPT0gT1BVU19PSwBhc3NlcnRpb24gZmFpbGVkOiAob3B1c19jdXN0b21fZGVjb2Rlcl9jdGwoY2VsdF9kZWMsIDQwMjgpKSA9PSBPUFVTX09LAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgMTAwMTUsICgoJmNlbHRfbW9kZSkgKyAoKCZjZWx0X21vZGUpIC0gKGNvbnN0IE9wdXNDdXN0b21Nb2RlKiopKCZjZWx0X21vZGUpKSkpKSA9PSBPUFVTX09LAEHwowILAQUAQfyjAgsBAQBBlKQCCwoCAAAAAwAAAHSTAEGspAILAQIAQbukAgsF//////8AQaymAgsCnJMAQeSmAgsDsJVQ";if(!QA(NA)){var ee=NA;NA=e.locateFile?e.locateFile(ee,a):a+ee}function qA(){var F=NA;try{if(F==NA&&Q)return new Uint8Array(Q);if(QA(F))try{var b=le(F.slice(37)),v=new Uint8Array(b.length);for(F=0;F<b.length;++F)v[F]=b.charCodeAt(F);var eA=v}catch(oA){throw Error("Converting base64 string to bytes failed.")}else eA=void 0;var O=eA;if(O)return O;throw"both async and sync fetching of the wasm failed"}catch(oA){j(oA)}}function XA(){return Q||typeof fetch!="function"?Promise.resolve().then(function(){return qA()}):fetch(NA,{credentials:"same-origin"}).then(function(F){if(!F.ok)throw"failed to load wasm binary file at '"+NA+"'";return F.arrayBuffer()}).catch(function(){return qA()})}function jA(F){for(;0<F.length;){var b=F.shift();if(typeof b=="function")b(e);else{var v=b.s;typeof v=="number"?b.o===void 0?y.get(v)():y.get(v)(b.o):v(b.o===void 0?null:b.o)}}}var Xt=[null,[],[]],le=typeof atob=="function"?atob:function(F){var b="",v=0;F=F.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var eA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(F.charAt(v++)),O="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(F.charAt(v++)),oA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(F.charAt(v++)),RA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(F.charAt(v++));eA=eA<<2|O>>4,O=(O&15)<<4|oA>>2;var zA=(oA&3)<<6|RA;b+=String.fromCharCode(eA),oA!==64&&(b+=String.fromCharCode(O)),RA!==64&&(b+=String.fromCharCode(zA))}while(v<F.length);return b},D={d:function(){j()},f:function(F,b,v){m.copyWithin(F,b,b+v)},c:function(){return!1},e:function(){return 0},b:function(){},a:function(F,b,v,eA){for(var O=0,oA=0;oA<v;oA++){for(var RA=p[b+8*oA>>2],zA=p[b+(8*oA+4)>>2],sA=0;sA<zA;sA++){var gA=m[RA+sA],BA=Xt[F];if(gA===0||gA===10){gA=F===1?B:C;for(var SA=BA,LA=0,ht=LA+NaN,Sg=LA;SA[Sg]&&!(Sg>=ht);)++Sg;if(16<Sg-LA&&SA.subarray&&u)SA=u.decode(SA.subarray(LA,Sg));else{for(ht="";LA<Sg;){var ae=SA[LA++];if(ae&128){var mr=SA[LA++]&63;if((ae&224)==192)ht+=String.fromCharCode((ae&31)<<6|mr);else{var cE=SA[LA++]&63;ae=(ae&240)==224?(ae&15)<<12|mr<<6|cE:(ae&7)<<18|mr<<12|cE<<6|SA[LA++]&63,65536>ae?ht+=String.fromCharCode(ae):(ae-=65536,ht+=String.fromCharCode(55296|ae>>10,56320|ae&1023))}}else ht+=String.fromCharCode(ae)}SA=ht}gA(SA),BA.length=0}else BA.push(gA)}O+=zA}return p[eA>>2]=O,0}};(function(){function F(O){e.asm=O.exports,h=e.asm.g,O=h.buffer,e.HEAP8=new Int8Array(O),e.HEAP16=new Int16Array(O),e.HEAP32=p=new Int32Array(O),e.HEAPU8=m=new Uint8Array(O),e.HEAPU16=new Uint16Array(O),e.HEAPU32=new Uint32Array(O),e.HEAPF32=new Float32Array(O),e.HEAPF64=new Float64Array(O),y=e.asm.n,N.unshift(e.asm.h),W--,e.monitorRunDependencies&&e.monitorRunDependencies(W),W==0&&Z&&(O=Z,Z=null,O())}function b(O){F(O.instance)}function v(O){return XA().then(function(oA){return WebAssembly.instantiate(oA,eA)}).then(O,function(oA){C("failed to asynchronously prepare wasm: "+oA),j(oA)})}var eA={a:D};if(W++,e.monitorRunDependencies&&e.monitorRunDependencies(W),e.instantiateWasm)try{return e.instantiateWasm(eA,F)}catch(O){return C("Module.instantiateWasm callback failed with error: "+O),!1}return(function(){return Q||typeof WebAssembly.instantiateStreaming!="function"||QA(NA)||typeof fetch!="function"?v(b):fetch(NA,{credentials:"same-origin"}).then(function(O){return WebAssembly.instantiateStreaming(O,eA).then(b,function(oA){return C("wasm streaming compile failed: "+oA),C("falling back to ArrayBuffer instantiation"),v(b)})})})().catch(g),{}})(),e.___wasm_call_ctors=function(){return(e.___wasm_call_ctors=e.asm.h).apply(null,arguments)},e._opus_decoder_create=function(){return(e._opus_decoder_create=e.asm.i).apply(null,arguments)},e._opus_decode_float=function(){return(e._opus_decode_float=e.asm.j).apply(null,arguments)},e._opus_decoder_destroy=function(){return(e._opus_decoder_destroy=e.asm.k).apply(null,arguments)},e._malloc=function(){return(e._malloc=e.asm.l).apply(null,arguments)},e._free=function(){return(e._free=e.asm.m).apply(null,arguments)};var L;Z=function F(){L||z(),L||(Z=F)};function z(){function F(){if(!L&&(L=!0,e.calledRun=!0,!d)){if(jA(N),t(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;){var b=e.postRun.shift();U.unshift(b)}jA(U)}}if(!(0<W)){if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)K();jA(k),0<W||(e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),F()},1)):F())}}if(e.run=z,e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);0<e.preInit.length;)e.preInit.pop()();return z(),A.ready})})(),_Q=(i=>(i[i.OK=0]="OK",i[i["Bad argument"]=-1]="Bad argument",i[i["Buffer too small"]=-2]="Buffer too small",i[i["Internal error"]=-3]="Internal error",i[i["Invalid packet"]=-4]="Invalid packet",i[i.Unimplemented=-5]="Unimplemented",i[i["Invalid state"]=-6]="Invalid state",i[i["Memory allocation fail"]=-7]="Memory allocation fail",i))(_Q||{});const Le=class Le{constructor(A,e,t){s(this,"opusModule");s(this,"decoderInstance");s(this,"opusBufferPointer");s(this,"pcmBufferPointer");s(this,"opus");s(this,"pcm");s(this,"channels");s(this,"sampleRate");s(this,"pcmBufferByteSize",()=>Le.MAX_SAMPLES*this.channels*Float32Array.BYTES_PER_ELEMENT);s(this,"unload",()=>{this.opusModule._free(this.opusBufferPointer),this.opusModule._free(this.pcmBufferPointer),this.opusModule._opus_decoder_destroy(this.decoderInstance)});s(this,"decode",A=>{this.opusModule.HEAPU8.set(new Uint8Array(A),this.opusBufferPointer);const e=this.opusModule._opus_decode_float(this.decoderInstance,this.opusBufferPointer,A.byteLength,this.pcmBufferPointer,Le.MAX_SAMPLES,0);if(e<0)throw new Error(_Q[e]);return this.pcm.subarray(0,e*this.channels)});this.opusModule=A,this.channels=t,this.sampleRate=e,this.decoderInstance=this.opusModule._opus_decoder_create(e,t,0),this.opusBufferPointer=this.opusModule._malloc(Le.MAX_OPUS_BUFFER),this.opus=this.opusModule.HEAPU8.subarray(this.opusBufferPointer,this.opusBufferPointer+Le.MAX_OPUS_BUFFER),this.pcmBufferPointer=this.opusModule._malloc(this.pcmBufferByteSize());const g=this.pcmBufferPointer/Float32Array.BYTES_PER_ELEMENT;this.pcm=this.opusModule.HEAPF32.subarray(g,g+this.pcmBufferByteSize()/Float32Array.BYTES_PER_ELEMENT)}};s(Le,"MAX_OPUS_BUFFER",1e3*1e3),s(Le,"MAX_SAMPLES",6*960),s(Le,"create",(A,e)=>c(null,null,function*(){return new Le(yield Hw(),A,e)}));let Ir=Le;const Fn=class Fn{constructor(A){s(this,"decodedSamples",[]);s(this,"decoder");s(this,"errors",new P(10));s(this,"unload",()=>{this.decoder.unload()});s(this,"enqueue",A=>{try{const e=Date.now(),t=this.decoder.decode(A.data);this.decodedSamples.push(V(f({},A),{type:"audio",format:"f32",data:t,statistics:{decodeTime:Date.now()-e,transportTimeFromWorker:0,transportTimeToWorker:0,samplesInBatch:1}}))}catch(e){e instanceof Error&&this.errors.push(Xa(!1,e))}});s(this,"initSegment",G);s(this,"take",()=>this.decodedSamples.shift());this.decoder=A}error(){return this.errors.pop()}};s(Fn,"create",(A,e)=>c(null,null,function*(){return new Fn(yield Ir.create(A,e))}));let nr=Fn;const qw=Object.freeze(Object.defineProperty({__proto__:null,OpusDecoderContext:nr},Symbol.toStringTag,{value:"Module"})),$Q='var Sg=Object.defineProperty,rg=Object.defineProperties;var ng=Object.getOwnPropertyDescriptors;var rI=Object.getOwnPropertySymbols;var cg=Object.prototype.hasOwnProperty,Fg=Object.prototype.propertyIsEnumerable;var nI=c=>{throw TypeError(c)};var $A=(c,n,G)=>n in c?Sg(c,n,{enumerable:!0,configurable:!0,writable:!0,value:G}):c[n]=G,tA=(c,n)=>{for(var G in n||(n={}))cg.call(n,G)&&$A(c,G,n[G]);if(rI)for(var G of rI(n))Fg.call(n,G)&&$A(c,G,n[G]);return c},cA=(c,n)=>rg(c,ng(n));var E=(c,n,G)=>$A(c,typeof n!="symbol"?n+"":n,G),cI=(c,n,G)=>n.has(c)||nI("Cannot "+G);var k=(c,n,G)=>(cI(c,n,"read from private field"),G?G.call(c):n.get(c)),$=(c,n,G)=>n.has(c)?nI("Cannot add the same private member more than once"):n instanceof WeakSet?n.add(c):n.set(c,G),W=(c,n,G,AA)=>(cI(c,n,"write to private field"),AA?AA.call(c,G):n.set(c,G),G);var MA=(c,n,G,AA)=>({set _(QA){W(c,n,QA,G)},get _(){return k(c,n,AA)}});var FA=(c,n,G)=>new Promise((AA,QA)=>{var JA=X=>{try{GA(G.next(X))}catch(sA){QA(sA)}},aA=X=>{try{GA(G.throw(X))}catch(sA){QA(sA)}},GA=X=>X.done?AA(X.value):Promise.resolve(X.value).then(JA,aA);GA((G=G.apply(c,n)).next())});(function(){"use strict";var dA,T,f,EA,RA,iA,hA,SA;const c={backgroundColor:"rgba(0,0,0,0.6)",textPadding:8,fontSize:"28px",lineGap:16};function n(g,I){const A=I*.05,B=g*.035;return`${Math.max(Math.round(Math.min(A,B)),16)}px`}function G(g){var d;const{subtitleWidth:I,subtitleHeight:A,canvasWidth:B,canvasHeight:Q,containerWidth:C,bottomPadding:o}=g,t=(d=g.baseMargin)!=null?d:20,a=B/C,D=I*a,h=A*a,e=(B-D)/2,r=Q-h-(o+t)*a;return{drawWidth:D,drawHeight:h,x:e,y:r}}class AA{constructor(I=50){E(this,"maxSize");E(this,"values",[]);E(this,"push",I=>{this.isFull()&&this.pop(),this.values.push(I)});E(this,"clear",()=>{this.values=[]});E(this,"pop",()=>this.values.shift());E(this,"peekFirst",()=>this.values[0]);E(this,"peekLast",()=>this.values[this.values.length-1]);E(this,"isFull",()=>this.values.length>=this.maxSize);E(this,"isEmpty",()=>this.values.length===0);E(this,"items",()=>this.values);E(this,"filterPop",I=>{for(;this.peekFirst()&&!I(this.peekFirst());)this.pop()});this.maxSize=I}}class QA{constructor(I,A=0){$(this,dA);$(this,T);$(this,f);E(this,"position",()=>k(this,f));E(this,"peekBit",()=>this.getBit(k(this,T),k(this,f)));E(this,"readBit",()=>{const I=this.peekBit();return MA(this,f)._++,I});E(this,"readBits",I=>{let A=0;for(let B=0;B<I;B++)A=A<<1|(this.getBit(k(this,T),MA(this,f)._++)?1:0);return A});E(this,"remainingBits",()=>k(this,T).byteLength*8-k(this,f));E(this,"readSignedExpGolomb",()=>{const I=this.readUnsignedExpGolomb();return I&1?(I+1)/2:-(I/2)});E(this,"readUnsignedExpGolomb",()=>{let I=0;for(;this.getBit(k(this,T),MA(this,f)._++)===0;)I++;let A=1<<I;for(let B=I-1;B>=0;B--)A|=this.getBit(k(this,T),MA(this,f)._++)<<B;return A-1});E(this,"getBit",(I,A)=>{if(I.byteLength*8<=A)throw new Error("BitReader: Out of bounds");return I[A>>3]>>7-(A&7)&1});W(this,dA,I),W(this,T,new Uint8Array(k(this,dA))),W(this,f,A)}bytes(){return k(this,T)}}dA=new WeakMap,T=new WeakMap,f=new WeakMap;const JA=["off","error","warn","info","debug","trace"],gA=class gA{constructor({context:I,logLevel:A,debug:B}){$(this,EA,new Map);$(this,RA,"");$(this,iA,!1);$(this,hA,"off");E(this,"trace",(...I)=>{});E(this,"debug",(...I)=>{});E(this,"info",(...I)=>{});E(this,"warn",(...I)=>{});E(this,"error",(...I)=>{});E(this,"table",(...I)=>{});E(this,"count",(...I)=>{});W(this,RA,I),W(this,hA,A),W(this,iA,B||!1),this.setLevel(A),this.setDebug(k(this,iA))}setDebug(I){W(this,iA,I);for(const[A,B]of k(this,EA))B.setDebug(I);I?(this.table=console.table.bind(console),this.count=console.count.bind(console)):(this.table=()=>{},this.count=()=>{})}setLevel(I){W(this,hA,I);for(const[B,Q]of k(this,EA))Q.setLevel(I);const A=JA.indexOf(I);for(const[B,Q]of JA.entries())Q!=="off"&&(B<=A?this[Q]=console[Q].bind(console,"%c%s %c%s","font-weight:bold;",Q.toUpperCase(),"font-weight:normal;",k(this,RA)):this[Q]=()=>{})}createContext(I){const A=k(this,EA).get(I);if(!A){const B=new gA({context:`${I}`,logLevel:k(this,hA),debug:k(this,iA)});return k(this,EA).set(I,B),B}return A}static get(){return k(gA,SA)||W(gA,SA,new gA({context:"Vindral",logLevel:"off"})),k(gA,SA)}};EA=new WeakMap,RA=new WeakMap,iA=new WeakMap,hA=new WeakMap,SA=new WeakMap,$(gA,SA);let aA=gA;const GA="missing_init_segment";class X extends Error{constructor(A,B,Q={}){super(A);E(this,"props");E(this,"extra",{});E(this,"code",()=>this.props.code);E(this,"isFatal",()=>this.props.isFatal);E(this,"source",()=>this.props.source);E(this,"type",()=>{var A;return(A=this.props.type)!=null?A:"external"});E(this,"toStringifiable",()=>{var Q;const A=this.source(),B=A instanceof Error?A.stack:this.stack;return cA(tA({},this.extra),{code:this.props.code,isFatal:this.props.isFatal,type:this.props.type,message:this.message,sourceMessage:(Q=this.source())==null?void 0:Q.message,stack:B})});this.props=B,this.extra=Q,Object.setPrototypeOf(this,new.target.prototype)}}const sA=(g,I)=>new X(`No init segment for rendition id ${g} for channel ${I}`,{isFatal:!1,code:GA,type:"internal"}),FI=7,GI=8,yI=g=>{const I=g.getUint32(0,!1),A=g.getUint8(0)<<16|g.getUint16(1,!1);let B=0;return A===1?B+=3:I===1&&(B+=4),B},NI=g=>yI(new DataView(g,0))!==0,AI=(g,I=0)=>{for(let A=I;A<g.byteLength-4;A++){const B=g.getUint32(A)===1,Q=(g.getUint8(A)<<16|g.getUint16(A+1))===1;if(B||Q)return{position:A,nalPrefixSize:B?4:3}}},wI=g=>g&31,dI=(g,I)=>{const A=new DataView(g,0);let B=AI(A);for(;B;){const{position:Q,nalPrefixSize:C}=B,o=AI(A,Q+4),t=o?o.position-Q-C:void 0;if(!I(new DataView(g,Q+C,t),C))return;B=o}},RI=(g,I)=>{const A=new DataView(g,0),B=4;let Q=0;for(;Q<g.byteLength;){const C=A.getUint32(Q);if(!I(new DataView(g,Q+B,C)))return;Q+=C+B}},II=g=>{const I=[],A=[];if(!NI(g)){const B=new DataView(g,0),Q=B.getUint8(5)&31;let C=6;for(let t=0;t<Q;t++){const a=B.getUint16(C);I.push(g.slice(C+2,C+2+a)),C+=a+2}const o=B.getUint8(C);C+=1;for(let t=0;t<o;t++){const a=B.getUint16(C);A.push(g.slice(C+2,C+2+a)),C+=a+2}return{sequenceParameterSets:I,pictureParameterSets:A}}return dI(g,B=>{const Q=B.byteOffset+B.byteLength;switch(wI(B.getUint8(0))){case GI:A.push(B.buffer.slice(B.byteOffset,Q));break;case FI:I.push(B.buffer.slice(B.byteOffset,Q));break}return!0}),{sequenceParameterSets:I,pictureParameterSets:A}},LI=g=>{var R;const I=new DataView(g),A=I.getUint8(1),B=I.getUint8(2),Q=I.getUint8(3),C=new QA(g,32);C.readUnsignedExpGolomb();let o=1;switch(A){case 100:case 110:case 122:case 244:case 44:case 83:case 86:case 118:case 128:case 138:case 144:{if(o=C.readUnsignedExpGolomb(),o===3&&C.readBits(1),C.readUnsignedExpGolomb()+8,C.readUnsignedExpGolomb()+8,C.readBit(),C.readBit()){for(let q=0;q<(o!=3?8:12);q++)if(C.readBit()){const S=q<6?16:64;let U=0,L=8,Y=8;for(let H=0;H<S;H++)Y!=0&&(U=C.readSignedExpGolomb(),Y=(L+U+256)%256),L=Y==0?L:Y}}break}}C.readUnsignedExpGolomb();const t=C.readUnsignedExpGolomb();if(t==0)C.readUnsignedExpGolomb();else if(t==1)throw new Error("Unhandled case");C.readUnsignedExpGolomb(),C.readBit();const a=C.readUnsignedExpGolomb(),D=C.readUnsignedExpGolomb(),h=C.readBit();h===0&&C.readBit(),C.readBit();let e=a+1,r=D+1;if(r*=2-h,r*=16,e*=16,C.readBit()){const M=o==1?1:0,y=1<<(o==1||o==2?1:0),S=2-h<<M,U=C.readUnsignedExpGolomb()*y,L=C.readUnsignedExpGolomb()*y,Y=C.readUnsignedExpGolomb()*S,H=C.readUnsignedExpGolomb()*S;e-=U+L,r-=Y+H}let d={numerator:1,denumerator:1};return C.readBit()&&C.readBit()&&(d=(R=UI[C.readBits(8)])!=null?R:{numerator:0,denumerator:0}),{width:e,height:r,pixelAspectRatio:d,profileIdc:A,constraintFlags:B,levelIdc:Q}},UI=[{numerator:0,denumerator:0},{numerator:1,denumerator:1},{numerator:12,denumerator:11},{numerator:10,denumerator:11},{numerator:16,denumerator:11},{numerator:40,denumerator:33},{numerator:24,denumerator:11},{numerator:20,denumerator:11},{numerator:32,denumerator:11},{numerator:80,denumerator:33},{numerator:18,denumerator:11},{numerator:15,denumerator:11},{numerator:64,denumerator:33},{numerator:160,denumerator:99},{numerator:4,denumerator:3},{numerator:3,denumerator:2},{numerator:2,denumerator:1}],kI=g=>{const I=new QA(g);return I.peekBit()===1&&I.readBits(32),YI(I),WI(I)},MI=g=>{var q,y,S,U;const I=kI(g),A=I.seqProfile,B=(y=(q=I.operatingPoints[0])==null?void 0:q.seqLevelIdx)!=null?y:0,Q=(U=(S=I.operatingPoints[0])==null?void 0:S.tier)!=null?U:0,C=I.colorConfig.bitDepth,o=B.toString().padStart(2,"0"),t=Q===0?"M":"H",a=C.toString().padStart(2,"0"),D=`av01.${A}.${o}${t}.${a}`,h=I.colorConfig.monoChrome?1:0,e=`${I.colorConfig.subsamplingX}${I.colorConfig.subsamplingY}${I.colorConfig.chromaSamplePosition}`,r=I.colorConfig.colorPrimaries.toString().padStart(2,"0"),d=I.colorConfig.transferCharacteristics.toString().padStart(2,"0"),R=I.colorConfig.matrixCoefficients.toString().padStart(2,"0"),M=I.colorConfig.colorRange?1:0;return{codecString:`${D}.${h}.${e}.${r}.${d}.${R}.${M}`,fallbackCodecString:D,width:I.maxFrameWidth,height:I.maxFrameHeight}},JI=g=>{let I=0,A=0;for(let B=0;B<8;B++){const Q=g.readBits(8);if(I|=(Q&127)<<B*7,A+=1,(Q&128)!==128)break}return[A,I]},qI=g=>{let I=0;for(;I<100&&g.readBit()===0;)I++;return I>=32?0:g.readBits(I)+(1<<I)-1},YI=g=>{const I=g.remainingBits()/8,A=g.readBits(8);if((A>>7&1)!==0)return;const Q=A>>3&15,C=A>>2&1,o=A>>1&1;C==1&&g.readBits(8);const[t,a]=o?JI(g):[0,I];return{headerLength:1+C+t,type:Q,obuSize:a}},KI=g=>{const I=g.readBits(32),A=g.readBits(32),B=g.readBit()!==0;let Q=0;return B&&(Q=qI(g)+1),{timescale:A,equalPictureInterval:B,numUnitsInDisplayTick:I,numTicksPerPicture:Q}},gI=2,xA=2,HI=1,pI=2,lI=2,fI=13,mI=0,uI=2,BI=0,WI=g=>{const I=g.readBits(3),A=g.readBit()!==0,B=g.readBit()!==0;let Q,C=!1,o=!1,t=!1,a=0,D=0;const h=[];if(B)g.readBits(5);else{if(o=g.readBit()!==0,o&&(Q=KI(g),C=g.readBit()!==0,C))throw new Error("Not implemented");t=g.readBit()!==0;const uA=g.readBits(5)+1;for(let Z=0;Z<uA;Z++){const kA=g.readBits(12),nA=g.readBits(5);let WA=0;if(nA>7&&(WA=g.readBit()),C)throw new Error("decoderModelInfoPresentFlag==1");t&&g.readBit()!==0&&g.readBits(4),h.push({tier:WA,operatingPointIdc:kA,seqLevelIdx:nA})}}const e=g.readBits(4)+1,r=g.readBits(4)+1,d=g.readBits(e)+1,R=g.readBits(r)+1;let M=!1;B?M=!1:M=g.readBit()!==0,M&&(a=g.readBits(4)+2,D=g.readBits(3)+1);const q=g.readBit()!==0,y=g.readBit()!==0,S=g.readBit()!==0;let U=!1,L=!1,Y=!1,H=!1,O=!1,BA=!1,oA=!1,l=gI,P=xA,_=0;B||(U=g.readBit()!==0,L=g.readBit()!==0,Y=g.readBit()!==0,H=g.readBit()!==0,O=g.readBit()!==0,O&&(BA=g.readBit()!==0,oA=g.readBit()!==0),g.readBit()!==0?l=gI:l=g.readBit(),l>0?g.readBit()>0?P=xA:P=g.readBit():P=xA,O?_=g.readBits(3):_=0);const rA=g.readBit()!==0,m=g.readBit()!==0,mA=g.readBit()!==0;return{seqProfile:I,stillPicture:A,reducedStillPictureHeader:B,timingInfoPresentFlag:o,timingInfo:Q!=null?Q:{equalPictureInterval:!1,numUnitsInDisplayTick:0,timescale:0,numTicksPerPicture:0},decoderModelInfoPresentFlag:C,initialDisplayDelayPresentFlag:t,operatingPoints:h,frameWidthBits:e,frameHeightBits:r,maxFrameWidth:d,maxFrameHeight:R,frameIdNumbersPresentFlag:M,deltaFrameIdLength:a,additionalFrameIdLength:D,use_128x128Superblock:q,enableFilterIntra:y,enableIntraEdgeFilter:S,enableInterintraCompound:U,enableMaskedCompound:L,enableWarpedMotion:Y,enableDualFilter:H,enableOrderHint:O,enableJntComp:BA,enableRefFrameMvs:oA,seqForceScreenContentTools:l,seqForceIntegerMv:P,orderHintBits:_,enableSuperres:rA,enableCdef:m,enableRestoration:mA,colorConfig:bI(g,I),filmGrainParamsPresent:g.readBit()!==0}},bI=(g,I)=>{const A=g.readBit()!==0;let B=8,Q=!1;I===2&&A?B=g.readBit()!==0?12:10:I<=2&&(B=A?10:8),I===1?Q=!1:Q=g.readBit()!==0;const C=Q?1:3,o=g.readBit()!==0;let t=pI,a=lI,D=uI,h=!1,e=0,r=0,d=BI,R=!1;return o&&(t=g.readBits(8),a=g.readBits(8),D=g.readBits(8)),Q?(h=g.readBit()!==0,e=1,r=1,d=BI,R=!1,{highBitDepth:A,bitDepth:B,monoChrome:Q,chromaSamplePosition:d,colorPrimaries:t,colorRange:h,matrixCoefficients:D,numPlanes:C,separateUvDeltaQ:R,subsamplingX:e,subsamplingY:r,transferCharacteristics:a}):t===HI&&a==fI&&D==mI?(h=!0,e=0,r=0,{highBitDepth:A,bitDepth:B,monoChrome:Q,chromaSamplePosition:d,colorPrimaries:t,colorRange:h,matrixCoefficients:D,numPlanes:C,separateUvDeltaQ:R,subsamplingX:e,subsamplingY:r,transferCharacteristics:a}):(h=g.readBit()!==0,I===0?(e=1,r=1):I===1?(e=0,r=0):B===12?(e=g.readBit(),e!==0?r=g.readBit():r=0):(e=1,r=0),e!==0&&r!==0&&(d=g.readBits(2)),R=g.readBit()!==0,{highBitDepth:A,bitDepth:B,monoChrome:Q,chromaSamplePosition:d,colorPrimaries:t,colorRange:h,matrixCoefficients:D,numPlanes:C,separateUvDeltaQ:R,subsamplingX:e,subsamplingY:r,transferCharacteristics:a})};var xI=(function(){var g=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return(function(I){I=I||{};var A;A||(A=typeof I!="undefined"?I:{});var B,Q;A.ready=new Promise(function(i,s){B=i,Q=s});var C={},o;for(o in A)A.hasOwnProperty(o)&&(C[o]=A[o]);var t="",a;t=self.location.href,g&&(t=g),t.indexOf("blob:")!==0?t=t.substr(0,t.lastIndexOf("/")+1):t="",a=function(i){try{var s=new XMLHttpRequest;return s.open("GET",i,!1),s.responseType="arraybuffer",s.send(null),new Uint8Array(s.response)}catch(F){if(i=vA(i))return i;throw F}};var D=A.printErr||console.warn.bind(console);for(o in C)C.hasOwnProperty(o)&&(A[o]=C[o]);C=null;var h;A.wasmBinary&&(h=A.wasmBinary),A.noExitRuntime,typeof WebAssembly!="object"&&_("no native wasm support detected");var e,r=!1,d,R,M,q,y,S,U;function L(){var i=e.buffer;d=i,A.HEAP8=R=new Int8Array(i),A.HEAP16=q=new Int16Array(i),A.HEAP32=y=new Int32Array(i),A.HEAPU8=M=new Uint8Array(i),A.HEAPU16=new Uint16Array(i),A.HEAPU32=new Uint32Array(i),A.HEAPF32=S=new Float32Array(i),A.HEAPF64=U=new Float64Array(i)}var Y,H=[],O=[],BA=[];function oA(){var i=A.preRun.shift();H.unshift(i)}var l=0,P=null;A.preloadedImages={},A.preloadedAudios={};function _(i){throw A.onAbort&&A.onAbort(i),D(i),r=!0,i=new WebAssembly.RuntimeError("abort("+i+"). Build with -s ASSERTIONS=1 for more info."),Q(i),i}var rA="data:application/octet-stream;base64,",m="data:application/octet-stream;base64,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agwNCyAEQRt2QeATagwMCyAEQRt2QYAUagwLCyAEQRp2QaAUagwKCyAEQRp2QeAUagwJCyAEQRp2QaAVagwICyAEQRp2QeAVagwHCyAEQRt2QaAWagwGCyAEQRx2QcAWagwFCyAEQRx2QdAWagwECyAEQR12QeAWagwDCyAEQR52QegWagwCCyAEQQBIBEBBASECDAQLQREhAiAKQQNGDQNBEiECIARB/////wNLDQNBIiECIApBAkYNA0EzQSMgBEGAgICAAkkbIQIMAwsgBEEXdkHAEmogBEEbdkGgEmogBEGAgICAAUkbCy0AACICDQEMBAtBAUERIARBf0obIQILIAJBBHYhByAGIAJBD3EiA2shAiAEIAN0IQQLIApBAWsiBQRAA0ACQCAHBEAgAkEKTQRAIABBICACaxALQX9GBEAMBwsgABAQIQRBICECCwJAAn8CQAJAAkACQAJAAkACQCAHQQFrDgYGAAECAwQFCyAEQR52Qe4WagwGCyAEQR52QfIWagwFCyAEQR12QfYWagwECyAEQR12Qf4WagwDCyAEQR12QYYXagwCCwJ/QfMAIARBGXZB8ABxayAEQYCAgIACTw0AGkH0ACAEQf////8ASw0AGkGFASAEQf///z9LDQAaQZYBIARB////H0sNABpBpwEgBEH///8PSw0AGkG4ASAEQf///wdLDQAaQckBIARB////A0sNABpB2gEgBEH///8BSw0AGkEAQesBIARBgICAAUkbCyIGQQR2IAdNDQIMCAsgBEEfdkHsFmoLLQAAIQYLIAZFBEAMBgsgCSAIQQJ0aiAGQQR2IgNBAWo2AgAgByADayEHIAIgBkEPcSIDayECIAQgA3QhBAwBCyAJIAhBAnRqQQE2AgBBACEHCyAIQQFqIgggBUcNAAsgASAHQQJ0aiAJQUBrIAVBAnRqKAIANgIAQQEgB3QhBiAFRQ0BIApBAmshAyAFQQFxBH8gASAJIANBAnQiBGooAgAgB2oiB0ECdGogCUFAayAEaigCADYCAEEBIAd0IAZyIQYgCkEDawUgAwshBCADRQ0BA0AgASAJIARBAnQiBWooAgAgB2oiA0ECdGogCUFAayAFaigCADYCACABIAkgBEEBayIFQQJ0IgxqKAIAIANqIgdBAnRqIAlBQGsgDGooAgA2AgBBASADdCAGckEBIAd0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FUUEQANAIAMgAiIALQAAOgAAIAMgAC0AAToAASADIAAtAAI6AAIgAyAALQADOgADIAMgAC0ABDoABCADIAAtAAU6AAUgAyAALQAGOgAGIAMgAC0ABzoAByADQQhqIQMgAEEIaiECIAdBCGsiBw0ACyAAQQdqIQALIAMgAC0AACAOEAQaIAEgCGohASAKQQFrIgoNAAsMAwsgC0EHcSEQIAQgBmogDWogBCAPIAQgD0obQX9zaiANQQAgDUEAShtrQQdJIREDQCALIQcgASEDIAkhACAQIgIEQANAIAMgAC0AADoAACAHQQFrIQcgA0EBaiEDIABBAWohACACQQFrIgINAAsLIBFFBEADQCADIAAtAAA6AAAgAyAALQABOgABIAMgAC0AAjoAAiADIAAtAAM6AAMgAyAALQAEOgAEIAMgAC0ABToABSADIAAtAAY6AAYgAyAALQAHOgAHIANBCGohAyAAQQhqIQAgB0EIayIHDQALCyABIAhqIQEgCkEBayIKDQALDAILIA4EQCALQQdxIRAgBCAGaiANaiAEIA8gBCAPShtBf3NqIA1BACANQQBKG2tBB0khEQNAIAEgCS0AACAMEAQiFSAMaiEDIAshByAJIQIgECIBBEADQCADIAIiAC0AADoAACAHQQFrIQcgA0EBaiEDIABBAWohAiABQQFrIgENAAsLIBFFBEADQCADIAIiAC0AADoAACADIAAtAAE6AAEgAyAALQACOgACIAMgAC0AAzoAAyADIAAtAAQ6AAQgAyAALQAFOgAFIAMgAC0ABjoABiADIAAtAAc6AAcgA0EIaiEDIABBCGohAiAHQQhrIgcNAAsgAEEHaiEACyADIAAtAAAgDhAEGiAIIBVqIQEgCkEBayIKDQALDAILIAtBB3EhECAEIAZqIA1qIAQgDyAEIA9KG0F/c2ogDUEAIA1BAEoba0EHSSERA0AgASAJLQAAIAwQBCIBIAxqIQMgCyEHIAkhACAQIgIEQANAIAMgAC0AADoAACAHQQFrIQcgA0EBaiEDIABBAWohACACQQFrIgINAAsLIBFFBEADQCADIAAtAAA6AAAgAyAALQABOgABIAMgAC0AAjoAAiADIAAtAAM6AAMgAyAALQAEOgAEIAMgAC0ABToABSADIAAtAAY6AAYgAyAALQAHOgAHIANBCGohAyAAQQhqIQAgB0EIayIHDQALCyABIAhqIQEgCkEBayIKDQALDAELIAEgCCAKbGohAQsgEkUNACALQQdxIRAgBCAGaiANaiAEIA8gBCAPShtBf3NqIA1BACANQQBKG2tBB0khEQNAIAEhAyAMBEAgASAJLQAAIAwQBCAMaiEDCwJAIAtFBEAgCSEADAELIAshByAJIQAgECICBEADQCADIAAtAAA6AAAgB0EBayEHIANBAWohAyAAQQFqIQAgAkEBayICDQALCyARDQADQCADIAAtAAA6AAAgAyAALQABOgABIAMgAC0AAjoAAiADIAAtAAM6AAMgAyAALQAEOgAEIAMgAC0ABToABSADIAAtAAY6AAYgAyAALQAHOgAHIANBCGohAyAAQQhqIQAgB0EIayIHDQALCyAOBEAgAyAAQQFrLQAAIA4QBBoLIAEgCGohASAEIAlqIQkgEkEBayISDQALCwJAIBZFDQAgCSAEayEJIBdFBEAgFCAFa0EDcSIDBEADQCATQQFrIRMgASAJIAsQCCAIaiEBIANBAWsiAw0ACwsgFCAFQX9zakEDSQ0BA0AgASAJIAsQCCAIaiAJIAsQCCAIaiAJIAsQCCAIaiAJIAsQCCAIaiEBIBNBBGsiEw0ACwwBCyALQQdxIQUgBCAGaiANaiAEIA8gBCAPShtBf3NqIA1BACANQQBKG2tBB0khBANAIAEhAyAMBEAgASAJLQAAIAwQBCAMaiEDCwJAIAtFBEAgCSEADAELIAshByAJIQAgBSICBEADQCADIAAtAAA6AAAgB0EBayEHIANBAWohAyAAQQFqIQAgAkEBayICDQALCyAEDQADQCADIAAtAAA6AAAgAyAALQABOgABIAMgAC0AAjoAAiADIAAtAAM6AAMgAyAALQAEOgAEIAMgAC0ABToABSADIAAtAAY6AAYgAyAALQAHOgAHIANBCGohAyAAQQhqIQAgB0EIayIHDQALCyAOBEAgAyAAQQFrLQAAIA4QBBoLIAEgCGohASATQQFrIhMNAAsLC+kCAQN/IAFBA3RB8DZqIgMoAgAhBSADLQAEIQMgAUEDdEGwNWoiAS0ABCEEAkAgASgCAEEERgRAIAIgBEEBdGouAQAhASAFQQRGBEAgASACIANBAXRqLgEAakEBakEBdQ8LAn8gACgCzAEiAgRAIAAoAgQgAigCBEYMAQtBAAtFDQEgASAAKALMASADQQF0ai4BHGpBAWpBAXUPCyAFQQRGBEAgAiADQQF0ai4BACEBAn8gACgCyAEiAgRAIAAoAgQgAigCBEYMAQtBAAtFDQEgASAAKALIASAEQQF0ai4BHGpBAWpBAXUPCwJ/IAAoAsgBIgEEQCAAKAIEIAEoAgRGDAELQQALIgIEfyAAKALIASAEQQF0ai4BHAVBAAshAQJ/IAAoAswBIgQEQCAAKAIEIAQoAgRGDAELQQALRQ0AIAAoAswBIANBAXRqLgEcIQAgAkUEQCAADwsgACABakEBakEBdSEBCyABC/IDAQN/IAEoAgAiA0H///8HRwRAIAEoAgQhBCAAIAIgAkEDcSACQRBJIgIbQQJ0IgVB8ClqKAIAQRBBCCACGyICbGogBUGwKWooAgBqIgAgAyAALQAAakGwLmotAAA6AAAgASgCCCEDIAAgBCAALQABakGwLmotAAA6AAEgASgCDCEEIAAgAyAALQACakGwLmotAAA6AAIgACAEIAAtAANqQbAuai0AADoAAyABKAIUIQMgACACaiIAIAEoAhAgAC0AAGpBsC5qLQAAOgAAIAEoAhghBCAAIAMgAC0AAWpBsC5qLQAAOgABIAEoAhwhAyAAIAQgAC0AAmpBsC5qLQAAOgACIAAgAyAALQADakGwLmotAAA6AAMgASgCJCEDIAAgAmoiACABKAIgIAAtAABqQbAuai0AADoAACABKAIoIQQgACADIAAtAAFqQbAuai0AADoAASABKAIsIQMgACAEIAAtAAJqQbAuai0AADoAAiAAIAMgAC0AA2pBsC5qLQAAOgADIAEoAjQhAyAAIAJqIgAgASgCMCAALQAAakGwLmotAAA6AAAgASgCOCECIAAgAyAALQABakGwLmotAAA6AAEgASgCPCEBIAAgAiAALQACakGwLmotAAA6AAIgACABIAAtAANqQbAuai0AADoAAwsL8CUBFH8gAyAFaiIbIAEuAQAiDkECdWohDSAEIAZqIhwgAS4BAiIKQQJ1aiELIAIoAghBBHQhAyACKAIEQQR0IQQgACAGQQR0aiAFaiEJAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAOQQNxQQR0IApBA3FBAnRyQdA7aigCAA4PAAECAwQFBgcICQoLDA0ODwsgAigCACAJIA0g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ADcDEAJ/AkAgAgRAIABBACAIa0HYAWxqKALEAQ0BC0EADAELIAYgCyAIQQR0ayIELQAFIAQtAARqIAQtAAZqIAQtAAdqIhggBC0AAyAELQACIAQtAAEgBC0AAGpqaiIXaiIFIAQtAA8gBC0ADiAELQANIAQtAAxqamoiGiAELQALIAQtAAogBC0ACSAELQAIampqIhlqIgRrIgc2AhQgBiAEIAVqIgo2AhBBASEbQQELIQUCQCANQQFrIAJGDQAgACAIQdgBbGooAsQBRQRADAELIAYgCyAIQQh0aiICLQAFIAItAARqIAItAAZqIAItAAdqIh4gAi0AAyACLQACIAItAAEgAi0AAGpqaiIfaiIEIAItAA8gAi0ADiACLQANIAItAAxqamoiICACLQALIAItAAogAi0ACSACLQAIampqIiFqIgJrIAdqIgc2AhQgBiACIARqIApqIgo2AhBBASEWIAVBAWohBQsCfwJAIANFDQAgAEEUaygCAEUNACAGIAtBAWsiAiAIQQZ0IhBqIgQgCEEEdCIJai0AACAELQAAaiAEIAhBBXQiDmotAABqIAQgCEEwbCIPai0AAGoiHCACIA9qLQAAIAIgDmotAAAgAiAJai0AACACLQAAampqIh1qIgwgBCAQaiICIBBqIgQgCWotAAAgBC0AAGogBCAOai0AAGogBCAPai0AAGoiECACIA9qLQAAIAIgDmotAAAgAiAJai0AACACLQAAampqIg5qIgJrIgQ2AiAgBiACIAxqIApqIgo2AhBBASEPIAVBAWohCUEBDAELQQAhBCAFIQlBAAshAgJAAkACQAJAAkAgAyAIQQFrRwRAIAAoApwDDQELQQAhDCAFDQEMAgsgBCALQRBqIgQgCEEGdCIRaiIAIAhBBHQiDGotAAAgAC0AAGogACAIQQV0IhJqLQAAaiAAIAhBMGwiE2otAABqIAQgE2otAAAgBCASai0AACAEIAxqLQAAIAstABBqampqIgsgACARaiIAIBFqIgQgDGotAAAgBC0AAGogBCASai0AAGogBCATai0AAGoiESAAIBNqLQAAIAAgEmotAAAgACAMai0AACAALQAAampqIgBqIgxraiEEIAsgDGogCmohCkEBIQwgAkEBaiECIAlBAWohCSAPRSAFQQBHckUEQCAcIB1qIA5qIBBqIAAgC2ogEWpr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IAhrQQJ0ampBEGpBBXVBsC5qLQAAIAAtABBqQQFqQQF2OgAQIAAgAiALai0AACAHIAQgEGoiBEEEdGogBSANaiIFayAEIAVrQQJ0ampBEGpBBXVBsC5qLQAAIAAtAABqQQFqQQF2OgAAIAJBAWohAiAAQQFqIQAgAUEBaiEBIANBAWsiAw0ACyAAIBFqIQAgASAPaiEBIAIgD2ohAiAKQQFrIgoNAAsLIBJBwANqJAALtQUBBH8gACgCFCEDIAAoAhAhBCAAKAIEIQUgACgCDCICIAEpAgA3AgAgAiABKQIINwIIIAIgBUEEdCIAaiICIAEpAhA3AgAgAiABKQIYNwIIIAAgAmoiAiABKQIgNwIAIAIgASkCKDcCCCAAIAJqIgIgASkCMDcCACACIAEpAjg3AgggACACaiICIAEpAkA3AgAgAiABKQJINwIIIAAgAmoiAiABKQJQNwIAIAIgASkCWDcCCCAAIAJqIgIgASkCYDcCACACIAEpAmg3AgggACACaiICIAEpAnA3AgAgAiABKQJ4NwIIIAAgAmoiAiABKQKAATcCACACIAEpAogBNwIIIAAgAmoiAiABKQKQATcCACACIAEpApgBNwIIIAAgAmoiAiABKQKgATcCACACIAEpAqgBNwIIIAAgAmoiAiABKQKwATcCACACIAEpArgBNwIIIAAgAmoiAiABKQLAATcCACACIAEpAsgBNwIIIAAgAmoiAiABKQLQATcCACACIAEpAtgBNwIIIAAgAmoiAiABKQLgATcCACACIAEpAugBNwIIIAAgAmoiACABKQLwATcCACAAIAEpAvgBNwIIIAQgASkCgAI3AgAgBCAFQQN0IgBqIgQgASkCiAI3AgAgACAEaiIEIAEpApACNwIAIAAgBGoiBCABKQKYAjcCACAAIARqIgQgASkCoAI3AgAgACAEaiIEIAEpAqgCNwIAIAAgBGoiBCABKQKwAjcCACAAIARqIAEpArgCNwIAIAMgASkCwAI3AgAgACADaiIDIAEpAsgCNwIAIAAgA2oiAyABKQLQAjcCACAAIANqIgMgASkC2AI3AgAgACADaiIDIAEpAuACNwIAIAAgA2oiAyABKQLoAjcCACAAIANqIgMgASkC8AI3AgAgACADaiABKQL4AjcCAAsDAAELqAwBCn8CQCABQQRPBEBBACADayIMQQF0IQsCQCACKAIEIgEgACADayIGLQAAIgcgAC0AACIIayIKIApBH3UiCmogCnNNDQAgAigCCCIFIAAgC2otAAAiCiAHayIJIAlBH3UiCWogCXNNDQAgBSAAIANqLQAAIgUgCGsiCSAJQR91IglqIAlzTQ0AIAYgBSAHaiAKQQF0akECakECdjoAACAAIAggBUEBdGogCmpBAmpBAnY6AAAgAigCBCEBCwJAIABBAWoiByAMaiIJLQAAIgggAC0AASIKayIFIAVBH3UiBWogBXMgAU8NACACKAIIIgYgByALai0AACIFIAhrIgQgBEEfdSIEaiAEc00NACAGIAMgB2otAAAiBiAKayIEIARBH3UiBGogBHNNDQAgCSAGIAhqIAVBAXRqQQJqQQJ2OgAAIAcgCiAGQQF0aiAFakECakECdjoAACACKAIEIQELAkAgAEECaiIHIAxqIgktAAAiCCAALQACIgprIgUgBUEfdSIFaiAFcyABTw0AIAIoAggiBiAHIAtqLQAAIgUgCGsiBCAEQR91IgRqIARzTQ0AIAYgAyAHai0AACIGIAprIgQgBEEfdSIEaiAEc00NACAJIAYgCGogBUEBdGpBAmpBAnY6AAAgByAKIAZBAXRqIAVqQQJqQQJ2OgAAIAIoAgQhAQsCQCAAQQNqIgcgDGoiCS0AACIIIAAtAAMiCmsiBSAFQR91IgVqIAVzIAFPDQAgAigCCCIGIAcgC2otAAAiBSAIayIEIARBH3UiBGogBHNNDQAgBiADIAdqLQAAIgYgCmsiBCAEQR91IgRqIARzTQ0AIAkgBiAIaiAFQQF0akECakECdjoAACAHIAogBkEBdGogBWpBAmpBAnY6AAAgAigCBCEBCwJAIABBBGoiByAMaiIJLQAAIgggAC0ABCIKayIFIAVBH3UiBWogBXMgAU8NACACKAIIIgYgByALai0AACIFIAhrIgQgBEEfdSIEaiAEc00NACAGIAMgB2otAAAiBiAKayIEIARBH3UiBGogBHNNDQAgCSAGIAhqIAVBAXRqQQJqQQJ2OgAAIAcgCiAGQQF0aiAFakECakECdjoAACACKAIEIQELAkAgAEEFaiIHIAxqIgktAAAiCCAALQAFIgprIgUgBUEfdSIFaiAFcyABTw0AIAIoAggiBiAHIAtqLQAAIgUgCGsiBCAEQR91IgRqIARzTQ0AIAYgAyAHai0AACIGIAprIgQgBEEfdSIEaiAEc00NACAJIAYgCGogBUEBdGpBAmpBAnY6AAAgByAKIAZBAXRqIAVqQQJqQQJ2OgAAIAIoAgQhAQsCQCAAQQZqIgcgDGoiCS0AACIIIAAtAAYiCmsiBSAFQR91IgVqIAVzIAFPDQAgAigCCCIGIAcgC2otAAAiBSAIayIEIARBH3UiBGogBHNNDQAgBiADIAdqLQAAIgYgCmsiBCAEQR91IgRqIARzTQ0AIAkgBiAIaiAFQQF0akECakECdjoAACAHIAogBkEBdGogBWpBAmpBAnY6AAAgAigCBCEBCyABIABBB2oiASAMaiIHLQAAIgwgAC0AByIAayIIIAhBH3UiCGogCHNNDQEgAigCCCIIIAEgC2otAAAiAiAMayILIAtBH3UiC2ogC3NNDQEgASADai0AACIDIABrIgsgC0EfdSILaiALcyAITw0BIAcgAyAMaiACQQF0akECakECdjoAACABIAAgA0EBdGogAmpBAmpBAnY6AAAPC0EAIANrIgpBAXQhBSABIAIoAgBqQQFrLQAAIgFBf3MhByABQQFqIQhBCCEBA0ACQCACKAIEIAAgCmoiBi0AACILIAAtAAAiDGsiCSAJQR91IglqIAlzTQ0AIAIoAggiCSAAIAVqLQAAIgQgC2siDSANQR91Ig1qIA1zTQ0AIAkgACADai0AACIJIAxrIg0gDUEfdSINaiANc00NACAGIAsgByAIIAwgC2tBAnQgCWsgBGpBBGpBA3UiCyAIIAtIGyAHIAtKGyILakGwLmotAAA6AAAgACAMIAtrQbAuai0AADoAAAsgAEEBaiEAIAFBAWsiAQ0ACwsL6AIBBX8CQCAAIAEQAiIDDQBBASEDIAEgASgCAEEBaiICNgIAIAJBIEsNACAAQQQQAyICQX9GDQAgASACNgIEIABBBBADIgJBf0YNACABIAI2AgggASgCAARAA0AgACABIAVBAnRqIgIiBEEMahACIgMNAkEBIQMgBCgCDCIGQX9GDQIgBCAGQQFqIgM2AgwgBCADIAEoAgRBBmp0NgIMIAAgAkGMAWoQAiIDDQJBASEDIAIoAowBIgRBf0YNAiACIARBAWoiBDYCjAEgAiAEIAEoAghBBGp0NgKMASAAQQEQAyIEQX9GDQIgAiAEQQFGNgKMAiAFQQFqIgUgASgCAEkNAAsLIABBBRADIgJBf0YNACABIAJBAWo2AowDIABBBRADIgJBf0YNACABIAJBAWo2ApADIABBBRADIgJBf0YNACABIAJBAWo2ApQDIABBBRADIgBBf0YNACABIAA2ApgDQQAhAwsgAwtbAQN/IAAgACgCACIEIAEgACgCBCICcCIDQQR0aiABIANrIgFBCHRqNgIMIAAgBCACIAAoAghsIgJBCHRqIAFBBnRqIANBA3RqIgE2AhAgACABIAJBBnRqNgIUC1UBAn8gASACQQFqIgMgASADSxshAyAAIAJBAnRqKAIAIQQDQAJAIAEgAkEBaiICTQRAIAMhAgwBCyAAIAJBAnRqKAIAIARHDQELC0EAIAIgASACRhsLJwAgAEEIIAAoAggiAGsQA0F/RgRADwtBACAAa0ECdEHMP2ooAgAaC3oBAn8jAEEgayICJAAgAiAAKAIQNgIQIAIgACkCCDcDCCACIAApAgA3AwACQCACIAJBHGoQAiIADQAgAiACQRxqEAIiAA0AIAIgAkEcahACIgANAEEBIQAgAigCHCIDQf8BSw0AIAEgAzYCAEEAIQALIAJBIGokACAAC4sIARJ/IwBBgA5rIg4kACAGQQVqIQkCQAJAIAJBAEgNACADQQBIDQAgAiAJaiAESw0AIAMgB2pBBWogBUsNACADIARsIAJqIQoMAQsgACAOQcAKaiACIAMgBCAFIAkgB0EFaiAJEAwgDkHACmohACAJIQQLAkAgB0ECdiIQRQ0AIAlFDQAgBEEBdCESQQAgBGsiC0EBdCEWIARBAnQgBmtBBWshEyAAIApqIARqIgAgBEEFbGohAiAOIAlBAnQiF2ohAyAJQQN0IRhBeyAGa0ECdCEZIAlBA2xBAnQhGgNAIAkhBQNAIAMgGGogACASai0AACIKIAIgEmotAAAgAiAEai0AACIRIAIgFmotAAAiDGoiDWsgDUECdGtqIAItAAAiDyACIAtqLQAAIg1qQRRsajYCACADIBdqIAAgBGotAAAiFSARIAwgDWoiFEEEdGogCiAPaiIRa2ogFCARa0ECdGo2AgAgAyAALQAAIhEgDyAKIAxqIhRBBHRqIA0gFWoiD2tqIBQgD2tBAnRqNgIAIAMgGWogACALai0AACANIAogFWoiCkEEdGogDCARaiIMa2ogCiAMa0ECdGo2AgAgAEEBaiEAIANBBGohAyACQQFqIQIgBUEBayIFDQALIAIgE2ohAiAAIBNqIQAgAyAaaiEDIBBBAWsiEA0ACwsCQCAHRQ0AIAZBAnYiEkUNAEEQIAZrIQ8gDiAIQQJ0akEIaiEJIA5BFGohAgNAIAJBBGsoAgAhACACQQhrKAIAIQMgAkEMaygCACEGIAJBEGsoAgAhBSACQRRrKAIAIQwgEiENA0AgASACIgsoAgAiCCAMIAMgBmoiAkEEdGogACAFaiIEayACIARrQQJ0ampBgARqQQp1QbAuai0AACAJIgQoAgBBEGpBBXVBsC5qLQAAakEBakEBdjoAACABIAsoAgQiCiAFIAAgA2oiAkEEdGogBiAIaiIFayACIAVrQQJ0ampBgARqQQp1QbAuai0AACAEKAIEQRBqQQV1QbAuai0AAGpBAWpBAXY6AAEgASALKAIIIhAgBiAAIAhqIgJBBHRqIAMgCmoiBWsgAiAFa0ECdGpqQYAEakEKdUGwLmotAAAgBCgCCEEQakEFdUGwLmotAABqQQFqQQF2OgACIAEgCygCDCITIAMgCCAKaiICQQR0aiAAIBBqIgNrIAIgA2tBAnRqakGABGpBCnVBsC5qLQAAIAQoAgxBEGpBBXVBsC5qLQAAakEBakEBdjoAAyABQQRqIQEgBEEQaiEJIAtBEGohAiAAIQwgCCEFIAohBiAQIQMgEyEAIA1BAWsiDQ0ACyABIA9qIQEgBEEkaiEJIAtBJGohAiAHQQFrIgcNAAsLIA5BgA5qJAAL+gcBDX8jAEGADmsiDiQAIAZBBWohCQJAAkAgAkEASA0AIANBAEgNACACIAlqIARLDQAgB0EFaiINIANqIAVLDQAgBCEJIAMhCgwBCyAAIA5BwApqIAIgAyAEIAUgCSAHQQVqIg0gCRAMIA5BwApqIQBBACECCwJAIA1FDQAgBkECdiISRQ0AIAkgBmshEyAAIAkgCmwgAmpqQQVqIQIgDiEAA0AgAkEBay0AACEJIAJBAmstAAAhAyACQQNrLQAAIQUgAkEEay0AACEKIAJBBWstAAAhCyASIQ8DQCAAIAItAAAiBCALIAMgBWoiDEEEdGogCSAKaiILayAMIAtrQQJ0amo2AgAgACACLQABIgwgCiADIAlqIgtBBHRqIAQgBWoiCmtqIAsgCmtBAnRqNgIEIAAgAi0AAiIQIAUgBCAJaiIFQQR0aiADIAxqIgpraiAFIAprQQJ0ajYCCCAAIAItAAMiFCADIAQgDGoiA0EEdGogCSAQaiIFa2ogAyAFa0ECdGo2AgwgAEEQaiEAIAJBBGohAiAJIQsgBCEKIAwhBSAQIQMgFCEJIA9BAWsiDw0ACyACIBNqIQIgDUEBayINDQALCwJAIAdBAnYiCkUNACAGRQ0AQcAAIAZrIRIgDiAGQQJ0aiIAIAZBFGxqIQkgACAIQQJqIAZsQQJ0aiEDQQAgBmsiFEEDdCETIAZBA3QhAiAGQQNsQQJ0IQQDQCAGIQ0DQCABIAAgAmooAgAiBSACIAlqKAIAIAkgBkECdCIMaigCACIRIAkgE2ooAgAiB2oiCGsgCEECdGtqIAkoAgAiCyAJIBRBAnQiD2ooAgAiCGpBFGxqQYAEakEKdUGwLmotAAAgAiADaigCAEEQakEFdUGwLmotAABqQQFqQQF2OgAwIAEgACAMaigCACIQIBEgByAIaiIVQQR0aiAFIAtqIhFrIBUgEWtBAnRqakGABGpBCnVBsC5qLQAAIAMgDGooAgBBEGpBBXVBsC5qLQAAakEBakEBdjoAICABIAAoAgAiDCALIAUgB2oiEUEEdGogCCAQaiILayARIAtrQQJ0ampBgARqQQp1QbAuai0AACADKAIAQRBqQQV1QbAuai0AAGpBAWpBAXY6ABAgASAAIA9qKAIAIAggBSAQaiIFQQR0aiAHIAxqIgdrIAUgB2tBAnRqakGABGpBCnVBsC5qLQAAIAMgD2ooAgBBEGpBBXVBsC5qLQAAakEBakEBdjoAACADQQRqIQMgAEEEaiEAIAFBAWohASAJQQRqIQkgDUEBayINDQALIAEgEmohASADIARqIQMgBCAJaiEJIAAgBGohACAKQQFrIgoNAAsLIA5BgA5qJAALsQQBCX8jAEHAA2siCyQAIAZBBWohCQJAAkAgAkEASA0AIAMgB2ogBUsNACADQQBIDQAgAiAJaiAESw0AIAQhCSADIQoMAQsgACALIAIgAyAEIAUgCSAHIAkQDCALIQBBACECCwJAIAdFDQAgBkECdiIORQ0AQRAgBmshDyAJIAZrIRAgACAJIApsIAJqakEFaiEDA0AgA0EBay0AACECIANBAmstAAAhCSADQQNrLQAAIQAgA0EEay0AACEKIANBBWstAAAhBiAOIQwDQCABIAMtAAAiBCAGIAAgCWoiBUEEdGogAiAKaiIGayAFIAZrQQJ0ampBEGpBBXVBsC5qLQAAIAkgACAIG2pBAWpBAXY6AAAgASADLQABIgUgCiACIAlqIgZBBHRqIAAgBGoiCmtqIAYgCmtBAnRqQRBqQQV1QbAuai0AACACIAkgCBtqQQFqQQF2OgABIAEgAy0AAiINIAAgAiAEaiIGQQR0aiAFIAlqIgBraiAGIABrQQJ0akEQakEFdUGwLmotAAAgBCACIAgbakEBakEBdjoAAiABIAMtAAMiESAJIAQgBWoiAEEEdGogAiANaiIGa2ogACAGa0ECdGpBEGpBBXVBsC5qLQAAIAUgBCAIG2pBAWpBAXY6AAMgAUEEaiEBIANBBGohAyACIQYgBCEKIAUhACANIQkgESECIAxBAWsiDA0ACyABIA9qIQEgAyAQaiEDIAdBAWsiBw0ACwsgC0HAA2okAAvUBAEMfyMAQcADayINJAACQAJAIAJBAEgNACADQQBIDQAgAiAGaiAESw0AIAMgB2pBBWogBUsNACADIARsIAJqIQkMAQsgACANIAIgAyAEIAUgBiAHQQVqIAYQDCANIQAgBiEECwJAIAdBAnYiEUUNACAGRQ0AQcAAIAZrIRMgBEEBdCEFIARBAnQgBmshDkEAIARrIg9BAXQhFCAAIAlqIARqIgAgBEEFbGohAiAAIAQgCEECamxqIQcDQCAGIQMDQCABIAAgBWotAAAiCCACIAVqLQAAIAIgBGotAAAiCiACIBRqLQAAIglqIgtrIAtBAnRraiACLQAAIgwgAiAPai0AACILakEUbGpBEGpBBXVBsC5qLQAAIAUgB2otAABqQQFqQQF2OgAwIAEgACAEai0AACISIAogCSALaiIQQQR0aiAIIAxqIgprIBAgCmtBAnRqakEQakEFdUGwLmotAAAgBCAHai0AAGpBAWpBAXY6ACAgASAALQAAIgogDCAIIAlqIhBBBHRqIAsgEmoiDGsgECAMa0ECdGpqQRBqQQV1QbAuai0AACAHLQAAakEBakEBdjoAECABIAAgD2otAAAgCyAIIBJqIghBBHRqIAkgCmoiCWsgCCAJa0ECdGpqQRBqQQV1QbAuai0AACAHIA9qLQAAakEBakEBdjoAACAHQQFqIQcgAEEBaiEAIAFBAWohASACQQFqIQIgA0EBayIDDQALIAEgE2ohASAHIA5qIQcgAiAOaiECIAAgDmohACARQQFrIhENAAsLIA1BwANqJAAL4QEBBH8CQCAAKAIoIgJFDQAgAkEDcSEEIAJBAWtBA08EQCACQXxxIQIDQCAAKAIEIAFBAnRqIAAoAgAgAUEobGo2AgAgACgCBCABQQFyIgNBAnRqIAAoAgAgA0EobGo2AgAgACgCBCABQQJyIgNBAnRqIAAoAgAgA0EobGo2AgAgACgCBCABQQNyIgNBAnRqIAAoAgAgA0EobGo2AgAgAUEEaiEBIAJBBGsiAg0ACwsgBEUNAANAIAAoAgQgAUECdGogACgCACABQShsajYCACABQQFqIQEgBEEBayIEDQALCwuBCAEMfyABKAIIIQsgASgCBCEFAkACQAJAIAIOBgEAAAAAAQALIAAoArgaDQAMAQsgAEHECWohBANAIAQgAxATIQYgA0EOSw0BIANBAWohAyAGRQ0ACwsCQAJAAkACQAJAAkAgACgCmAkiCEUEQCAIRSEDQQAhBAwBCyAAKAK8CSEKQQAhA0EAIQQDQCAKIANB2AFsaigCxAEEQCADIAhGIQMMAgtBACAEQQFqIgQgBCAFRiIHGyEEIAcgCWohCSADQQFqIgMgCEcNAAsMAQsgA0UNAQsCQAJAAkAgAkECaw4GAAEBAQEAAQsgBkUNASAAKAK4GkUNAQwDCyAGDQILIAEoAgBBgAEgBSALbEGAA2wQBBoMAgsgACgCvAkgBSAJbEHYAWxqIQggBARAIAQhAwNAIAggA0EBayIDQdgBbGoiCiABIAkgAyACIAYQFSAKQQE2AsQBIAAgACgCtAlBAWo2ArQJIAMNAAsLIAUgBEEBaiIDSwRAA0AgCCADQdgBbGoiBCgCxAFFBEAgBCABIAkgAyACIAYQFSAEQQE2AsQBIAAgACgCtAlBAWo2ArQJCyADQQFqIgMgBUcNAAsLIAkEQCAFRQ0DIAlBAmshCEEAIQcgCUEBayIMIAVsQdgBbCENQQAgBWtB2AFsIQ4DQCAAKAK8CSANaiAHQdgBbGoiAyABIAwgByACIAYQFSADQQE2AsQBIAAgACgCtAlBAWo2ArQJIAghBCAMBEADQCADIA5qIgMgASAEIgogByACIAYQFSADQQE2AsQBIAAgACgCtAlBAWo2ArQJIARBAWshBCAKDQALCyAHQQFqIgcgBUcNAAsLIAlBAWoiByALTw0CIAVFDQIDQCAAKAK8CSAFIAdsQdgBbGohCEEAIQMDQCAIIANB2AFsaiIEKALEAUUEQCAEIAEgByADIAIgBhAVIARBATYCxAEgACAAKAK0CUEBajYCtAkLIANBAWoiAyAFRw0ACyAHQQFqIgcgC0cNAAsMAgsgASgCACAGIAUgC2xBgANsEAgaCyAAIAAoApgJIgE2ArQJIAFFDQAgAUEHcSEEIAAoArwJIQBBACEDIAFBAWtBB08EQCABQXhxIQYDQCAAIANB2AFsakEBNgIIIAAgA0EBckHYAWxqQQE2AgggACADQQJyQdgBbGpBATYCCCAAIANBA3JB2AFsakEBNgIIIAAgA0EEckHYAWxqQQE2AgggACADQQVyQdgBbGpBATYCCCAAIANBBnJB2AFsakEBNgIIIAAgA0EHckHYAWxqQQE2AgggA0EIaiEDIAZBCGsiBg0ACwsgBEUNAANAIAAgA0HYAWxqQQE2AgggA0EBaiEDIARBAWsiBA0ACwsLrwoCCn8CfiMAQRBrIQcgAUEITwRAQQchBgNAIAAgBkEobGoiAigCGCEKIAIpAgwhDCACKAIIIQggAikCACENIAIoAhQhCSAHIAIoAiQ2AgggByACKQIcNwMAAkAgCQRAIAlBAWshCyAGIQIDQAJAIAAgAkEobGoiBUGEAmsoAgAiA0UNACAFQZgCayEEIANBAWtBAU0EQCALQQFLDQQgBCgCCCAISA0BDAQLIAtBAkkNACAEKAIIIAhMDQMLIAUgACACQQdrIgJBKGxqIgMpAgA3AgAgBSADKQIgNwIgIAUgAykCGDcCGCAFIAMpAhA3AhAgBSADKQIINwIIIAJBBksNAAsMAQsgBiECIApFDQADQCAAIAJBKGxqIgRBhAJrKAIADQEgBEGYAmsoAhgNASAEIAAgAkEHayICQShsaiIDKQIANwIAIAQgAykCIDcCICAEIAMpAhg3AhggBCADKQIQNwIQIAQgAykCCDcCCCACQQdPDQALCyAAIAJBKGxqIgIgCjYCGCACIAk2AhQgAiAMNwIMIAIgCDYCCCACIA03AgAgAiAHKQMANwIcIAIgBygCCDYCJCAGQQFqIgYgAUcNAAsLIAFBBE8EQEEDIQYDQCAAIAZBKGxqIgIoAhghCiACKQIMIQwgAigCCCEIIAIpAgAhDSACKAIUIQkgByACKAIkNgIIIAcgAikCHDcDAAJAIAkEQCAJQQFrIQsgBiECA0ACQCAAIAJBKGxqIgVB5ABrKAIAIgNFDQAgBUH4AGshBCADQQFrQQJPBEAgC0ECSQ0BIAQoAgggCEoNAQwECyALQQFLDQMgBCgCCCAITg0DCyAFIAAgAkEDayICQShsaiIDKQIANwIAIAUgAykCIDcCICAFIAMpAhg3AhggBSADKQIQNwIQIAUgAykCCDcCCCACQQNPDQALDAELIAYhAiAKRQ0AA0AgACACQShsaiIEQeQAaygCAA0BIARB+ABrKAIYDQEgBCAAIAJBA2siAkEobGoiAykCADcCACAEIAMpAiA3AiAgBCADKQIYNwIYIAQgAykCEDcCECAEIAMpAgg3AgggAkECSw0ACwsgACACQShsaiICIAo2AhggAiAJNgIUIAIgDDcCDCACIAg2AgggAiANNwIAIAIgBykDADcCHCACIAcoAgg2AiQgBkEBaiIGIAFHDQALCyABQQJPBEBBASEGA0AgACAGQShsaiICKAIYIQogAikCDCEMIAIoAgghCCACKQIAIQ0gAigCFCEJIAcgAigCJDYCCCAHIAIpAhw3AwACQAJAIAkEQCAJQQFrIQsgBiECA0ACQCAAIAJBKGxqIgVBFGsoAgAiA0UNACAFQShrIQQgA0EBa0ECTwRAIAtBAkkNASAEKAIIIAhKDQEMBQsgC0EBSw0EIAQoAgggCE4NBAsgBSAAIAJBAWsiAkEobGoiAykCADcCACAFIAMpAiA3AiAgBSADKQIYNwIYIAUgAykCEDcCECAFIAMpAgg3AgggAg0ACwwBCyAGIQIgCkUNAQNAIAAgAkEobGoiBEEUaygCAA0CIARBKGsoAhgNAiAEIAAgAkEBayICQShsaiIDKQIANwIAIAQgAykCIDcCICAEIAMpAhg3AhggBCADKQIQNwIQIAQgAykCCDcCCCACDQALC0EAIQILIAAgAkEobGoiAiAKNgIYIAIgCTYCFCACIAw3AgwgAiAINgIIIAIgDTcCACACIAcpAwA3AhwgAiAHKAIINgIkIAZBAWoiBiABRw0ACwsL/gYBB38CQCAAKAIAIgEoAhRFDQAgAUEANgIUIAEoAhgNACAAIAAoAixBAWs2AiwLAkAgASgCPEUNACABQQA2AjwgAUFAaygCAA0AIAAgACgCLEEBazYCLAsCQCABKAJkRQ0AIAFBADYCZCABKAJoDQAgACAAKAIsQQFrNgIsCwJAIAEoAowBRQ0AIAFBADYCjAEgASgCkAENACAAIAAoAixBAWs2AiwLAkAgASgCtAFFDQAgAUEANgK0ASABKAK4AQ0AIAAgACgCLEEBazYCLAsCQCABKALcAUUNACABQQA2AtwBIAEoAuABDQAgACAAKAIsQQFrNgIsCwJAIAEoAoQCRQ0AIAFBADYChAIgASgCiAINACAAIAAoAixBAWs2AiwLAkAgASgCrAJFDQAgAUEANgKsAiABKAKwAg0AIAAgACgCLEEBazYCLAsCQCABKALUAkUNACABQQA2AtQCIAEoAtgCDQAgACAAKAIsQQFrNgIsCwJAIAEoAvwCRQ0AIAFBADYC/AIgASgCgAMNACAAIAAoAixBAWs2AiwLAkAgASgCpANFDQAgAUEANgKkAyABKAKoAw0AIAAgACgCLEEBazYCLAsCQCABKALMA0UNACABQQA2AswDIAEoAtADDQAgACAAKAIsQQFrNgIsCwJAIAEoAvQDRQ0AIAFBADYC9AMgASgC+AMNACAAIAAoAixBAWs2AiwLAkAgASgCnARFDQAgAUEANgKcBCABKAKgBA0AIAAgACgCLEEBazYCLAsCQCABKALEBEUNACABQQA2AsQEIAEoAsgEDQAgACAAKAIsQQFrNgIsCwJAIAEoAuwERQ0AIAFBADYC7AQgASgC8AQNACAAIAAoAixBAWs2AiwLA0ACf0EAIQFBASECAkAgACgCOA0AIAAoAgAhBSAAKAIcIQZB/////wchA0EAIQIDQCAFIAJBKGxqIgQoAhgEQCAEIAEgBCgCECIEIANIIgcbIQEgBCADIAcbIQMLIAJBAWoiAiAGTQ0AC0EBIAFFDQEaIAAoAgwgACgCECIDQQR0aiICIAEoAgA2AgAgAiABKAIkNgIMIAIgASgCHDYCBCACIAEoAiA2AgggACADQQFqNgIQQQAhAiABQQA2AhggASgCFA0AIAAgACgCLEEBazYCLAsgAgtFDQALIABBADYCMCAAQv//AzcCJAvgDwEJfyACKAIAIAAoAggiAigCAEYEQCAAQQA2AjQgACgCOCIJRSEQAkAgAUUEQCACIAM2AgwgAkEANgIUIAIgEDYCGCACIAQ2AhAgAiADNgIIIAkNASAAIAAoAixBAWo2AiwMAQsgBQRAIABCADcCECAAECcCQCABKAIARQRAIAAoAjhFDQELIABCADcCEAsgACgCCCICQQNBAiABKAIEIgEbNgIUIABBAEH//wMgARs2AiQgAiAQNgIYIAJBADYCECACQgA3AgggAEKBgICAEDcCKAwBCwJAAkACQAJAIAEoAggEQANAAkACQAJAAkACQAJAAkAgASAKQRRsaiIIKAIMIgkOBwkAAQIDBAUJCyAAKAIYIglFDQggAyAIKAIQayELIAAoAgAhDEEAIQgDQAJAIAwgCEEobGoiAigCFEEBa0EBTQRAIAIoAgggC0YNAQsgCEEBaiIIIAlHDQEMCgsLIAhBAEgNCCACQQA2AhQgACAAKAIoQQFrNgIoIAIoAhgNBSAAIAAoAixBAWs2AiwgCkEBaiEKDAYLIAAoAhgiCUUNByAIKAIUIQsgACgCACEMQQAhCANAAkAgDCAIQShsaiICKAIUQQNGBEAgAigCCCALRg0BCyAIQQFqIgggCUcNAQwJCwsgCEEASA0HIAJBADYCFCAAIAAoAihBAWs2AiggAigCGA0EIAAgACgCLEEBazYCLCAKQQFqIQoMBQsgACgCJCICQf//A0YNBiAIKAIYIgsgAksNBiAAKAIYIglFDQYgCCgCECEPIAAoAgAhDEEAIQIDQAJAAkAgDCACQShsaiIIKAIUQQNHDQAgCCgCCCALRw0AIAhBADYCFCAAIAAoAihBAWs2AiggCCgCGA0BIAAgACgCLEEBazYCLAwBCyACQQFqIgIgCUcNAQsLIAlBASAJQQFLGyEJIAMgD2shD0EAIQgDQAJAIAwgCEEobGoiAigCFCINQQFrQQFNBEAgAigCCCAPRg0BCyAIQQFqIgggCUcNAQwICwsgCEEASA0GIA1BAkkNBiACQQM2AhQgAiALNgIIIApBAWohCgwECyAAIAgoAhwiCDYCJCAAKAIYIgtFDQIgACgCACEMQQAhAiAIQf//A0YEQANAAkAgDCACQShsaiIJKAIUQQNHDQAgCUEANgIUIAAgACgCKEEBazYCKCAJKAIYDQAgACAAKAIsQQFrNgIsCyACQQFqIgIgC0cNAAwECwALA0ACQCAMIAJBKGxqIgkoAhRBA0cNACAJKAIIIAhNDQAgCUEANgIUIAAgACgCKEEBazYCKCAJKAIYDQAgACAAKAIsQQFrNgIsCyACQQFqIgIgC0cNAAsMAgsgABAnIABBATYCNEEAIQMgCkEBaiEKDAILIAAoAiQiAkH//wNGDQMgCCgCGCIIIAJLDQMCQCAAKAIYIgtFDQAgACgCACEMQQAhAgNAAkAgDCACQShsaiIJKAIUQQNHDQAgCSgCCCAIRw0AIAlBADYCFCAAIAAoAihBAWs2AiggCSgCGA0CIAAgACgCLEEBazYCLAwCCyACQQFqIgIgC0cNAAsLIAsgACgCKCIJTQ0DIAAoAggiAkEDNgIUIAIgBDYCECACIAg2AgggAiADNgIMIAIgACgCOEU2AhhBASEOIAAgCUEBajYCKCAAIAAoAixBAWo2AiwLIApBAWohCgwACwALQQAhAiAAKAIoIgogACgCGCIMSQ0CIApFBEBBACEKDAMLIApBAXEhDyAAKAIAIQsgCkEBRgRAQX8hAQwCCyAKQX5xIQlBfyEBA0AgCyACQShsaiINKAIUQQFrQQFNBEAgDSgCCCINIAggAUF/RiAIIA1KciINGyEIIAIgASANGyEBCyALIAJBAXIiDUEobGoiDigCFEEBa0ECSQRAIA4oAggiDiAIIAFBf0YgCCAOSnIiDhshCCANIAEgDhshAQsgAkECaiECIAlBAmsiCQ0ACwwBCyAODQIgACgCGCEMIAAoAighCgwBCwJAIA9FDQAgCyACQShsaiIJKAIUQQFrQQFLDQAgAiACIAEgCSgCCCAISBsgAUF/RhshAQsgAUEASA0AIAsgAUEobGoiAUEANgIUIAAgCkEBayIKNgIoIAEoAhgNACAAIAAoAixBAWs2AiwLIAogDE8NASAAKAIIIgEgEDYCGCABQQI2AhQgASAENgIQIAEgAzYCCCABIAM2AgwgACAKQQFqNgIoIAAgACgCLEEBajYCLAsLIAAoAggiASAHNgIgIAEgBjYCHCABIAU2AiQCQCAAKAI4RQRAIAAoAiwiASAAKAIcIgNNDQEgACgCACEHA0BB/////wchBUEAIQZBACECA0AgByACQShsaiIEKAIYBEAgBCAGIAQoAhAiBCAFSCIJGyEGIAQgBSAJGyEFCyACQQFqIgIgA00NAAsCQCAGRQ0AIAAoAgwgACgCECIEQQR0aiICIAYoAgA2AgAgAiAGKAIkNgIMIAIgBigCHDYCBCACIAYoAiA2AgggACAEQQFqNgIQIAZBADYCGCAGKAIUDQAgACABQQFrIgE2AiwLIAEgA0sNAAsMAQsgASgCACECIAAoAgwgACgCECIDQQR0aiIBIAU2AgwgASACNgIAIAEgBzYCCCABIAY2AgQgACADQQFqNgIQIAAoAhwhAwsgACgCACADQQFqECYLC14BAX8gAEHECWoiACgCFCIEIAAoAhBJBH8gACAEQQFqNgIUIAAoAgwgBEEEdGoFQQALIgBFBEBBAA8LIAEgACgCBDYCACACIAAoAgw2AgAgAyAAKAIINgIAIAAoAgALtAMBA38DQCAAIAJBAnRqIgEoAhQiAwRAIAMoAigQBSABKAIUQQA2AiggASgCFCgCVBAFIAEoAhRBADYCVCABKAIUEAUgAUEANgIUCyACQQFqIgJBIEcNAAtBACECA0AgACACQQJ0aiIBKAKUASIDBEAgAygCFBAFIAEoApQBQQA2AhQgASgClAEoAhgQBSABKAKUAUEANgIYIAEoApQBKAIcEAUgASgClAFBADYCHCABKAKUASgCLBAFIAEoApQBQQA2AiwgASgClAEQBSABQQA2ApQBCyACQQFqIgJBgAJHDQALIAAoArAaEAUgAEEANgKwGiAAKAK8CRAFIABBADYCvAkgACgClAkQBSAAQQA2ApQJIAAoArwaIgEEQCABEAUgAEEANgK8GgtBACEBQQAhAwJAIABBxAlqIgIoAgAiAEUNACACKAIcQX9GBEAgACEBDAELIAAhAQNAIAEgA0EobCIAaigCBBAFIAIoAgAiASAAakEANgIEIANBAWoiAyACKAIcQQFqSQ0ACwsgARAFIAJBADYCACACKAIEEAUgAkEANgIEIAIoAgwQBSACQQA2AgwL/tEDAkN/An4jAEGQAWsiGCQAIBhBADYCDAJAAkACQCAAKAKQGkUNACAAKAKUGiABRw0AIBggAEGsGmooAgA2AiAgGCAAQaQaaikCADcDGCAAKQKcGiFIIBhBADYCICAYQQA2AhggGCBINwMQIBggSD4CFCAEIAAoApgaNgIADAELQQYhIgJ/IAEhCAJAAkAgAkEESQ0AIAgtAAANACAILQABDQAgCC0AAiINQQFLDQBBAyEGIAhBA2ohBUECIQcCQANA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NgIEIAEgA0EIahACIgINACADKAIIQR9LBEBBASECDAELIAEgBUEMahACIgINAEEBIQIgBSgCDCIEQQxLDQAgA0EBIARBBGp0NgIMIAEgBUEMahACIgINACAFKAIMIgJBAksEQEEBIQIMAQsgAyACNgIQAkACQAJAIAIOAgABAgsgASAFQQxqEAIiAg0CIAUoAgwiAkEMSwRAQQEhAgwDCyADQQEgAkEEanQ2AhQMAQtBASECIAFBARADIgRBf0YNASADIARBAUY2AhggASADQRxqEAYiAg0BIAEgA0EgahAGIgINASABIANBJGoQAiICDQFBASECIAMoAiQiBEH/AUsNASAEBEAgAyAEQQJ0EAoiAjYCKCACRQRAQf//AyECDAMLIAEgAhAGIgINAkEBIQYDQCAGIAMoAiRPDQIgBkECdCECIAZBAWohBiABIAIgAygCKGoQBiICRQ0ACwwCCyADQQA2AigLIAEgA0EsahACIgINAEEBIQIgAygCLEEQSw0AIAFBARADIgRBf0YNACADIARBAUY2AjAgASAFQQxqEAIiAg0AIAMgBSgCDEEBajYCNCABIAVBDGoQAiICDQBBASECIAMgBSgCDEEBajYCOCABQQEQA0EBakECSQ0AIAFBARADQX9GDQAgAUEBEAMiBEF/Rg0AIAMgBEEBRiICNgI8AkAgAkUEQCADKAI4IQkgAygCNCEGDAELIAEgA0FAaxACIgINASABIANBxABqEAIiAg0BIAEgA0HIAGoQAiICDQEgASADQcwAahACIgINAUEBIQIgAygCQCADKAJEQX9zIAMoAjQiBkEDdGpKDQEgAygCSCADKAJMQX9zIAMoAjgiCUEDdGpKDQELIAYgCWwhAkH/////ByEGAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADKAIEQQprDioAAQIDEBAQEBAQBAUGEBAQEBAQEAcICRAQEBAQEBAKCwwQEBAQEBAQDQ4QC0GApAkhBCACQeMASwwOC0GAjBUhBCACQYwDSwwNC0GA2DchBCACQYwDSwwMC0GA2DchBCACQYwDSwwLC0GA2DchBCACQYwDSwwKC0GAsO8AIQQgAkGYBksMCQtBgOy9ASEEIAJB1AxLDAgLQYDsvQEhBCACQdQMSwwHC0GA8KUDIQQgAkGQHEsMBgtBgIDg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OA0CIAEoAgAhEANAQQAhBEH/////ByEDQQAhAgNAIBAgAkEobGoiCigCGARAIAogBCAKKAIQIgogA0giDxshBCAKIAMgDxshAwsgAkEBaiICIAdNDQALAkAgBEUNACABKAIMIAEoAhAiA0EEdGoiAiAEKAIANgIAIAIgBCgCJDYCDCACIAQoAhw2AgQgAiAEKAIgNgIIIAEgA0EBajYCECAEQQA2AhggBCgCFA0AIAEgBkEBayIGNgIsCyAGIAdPDQALCyABKAIAIgMgB0EobGoiAiAFNgIMIAJCgICAgBA3AhAgAkEANgIYIAIgBTYCCCABIAlBAWo2AiggASAGQQFqNgIsIAMgB0EBahAmIAVBAWogASgCICIGcCIFIAhHDQALAkAgASgCECIJRQ0AIAEoAgAiBiABKAIcIgNBKGxqIgUoAgAhBCABKAIMIQdBACECA0AgBCAHIAJBBHRqKAIARwRAIAkgAkEBaiICRw0BDAILCyADRQ0AQQAhAgNAIAsgBiACQShsaiIJKAIARwRAIAMgAkEBaiICRw0BDAILCyAJIAQ2AgAgBSALNgIACyANDQQgASgCMCECDAILA0AMAAsACyANDQILIAIgCEYNACABIAggASgCICIBakEBayABcDYCMAtBAAwCCyABIAg2AjBBAAwBCyANCw0DCyAAQcQJaiIBIAEoAgAgASgCHEEobGoiATYCCCAAIAEoAgA2ArgKCyAAQdgKaiAdQdwHEAghFCAAQQE2AqQJIAAgGCkDiAE3AtAKIAAoApQJIQ0gAEGYC2ooAgAhA0EAIQlBACEQIAAoAhAiASgCNCIKIAEoAjgiBWwhBgJAIAAoAgwiASgCDCIHQQFGBEAgDUEAIAZBAnQQBBoMAQsCQAJAAkAgASgCECICQQNrQQJNBEAgASgCJCADbCIDIAYgAyAGSRshDyABKAIgIQMgAkF+cUEERw0BIAYgD2sgDyADGyEJCwJAAkACQAJAAkACQCACDgYBAgMABQQACyAGRQ0HIAZBA3EhECABKAIsIQJBACEBIAZBAWtBA08EQCAGQXxxIQQDQCANIAFBAnQiA2ogAiADaigCADYCACANIANBBHIiCWogAiAJaigCADYCACANIANBCHIiCWogAiAJaigCADYCACANIANBDHIiA2ogAiADaigCADYCACABQQRqIQEgBEEEayIEDQALCyAQRQ0HA0AgDSABQQJ0IgNqIAIgA2ooAgA2AgAgAUEBaiEBIBBBAWsiEA0ACwwHCyAHRQ0FIAEoAhQhA0EAIQkDQEEAIRAgBiAJTQ0HA0AgAyAQQQJ0aiIFKAIAIQQCQCAGIAlNDQAgBEUNAEEBIQEgCSECA0AgDSACQQJ0aiAQNgIAIAEgBSgCACIETw0BIAEgCWoiAiAGTw0BIAFBAWohAQwACwALIAcgEEEBaiIQS0EAIAYgBCAJaiIJSxsNAAsgBiAJSw0ACwwGCyAGRQ0FQQAhAQNAIA0gAUECdGogASAKbiICIAdsQQF2IAEgAiAKbGtqIAdwNgIAIAFBAWoiASAGRw0ACwwFCyABKAIcIQUgASgCGCEIAkAgBkUNACAHQQFrIQEgBkEHcSEQQQAhCSAGQQFrQQdPBEAgBkF4cSEEA0AgDSAJQQJ0IgJqIAE2AgAgDSACQQRyaiABNgIAIA0gAkEIcmogATYCACANIAJBDHJqIAE2AgAgDSACQRByaiABNgIAIA0gAkEUcmogATYCACANIAJBGHJqIAE2AgAgDSACQRxyaiABNgIAIAlBCGohCSAEQQhrIgQNAAsLIBBFDQADQCANIAlBAnRqIAE2AgAgCUEBaiEJIBBBAWsiEA0ACwsgB0ECayEBA0ACQCAIIAEiAkECdCIBaigCACIDIApuIgQgASAFaigCACIBIApuIglLDQAgAyAEIApsayIDIAEgCSAKbGsiBksNAANAIAQgCmwhByADIQEDQCANIAEgB2pBAnRqIAI2AgAgAUEBaiIBIAZNDQALIARBAWoiBCAJTQ0ACwsgAkEBayEBIAINAAsMBAsgCkUNAyAFRQ0DQQEgASgCICIHayEIIAVBfnEhBiAFQQFxIQtBACEDA0AgAyEBQQAhAiAGIQQgBUEBRwRAA0AgDSACIApsIBBqQQJ0aiAHIAggASAJSRs2AgAgDSACQQFyIApsIBBqQQJ0aiAHIAggAUEBaiAJSRs2AgAgAkECaiECIAFBAmohASAEQQJrIgQNAAsLIAsEQCANIAIgCmwgEGpBAnRqIAcgCCABIAlJGzYCAAsgAyAFaiEDIBBBAWoiECAKRw0ACwwDCyAGRQ0CQQEgASgCICICayEDIAZBA3EhBEEAIQEgBkEBa0EDTwRAIAZBfHEhBQNAIA0gAUECdGogAiADIAEgCUkbNgIAIA0gAUEBciIGQQJ0aiACIAMgBiAJSRs2AgAgDSABQQJyIgZBAnRqIAIgAyAGIAlJGzYCACANIAFBA3IiBkECdGogAiADIAYgCUkbNgIAIAFBBGohASAFQQRrIgUNAAsLIARFDQIDQCANIAFBAnRqIAIgAyABIAlJGzYCACABQQFqIQEgBEEBayIEDQALDAILAkAgBkUNACAGQQdxIQlBACECIAZBAWtBB08EQCAGQXhxIRADQCANIAJBAnQiAWpBATYCACANIAFBBHJqQQE2AgAgDSABQQhyakEBNgIAIA0gAUEMcmpBATYCACANIAFBEHJqQQE2AgAgDSABQRRyakEBNgIAIA0gAUEYcmpBATYCACANIAFBHHJqQQE2AgAgAkEIaiECIBBBCGsiEA0ACwsgCUUNAANAIA0gAkECdGpBATYCACACQQFqIQIgCUEBayIJDQALCyAPRQ0BIApBAWshDCAFQQFrIR1BASADQQF0IgFrIQQgAUEBayEGIANBAWshAiAFIANrQQF2IgghCyAKIANrQQF2IgchCSAIIQUgByEBQQAhEANAIA0gBSAKbCABakECdGoiESgCACIbQQFGBEAgEUEANgIACyAbQQFGIRECQAJAIAJBf0cNACABIAlHDQBBACECIAYhAyAJQQEgCUEBShtBAWsiASEJDAELAkAgAkEBRw0AIAEgB0cNAEEAIQIgBCEDIAdBAWoiASAMIAEgDEgbIgEhBwwBCwJAIANBf0cNACAFIAtHDQBBACEDIAQhAiALQQEgC0EBShtBAWsiBSELDAELAkAgA0EBRw0AIAUgCEcNAEEAIQMgBiECIAhBAWoiBSAdIAUgHUgbIgUhCAwBCyADIAVqIQUgASACaiEBCyAQIBFqIhAgD0kNAAsMAQsgBkUNAANADAALAAsLIABBxAlqIggQJEEPISICfyAAQeQKaigCACEFIABBhAtqKAIAIQlBACECIAgoAigiAwRAIAgoAgAhBANAIAQgAkEobGoiASgCFEEBa0EBTQRAIAEgBSABKAIMIgFJBH8gASAIKAIgawUgAQs2AggLIAJBAWoiAiADRw0ACwtBACAAQZwLaiINKAIARQ0AGkEAIQZBACANKAIEIgJBAksNABogBSEBA0ACQAJAAkACQAJAAkACQAJAIAIOAwABAwELIAEg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IAEgAmoiAS0AADoABCADIAEgAmoiAS0AADoABSADIAEgAmoiAS0AADoABiADIAEgAmoiAS0AADoAByADIAEgAmoiAS0AADoACCADIAEgAmoiAS0AADoACSADIAEgAmoiAS0AADoACiADIAEgAmoiAS0AADoACyADIAEgAmoiAS0AADoADCADIAEgAmoiAS0AADoADSADIAEgAmoiAS0AADoADiADIAEgAmotAAA6AA8gA0EQaiEDCyAdKAIAIAUgEGwiEEEIdGogDyAFQQN0IgFsQQN0aiALQQN0aiEKIAFB+P///wdxIQEgDkUEQCAIIAogAUF/c2oiAi0AADoAACAIIAogAWstAAA6AAEgCCACLQACOgACIAggAi0AAzoAAyAIIAItAAQ6AAQgCCACLQAFOgAFIAggAi0ABjoABiAIIAItAAc6AAcgCCACQQhqIgItAAA6AAggCCAQQQZ0IAJqIgJBCGstAAA6AAkgCCACQQdrLQAAOgAKIAggAkEGay0AADoACyAIIAJBBWstAAA6AAwgCCACQQRrLQAAOgANIAggAkEDay0AADoADiAIIAJBAmstAAA6AA8gCCACQQFrLQAAOgAQIAggAi0AADoAEQsgC0UNACADIApBAWsiAi0AADoAACADIAEgAmoiAi0AADoAASADIAEgAmoiAi0AADoAAiADIAEgAmoiAi0AADoAAyADIAEgAmoiAi0AADoABCADIAEgAmoiAi0AADoABSADIAEgAmoiAi0AADoABiADIAEgAmoiAi0AADoAByADIAEgAmogECAFa0EGdGoiAi0AADoACCADIAEgAmoiAi0AADoACSADIAEgAmoiAi0AADoACiADIAEgAmoiAi0AADoACyADIAEgAmoiAi0AADoADCADIAEgAmoiAi0AADoADSADIAEgAmoiAi0AADoADiADIAEgAmotAAA6AA8LAkACQEECIAYoAgAiAUEGRyABQQZJG0EBRgRAAn8gDCEDIA1ByAJqIQgCfyAGKALIASIBBEAgBigCBCABKAIERgwBC0EACyELAkAgE0UNACALRQ0AQQAgC0ECIAYoAsgBKAIAIgFBBkcgAUEGSRtBAkYbIQsLAn8gBigCzAEiAQRAIAYoAgQgASgCBEYMAQtBAAshBQJAIBNFDQAgBUUNAEEAIAVBAiAGKALMASgCACIBQQZHIAFBBkkbQQJGGyEFCwJ/IAYoAtQBIgEEQCAGKAIEIAEoAgRGDAELQQALIQICQCATRQ0AIAJFDQBBAiAGKALUASgCACIBQQZHIAFBBkkbQQJHIQILAkACQAJAAkACQAJAIAYoAgBBAWpBA3EOAwABAgMLQQEgBUUNBRpBASEHIAMhAQNAIAEgES0AIToAACABIBEtACI6AAEgASARLQAjOgACIAEgES0AJDoAAyABIBEtACU6AAQgASARLQAmOgAFIAEgES0AJzoABiABIBEtACg6AAcgASARLQApOgAIIAEgES0AKjoACSABIBEtACs6AAogASARLQAsOgALIAEgES0ALToADCABIBEtAC46AA0gASARLQAvOgAOIAEgES0AMDoADyAHQRBGDQQgAUEQaiEBIAdBAWohBwwACwALQQEgC0UNBBogAyEBA0AgASAHIBFqIgItAAA6AAAgASACLQAAOgABIAEgAi0AADoAAiABIAItAAA6AAMgASACLQAAOgAEIAEgAi0AADoABSABIAItAAA6AAYgASACLQAAOgAHIAEgAi0AADoACCABIAItAAA6AAkgASACLQAAOgAKIAEgAi0AADoACyABIAItAAA6AAwgASACLQAAOgANIAEgAi0AADoADiABIAItAAA6AA8gAUEQaiEBIAdBAWoiB0EQRw0ACwwCCyADAn8CQCALRQ0AIAVFDQAgES0ADyARLQAwIBEtAA4gES0ALyARLQANIBEtAC4gES0ADCARLQAtIBEtAAsgES0ALCARLQAKIBEtACsgES0ACSARLQAqIBEtAAggES0AKSARLQAHIBEtACggES0ABiARLQAnIBEtAAUgES0AJiARLQAEIBEtACUgES0AAyARLQAkIBEtAAIgES0AIyARLQABIBEtACIgES0AISARLQAAampqampqampqampqampqampqampqampqampqampqakEQakEFdgwBCyALBEAgES0ADyARLQAOIBEtAA0gES0ADCARLQALIBEtAAogES0ACSARLQAIIBEtAAcgES0ABiARLQAFIBEtAAQgES0AAyARLQACIBEtAAAgES0AAWpqampqampqampqampqakEIakEEdgwBC0GAASAFRQ0AGiARLQAwIBEtAC8gES0ALiARLQAtIBEtACwgES0AKyARLQAqIBEtACkgES0AKCAR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BS0AAyAFLQACIAUtAAAgBS0AAWpqakECakECdiIDCyEGIAIgA0H/AXFBgYKECGwiAzYAHCACIAZB/wFxQYGChAhsIgY2ABggAiADNgAUIAIgBjYAECACIAM2AAwgAiAGNgAIIAIgAzYABCACIAY2AAACQCAZBEAgBS0AByAFLQAGIAUtAAUgBS0ABGpqaiIKQQJqQQJ2IQMgEEUEQCADIQYMAgsgAyEGIActAAggBy0AByAHLQAGIAogBy0ABWpqampBBGpBA3YhAwwBCyAQRQRAQYABIQNBgAEhBgwBCyAHLQAIIActAAcgBy0ABSAHLQAGampqQQJqQQJ2IQMgBy0ABCAHLQADIActAAEgBy0AAmpqakECakECdiEGCyACIANB/wFxQYGChAhsIgM2ADwgAiAGQf8BcUGBgoQIbCIGNgA4IAIgAzYANCACIAY2ADAgAiADNgAsIAIgBjYAKCACIAM2ACQgAiAGNgAgDAQLIBkNAkEBDAULQQEgEEUNBBogAiAHLQABOgAAIAIgBy0AAToACCACIActAAE6ABAgAiAHLQABOgAYIAIgBy0AAToAICACIActAAE6ACggAiAHLQABOgAwIAIgBy0AAToAOCACIActAAI6AAEgAiAHLQACOgAJIAIgBy0AAjoAESACIActAAI6ABkgAiAHLQACOgAhIAIgBy0AAjoAKSACIActAAI6ADEgAiAHLQACOgA5IAIgBy0AAzoAAiACIActAAM6AAogAiAHLQADOgASIAIgBy0AAzoAGiACIActAAM6ACIgAiAHLQADOgAqIAIgBy0AAzoAMiACIActAAM6ADogAiAHLQAEOgADIAIgBy0ABDoACyACIActAAQ6ABMgAiAHLQAEOgAbIAIgBy0ABDoAIyACIActAAQ6ACsgAiAHLQAEOgAzIAIgBy0ABDoAOyACIActAAU6AAQgAiAHLQAFOgAMIAIgBy0ABToAFCACIActAAU6ABwgAiAHLQAFOgAkIAIgBy0ABToALCACIActAAU6ADQgAiAHLQAFOgA8IAIgBy0ABjoABSACIActAAY6AA0gAiAHLQAGOgAVIAIgBy0ABjoAHSACIActAAY6ACUgAiAHLQAGOgAtIAIgBy0ABjoANSACIActAAY6AD0gAiAHLQAHOgAGIAIgBy0ABzoADiACIActAAc6ABYgAiAHLQAHOgAeIAIgBy0ABzoAJiACIActAAc6AC4gAiAHLQAHOgA2IAIgBy0ABzoAPiACIActAAg6AAcgAiAHLQAIOgAPIAIgBy0ACDoAFyACIActAAg6AB8gAiAHLQAIOgAnIAIgBy0ACDoALyACIActAAg6ADcgAiAHLQAIOgA/DAILQQEgFUUNAxogBy0ABSAHLQADayAHLQAGIActAAJrQQF0aiAHLQAHIActAAFrQQNsaiAHLQAIIgMgBy0AACIKa0ECdGpBEWxBEGpBBXUiBkF9bCEXIAMgBS0AByIOakEEdCAFLQAEIAUtAAJrIA4gCmtBAnRqIAUtAAUgBS0AAWtBAXRqIAUtAAYgBS0AAGtBA2xqQRFsQRBqQQV1IhxBfWxqQRBqIQ5BByEKIAIhAwNAIAMgDiAXaiIeQQV1QbAuai0AADoAACADIAYgHmoiHkEFdUGwLmotAAA6AAEgAyAGIB5qIh5BBXVBsC5qLQAAOgACIAMgBiAeaiIeQQV1QbAuai0AADoAAyADIAYgHmoiHkEFdUGwLmotAAA6AAQgAyAGIB5qIh5BBXVBsC5qLQAAOgAFIAMgBiAeaiIeQQV1QbAuai0AADoABiADIAYgHmpBBXVBsC5qLQAAOgAHIApFDQIgDiAcaiEOIANBCGohAyAKQQFrIQoMAAsACyACIAUtAAA6AAAgAiAFLQAAOgABIAIgBS0AADoAAiACIAUtAAA6AAMgAiAFLQAAOgAEIAIgBS0AADoABSACIAUtAAA6AAYgAiAFLQAAOgAHIAIgBS0AAToACCACIAUtAAE6AAkgAiAFLQABOgAKIAIgBS0AAToACyACIAUtAAE6AAwgAiAFLQABOgANIAIgBS0AAToADiACIAUtAAE6AA8gAiAFLQACOgAQIAIgBS0AAjoAESACIAUtAAI6ABIgAiAFLQACOgATIAIgBS0AAjoAFCACIAUtAAI6ABUgAiAFLQACOgAWIAIgBS0AAjoAFyACIAUtAAM6ABggAiAFLQADOgAZIAIgBS0AAzoAGiACIAUtAAM6ABsgAiAFLQADOgAcIAIgBS0AAzoAHSACIAUtAAM6AB4gAiAFLQADOgAfIAIgBS0ABDoAICACIAUtAAQ6ACEgAiAFLQAEOgAiIAIgBS0ABDoAIyACIAUtAAQ6ACQgAiAFLQAEOgAlIAIgBS0ABDoAJiACIAUtAAQ6ACcgAiAFLQAFOgAoIAIgBS0ABToAKSACIAUtAAU6ACogAiAFLQAFOgArIAIgBS0ABToALCACIAUtAAU6AC0gAiAFLQAFOgAuIAIgBS0ABToALyACIAUtAAY6ADAgAiAFLQAGOgAxIAIgBS0ABjoAMiACIAUtAAY6ADMgAiAFLQAGOgA0IAIgBS0ABjoANSACIAUtAAY6ADYgAiAFLQAGOgA3IAIgBS0ABzoAOCACIAUtAAc6ADkgAiAFLQAHOgA6IAIgBS0ABzoAOyACIAUtAAc6ADwgAiAFLQAHOgA9IAIgBS0ABzoAPiACIAUtAAc6AD8LQQAhDgNAIAggDkEGdGoiAygCACIXQf///wdHBEAgAygCBCEcIAIgCyALQQNxIAtBEEkiBhtBAnQiHkHwKWooAgBBEEEIIAYbIgpsaiAeQbApaigCAGoiBiAXIAYtAABqQbAuai0AADoAACADKAIIIRcgBiAcIAYtAAFqQbAuai0AADoAASADKAIMIRwgBiAXIAYtAAJqQbAuai0AADoAAiAGIBwgBi0AA2pBsC5qLQAAOgADIAMoAhQhFyAGIApqIgYgAygCECAGLQAAakGwLmotAAA6AAAgAygCGCEcIAYgFyAGLQABakGwLmotAAA6AAEgAygCHCEXIAYgHCAGLQACakGwLmotAAA6AAIgBiAXIAYtAANqQbAuai0AADoAAyADKAIkIRcgBiAKaiIGIAMoAiAgBi0AAGpBsC5qLQAAOgAAIAMoAighHCAGIBcgBi0AAWpBsC5qLQAAOgABIAMoAiwhFyAGIBwgBi0AAmpBsC5qLQAAOgACIAYgFyAGLQADakGwLmotAAA6AAMgAygCNCEXIAYgCmoiBiADKAIwIAYtAABqQbAuai0AADoAACADKAI4IQogBiAXIAYtAAFqQbAuai0AADoAASADKAI8IQMgBiAKIAYtAAJqQbAuai0AADoAAiAGIAMgBi0AA2pBsC5qLQAAOgADCyALQQFqIQsgDkEBaiIOQQRHDQALIAhBgAJqIQggBUEIaiEFIAdBCWohByACQUBrIQIgD0EBaiIPQQJHDQALQQALDQBBACEBIBIoAsQBQQFLDQAgHSAMEBgLIBFB0ABqJAAgASIDRQ0BDAILIAEhC0EAIQNBACECQQAhCkEAIRNBACEPQQAhEkEAIRkjAEEgayIQJAAgECAdKAIEIgE2AgwgECAdKAIINgIQIAQgAW4iBUEEdCERIAQgASAFbGtBBHQhDgJAAkACfwJAAn8CQAJAAkACQAJAIAYiBSgCACIWDgQAAAECAwsgBSgCBCEBQQEhCkF/IQhBACEGQX8hDEEBIQMCf0EAIAUoAsgBIgdFDQAaQQAgBygCBCABRw0AGkEAIQNBACAHKAIAQQVLDQAaIAcoAmghDCAHKAKYASICQRB2CyEHAkAgBSgCzAEiE0UNACABIBMoAgRHDQBBACEKIBMoAgBBBUsNACATKAKsASISQRB2IQYgEygCbCEICyANKAKQASETAkAgFkUEQCADIApyDQEgAkH//wNxIAdBEHRyIAxyRQ0BIBJB//8DcSAGQRB0ciAIckUNAQsgDS8BoAEhGQJAAn8CQAJAIAUoAtABIg9FDQAgDygCBCABRw0AIA8oAgBBBUsNASAPKAJsIQMgDygCrAEMAgsCQCAFKALUASIPRQ0AIA8oAgQgAUcNACAPKAIAQQVLDQEgDygCcCEDIA8oAsABDAILIAMgCkEBc3JBAUcNAgtBfyEDQQALIQEgCCATRiIKIAwgE0YiCGogAyATRmpBAUcEQCAGIAcgBkEQdEEQdSIGIAdBEHRBEHUiA0oiBxsiCCADIAYgAyADIAZKGyAHGyIGIAFBEHUiAyADIAZIGyAIQRB0QRB1IANIGyEHIBIgAiASQRB0QRB1IgMgAkEQdEEQdSICSiIGGyIIQf//A3EgAiADIAIgAiADShsgBhsiAiABQRB0QRB1IgEgASACSBsgCEEQdEEQdSABSBshAgwBCyACIBIgCBshAiAHIAYgCBshByAIDQAgCg0AIAFBEHYhByABIQILQQEhCCACIBlqIg9BEHRBEHVBgEBrQf//AEsNCSAHIA0vAaIBaiIZQRB0QRB1QYAQakH/H0sNCQsgKCATEBMiAkUEQEEBIQgMCQsgBSAZOwHCASAFIA87AcABIAUgAjYCdCAFIBM2AmQgBSACNgKAASAFIAI2AnwgBSACNgJ4IAUgEzYCcCAFIBM2AmwgBSATNgJoIAUgBSgCwAEiATYCvAEgBSABNgK4ASAFIAE2ArQBIAUgATYCsAEgBSABNgKsASAFIAE2AqgBIAUgATYCpAEgBSABNgKgASAFIAE2ApwBIAUgATYCmAEgBSABNgKUASAFIAE2ApABIAUgATYCjAEgBSABNgKIASAFIAE2AoQBIBAgAjYCCCALIAVBhAFqIBBBCGogDiARQQBBAEEQQRAQDwwHCyANKAKQASEMIAUoAgQhAyAFKALMASIBRQ0EIAMgASgCBEcNBCABKAIAQQZPBEAgDEF/RiECQQEhCkEAIQZBAAwGCyABKAJsIAxGIQJBASEKIAEoAqwBIgZBEHYMBQsgDSgCkAEhEiAFKAIEIQIgBSgCyAEiAUUNASACIAEoAgRHDQECfyABKAIAQQZPBEAgEkF/RiEMQQAhBkEADAELIAEoAmggEkYhDCABKAKYASIGQRB2CyEDQQAMAgsgBUGEAWohDANAAn8gDSATQQJ0IhJqIhciJCgCsAEiAUECTQRAIAFBAnRBnDVqKAIADAELQQQLIR4gBSASaiIBIBcoAsABNgJkIAEgKCAXKALAARATIgE2AnQgAUUEQEEBIQgMBwsgHgRAIAwgE0EEdCIWaiImISUgDCAWQQxyaiIaQQJqISEgDCAWQQhyaiIqIS4gDCAWQQRyaiIfIStBACECA0AgDSAWaiACQQJ0aiIBLwHSASEsIAEvAdABIS0gFygCwAEhHEEBIQ9BfyEZAn8CQCAFIBNBB3QgJCgCsAEiJ0EFdGogAkEDdGoiBkGwGWooAgAQESIDRQ0AQQAhB0EAIQFBfyADKAIEIAUoAgRHDQEaQQAhDyADKAIAQQVLDQAgAyAGQbQZai0AACIIQQJ0aigChAEiAUEQdiEHIAMgCEH8AXFqKAJkDAELQQAhB0EAIQFBfwshLwJAAkACQCAFIAZBsB1qKAIAEBEiFUUEQEEAIQMMAQtBACEDIBUoAgQgBSgCBEYNAQtBACEKQQAhCAwBC0EBIQggFSgCAEEFSwRAQQAhCgwBCyAVIAZBtB1qLQAAIhlBAnRqKAKEASIKQRB2IQMgFSAZQfwBcWooAmQhGQsCQAJ/AkACQCAFIAZBsCFqKAIAEBEiFUUNACAVKAIEIAUoAgRHDQAgFSgCAEEFSw0BIBUgBkG0IWotAAAiBkH8AXFqKAJkIQ8gFSAGQQJ0aigChAEMAgsCQCAFIAZBsCVqKAIAEBEiFUUNACAVKAIEIAUoAgRHDQAgFSgCAEEFSw0BIBUgBkG0JWotAAAiBkH8AXFqKAJkIQ8gFSAGQQJ0aigChAEMAgsgCCAPckEBRw0CC0F/IQ9BAAshBiAZIBxGIhkgHCAvRiIIaiAPIBxGakEBRwRAIAMgByADQRB0QRB1IgggB0EQdEEQdSIDSiIHGyIPIAMgCCADIAMgCEobIAcbIgcgBkEQdSIDIAMgB0gbIA9BEHRBEHUgA0gbIQcgCiABIApBEHRBEHUiAyABQRB0QRB1IgFKIggbIgpB//8DcSABIAMgASABIANKGyAIGyIDIAZBEHRBEHUiASABIANIGyAKQRB0QRB1IAFIGyEBDAELIAEgCiAIGyEBIAcgAyAIGyEHIAgNACAZDQAgBkEQdiEHIAYhAQtBASEIIAEgLWoiAUEQdEEQdUGAQGtB//8ASw0IIAcgLGoiA0EQdEEQdUGAEGpB/x9LDQgCQAJ/AkACQAJAAkAgJw4EAAECAwULICYgATsBACAlIAM7AQIgHyABOwEAICsgAzsBAiAqIAE7AQAgLiADOwECIBogATsBACAhDAMLIAwgAkEBdCASakECdCIGaiIHIAM7AQIgByABOwEAIAwgBkEEcmoiBiABOwEAIAZBAmoMAgsgBSACIBJqQQJ0aiIGIAE7AYwBIAYgAzsBhgEgBiABOwGEASAGQY4BagwBCyAFIAIgEmpBAnRqIgYgATsBhAEgBkGGAWoLIAM7AQALIAJBAWoiAiAeRw0ACwsgE0EBaiITQQRHDQALQQAhAgNAIBAgBSACQQJ0IgZqKAJ0NgIIIAJBAUtBA3QhASACQQN0QQhxIQMCQAJAAkACQAJAIAYgDWooArABDgMAAQIDCyALIAUgAkEEdGpBhAFqIBBBCGogDiARIAMgAUEIQQgQDwwDCyALIAUgAkEEdGoiBkGEAWogEEEIaiAOIBEgAyABQQhBBBAPIAsgBkGMAWogEEEIaiAOIBEgAyABQQRyQQhBBBAPDAILIAsgBSACQQR0aiIGQYQBaiAQQQhqIA4gESADIAFBBEEIEA8gCyAGQYgBaiAQQQhqIA4gESADQQRyIAFBBEEIEA8MAQsgCyAFIAJBBHRqIgZBhAFqIBBBCGogDiARIAMgAUEEQQQQDyALIAZBiAFqIBBBCGogDiARIANBBHIiByABQQRBBBAPIAsgBkGMAWogEEEIaiAOIBEgAyABQQRyIgFBBEEEEA8gCyAGQZABaiAQQQhqIA4gESAHIAFBBEEEEA8LIAJBAWoiAkEERw0ACwwECyASQX9GIQxBACEGQQELIQcgDS8BoAEhEwJAAkAgDA0AAn8CfwJAAkAgBSgCzAEiAUUNACABKAIEIAJHDQAgASgCAEEGTw0BIAEoAmwgEkYhDCABKAJwIQogASgCvAEhCCABKAKsASIBQRB2DAMLAkAgBSgC1AEiAUUNACABKAIEIAJHDQAgASgCAEEGTw0BIBJBf0YhDCABKAJwIQogASgCwAEMAgsgB0UNAwtBfyEKIBJBf0YhDEEACyEIQQAhAUEACyEHIAwgCiASRmpBAUcEQCAHIAMgB0EQdEEQdSIHIANBEHRBEHUiAkoiAxsiCiACIAcgAiACIAdKGyADGyIDIAhBEHUiAiACIANIGyAKQRB0QRB1IAJIGyEHIAEgBiABQRB0QRB1IgIgBkEQdEEQdSIBSiIDGyIGQf//A3EgASACIAEgASACShsgAxsiAiAIQRB0QRB1IgEgASACSBsgBkEQdEEQdSABSBshAQwCCyAMDQEgCEEQdiEHIAghAQwBCyADIQcgBiEBC0EBIQggASATaiICQRB0QRB1QYBAa0H//wBLDQMgByANLwGiAWoiA0EQdEEQdUGAEGpB/x9LDQMgKCASEBMiAUUNAyAFIAM7AbIBIAUgAjsBsAEgBSABNgJ0IAUgEjYCZCAFIAE2AnwgBSASNgJsIAUgBSgCsAEiATYCrAEgBSABNgKoASAFIAE2AqQBIAUgATYCkAEgBSABNgKMASAFIAE2AogBIAUgATYChAEgDSgClAEhByAFKAIEIQwCQAJAIAUoAtABIgJFDQAgAigCBCAMRw0AQQAhCiACKAIAQQVLBEBBfyEDQQAhAgwCCyACKAJsIQMgAigCrAEhAgwBC0EBIQpBfyEDQQAhAiAFKALMASIGRQ0AIAYoAgQgDEcNAEEAIQogBigCAEEFSw0AIAYoAmwhAyAGKAKwASECCyANLwGkASETAkAgAyAHRwRAIAFBEHYhAwJ/An8CQCAFKALMASIGRQ0AIAYoAgQgDEcNACAHQX9GIAYoAgBBBk8NARogBigCcCAHRiEMIAYoArwBIg9BEHYMAgsgCg0DIAdBf0YLIQxBAAshBiAMIAcgEkYiCmpBAUcEQCAGIAMgBkEQdEEQdSIGIANBEHRBEHVKIgobIgwgAUEQdSIDIAYgAyADIAZKGyAKGyIGIAJBEHUiAyADIAZIGyAMQRB0QRB1IANIGyEDIA8gASAPQRB0QRB1IgYgAUEQdEEQdSIBSiIKGyIPQf//A3EgASAGIAEgASAGShsgChsiBiACQRB0QRB1IgEgASAGSBsgD0EQdEEQdSABSBshAQwCCyAKDQEgDARAIA9B//8DcSAGQRB0ciEBIAYhAwwCCwsgAkEQdiEDIAIhAQsgASATaiICQRB0QRB1QYBAa0H//wBLDQMgDS8BpgEgA2oiA0EQdEEQdUGAEGpB/x9LDQMgKCAHEBMiAUUNAyAFIAM7AcIBIAUgAjsBwAEgBSABNgKAASAFIAE2AnggBSAHNgJwIAUgBzYCaCAFIAUoAsABIgE2ArwBIAUgATYCuAEgBSABNgK0ASAFIAE2AqABIAUgATYCnAEgBSABNgKYASAFQZQBaiICIAE2AgAgECAFKAJ0NgIIIAsgBUGEAWogEEEIaiAOIBFBAEEAQQhBEBAPIBAgBSgCeDYCCCALIAIgEEEIaiAOIBFBCEEAQQhBEBAPDAILIAxBf0YhAkEAIQZBAAshByANLwGgASETAkAgAgRAIAchAiAGIQEMAQtBASESQX8hD0EAIQICQCAFKALIASIIRQRAQQAhAQwBCyADIAgoAgRHBEBBACEBDAELQQAhEiAIKAIAQQVLBEBBACEBDAELIAgoApgBIgFBEHYhAiAIKAJoIQ8LAn8CQAJAIAUoAtABIghFDQAgCCgCBCADRw0AIAgoAgBBBUsNASAIKAJsIQogCCgCrAEMAgsCQCAFKALUASIIRQ0AIAgoAgQgA0cNACAIKAIAQQVLDQEgCCgCcCEKIAgoAsABDAILIAogEnJBAUcNAgtBfyEKQQALIQMgDCAPRiIIIAogDEZqQQFHBEAgByACIAdBEHRBEHUiByACQRB0QRB1IgJKIggbIgogAiAHIAIgAiAHShsgCBsiByADQRB1IgIgAiAHSBsgCkEQdEEQdSACSBshAiAGIAEgBkEQdEEQdSIGIAFBEHRBEHUiAUoiBxsiCEH//wNxIAEgBiABIAEgBkobIAcbIgYgA0EQdEEQdSIBIAEgBkgbIAhBEHRBEHUgAUgbIQEMAQsgCA0AIANBEHYhAiADIQELQQEhCCABIBNqIgNBEHRBEHVBgEBrQf//AEsNASACIA0vAaIBaiICQRB0QRB1QYAQakH/H0sNASAoIAwQEyIBRQ0BIAUgAjsBogEgBSADOwGgASAFIAE2AnQgBSAMNgJkIAUgATYCeCAFIAw2AmggBSAFKAKgASIBNgKcASAFIAE2ApgBIAUgATYClAEgBSABNgKQASAFIAE2AowBIAUgATYCiAEgBSABNgKEASANKAKUASEDIA0vAaQBIRICfwJ/AkACfwJAAkAgBSgCyAEiBgRAIAYoAgQgBSgCBEYEQCAGKAIAQQVNBEAgBigCuAEiCkEQdiECIAYoAnAgA0cNAyAKQf//A3EMBwsMAwsMAgsMAQsgBigCaCADRiEPIAYoAqABDAELIANBf0YNASADQX9GIQ9BACECQQAhCkEACyEGIAFBEHYhByAPIAMgDEYiDGpBAUcEQCAHIAIgAkEQdEEQdSICIAdBEHRBEHVIIgcbIg8gAiABQRB1IgwgAiACIAxKGyAHGyIHIAZBEHUiAiACIAdIGyAPQRB0QRB1IAJIGyECIAEgCiAKQRB0QRB1IgcgAUEQdEEQdSIBSCIKGyIPQf//A3EgByABIAcgASAHSBsgChsiByAGQRB0QRB1IgEgASAHSBsgD0EQdEEQdSABSBsMAwsgByAGQRB2IAwbIQIgASAGIAwbDAILQQAhAkEACyACQRB0cgsgEmoiBkEQdEEQdUGAQGtB//8ASw0BIA0vAaYBIAJqIgJBEHRBEHVBgBBqQf8fSw0BICggAxATIgFFDQEgBSACOwHCASAFIAY7AcABIAUgATYCgAEgBSABNgJ8IAUgAzYCcCAFIAM2AmwgBSAFKALAASIBNgK8ASAFIAE2ArgBIAUgATYCtAEgBSABNgKwASAFIAE2AqwBIAUgATYCqAEgBUGkAWoiAiABNgIAIBAgBSgCdDYCCCALIAVBhAFqIBBBCGogDiARQQBBAEEQQQgQDyAQIAUoAnw2AgggCyACIBBBCGogDiARQQBBCEEQQQgQDwtBACEIIAUoAsQBQQFLDQAgBSgCAARAIA1ByAJqIQ9BACEBIB0oAgAiDCAEIAQgHSgCBCIFcCICayIDQQh0aiACQQR0aiERIAVBBHQhByAdKAIIIAVsIgZBBnQhDiACQQN0IRIgBkEIdCETIANBBnQhGSAFQQJ0Qfz///8DcUECdCEKA0AgESABQQJ0IgJB8ClqKAIAIgMgB2xqIAJBsClqKAIAIgJqIQYgCyADQQR0aiACaiECAkAgDyABQQZ0aiIDKAIAIhZB////B0cEQCADKAIEIRUgAi0AASEXIAYgFiACLQAAakGwLmotAAA6AAAgAygCCCEWIAItAAIhHCAGIBUgF2pBsC5qLQAAOgABIAMoAgwhFSACLQADIRcgBiAWIBxqQbAuai0AADoAAiAGIBUgF2pBsC5qLQAAOgADIAMoAhQhFiACLQARIRUgBiAHaiIGIAMoAhAgAi0AEGpBsC5qLQAAOgAAIAMoAhghFyACLQASIRwgBiAVIBZqQbAuai0AADoAASADKAIcIRYgAi0AEyEVIAYgFyAcakGwLmotAAA6AAIgBiAVIBZqQbAuai0AADoAAyADKAIkIRYgAi0AISEVIAYgB2oiBiADKAIgIAItACBqQbAuai0AADoAACADKAIoIRcgAi0AIiEcIAYgFSAWakGwLmotAAA6AAEgAygCLCEWIAItACMhFSAGIBcgHGpBsC5qLQAAOgACIAYgFSAWakGwLmotAAA6AAMgAygCNCEWIAItADEhFSAGIAdqIgYgAygCMCACLQAwakGwLmotAAA6AAAgAygCOCEXIAItADIhHCAGIBUgFmpBsC5qLQAAOgABIAMoAjwhAyACLQAzIQIgBiAXIBxqQbAuai0AADoAAiAGIAIgA2pBsC5qLQAAOgADDAELIAIoAhAhAyAGIAIoAgA2AgAgBiAKaiIGIAM2AgAgAigCMCEDIAYgCmoiBiACKAIgNgIAIAYgCmogAzYCAAsgAUEBaiIBQRBHDQALIAwgE2ogGWogEmoiCiAOaiEMIAVBA3RB+P///wdxIgVBAnZBAnQhB0EQIQYDQCAGQQJ0QQxxIgFB8ClqKAIAIgIgBWwgAUGwKWooAgAiAWogDCAKIAZBE0siERtqIQMgC0HAAkGAAiARG2ogAkEDdCABamohAQJAIA8gBkEGdGoiAigCACIRQf///wdHBEAgAigCBCEOIAEtAAEhEiADIBEgAS0AAGpBsC5qLQAAOgAAIAIoAgghESABLQACIRMgAyAOIBJqQbAuai0AADoAASACKAIMIQ4gAS0AAyESIAMgESATakGwLmotAAA6AAIgAyAOIBJqQbAuai0AADoAAyACKAIUIREgAS0ACSEOIAMgBWoiAyACKAIQIAEtAAhqQbAuai0AADoAACACKAIYIRIgAS0ACiETIAMgDiARakGwLmotAAA6AAEgAigCHCERIAEtAAshDiADIBIgE2pBsC5qLQAAOgACIAMgDiARakGwLmotAAA6AAMgAigCJCERIAEtABEhDiADIAVqIgMgAigCICABLQAQakGwLmotAAA6AAAgAigCKCESIAEtABIhEyADIA4gEWpBsC5qLQAAOgABIAIoAiwhESABLQATIQ4gAyASIBNqQbAuai0AADoAAiADIA4gEWpBsC5qLQAAOgADIAIoAjQhESABLQAZIQ4gAyAFaiIDIAIoAjAgAS0AGGpBsC5qLQAAOgAAIAIoAjghEiABLQAaIRMgAyAOIBFqQbAuai0AADoAASACKAI8IQIgAS0AGyEBIAMgEiATakGwLmotAAA6AAIgAyABIAJqQbAuai0AADoAAwwBCyABKAIIIQIgAyABKAIANgIAIAMgB2oiAyACNgIAIAEoAhghAiADIAdqIgMgASgCEDYCACADIAdqIAI2AgALIAZBAWoiBkEYRw0ACwwBCyAdIAsQGAsgEEEgaiQAIAgiAw0BC0EAIQMLIAMLIgYNASAgKAK8CSApaigCxAEhAgJ/QQAhAwJAIBsoAgxBA3QgGygCEGsiAUUNAEEBIQMgAUEISw0AQQEgAUEBa3QgGxAQQSAgAWt2RwwBCyADCyAjKAIMckEARyEBAkACQCAUKAIEQQJrDgYAAQEBAQABCyAgIAQ2ArAJC0EBIQZBACABICAoApQJICAoApgJIAQQHSIEGw0BICIgAkEBRmohIiABDQALICBBrAlqKAIAICJqIgEgICgCmAlLDQAgICABNgKsCUEAIQYLICNBwANqJAAgBgsEQCAgKALYCiEAQQAhAyAgKAKoCSECAkAgIEGwCWooAgAiAUUNACAAIAFBAWsiAU8EQCABIQAMAQsgICgCvAkhBANAAkAgBCABQdgBbGooAgQgAkcNACADQQFqIgMgICgCECgCNCIJQQogCUEKSxtJDQAgASEADAILIAFBAWsiASAASw0ACwsDQAJAICAoArwJIABB2AFsaiIBKAIEIAJHDQAgASgCxAEiA0UNACABIANBAWs2AsQBICAoApQJICAoApgJIAAQHSIADQELC0ENISIMAgtBACEiQQAhAgJAAkACQAJAAkAgIEH8CmooAgAEQCAAKAKYCSIERQ0DIARBA3EhBiAAKAK8CSED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IARrQQJ0IAtrIAZqQQRqQQN1IgMgAyAMShsgAyAKSBsiAyAEakGwLmotAAA6AAAgASAJIANrQbAuai0AADoAAAwBCyAKIAQgC2ogBkEBdGpBAmpBAnY6AAAgASAJIAtBAXRqIAZqQQJqQQJ2OgAACyANICBqIgFBBGohAyAHKAI0IQQCQCAIKAIcIAEtAAMiCSABLQAEIgZrIgsgC0EfdSILaiALc00NACAIKAIgIgwgA0ECay0AACILIAlrIgogCkEfdSIKaiAKc00NACAMIAEtAAUiCiAGayIOIA5BH3UiDmogDnNNDQAgBEEDTQRAIAEgBCAIKAIYakEBay0AACIBQX9zIgwgAUEBaiIOIAYgCWtBAnQgCmsgC2pBBGpBA3UiASABIA5KGyABIAxIGyIBIAlqQbAuai0AADoAAyADIAYgAWtBsC5qLQAAOgAADAELIAEgCSAKaiALQQF0akECakECdjoAAyADIAYgCkEBdGogC2pBAmpBAnY6AAALIAgoAhwgAyAdaiIBQQFrIgotAAAiAyABLQAAIglrIgYgBkEfdSIGaiAGc00NACAIKAIgIgwgAUECay0AACIGIANrIgsgC0EfdSILaiALc00NACAMIAEtAAEiCyAJayIOIA5BH3UiDmogDnNNDQAgBEEDTQRAIAogAyAEIAgoAhhqQQFrLQAAIgRBf3MiCiAEQQFqIgwgCSADa0ECdCALayAGakEEakEDdSIEIAQgDEobIAQgCkgbIgRqQbAuai0AADoAACABIAkgBGtBsC5qLQAAOgAADAELIAogAyALaiAGQQF0akECakECdjoAACABIAkgC0EBdGogBmpBAmpBAnY6AAALAkACQCAHKAIAIgEgBygCCCIMRw0AIAEgBygCEEcNACABIAcoAhhHDQAgAUUNASACIAEgCCAQQQxsaiIBIB0QGiANIAcoAgAgASAdEBoMAQsgAQRAIAggEEEMbGoiAyEJIAEgAygCAGpBAWstAAAiBEF/cyEBIARBAWohBgJAIAMoAgQiBCACIBFqIgwtAAAiCyACLQAAIgprIg4gDkEfdSIOaiAOc00NACAJKAIIIg4gAiAbai0AACISIAtrIhMgE0EfdSITaiATc00NACAOIAIgHWotAAAiEyAKayIUIBRBH3UiFGogFHNNDQAgDCABIAYgCiALa0ECdCATayAS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AAEAAAABAAAADgAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAAEAAAAOAAAABAAAAAQAAAD/AAAAAAAAAP8AAAAAAAAAAQAAAA4AAAABAAAADwAAAP8AAAAAAAAA/wAAAAAAAAABAAAADgAAAAEAAAAPAAAABAAAAAQAAAAEAAAABQAAAAQAAAACAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAIAAAAEAAAACAAAAP8AAAAAAAAA/wAAAAAAAAAEAAAAAgAAAAQAAAADAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAACAAAABAAAAAMAAAAEAAAACAAAAAQAAAAJAAAABAAAAAYAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAAEAAAABgAAAAQAAAAMAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAAGAAAABAAAAAcAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAYAAAAEAAAABwAAAAQAAAAMAAAABAAAAA0AAAABAAAADgAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAAEAAAAOAAAA/wAAAAQAAAD/AAAAAAAAAP8AAAAAAAAAAQAAAAsAAAABAAAADgAAAP8AAAAAAAAA/wAAAAAAAAABAAAACwAAAAEAAAAOAAAABAAAAAEAAAD/AAAABAAAAAIAAAAKAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAAAgAAAAoAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAABAAAADwAAAAIAAAAKAAAA/wAAAAAAAAD/AAAAAAAAAAEAAAAPAAAAAgAAAAoAAAAEAAAABQAAAP8AAAAAAAAABAAAAAYAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAAEAAAABgAAAP8AAAAMAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAADAAAABAAAAAYAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAMAAAAEAAAABgAAAAQAAAAJAAAA/wAAAAwAAAD/AAAAAgAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAACAAAA/wAAAAgAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAcAAAD/AAAAAgAAAP8AAAAAAAAA/wAAAAAAAAAEAAAABwAAAP8AAAACAAAABAAAAA0AAAD/AAAACAAAAAMAAAAPAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAAAwAAAA8AAAAAAAAABQAAAP8AAAAAAAAA/wAAAAAAAAADAAAADwAAAAEAAAAKAAAA/wAAAAAAAAD/AAAAAAAAAAMAAAAPAAAAAQAAAAoAAAAAAAAABQAAAAQAAAAAAAAAAQAAAAsAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAABAAAACwAAAAQAAAABAAAA/wAAAAAAAAD/AAAAAAAAAAEAAAALAAAAAQAAAA4AAAD/AAAAAAAAAP8AAAAAAAAAAQAAAAsAAAABAAAADgAAAAQAAAABAAAABAAAAAQAAAAAAAAABwAAAP8AAAAAAAAA/wAAAAAAAAD/AEHUJwsVBwAAAAAAAAANAAAA/wAAAAAAAAD/AEH0JwsVBwAAAAQAAAACAAAA/wAAAAAAAAD/AEGUKAvZAQcAAAAEAAAAAgAAAAAAAAANAAAABAAAAAgAAAAEAAAAAwAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAADAAAABAAAAAkAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAMAAAAEAAAABgAAAP8AAAAAAAAA/wAAAAAAAAAEAAAAAwAAAAQAAAAGAAAABAAAAAkAAAAEAAAADAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAADAAAAAgAAAAMAAAAAAAAAAQAAAAAAAAABAAAAAgAAAAMAAAACAAAAAwAQfgpCwUEAAAABABBiCoLJQQAAAAEAAAACAAAAAgAAAAMAAAADAAAAAgAAAAIAAAADAAAAAwAQbEuC8gGAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAAAAQAAAAQAAAAFAAAAAgAAAAMAAAAGAAAABwAAAAgAAAAJAAAADAAAAA0AAAAKAAAACwAAAA4AAAAPAAAAAAAAAAEAAAABAEGENQshAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAQAAAAIAAAACAEG0NQsFBQAAAAQAQcQ1C8kGBwAAAAQAAAACAAAABAAAAAEAAAAEAAAABAAAAAQAAAADAAAABAAAAAYAAAAAAAAADQAAAAQAAAAIAAAAAAAAAA8AAAAEAAAACgAAAAQAAAAJAAAABAAAAAwAAAAEAAAACwAAAAQAAAAOAAAAAAAAABEAAAAEAAAAEAAAAAAAAAATAAAABAAAABIAAAAAAAAAFQAAAAQAAAAUAAAAAAAAABcAAAAEAAAAFgAAAAEAAAAKAAAAAQAAAAsAAAAEAAAAAAAAAAQAAAABAAAAAQAAAA4AAAABAAAADwAAAAQAAAAEAAAABAAAAAUAAAAEAAAAAgAAAAQAAAADAAAABAAAAAgAAAAEAAAACQAAAAQAAAAGAAAABAAAAAcAAAAEAAAADAAAAAQAAAANAAAAAQAAABIAAAABAAAAEwAAAAQAAAAQAAAABAAAABEAAAABAAAAFgAAAAEAAAAXAAAABAAAABQAAAAEAAAAFQAAAAEAAAALAAAAAQAAAA4AAAAEAAAAAQAAAP8AAAAEAAAAAQAAAA8AAAACAAAACgAAAAQAAAAFAAAA/wAAAAAAAAAEAAAAAwAAAAQAAAAGAAAABAAAAAkAAAD/AAAADAAAAAQAAAAHAAAA/wAAAAIAAAAEAAAADQAAAP8AAAAIAAAAAQAAABMAAAACAAAAEgAAAAQAAAARAAAA/wAAABAAAAABAAAAFwAAAAIAAAAWAAAABAAAABUAAAD/AAAAFAAAAAMAAAAPAAAAAQAAAAoAAAAAAAAABQAAAAQAAAAAAAAAAQAAAAsAAAABAAAADgAAAAQAAAABAAAABAAAAAQAAAAAAAAABwAAAAQAAAACAAAAAAAAAA0AAAAEAAAACAAAAAQAAAADAAAABAAAAAYAAAAEAAAACQAAAAQAAAAMAAAAAwAAABMAAAABAAAAEgAAAAAAAAARAAAABAAAABAAAAADAAAAFwAAAAEAAAAWAAAAAAAAABUAAAAEAAAAFAAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwBBljwLLgEBAQEBAQICAgICAgMDAwMDAwQEBAQEBAUFBQUFBQYGBgYGBgcHBwcHBwgICAgAQdA8C0UKAAAADQAAABAAAAALAAAADgAAABIAAAANAAAAEAAAABQAAAAOAAAAEgAAABcAAAAQAAAAFAAAABkAAAASAAAAFwAAAB0AQaE9CzMBAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMAQeQ9C8wCAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAdAAAAHgAAAB8AAAAgAAAAIAAAACEAAAAiAAAAIgAAACMAAAAjAAAAJAAAACQAAAAlAAAAJQAAACUAAAAmAAAAJgAAACYAAAAnAAAAJwAAACcAAAAnAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAvHw8AFxsdHgcLDQ4nKy0uEAMFCgwTFRocIyUqLAECBAgREhQYBgkWGSAhIiQoJikAEAECBAggAwUKDA8vBwsNDgYJHyMlKiwhIiQoJystLhESFBgTFRocFxsdHhYZJikAQbDAAAsDMCJQ";if(!m.startsWith(rA)){var mA=m;m=A.locateFile?A.locateFile(mA,t):t+mA}function VA(){var i=m;try{if(i==m&&h)return new Uint8Array(h);var s=vA(i);if(s)return s;if(a)return a(i);throw"both async and sync fetching of the wasm failed"}catch(F){_(F)}}function uA(){return h||typeof fetch!="function"?Promise.resolve().then(function(){return VA()}):fetch(m,{credentials:"same-origin"}).then(function(i){if(!i.ok)throw"failed to load wasm binary file at \'"+m+"\'";return i.arrayBuffer()}).catch(function(){return VA()})}var Z,kA;function nA(i){for(;0<i.length;){var s=i.shift();if(typeof s=="function")s(A);else{var F=s.u;typeof F=="number"?s.s===void 0?Y.get(F)():Y.get(F)(s.s):F(s.s===void 0?null:s.s)}}}var WA=typeof atob=="function"?atob:function(i){var s="",F=0;i=i.replace(/[^A-Za-z0-9\\+\\/=]/g,"");do{var p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(i.charAt(F++)),K="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(i.charAt(F++)),u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(i.charAt(F++)),SI="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(i.charAt(F++));p=p<<2|K>>4,K=(K&15)<<4|u>>2;var hg=(u&3)<<6|SI;s+=String.fromCharCode(p),u!==64&&(s+=String.fromCharCode(K)),SI!==64&&(s+=String.fromCharCode(hg))}while(F<i.length);return s};function vA(i){if(i.startsWith(rA)){try{var s=WA(i.slice(rA.length)),F=new Uint8Array(s.length);for(i=0;i<s.length;++i)F[i]=s.charCodeAt(i)}catch(p){throw Error("Converting base64 string to bytes failed.")}return F}}var eg={a:function(i,s,F){M.copyWithin(i,s,s+F)},b:function(i){var s=M.length;if(i>>>=0,2147483648<i)return!1;for(var F=1;4>=F;F*=2){var p=s*(1+.2/F);p=Math.min(p,i+100663296),p=Math.max(i,p),0<p%65536&&(p+=65536-p%65536);A:{try{e.grow(Math.min(2147483648,p)-d.byteLength+65535>>>16),L();var K=1;break A}catch(u){}K=void 0}if(K)return!0}return!1}};(function(){function i(K){A.asm=K.exports,e=A.asm.c,L(),Y=A.asm.r,O.unshift(A.asm.d),l--,A.monitorRunDependencies&&A.monitorRunDependencies(l),l==0&&P&&(K=P,P=null,K())}function s(K){i(K.instance)}function F(K){return uA().then(function(u){return WebAssembly.instantiate(u,p)}).then(K,function(u){D("failed to asynchronously prepare wasm: "+u),_(u)})}var p={a:eg};if(l++,A.monitorRunDependencies&&A.monitorRunDependencies(l),A.instantiateWasm)try{return A.instantiateWasm(p,i)}catch(K){return D("Module.instantiateWasm callback failed with error: "+K),!1}return(function(){return h||typeof WebAssembly.instantiateStreaming!="function"||m.startsWith(rA)||typeof fetch!="function"?F(s):fetch(m,{credentials:"same-origin"}).then(function(K){return WebAssembly.instantiateStreaming(K,p).then(s,function(u){return D("wasm streaming compile failed: "+u),D("falling back to ArrayBuffer instantiation"),F(s)})})})().catch(Q),{}})(),A.___wasm_call_ctors=function(){return(A.___wasm_call_ctors=A.asm.d).apply(null,arguments)},A._memcpy=function(){return(A._memcpy=A.asm.e).apply(null,arguments)},A._h264bsdInit=function(){return(A._h264bsdInit=A.asm.f).apply(null,arguments)},A._malloc=function(){return(A._malloc=A.asm.g).apply(null,arguments)},A._h264bsdDecode=function(){return(A._h264bsdDecode=A.asm.h).apply(null,arguments)},A._free=function(){return(A._free=A.asm.i).apply(null,arguments)},A._h264bsdShutdown=function(){return(A._h264bsdShutdown=A.asm.j).apply(null,arguments)},A._h264bsdNextOutputPicture=function(){return(A._h264bsdNextOutputPicture=A.asm.k).apply(null,arguments)},A._h264bsdNextOutputPictureRGBA=function(){return(A._h264bsdNextOutputPictureRGBA=A.asm.l).apply(null,arguments)},A._h264bsdPicWidth=function(){return(A._h264bsdPicWidth=A.asm.m).apply(null,arguments)},A._h264bsdPicHeight=function(){return(A._h264bsdPicHeight=A.asm.n).apply(null,arguments)},A._h264bsdCroppingParams=function(){return(A._h264bsdCroppingParams=A.asm.o).apply(null,arguments)},A._h264bsdAlloc=function(){return(A._h264bsdAlloc=A.asm.p).apply(null,arguments)},A._h264bsdFree=function(){return(A._h264bsdFree=A.asm.q).apply(null,arguments)},A.setValue=function(i,s,F){switch(F=F||"i8",F.charAt(F.length-1)==="*"&&(F="i32"),F){case"i1":R[i>>0]=s;break;case"i8":R[i>>0]=s;break;case"i16":q[i>>1]=s;break;case"i32":y[i>>2]=s;break;case"i64":kA=[s>>>0,(Z=s,1<=+Math.abs(Z)?0<Z?(Math.min(+Math.floor(Z/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Z-+(~~Z>>>0))/4294967296)>>>0:0)],y[i>>2]=kA[0],y[i+4>>2]=kA[1];break;case"float":S[i>>2]=s;break;case"double":U[i>>3]=s;break;default:_("invalid type for setValue: "+F)}},A.getValue=function(i,s){switch(s=s||"i8",s.charAt(s.length-1)==="*"&&(s="i32"),s){case"i1":return R[i>>0];case"i8":return R[i>>0];case"i16":return q[i>>1];case"i32":return y[i>>2];case"i64":return y[i>>2];case"float":return S[i>>2];case"double":return U[i>>3];default:_("invalid type for getValue: "+s)}return null};var bA;P=function i(){bA||_A(),bA||(P=i)};function _A(){function i(){if(!bA&&(bA=!0,A.calledRun=!0,!r)){if(nA(O),B(A),A.onRuntimeInitialized&&A.onRuntimeInitialized(),A.postRun)for(typeof A.postRun=="function"&&(A.postRun=[A.postRun]);A.postRun.length;){var s=A.postRun.shift();BA.unshift(s)}nA(BA)}}if(!(0<l)){if(A.preRun)for(typeof A.preRun=="function"&&(A.preRun=[A.preRun]);A.preRun.length;)oA();nA(H),0<l||(A.setStatus?(A.setStatus("Running..."),setTimeout(function(){setTimeout(function(){A.setStatus("")},1),i()},1)):i())}}if(A.run=_A,A.preInit)for(typeof A.preInit=="function"&&(A.preInit=[A.preInit]);0<A.preInit.length;)A.preInit.pop()();return _A(),I.ready})})();const TI=g=>g>=3&&g<=15,OI=g=>{switch(g){case 5:return"Memory allocation error";case 4:return"Failed to activate param set";case 6:return"Byte stream error";case 7:return"NAL unit error";case 8:return"Access unit boundary check error";case 9:return"Pending activation error";case 10:return"Sequence parameter set error";case 11:return"Picture parameter set error";case 12:return"Slice header error";case 13:return"Slice data error";case 14:return"Gaps in frame num error";case 15:return"Reordering error";default:return"Decode error"}},LA=class LA{constructor(I){E(this,"h264Module");E(this,"decoderInstancePointer",0);E(this,"inputBufferPointer",0);E(this,"inputBufferLength",1024*1024);E(this,"bytesRead",0);E(this,"isIdrPointer",0);E(this,"picIdPointer",0);E(this,"numErrMbs",0);E(this,"croppingPointers",{croppingFlag:0,leftOffset:0,width:0,topOffset:0,height:0});E(this,"parameters");E(this,"getParameters",()=>this.parameters);E(this,"unload",()=>{this.shutdownDecoder(),this.h264Module._free(this.inputBufferPointer),this.h264Module._free(this.bytesRead),this.h264Module._free(this.isIdrPointer),this.h264Module._free(this.picIdPointer),this.h264Module._free(this.numErrMbs),this.h264Module._free(this.croppingPointers.croppingFlag),this.h264Module._free(this.croppingPointers.leftOffset),this.h264Module._free(this.croppingPointers.width),this.h264Module._free(this.croppingPointers.topOffset),this.h264Module._free(this.croppingPointers.height),this.inputBufferPointer=0,this.bytesRead=0,this.isIdrPointer=0,this.picIdPointer=0,this.numErrMbs=0,this.decoderInstancePointer=0,this.croppingPointers={croppingFlag:0,leftOffset:0,width:0,topOffset:0,height:0}});E(this,"shutdownDecoder",()=>{this.decoderInstancePointer!=0&&(this.h264Module._h264bsdShutdown(this.decoderInstancePointer),this.h264Module._h264bsdFree(this.decoderInstancePointer)),this.parameters=void 0});E(this,"initDecoder",()=>{this.decoderInstancePointer=this.h264Module._h264bsdAlloc(),this.h264Module._h264bsdInit(this.decoderInstancePointer,0)});E(this,"decode",I=>{if(I.byteLength>this.inputBufferLength){const C=this.h264Module._malloc(I.byteLength);this.h264Module._free(this.inputBufferPointer),this.inputBufferPointer=C}this.h264Module.HEAPU8.set(I,this.inputBufferPointer);let A=I.byteLength,B=0,Q=0;do Q=this.h264Module._h264bsdDecode(this.decoderInstancePointer,this.inputBufferPointer+B,A,0,this.bytesRead),B=this.h264Module.getValue(this.bytesRead,"i32"),A-=B;while(A>0&&!TI(Q));switch(Q){case 0:case 1:case 2:{if(Q===1)return this.receiveFrame();if(Q===2)return this.receiveHeader()}break;case 1024:break;default:throw new Error(OI(Q))}});E(this,"receiveFrame",()=>{const I=this.h264Module._h264bsdNextOutputPicture(this.decoderInstancePointer,this.picIdPointer,this.isIdrPointer,this.numErrMbs);if(!I)return;if(!this.parameters){const B=this.h264Module._h264bsdPicWidth(this.decoderInstancePointer)*16,Q=this.h264Module._h264bsdPicHeight(this.decoderInstancePointer)*16;this.h264Module._h264bsdCroppingParams(this.decoderInstancePointer,this.croppingPointers.croppingFlag,this.croppingPointers.leftOffset,this.croppingPointers.width,this.croppingPointers.topOffset,this.croppingPointers.height);const C=this.h264Module.getValue(this.croppingPointers.croppingFlag,"i32"),o=this.h264Module.getValue(this.croppingPointers.leftOffset,"i32"),t=this.h264Module.getValue(this.croppingPointers.width,"i32"),a=this.h264Module.getValue(this.croppingPointers.topOffset,"i32"),D=this.h264Module.getValue(this.croppingPointers.height,"i32");this.parameters={width:B,height:Q,cropping:C?{left:o,top:a,width:t,height:D}:void 0}}const A=this.parameters.width*this.parameters.height*3/2;return this.h264Module.HEAPU8.subarray(I,I+A)});E(this,"receiveHeader",()=>{});this.h264Module=I,this.initDecoder(),this.inputBufferPointer=this.h264Module._malloc(this.inputBufferLength),this.bytesRead=I._malloc(4),this.isIdrPointer=I._malloc(4),this.picIdPointer=I._malloc(4),this.numErrMbs=I._malloc(4),this.croppingPointers={croppingFlag:I._malloc(4),leftOffset:I._malloc(4),width:I._malloc(4),topOffset:I._malloc(4),height:I._malloc(4)}}};E(LA,"create",()=>FA(null,null,function*(){return new LA(yield xI())}));let TA=LA;const QI=g=>{const{pictureParameterSets:I,sequenceParameterSets:A}=II(g.data),B=[...A,...I],Q=new Uint8Array(B.reduce((o,t)=>o+t.byteLength+4,0));let C=0;return B.forEach(o=>{Q[0+C]=0,Q[1+C]=0,Q[2+C]=0,Q[3+C]=1,Q.set(new Uint8Array(o),C+4),C+=o.byteLength+4}),Q},UA=class UA{constructor(I){E(this,"decodedSamples",[]);E(this,"decoder");E(this,"initSegments",new Map);E(this,"previousSample");E(this,"isWaitingForSync",!0);E(this,"unload",()=>{this.decoder.unload()});E(this,"initSegment",I=>{this.initSegments.set(I.renditionId,I)});E(this,"enqueue",I=>{var t,a,D,h;const A=this.initSegments.get(I.renditionId);if(!A)throw sA(I.renditionId,I.channelId);const B=((t=this.previousSample)==null?void 0:t.width)!==I.width||((a=this.previousSample)==null?void 0:a.height)!==I.height,Q=((D=this.previousSample)==null?void 0:D.channelId)!==I.channelId,C=((h=this.previousSample)==null?void 0:h.renditionId)!==I.renditionId;if(this.previousSample){if(Q||C||B){this.decoder.shutdownDecoder(),this.decoder.initDecoder();const e=QI(A);this.decoder.decode(e),this.isWaitingForSync=!0}}else{const e=QI(A);this.decoder.decode(e),this.isWaitingForSync=!0}if(this.previousSample){const e=this.previousSample;I.timestamp/I.timescale>(e.timestamp+e.duration*2)/e.timescale&&(this.isWaitingForSync=!0)}if(this.previousSample=I,this.isWaitingForSync&&!I.isSync)return;this.isWaitingForSync=!1;const o=Date.now();RI(I.data,e=>{var R,M,q,y;const r=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),d=this.decoder.decode(r);if(d){if(!I.buffer)throw new Error("Expected sample to contain buffer");const S=this.decoder.getParameters();if(new Uint8Array(I.buffer).set(d),S){const U=[new Uint8Array(I.buffer,0,S.width*S.height),new Uint8Array(I.buffer,S.width*S.height,S.width/2*S.height/2),new Uint8Array(I.buffer,S.width*S.height+S.width/2*S.height/2,S.width/2*S.height/2)];this.decodedSamples.push(cA(tA({},I),{buffer:I.buffer,type:"video",format:"yuv420",colorPrimaries:"bt709",width:(M=(R=S.cropping)==null?void 0:R.width)!=null?M:S.width,height:(y=(q=S.cropping)==null?void 0:q.height)!=null?y:S.height,codedWidth:S.width,codedHeight:S.height,data:U,statistics:{decodeTime:Date.now()-o,transportTimeFromWorker:0,transportTimeToWorker:0,samplesInBatch:1}}))}}return!0})});E(this,"take",()=>this.decodedSamples.shift());this.decoder=I}};E(UA,"create",()=>FA(null,null,function*(){return new UA(yield TA.create())}));let qA=UA;class PI{constructor(){E(this,"map",new Map)}enqueue(I,A){const B=this.map.get(I);B?B.push(A):this.map.set(I,[A])}dequeue(I){const A=this.map.get(I);if(A&&A.length>0){const B=A.shift();return A.length===0&&this.map.delete(I),B}}dequeueWithFallback(I){const A=this.dequeue(I);if(A!==void 0)return A;for(const[B,Q]of this.map)if(Q.length>0){const C=Q.shift();return Q.length===0&&this.map.delete(B),C}}removeLast(I){const A=this.map.get(I);!A||A.length===0||(A.pop(),A.length===0&&this.map.delete(I))}clear(){this.map.clear()}}const ZI=globalThis,OA=new Uint8Array(0),XI=new ArrayBuffer(0),v=class v{constructor(I,A="no-preference"){E(this,"decodedSamples",[]);E(this,"decoder",null);E(this,"logger");E(this,"hardwareAcceleration");E(this,"initSegments",new Map);E(this,"previousSample");E(this,"previousCodec");E(this,"isWaitingForSync",!0);E(this,"pendingSamples",new PI);E(this,"errors",new AA(10));E(this,"pendingDecodeCount",0);E(this,"waitResolve",null);E(this,"waitTargetCount",1);E(this,"consecutiveErrors",0);E(this,"effectiveHardwareAcceleration");E(this,"clearPendingState",()=>{this.pendingSamples.clear(),this.pendingDecodeCount=0,this.notifyWaiter()});E(this,"resetDecoderState",()=>{this.clearPendingState(),this.previousSample=void 0,this.previousCodec=void 0,this.isWaitingForSync=!0});E(this,"ensureDecoder",()=>((!this.decoder||this.decoder.state==="closed")&&(this.decoder=this.createDecoder()),this.decoder));E(this,"recreateDecoder",()=>{this.decoder&&this.decoder.state!=="closed"&&this.decoder.close(),this.decoder=this.createDecoder(),this.resetDecoderState()});E(this,"notifyWaiter",()=>{if(this.waitResolve&&(this.decodedSamples.length>=this.waitTargetCount||this.pendingDecodeCount<=0||!this.decoder)){const I=this.waitResolve;this.waitResolve=null,this.waitTargetCount=1,I()}});E(this,"createDecoder",()=>new VideoDecoder({output:I=>{const A=this.pendingSamples.dequeue(I.timestamp),B=A==null?void 0:A.decodeMetadata,Q=B!==void 0?Math.max(performance.now()-B.startTime,0):0,C=B!==void 0?Math.max(B.pendingBeforeEnqueue,0)*Math.max(B.frameDurationMs,0):0,o=Math.max(0,Q-C),t=A==null?void 0:A.sample;if(!t){I.close(),this.pendingDecodeCount=Math.max(0,this.pendingDecodeCount-1),this.notifyWaiter();return}const a=cA(tA({},t),{type:"video",format:"yuv420",colorPrimaries:"bt709",width:I.displayWidth,height:I.displayHeight,codedWidth:I.codedWidth,codedHeight:I.codedHeight,data:[OA,OA,OA],buffer:XI,videoFrame:I,statistics:{decodeTime:o,transportTimeFromWorker:0,transportTimeToWorker:0,samplesInBatch:1}});this.decodedSamples.push(a),this.pendingDecodeCount=Math.max(0,this.pendingDecodeCount-1),this.consecutiveErrors=0,this.notifyWaiter()},error:I=>{if(this.logger.error("Decoder error:",I.name,I.message),this.errors.push(I),this.consecutiveErrors++,this.consecutiveErrors>=v.maxConsecutiveErrors&&this.effectiveHardwareAcceleration!=="prefer-software"){this.logger.warn(`${this.consecutiveErrors} consecutive decoder errors, retrying with software decoding`),this.effectiveHardwareAcceleration="prefer-software",this.consecutiveErrors=0,this.recreateDecoder();return}if(!this.decoder||this.decoder.state==="closed"){this.resetDecoderState();return}this.pendingDecodeCount=Math.max(0,this.pendingDecodeCount-1),this.notifyWaiter()}}));E(this,"unload",()=>{this.decodedSamples.forEach(I=>{I.videoFrame&&I.videoFrame.close()}),this.decodedSamples=[],this.resetDecoderState(),this.decoder&&this.decoder.state!=="closed"&&this.decoder.close(),this.decoder=null});E(this,"initSegment",I=>{this.initSegments.set(I.renditionId,I)});E(this,"enqueue",I=>{var r,d,R,M,q;const A=this.initSegments.get(I.renditionId);if(!A)throw sA(I.renditionId,I.channelId);const B=this.ensureDecoder(),Q=A.codec,C=((r=this.previousSample)==null?void 0:r.width)!==I.width||((d=this.previousSample)==null?void 0:d.height)!==I.height,o=((R=this.previousSample)==null?void 0:R.channelId)!==I.channelId,t=((M=this.previousSample)==null?void 0:M.renditionId)!==I.renditionId,a=this.previousCodec!==Q;if(!this.previousSample||o||t||C||a){this.previousSample&&B.state==="configured"&&B.flush().catch(L=>{this.logger.warn("Failed to flush before reconfiguration:",L)});let y,S;if(Q==="av1"){const{codecString:L,fallbackCodecString:Y,width:H,height:O}=MI(A.data);S=Y;const BA=new DataView(A.data).getUint8(0),oA=BA!==void 0&&(BA&128)!==0?A.data:void 0;y=cA(tA({codec:L,optimizeForLatency:!0,hardwareAcceleration:this.effectiveHardwareAcceleration},oA?{description:oA}:{}),{codedWidth:H,codedHeight:O})}else{const{sequenceParameterSets:L}=II(A.data);if(L.length===0){this.logger.error("No SPS found in init segment, dropping sample");return}const Y=L[0];if(!Y){this.logger.error("Missing SPS payload in init segment, dropping sample");return}const H=LI(Y);y={codec:`avc1.${H.profileIdc.toString(16).padStart(2,"0")}${H.constraintFlags.toString(16).padStart(2,"0")}${H.levelIdc.toString(16).padStart(2,"0")}`,optimizeForLatency:!0,hardwareAcceleration:this.effectiveHardwareAcceleration,description:A.data,codedWidth:H.width,codedHeight:H.height}}let U=!1;try{B.configure(y),U=!0}catch(L){if(Q==="av1"&&S&&B.state!=="closed")try{B.configure(cA(tA({},y),{codec:S})),U=!0}catch(Y){}if(!U){this.logger.error(`Failed to configure decoder for ${Q} (rendition ${I.renditionId}), dropping sample`,L),this.errors.push(L instanceof Error?L:new Error(`Failed to configure decoder for ${Q}`)),this.previousSample=void 0,this.ensureDecoder();return}}this.isWaitingForSync=!0,this.previousCodec=Q}if(I.timescale<=0){this.logger.error(`Invalid timescale ${I.timescale} in sample, dropping sample`);return}if(this.previousSample&&this.previousSample.timescale>0){const y=this.previousSample,S=(y.timestamp+y.duration*2)/y.timescale;I.timestamp/I.timescale>S&&(this.isWaitingForSync=!0)}if(this.previousSample=I,this.isWaitingForSync&&!I.isSync)return;this.isWaitingForSync=!1;const h=Math.floor(1e6*(I.timestamp+((q=I.compositionTimeOffset)!=null?q:0))/I.timescale),e=Math.floor(1e6*I.duration/I.timescale);try{const y=performance.now(),S=this.pendingDecodeCount,U=I.duration/I.timescale*1e3,L=new EncodedVideoChunk({type:I.isSync?"key":"delta",timestamp:h,duration:e>0?e:void 0,data:I.data});this.pendingSamples.enqueue(h,{sample:I,decodeMetadata:{startTime:y,pendingBeforeEnqueue:S,frameDurationMs:U}}),B.decode(L),this.pendingDecodeCount++}catch(y){this.logger.error("Failed to decode chunk:",y),this.pendingSamples.removeLast(h),this.previousSample=void 0,this.isWaitingForSync=!0,this.ensureDecoder(),this.notifyWaiter()}});E(this,"flush",()=>FA(this,null,function*(){if(this.decoder&&this.decoder.state==="configured")try{yield this.decoder.flush()}catch(I){this.logger.error("Failed to flush decoder:",I),this.resetDecoderState()}}));E(this,"waitForFrames",(I=1)=>this.pendingDecodeCount<=0||this.decodedSamples.length>=I?Promise.resolve():new Promise(A=>{var B;(B=this.waitResolve)==null||B.call(this),this.waitResolve=A,this.waitTargetCount=Math.max(1,I),this.notifyWaiter()}));E(this,"pendingFrames",()=>this.pendingDecodeCount);E(this,"error",()=>this.errors.pop());E(this,"take",()=>this.decodedSamples.shift());this.logger=I,this.hardwareAcceleration=A,this.effectiveHardwareAcceleration=A,this.decoder=this.createDecoder()}};E(v,"maxConsecutiveErrors",3),E(v,"isSupported",()=>typeof ZI.VideoDecoder!="undefined"),E(v,"create",(I,A="no-preference")=>FA(null,null,function*(){if(!v.isSupported())throw new Error("WebCodecs VideoDecoder is not supported in this environment");return new v(I,A)}));let YA=v;const CI=120,EI=12,jI=.25;class zI{constructor(){E(this,"initialized",!1);E(this,"anchorMediaMs",0);E(this,"anchorPerfMs",0)}reset(){this.initialized=!1,this.anchorMediaMs=0,this.anchorPerfMs=0}estimate(I=performance.now()){return this.initialized?this.anchorMediaMs+(I-this.anchorPerfMs):0}updateFromMainThread(I,A){const B=performance.now(),Q=Math.max(0,Date.now()-A),C=I+Q;if(!this.initialized)return this.setAnchor(C,B),"soft-correct";const o=this.estimate(B),t=C-o;if(t<-400)return this.setAnchor(C,B),"resync";if(t<-CI)return"ignore";if(t>CI)return this.setAnchor(C,B),"soft-correct";const a=Math.max(-EI,Math.min(EI,t*jI));return this.setAnchor(o+a,B),"soft-correct"}setAnchor(I,A){this.anchorMediaMs=I,this.anchorPerfMs=A,this.initialized=!0}}const VI=400,vI=8,_I=10,$I=new ArrayBuffer(0),yA=self,b=aA.get().createContext("VideoDecoder.worker"),KA=new zI;let N,j=!1,J,z,IA=!1,V=[],CA,DA=0,NA=0,HA=!0,eA,PA=0,ZA=0,XA=0,jA=0,wA=0,pA=0,lA=0;const x=tA({},c),w={cues:[],containerWidth:0,containerHeight:0,devicePixelRatio:1,bottomPadding:0,canvas:void 0,context:void 0,logicalWidth:0,logicalHeight:0},Ag=()=>{w.canvas||(w.canvas=new OffscreenCanvas(1,1),w.context=w.canvas.getContext("2d",{alpha:!0}))},fA=g=>{g.fillStyle="white",g.textAlign="left",g.textBaseline="top",g.font=`${x.fontSize} sans-serif`},Ig=(g,I,A)=>{const B=[],Q=g.split(" ");let C="";for(;Q.length>0;){fA(A);let o=0;for(;A.measureText(C+(C.length>0?" ":"")+Q[0]).width+x.textPadding*2<=I&&Q.length>0;)o++,C+=(C.length>0?" ":"")+Q.shift();if(o===0){B.push(Q.shift()||""),C="";continue}B.push(C),C=""}return B},gg=()=>{Ag();const g=w.context,I=w.canvas;if(!g||!I)return;const A=w.devicePixelRatio,B=w.containerHeight||w.containerWidth*9/16;x.fontSize=n(w.containerWidth,B);const Q=w.containerWidth||(J==null?void 0:J.width)||960,C=w.cues.flatMap(D=>D.text.split(`\n`).flatMap(h=>Ig(h,Q,g))).map(D=>{fA(g);const h=g.measureText(D);return{text:D,size:{height:h.fontBoundingBoxAscent+h.fontBoundingBoxDescent+x.textPadding*2,width:h.width+x.textPadding*2}}});if(C.length===0){w.logicalWidth=0,w.logicalHeight=0;return}const o=Math.max(...C.map(D=>D.size.width)),t=C.reduce((D,{size:h})=>D+h.height,0)+(C.length-1)*x.lineGap;w.logicalWidth=o,w.logicalHeight=t,I.width=o*A,I.height=t*A,g.setTransform(A,0,0,A,0,0),g.clearRect(0,0,I.width,I.height);let a=0;for(const{size:D,text:h}of C)fA(g),g.fillStyle=x.backgroundColor,g.fillRect(0,a,D.width,D.height),fA(g),g.fillText(h,x.textPadding,a+x.textPadding),a+=D.height+x.lineGap},Bg=()=>{if(w.cues.length===0||w.logicalWidth===0||w.logicalHeight===0)return;const g=w.canvas;if(!J||!z||!g)return;const I=G({subtitleWidth:w.logicalWidth,subtitleHeight:w.logicalHeight,canvasWidth:J.width,canvasHeight:J.height,containerWidth:w.containerWidth||J.width,bottomPadding:w.bottomPadding});z.drawImage(g,I.x,I.y,I.drawWidth,I.drawHeight)},iI=()=>{V.forEach(g=>{g.videoFrame.close()}),V=[]},Qg=(g,I)=>{const A=(I-VI)/1e3,B=(g.sample.timestamp+(g.sample.compositionTimeOffset||0))/g.sample.timescale;V=V.filter(Q=>{const C=(Q.sample.timestamp+(Q.sample.compositionTimeOffset||0))/Q.sample.timescale,o=C>A&&C<=B;if(!o)try{Q.videoFrame.close()}catch(t){}return o}),V.push(g)},Cg=()=>{eA!==void 0&&(clearTimeout(eA),eA=void 0)},Eg=()=>{CA!==void 0&&(cancelAnimationFrame(CA),CA=void 0)},oI=()=>{DA=0,NA=0,HA=!0,KA.reset(),PA=0,ZA=0,XA=0,jA=0,wA=0,pA=0,lA=0},tI=()=>{Eg(),Cg(),iI()},ig=g=>{!J||!z||((J.width!==g.displayWidth||J.height!==g.displayHeight)&&(J.width=g.displayWidth,J.height=g.displayHeight),z.drawImage(g,0,0,J.width,J.height))},aI=g=>{ig(g),Bg()},sI=g=>(g.timestamp+(g.compositionTimeOffset||0))/g.timescale*1e3,zA=()=>{var o,t;if(!IA||!J||!z){CA=void 0;return}const g=KA.estimate(),I=g+vI,A=[];let B=V[0];for(;B&&sI(B.sample)<=I;){const a=V.shift();if(!a)break;A.push(a),B=V[0]}let Q,C=0;if(A.length===1)Q=A[0];else if(A.length>1){const a=A[A.length-1],D=A[A.length-2];if(!a||!D){CA=requestAnimationFrame(zA);return}if(g-sI(a.sample)<_I){V.unshift(a),Q=D;for(let r=0;r<A.length-2;r++)(o=A[r])==null||o.videoFrame.close();C=Math.max(A.length-2,0)}else{Q=a;for(let r=0;r<A.length-1;r++)(t=A[r])==null||t.videoFrame.close();C=A.length-1}}if(Q){try{aI(Q.videoFrame)}catch(a){b.error("Failed to render VideoFrame to OffscreenCanvas:",a)}Q.videoFrame.close(),DA++}NA+=C,CA=requestAnimationFrame(zA)},og=g=>{g.data=$I},tg=()=>DA!==ZA||NA!==XA,DI=(g,I,A)=>{var D,h;const B=IA&&tg(),Q=wA>0,C=(h=(D=N==null?void 0:N.pendingFrames)==null?void 0:D.call(N))!=null?h:0,o=C!==jA;if(I===0&&g.length===0&&!B&&!Q&&!o)return;const t=j?IA?[]:g.map(e=>e.videoFrame).filter(e=>e!==void 0):g.map(e=>e.buffer),a={type:"decoded samples",samples:g,timestamp:A,samplesAcceptedCount:I,decoderPendingCount:C};B&&(a.renderedFrameCount=DA,a.rendererDroppedFrameCount=NA,ZA=DA,XA=NA),Q&&(a.estimatedSampleCount=wA,a.estimatedDecodeTimeSum=pA,a.estimatedTransportTimeToWorkerSum=lA,wA=0,pA=0,lA=0),yA.postMessage(a,t),jA=C},ag=g=>{const I=g.videoFrame;if(HA&&J&&z){HA=!1;try{aI(I),DA++}finally{I.close()}}else Qg({videoFrame:I,sample:g},KA.estimate());g.statistics&&(wA++,pA+=g.statistics.decodeTime,lA+=g.statistics.transportTimeToWorker),g.videoFrame=void 0},eI=(g,I)=>{const A=[];let B;for(;B=N==null?void 0:N.take();){if(B.statistics&&(B.statistics.transportTimeToWorker=g>0?g:PA,B.statistics.samplesInBatch=I),IA&&B.videoFrame){ag(B);continue}A.push(B)}return A},sg=()=>{var I,A;if(eA=void 0,!j||!N)return;const g=eI(0,1);DI(g,0,Date.now()),((A=(I=N.pendingFrames)==null?void 0:I.call(N))!=null?A:0)>0&&hI()},hI=()=>{!j||eA!==void 0||(eA=setTimeout(sg,10))},Dg=(g,I,A,B)=>FA(null,null,function*(){try{if(aA.get().setLevel(g),tI(),oI(),I&&YA.isSupported())try{const Q=b.createContext("WebCodecsVideo");N=yield YA.create(Q,A),j=!0,b.info("Initialized WebCodecs video decoder",{hardwareAcceleration:A})}catch(Q){b.warn("WebCodecs initialization failed, falling back to WASM:",Q),N=yield qA.create(),j=!1,b.info("Initialized WASM video decoder (WebCodecs fallback)")}else N=yield qA.create(),j=!1,b.info("Initialized WASM video decoder");IA=!1,J=void 0,z=void 0,B&&j?(J=B,z=B.getContext("2d",{alpha:!1,desynchronized:!0}),z?(IA=!0,b.info("OffscreenCanvas rendering enabled"),CA=requestAnimationFrame(zA)):(b.error("Failed to get 2D context from OffscreenCanvas"),IA=!1,J=void 0)):B&&!j&&b.warn("OffscreenCanvas provided but WebCodecs is not in use - ignoring canvas"),yA.postMessage({type:"ready",isWebCodecs:j,usingOffscreenCanvas:IA})}catch(Q){yA.postMessage({type:"error",message:Q instanceof Error?Q.message:void 0})}});yA.addEventListener("message",g=>{var I,A;switch(g.data.type){case"init":Dg(g.data.logLevel,g.data.useWebCodecs,g.data.webcodecsHardwareAcceleration,g.data.offscreenCanvas);break;case"decode samples":{const B=g.data;try{const Q=Date.now()-B.timestamp;PA=Q,B.currentTime!==void 0&&KA.updateFromMainThread(B.currentTime,B.timestamp)==="resync"&&(iI(),HA=!0),B.samples.forEach(o=>{N==null||N.enqueue(o)});const C=eI(Q,B.samples.length);for(const o of B.samples)og(o);DI(C,B.samples.length,Date.now()),((A=(I=N==null?void 0:N.pendingFrames)==null?void 0:I.call(N))!=null?A:0)>0&&hI()}catch(Q){yA.postMessage({type:"error",message:Q instanceof Error?Q.message:void 0})}}break;case"unload":b.info("Unloading video decoder worker"),N==null||N.unload(),N=void 0,tI(),oI();break;case"init segment":N==null||N.initSegment(g.data.initSegment);break;case"subtitle cues":w.cues=g.data.cues,w.containerWidth=g.data.containerWidth,w.containerHeight=g.data.containerHeight,w.devicePixelRatio=g.data.devicePixelRatio,w.bottomPadding=g.data.bottomPadding,gg();break}})})();\n',AE=typeof self!="undefined"&&self.Blob&&new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);",$Q],{type:"text/javascript;charset=utf-8"});function Kw(i){let A;try{if(A=AE&&(self.URL||self.webkitURL).createObjectURL(AE),!A)throw"";const e=new Worker(A,{name:i==null?void 0:i.name});return e.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(A)}),e}catch(e){return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent($Q),{name:i==null?void 0:i.name})}}const kn=class kn{constructor(A,e,t,g,n=!1,o=!1){s(this,"decodedSamples",[]);s(this,"codedSamples",[]);s(this,"decoder");s(this,"logger");s(this,"errors",new P(10));s(this,"pool");s(this,"getCurrentTime");s(this,"_usingOffscreenCanvas");s(this,"_isWebCodecs");s(this,"_renderedFrameCount",0);s(this,"_rendererDroppedFrameCount",0);s(this,"statisticsQueue",new P(1e3));s(this,"samplesInTransitToWorker",0);s(this,"workerPendingDecodeCount",0);s(this,"targetSamplesInBatch",4);s(this,"maxSamplesInFlight",20);s(this,"unload",()=>{this.decoder.postMessage({type:"unload"}),this.decoder.removeEventListener("message",this.onDecoderEvent),this.decoder.terminate(),this.statisticsQueue.clear(),this.codedSamples=[],this.decodedSamples.forEach(A=>{var e;return(e=A.videoFrame)==null?void 0:e.close()}),this.decodedSamples=[],this.samplesInTransitToWorker=0,this.workerPendingDecodeCount=0});s(this,"enqueue",A=>{this.codedSamples.push(f({},A)),this.flushQueuedSamples()});s(this,"setSubtitleCues",(A,e,t,g,n)=>{this.decoder.postMessage({type:"subtitle cues",cues:A,containerWidth:e,containerHeight:t,devicePixelRatio:g,bottomPadding:n})});s(this,"prepareOutputBuffers",A=>{this._isWebCodecs||A.forEach(e=>{const t=Math.ceil(e.width/16)*16,g=Math.ceil(e.height/16)*16,n=t*g*3/2;e.buffer=this.pool.get(n)})});s(this,"flushQueuedSamples",()=>{for(;this.codedSamples.length>0&&this.samplesInFlight()<this.maxSamplesInFlight;){const A=Math.max(this.maxSamplesInFlight-this.samplesInFlight(),0),e=Math.min(this.targetSamplesInBatch,this.codedSamples.length,A);if(e<=0)return;const t=this.codedSamples.slice(0,e);this.codedSamples=this.codedSamples.slice(e),this.prepareOutputBuffers(t),this.sendSamples(t),this.samplesInTransitToWorker+=t.length}});s(this,"initSegment",A=>{const e={type:"init segment",initSegment:A};this.decoder.postMessage(e)});s(this,"take",()=>this.decodedSamples.shift());s(this,"samplesInFlight",()=>this.samplesInTransitToWorker+this.workerPendingDecodeCount);s(this,"getRenderStatistics",()=>({renderedFrameCount:this._renderedFrameCount,rendererDroppedFrameCount:this._rendererDroppedFrameCount}));s(this,"takeEstimatedStatistics",()=>this.statisticsQueue.pop());s(this,"sendSamples",A=>{var g;const e={type:"decode samples",samples:A,timestamp:Date.now(),currentTime:(g=this.getCurrentTime)==null?void 0:g.call(this)},t=this._isWebCodecs?A.map(n=>n.data):A.flatMap(n=>[n.data,n.buffer]).filter(n=>n!==void 0);this.decoder.postMessage(e,t)});s(this,"onDecoderEvent",A=>{switch(A.data.type){case"ready":break;case"error":this.errors.push(new Error(A.data.message)),this.samplesInTransitToWorker=0,this.workerPendingDecodeCount=0;break;case"decoded samples":{typeof A.data.samplesAcceptedCount=="number"&&A.data.samplesAcceptedCount>0&&(this.samplesInTransitToWorker=Math.max(0,this.samplesInTransitToWorker-A.data.samplesAcceptedCount)),typeof A.data.decoderPendingCount=="number"&&A.data.decoderPendingCount>=0&&(this.workerPendingDecodeCount=A.data.decoderPendingCount);const e=A.data.timestamp,t=Date.now()-e;if(typeof A.data.estimatedSampleCount=="number"&&A.data.estimatedSampleCount>0&&typeof A.data.estimatedDecodeTimeSum=="number"&&typeof A.data.estimatedTransportTimeToWorkerSum=="number"){const g=A.data.estimatedSampleCount,n=A.data.estimatedDecodeTimeSum/g,o=A.data.estimatedTransportTimeToWorkerSum/g+t;for(let a=0;a<g;a++)this.statisticsQueue.push({decodeTime:n,transportTime:o})}A.data.samples.forEach(g=>{g.statistics&&(g.statistics.transportTimeFromWorker=t)}),typeof A.data.renderedFrameCount=="number"&&(this._renderedFrameCount=A.data.renderedFrameCount),typeof A.data.rendererDroppedFrameCount=="number"&&(this._rendererDroppedFrameCount=A.data.rendererDroppedFrameCount),this.decodedSamples.push(...A.data.samples),this.flushQueuedSamples()}break}});this.decoder=A,this.logger=e,this.pool=t,this.getCurrentTime=g,this._isWebCodecs=n,this._usingOffscreenCanvas=o,this.decoder.addEventListener("message",this.onDecoderEvent)}get isWebCodecs(){return this._isWebCodecs}get usingOffscreenCanvas(){return this._usingOffscreenCanvas}error(){return this.errors.pop()}};s(kn,"create",(A,e,t,g=!1,n="no-preference",o,a)=>c(null,null,function*(){const B=new Kw,C=1e4,{isWebCodecs:Q,usingOffscreenCanvas:h}=yield new Promise((d,u)=>{let m=!1;const p=setTimeout(()=>{m||(m=!0,y(new Error("Decoder worker initialization timed out")))},C),y=U=>{if(m=!0,clearTimeout(p),B.removeEventListener("message",k),B.terminate(),U instanceof Error){u(U);return}u(new Error("Failed to initialize decoder worker"))},k=U=>{var K;if(!m)switch(m=!0,clearTimeout(p),B.removeEventListener("message",k),U.data.type){case"ready":d({isWebCodecs:U.data.isWebCodecs,usingOffscreenCanvas:U.data.usingOffscreenCanvas});break;case"error":y(new Error((K=U.data.message)!=null?K:"Failed to initialize decoder worker"));break;default:y(new Error("Failed to initialize decoder worker"));break}};B.addEventListener("message",k);const N={type:"init",logLevel:e,useWebCodecs:g,webcodecsHardwareAcceleration:n,offscreenCanvas:o};try{o?B.postMessage(N,[o]):B.postMessage(N)}catch(U){const K=U instanceof DOMException&&U.name==="DataCloneError";if(o&&K){A.warn("Failed to transfer OffscreenCanvas to worker, falling back to main-thread rendering",U);try{B.postMessage({type:"init",logLevel:e,useWebCodecs:g,webcodecsHardwareAcceleration:n,offscreenCanvas:void 0})}catch(W){y(W)}}else y(U)}});return new kn(B,A,t,a,Q,h)}));let or=kn;const Tw=Object.freeze(Object.defineProperty({__proto__:null,VideoDecoderWorkerContext:or},Symbol.toStringTag,{value:"Module"}));w.AUTHENTICATION_EXPIRED_CODE=rC,w.AUTHENTICATION_FAILED_CODE=BC,w.ApiClient=$C,w.CHANNEL_NOT_FOUND_CODE=CC,w.CONNECTION_FAILED_AFTER_RETRIES_CODE=aC,w.CONNECTION_FAILED_CODE=oC,w.CastSender=eC,w.DISCONNECTED_BY_EDGE=cC,w.INACTIVITY_CODE=EC,w.NO_INCOMING_DATA=QC,w.Player=Lw,w.Vindral=ko,w.VindralError=x,Object.defineProperty(w,Symbol.toStringTag,{value:"Module"})}));
|