@vindral/web-sdk 4.7.0 → 4.7.1

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/legacy.umd.js CHANGED
@@ -1,4 +1,4 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.Vindral={}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=Object.defineProperty,n=(e,t)=>()=>(e&&(t=e(e=0)),t),r=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},i=`_buffering_1ccif_1`,a=`_hidden_1ccif_25`,o=`_scaleout_1ccif_1`,s={buffering:i,"buffering-fullscreen":`_buffering-fullscreen_1ccif_16`,hidden:a,"buffering-indicator":`_buffering-indicator_1ccif_31`,scaleout:o};function c(e){"@babel/helpers - typeof";return c=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},c(e)}var l=n((()=>{}));function u(e,t){if(c(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(c(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var d=n((()=>{l()}));function f(e){var t=u(e,`string`);return c(t)==`symbol`?t:t+``}var p=n((()=>{l(),d()}));function m(e,t,n){return(t=f(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var h=n((()=>{p()}));h();var g=class{constructor(e){m(this,`attach`,e=>{this.detach(),e.appendChild(this.element)}),m(this,`attachBefore`,(e,t)=>{this.detach(),e.insertBefore(this.element,t)}),m(this,`detach`,()=>this.element.remove()),this.element=e}};h();var _,v,y,b,ee=(_=s.hidden)==null?``:_,x=(v=s.buffering)==null?``:v,S=(y=s[`buffering-fullscreen`])==null?``:y,te=(b=s[`buffering-indicator`])==null?``:b,ne=class extends g{constructor(){super(document.createElement(`div`)),m(this,`indicator`,document.createElement(`div`)),m(this,`isHidden`,()=>this.element.classList.contains(ee)),m(this,`setHidden`,e=>e?this.hide():this.show()),m(this,`hide`,()=>this.element.classList.add(ee)),m(this,`show`,()=>this.element.classList.remove(ee)),m(this,`fullscreen`,e=>{e?this.element.classList.add(S):this.element.classList.remove(S)}),this.element.className=x,this.indicator.className=te,this.element.appendChild(this.indicator)}},re,ie=n((()=>{h(),re=class{constructor(e){m(this,`maxSize`,0),m(this,`size`,0),m(this,`buffers`,[]),m(this,`_borrowedBuffers`,0),m(this,`get`,e=>{let t=this.buffers.pop();return this._borrowedBuffers++,this.size<e||!t?(this.buffers=[],this.size=e,new ArrayBuffer(e)):t}),m(this,`reclaim`,e=>{this._borrowedBuffers=Math.max(0,this._borrowedBuffers-1),!(e.byteLength<this.size)&&(this.buffers.length>=this.maxSize||this.buffers.push(e))}),this.maxSize=e}get bufferSize(){return this.size}get poolSize(){return this.buffers.length}get borrowedBuffers(){return this._borrowedBuffers}}})),C,ae=n((()=>{C=()=>{}})),w,oe=n((()=>{ae(),h(),w=class e{constructor(){m(this,`promise`,void 0),m(this,`resolved`,void 0),m(this,`resolve`,void 0),m(this,`reject`,void 0),m(this,`pending`,!0),this.promise=new Promise((e,t)=>{this.resolve=t=>{this.pending=!1,this.resolved=t,e(t)},this.reject=e=>{this.pending=!1,t(e)}}),this.promise.catch(C)}static resolved(t){let n=new e;return n.resolve(t),n}static fromPromise(t){let n=new e;return n.promise=t,t.then(e=>{n.pending=!1,n.resolved=e},e=>{n.pending=!1,n.reject(e)}),n}}})),T,se=n((()=>{h(),T=class{constructor(e=50){m(this,`maxSize`,void 0),m(this,`values`,[]),m(this,`start`,0),m(this,`size`,()=>this.values.length-this.start),m(this,`compact`,()=>{if(this.start!==0){if(this.start>=this.values.length){this.values=[],this.start=0;return}this.start<32&&this.start*2<this.values.length||(this.values=this.values.slice(this.start),this.start=0)}}),m(this,`push`,e=>{this.isFull()&&(this.start++,this.compact()),this.values.push(e)}),m(this,`clear`,()=>{this.values=[],this.start=0}),m(this,`pop`,()=>{if(this.isEmpty())return;let e=this.values[this.start];return this.start++,this.compact(),e}),m(this,`popLast`,()=>{if(this.isEmpty())return;let e=this.values.pop();return this.start>=this.values.length&&this.clear(),e}),m(this,`peekFirst`,()=>this.isEmpty()?void 0:this.values[this.start]),m(this,`peekLast`,()=>this.isEmpty()?void 0:this.values[this.values.length-1]),m(this,`isFull`,()=>this.size()>=this.maxSize),m(this,`isEmpty`,()=>this.size()===0),m(this,`items`,()=>this.start===0?this.values:this.values.slice(this.start)),m(this,`filterPop`,e=>{for(;!this.isEmpty();){let t=this.peekFirst();if(t===void 0||e(t))return;this.pop()}}),this.maxSize=e}}}));function ce(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}var le=n((()=>{}));function E(e,t,n){ce(e,t),t.set(e,n)}var D=n((()=>{le()}));function O(e,t,n){if(typeof e==`function`?e===t:e.has(t))return arguments.length<3?t:n;throw TypeError(`Private element is not present on this object`)}var k=n((()=>{}));function A(e,t,n){return e.set(O(e,t),n),n}var j=n((()=>{k()}));function M(e,t){return e.get(O(e,t))}var N=n((()=>{k()}));function ue(e,t,n,r,i,a,o){try{var s=e[a](o),c=s.value}catch(e){n(e);return}s.done?t(c):Promise.resolve(c).then(r,i)}function P(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var a=e.apply(t,n);function o(e){ue(a,r,i,o,s,`next`,e)}function s(e){ue(a,r,i,o,s,`throw`,e)}o(void 0)})}}var F=n((()=>{}));function de(e){let t=new _e(e);return[t,t]}var fe,pe,me,he,ge,_e,ve=n((()=>{oe(),se(),ae(),D(),j(),N(),F(),pe=new WeakMap,me=new WeakMap,he=new WeakMap,ge=new WeakMap,fe=Symbol.asyncIterator,_e=class{constructor(e){E(this,pe,void 0),E(this,me,new w),E(this,he,void 0),E(this,ge,!1),A(pe,this,new T(e))}isFull(){return M(pe,this).isFull()}close(){var e;(e=M(he,this))==null||e.resolve(),A(ge,this,!0)}abort(e){var t,n;(t=M(he,this))==null||t.promise.catch(C),(n=M(he,this))==null||n.reject(e)}push(e){var t=this;return P(function*(){var n;M(pe,t).isFull()&&(yield M(me,t).promise),M(pe,t).push(e),(n=M(he,t))==null||n.resolve(),A(he,t,new w)})()}pop(){var e=this;return P(function*(){for(;!(M(ge,e)&&M(pe,e).isEmpty());){var t;let n=M(pe,e).pop();if(n)return M(me,e).resolve(),A(me,e,new w),n;M(he,e)||A(he,e,new w),yield(t=M(he,e))==null?void 0:t.promise}})()}start(e){}pull(e){var t=this;return P(function*(){let n=yield t.pop();n?e.enqueue(n):e.close()})()}cancel(e){this.abort(Error(e))}next(){var e=this;return P(function*(){let t=yield e.pop().catch(()=>void 0);return t?{done:!1,value:t}:{done:!0,value:void 0}})()}return(){return this.close(),Promise.resolve({done:!0,value:void 0})}[fe](){return this}}}));function ye(e){let t=e.reason;return t instanceof Error?t:Error(`Aborted`)}function be(e){if(e!=null&&e.aborted)throw ye(e)}function xe(e,t){if(!e)return C;if(e.aborted)return t(e),C;let n=()=>t(e);return e.addEventListener(`abort`,n,{once:!0}),()=>e.removeEventListener(`abort`,n)}function Se(e,t){return Ce.apply(this,arguments)}function Ce(){return Ce=P(function*(e,t){if(!t)return e;let n=new w,r=xe(t,()=>n.reject(ye(t)));try{let r=yield Promise.race([e,n.promise]);return be(t),r}catch(e){throw t.aborted?ye(t):e}finally{r()}}),Ce.apply(this,arguments)}var we=n((()=>{oe(),ae(),F()}));function Te(e,t){if(!e)throw Error(t)}var Ee=n((()=>{})),De,Oe=n((()=>{De=()=>{if(typeof navigator>`u`)return!1;let e=navigator.audioSession;if(!e)return!1;try{return e.type=`playback`,e.type===`playback`}catch(e){return!1}}}));function I(e){return ke?BigInt(e):typeof BigInt==`function`&&typeof e==`bigint`?Number(e):e}var ke,Ae=n((()=>{ke=typeof DataView.prototype.getBigUint64==`function`})),je,Me,Ne,Pe,Fe=n((()=>{D(),h(),N(),j(),je=new WeakMap,Me=new WeakMap,Ne=new WeakMap,Pe=class{constructor(e,t=0){E(this,je,void 0),E(this,Me,void 0),E(this,Ne,void 0),m(this,`position`,()=>M(Ne,this)),m(this,`peekBit`,()=>this.getBit(M(Me,this),M(Ne,this))),m(this,`readBit`,()=>{var e;let t=this.peekBit();return A(Ne,this,(e=M(Ne,this),e++,e)),t}),m(this,`readBits`,e=>{let t=0;for(let i=0;i<e;i++){var n,r;t=t<<1|(this.getBit(M(Me,this),(A(Ne,this,(n=M(Ne,this),r=n++,n)),r))?1:0)}return t}),m(this,`remainingBits`,()=>M(Me,this).byteLength*8-M(Ne,this)),m(this,`readSignedExpGolomb`,()=>{let e=this.readUnsignedExpGolomb();return e&1?(e+1)/2:-(e/2)}),m(this,`readUnsignedExpGolomb`,()=>{var e,t;let n=0;for(;this.getBit(M(Me,this),(A(Ne,this,(e=M(Ne,this),t=e++,e)),t))===0;)n++;let r=1<<n;for(let e=n-1;e>=0;e--){var i,a;r|=this.getBit(M(Me,this),(A(Ne,this,(i=M(Ne,this),a=i++,i)),a))<<e}return r-1}),m(this,`getBit`,(e,t)=>{if(e.byteLength*8<=t)throw Error(`BitReader: Out of bounds`);return e[t>>3]>>7-(t&7)&1}),A(je,this,e),A(Me,this,new Uint8Array(M(je,this))),A(Ne,this,t)}bytes(){return M(Me,this)}}})),Ie,Le=n((()=>{Ie=(e,t,n)=>{let r=0;for(let i=t;i<=n;i++)if(i===t){let t=e[i];r+=t&127,t&128&&(r-=128)}else r=r*256+e[i];return r}})),L,Re,ze,Be,Ve=n((()=>{Le(),D(),j(),N(),L=new WeakMap,Re=new WeakMap,ze=new WeakMap,Be=class{constructor(e){E(this,L,void 0),E(this,Re,void 0),E(this,ze,void 0),A(Re,this,e),A(ze,this,new DataView(e.buffer,e.byteOffset,e.byteLength)),A(L,this,0)}position(){return M(L,this)}byteOffset(){return M(Re,this).byteOffset+M(L,this)}buffer(){return M(Re,this)}remaining(){return M(Re,this).length-M(L,this)}readUint8(){let e=M(ze,this).getUint8(M(L,this));return A(L,this,M(L,this)+1),e}readUint24(){let e=M(ze,this).getUint32(M(L,this))>>8&16777215;return A(L,this,M(L,this)+3),e}readUint16(){let e=M(ze,this).getUint16(M(L,this));return A(L,this,M(L,this)+2),e}readUint32(){let e=M(ze,this).getUint32(M(L,this));return A(L,this,M(L,this)+4),e}readInt32(){let e=M(ze,this).getInt32(M(L,this));return A(L,this,M(L,this)+4),e}readUint64(){let e=Ie(M(Re,this),M(L,this),M(L,this)+7);return A(L,this,M(L,this)+8),e}readBytes(e){let t=M(Re,this).subarray(M(L,this),M(L,this)+e);return A(L,this,M(L,this)+e),t}readRemaining(){return this.readBytes(this.remaining())}readUtf8String(){let e=[],t;for(;(t=this.readUint8())!==0&&(e.push(t),this.remaining()!==0););return new TextDecoder().decode(new Uint8Array(e))}}})),He,Ue=n((()=>{h(),He=class{constructor(e=100){m(this,`internalBuffer`,void 0),m(this,`view`,void 0),m(this,`uint8`,void 0),m(this,`_position`,0),m(this,`_end`,0),this.internalBuffer=new ArrayBuffer(e),this.view=new DataView(this.internalBuffer),this.uint8=new Uint8Array(this.internalBuffer)}position(){return this._position}seek(e){this._position=Math.max(0,Math.min(this._end,e))}seekToEnd(){this._position=this._end}writeUint8(e){this.writeAndMove(e,1)}writeUint16(e){this.writeAndMove(e,2)}writeUint24(e){this.writeAndMove(e,3)}writeUint32(e){this.writeAndMove(e,4)}writeUint64(e){let t=Math.floor(e/4294967296),n=(e&4294967295)>>>0;this.writeUint32(t),this.writeUint32(n)}writeUint32At(e,t){this.view.setUint32(e,t)}writeBytes(e){this.resizeIfNeeded(this.position()+e.byteLength),this.uint8.set(e,this.position()),this._position+=e.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(e,t){switch(this.resizeIfNeeded(this.position()+t),t){case 1:this.view.setUint8(this.position(),e);break;case 2:this.view.setUint16(this.position(),e);break;case 3:this.view.setUint8(this.position(),e>>16&255),this.view.setUint8(this.position()+1,e>>8&255),this.view.setUint8(this.position()+2,e&255);break;case 4:this.view.setUint32(this.position(),e);break}}writeAndMove(e,t){this.write(e,t),this._position+=t,this._end=Math.max(this._end,this._position)}resizeIfNeeded(e){if(e>this.internalBuffer.byteLength){let t=Math.max(e,this.internalBuffer.byteLength*2),n=new ArrayBuffer(t),r=new Uint8Array(n);r.set(this.uint8),this.internalBuffer=n,this.view=new DataView(this.internalBuffer),this.uint8=r}}}}));function We(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n.buffer}var Ge=n((()=>{}));function Ke(){let e=self.MediaSource,t=self.ManagedMediaSource;return e==null?t:e}var qe=n((()=>{}));function Je(){if(/(iPhone|iPod|iPad)/i.test(Ze)){var e;return Ze==null||(e=Ze.match(/OS [\d_]+/i))==null||(e=e[0])==null?void 0:e.substring(3).split(`_`).map(e=>parseInt(e,10))[0]}}function Ye(){if(/^((?!chrome|android).)*safari/i.test(Ze)){var e;return(e=Ze.match(/version\/([\d.]+)/))==null||(e=e[1])==null?void 0:e.split(`.`).map(e=>parseInt(e,10))[0]}}var Xe,Ze,Qe,$e,et,tt,nt,rt,it,at,ot,st,ct,lt,ut,dt,ft=n((()=>{qe(),Xe=/(android|bb\d+|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,Ze=navigator.userAgent.toLowerCase(),Qe=Xe.test(Ze),$e=()=>{let e=document.createElement(`video`);return e.canPlayType(`application/vnd.apple.mpegURL`)!==``||e.canPlayType(`audio/mpegurl`)!==``},et=()=>{try{if(typeof WebAssembly==`object`&&typeof WebAssembly.instantiate==`function`){let e=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(e instanceof WebAssembly.Module)return new WebAssembly.Instance(e)instanceof WebAssembly.Instance}}catch(e){return!1}return!1},tt=()=>Ze.indexOf(`CrKey`)!==-1,nt=()=>navigator.platform===`MacIntel`&&navigator.maxTouchPoints===0,rt=()=>navigator.platform===`MacIntel`&&navigator.maxTouchPoints>1,it=()=>at()||rt()?!0:/AppleWebKit/i.test(navigator.userAgent)&&!/Chrome|Chromium|Edg|OPR|Opera/i.test(navigator.userAgent),at=()=>Ze.indexOf(`iphone`)>=0&&Ze.indexOf(`like iphone`)<0||Ze.indexOf(`ipad`)>=0&&Ze.indexOf(`like ipad`)<0||Ze.indexOf(`ipod`)>=0&&Ze.indexOf(`like ipod`)<0||rt(),ot=()=>{var e,t;return rt()||(e=(t=Ke())==null?void 0:t.isTypeSupported(`audio/mp4; codecs="opus"`))==null?!1:e},st=()=>/^(?!.*chrome).*safari/i.test(Ze),ct=e=>Number.isFinite(e)&&e!==2**53-1,lt=(e,t)=>ct(e.platform.safariVersion)&&e.platform.safariVersion>=t,ut=()=>typeof HTMLCanvasElement<`u`&&typeof HTMLCanvasElement.prototype.captureStream==`function`,dt=()=>{var e,t;let n=!!Ke(),r=!1;return n&&(r=ot()),{isMobile:Qe,supportsMp4Opus:r,supportsMediaSource:n,supportsHls:$e(),supportsWebAssembly:et(),supportsCanvasCaptureStream:ut(),platform:{iosVersion:(e=Je())==null?2**53-1:e,safariVersion:(t=Ye())==null?2**53-1:t,isIpadOS:rt(),isMacOS:nt(),isIOS:at(),isWebKit:it()}}}})),pt,mt,ht,gt,_t,vt,yt,bt,xt,St,Ct,wt,Tt,Et,Dt,Ot,kt,At,jt,Mt,Nt,Pt,Ft,It=n((()=>{ft(),pt=e=>e,mt=e=>e,ht=e=>e,gt=e=>e,_t=e=>`orientation`in e?e.orientation:void 0,vt=(e=document)=>{let t=pt(e);return!!(e.fullscreenElement||e.fullscreen||t.mozFullScreen||t.webkitIsFullScreen)},yt=e=>{var t,n,r,i;let a=mt(e);return((t=e.requestFullscreen)==null?void 0:t.bind(e))||((n=a.webkitRequestFullscreen)==null?void 0:n.bind(a))||((r=a.webkitEnterFullscreen)==null?void 0:r.bind(a))||((i=a.mozRequestFullScreen)==null?void 0:i.bind(a))},bt=(e,t=document)=>{var n,r;let i=pt(t);return((n=t.exitFullscreen)==null?void 0:n.bind(t))||(i.webkitFullscreenElement&&i.webkitExitFullscreen?i.webkitExitFullscreen.bind(t):void 0)||(i.mozFullscreenElement&&i.mozCancelFullScreen?i.mozCancelFullScreen.bind(t):void 0)||(e?(r=mt(e).webkitExitFullscreen)==null?void 0:r.bind(e):void 0)},xt=e=>!!yt(e),St=e=>{var t;let n=gt(e);return(t=n.requestPictureInPicture)==null?void 0:t.bind(n)},Ct=(e=document)=>{var t;return(t=ht(e).exitPictureInPicture)==null?void 0:t.bind(e)},wt=(e=document)=>!!ht(e).pictureInPictureEnabled,Tt=(e=document)=>!!ht(e).pictureInPictureElement,Et=(e,t=document)=>!!St(e)&&wt(t),Dt=e=>e.pictureInPictureWindow,Ot=e=>gt(e).webkitPresentationMode,kt=(e,t)=>{var n,r;(n=(r=gt(e)).webkitSetPresentationMode)==null||n.call(r,t)},At=e=>!!gt(e).webkitSetPresentationMode,jt=(e,t)=>{if(t){e.setAttribute(`autopictureinpicture`,``);return}e.removeAttribute(`autopictureinpicture`)},Mt=(e=screen)=>{var t;let n=_t(e);return n==null||(t=n.lock)==null?void 0:t.bind(n)},Nt=(e,t=screen)=>{var n;return(n=Mt(t))==null?void 0:n(e)},Pt=(e=screen)=>{var t,n;(t=_t(e))==null||(n=t.unlock)==null||n.call(t)},Ft=e=>{if(!e.supportsCanvasCaptureStream)return!1;if(!e.platform.isIOS)return!0;let{iosVersion:t,safariVersion:n,isIpadOS:r}=e.platform;return ct(t)?t>=15:r&&ct(n)?n>=15:typeof VideoDecoder<`u`}})),Lt,Rt=n((()=>{h(),Lt=class{constructor(e,t,n){m(this,`onSuccess`,void 0),m(this,`onError`,void 0),m(this,`doExecute`,void 0),this.doExecute=e,this.onSuccess=t,this.onError=n}execute(e){try{this.doExecute(e),this.onSuccess()}catch(e){this.onError(e)}}abort(e){this.onError(e)}}})),zt,Bt,Vt,Ht,Ut,Wt=n((()=>{zt=e=>e.reduce((e,t)=>e+t,0)/e.length,Bt=e=>{if(e.length<2)return;let t=0;for(let n=1;n<e.length;n++)t+=e[n]-e[n-1];return t/(e.length-1)},Vt=e=>{if(e.length===0)return NaN;let t=Math.floor(e.length/2),n=[...e].sort((e,t)=>e-t);return e.length%2==0?(n[t-1]+n[t])/2:n[t]},Ht=e=>({last:e[e.length-1]||0,average:e.length===0?0:zt(e),max:e.length===0?0:Math.max(...e),min:e.length===0?0:Math.min(...e)}),Ut=e=>{let t=0,n=0,r=0,i=0,a=0;for(let o=0;o<e.length;o++){let{x:s,y:c}=e[o];t+=s,n+=c,r+=s*c,i+=s*s,a+=c*c}let o=(e.length*r-t*n)/(e.length*i-t*t),s=(n-o*t)/e.length;return{slope:o,intercept:s,r2:((e.length*r-t*n)/Math.sqrt((e.length*i-t*t)*(e.length*a-n*n)))**2,predict:t=>o*(e.length+t)+s}}})),Gt,Kt=n((()=>{se(),Wt(),h(),Gt=class{constructor(e=10){m(this,`rates`,void 0),m(this,`_total`,0),m(this,`accumulatedValues`,0),m(this,`lastTickTime`,performance.now()),m(this,`add`,e=>{this.accumulatedValues+=e,this._total+=e}),m(this,`tick`,()=>{let e=performance.now(),t=this.accumulatedValues/((e-this.lastTickTime)/1e3);this.rates.push(t),this.accumulatedValues=0,this.lastTickTime=e}),this.rates=new T(e)}get total(){return this._total}get average(){return this.rates.isEmpty()?0:zt(this.rates.items())}get minMaxAverage(){return Ht(this.rates.items())}}})),qt,Jt=n((()=>{qt=5e3}));function Yt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function R(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Yt(Object(n),!0).forEach(function(t){m(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Yt(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var z=n((()=>{h()})),Xt,Zt=n((()=>{Xt=()=>{let e=navigator.connection;return{navigatorRtt:e==null?void 0:e.rtt,navigatorEffectiveType:e==null?void 0:e.effectiveType,navigatorConnectionType:e==null?void 0:e.type,navigatorSaveData:e==null?void 0:e.saveData,navigatorDownlink:e==null?void 0:e.downlink}}})),Qt,$t=n((()=>{Qt=(e,t)=>{if(e===t)return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;let n=0,r=0;for(let t in e)n+=1;for(let n in t)if(r+=1,!(n in e)||!Qt(e[n],t[n]))return!1;return n===r}})),en,tn=n((()=>{h(),en=class{constructor(){m(this,`listeners`,{})}emit(e,t){let n=this.listeners[e];if(n){let r=!1;for(let e=0;e<n.length;e++)if(n[e].once){r=!0;break}r&&(this.listeners[e]=n.filter(e=>!e.once));let i,a=n.length;for(let e=0;e<a;e++){let r=n[e].fn(t);typeof r==`function`&&(i||(i=[]),i.push(r))}if(i)for(let e=0;e<i.length;e++)i[e]()}}off(e,t){let n=this.listeners[e];n&&(this.listeners[e]=n.filter(e=>e.fn!==t))}on(e,t){this.add(e,t,!1)}once(e,t){this.add(e,t,!0)}hasListeners(e){let t=this.listeners[e];return t!==void 0&&t.length>0}reset(){this.listeners={}}add(e,t,n){let r=this.listeners[e],i={fn:t,once:n};r?r.push(i):this.listeners[e]=[i]}}})),nn,rn=n((()=>{h(),nn=class extends Map{constructor(e){super(),m(this,`maxSize`,void 0),this.maxSize=e}get isFull(){return this.size>=this.maxSize}set(e,t){if(this.isFull&&!this.has(e)){let e=this.keys().next().value;e!==void 0&&this.delete(e)}return super.set(e,t)}}})),an,on,sn,cn,ln,un,dn,fn=n((()=>{an=1e3,on=an*1e3,sn=on*1e3,cn=(e,t,n)=>e%t===0?e/t:(e/t).toFixed(n),ln=(e,t=1)=>e>=sn?`${cn(e,sn,t)} Gbit/s`:e>=on?`${cn(e,on,t)} Mbit/s`:e>=an?`${cn(e,an,t)} Kbit/s`:`${e} bit/s`,un=({width:e,height:t})=>`${e}x${t}`,dn=e=>e%1e3==0?`${e/1e3} kHz`:e>1e3?`${(e/1e3).toFixed(1)} kHz`:`${e} Hz`})),pn=n((()=>{})),mn,hn,gn,_n,vn,yn,bn,xn,Sn=n((()=>{D(),h(),j(),N(),mn=[`off`,`error`,`warn`,`info`,`debug`,`trace`],hn={ERROR:`error`,WARN:`warn`,INFO:`info`,DEBUG:`debug`,TRACE:`trace`,OFF:`off`},gn=new WeakMap,_n=new WeakMap,vn=new WeakMap,yn=new WeakMap,bn=class e{constructor({context:e,logLevel:t,debug:n}){E(this,gn,new Map),E(this,_n,``),E(this,vn,!1),E(this,yn,`off`),m(this,`trace`,(...e)=>{}),m(this,`debug`,(...e)=>{}),m(this,`info`,(...e)=>{}),m(this,`warn`,(...e)=>{}),m(this,`error`,(...e)=>{}),m(this,`table`,(...e)=>{}),m(this,`count`,(...e)=>{}),A(_n,this,e),A(yn,this,t),A(vn,this,n||!1),this.setLevel(t),this.setDebug(M(vn,this))}setDebug(e){A(vn,this,e);for(let[t,n]of M(gn,this))n.setDebug(e);e?(this.table=console.table.bind(console),this.count=console.count.bind(console)):(this.table=()=>{},this.count=()=>{})}getLevel(){return M(yn,this)}setLevel(e){A(yn,this,e);for(let[t,n]of M(gn,this))n.setLevel(e);let t=mn.indexOf(e);for(let[e,n]of mn.entries())n!==`off`&&(e<=t?this[n]=console[n].bind(console,`%c%s %c%s`,`font-weight:bold;`,n.toUpperCase(),`font-weight:normal;`,M(_n,this)):this[n]=()=>{})}createContext(t){let n=M(gn,this).get(t);if(!n){let n=new e({context:`${t}`,logLevel:M(yn,this),debug:M(vn,this)});return M(gn,this).set(t,n),n}return n}static get(){return xn._||(xn._=new e({context:`Vindral`,logLevel:`off`})),xn._}},xn={_:void 0}}));function Cn(){return typeof Symbol.asyncDispose!=`symbol`&&Object.defineProperty(Symbol,`asyncDispose`,{value:Symbol.for(`asyncDispose`)}),Symbol.asyncDispose}function wn(){return typeof Symbol.dispose!=`symbol`&&Object.defineProperty(Symbol,`dispose`,{value:Symbol.for(`dispose`)}),Symbol.dispose}var Tn=n((()=>{}));function B(e,t){ce(e,t),t.add(e)}var V=n((()=>{le()}));function En(){this.unlocker.resolve(this.value)}var Dn,On,kn,An,jn,Mn,Nn,Pn=n((()=>{oe(),ae(),Tn(),V(),h(),k(),D(),N(),j(),F(),kn=new WeakSet,Dn=wn(),On=Symbol.dispose,An=class{constructor(e,t){B(this,kn),m(this,`value`,void 0),m(this,`unlocker`,void 0),this.value=e,this.unlocker=t}unlocked(){var e;return(e=this.unlocker)==null?void 0:e.promise}[Dn](){O(kn,this,En).call(this)}[On](){O(kn,this,En).call(this)}},jn=new WeakMap,Mn=new WeakMap,Nn=class{unsafeValue(){return M(jn,this)}constructor(e){E(this,jn,void 0),E(this,Mn,new w),A(jn,this,e),M(Mn,this).resolve(e)}isLocked(){return M(Mn,this).pending}lock(){var e=this;return P(function*(){let t=new w;t.promise.then(t=>{A(jn,e,t)}).catch(C);let n=M(Mn,e).promise.then(()=>t);return A(Mn,e,t),yield n,new An(M(jn,e),t)})()}}})),Fn=n((()=>{})),In=n((()=>{})),Ln=n((()=>{}));function Rn(e,t){this.v=e,this.k=t}var zn=n((()=>{}));function H(e){return new Rn(e,0)}var Bn=n((()=>{zn()}));function Vn(e){return function(){return new Hn(e.apply(this,arguments))}}function Hn(e){var t,n;function r(t,n){try{var a=e[t](n),o=a.value,s=o instanceof Rn;Promise.resolve(s?o.v:o).then(function(n){if(s){var c=t===`return`?`return`:`next`;if(!o.k||n.done)return r(c,n);n=e[c](n).value}i(a.done?`return`:`normal`,n)},function(e){r(`throw`,e)})}catch(e){i(`throw`,e)}}function i(e,i){switch(e){case`return`:t.resolve({value:i,done:!0});break;case`throw`:t.reject(i);break;default:t.resolve({value:i,done:!1})}(t=t.next)?r(t.key,t.arg):n=null}this._invoke=function(e,i){return new Promise(function(a,o){var s={key:e,arg:i,resolve:a,reject:o,next:null};n?n=n.next=s:(t=n=s,r(e,i))})},typeof e.return!=`function`&&(this.return=void 0)}var Un=n((()=>{zn(),Hn.prototype[typeof Symbol==`function`&&Symbol.asyncIterator||`@@asyncIterator`]=function(){return this},Hn.prototype.next=function(e){return this._invoke(`next`,e)},Hn.prototype.throw=function(e){return this._invoke(`throw`,e)},Hn.prototype.return=function(e){return this._invoke(`return`,e)}}));function Wn(){for(let e of M(Jn,this))e()}var Gn,Kn,qn,Jn,Yn,Xn,Zn=n((()=>{oe(),V(),D(),j(),N(),k(),F(),Bn(),Un(),Kn=new WeakMap,qn=new WeakMap,Jn=new WeakMap,Yn=new WeakSet,Gn=Symbol.asyncIterator,Xn=class{constructor(e){B(this,Yn),E(this,Kn,void 0),E(this,qn,void 0),E(this,Jn,new Set),A(Kn,this,e),A(qn,this,new w)}isClosed(){var e;return!((e=M(qn,this))!=null&&e.pending)}current(){return M(Kn,this)}value(){var e;return[M(Kn,this),(e=M(qn,this))==null?void 0:e.promise]}update(e){var t;if(!((t=M(qn,this))!=null&&t.pending))throw Error(`ObservableValue is closed`);A(Kn,this,e instanceof Function?e(M(Kn,this)):e),M(qn,this).resolve(M(Kn,this)),A(qn,this,new w),O(Yn,this,Wn).call(this)}close(){var e;(e=M(qn,this))==null||e.resolve(M(Kn,this)),A(qn,this,void 0),O(Yn,this,Wn).call(this)}waitFor(e){var t=this;return P(function*(){if(e(M(Kn,t)))return M(Kn,t);for(;;){let[n,r]=t.value();if(!r)throw Error(`ObservableValue was closed while waiting for condition`);let i=yield r;if(e(i))return i}})()}[Gn](){return this.values()}values(e){var t=this;return Vn(function*(){for(;;){var n;if(e!=null&&e.aborted)return;let[r,i]=t.value();if(yield r,!i||e!=null&&e.aborted)return;if(!e){yield H(i);continue}((n=M(qn,t))==null?void 0:n.promise)===i&&(yield H(new Promise(n=>{let r=()=>{M(Jn,t).delete(r),e.removeEventListener(`abort`,r),n()};M(Jn,t).add(r),e.addEventListener(`abort`,r,{once:!0})})))}})()}}})),Qn,$n=n((()=>{z(),Qn=(e,t)=>{let n=R({},e);return typeof n==`object`&&t.forEach(e=>{delete n[e]}),n}})),er=n((()=>{})),tr=n((()=>{}));function nr(e,t,n){let r=t*.05,i=e*.035,a=Math.max(Math.round(Math.min(r,i)),16);return`${(n==null?void 0:n.max)==null?a:Math.min(a,n.max)}px`}var rr=n((()=>{})),ir,ar,or,sr,cr=n((()=>{h(),or=class{constructor(e,t,n,r){m(this,`messageHandler`,void 0),m(this,`onMessage`,e=>{let{data:t}=e;((t==null?void 0:t.type)===`timeout`||(t==null?void 0:t.type)===`interval`)&&this.messageHandler(t)}),m(this,`setTimeout`,(e,t)=>{this.worker.postMessage({type:`set-timeout`,id:e,delay:t})}),m(this,`clearTimeout`,e=>{this.worker.postMessage({type:`clear-timeout`,id:e})}),m(this,`setInterval`,(e,t)=>{this.worker.postMessage({type:`set-interval`,id:e,delay:t})}),m(this,`clearInterval`,e=>{this.worker.postMessage({type:`clear-interval`,id:e})}),m(this,`unload`,()=>{this.worker.postMessage({type:`unload`}),this.worker.removeEventListener(`message`,this.onMessage),this.worker.removeEventListener(`error`,this.onFailure),this.worker.terminate(),URL.revokeObjectURL(this.workerUrl)}),this.worker=e,this.workerUrl=t,this.onFailure=r,this.worker.addEventListener(`message`,this.onMessage),this.worker.addEventListener(`error`,this.onFailure),this.messageHandler=n}},ir=or,m(or,`source`,`
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.Vindral={}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=Object.defineProperty,n=(e,t)=>()=>(e&&(t=e(e=0)),t),r=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},i=`_buffering_1ccif_1`,a=`_hidden_1ccif_25`,o=`_scaleout_1ccif_1`,s={buffering:i,"buffering-fullscreen":`_buffering-fullscreen_1ccif_16`,hidden:a,"buffering-indicator":`_buffering-indicator_1ccif_31`,scaleout:o};function c(e){"@babel/helpers - typeof";return c=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},c(e)}var l=n((()=>{}));function u(e,t){if(c(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(c(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var d=n((()=>{l()}));function f(e){var t=u(e,`string`);return c(t)==`symbol`?t:t+``}var p=n((()=>{l(),d()}));function m(e,t,n){return(t=f(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var h=n((()=>{p()}));h();var g=class{constructor(e){m(this,`attach`,e=>{this.detach(),e.appendChild(this.element)}),m(this,`attachBefore`,(e,t)=>{this.detach(),e.insertBefore(this.element,t)}),m(this,`detach`,()=>this.element.remove()),this.element=e}};h();var _,v,y,b,ee=(_=s.hidden)==null?``:_,te=(v=s.buffering)==null?``:v,x=(y=s[`buffering-fullscreen`])==null?``:y,ne=(b=s[`buffering-indicator`])==null?``:b,re=class extends g{constructor(){super(document.createElement(`div`)),m(this,`indicator`,document.createElement(`div`)),m(this,`isHidden`,()=>this.element.classList.contains(ee)),m(this,`setHidden`,e=>e?this.hide():this.show()),m(this,`hide`,()=>this.element.classList.add(ee)),m(this,`show`,()=>this.element.classList.remove(ee)),m(this,`fullscreen`,e=>{e?this.element.classList.add(x):this.element.classList.remove(x)}),this.element.className=te,this.indicator.className=ne,this.element.appendChild(this.indicator)}},ie,ae=n((()=>{h(),ie=class{constructor(e){m(this,`maxSize`,0),m(this,`size`,0),m(this,`buffers`,[]),m(this,`_borrowedBuffers`,0),m(this,`get`,e=>{let t=this.buffers.pop();return this._borrowedBuffers++,this.size<e||!t?(this.buffers=[],this.size=e,new ArrayBuffer(e)):t}),m(this,`reclaim`,e=>{this._borrowedBuffers=Math.max(0,this._borrowedBuffers-1),!(e.byteLength<this.size)&&(this.buffers.length>=this.maxSize||this.buffers.push(e))}),this.maxSize=e}get bufferSize(){return this.size}get poolSize(){return this.buffers.length}get borrowedBuffers(){return this._borrowedBuffers}}})),S,oe=n((()=>{S=()=>{}})),C,se=n((()=>{oe(),h(),C=class e{constructor(){m(this,`promise`,void 0),m(this,`resolved`,void 0),m(this,`resolve`,void 0),m(this,`reject`,void 0),m(this,`pending`,!0),this.promise=new Promise((e,t)=>{this.resolve=t=>{this.pending=!1,this.resolved=t,e(t)},this.reject=e=>{this.pending=!1,t(e)}}),this.promise.catch(S)}static resolved(t){let n=new e;return n.resolve(t),n}static fromPromise(t){let n=new e;return n.promise=t,t.then(e=>{n.pending=!1,n.resolved=e},e=>{n.pending=!1,n.reject(e)}),n}}})),w,ce=n((()=>{h(),w=class{constructor(e=50){m(this,`maxSize`,void 0),m(this,`values`,[]),m(this,`start`,0),m(this,`size`,()=>this.values.length-this.start),m(this,`compact`,()=>{if(this.start!==0){if(this.start>=this.values.length){this.values=[],this.start=0;return}this.start<32&&this.start*2<this.values.length||(this.values=this.values.slice(this.start),this.start=0)}}),m(this,`push`,e=>{this.isFull()&&(this.start++,this.compact()),this.values.push(e)}),m(this,`clear`,()=>{this.values=[],this.start=0}),m(this,`pop`,()=>{if(this.isEmpty())return;let e=this.values[this.start];return this.start++,this.compact(),e}),m(this,`popLast`,()=>{if(this.isEmpty())return;let e=this.values.pop();return this.start>=this.values.length&&this.clear(),e}),m(this,`peekFirst`,()=>this.isEmpty()?void 0:this.values[this.start]),m(this,`peekLast`,()=>this.isEmpty()?void 0:this.values[this.values.length-1]),m(this,`isFull`,()=>this.size()>=this.maxSize),m(this,`isEmpty`,()=>this.size()===0),m(this,`items`,()=>this.start===0?this.values:this.values.slice(this.start)),m(this,`filterPop`,e=>{for(;!this.isEmpty();){let t=this.peekFirst();if(t===void 0||e(t))return;this.pop()}}),this.maxSize=e}}}));function le(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}var ue=n((()=>{}));function T(e,t,n){le(e,t),t.set(e,n)}var E=n((()=>{ue()}));function D(e,t,n){if(typeof e==`function`?e===t:e.has(t))return arguments.length<3?t:n;throw TypeError(`Private element is not present on this object`)}var O=n((()=>{}));function k(e,t,n){return e.set(D(e,t),n),n}var A=n((()=>{O()}));function j(e,t){return e.get(D(e,t))}var M=n((()=>{O()}));function de(e,t,n,r,i,a,o){try{var s=e[a](o),c=s.value}catch(e){n(e);return}s.done?t(c):Promise.resolve(c).then(r,i)}function N(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var a=e.apply(t,n);function o(e){de(a,r,i,o,s,`next`,e)}function s(e){de(a,r,i,o,s,`throw`,e)}o(void 0)})}}var P=n((()=>{}));function fe(e){let t=new ve(e);return[t,t]}var pe,me,he,ge,_e,ve,ye=n((()=>{se(),ce(),oe(),E(),A(),M(),P(),me=new WeakMap,he=new WeakMap,ge=new WeakMap,_e=new WeakMap,pe=Symbol.asyncIterator,ve=class{constructor(e){T(this,me,void 0),T(this,he,new C),T(this,ge,void 0),T(this,_e,!1),k(me,this,new w(e))}isFull(){return j(me,this).isFull()}close(){var e;(e=j(ge,this))==null||e.resolve(),k(_e,this,!0)}abort(e){var t,n;(t=j(ge,this))==null||t.promise.catch(S),(n=j(ge,this))==null||n.reject(e)}push(e){var t=this;return N(function*(){var n;j(me,t).isFull()&&(yield j(he,t).promise),j(me,t).push(e),(n=j(ge,t))==null||n.resolve(),k(ge,t,new C)})()}pop(){var e=this;return N(function*(){for(;!(j(_e,e)&&j(me,e).isEmpty());){var t;let n=j(me,e).pop();if(n)return j(he,e).resolve(),k(he,e,new C),n;j(ge,e)||k(ge,e,new C),yield(t=j(ge,e))==null?void 0:t.promise}})()}start(e){}pull(e){var t=this;return N(function*(){let n=yield t.pop();n?e.enqueue(n):e.close()})()}cancel(e){this.abort(Error(e))}next(){var e=this;return N(function*(){let t=yield e.pop().catch(()=>void 0);return t?{done:!1,value:t}:{done:!0,value:void 0}})()}return(){return this.close(),Promise.resolve({done:!0,value:void 0})}[pe](){return this}}}));function be(e){let t=e.reason;return t instanceof Error?t:Error(`Aborted`)}function xe(e){if(e!=null&&e.aborted)throw be(e)}function Se(e,t){if(!e)return S;if(e.aborted)return t(e),S;let n=()=>t(e);return e.addEventListener(`abort`,n,{once:!0}),()=>e.removeEventListener(`abort`,n)}function Ce(e,t){return we.apply(this,arguments)}function we(){return we=N(function*(e,t){if(!t)return e;let n=new C,r=Se(t,()=>n.reject(be(t)));try{let r=yield Promise.race([e,n.promise]);return xe(t),r}catch(e){throw t.aborted?be(t):e}finally{r()}}),we.apply(this,arguments)}var Te=n((()=>{se(),oe(),P()}));function Ee(e,t){if(!e)throw Error(t)}var De=n((()=>{})),Oe,ke=n((()=>{Oe=()=>{if(typeof navigator>`u`)return!1;let e=navigator.audioSession;if(!e)return!1;try{return e.type=`playback`,e.type===`playback`}catch(e){return!1}}}));function F(e){return Ae?BigInt(e):typeof BigInt==`function`&&typeof e==`bigint`?Number(e):e}var Ae,je=n((()=>{Ae=typeof DataView.prototype.getBigUint64==`function`})),Me,Ne,Pe,Fe,Ie=n((()=>{E(),h(),M(),A(),Me=new WeakMap,Ne=new WeakMap,Pe=new WeakMap,Fe=class{constructor(e,t=0){T(this,Me,void 0),T(this,Ne,void 0),T(this,Pe,void 0),m(this,`position`,()=>j(Pe,this)),m(this,`peekBit`,()=>this.getBit(j(Ne,this),j(Pe,this))),m(this,`readBit`,()=>{var e;let t=this.peekBit();return k(Pe,this,(e=j(Pe,this),e++,e)),t}),m(this,`readBits`,e=>{let t=0;for(let i=0;i<e;i++){var n,r;t=t<<1|(this.getBit(j(Ne,this),(k(Pe,this,(n=j(Pe,this),r=n++,n)),r))?1:0)}return t}),m(this,`remainingBits`,()=>j(Ne,this).byteLength*8-j(Pe,this)),m(this,`readSignedExpGolomb`,()=>{let e=this.readUnsignedExpGolomb();return e&1?(e+1)/2:-(e/2)}),m(this,`readUnsignedExpGolomb`,()=>{var e,t;let n=0;for(;this.getBit(j(Ne,this),(k(Pe,this,(e=j(Pe,this),t=e++,e)),t))===0;)n++;let r=1<<n;for(let e=n-1;e>=0;e--){var i,a;r|=this.getBit(j(Ne,this),(k(Pe,this,(i=j(Pe,this),a=i++,i)),a))<<e}return r-1}),m(this,`getBit`,(e,t)=>{if(e.byteLength*8<=t)throw Error(`BitReader: Out of bounds`);return e[t>>3]>>7-(t&7)&1}),k(Me,this,e),k(Ne,this,new Uint8Array(j(Me,this))),k(Pe,this,t)}bytes(){return j(Ne,this)}}})),Le,Re=n((()=>{Le=(e,t,n)=>{let r=0;for(let i=t;i<=n;i++)if(i===t){let t=e[i];r+=t&127,t&128&&(r-=128)}else r=r*256+e[i];return r}})),I,ze,Be,Ve,He=n((()=>{Re(),E(),A(),M(),I=new WeakMap,ze=new WeakMap,Be=new WeakMap,Ve=class{constructor(e){T(this,I,void 0),T(this,ze,void 0),T(this,Be,void 0),k(ze,this,e),k(Be,this,new DataView(e.buffer,e.byteOffset,e.byteLength)),k(I,this,0)}position(){return j(I,this)}byteOffset(){return j(ze,this).byteOffset+j(I,this)}buffer(){return j(ze,this)}remaining(){return j(ze,this).length-j(I,this)}readUint8(){let e=j(Be,this).getUint8(j(I,this));return k(I,this,j(I,this)+1),e}readUint24(){let e=j(Be,this).getUint32(j(I,this))>>8&16777215;return k(I,this,j(I,this)+3),e}readUint16(){let e=j(Be,this).getUint16(j(I,this));return k(I,this,j(I,this)+2),e}readUint32(){let e=j(Be,this).getUint32(j(I,this));return k(I,this,j(I,this)+4),e}readInt32(){let e=j(Be,this).getInt32(j(I,this));return k(I,this,j(I,this)+4),e}readUint64(){let e=Le(j(ze,this),j(I,this),j(I,this)+7);return k(I,this,j(I,this)+8),e}readBytes(e){let t=j(ze,this).subarray(j(I,this),j(I,this)+e);return k(I,this,j(I,this)+e),t}readRemaining(){return this.readBytes(this.remaining())}readUtf8String(){let e=[],t;for(;(t=this.readUint8())!==0&&(e.push(t),this.remaining()!==0););return new TextDecoder().decode(new Uint8Array(e))}}})),Ue,We=n((()=>{h(),Ue=class{constructor(e=100){m(this,`internalBuffer`,void 0),m(this,`view`,void 0),m(this,`uint8`,void 0),m(this,`_position`,0),m(this,`_end`,0),this.internalBuffer=new ArrayBuffer(e),this.view=new DataView(this.internalBuffer),this.uint8=new Uint8Array(this.internalBuffer)}position(){return this._position}seek(e){this._position=Math.max(0,Math.min(this._end,e))}seekToEnd(){this._position=this._end}writeUint8(e){this.writeAndMove(e,1)}writeUint16(e){this.writeAndMove(e,2)}writeUint24(e){this.writeAndMove(e,3)}writeUint32(e){this.writeAndMove(e,4)}writeUint64(e){let t=Math.floor(e/4294967296),n=(e&4294967295)>>>0;this.writeUint32(t),this.writeUint32(n)}writeUint32At(e,t){this.view.setUint32(e,t)}writeBytes(e){this.resizeIfNeeded(this.position()+e.byteLength),this.uint8.set(e,this.position()),this._position+=e.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(e,t){switch(this.resizeIfNeeded(this.position()+t),t){case 1:this.view.setUint8(this.position(),e);break;case 2:this.view.setUint16(this.position(),e);break;case 3:this.view.setUint8(this.position(),e>>16&255),this.view.setUint8(this.position()+1,e>>8&255),this.view.setUint8(this.position()+2,e&255);break;case 4:this.view.setUint32(this.position(),e);break}}writeAndMove(e,t){this.write(e,t),this._position+=t,this._end=Math.max(this._end,this._position)}resizeIfNeeded(e){if(e>this.internalBuffer.byteLength){let t=Math.max(e,this.internalBuffer.byteLength*2),n=new ArrayBuffer(t),r=new Uint8Array(n);r.set(this.uint8),this.internalBuffer=n,this.view=new DataView(this.internalBuffer),this.uint8=r}}}}));function Ge(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n.buffer}var Ke=n((()=>{}));function qe(){let e=self.MediaSource,t=self.ManagedMediaSource;return e==null?t:e}var Je=n((()=>{}));function Ye(){if(/(iPhone|iPod|iPad)/i.test(Qe)){var e;return Qe==null||(e=Qe.match(/OS [\d_]+/i))==null||(e=e[0])==null?void 0:e.substring(3).split(`_`).map(e=>parseInt(e,10))[0]}}function Xe(){if(/^((?!chrome|android).)*safari/i.test(Qe)){var e;return(e=Qe.match(/version\/([\d.]+)/))==null||(e=e[1])==null?void 0:e.split(`.`).map(e=>parseInt(e,10))[0]}}var Ze,Qe,$e,et,tt,nt,rt,it,at,ot,st,ct,lt,ut,dt,ft,pt=n((()=>{Je(),Ze=/(android|bb\d+|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,Qe=navigator.userAgent.toLowerCase(),$e=Ze.test(Qe),et=()=>{let e=document.createElement(`video`);return e.canPlayType(`application/vnd.apple.mpegURL`)!==``||e.canPlayType(`audio/mpegurl`)!==``},tt=()=>{try{if(typeof WebAssembly==`object`&&typeof WebAssembly.instantiate==`function`){let e=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(e instanceof WebAssembly.Module)return new WebAssembly.Instance(e)instanceof WebAssembly.Instance}}catch(e){return!1}return!1},nt=()=>Qe.indexOf(`CrKey`)!==-1,rt=()=>navigator.platform===`MacIntel`&&navigator.maxTouchPoints===0,it=()=>navigator.platform===`MacIntel`&&navigator.maxTouchPoints>1,at=()=>ot()||it()?!0:/AppleWebKit/i.test(navigator.userAgent)&&!/Chrome|Chromium|Edg|OPR|Opera/i.test(navigator.userAgent),ot=()=>Qe.indexOf(`iphone`)>=0&&Qe.indexOf(`like iphone`)<0||Qe.indexOf(`ipad`)>=0&&Qe.indexOf(`like ipad`)<0||Qe.indexOf(`ipod`)>=0&&Qe.indexOf(`like ipod`)<0||it(),st=()=>{var e,t;return it()||(e=(t=qe())==null?void 0:t.isTypeSupported(`audio/mp4; codecs="opus"`))==null?!1:e},ct=()=>/^(?!.*chrome).*safari/i.test(Qe),lt=e=>Number.isFinite(e)&&e!==2**53-1,ut=(e,t)=>lt(e.platform.safariVersion)&&e.platform.safariVersion>=t,dt=()=>typeof HTMLCanvasElement<`u`&&typeof HTMLCanvasElement.prototype.captureStream==`function`,ft=()=>{var e,t;let n=!!qe(),r=!1;return n&&(r=st()),{isMobile:$e,supportsMp4Opus:r,supportsMediaSource:n,supportsHls:et(),supportsWebAssembly:tt(),supportsCanvasCaptureStream:dt(),platform:{iosVersion:(e=Ye())==null?2**53-1:e,safariVersion:(t=Xe())==null?2**53-1:t,isIpadOS:it(),isMacOS:rt(),isIOS:ot(),isWebKit:at()}}}})),mt,ht,gt,_t,vt,yt,bt,xt,St,Ct,wt,Tt,Et,Dt,Ot,kt,At,jt,Mt,Nt,Pt,Ft,It,Lt=n((()=>{pt(),mt=e=>e,ht=e=>e,gt=e=>e,_t=e=>e,vt=e=>`orientation`in e?e.orientation:void 0,yt=(e=document)=>{let t=mt(e);return!!(e.fullscreenElement||e.fullscreen||t.mozFullScreen||t.webkitIsFullScreen)},bt=e=>{var t,n,r,i;let a=ht(e);return((t=e.requestFullscreen)==null?void 0:t.bind(e))||((n=a.webkitRequestFullscreen)==null?void 0:n.bind(a))||((r=a.webkitEnterFullscreen)==null?void 0:r.bind(a))||((i=a.mozRequestFullScreen)==null?void 0:i.bind(a))},xt=(e,t=document)=>{var n,r;let i=mt(t);return((n=t.exitFullscreen)==null?void 0:n.bind(t))||(i.webkitFullscreenElement&&i.webkitExitFullscreen?i.webkitExitFullscreen.bind(t):void 0)||(i.mozFullscreenElement&&i.mozCancelFullScreen?i.mozCancelFullScreen.bind(t):void 0)||(e?(r=ht(e).webkitExitFullscreen)==null?void 0:r.bind(e):void 0)},St=e=>!!bt(e),Ct=e=>{var t;let n=_t(e);return(t=n.requestPictureInPicture)==null?void 0:t.bind(n)},wt=(e=document)=>{var t;return(t=gt(e).exitPictureInPicture)==null?void 0:t.bind(e)},Tt=(e=document)=>!!gt(e).pictureInPictureEnabled,Et=(e=document)=>!!gt(e).pictureInPictureElement,Dt=(e,t=document)=>!!Ct(e)&&Tt(t),Ot=e=>e.pictureInPictureWindow,kt=e=>_t(e).webkitPresentationMode,At=(e,t)=>{var n,r;(n=(r=_t(e)).webkitSetPresentationMode)==null||n.call(r,t)},jt=e=>!!_t(e).webkitSetPresentationMode,Mt=(e,t)=>{if(t){e.setAttribute(`autopictureinpicture`,``);return}e.removeAttribute(`autopictureinpicture`)},Nt=(e=screen)=>{var t;let n=vt(e);return n==null||(t=n.lock)==null?void 0:t.bind(n)},Pt=(e,t=screen)=>{var n;return(n=Nt(t))==null?void 0:n(e)},Ft=(e=screen)=>{var t,n;(t=vt(e))==null||(n=t.unlock)==null||n.call(t)},It=e=>{if(!e.supportsCanvasCaptureStream)return!1;if(!e.platform.isIOS)return!0;let{iosVersion:t,safariVersion:n,isIpadOS:r}=e.platform;return lt(t)?t>=15:r&&lt(n)?n>=15:typeof VideoDecoder<`u`}})),Rt,zt=n((()=>{h(),Rt=class{constructor(e,t,n){m(this,`onSuccess`,void 0),m(this,`onError`,void 0),m(this,`doExecute`,void 0),this.doExecute=e,this.onSuccess=t,this.onError=n}execute(e){try{this.doExecute(e),this.onSuccess()}catch(e){this.onError(e)}}abort(e){this.onError(e)}}})),Bt,Vt,Ht,Ut,Wt,Gt=n((()=>{Bt=e=>e.reduce((e,t)=>e+t,0)/e.length,Vt=e=>{if(e.length<2)return;let t=0;for(let n=1;n<e.length;n++)t+=e[n]-e[n-1];return t/(e.length-1)},Ht=e=>{if(e.length===0)return NaN;let t=Math.floor(e.length/2),n=[...e].sort((e,t)=>e-t);return e.length%2==0?(n[t-1]+n[t])/2:n[t]},Ut=e=>({last:e[e.length-1]||0,average:e.length===0?0:Bt(e),max:e.length===0?0:Math.max(...e),min:e.length===0?0:Math.min(...e)}),Wt=e=>{let t=0,n=0,r=0,i=0,a=0;for(let o=0;o<e.length;o++){let{x:s,y:c}=e[o];t+=s,n+=c,r+=s*c,i+=s*s,a+=c*c}let o=(e.length*r-t*n)/(e.length*i-t*t),s=(n-o*t)/e.length;return{slope:o,intercept:s,r2:((e.length*r-t*n)/Math.sqrt((e.length*i-t*t)*(e.length*a-n*n)))**2,predict:t=>o*(e.length+t)+s}}})),Kt,qt=n((()=>{ce(),Gt(),h(),Kt=class{constructor(e=10){m(this,`rates`,void 0),m(this,`_total`,0),m(this,`accumulatedValues`,0),m(this,`lastTickTime`,performance.now()),m(this,`add`,e=>{this.accumulatedValues+=e,this._total+=e}),m(this,`tick`,()=>{let e=performance.now(),t=this.accumulatedValues/((e-this.lastTickTime)/1e3);this.rates.push(t),this.accumulatedValues=0,this.lastTickTime=e}),this.rates=new w(e)}get total(){return this._total}get average(){return this.rates.isEmpty()?0:Bt(this.rates.items())}get minMaxAverage(){return Ut(this.rates.items())}}})),Jt,Yt=n((()=>{Jt=5e3}));function Xt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function L(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Xt(Object(n),!0).forEach(function(t){m(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Xt(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var R=n((()=>{h()})),Zt,Qt=n((()=>{Zt=()=>{let e=navigator.connection;return{navigatorRtt:e==null?void 0:e.rtt,navigatorEffectiveType:e==null?void 0:e.effectiveType,navigatorConnectionType:e==null?void 0:e.type,navigatorSaveData:e==null?void 0:e.saveData,navigatorDownlink:e==null?void 0:e.downlink}}})),$t,en=n((()=>{$t=(e,t)=>{if(e===t)return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;let n=0,r=0;for(let t in e)n+=1;for(let n in t)if(r+=1,!(n in e)||!$t(e[n],t[n]))return!1;return n===r}})),tn,nn=n((()=>{h(),tn=class{constructor(){m(this,`listeners`,{})}emit(e,t){let n=this.listeners[e];if(n){let r=!1;for(let e=0;e<n.length;e++)if(n[e].once){r=!0;break}r&&(this.listeners[e]=n.filter(e=>!e.once));let i,a=n.length;for(let e=0;e<a;e++){let r=n[e].fn(t);typeof r==`function`&&(i||(i=[]),i.push(r))}if(i)for(let e=0;e<i.length;e++)i[e]()}}off(e,t){let n=this.listeners[e];n&&(this.listeners[e]=n.filter(e=>e.fn!==t))}on(e,t){this.add(e,t,!1)}once(e,t){this.add(e,t,!0)}hasListeners(e){let t=this.listeners[e];return t!==void 0&&t.length>0}reset(){this.listeners={}}add(e,t,n){let r=this.listeners[e],i={fn:t,once:n};r?r.push(i):this.listeners[e]=[i]}}})),rn,an=n((()=>{h(),rn=class extends Map{constructor(e){super(),m(this,`maxSize`,void 0),this.maxSize=e}get isFull(){return this.size>=this.maxSize}set(e,t){if(this.isFull&&!this.has(e)){let e=this.keys().next().value;e!==void 0&&this.delete(e)}return super.set(e,t)}}})),on,sn,cn,ln,un,dn,fn,pn=n((()=>{on=1e3,sn=on*1e3,cn=sn*1e3,ln=(e,t,n)=>e%t===0?e/t:(e/t).toFixed(n),un=(e,t=1)=>e>=cn?`${ln(e,cn,t)} Gbit/s`:e>=sn?`${ln(e,sn,t)} Mbit/s`:e>=on?`${ln(e,on,t)} Kbit/s`:`${e} bit/s`,dn=({width:e,height:t})=>`${e}x${t}`,fn=e=>e%1e3==0?`${e/1e3} kHz`:e>1e3?`${(e/1e3).toFixed(1)} kHz`:`${e} Hz`})),mn=n((()=>{})),hn,gn,_n,vn,yn,bn,xn,Sn,Cn=n((()=>{E(),h(),A(),M(),hn=[`off`,`error`,`warn`,`info`,`debug`,`trace`],gn={ERROR:`error`,WARN:`warn`,INFO:`info`,DEBUG:`debug`,TRACE:`trace`,OFF:`off`},_n=new WeakMap,vn=new WeakMap,yn=new WeakMap,bn=new WeakMap,xn=class e{constructor({context:e,logLevel:t,debug:n}){T(this,_n,new Map),T(this,vn,``),T(this,yn,!1),T(this,bn,`off`),m(this,`trace`,(...e)=>{}),m(this,`debug`,(...e)=>{}),m(this,`info`,(...e)=>{}),m(this,`warn`,(...e)=>{}),m(this,`error`,(...e)=>{}),m(this,`table`,(...e)=>{}),m(this,`count`,(...e)=>{}),k(vn,this,e),k(bn,this,t),k(yn,this,n||!1),this.setLevel(t),this.setDebug(j(yn,this))}setDebug(e){k(yn,this,e);for(let[t,n]of j(_n,this))n.setDebug(e);e?(this.table=console.table.bind(console),this.count=console.count.bind(console)):(this.table=()=>{},this.count=()=>{})}getLevel(){return j(bn,this)}setLevel(e){k(bn,this,e);for(let[t,n]of j(_n,this))n.setLevel(e);let t=hn.indexOf(e);for(let[e,n]of hn.entries())n!==`off`&&(e<=t?this[n]=console[n].bind(console,`%c%s %c%s`,`font-weight:bold;`,n.toUpperCase(),`font-weight:normal;`,j(vn,this)):this[n]=()=>{})}createContext(t){let n=j(_n,this).get(t);if(!n){let n=new e({context:`${t}`,logLevel:j(bn,this),debug:j(yn,this)});return j(_n,this).set(t,n),n}return n}static get(){return Sn._||(Sn._=new e({context:`Vindral`,logLevel:`off`})),Sn._}},Sn={_:void 0}}));function wn(){return typeof Symbol.asyncDispose!=`symbol`&&Object.defineProperty(Symbol,`asyncDispose`,{value:Symbol.for(`asyncDispose`)}),Symbol.asyncDispose}function Tn(){return typeof Symbol.dispose!=`symbol`&&Object.defineProperty(Symbol,`dispose`,{value:Symbol.for(`dispose`)}),Symbol.dispose}var En=n((()=>{}));function z(e,t){le(e,t),t.add(e)}var B=n((()=>{ue()}));function Dn(){this.unlocker.resolve(this.value)}var On,kn,An,jn,Mn,Nn,Pn,Fn=n((()=>{se(),oe(),En(),B(),h(),O(),E(),M(),A(),P(),An=new WeakSet,On=Tn(),kn=Symbol.dispose,jn=class{constructor(e,t){z(this,An),m(this,`value`,void 0),m(this,`unlocker`,void 0),this.value=e,this.unlocker=t}unlocked(){var e;return(e=this.unlocker)==null?void 0:e.promise}[On](){D(An,this,Dn).call(this)}[kn](){D(An,this,Dn).call(this)}},Mn=new WeakMap,Nn=new WeakMap,Pn=class{unsafeValue(){return j(Mn,this)}constructor(e){T(this,Mn,void 0),T(this,Nn,new C),k(Mn,this,e),j(Nn,this).resolve(e)}isLocked(){return j(Nn,this).pending}lock(){var e=this;return N(function*(){let t=new C;t.promise.then(t=>{k(Mn,e,t)}).catch(S);let n=j(Nn,e).promise.then(()=>t);return k(Nn,e,t),yield n,new jn(j(Mn,e),t)})()}}})),In=n((()=>{})),Ln=n((()=>{})),Rn=n((()=>{}));function zn(e,t){this.v=e,this.k=t}var Bn=n((()=>{}));function V(e){return new zn(e,0)}var Vn=n((()=>{Bn()}));function Hn(e){return function(){return new Un(e.apply(this,arguments))}}function Un(e){var t,n;function r(t,n){try{var a=e[t](n),o=a.value,s=o instanceof zn;Promise.resolve(s?o.v:o).then(function(n){if(s){var c=t===`return`?`return`:`next`;if(!o.k||n.done)return r(c,n);n=e[c](n).value}i(a.done?`return`:`normal`,n)},function(e){r(`throw`,e)})}catch(e){i(`throw`,e)}}function i(e,i){switch(e){case`return`:t.resolve({value:i,done:!0});break;case`throw`:t.reject(i);break;default:t.resolve({value:i,done:!1})}(t=t.next)?r(t.key,t.arg):n=null}this._invoke=function(e,i){return new Promise(function(a,o){var s={key:e,arg:i,resolve:a,reject:o,next:null};n?n=n.next=s:(t=n=s,r(e,i))})},typeof e.return!=`function`&&(this.return=void 0)}var Wn=n((()=>{Bn(),Un.prototype[typeof Symbol==`function`&&Symbol.asyncIterator||`@@asyncIterator`]=function(){return this},Un.prototype.next=function(e){return this._invoke(`next`,e)},Un.prototype.throw=function(e){return this._invoke(`throw`,e)},Un.prototype.return=function(e){return this._invoke(`return`,e)}}));function Gn(){for(let e of j(Yn,this))e()}var Kn,qn,Jn,Yn,Xn,Zn,Qn=n((()=>{se(),B(),E(),A(),M(),O(),P(),Vn(),Wn(),qn=new WeakMap,Jn=new WeakMap,Yn=new WeakMap,Xn=new WeakSet,Kn=Symbol.asyncIterator,Zn=class{constructor(e){z(this,Xn),T(this,qn,void 0),T(this,Jn,void 0),T(this,Yn,new Set),k(qn,this,e),k(Jn,this,new C)}isClosed(){var e;return!((e=j(Jn,this))!=null&&e.pending)}current(){return j(qn,this)}value(){var e;return[j(qn,this),(e=j(Jn,this))==null?void 0:e.promise]}update(e){var t;if(!((t=j(Jn,this))!=null&&t.pending))throw Error(`ObservableValue is closed`);k(qn,this,e instanceof Function?e(j(qn,this)):e),j(Jn,this).resolve(j(qn,this)),k(Jn,this,new C),D(Xn,this,Gn).call(this)}close(){var e;(e=j(Jn,this))==null||e.resolve(j(qn,this)),k(Jn,this,void 0),D(Xn,this,Gn).call(this)}waitFor(e){var t=this;return N(function*(){if(e(j(qn,t)))return j(qn,t);for(;;){let[n,r]=t.value();if(!r)throw Error(`ObservableValue was closed while waiting for condition`);let i=yield r;if(e(i))return i}})()}[Kn](){return this.values()}values(e){var t=this;return Hn(function*(){for(;;){var n;if(e!=null&&e.aborted)return;let[r,i]=t.value();if(yield r,!i||e!=null&&e.aborted)return;if(!e){yield V(i);continue}((n=j(Jn,t))==null?void 0:n.promise)===i&&(yield V(new Promise(n=>{let r=()=>{j(Yn,t).delete(r),e.removeEventListener(`abort`,r),n()};j(Yn,t).add(r),e.addEventListener(`abort`,r,{once:!0})})))}})()}}})),$n,er=n((()=>{R(),$n=(e,t)=>{let n=L({},e);return typeof n==`object`&&t.forEach(e=>{delete n[e]}),n}})),tr=n((()=>{})),nr=n((()=>{}));function rr(e,t,n){let r=t*.05,i=e*.035,a=Math.max(Math.round(Math.min(r,i)),16);return`${(n==null?void 0:n.max)==null?a:Math.min(a,n.max)}px`}var ir=n((()=>{})),ar,or,sr,cr,lr=n((()=>{h(),sr=class{constructor(e,t,n,r){m(this,`messageHandler`,void 0),m(this,`onMessage`,e=>{let{data:t}=e;((t==null?void 0:t.type)===`timeout`||(t==null?void 0:t.type)===`interval`)&&this.messageHandler(t)}),m(this,`setTimeout`,(e,t)=>{this.worker.postMessage({type:`set-timeout`,id:e,delay:t})}),m(this,`clearTimeout`,e=>{this.worker.postMessage({type:`clear-timeout`,id:e})}),m(this,`setInterval`,(e,t)=>{this.worker.postMessage({type:`set-interval`,id:e,delay:t})}),m(this,`clearInterval`,e=>{this.worker.postMessage({type:`clear-interval`,id:e})}),m(this,`unload`,()=>{this.worker.postMessage({type:`unload`}),this.worker.removeEventListener(`message`,this.onMessage),this.worker.removeEventListener(`error`,this.onFailure),this.worker.terminate(),URL.revokeObjectURL(this.workerUrl)}),this.worker=e,this.workerUrl=t,this.onFailure=r,this.worker.addEventListener(`message`,this.onMessage),this.worker.addEventListener(`error`,this.onFailure),this.messageHandler=n}},ar=sr,m(sr,`source`,`
2
2
  const timeouts = new Map();
3
3
  const intervals = new Map();
4
4
 
@@ -47,8 +47,8 @@
47
47
  break;
48
48
  }
49
49
  };
50
- `),m(or,`create`,(e,t)=>{if(typeof Worker>`u`||typeof Blob>`u`||typeof URL>`u`||typeof URL.createObjectURL!=`function`)return;let n;try{n=URL.createObjectURL(new Blob([ir.source],{type:`text/javascript`}));let r=new Worker(n);return new ir(r,n,e,t)}catch(e){n!==void 0&&URL.revokeObjectURL(n);return}}),sr=class{constructor({mode:e=`window`}={}){m(this,`pendingTimeouts`,new Map),m(this,`pendingIntervals`,new Map),m(this,`timeoutHandles`,new Map),m(this,`intervalHandles`,new Map),m(this,`nextHandle`,1),m(this,`workerBackend`,void 0),m(this,`requestedMode`,void 0),m(this,`isWorkerBackendUnavailable`,()=>this.requestedMode===`worker-preferred`&&this.workerBackend===void 0),m(this,`clearTimeout`,e=>{if(!this.pendingTimeouts.delete(e))return;if(this.workerBackend){this.workerBackend.clearTimeout(e);return}let t=this.timeoutHandles.get(e);t!==void 0&&(globalThis.clearTimeout(t),this.timeoutHandles.delete(e))}),m(this,`clearInterval`,e=>{if(!this.pendingIntervals.delete(e))return;if(this.workerBackend){this.workerBackend.clearInterval(e);return}let t=this.intervalHandles.get(e);t!==void 0&&(globalThis.clearInterval(t),this.intervalHandles.delete(e))}),m(this,`setTimeout`,(e,t,...n)=>{let r=this.nextHandle++;return this.pendingTimeouts.set(r,{callback:()=>e(...n),delay:t}),this.workerBackend?(this.workerBackend.setTimeout(r,t),r):(this.armNativeTimeout(r,t),r)}),m(this,`setInterval`,(e,t,...n)=>{let r=this.nextHandle++;return this.pendingIntervals.set(r,{callback:()=>e(...n),delay:t}),this.workerBackend?(this.workerBackend.setInterval(r,t),r):(this.armNativeInterval(r,t),r)}),m(this,`armNativeTimeout`,(e,t)=>{this.timeoutHandles.set(e,globalThis.setTimeout(()=>this.fireTimeout(e),t))}),m(this,`armNativeInterval`,(e,t)=>{this.intervalHandles.set(e,globalThis.setInterval(()=>this.fireInterval(e),t))}),m(this,`unload`,()=>{var e;this.pendingIntervals.forEach((e,t)=>this.clearInterval(t)),this.pendingTimeouts.forEach((e,t)=>this.clearTimeout(t)),(e=this.workerBackend)==null||e.unload(),this.workerBackend=void 0}),m(this,`fireTimeout`,e=>{let t=this.pendingTimeouts.get(e);t&&(this.pendingTimeouts.delete(e),this.timeoutHandles.delete(e),t.callback())}),m(this,`fireInterval`,e=>{var t;(t=this.pendingIntervals.get(e))==null||t.callback()}),m(this,`onWorkerFailure`,()=>{this.workerBackend!==void 0&&(this.workerBackend.unload(),this.workerBackend=void 0,this.pendingTimeouts.forEach((e,t)=>{this.armNativeTimeout(t,e.delay)}),this.pendingIntervals.forEach((e,t)=>{this.armNativeInterval(t,e.delay)}))}),m(this,`onWorkerFire`,e=>{if(e.type===`timeout`){this.fireTimeout(e.id);return}this.fireInterval(e.id)}),this.requestedMode=e,e===`worker-preferred`&&(this.workerBackend=or.create(this.onWorkerFire,this.onWorkerFailure))}},ar=sr,m(sr,`create`,(e={})=>new ar(e))})),lr,ur,dr,fr,pr,mr,hr=n((()=>{lr=(e,t=performance.now())=>{let n=e.length;if(n>0){let r=e[n-1];r.end||(r.end=t)}},ur=(e,t=performance.now())=>{lr(e,t),e.push({start:t})},dr=e=>e.reduce((e,t)=>{var n;return e+(((n=t.end)==null?performance.now():n)-t.start)},0),fr=(e,t,n=performance.now())=>e.reduce((e,r)=>{var i;let a=Math.max(n-t,r.start),o=(i=r.end)==null?n:i;return Math.max(0,o-a)+e},0),pr=(e,t,n,r)=>{let i=e[e.length-1];if(!i||t>=i.start){i&&t-r<=i.end?i.end=Math.max(i.end,n):e.push({start:t,end:n});return}let a=e.length;for(;a>0&&e[a-1].start>t;)a--;e.splice(a,0,{start:t,end:n});let o=0;for(let t=1;t<e.length;t++){let n=e[o],i=e[t];i.start-r<=n.end?n.end=Math.max(n.end,i.end):(o++,e[o]=i)}e.length=o+1},mr=(e,t)=>e.some(e=>e.start<=t&&t<e.end)}));function gr(e){try{return e()}catch(e){return e}}var _r=n((()=>{})),vr,yr=n((()=>{vr=e=>{try{return JSON.parse(e)}catch(e){return}}})),br=n((()=>{})),xr,Sr=n((()=>{ae(),h(),z(),xr=class{constructor(){var e;m(this,`highEntropyValues`,void 0),(e=self.navigator.userAgentData)==null||e.getHighEntropyValues([`architecture`,`model`,`platformVersion`,`fullVersionList`]).then(e=>{this.highEntropyValues=e}).catch(C)}getUserAgentInformation(){var e;let t=window.location.origin,n=!t||t===`null`?``:`${window.location.pathname}${window.location.search}`.substring(0,1e3),r={locationOrigin:window.location.origin,locationPath:n,ancestorOrigins:((e=window.location.ancestorOrigins)==null?void 0:e.length)>0?Array.from(window.location.ancestorOrigins):void 0,hardwareConcurrency:navigator.hardwareConcurrency,deviceMemory:navigator.deviceMemory};if(self.navigator.userAgentData&&this.highEntropyValues){var i,a,o,s,c;let e=[...(i=this.highEntropyValues.brands)==null?[]:i];e.sort((e,t)=>e.brand.localeCompare(t.brand));let t=[...(a=this.highEntropyValues.fullVersionList)==null?[]:a];t.sort((e,t)=>e.brand.localeCompare(t.brand));let n=t.map(e=>e.version),l=e.map(e=>e.brand),u=e.map(e=>e.version),d=parseInt((o=(s=this.highEntropyValues.platformVersion)==null?void 0:s.split(`.`)[0])==null?`1`:o,10);return R({userAgentLegacy:window.navigator.userAgent,ua:{browser:{brands:l,fullVersionBrands:n,majorVersions:u},device:this.highEntropyValues.model||`Other`,os:{family:this.highEntropyValues.platform||`Other`,version:(c=this.highEntropyValues.platformVersion)==null?`1`:c,major_version:Number.isFinite(d)?d:0}}},r)}else return R({userAgent:window.navigator.userAgent},r)}}})),Cr,wr=n((()=>{Cr=()=>{let e=[...Array(256).keys()].map(e=>e.toString(16).padStart(2,`0`)),t=crypto.getRandomValues(new Uint8Array(16));return t[6]=t[6]&15|64,t[8]=t[8]&63|128,[...t.entries()].map(([t,n])=>[4,6,8,10].includes(t)?`-${e[n]}`:e[n]).join(``)}})),Tr,Er,Dr=n((()=>{we(),F(),Tr=function(){var e=P(function*(e,t){return new Promise((n,r)=>{let i=setTimeout(()=>{a(),n()},e),a=xe(t,e=>{clearTimeout(i),r(ye(e))})})});return function(t,n){return e.apply(this,arguments)}}(),Er=function(){var e=P(function*(e,t=Error(`Timeout`)){return new Promise((n,r)=>setTimeout(()=>r(t),e))});return function(t){return e.apply(this,arguments)}}(),function(){var e=P(function*(e,t){throw yield e,Error(t)});return function(t,n){return e.apply(this,arguments)}}()})),U=n((()=>{ie(),ve(),we(),Ee(),Oe(),Ae(),Fe(),Ve(),Ue(),Ge(),ft(),ft(),It(),Le(),Rt(),Kt(),Jt(),oe(),Zt(),$t(),tn(),se(),rn(),fn(),pn(),qe(),Sn(),Pn(),Fn(),In(),Ln(),ae(),Zn(),$n(),er(),Wt(),tr(),rr(),Tn(),cr(),hr(),_r(),yr(),br(),Sr(),wr(),Dr()}));U(),h(),F();var Or=class extends en{constructor(e){super(),m(this,`config`,void 0),m(this,`hlsUrl`,void 0),m(this,`element`,void 0),m(this,`connectingTimeout`,void 0),m(this,`castingAvailable`,!1),m(this,`updateAuthenticationToken`,e=>{this.config.authenticationToken=e,this.hlsUrl=this.getHlsUrl(),this.castingAvailable&&(this.element.src=this.hlsUrl)}),m(this,`unload`,()=>{this.element&&(this.element.removeEventListener(`webkitplaybacktargetavailabilitychanged`,this.onAirPlayAvailable),this.element.removeEventListener(`webkitcurrentplaybacktargetiswirelesschanged`,this.onAirPlayPlaybackChanged),this.element.remove())}),m(this,`onAirPlayAvailable`,e=>{switch(e.availability){case`available`:this.castingAvailable=!0,this.element.src!==this.hlsUrl&&this.checkHlsUrl(this.hlsUrl).then(e=>{e&&(this.element.src=this.hlsUrl,this.emit(`available`))});break;case`not-available`:this.castingAvailable=!1;break;default:break}}),m(this,`onAirPlayPlaybackChanged`,()=>{window.clearTimeout(this.connectingTimeout),this.element.webkitCurrentPlaybackTargetIsWireless?(this.emit(`connected`),this.element.style.display=`block`,this.element.paused&&this.element.play().catch(C)):(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(){`webkitShowPlaybackTargetPicker`in this.element&&this.castingAvailable&&(this.element.paused&&(this.element.play().catch(C),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(){let 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 P(function*(){try{return(yield fetch(e,{method:`HEAD`})).ok}catch(e){return!1}})()}};U(),h(),F();var kr=1e4,Ar=`CastSender was unloaded before the Google Cast SDK finished initializing`,jr=class extends en{constructor(e){var t;super(),t=this,m(this,`state`,`not casting`),m(this,`config`,void 0),m(this,`unloaded`,!1),m(this,`logger`,bn.get().createContext(`CastSender`)),m(this,`devicesAvailable`,void 0),m(this,`updateAuthenticationToken`,e=>{this.config&&(this.config.options.authenticationToken=e,this.send({type:`updateAuthToken`,token:e}))}),m(this,`unload`,()=>{var e;this.unloaded=!0,(e=this.getSession())==null||e.removeMessageListener(`urn:x-cast:com.vindral.castdata`,this.onMessage),this.devicesAvailable&&this.emit(`devices available`,!1),this.devicesAvailable=void 0}),m(this,`init`,P(function*(){return new Promise((e,n)=>{let r=!1,i=setTimeout(()=>{r=!0,n(Error(`Timed out after ${kr} ms waiting for the Google Cast SDK`))},kr);window.__onGCastApiAvailable=a=>{if(clearTimeout(i),t.unloaded)return n(Error(Ar));if(!a)return n(Error(`The Google Cast SDK reported the Cast API as unavailable`));setTimeout(()=>{if(t.unloaded)return n(Error(Ar));try{t.onGCastApiAvailable(),e()}catch(e){let i=e instanceof Error?e:Error(String(e));r&&t.logger.warn(`Late Google Cast SDK initialization failed`,i),n(i)}},1e3)},t.castLibrariesAdded()&&window.cast?window.__onGCastApiAvailable(!0):t.verifyCastLibraries()})})),m(this,`start`,P(function*(){var e;yield(e=t.getInstance())==null?void 0:e.requestSession()})),m(this,`stop`,()=>{var e;(e=this.getSession())==null||e.endSession(!0)}),m(this,`getReceiverName`,()=>{var e;return((e=this.getSession())==null||(e=e.getCastDevice())==null?void 0:e.friendlyName)||void 0}),m(this,`onGCastApiAvailable`,()=>{var e;let t=this.getInstance();if(!t)throw`cast context should exist`;let n=t.getSessionState(),r=((e=this.config)==null?void 0:e.receiverApplicationId)||`A5452297`;t.setOptions({receiverApplicationId:r,autoJoinPolicy:chrome.cast.AutoJoinPolicy.TAB_AND_ORIGIN_SCOPED,resumeSavedSession:!0}),t.addEventListener(cast.framework.CastContextEventType.SESSION_STATE_CHANGED,this.onSessionStateChanged),t.addEventListener(cast.framework.CastContextEventType.CAST_STATE_CHANGED,this.onCastStateChanged),this.updateDevicesAvailable(t.getCastState()),n===cast.framework.SessionState.SESSION_STARTED&&setTimeout(()=>{this.state=`casting`,this.emit(`resumed`)})}),m(this,`send`,e=>{var t;(t=this.getSession())==null||t.sendMessage(`urn:x-cast:com.vindral.castdata`,e)}),m(this,`onMessage`,(e,t)=>{if(e===`urn:x-cast:com.vindral.castdata`)try{let e=JSON.parse(t);switch(e.type){case`metadata`:this.emit(`metadata`,e.metadata);break;case`serverWallclockTime`:this.emit(`server wallclock time`,e.serverWallclockTime);break;default:break}}catch(e){}}),m(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})}),m(this,`onCastStateChanged`,e=>{this.unloaded||this.updateDevicesAvailable(e.castState)}),m(this,`updateDevicesAvailable`,e=>{let t=e!==cast.framework.CastState.NO_DEVICES_AVAILABLE;t!==this.devicesAvailable&&(this.devicesAvailable=t,this.emit(`devices available`,t))}),m(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;default:break}}),m(this,`getInstance`,()=>{var e;return(e=window.cast)==null?void 0:e.framework.CastContext.getInstance()}),m(this,`getSession`,()=>{var e;return(e=this.getInstance())==null?void 0:e.getCurrentSession()}),m(this,`castLibrariesAdded`,()=>!!(document.querySelector(`#vindralCastFrameworkLib`)&&document.querySelector(`#vindralCastSenderLib`))),m(this,`verifyCastLibraries`,()=>{if(this.castLibrariesAdded())return;let 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);let 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(e=(t=this.getSession())==null?void 0:t.getVolume())==null?0:e}set volume(e){var t;(t=this.getSession())==null||t.setVolume(e)}get language(){var e;return(e=this.config)==null||(e=e.options)==null?void 0:e.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}))}},Mr=e=>{switch(e){case`h264`:case`h265`:case`av1`:return`video`;case`aac`:case`opus`:case`mp3`:return`audio`;case`webvtt`:return`text`;default:throw Error(`Unknown codec`)}};function Nr(e){if(e.startsWith(`opus`))return`opus`;if(e.startsWith(`mp4a`))return`aac`;if(e.startsWith(`avc1`))return`h264`;if(e.startsWith(`hvc1`)||e.startsWith(`hev1`))return`h265`;if(e.startsWith(`av01`))return`av1`;if(e.startsWith(`webvtt`))return`webvtt`}U();function Pr(e){return!(typeof e.edges[0]==`string`||e.channels[0]&&!(`catalog`in e.channels[0]))}function Fr(e){return e.tracks.filter(e=>!!e.codec).filter(e=>Nr(e.codec||``)).map((e,t)=>{let n=e.codec,r=e.bitrate;Te(n,`codec is required`),Te(r!==void 0,`bitrate is required`);let i=Nr(n);if(Te(i,`codec is required`),Mr(i)===`audio`){let a=e.samplerate||0;return{track:e,id:t,codec:i,codecString:n,bitRate:r,channels:e.channelConfig===`stereo`?2:1,sampleRate:a,language:e.language}}return Mr(i)===`text`?{track:e,id:t,bitRate:0,codec:i,kind:`subtitles`,codecString:n,label:e.label,language:e.language}:(Te(e.width,`width is required`),Te(e.height,`width is required`),Te(e.framerate,`framerate is required`),{track:e,id:t,codec:i,bitRate:r,codecString:n,width:e.width,height:e.height,frameRate:e.framerate})}).sort((e,t)=>e.bitRate-t.bitRate)}var Ir=e=>`width`in e&&typeof e.width==`number`,Lr=e=>`sampleRate`in e&&typeof e.sampleRate==`number`,Rr=e=>{switch(e.codec){case`opus`:return`audio/mp4; codecs="opus"`;case`mp3`:return`audio/mpeg`;case`webvtt`:return`text/vtt`;case`aac`:return e.codecString?`audio/mp4; codecs="${e.codecString}"`:`audio/mp4`;case`h264`:case`h265`:return e.codecString?`video/mp4; codecs="${e.codecString}"`:`video/mp4`;case`av1`:return e.codecString?`video/mp4; codecs="${e.codecString}"`:`video/mp4`}},zr=()=>2**53-1,Br=()=>({width:2**53-1,height:2**53-1}),Vr=e=>!(typeof e!=`object`||!e||!(`type`in e));U();var Hr={sizeBasedResolutionCapEnabled:!0,pictureInPictureEnabled:!0,abrEnabled:!0,burstEnabled:!0,mseEnabled:!0,mseOpusEnabled:!0,muted:!1,volume:1,minBufferTime:1500,maxBufferTime:1500,logLevel:hn.OFF,maxSize:Br(),maxVideoBitRate:zr(),maxAudioBitRate:zr(),maxInitialBitRate:2.5*1e3*1e3,tags:[],media:`audio+video`,poster:!0,reconnectHandler:e=>e.reconnectRetries<30,iosWakeLockEnabled:!1,backgroundPlayEnabled:!0,mediaSessionEnabled:!0,telemetryEnabled:!0,streamToMediaElementEnabled:!1,iosMediaElementEnabled:!1,pauseSupportEnabled:!0,webcodecsHardwareAcceleration:`no-preference`,offscreenCanvasEnabled:void 0,advanced:{},videoCodecs:[`av1`,`h264`,`h265`],webtransportEnabled:!0};function Ur(e){return typeof e==`function`?this.then(t=>Promise.resolve(e()).then(()=>t),t=>Promise.resolve(e()).then(()=>{throw t})):this.then()}function Wr(e=Promise){return typeof e.prototype.finally!=`function`&&Object.defineProperty(e.prototype,`finally`,{configurable:!0,enumerable:!1,value:Ur,writable:!0}),e.prototype.finally}Wr();var Gr=e=>{e.width=320,e.height=180,e.style.width=`100%`,e.style.position=`relative`,e.style.backgroundColor=`#000`};V(),D(),h(),z(),N(),j(),k();var Kr={backgroundColor:`rgba(0,0,0,0.6)`,textPadding:8,fontSize:`28px`,lineGap:16},qr=new WeakMap,Jr=new WeakMap,Yr=new WeakMap,Xr=new WeakMap,Zr=new WeakSet,Qr=class{constructor(){B(this,Zr),E(this,qr,[]),E(this,Jr,document.createElement(`canvas`)),E(this,Yr,void 0),E(this,Xr,window.devicePixelRatio||1),m(this,`config`,R({},Kr));let e=M(Jr,this).getContext(`2d`,{alpha:!0});if(!e)throw Error(`Failed to create 2d context`);A(Yr,this,e),O(Zr,this,ei).call(this)}get canvas(){return M(Jr,this)}setActiveCues(e){A(qr,this,e)}render(e,t=!1){let n=M(qr,this).flatMap(t=>t.text.split(`
51
- `).flatMap(t=>O(Zr,this,ti).call(this,t,e.width)).filter(e=>e.length>0).map(e=>{O(Zr,this,ei).call(this);let t=M(Yr,this).measureText(e);return{text:e,measurement:t,size:{height:t.fontBoundingBoxAscent+t.fontBoundingBoxDescent+this.config.textPadding*2,width:t.width+this.config.textPadding*2}}}));if(n.length===0){O(Zr,this,$r).call(this,0,0),M(Yr,this).clearRect(0,0,M(Jr,this).width,M(Jr,this).height);return}let r=Math.max(...n.map(e=>e.size.width)),i=n.reduce((e,{size:t})=>e+t.height,0)+(n.length-1)*this.config.lineGap,a=0;O(Zr,this,$r).call(this,r,i),M(Yr,this).clearRect(0,0,M(Jr,this).width,M(Jr,this).height);for(let{size:e,text:t}of n)O(Zr,this,ei).call(this),M(Yr,this).fillStyle=this.config.backgroundColor,M(Yr,this).fillRect(0,a,e.width,e.height),O(Zr,this,ei).call(this),M(Yr,this).fillText(t,this.config.textPadding,a+this.config.textPadding),a+=e.height+this.config.lineGap;t&&(M(Yr,this).strokeStyle=`red`,M(Yr,this).strokeRect(0,0,e.width,M(Jr,this).height))}};function $r(e,t){M(Jr,this).width=e*M(Xr,this),M(Jr,this).height=t*M(Xr,this),M(Yr,this).setTransform(M(Xr,this),0,0,M(Xr,this),0,0),this.canvas.style.width=`${e}px`,this.canvas.style.height=`${t}px`}function ei(){M(Yr,this).fillStyle=`white`,M(Yr,this).textAlign=`left`,M(Yr,this).textBaseline=`top`,M(Yr,this).font=`${this.config.fontSize} sans-serif`}function ti(e,t){let n=[],r=e.split(` `),i=``;for(;r.length>0;){O(Zr,this,ei).call(this);let e=0;for(;M(Yr,this).measureText(i+(i.length>0?` `:``)+r[0]).width+this.config.textPadding*2<=t&&r.length>0;)e++,i+=(i.length>0?` `:``)+r.shift();if(e===0){n.push(r.shift()||``),i=``;continue}n.push(i),i=``}return n}function ni(e){var t;let{subtitleWidth:n,subtitleHeight:r,canvasWidth:i,canvasHeight:a,containerWidth:o,bottomPadding:s}=e,c=(t=e.baseMargin)==null?20:t,l=i/o,u=n*l,d=r*l;return{drawWidth:u,drawHeight:d,x:(i-u)/2,y:a-d-(s+c)*l}}function ri(e,t,n){return{scaleX:2*e.drawWidth/t,scaleY:2*e.drawHeight/n,translateX:2*e.x/t-1,translateY:1-2*e.y/n}}U(),h();var ii={width:256,height:144},ai=class extends en{constructor(){super(),m(this,`canvas`,document.createElement(`canvas`)),m(this,`context`,null),m(this,`size`,ii),m(this,`hasWarnedNoVideoFrame`,!1),m(this,`subtitleRenderer`,null),m(this,`hasActiveSubtitles`,!1),m(this,`load`,()=>{if(this.hasWarnedNoVideoFrame=!1,this.context=this.canvas.getContext(`2d`,{alpha:!1,desynchronized:!0}),!this.context)throw Error(`Failed to get 2D rendering context`);this.setSize(ii)}),m(this,`unload`,()=>{this.context=null,this.subtitleRenderer=null,this.hasActiveSubtitles=!1,this.setSize(ii)}),m(this,`setActiveCues`,(e,t)=>{this.subtitleRenderer||(this.subtitleRenderer=new Qr),this.subtitleRenderer.config.fontSize=nr(t.width,t.height),this.subtitleRenderer.setActiveCues(e),this.subtitleRenderer.render(t),this.hasActiveSubtitles=e.some(e=>e.text.length>0)}),m(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}let n=e.videoFrame;this.setSize({width:e.width,height:e.height});try{this.context.drawImage(n,0,0,this.canvas.width,this.canvas.height),this.renderSubtitles(t)}catch(e){this.emit(`context lost`,e instanceof Error?e:Error(`Failed to render VideoFrame`))}}),m(this,`renderSubtitles`,e=>{if(!this.hasActiveSubtitles||!this.subtitleRenderer||!this.context)return;let t=this.subtitleRenderer.canvas;if(t.width===0||t.height===0)return;let n=window.devicePixelRatio||1,r=this.canvas.clientWidth||this.canvas.width,i=ni({subtitleWidth:t.width/n,subtitleHeight:t.height/n,canvasWidth:this.canvas.width,canvasHeight:this.canvas.height,containerWidth:r,bottomPadding:e});this.context.drawImage(t,i.x,i.y,i.drawWidth,i.drawHeight)}),m(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)))}),Gr(this.canvas)}},oi=`
50
+ `),m(sr,`create`,(e,t)=>{if(typeof Worker>`u`||typeof Blob>`u`||typeof URL>`u`||typeof URL.createObjectURL!=`function`)return;let n;try{n=URL.createObjectURL(new Blob([ar.source],{type:`text/javascript`}));let r=new Worker(n);return new ar(r,n,e,t)}catch(e){n!==void 0&&URL.revokeObjectURL(n);return}}),cr=class{constructor({mode:e=`window`}={}){m(this,`pendingTimeouts`,new Map),m(this,`pendingIntervals`,new Map),m(this,`timeoutHandles`,new Map),m(this,`intervalHandles`,new Map),m(this,`nextHandle`,1),m(this,`workerBackend`,void 0),m(this,`requestedMode`,void 0),m(this,`isWorkerBackendUnavailable`,()=>this.requestedMode===`worker-preferred`&&this.workerBackend===void 0),m(this,`clearTimeout`,e=>{if(!this.pendingTimeouts.delete(e))return;if(this.workerBackend){this.workerBackend.clearTimeout(e);return}let t=this.timeoutHandles.get(e);t!==void 0&&(globalThis.clearTimeout(t),this.timeoutHandles.delete(e))}),m(this,`clearInterval`,e=>{if(!this.pendingIntervals.delete(e))return;if(this.workerBackend){this.workerBackend.clearInterval(e);return}let t=this.intervalHandles.get(e);t!==void 0&&(globalThis.clearInterval(t),this.intervalHandles.delete(e))}),m(this,`setTimeout`,(e,t,...n)=>{let r=this.nextHandle++;return this.pendingTimeouts.set(r,{callback:()=>e(...n),delay:t}),this.workerBackend?(this.workerBackend.setTimeout(r,t),r):(this.armNativeTimeout(r,t),r)}),m(this,`setInterval`,(e,t,...n)=>{let r=this.nextHandle++;return this.pendingIntervals.set(r,{callback:()=>e(...n),delay:t}),this.workerBackend?(this.workerBackend.setInterval(r,t),r):(this.armNativeInterval(r,t),r)}),m(this,`armNativeTimeout`,(e,t)=>{this.timeoutHandles.set(e,globalThis.setTimeout(()=>this.fireTimeout(e),t))}),m(this,`armNativeInterval`,(e,t)=>{this.intervalHandles.set(e,globalThis.setInterval(()=>this.fireInterval(e),t))}),m(this,`unload`,()=>{var e;this.pendingIntervals.forEach((e,t)=>this.clearInterval(t)),this.pendingTimeouts.forEach((e,t)=>this.clearTimeout(t)),(e=this.workerBackend)==null||e.unload(),this.workerBackend=void 0}),m(this,`fireTimeout`,e=>{let t=this.pendingTimeouts.get(e);t&&(this.pendingTimeouts.delete(e),this.timeoutHandles.delete(e),t.callback())}),m(this,`fireInterval`,e=>{var t;(t=this.pendingIntervals.get(e))==null||t.callback()}),m(this,`onWorkerFailure`,()=>{this.workerBackend!==void 0&&(this.workerBackend.unload(),this.workerBackend=void 0,this.pendingTimeouts.forEach((e,t)=>{this.armNativeTimeout(t,e.delay)}),this.pendingIntervals.forEach((e,t)=>{this.armNativeInterval(t,e.delay)}))}),m(this,`onWorkerFire`,e=>{if(e.type===`timeout`){this.fireTimeout(e.id);return}this.fireInterval(e.id)}),this.requestedMode=e,e===`worker-preferred`&&(this.workerBackend=sr.create(this.onWorkerFire,this.onWorkerFailure))}},or=cr,m(cr,`create`,(e={})=>new or(e))})),ur,dr,fr,pr,mr,hr,gr=n((()=>{ur=(e,t=performance.now())=>{let n=e.length;if(n>0){let r=e[n-1];r.end||(r.end=t)}},dr=(e,t=performance.now())=>{ur(e,t),e.push({start:t})},fr=e=>e.reduce((e,t)=>{var n;return e+(((n=t.end)==null?performance.now():n)-t.start)},0),pr=(e,t,n=performance.now())=>e.reduce((e,r)=>{var i;let a=Math.max(n-t,r.start),o=(i=r.end)==null?n:i;return Math.max(0,o-a)+e},0),mr=(e,t,n,r)=>{let i=e[e.length-1];if(!i||t>=i.start){i&&t-r<=i.end?i.end=Math.max(i.end,n):e.push({start:t,end:n});return}let a=e.length;for(;a>0&&e[a-1].start>t;)a--;e.splice(a,0,{start:t,end:n});let o=0;for(let t=1;t<e.length;t++){let n=e[o],i=e[t];i.start-r<=n.end?n.end=Math.max(n.end,i.end):(o++,e[o]=i)}e.length=o+1},hr=(e,t)=>e.some(e=>e.start<=t&&t<e.end)}));function _r(e){try{return e()}catch(e){return e}}var vr=n((()=>{})),yr,br=n((()=>{yr=e=>{try{return JSON.parse(e)}catch(e){return}}})),xr=n((()=>{})),Sr,Cr=n((()=>{oe(),h(),R(),Sr=class{constructor(){var e;m(this,`highEntropyValues`,void 0),(e=self.navigator.userAgentData)==null||e.getHighEntropyValues([`architecture`,`model`,`platformVersion`,`fullVersionList`]).then(e=>{this.highEntropyValues=e}).catch(S)}getUserAgentInformation(){var e;let t=window.location.origin,n=!t||t===`null`?``:`${window.location.pathname}${window.location.search}`.substring(0,1e3),r={locationOrigin:window.location.origin,locationPath:n,ancestorOrigins:((e=window.location.ancestorOrigins)==null?void 0:e.length)>0?Array.from(window.location.ancestorOrigins):void 0,hardwareConcurrency:navigator.hardwareConcurrency,deviceMemory:navigator.deviceMemory};if(self.navigator.userAgentData&&this.highEntropyValues){var i,a,o,s,c;let e=[...(i=this.highEntropyValues.brands)==null?[]:i];e.sort((e,t)=>e.brand.localeCompare(t.brand));let t=[...(a=this.highEntropyValues.fullVersionList)==null?[]:a];t.sort((e,t)=>e.brand.localeCompare(t.brand));let n=t.map(e=>e.version),l=e.map(e=>e.brand),u=e.map(e=>e.version),d=parseInt((o=(s=this.highEntropyValues.platformVersion)==null?void 0:s.split(`.`)[0])==null?`1`:o,10);return L({userAgentLegacy:window.navigator.userAgent,ua:{browser:{brands:l,fullVersionBrands:n,majorVersions:u},device:this.highEntropyValues.model||`Other`,os:{family:this.highEntropyValues.platform||`Other`,version:(c=this.highEntropyValues.platformVersion)==null?`1`:c,major_version:Number.isFinite(d)?d:0}}},r)}else return L({userAgent:window.navigator.userAgent},r)}}})),wr,Tr=n((()=>{wr=()=>{let e=[...Array(256).keys()].map(e=>e.toString(16).padStart(2,`0`)),t=crypto.getRandomValues(new Uint8Array(16));return t[6]=t[6]&15|64,t[8]=t[8]&63|128,[...t.entries()].map(([t,n])=>[4,6,8,10].includes(t)?`-${e[n]}`:e[n]).join(``)}})),Er,Dr,Or=n((()=>{Te(),P(),Er=function(){var e=N(function*(e,t){return new Promise((n,r)=>{let i=setTimeout(()=>{a(),n()},e),a=Se(t,e=>{clearTimeout(i),r(be(e))})})});return function(t,n){return e.apply(this,arguments)}}(),Dr=function(){var e=N(function*(e,t=Error(`Timeout`)){return new Promise((n,r)=>setTimeout(()=>r(t),e))});return function(t){return e.apply(this,arguments)}}(),function(){var e=N(function*(e,t){throw yield e,Error(t)});return function(t,n){return e.apply(this,arguments)}}()})),H=n((()=>{ae(),ye(),Te(),De(),ke(),je(),Ie(),He(),We(),Ke(),pt(),pt(),Lt(),Re(),zt(),qt(),Yt(),se(),Qt(),en(),nn(),ce(),an(),pn(),mn(),Je(),Cn(),Fn(),In(),Ln(),Rn(),oe(),Qn(),er(),tr(),Gt(),nr(),ir(),En(),lr(),gr(),vr(),br(),xr(),Cr(),Tr(),Or()}));H(),h(),P();var kr=class extends tn{constructor(e){super(),m(this,`config`,void 0),m(this,`hlsUrl`,void 0),m(this,`element`,void 0),m(this,`connectingTimeout`,void 0),m(this,`castingAvailable`,!1),m(this,`updateAuthenticationToken`,e=>{this.config.authenticationToken=e,this.hlsUrl=this.getHlsUrl(),this.castingAvailable&&(this.element.src=this.hlsUrl)}),m(this,`unload`,()=>{this.element&&(this.element.removeEventListener(`webkitplaybacktargetavailabilitychanged`,this.onAirPlayAvailable),this.element.removeEventListener(`webkitcurrentplaybacktargetiswirelesschanged`,this.onAirPlayPlaybackChanged),this.element.remove())}),m(this,`onAirPlayAvailable`,e=>{switch(e.availability){case`available`:this.castingAvailable=!0,this.element.src!==this.hlsUrl&&this.checkHlsUrl(this.hlsUrl).then(e=>{e&&(this.element.src=this.hlsUrl,this.emit(`available`))});break;case`not-available`:this.castingAvailable=!1;break;default:break}}),m(this,`onAirPlayPlaybackChanged`,()=>{window.clearTimeout(this.connectingTimeout),this.element.webkitCurrentPlaybackTargetIsWireless?(this.emit(`connected`),this.element.style.display=`block`,this.element.paused&&this.element.play().catch(S)):(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(){`webkitShowPlaybackTargetPicker`in this.element&&this.castingAvailable&&(this.element.paused&&(this.element.play().catch(S),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(){let 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 N(function*(){try{return(yield fetch(e,{method:`HEAD`})).ok}catch(e){return!1}})()}};H(),h(),P();var Ar=1e4,jr=`CastSender was unloaded before the Google Cast SDK finished initializing`,Mr=class extends tn{constructor(e){var t;super(),t=this,m(this,`state`,`not casting`),m(this,`config`,void 0),m(this,`unloaded`,!1),m(this,`logger`,xn.get().createContext(`CastSender`)),m(this,`devicesAvailable`,void 0),m(this,`updateAuthenticationToken`,e=>{this.config&&(this.config.options.authenticationToken=e,this.send({type:`updateAuthToken`,token:e}))}),m(this,`unload`,()=>{var e;this.unloaded=!0,(e=this.getSession())==null||e.removeMessageListener(`urn:x-cast:com.vindral.castdata`,this.onMessage),this.devicesAvailable&&this.emit(`devices available`,!1),this.devicesAvailable=void 0}),m(this,`init`,N(function*(){return new Promise((e,n)=>{let r=!1,i=setTimeout(()=>{r=!0,n(Error(`Timed out after ${Ar} ms waiting for the Google Cast SDK`))},Ar);window.__onGCastApiAvailable=a=>{if(clearTimeout(i),t.unloaded)return n(Error(jr));if(!a)return n(Error(`The Google Cast SDK reported the Cast API as unavailable`));setTimeout(()=>{if(t.unloaded)return n(Error(jr));try{t.onGCastApiAvailable(),e()}catch(e){let i=e instanceof Error?e:Error(String(e));r&&t.logger.warn(`Late Google Cast SDK initialization failed`,i),n(i)}},1e3)},t.castLibrariesAdded()&&window.cast?window.__onGCastApiAvailable(!0):t.verifyCastLibraries()})})),m(this,`start`,N(function*(){var e;yield(e=t.getInstance())==null?void 0:e.requestSession()})),m(this,`stop`,()=>{var e;(e=this.getSession())==null||e.endSession(!0)}),m(this,`getReceiverName`,()=>{var e;return((e=this.getSession())==null||(e=e.getCastDevice())==null?void 0:e.friendlyName)||void 0}),m(this,`onGCastApiAvailable`,()=>{var e;let t=this.getInstance();if(!t)throw`cast context should exist`;let n=t.getSessionState(),r=((e=this.config)==null?void 0:e.receiverApplicationId)||`A5452297`;t.setOptions({receiverApplicationId:r,autoJoinPolicy:chrome.cast.AutoJoinPolicy.TAB_AND_ORIGIN_SCOPED,resumeSavedSession:!0}),t.addEventListener(cast.framework.CastContextEventType.SESSION_STATE_CHANGED,this.onSessionStateChanged),t.addEventListener(cast.framework.CastContextEventType.CAST_STATE_CHANGED,this.onCastStateChanged),this.updateDevicesAvailable(t.getCastState()),n===cast.framework.SessionState.SESSION_STARTED&&setTimeout(()=>{this.state=`casting`,this.emit(`resumed`)})}),m(this,`send`,e=>{var t;(t=this.getSession())==null||t.sendMessage(`urn:x-cast:com.vindral.castdata`,e)}),m(this,`onMessage`,(e,t)=>{if(e===`urn:x-cast:com.vindral.castdata`)try{let e=JSON.parse(t);switch(e.type){case`metadata`:this.emit(`metadata`,e.metadata);break;case`serverWallclockTime`:this.emit(`server wallclock time`,e.serverWallclockTime);break;default:break}}catch(e){}}),m(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})}),m(this,`onCastStateChanged`,e=>{this.unloaded||this.updateDevicesAvailable(e.castState)}),m(this,`updateDevicesAvailable`,e=>{let t=e!==cast.framework.CastState.NO_DEVICES_AVAILABLE;t!==this.devicesAvailable&&(this.devicesAvailable=t,this.emit(`devices available`,t))}),m(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;default:break}}),m(this,`getInstance`,()=>{var e;return(e=window.cast)==null?void 0:e.framework.CastContext.getInstance()}),m(this,`getSession`,()=>{var e;return(e=this.getInstance())==null?void 0:e.getCurrentSession()}),m(this,`castLibrariesAdded`,()=>!!(document.querySelector(`#vindralCastFrameworkLib`)&&document.querySelector(`#vindralCastSenderLib`))),m(this,`verifyCastLibraries`,()=>{if(this.castLibrariesAdded())return;let 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);let 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(e=(t=this.getSession())==null?void 0:t.getVolume())==null?0:e}set volume(e){var t;(t=this.getSession())==null||t.setVolume(e)}get language(){var e;return(e=this.config)==null||(e=e.options)==null?void 0:e.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}))}},Nr=e=>{switch(e){case`h264`:case`h265`:case`av1`:return`video`;case`aac`:case`opus`:case`mp3`:return`audio`;case`webvtt`:return`text`;default:throw Error(`Unknown codec`)}};function Pr(e){if(e.startsWith(`opus`))return`opus`;if(e.startsWith(`mp4a`))return`aac`;if(e.startsWith(`avc1`))return`h264`;if(e.startsWith(`hvc1`)||e.startsWith(`hev1`))return`h265`;if(e.startsWith(`av01`))return`av1`;if(e.startsWith(`webvtt`))return`webvtt`}H();function Fr(e){return!(typeof e.edges[0]==`string`||e.channels[0]&&!(`catalog`in e.channels[0]))}function Ir(e){return e.tracks.filter(e=>!!e.codec).filter(e=>Pr(e.codec||``)).map((e,t)=>{let n=e.codec,r=e.bitrate;Ee(n,`codec is required`),Ee(r!==void 0,`bitrate is required`);let i=Pr(n);if(Ee(i,`codec is required`),Nr(i)===`audio`){let a=e.samplerate||0;return{track:e,id:t,codec:i,codecString:n,bitRate:r,channels:e.channelConfig===`stereo`?2:1,sampleRate:a,language:e.language}}return Nr(i)===`text`?{track:e,id:t,bitRate:0,codec:i,kind:`subtitles`,codecString:n,label:e.label,language:e.language}:(Ee(e.width,`width is required`),Ee(e.height,`width is required`),Ee(e.framerate,`framerate is required`),{track:e,id:t,codec:i,bitRate:r,codecString:n,width:e.width,height:e.height,frameRate:e.framerate})}).sort((e,t)=>e.bitRate-t.bitRate)}var Lr=e=>`width`in e&&typeof e.width==`number`,Rr=e=>`sampleRate`in e&&typeof e.sampleRate==`number`,zr=e=>{switch(e.codec){case`opus`:return`audio/mp4; codecs="opus"`;case`mp3`:return`audio/mpeg`;case`webvtt`:return`text/vtt`;case`aac`:return e.codecString?`audio/mp4; codecs="${e.codecString}"`:`audio/mp4`;case`h264`:case`h265`:return e.codecString?`video/mp4; codecs="${e.codecString}"`:`video/mp4`;case`av1`:return e.codecString?`video/mp4; codecs="${e.codecString}"`:`video/mp4`}},Br=()=>2**53-1,Vr=()=>({width:2**53-1,height:2**53-1}),Hr=e=>!(typeof e!=`object`||!e||!(`type`in e));H();var Ur={sizeBasedResolutionCapEnabled:!0,pictureInPictureEnabled:!0,abrEnabled:!0,burstEnabled:!0,mseEnabled:!0,mseOpusEnabled:!0,muted:!1,volume:1,minBufferTime:1500,maxBufferTime:1500,logLevel:gn.OFF,maxSize:Vr(),maxVideoBitRate:Br(),maxAudioBitRate:Br(),maxInitialBitRate:2.5*1e3*1e3,tags:[],media:`audio+video`,poster:!0,reconnectHandler:e=>e.reconnectRetries<30,iosWakeLockEnabled:!1,backgroundPlayEnabled:!0,mediaSessionEnabled:!0,telemetryEnabled:!0,streamToMediaElementEnabled:!1,iosMediaElementEnabled:!1,pauseSupportEnabled:!0,webcodecsHardwareAcceleration:`no-preference`,offscreenCanvasEnabled:void 0,advanced:{},videoCodecs:[`av1`,`h264`,`h265`],webtransportEnabled:!0};function Wr(e){return typeof e==`function`?this.then(t=>Promise.resolve(e()).then(()=>t),t=>Promise.resolve(e()).then(()=>{throw t})):this.then()}function Gr(e=Promise){return typeof e.prototype.finally!=`function`&&Object.defineProperty(e.prototype,`finally`,{configurable:!0,enumerable:!1,value:Wr,writable:!0}),e.prototype.finally}Gr();var Kr=e=>{e.width=320,e.height=180,e.style.width=`100%`,e.style.position=`relative`,e.style.backgroundColor=`#000`};B(),E(),h(),R(),M(),A(),O();var qr={backgroundColor:`rgba(0,0,0,0.6)`,textPadding:8,fontSize:`28px`,lineGap:16},Jr=new WeakMap,Yr=new WeakMap,Xr=new WeakMap,Zr=new WeakMap,Qr=new WeakSet,$r=class{constructor(){z(this,Qr),T(this,Jr,[]),T(this,Yr,document.createElement(`canvas`)),T(this,Xr,void 0),T(this,Zr,window.devicePixelRatio||1),m(this,`config`,L({},qr));let e=j(Yr,this).getContext(`2d`,{alpha:!0});if(!e)throw Error(`Failed to create 2d context`);k(Xr,this,e),D(Qr,this,ti).call(this)}get canvas(){return j(Yr,this)}setActiveCues(e){k(Jr,this,e)}render(e,t=!1){let n=j(Jr,this).flatMap(t=>t.text.split(`
51
+ `).flatMap(t=>D(Qr,this,ni).call(this,t,e.width)).filter(e=>e.length>0).map(e=>{D(Qr,this,ti).call(this);let t=j(Xr,this).measureText(e);return{text:e,measurement:t,size:{height:t.fontBoundingBoxAscent+t.fontBoundingBoxDescent+this.config.textPadding*2,width:t.width+this.config.textPadding*2}}}));if(n.length===0){D(Qr,this,ei).call(this,0,0),j(Xr,this).clearRect(0,0,j(Yr,this).width,j(Yr,this).height);return}let r=Math.max(...n.map(e=>e.size.width)),i=n.reduce((e,{size:t})=>e+t.height,0)+(n.length-1)*this.config.lineGap,a=0;D(Qr,this,ei).call(this,r,i),j(Xr,this).clearRect(0,0,j(Yr,this).width,j(Yr,this).height);for(let{size:e,text:t}of n)D(Qr,this,ti).call(this),j(Xr,this).fillStyle=this.config.backgroundColor,j(Xr,this).fillRect(0,a,e.width,e.height),D(Qr,this,ti).call(this),j(Xr,this).fillText(t,this.config.textPadding,a+this.config.textPadding),a+=e.height+this.config.lineGap;t&&(j(Xr,this).strokeStyle=`red`,j(Xr,this).strokeRect(0,0,e.width,j(Yr,this).height))}};function ei(e,t){j(Yr,this).width=e*j(Zr,this),j(Yr,this).height=t*j(Zr,this),j(Xr,this).setTransform(j(Zr,this),0,0,j(Zr,this),0,0),this.canvas.style.width=`${e}px`,this.canvas.style.height=`${t}px`}function ti(){j(Xr,this).fillStyle=`white`,j(Xr,this).textAlign=`left`,j(Xr,this).textBaseline=`top`,j(Xr,this).font=`${this.config.fontSize} sans-serif`}function ni(e,t){let n=[],r=e.split(` `),i=``;for(;r.length>0;){D(Qr,this,ti).call(this);let e=0;for(;j(Xr,this).measureText(i+(i.length>0?` `:``)+r[0]).width+this.config.textPadding*2<=t&&r.length>0;)e++,i+=(i.length>0?` `:``)+r.shift();if(e===0){n.push(r.shift()||``),i=``;continue}n.push(i),i=``}return n}function ri(e){var t;let{subtitleWidth:n,subtitleHeight:r,canvasWidth:i,canvasHeight:a,containerWidth:o,bottomPadding:s}=e,c=(t=e.baseMargin)==null?20:t,l=i/o,u=n*l,d=r*l;return{drawWidth:u,drawHeight:d,x:(i-u)/2,y:a-d-(s+c)*l}}function ii(e,t,n){return{scaleX:2*e.drawWidth/t,scaleY:2*e.drawHeight/n,translateX:2*e.x/t-1,translateY:1-2*e.y/n}}H(),h();var ai={width:256,height:144},oi=class extends tn{constructor(){super(),m(this,`canvas`,document.createElement(`canvas`)),m(this,`context`,null),m(this,`size`,ai),m(this,`hasWarnedNoVideoFrame`,!1),m(this,`subtitleRenderer`,null),m(this,`hasActiveSubtitles`,!1),m(this,`load`,()=>{if(this.hasWarnedNoVideoFrame=!1,this.context=this.canvas.getContext(`2d`,{alpha:!1,desynchronized:!0}),!this.context)throw Error(`Failed to get 2D rendering context`);this.setSize(ai)}),m(this,`unload`,()=>{this.context=null,this.subtitleRenderer=null,this.hasActiveSubtitles=!1,this.setSize(ai)}),m(this,`setActiveCues`,(e,t)=>{this.subtitleRenderer||(this.subtitleRenderer=new $r),this.subtitleRenderer.config.fontSize=rr(t.width,t.height),this.subtitleRenderer.setActiveCues(e),this.subtitleRenderer.render(t),this.hasActiveSubtitles=e.some(e=>e.text.length>0)}),m(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}let n=e.videoFrame;this.setSize({width:e.width,height:e.height});try{this.context.drawImage(n,0,0,this.canvas.width,this.canvas.height),this.renderSubtitles(t)}catch(e){this.emit(`context lost`,e instanceof Error?e:Error(`Failed to render VideoFrame`))}}),m(this,`renderSubtitles`,e=>{if(!this.hasActiveSubtitles||!this.subtitleRenderer||!this.context)return;let t=this.subtitleRenderer.canvas;if(t.width===0||t.height===0)return;let n=window.devicePixelRatio||1,r=this.canvas.clientWidth||this.canvas.width,i=ri({subtitleWidth:t.width/n,subtitleHeight:t.height/n,canvasWidth:this.canvas.width,canvasHeight:this.canvas.height,containerWidth:r,bottomPadding:e});this.context.drawImage(t,i.x,i.y,i.drawWidth,i.drawHeight)}),m(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)))}),Kr(this.canvas)}},si=`
52
52
  precision mediump float;
53
53
  uniform sampler2D texture;
54
54
 
@@ -60,7 +60,7 @@ void main() {
60
60
 
61
61
  gl_FragColor = vec4(y, y, y, a);
62
62
  }
63
- `,si=`
63
+ `,ci=`
64
64
  attribute vec2 position;
65
65
  varying vec2 texture_coordinate;
66
66
  uniform mat4 model;
@@ -69,7 +69,7 @@ void main() {
69
69
  texture_coordinate = position;
70
70
  gl_Position = model * vec4(position, 0.0, 1.0);
71
71
  }
72
- `;h(),z();var ci=`connection_failed`,li=`connection_failed_will_not_attempt_again`,ui=`authentication_error`,di=`authentication_expired`,fi=`channel_not_found`,pi=`channel_not_live`,mi=`no_incoming_data_error`,hi=`connection_inactivity`,gi=`missing_init_segment`,_i=`no_track_context`,vi=`invalid_track_context_state`,yi=`disconnected_by_edge`,bi=`decoder_error`,xi=`audio_player_error`,Si=`unsupported_audio_codec`,Ci=`media_source_error`,wi=`webgl_context_lost_error`,Ti=`access_forbidden`,Ei=`channel_switch_failed`,Di=`drm_error`,W=class extends Error{constructor(e,t,n={}){super(e),m(this,`props`,void 0),m(this,`extra`,{}),m(this,`code`,()=>this.props.code),m(this,`isFatal`,()=>this.props.isFatal),m(this,`source`,()=>this.props.source),m(this,`type`,()=>{var e;return(e=this.props.type)==null?`external`:e}),m(this,`toStringifiable`,()=>{var e;let t=this.source(),n=t instanceof Error?t.stack:this.stack;return R(R({},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:n})}),this.props=t,this.extra=n,Object.setPrototypeOf(this,new.target.prototype)}},Oi=(e,t)=>new W(`MediaElement Error`,{isFatal:e,code:`media_element_error`,source:t},{mediaErrorCode:t.code}),ki=(e,t,n)=>new W(`Decoder Error`,{isFatal:e,code:bi,source:t,type:`internal`},{mediaType:n,sourceName:t.name}),Ai=(e,t,n)=>new W(`No decoder available for audio codec "${e}" in non-MSE playback. ${t}`,{isFatal:!0,code:Si,source:n,type:`external`},{codec:e,reason:t}),ji=(e,t)=>new W(`Audio Player Error`,{isFatal:e,code:xi,source:t,type:`internal`}),Mi=(e,t)=>new W(`No init segment for rendition id ${e} for channel ${t}`,{isFatal:!1,code:gi,type:`internal`}),Ni=(e,t,n,r)=>new W(`MediaSource Error`,{isFatal:e,code:Ci,source:t,type:`internal`},{mediaType:r,consecutiveErrorsCount:n}),Pi=(e,t)=>new W(`No track context for ${e}${t?`, rendition id ${t}`:``}`,{isFatal:!1,code:_i,type:`internal`}),Fi=(e,t)=>new W(`Track context is in an invalid state for ${e}${t?`, rendition id ${t}`:``}`,{isFatal:!1,code:vi,type:`internal`}),Ii=()=>new W(`Web Audio Context resume timeout`,{isFatal:!1,code:`web_audio_context_resume_timeout`}),Li=e=>new W(`Disconnected From Edge Server`,{type:`external`,source:e,isFatal:!1,code:yi}),Ri=e=>new W(`Authentication Failed`,{isFatal:!0,code:ui,source:e}),zi=e=>new W(`Authentication Expired`,{isFatal:!0,code:di,source:e}),Bi=(e,t)=>new W(`Connection closed due to inactivity`,{isFatal:!1,code:hi,source:t,type:e}),Vi=(e,t)=>new W(`Channel not found`,{isFatal:!1,code:fi,source:t,type:e}),Hi=e=>new W(`Waiting for channel to go live`,{isFatal:!1,code:pi,source:e,type:`external`}),Ui=e=>new W(`No Incoming Data`,{isFatal:!1,code:mi,source:e}),Wi=e=>new W(`Connection attempt failed`,{isFatal:!1,code:ci,source:e}),Gi=()=>new W(`Connection failed - no more reconnect attempts`,{isFatal:!0,code:li}),Ki=e=>new W(`WebGL Context Lost`,{isFatal:!1,code:wi,source:e,type:`internal`}),qi=e=>new W(e,{isFatal:!0,code:Ti}),Ji=e=>new W(`Channel switch to '${e}' failed`,{isFatal:!1,code:Ei}),Yi=(e,t=!1,n)=>new W(e,{isFatal:t,code:Di,source:n}),Xi=(e,t)=>{let n=e.getContext(`webgl`,t);if(n||(n=e.getContext(`experimental-webgl`,t)),!n)throw new W(`Failed to create webgl context`,{isFatal:!0,code:`failed_to_create_web_gl_context`});return n},Zi=(e,t,n)=>{let r=e.createShader(t);if(!r)throw new W(`Failed to create shader`,{isFatal:!0,code:`failed_to_create_shader`});if(e.shaderSource(r,n),e.compileShader(r),!e.getShaderParameter(r,e.COMPILE_STATUS)){let t=e.getShaderInfoLog(r);throw new W(`Failed to compile shader: ${t==null?``:t}`,{isFatal:!0,code:`failed_to_compile_shader`})}return r},Qi=e=>{let t=e.createTexture();if(!t)throw new W(`Failed to create texture`,{isFatal:!0,code:`failed_to_create_texture`});return e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),t},$i=(e,t)=>{let n=e.createBuffer();if(!n)throw new W(`Failed to create buffer`,{isFatal:!0,code:`failed_to_create_buffer`});return e.bindBuffer(e.ARRAY_BUFFER,n),e.bufferData(e.ARRAY_BUFFER,t.buffer,e.STATIC_DRAW),n},ea=(e,t,n)=>{let r=e.createProgram();if(!r)throw new W(`Failed to create program`,{isFatal:!0,code:`failed_to_create_program`});if(e.attachShader(r,n),e.attachShader(r,t),e.linkProgram(r),!e.getProgramParameter(r,e.LINK_STATUS)){let t=e.getShaderInfoLog(r);throw new W(`Failed to link program: ${t==null?``:t}`,{isFatal:!0,code:`failed_to_link_program`})}return r};U(),V(),D(),h(),j(),N(),k();var G=new WeakMap,ta=new WeakMap,na=new WeakMap,ra=new WeakMap,ia=new WeakMap,aa=new WeakSet,oa=new WeakMap,sa=class{constructor(e){B(this,aa),E(this,G,void 0),E(this,ta,void 0),E(this,na,void 0),E(this,ra,void 0),E(this,ia,void 0),m(this,`subtitleRenderer`,new Qr),E(this,oa,(e,t,n,r)=>[e,0,0,0,0,-t,0,0,0,0,1,0,n,r,0,1]),A(G,this,e),A(ta,this,Qi(e)),A(na,this,Zi(e,e.FRAGMENT_SHADER,oi)),A(ra,this,Zi(e,e.VERTEX_SHADER,si)),A(ia,this,ea(e,M(ra,this),M(na,this)))}setActiveCues(e,t){this.subtitleRenderer.config.fontSize=nr(t.width,t.height),this.subtitleRenderer.setActiveCues(e),this.subtitleRenderer.render(t)}render(e){let t=this.subtitleRenderer.canvas;if(t.width===0)return;let n=window.devicePixelRatio||1,r=ri(ni({subtitleWidth:t.width/n,subtitleHeight:t.height/n,canvasWidth:e.canvasWidth,canvasHeight:e.canvasHeight,containerWidth:e.containerWidth,bottomPadding:e.bottomPadding}),e.canvasWidth,e.canvasHeight);M(G,this).useProgram(M(ia,this)),O(aa,this,ca).call(this),O(aa,this,la).call(this,r.scaleX,r.scaleY,r.translateX,r.translateY),M(G,this).uniform1i(M(G,this).getUniformLocation(M(ia,this),`texture`),4),M(G,this).activeTexture(M(G,this).TEXTURE4),M(G,this).bindTexture(M(G,this).TEXTURE_2D,M(ta,this)),M(G,this).enable(M(G,this).BLEND),M(G,this).blendFunc(M(G,this).SRC_ALPHA,M(G,this).ONE_MINUS_SRC_ALPHA),M(G,this).texImage2D(M(G,this).TEXTURE_2D,0,M(G,this).RGBA,M(G,this).RGBA,M(G,this).UNSIGNED_BYTE,t),M(G,this).texParameteri(M(G,this).TEXTURE_2D,M(G,this).TEXTURE_MAG_FILTER,M(G,this).LINEAR),M(G,this).drawArrays(M(G,this).TRIANGLE_STRIP,0,4)}};function ca(){let e=M(G,this).getAttribLocation(M(ia,this),`position`);M(G,this).enableVertexAttribArray(e),M(G,this).vertexAttribPointer(e,2,M(G,this).FLOAT,!1,0,0)}function la(e,t,n,r){let i=M(G,this).getUniformLocation(M(ia,this),`model`);M(G,this).uniformMatrix4fv(i,!1,M(oa,this).call(this,e,t,n,r))}var ua=`
72
+ `;h(),R();var li=`connection_failed`,ui=`connection_failed_will_not_attempt_again`,di=`authentication_error`,fi=`authentication_expired`,pi=`channel_not_found`,mi=`channel_not_live`,hi=`no_incoming_data_error`,gi=`connection_inactivity`,_i=`missing_init_segment`,vi=`no_track_context`,yi=`invalid_track_context_state`,bi=`disconnected_by_edge`,xi=`decoder_error`,Si=`audio_player_error`,Ci=`unsupported_audio_codec`,wi=`media_source_error`,Ti=`webgl_context_lost_error`,Ei=`access_forbidden`,Di=`channel_switch_failed`,Oi=`drm_error`,U=class extends Error{constructor(e,t,n={}){super(e),m(this,`props`,void 0),m(this,`extra`,{}),m(this,`code`,()=>this.props.code),m(this,`isFatal`,()=>this.props.isFatal),m(this,`source`,()=>this.props.source),m(this,`type`,()=>{var e;return(e=this.props.type)==null?`external`:e}),m(this,`toStringifiable`,()=>{var e;let t=this.source(),n=t instanceof Error?t.stack:this.stack;return L(L({},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:n})}),this.props=t,this.extra=n,Object.setPrototypeOf(this,new.target.prototype)}},ki=(e,t)=>new U(`MediaElement Error`,{isFatal:e,code:`media_element_error`,source:t},{mediaErrorCode:t.code}),Ai=(e,t,n)=>new U(`Decoder Error`,{isFatal:e,code:xi,source:t,type:`internal`},{mediaType:n,sourceName:t.name}),ji=(e,t,n)=>new U(`No decoder available for audio codec "${e}" in non-MSE playback. ${t}`,{isFatal:!0,code:Ci,source:n,type:`external`},{codec:e,reason:t}),Mi=(e,t)=>new U(`Audio Player Error`,{isFatal:e,code:Si,source:t,type:`internal`}),Ni=(e,t)=>new U(`No init segment for rendition id ${e} for channel ${t}`,{isFatal:!1,code:_i,type:`internal`}),Pi=(e,t,n,r)=>new U(`MediaSource Error`,{isFatal:e,code:wi,source:t,type:`internal`},{mediaType:r,consecutiveErrorsCount:n}),Fi=(e,t)=>new U(`No track context for ${e}${t?`, rendition id ${t}`:``}`,{isFatal:!1,code:vi,type:`internal`}),Ii=(e,t)=>new U(`Track context is in an invalid state for ${e}${t?`, rendition id ${t}`:``}`,{isFatal:!1,code:yi,type:`internal`}),Li=()=>new U(`Web Audio Context resume timeout`,{isFatal:!1,code:`web_audio_context_resume_timeout`}),Ri=e=>new U(`Disconnected From Edge Server`,{type:`external`,source:e,isFatal:!1,code:bi}),zi=e=>new U(`Authentication Failed`,{isFatal:!0,code:di,source:e}),Bi=e=>new U(`Authentication Expired`,{isFatal:!0,code:fi,source:e}),Vi=(e,t)=>new U(`Connection closed due to inactivity`,{isFatal:!1,code:gi,source:t,type:e}),Hi=(e,t)=>new U(`Channel not found`,{isFatal:!1,code:pi,source:t,type:e}),Ui=e=>new U(`Waiting for channel to go live`,{isFatal:!1,code:mi,source:e,type:`external`}),Wi=e=>new U(`No Incoming Data`,{isFatal:!1,code:hi,source:e}),Gi=e=>new U(`Connection attempt failed`,{isFatal:!1,code:li,source:e}),Ki=()=>new U(`Connection failed - no more reconnect attempts`,{isFatal:!0,code:ui}),qi=e=>new U(`WebGL Context Lost`,{isFatal:!1,code:Ti,source:e,type:`internal`}),Ji=e=>new U(e,{isFatal:!0,code:Ei}),Yi=e=>new U(`Channel switch to '${e}' failed`,{isFatal:!1,code:Di}),Xi=(e,t=!1,n)=>new U(e,{isFatal:t,code:Oi,source:n}),Zi=(e,t)=>{let n=e.getContext(`webgl`,t);if(n||(n=e.getContext(`experimental-webgl`,t)),!n)throw new U(`Failed to create webgl context`,{isFatal:!0,code:`failed_to_create_web_gl_context`});return n},Qi=(e,t,n)=>{let r=e.createShader(t);if(!r)throw new U(`Failed to create shader`,{isFatal:!0,code:`failed_to_create_shader`});if(e.shaderSource(r,n),e.compileShader(r),!e.getShaderParameter(r,e.COMPILE_STATUS)){let t=e.getShaderInfoLog(r);throw new U(`Failed to compile shader: ${t==null?``:t}`,{isFatal:!0,code:`failed_to_compile_shader`})}return r},$i=e=>{let t=e.createTexture();if(!t)throw new U(`Failed to create texture`,{isFatal:!0,code:`failed_to_create_texture`});return e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),t},ea=(e,t)=>{let n=e.createBuffer();if(!n)throw new U(`Failed to create buffer`,{isFatal:!0,code:`failed_to_create_buffer`});return e.bindBuffer(e.ARRAY_BUFFER,n),e.bufferData(e.ARRAY_BUFFER,t.buffer,e.STATIC_DRAW),n},ta=(e,t,n)=>{let r=e.createProgram();if(!r)throw new U(`Failed to create program`,{isFatal:!0,code:`failed_to_create_program`});if(e.attachShader(r,n),e.attachShader(r,t),e.linkProgram(r),!e.getProgramParameter(r,e.LINK_STATUS)){let t=e.getShaderInfoLog(r);throw new U(`Failed to link program: ${t==null?``:t}`,{isFatal:!0,code:`failed_to_link_program`})}return r};H(),B(),E(),h(),A(),M(),O();var W=new WeakMap,na=new WeakMap,ra=new WeakMap,ia=new WeakMap,aa=new WeakMap,oa=new WeakSet,sa=new WeakMap,ca=class{constructor(e){z(this,oa),T(this,W,void 0),T(this,na,void 0),T(this,ra,void 0),T(this,ia,void 0),T(this,aa,void 0),m(this,`subtitleRenderer`,new $r),T(this,sa,(e,t,n,r)=>[e,0,0,0,0,-t,0,0,0,0,1,0,n,r,0,1]),k(W,this,e),k(na,this,$i(e)),k(ra,this,Qi(e,e.FRAGMENT_SHADER,si)),k(ia,this,Qi(e,e.VERTEX_SHADER,ci)),k(aa,this,ta(e,j(ia,this),j(ra,this)))}setActiveCues(e,t){this.subtitleRenderer.config.fontSize=rr(t.width,t.height),this.subtitleRenderer.setActiveCues(e),this.subtitleRenderer.render(t)}render(e){let t=this.subtitleRenderer.canvas;if(t.width===0)return;let n=window.devicePixelRatio||1,r=ii(ri({subtitleWidth:t.width/n,subtitleHeight:t.height/n,canvasWidth:e.canvasWidth,canvasHeight:e.canvasHeight,containerWidth:e.containerWidth,bottomPadding:e.bottomPadding}),e.canvasWidth,e.canvasHeight);j(W,this).useProgram(j(aa,this)),D(oa,this,la).call(this),D(oa,this,ua).call(this,r.scaleX,r.scaleY,r.translateX,r.translateY),j(W,this).uniform1i(j(W,this).getUniformLocation(j(aa,this),`texture`),4),j(W,this).activeTexture(j(W,this).TEXTURE4),j(W,this).bindTexture(j(W,this).TEXTURE_2D,j(na,this)),j(W,this).enable(j(W,this).BLEND),j(W,this).blendFunc(j(W,this).SRC_ALPHA,j(W,this).ONE_MINUS_SRC_ALPHA),j(W,this).texImage2D(j(W,this).TEXTURE_2D,0,j(W,this).RGBA,j(W,this).RGBA,j(W,this).UNSIGNED_BYTE,t),j(W,this).texParameteri(j(W,this).TEXTURE_2D,j(W,this).TEXTURE_MAG_FILTER,j(W,this).LINEAR),j(W,this).drawArrays(j(W,this).TRIANGLE_STRIP,0,4)}};function la(){let e=j(W,this).getAttribLocation(j(aa,this),`position`);j(W,this).enableVertexAttribArray(e),j(W,this).vertexAttribPointer(e,2,j(W,this).FLOAT,!1,0,0)}function ua(e,t,n,r){let i=j(W,this).getUniformLocation(j(aa,this),`model`);j(W,this).uniformMatrix4fv(i,!1,j(sa,this).call(this,e,t,n,r))}var da=`
73
73
  precision mediump float;
74
74
  uniform sampler2D y_texture;
75
75
  uniform sampler2D u_texture;
@@ -85,7 +85,7 @@ void main() {
85
85
 
86
86
  gl_FragColor = vec4(y, u, v, 1) * conversion;
87
87
  }
88
- `,da=`
88
+ `,fa=`
89
89
  attribute vec2 position;
90
90
  varying vec2 texture_coordinate;
91
91
  uniform mat4 model;
@@ -94,9 +94,9 @@ void main() {
94
94
  texture_coordinate = position;
95
95
  gl_Position = model * vec4(position, 0.0, 1.0);
96
96
  }
97
- `;U(),h();var fa={width:256,codedWidth:256,height:144,codedHeight:144},pa={preserveDrawingBuffer:!1,alpha:!1,depth:!1,stencil:!1,antialias:!1,premultipliedAlpha:!1},ma=class e extends en{constructor(){super(),m(this,`canvas`,document.createElement(`canvas`)),m(this,`context`,Xi(this.canvas,pa)),m(this,`pixelShader`,Zi(this.context,this.context.FRAGMENT_SHADER,ua)),m(this,`vertexShader`,Zi(this.context,this.context.VERTEX_SHADER,da)),m(this,`buffer`,$i(this.context,e.SQUARE_VERTICES)),m(this,`program`,ea(this.context,this.vertexShader,this.pixelShader)),m(this,`textures`,{y:Qi(this.context),u:Qi(this.context),v:Qi(this.context)}),m(this,`textRenderer`,void 0),m(this,`size`,fa),m(this,`modelLocation`,null),m(this,`conversionLocation`,null),m(this,`cachedScaleX`,0),m(this,`cachedScaleY`,0),m(this,`cachedTransformMatrix`,null),m(this,`texturesNeedRealloc`,!0),m(this,`onContextLost`,e=>{this.textRenderer=void 0;let t=Error(e instanceof WebGLContextEvent?e.statusMessage:`webgl context lost`);this.emit(`context lost`,Ki(t)),e.preventDefault()}),m(this,`onContextRestored`,()=>{this.emit(`context restored`),this.context=Xi(this.canvas,pa),this.pixelShader=Zi(this.context,this.context.FRAGMENT_SHADER,ua),this.vertexShader=Zi(this.context,this.context.VERTEX_SHADER,da),this.buffer=$i(this.context,e.SQUARE_VERTICES),this.program=ea(this.context,this.vertexShader,this.pixelShader),this.textures={y:Qi(this.context),u:Qi(this.context),v:Qi(this.context)},this.load()}),m(this,`load`,()=>{this.context.useProgram(this.program),this.setupPositionVertexAttributes(),this.texturesNeedRealloc=!0,this.setSize(fa),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(e.REC709)}),m(this,`unload`,()=>{var e;this.setSize({width:1,height:1,codedHeight:1,codedWidth:1}),[this.textures.y,this.textures.u,this.textures.v].forEach(e=>this.context.deleteTexture(e)),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()}),m(this,`resetSize`,()=>{this.setSize({width:this.size.width/2,height:this.size.height/2,codedHeight:this.size.codedHeight/2,codedWidth:this.size.codedWidth/2})}),m(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){let e=t.style.getPropertyValue(`--vindral-subtitle-offset`)||t.style.getPropertyValue(`--vindral-control-bar-offset`),n=parseInt(e||`0`,10),r=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:r})}}),m(this,`updateTexture`,(e,t,n,r)=>{let i=this.context.LUMINANCE,a=this.context.UNSIGNED_BYTE;this.context.bindTexture(this.context.TEXTURE_2D,e),this.texturesNeedRealloc?this.context.texImage2D(this.context.TEXTURE_2D,0,i,t,n,0,i,a,r):this.context.texSubImage2D(this.context.TEXTURE_2D,0,0,0,t,n,i,a,r)}),m(this,`setupPositionVertexAttributes`,()=>{let e=this.context.getAttribLocation(this.program,`position`);this.context.enableVertexAttribArray(e),this.context.vertexAttribPointer(e,2,this.context.FLOAT,!1,0,0)}),m(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))}),m(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)}),m(this,`setConversionMatrix`,e=>{this.context.uniformMatrix4fv(this.conversionLocation,!1,e)}),m(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),Gr(this.canvas)}getTextRenderer(){return this.textRenderer||(this.textRenderer=new sa(this.context)),this.textRenderer}};m(ma,`SQUARE_VERTICES`,new Float32Array([0,0,0,1,1,0,1,1])),m(ma,`REC709`,[1.16438,0,1.79274,-.97295,1.16438,-.21325,-.53291,.30148,1.16438,2.1124,0,-1.1334,0,0,0,1]),m(ma,`REC601`,[1.16438,0,1.59603,-.87079,1.16438,-.39176,-.81297,.52959,1.16438,2.01723,0,-1.08139,0,0,0,1]),h(),D(),j(),N(),F(),z();var ha=new WeakMap,ga=new WeakMap,_a=class{constructor(e,t,n,r){m(this,`keySystem`,void 0),m(this,`licenseServerUrl`,void 0),m(this,`certificate`,void 0),m(this,`headers`,{}),m(this,`queryParams`,{}),E(this,ha,void 0),E(this,ga,void 0),A(ha,this,t),this.keySystem=e,this.licenseServerUrl=n,this.certificate=r}get statistics(){return{keySystem:M(ha,this).keySystem,licenseServerUrl:this.licenseServerUrl,mediaKeySystemConfiguration:M(ha,this).getConfiguration()}}getMediaKeys(){var e=this;return P(function*(){return M(ga,e)||A(ga,e,yield M(ha,e).createMediaKeys()),M(ga,e)})()}requestLicense(e){var t=this;return P(function*(){let n=new URL(t.licenseServerUrl);for(let[e,r]of Object.entries(t.queryParams))n.searchParams.append(e,r);let r=yield fetch(n,{method:`POST`,body:e,headers:R({"Content-Type":`application/octet-stream`},t.headers)});if(!r.ok)throw Error(`Failed to fetch license: ${r.statusText}`);return yield r.arrayBuffer()})()}};function va(e){let t=window.atob(e.replace(/-/g,`+`).replace(/_/g,`/`)),n=``;for(let e=0;e<t.length;e++)n+=`0${t.charCodeAt(e).toString(16)}`.substr(-2);return n}function ya(e){let t=``;for(let n=0;n<e.length;n+=2)t+=String.fromCharCode(parseInt(e.substr(n,2),16));return window.btoa(t).replace(/=/g,``).replace(/\+/g,`-`).replace(/\//g,`_`)}function ba(e,t){if(e.byteLength!==t.byteLength)return!1;let n=new Uint8Array(e),r=new Uint8Array(t);for(let e=0;e<n.length;e++)if(n[e]!==r[e])return!1;return!0}D(),j(),N();var xa=new WeakMap,Sa=class extends _a{constructor(e,t){super(`clearkey`,e,``),E(this,xa,void 0),A(xa,this,t)}handleLicenseRequest(e){let t=new Uint8Array(e),n=String.fromCharCode(...t),r=JSON.parse(n),i=[];for(let e=0;e<r.kids.length;e++){let t=r.kids[e];if(t){let e=va(t).toLowerCase(),n=M(xa,this)[e];n&&i.push({kty:`oct`,alg:`A128KW`,kid:t,k:ya(n)})}}let a=JSON.stringify({keys:i,type:r.type});return new TextEncoder().encode(a)}};F(),z();var Ca={playready:[`150`,`2000`,`3000`],widevine:[`SW_SECURE_CRYPTO`,`SW_SECURE_DECODE`,`HW_SECURE_CRYPTO`,`HW_SECURE_DECODE`,`HW_SECURE_ALL`],fairplay:[``],clearkey:[``]},wa={initDataTypes:[`cenc`],audioCapabilities:[{contentType:`audio/mp4; codecs="mp4a.40.2"`}],videoCapabilities:[{contentType:`video/mp4; codecs="avc1.42c01f"`}]},Ta={fairplay:{keySystem:`com.apple.fps`,supportedConfig:{initDataTypes:[`sinf`],videoCapabilities:[{contentType:`video/mp4; codecs="avc1.42c01f"`}]}},playready:{keySystem:`com.microsoft.playready`,supportedConfig:wa},widevine:{keySystem:`com.widevine.alpha`,supportedConfig:wa},clearkey:{keySystem:`org.w3.clearkey`,supportedConfig:wa}},Ea=function(){var e=P(function*(e,t){return navigator.requestMediaKeySystemAccess(e,[t]).catch(()=>void 0)});return function(t,n){return e.apply(this,arguments)}}(),Da=function(){var e=P(function*(e,t,n,r,i,a){let o;for(let s of r){let r=n==null?void 0:n.map(e=>R(R({},e),{},{robustness:s,contentType:a?`${i===`audioCapabilities`?`audio/mp4`:`video/mp4`}; codecs="${a}"`:e.contentType}));if(!(yield Ea(e,{initDataTypes:t,[i]:r})))break;o=r}return o});return function(t,n,r,i,a,o){return e.apply(this,arguments)}}(),Oa=function(){var e=P(function*(e,t,n,r){let{keySystem:i,supportedConfig:a}=Ta[e],{initDataTypes:o,videoCapabilities:s,audioCapabilities:c}=a,l=r==null?void 0:r[e],u=(l==null?void 0:l.videoRobustness)||Ca[e],d=(l==null?void 0:l.audioRobustness)||Ca[e],[f,p]=yield Promise.all([Da(i,o,s,u,`videoCapabilities`,t),Da(i,o,c,d,`audioCapabilities`,n)]);if(!(!f&&!p))return yield Ea(i,{initDataTypes:o,videoCapabilities:f,audioCapabilities:p})});return function(t,n,r,i){return e.apply(this,arguments)}}(),ka=function(){var e=P(function*(e,t,n,r){let i;for(let a of e)if(i=yield Oa(a,t,n,r),i)return{keySystem:a,mediaKeySystemAccess:i}});return function(t,n,r,i){return e.apply(this,arguments)}}(),Aa=class extends _a{constructor(e,t,n){super(`fairplay`,e,t,n)}};U(),z(),F();var ja=e=>{var t;let n=String.fromCharCode(...new Uint16Array(e)),r=new window.DOMParser().parseFromString(n,`application/xml`),i=r.getElementsByTagName(`HttpHeaders`)[0],a={};if(i){let e=i.getElementsByTagName(`name`),t=i.getElementsByTagName(`value`);for(let n=0;n<e.length;n++){var o,s;let r=(o=e[n])==null?void 0:o.childNodes[0],i=(s=t[n])==null?void 0:s.childNodes[0];r!=null&&r.nodeValue&&i&&i.nodeValue&&(a[r.nodeValue]=i.nodeValue)}}let c=r.getElementsByTagName(`Challenge`)[0],l;if(!(c==null||(t=c.childNodes[0])==null)&&t.nodeValue){var u;l=window.atob((u=c.childNodes[0])==null?void 0:u.nodeValue)}return r.querySelector(`parsererror`)&&(a={"Content-Type":`text/xml; charset=utf-8`,SOAPAction:`"http://schemas.microsoft.com/DRM/2007/03/protocols/AcquireLicense"`},l=e),{headers:a,message:l}},Ma=class extends _a{constructor(e,t){super(`playready`,e,t)}requestLicense(e){var t=this;return P(function*(){Te(t.licenseServerUrl,`No license server URL set`);let n=new URL(t.licenseServerUrl);for(let[e,r]of Object.entries(t.queryParams))n.searchParams.append(e,r);let r=ja(e),i=yield fetch(n,{method:`POST`,headers:R(R({},r.headers),t.headers),body:r.message});if(!i.ok)throw Error(`Failed to fetch license: ${i.statusText}`);return yield i.arrayBuffer()})()}},Na=class extends _a{constructor(e,t){super(`widevine`,e,t)}};U(),V(),D(),N(),k(),F(),j(),z();var Pa=5e3,K=new WeakMap,Fa=new WeakMap,Ia=new WeakMap,La=new WeakMap,Ra=new WeakMap,za=new WeakMap,Ba=new WeakMap,Va=new WeakMap,Ha=new WeakMap,Ua=new WeakMap,Wa=new WeakMap,Ga=new WeakMap,Ka=new WeakSet,qa=new WeakMap,Ja=new WeakMap,Ya=new WeakMap,Xa=class{constructor(e,t,n={}){var r=this;B(this,Ka),E(this,K,void 0),E(this,Fa,void 0),E(this,Ia,void 0),E(this,La,new w),E(this,Ra,void 0),E(this,za,void 0),E(this,Ba,new Map),E(this,Va,void 0),E(this,Ha,dt()),E(this,Ua,void 0),E(this,Wa,e=>{if(M(K,this).info(`Received DRM data`,{drmData:e}),window.clearTimeout(M(Ua,this)),M(za,this)){let t=O(Ka,this,io).call(this,e)[M(za,this).keySystem];t&&(M(za,this).licenseServerUrl=t)}M(La,this).resolve(e)}),E(this,Ga,e=>{M(K,this).info(`Encrypted event received`,{event:e}),O(Ka,this,Za).call(this,e)}),E(this,qa,e=>{var t,n;M(K,this).debug(`Session message received`,{event:e});let r=e.target,i=e.message;if(!M(Ba,this).get(r)){M(K,this).error(`No active session found for event`,{event:e});return}M(K,this).debug(`Requesting license for session`,{sessionId:r.sessionId,licenseServerUrl:(t=M(za,this))==null?void 0:t.licenseServerUrl}),(n=M(za,this))==null||n.requestLicense(i).then(e=>{M(K,this).debug(`License received for session`,{sessionId:r.sessionId}),r.update(e).catch(e=>{O(Ka,this,no).call(this,{message:`Failed to update session with license`,isFatal:!1,error:e})})}).catch(e=>{O(Ka,this,no).call(this,{message:`Failed to request license`,isFatal:!1,error:e})})}),E(this,Ja,e=>{let t=e.target;M(K,this).debug(`Key status changed for session`,{sessionId:t.sessionId}),t.keyStatuses.forEach((e,t)=>{let n=va(window.btoa(String.fromCharCode(...new Uint8Array(t))));M(K,this).debug(`Key status`,{base64kid:n,status:e})})}),E(this,Ya,function(){var e=P(function*(e){let t=O(Ka,r,ro).call(r,e);M(K,r).debug(`Prioritized key system list`,{keySystemList:t});let n=yield ka(t,e.videoCodec,e.audioCodec,{widevine:M(Ra,r).widevine,playready:M(Ra,r).playready});if(!n)return M(K,r).warn(`No supported key system found`),null;M(K,r).debug(`Supported key system found`,n.mediaKeySystemAccess.getConfiguration());let{keySystem:i,mediaKeySystemAccess:a}=n,o=null;return i===`clearkey`?(Te(e.clearkeys,`No clearkeys found`),o=new Sa(a,e.clearkeys)):i===`playready`?(Te(e.playreadyLicenseUrl,`No playreadyLicenseUrl found`),o=new Ma(a,e.playreadyLicenseUrl)):i===`widevine`?(Te(e.widevineLicenseUrl,`No widevineLicenseUrl found`),o=new Na(a,e.widevineLicenseUrl)):i===`fairplay`&&(Te(e.fairplayLicenseUrl,`No fairplayLicenseUrl found`),Te(e.fairplayCertificate,`No fairplayCertificate found`),o=new Aa(a,e.fairplayLicenseUrl,e.fairplayCertificate)),o&&(o.headers=M(Ra,r).headers||{},o.queryParams=M(Ra,r).queryParams||{}),o});return function(t){return e.apply(this,arguments)}}()),A(Fa,this,e),A(K,this,t),A(Ra,this,n),M(Fa,this).on(`received drm data`,M(Wa,this))}static isSupported(){return!!navigator.requestMediaKeySystemAccess}attach(e){A(Ia,this,e),M(K,this).info(`Media element attached`),M(Ia,this).addEventListener(`encrypted`,M(Ga,this))}getStatistics(){var e,t;return!M(La,this).resolved&&!((e=M(za,this))!=null&&e.statistics)?null:R(R({},M(La,this).resolved),(t=M(za,this))==null?void 0:t.statistics)}unload(){var e;M(K,this).info(`Unloading EncryptedMediaExtensions`),M(Fa,this).off(`received drm data`,M(Wa,this)),(e=M(Ia,this))==null||e.removeEventListener(`encrypted`,M(Ga,this)),M(Ba,this).forEach((e,t)=>{t.close()}),M(Ba,this).clear(),A(Va,this,void 0),A(za,this,void 0)}set headers(e){M(Ra,this).headers=e,M(za,this)&&(M(za,this).headers=e)}set queryParams(e){M(Ra,this).queryParams=e,M(za,this)&&(M(za,this).queryParams=e)}onChannelSwitch(){if(!M(La,this).resolved){M(K,this).debug(`DRM is not used, skipping channel switch handling`);return}st()&&M(Ha,this).platform.safariVersion<18&&O(Ka,this,no).call(this,{message:`DRM channel switch not supported on Safari < 18`,isFatal:!0}),window.clearTimeout(M(Ua,this));let e=M(La,this).resolved;A(La,this,new w),A(Ua,this,window.setTimeout(()=>{M(La,this).resolve(e)},Pa))}};function Za(e){var t=this;return P(function*(){try{yield O(Ka,t,Qa).call(t),M(K,t).debug(`Media keys initialization completed`),yield O(Ka,t,$a).call(t,e.initData,e.initDataType)}catch(e){O(Ka,t,no).call(t,{message:`Failed to handle encrypted event`,isFatal:!0,error:e})}})()}function Qa(){var e=this;return P(function*(){var t;M(K,e).debug(`Initializing media keys`);let n=yield M(La,e).promise;if((t=M(Ia,e))!=null&&t.mediaKeys){M(K,e).debug(`Media keys already set on media element`);return}if(M(Va,e)){M(K,e).debug(`Media keys initialization already in progress, waiting for completion`),yield M(Va,e);return}A(Va,e,P(function*(){let t=yield M(Ya,e).call(e,n);M(K,e).debug(`CDM obtained`,{cdm:t}),Te(M(Ia,e),`No media element found`),Te(t,`No CDM found`);let r=yield t.getMediaKeys();t.certificate&&(yield O(Ka,e,to).call(e,r,t.certificate)),M(K,e).debug(`Setting media keys on media element`),yield M(Ia,e).setMediaKeys(r),A(za,e,t)})()),yield M(Va,e)})()}function $a(e,t){var n=this;return P(function*(){Te(M(za,n),`No CDM manager found`);let r=yield M(za,n).getMediaKeys();if(!e||!O(Ka,n,eo).call(n,e)){M(K,n).debug(`Duplicate initData, no need to create new session`,{initData:e});return}let i=r.createSession();M(K,n).debug(`Creating new session`,{session:i}),i.addEventListener(`keystatuseschange`,M(Ja,n)),i.closed.then(e=>{M(K,n).info(`Session is closed`,{reason:e})}),i.addEventListener(`message`,M(qa,n)),M(Ba,n).set(i,e),M(K,n).debug(`Generating request for session`,{session:i,initDataType:t,initData:e}),yield i.generateRequest(t,e)})()}function eo(e){for(let[t,n]of M(Ba,this))if(ba(e,n))return!1;return!0}function to(e,t){var n=this;return P(function*(){try{M(K,n).debug(`Setting server certificate`,{certificate:t}),(yield e.setServerCertificate(t))||M(K,n).warn(`Server certificates are not supported by the CDM.`)}catch(e){M(K,n).error(`Failed to set server certificate`,{error:e})}})()}function no(e){let{message:t,isFatal:n,error:r}=e;M(K,this).error(t,{error:r}),M(Fa,this).emit(`error`,Yi(t,n,r))}function ro(e){let t=[];return e.clearkeys&&t.push(`clearkey`),e.playreadyLicenseUrl&&t.push(`playready`),e.widevineLicenseUrl&&t.push(`widevine`),e.fairplayLicenseUrl&&e.fairplayCertificate&&t.push(`fairplay`),t}function io(e){return{fairplay:e.fairplayLicenseUrl,playready:e.playreadyLicenseUrl,widevine:e.widevineLicenseUrl,clearkey:void 0}}var ao,oo,so,co,lo,uo,fo,po,mo,ho=n((()=>{U(),ao=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],oo=(e,t)=>{let n=ao.indexOf(t);if(n===-1||e<1||e>8||e===7)return;let r=new ArrayBuffer(2),i=new Uint8Array(r),a=e===8?7:e;return i[0]=16|n>>1,i[1]=(n&1)<<7|a<<3,r},so=[void 0,1,2,3,4,5,6,8,void 0,void 0,void 0,7,8,24,8],co=5,lo=29,uo=new Set([1,2,3,4]),fo=695,po=1352,mo=e=>{let t=new Pe(e.slice().buffer),n=e=>t.remainingBits()>=e,r=()=>{if(!n(5))return;let e=t.readBits(5);return e===31?n(6)?32+t.readBits(6):void 0:e},i=()=>{if(!n(4))return;let e=t.readBits(4);return e===15?n(24)?t.readBits(24):void 0:ao[e]},a=r(),o=i();if(!a||!o||!n(4))return;let s=t.readBits(4),c=so[s];if(a!==co&&a!==lo){if(!uo.has(a)||s===0||!n(2))return{sampleRate:o,channelCount:c};if(t.readBits(1),t.readBits(1)===1){if(!n(14))return{sampleRate:o,channelCount:c};t.readBits(14)}if(!n(1))return{sampleRate:o,channelCount:c};if(t.readBits(1)===1){if(!n(1))return{sampleRate:o,channelCount:c};t.readBits(1)}if(!n(16)||t.readBits(11)!==fo||r()!==co||!n(1)||t.readBits(1)===0)return{sampleRate:o,channelCount:c};let e=i();return e?{sampleRate:e,channelCount:n(12)&&t.readBits(11)===po&&t.readBits(1)===1&&c===1?2:c}:{sampleRate:o,channelCount:c}}let l=i();if(!(!l||r()===void 0))return a===lo&&c===1&&(c=2),{sampleRate:l,channelCount:c}}}));U();var go=7,_o=8,vo=e=>{let t=e.getUint32(0,!1),n=e.getUint8(0)<<16|e.getUint16(1,!1),r=0;return n===1?r+=3:t===1&&(r+=4),r},yo=e=>vo(new DataView(e,0))!==0,bo=(e,t=0)=>{for(let n=t;n<e.byteLength-4;n++){let t=e.getUint32(n)===1,r=(e.getUint8(n)<<16|e.getUint16(n+1))==1;if(t||r)return{position:n,nalPrefixSize:t?4:3}}},xo=e=>e&31,So=(e,t)=>{let n=new DataView(e,0),r=bo(n);for(;r;){let{position:i,nalPrefixSize:a}=r,o=bo(n,i+4),s=o?o.position-i-a:void 0;if(!t(new DataView(e,i+a,s),a))return;r=o}},Co=e=>{let t=[],n=[];if(!yo(e)){let r=new DataView(e,0),i=r.getUint8(5)&31,a=6;for(let n=0;n<i;n++){let n=r.getUint16(a);t.push(e.slice(a+2,a+2+n)),a+=n+2}let o=r.getUint8(a);a+=1;for(let t=0;t<o;t++){let t=r.getUint16(a);n.push(e.slice(a+2,a+2+t)),a+=t+2}return{sequenceParameterSets:t,pictureParameterSets:n}}return So(e,e=>{let r=e.byteOffset+e.byteLength;switch(xo(e.getUint8(0))){case _o:n.push(e.buffer.slice(e.byteOffset,r));break;case go:t.push(e.buffer.slice(e.byteOffset,r));break}return!0}),{sequenceParameterSets:t,pictureParameterSets:n}},wo=e=>{let t=new DataView(e),n=t.getUint8(1),r=t.getUint8(2),i=t.getUint8(3),a=new Pe(e,32);a.readUnsignedExpGolomb();let o=1;switch(n){case 100:case 110:case 122:case 244:case 44:case 83:case 86:case 118:case 128:case 138:case 144:if(o=a.readUnsignedExpGolomb(),o===3&&a.readBits(1),a.readUnsignedExpGolomb()+8,a.readUnsignedExpGolomb()+8,a.readBit(),a.readBit()){for(let e=0;e<(o===3?12:8);e++)if(a.readBit()){let t=e<6?16:64,n=0,r=8,i=8;for(let e=0;e<t;e++)i!==0&&(n=a.readSignedExpGolomb(),i=(r+n+256)%256),r=i===0?r:i}}break;default:break}a.readUnsignedExpGolomb();let s=a.readUnsignedExpGolomb();if(s===0)a.readUnsignedExpGolomb();else if(s===1)throw Error(`Unhandled case`);a.readUnsignedExpGolomb(),a.readBit();let c=a.readUnsignedExpGolomb(),l=a.readUnsignedExpGolomb(),u=a.readBit();u===0&&a.readBit(),a.readBit();let d=c+1,f=l+1;if(f*=2-u,f*=16,d*=16,a.readBit()){let e=o===1?1:0,t=1<<(o===1||o===2?1:0),n=2-u<<e,r=a.readUnsignedExpGolomb()*t,i=a.readUnsignedExpGolomb()*t,s=a.readUnsignedExpGolomb()*n,c=a.readUnsignedExpGolomb()*n;d-=r+i,f-=s+c}let p={numerator:1,denumerator:1};if(a.readBit()&&a.readBit()){var m;p=(m=To[a.readBits(8)])==null?{numerator:0,denumerator:0}:m}return{width:d,height:f,pixelAspectRatio:p,profileIdc:n,constraintFlags:r,levelIdc:i}},To=[{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}],Eo=e=>{if(e.length<=78)return;let t=78;for(;t+8<=e.length;){let n=new DataView(e.buffer,e.byteOffset+t,8),r=n.getUint32(0),i=String.fromCharCode(n.getUint8(4),n.getUint8(5),n.getUint8(6),n.getUint8(7));if(r<8||t+r>e.length)break;if(i===`hvcC`)return e.slice(t+8,t+r);t+=r}};U();var Do=184549376;function Oo(e){let t=new Be(e),n=ko(t);(n.flags&Do)!==0&&Ao(t);let r=jo(t);if(String.fromCharCode(...r.frameId)===`TXXX`)return{header:n,txx:Mo(new Be(t.readBytes(r.size)))}}function ko(e){return{id:e.readBytes(3),majorVersion:e.readUint8(),minorVersion:e.readUint8(),flags:e.readUint8(),size:e.readUint32()}}function Ao(e){let t=e.readUint32();return e.readBytes(t-4),{}}function jo(e){return{frameId:e.readBytes(4),size:e.readUint32(),flags:e.readUint16()}}function Mo(e){return{encoding:e.readUint8(),description:e.readUtf8String(),value:e.readUtf8String()}}U();function No(e){let t=e.readUint32(),n=String.fromCharCode(e.readUint8(),e.readUint8(),e.readUint8(),e.readUint8());return t===1&&(t=e.readUint64()-8),{size:t-8,type:n}}function Po(e,t){let n=No(t),r=new Be(t.readBytes(n.size));if(n.type!==e.type)throw Error(`invalid error type: ${n.type}, expected ${e.type}`);let i=e.decodeData(r);return r.readRemaining(),i}function Fo(e){return{version:e.readUint8(),flags:e.readUint24()}}h();var Io=class e{constructor({timescale:t,presentationTime:n,presentationTimeDelta:r,schemeIdUri:i,value:a,eventDuration:o,id:s,data:c}){m(this,`type`,e.type),m(this,`timescale`,void 0),m(this,`presentationTime`,void 0),m(this,`presentationTimeDelta`,void 0),m(this,`schemeIdUri`,void 0),m(this,`value`,void 0),m(this,`eventDuration`,void 0),m(this,`id`,void 0),m(this,`data`,void 0),this.timescale=t,this.presentationTime=n,this.presentationTimeDelta=r,this.schemeIdUri=i,this.value=a,this.eventDuration=o,this.id=s,this.data=c}static decodeData(t){let{version:n}=Fo(t);switch(n){case 1:{let n=t.readUint32(),r=t.readUint64(),i=t.readUint32(),a=t.readUint32(),o=t.readUtf8String(),s=t.readUtf8String(),c=t.remaining();return new e({timescale:n,presentationTime:r,eventDuration:i,id:a,schemeIdUri:o,value:s,data:t.readBytes(c)})}case 0:{let n=t.readUtf8String(),r=t.readUtf8String(),i=t.readUint32(),a=t.readUint32(),o=t.readUint32(),s=t.readUint32(),c=t.remaining();return new e({timescale:i,presentationTimeDelta:a,schemeIdUri:n,value:r,eventDuration:o,id:s,data:t.readBytes(c)})}default:throw Error(`unsupported version ${n}`)}}};m(Io,`type`,`emsg`),h();var Lo=class e{constructor(t){m(this,`type`,e.type),m(this,`data`,void 0),this.data=t}static decodeData(t){return new e(t.readRemaining())}};m(Lo,`type`,`mdat`),h();var Ro=class e{constructor(t,n,r){m(this,`type`,e.type),m(this,`extra`,void 0),m(this,`byteOffset`,void 0),m(this,`baseMediaDecodeTime`,void 0),this.extra=t,this.byteOffset=n,this.baseMediaDecodeTime=r}static decodeData(t){let n=Fo(t),r=t.byteOffset(),i=0;return i=n.version===1?t.readUint64():t.readUint32(),new e(n,r,i)}};m(Ro,`type`,`tfdt`),h();var zo=1,Bo=2,Vo=8,Ho=16,Uo=32,Wo=class e{constructor(t,n,r,i){m(this,`type`,e.type),m(this,`extra`,void 0),m(this,`defaultSampleDuration`,void 0),m(this,`defaultSampleSize`,void 0),m(this,`defaultSampleFlags`,void 0),this.extra=t,this.defaultSampleDuration=n,this.defaultSampleSize=r,this.defaultSampleFlags=i}static decodeData(t){let n=Fo(t),r,i,a;return t.readUint32(),(n.flags&zo)>0&&t.readUint64(),(n.flags&Bo)>0&&t.readUint32(),(n.flags&Vo)>0&&(r=t.readUint32()),(n.flags&Ho)>0&&(i=t.readUint32()),(n.flags&Uo)>0&&(a=t.readUint32()),new e(n,r,i,a)}};m(Wo,`type`,`tfhd`),h();var Go=class e{is_sync_sample(t){let n=e.FLAG_SAMPLE_FLAG_IS_NON_SYNC|e.FLAG_SAMPLE_DEPENDS_YES,r=this.sampleFlags[t];if(r!==void 0)return(r&n)===0;if(t===0&&this.firstSampleFlags)return(this.firstSampleFlags&n)===0}constructor(t,n,r){m(this,`type`,e.type),m(this,`dataOffset`,void 0),m(this,`firstSampleFlags`,void 0),m(this,`samplesCount`,void 0),m(this,`sampleDurations`,[]),m(this,`sampleSizes`,[]),m(this,`sampleFlags`,[]),m(this,`sampleCts`,[]),this.dataOffset=n,this.firstSampleFlags=r,this.samplesCount=t}static decodeData(t){let{version:n,flags:r}=Fo(t),i=t.readUint32(),a,o;r&e.TRUN_DATA_OFFSET&&(a=t.readUint32()),r&e.TRUN_FIRST_SAMPLE_FLAGS&&(o=t.readUint32());let s=new e(i,a,o);if((r&(e.SAMPLE_DURATION|e.SAMPLE_SIZE|e.SAMPLE_FLAGS|e.SAMPLE_CTS))===0)return s;for(let a=0;a<i;a++)r&e.SAMPLE_DURATION&&s.sampleDurations.push(t.readUint32()),r&e.SAMPLE_SIZE&&s.sampleSizes.push(t.readUint32()),r&e.SAMPLE_FLAGS&&s.sampleFlags.push(t.readUint32()),r&e.SAMPLE_CTS&&s.sampleCts.push(n===0?t.readUint32():t.readInt32());return s}};m(Go,`TRUN_DATA_OFFSET`,1),m(Go,`TRUN_FIRST_SAMPLE_FLAGS`,4),m(Go,`SAMPLE_DURATION`,256),m(Go,`SAMPLE_SIZE`,512),m(Go,`SAMPLE_FLAGS`,1024),m(Go,`SAMPLE_CTS`,2048),m(Go,`FLAG_SAMPLE_FLAG_IS_NON_SYNC`,65536),m(Go,`FLAG_SAMPLE_DEPENDS_NO`,33554432),m(Go,`FLAG_SAMPLE_DEPENDS_YES`,16777216),m(Go,`type`,`trun`),h();var Ko=class e{constructor(t,n,r){m(this,`type`,e.type),m(this,`tfhd`,void 0),m(this,`tfdt`,void 0),m(this,`trun`,void 0),this.tfhd=t,this.tfdt=n,this.trun=r}static decodeData(t){let n,r,i;for(;t.remaining()>0;){let e=gs(t);e instanceof Wo&&(n=e),e instanceof Ro&&(r=e),e instanceof Go&&(i=e)}return new e(n,r,i)}};m(Ko,`type`,`traf`),h();var qo=class e{constructor(t){m(this,`type`,e.type),m(this,`traf`,void 0),this.traf=t}static decodeData(t){let n;for(;t.remaining()>0;){let e=gs(t);e instanceof Ko&&(n=e)}if(!n)throw Error(`No traf found`);return new e(n)}};m(qo,`type`,`moof`),h();var Jo=class e{constructor(){m(this,`type`,e.type)}static decodeData(t){return new e}};m(Jo,`type`,`mvhd`),h();var Yo=class e{constructor(t){m(this,`type`,e.type),m(this,`fourCC`,void 0),this.fourCC=t}mediaType(){switch(this.fourCC){case`vide`:return`video`;case`soun`:return`audio`;case`sbtl`:return`text`;default:throw Error(`Unknown media type`)}}static decodeData(t){return Fo(t),t.readUint32(),new e(String.fromCharCode(...t.readBytes(4)))}};m(Yo,`type`,`hdlr`),h();var Xo=class e{constructor(t,n,r,i){m(this,`type`,e.type),m(this,`creationTime`,void 0),m(this,`modificationTime`,void 0),m(this,`timescale`,void 0),m(this,`duration`,void 0),this.creationTime=t,this.modificationTime=n,this.timescale=r,this.duration=i}static decodeData(t){let{version:n}=Fo(t);return n===1?new e(t.readUint64(),t.readUint64(),t.readUint32(),t.readUint64()):new e(t.readUint32(),t.readUint32(),t.readUint32(),t.readUint32())}};m(Xo,`type`,`mdhd`),h();var Zo=class e{mediaType(){return this.avc1||this.hvc1||this.hev1||this.av01?`video`:`audio`}width(){var e;return(e=this.avc1)==null?void 0:e.width}height(){var e;return(e=this.avc1)==null?void 0:e.height}constructor(t,n,r,i,a,o,s){m(this,`type`,e.type),m(this,`av01`,void 0),m(this,`avc1`,void 0),m(this,`hvc1`,void 0),m(this,`hev1`,void 0),m(this,`mp4a`,void 0),m(this,`opus`,void 0),m(this,`codec`,void 0),this.avc1=t,this.hvc1=n,this.hev1=r,this.av01=i,this.mp4a=a,this.opus=o,this.codec=s}static decodeData(t){Fo(t);let n=t.readUint32(),r,i,a,o,s,c,l;for(let e=0;e<n;e++)for(;t.remaining()>0;){let e=gs(t);switch(e.type){case`avc1`:r=`h264`,i=e;break;case`hvc1`:r=`h265`,a=e;break;case`hev1`:r=`h265`,o=e;break;case`av01`:r=`av1`,l=e;break;case`mp4a`:r=`aac`,s=e;break;case`Opus`:r=`opus`,c=e;break}}return new e(i,a,o,l,s,c,r)}};m(Zo,`type`,`stsd`),h();var Qo=class e{constructor(t){m(this,`type`,e.type),m(this,`stsd`,void 0),this.stsd=t}static decodeData(t){let n;for(;t.remaining()>0;){let e=gs(t);e instanceof Zo&&(n=e)}if(!n)throw Error(`No stsd found`);return new e(n)}};m(Qo,`type`,`stbl`),h();var $o=class e{constructor(t){m(this,`type`,e.type),m(this,`stbl`,void 0),this.stbl=t}static decodeData(t){let n;for(;t.remaining()>0;){let e=gs(t);e instanceof Qo&&(n=e)}if(!n)throw Error(`No stbl found`);return new e(n)}};m($o,`type`,`minf`),h();var es=class e{constructor(t,n,r){m(this,`type`,e.type),m(this,`hdlr`,void 0),m(this,`minf`,void 0),m(this,`mdhd`,void 0),this.hdlr=t,this.minf=n,this.mdhd=r}static decodeData(t){let n,r,i;for(;t.remaining()>0;){let e=gs(t);e instanceof Yo&&(n=e),e instanceof $o&&(r=e),e instanceof Xo&&(i=e)}if(!n)throw Error(`No hdlr found`);if(!r)throw Error(`No minf found`);if(!i)throw Error(`No mdhd found`);return new e(n,r,i)}};m(es,`type`,`mdia`),h();var ts=class e{constructor(t,n,r,i,a,o,s,c){m(this,`type`,e.type),m(this,`modificationTime`,void 0),m(this,`creationTime`,void 0),m(this,`trackId`,void 0),m(this,`duration`,void 0),m(this,`alternateGroup`,void 0),m(this,`volume`,void 0),m(this,`width`,void 0),m(this,`height`,void 0),this.modificationTime=t,this.creationTime=n,this.trackId=r,this.duration=i,this.alternateGroup=a,this.volume=o,this.width=s,this.height=c}static decodeData(t){let n=Fo(t),r=0,i=0;n.version===1?(r=t.readUint64(),i=t.readUint64()):(r=t.readUint32(),i=t.readUint32());let a=t.readUint32();t.readUint32();let o=t.readUint32();t.readUint32(),t.readUint32(),t.readUint16();let s=t.readUint16(),c=t.readUint16();t.readUint16(),Array(9).fill(0).map(()=>t.readUint32());let l=t.readUint16();t.readUint16();let u=t.readUint16();return t.readUint16(),new e(r,i,a,o,s,c,l,u)}};m(ts,`type`,`tkhd`),h();var ns=class e{constructor(t,n){m(this,`type`,e.type),m(this,`tkhd`,void 0),m(this,`mdia`,void 0),this.tkhd=t,this.mdia=n}static decodeData(t){let n,r;for(;t.remaining()>0;){let e=gs(t);e instanceof ts&&(n=e),e instanceof es&&(r=e)}if(!n)throw Error(`No tkhd found`);if(!r)throw Error(`No mdia found`);return new e(n,r)}};m(ns,`type`,`trak`),h();var rs=class e{constructor(t,n){m(this,`type`,e.type),m(this,`mvhd`,void 0),m(this,`traks`,void 0),this.mvhd=t,this.traks=n}static decodeData(t){let n,r=[];for(;t.remaining()>0;){let e=gs(t);e instanceof ns&&r.push(e),e instanceof Jo&&(n=e)}if(!n)throw Error(`No mvhd found`);return new e(n,r)}};m(rs,`type`,`moov`),h();var is=class e{constructor(t,n,r,i,a,o,s,c){m(this,`type`,e.type),m(this,`configurationVersion`,void 0),m(this,`avcProfileIndication`,void 0),m(this,`profileCompatibility`,void 0),m(this,`avcLevelIndication`,void 0),m(this,`lengthSizeMinusOne`,void 0),m(this,`sequenceParameterSets`,void 0),m(this,`pictureParameterSets`,void 0),m(this,`bytes`,void 0),this.configurationVersion=t,this.avcProfileIndication=n,this.profileCompatibility=r,this.avcLevelIndication=i,this.lengthSizeMinusOne=a,this.sequenceParameterSets=o,this.pictureParameterSets=s,this.bytes=c}static decodeData(t){let n=t.buffer(),r=t.readUint8(),i=t.readUint8(),a=t.readUint8(),o=t.readUint8(),s=t.readUint8()&3,c=t.readUint8()&31,l=[];for(let e=0;e<c;e++){let e=t.readBytes(t.readUint16());l.push(e)}let u=t.readUint8(),d=[];for(let e=0;e<u;e++){let e=t.readBytes(t.readUint16());d.push(e)}return new e(r,i,a,o,s,l,d,n)}};m(is,`type`,`avcC`);var as=class e{constructor(t,n,r,i,a){m(this,`type`,e.type),m(this,`avcC`,void 0),m(this,`width`,void 0),m(this,`height`,void 0),m(this,`horizontalResolution`,void 0),m(this,`verticalResolution`,void 0),this.avcC=t,this.width=n,this.height=r,this.horizontalResolution=i,this.verticalResolution=a}static decodeData(t){t.readUint32(),t.readUint16(),t.readUint16(),t.readUint32(),t.readUint64(),t.readUint32();let n=t.readUint16(),r=t.readUint16(),i=t.readUint32(),a=t.readUint32();t.readUint32(),t.readUint16(),t.readBytes(32),t.readUint16(),t.readUint16();let o;for(;t.remaining()>0;){let e=gs(t);switch(e.type){case`avcC`:o=e;break}}if(!o)throw Error(`no avcC`);return new e(o,n,r,i,a)}};m(as,`type`,`avc1`),h();var os=e=>{for(let t=0;t<e.length-1;t++){if(e[t]!==5)continue;let n=0,r=0,i=t+1;for(;i<e.length&&r<4;){let t=e[i];if(n=n<<7|t&127,r++,i++,!(t&128))break}if(n<=0||r===4&&e[i-1]&128)continue;let a=t+1+r,o=a+n;if(o<=e.length)return e.slice(a,o)}},ss=class e{constructor(t){m(this,`type`,e.type),m(this,`decoderConfig`,void 0),this.decoderConfig=t}static decodeData(t){var n;return Fo(t),new e((n=os(t.readRemaining()))==null?new Uint8Array:n)}};m(ss,`type`,`esds`);var cs=class e{constructor(t,n,r){m(this,`type`,e.type),m(this,`channelCount`,void 0),m(this,`sampleRate`,void 0),m(this,`esds`,void 0),this.channelCount=t,this.sampleRate=n,this.esds=r}static decodeData(t){t.readUint32(),t.readUint16(),t.readUint16();let n=t.readUint16();t.readUint16(),t.readUint32();let r=t.readUint16();t.readUint16(),t.readUint32();let i=t.readUint16();t.readUint16(),n===1?t.readBytes(16):n===2&&t.readBytes(36);let a;for(;t.remaining()>0;){let e=gs(t);e.type===`esds`&&(a=e)}return new e(r,i,a)}};m(cs,`type`,`mp4a`),h();var ls=class e{constructor(t,n,r,i,a,o,s){m(this,`type`,e.type),m(this,`version`,void 0),m(this,`channelCount`,void 0),m(this,`preSkip`,void 0),m(this,`inputSampleRate`,void 0),m(this,`outputGain`,void 0),m(this,`channelMappingFamily`,void 0),m(this,`channelMappingTable`,void 0),this.version=t,this.channelCount=n,this.preSkip=r,this.inputSampleRate=i,this.outputGain=a,this.channelMappingFamily=o,this.channelMappingTable=s}static decodeData(t){let n=t.readUint8(),r=t.readUint8(),i=t.readUint16(),a=t.readUint32(),o=t.readUint16();return new e(n,r,i,a,o>32767?o-65536:o,t.readUint8(),t.readRemaining())}};m(ls,`type`,`dOps`);var us=class e{constructor(t,n,r){m(this,`type`,e.type),m(this,`dops`,void 0),m(this,`channelCount`,void 0),m(this,`sampleRate`,void 0),this.dops=t,this.channelCount=n,this.sampleRate=r}static decodeData(t){t.readUint32(),t.readUint16(),t.readUint16();let n=t.readUint16();t.readUint16(),t.readUint32();let r=t.readUint16();t.readUint16(),t.readUint32();let i=t.readUint16();return t.readUint16(),n===1&&(t.readUint64(),t.readUint64()),new e(Po(ls,t),r,i)}};m(us,`type`,`Opus`),h();var ds=class e{constructor(t,n){m(this,`type`,e.type),m(this,`ntpTimestamp`,void 0),m(this,`mediaTime`,void 0),this.ntpTimestamp=t,this.mediaTime=n}date(){let[e,t]=this.ntpTimestamp,n=e*1e3+t/2**32*1e3,r=new Date(Date.UTC(1900,0,1,0,0,0));return new Date(r.getTime()+n)}static decodeData(t){let{version:n}=Fo(t);t.readUint32();let r=t.readUint32(),i=t.readUint32();if(n===1){let n=t.readUint64();return new e([r,i],n)}let a=t.readUint32();return new e([r,i],a)}};m(ds,`type`,`prft`),D(),j(),N();var fs=new WeakMap,ps=new WeakMap,ms=class{constructor(e,t){E(this,fs,void 0),E(this,ps,void 0),A(fs,this,e),A(ps,this,t.readBytes(e.size))}data(){return M(ps,this)}get type(){return M(fs,this).type}};U();var hs={moov:rs,trak:ns,tkhd:ts,mvhd:Jo,moof:qo,traf:Ko,tfhd:Wo,tfdt:Ro,trun:Go,mdat:Lo,mdia:es,hdlr:Yo,minf:$o,stbl:Qo,mdhd:Xo,stsd:Zo,prft:ds,avc1:as,avcC:is,esds:ss,mp4a:cs,Opus:us,emsg:Io};function gs(e){let t=No(e),n=hs[t.type],r=new Be(e.readBytes(t.size));if(!n){let e=new ms(t,r);return r.readRemaining(),e}let i=n.decodeData(r);return r.readRemaining(),i}U();function _s(e){if(e.byteLength<8)throw Error(`Buffer too small`);let t=new Be(e),n=new Map;for(;t.remaining()>0;){let e=gs(t);n.set(e.type,e)}let r=n.get(`ftyp`),i=n.get(`moov`);if(!r)throw Error(`ftyp atom not found`);if(!i||!(i instanceof rs))throw Error(`moov atom not found`);return{ftyp:r,moov:i}}function vs(e){if(e.byteLength<8)throw Error(`Buffer too small`);let t=new Be(e),n=new Map,r=[];for(;t.remaining()>0;){let e=gs(t);e instanceof Io&&r.push(e),n.set(e.type,e)}let i=n.get(`moof`),a=n.get(`mdat`),o=n.get(`prft`);if(!i||!(i instanceof qo))throw Error(`moof atom not found`);if(!a||!(a instanceof Lo))throw Error(`mdat atom not found`);if(o&&!(o instanceof ds))throw Error(`invalid prft found`);return{moof:i,mdat:a,prft:o,emsgs:r}}D(),j(),N();var ys=(e,t)=>e&&e.length>0?{perSample:e}:{defaultValue:t},bs=1e4,xs=e=>{if(!e||e.length<=1)return;let t=Array(e.length),n=0;for(let r=0;r<e.length;r++)t[r]=n,n+=e[r]||0;return t},Ss=new WeakMap,Cs=new WeakMap,ws=class{constructor(e){E(this,Ss,void 0),E(this,Cs,void 0),A(Ss,this,e),A(Cs,this,_s(e))}rawBytes(){return M(Ss,this)}init(){return M(Cs,this)}},Ts=new WeakMap,Es=new WeakMap,q=new WeakMap,Ds=new WeakMap,Os=new WeakMap,ks=new WeakMap,As=new WeakMap,js=new WeakMap,Ms=new WeakMap,Ns=new WeakMap,Ps=new WeakMap,Fs=class e{clone(){return new e(M(Es,this),new Uint8Array(M(Ts,this).buffer.slice(M(Ts,this).byteOffset,M(Ts,this).byteOffset+M(Ts,this).byteLength)))}constructor(e,t){var n,r;E(this,Ts,void 0),E(this,Es,void 0),E(this,q,void 0),E(this,Ds,void 0),E(this,Os,void 0),E(this,ks,void 0),E(this,As,void 0),E(this,js,void 0),E(this,Ms,void 0),E(this,Ns,void 0),E(this,Ps,void 0),A(Ts,this,t),A(Es,this,e),A(q,this,vs(t)),A(Ds,this,M(Es,this).init().moov.traks[0]);let i=M(q,this).moof.traf.trun,a=M(q,this).moof.traf.tfhd,o=a==null?void 0:a.defaultSampleSize,s=(n=i==null?void 0:i.samplesCount)==null?0:n;i!==void 0&&(i.sampleSizes.length>0||i.sampleDurations.length>0||i.sampleFlags.length>0||i.sampleCts.length>0)?A(Os,this,s):o!==void 0&&o>0?A(Os,this,Math.min(s,Math.floor(M(q,this).mdat.data.byteLength/o))):A(Os,this,Math.min(s,bs)),A(ks,this,s-M(Os,this)),A(As,this,ys(i==null?void 0:i.sampleDurations,a==null?void 0:a.defaultSampleDuration));let c=o===0&&M(q,this).mdat.data.byteLength>0;A(js,this,ys(i==null?void 0:i.sampleSizes,c?void 0:o)),A(Ms,this,xs(M(js,this).perSample)),A(Ns,this,xs(M(As,this).perSample)),A(Ps,this,M(As,this).perSample?M(As,this).perSample.reduce((e,t)=>e+t,0):((r=M(As,this).defaultValue)==null?0:r)*M(Os,this))}updateBaseMediaDecodeTime(e){let t=new DataView(M(Ts,this).buffer,M(Ts,this).byteOffset,M(Ts,this).byteLength);if(M(q,this).moof.traf.tfdt)if(M(q,this).moof.traf.tfdt.baseMediaDecodeTime=e,M(q,this).moof.traf.tfdt.extra.version===1){let n=Math.floor(e/4294967296),r=(e&4294967295)>>>0;t.setUint32(M(q,this).moof.traf.tfdt.byteOffset-M(Ts,this).byteOffset,n),t.setUint32(M(q,this).moof.traf.tfdt.byteOffset-M(Ts,this).byteOffset+4,r)}else t.setUint32(M(q,this).moof.traf.tfdt.byteOffset-M(Ts,this).byteOffset,e)}producerReferenceTime(){if(M(q,this).prft)return M(q,this).prft.date()}duration(){return M(Ps,this)}baseMediaDecodeTime(){var e;let t=(e=M(q,this).moof.traf.tfdt)==null?void 0:e.baseMediaDecodeTime;if(!t)throw Error(`no baseMediaDecodeTime`);return t}startsWithKeyframe(){var e;let t=M(q,this).moof.traf.trun,n=(t==null?void 0:t.firstSampleFlags)||(t==null?void 0:t.sampleFlags[0])||((e=M(q,this).moof.traf.tfhd)==null?void 0:e.defaultSampleFlags);return n?(n&Go.FLAG_SAMPLE_DEPENDS_NO)!==0:!1}compositionTimeOffset(e){var t;return(t=M(q,this).moof.traf.trun)==null?void 0:t.sampleCts[e]}sampleCompositionTimeOffsets(){var e,t;return(e=(t=M(q,this).moof.traf.trun)==null?void 0:t.sampleCts)==null?[]:e}timescale(){let e=M(Ds,this);if(!e)throw Error(`no tracks`);return e.mdia.mdhd.timescale}mediaType(){var e;let t=(e=M(Ds,this))==null?void 0:e.mdia.hdlr.mediaType();if(!t)throw Error(`no media type`);return t}header(){return M(Es,this)}fragment(){return M(q,this)}samplesCount(){return M(Os,this)}unbackedSamplesCount(){return M(ks,this)}sample(e){var t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_;let v=M(q,this).moof.traf.trun,y=M(Ds,this),b=M(Os,this),ee=(t=M(q,this).moof.traf.tfdt)==null?void 0:t.baseMediaDecodeTime;if(e>=b||ee===void 0||!y)return;let x=y.mdia.minf.stbl.stsd,S=x.codec;if(!S)return;let te=v==null?void 0:v.sampleCts[e],ne=(n=(r=(i=M(As,this).perSample)==null?void 0:i[e])==null?M(As,this).defaultValue:r)==null?0:n,re=ee+((a=(o=M(Ns,this))==null?void 0:o[e])==null?e*((s=M(As,this).defaultValue)==null?0:s):a),ie=y.mdia.mdhd.timescale||1e3,C=(c=(l=(u=M(js,this).perSample)==null?void 0:u[e])==null?M(js,this).defaultValue:l)==null?b===1?M(q,this).mdat.data.byteLength:void 0:c;if(C===void 0)return;let ae=(d=(f=M(Ms,this))==null?void 0:f[e])==null?e*((p=M(js,this).defaultValue)==null?0:p):d;if(ae+C>M(q,this).mdat.data.byteLength)return;let w=M(q,this).mdat.data.subarray(ae,ae+C),oe=(v==null?void 0:v.is_sync_sample(e))||!1;return y.mdia.hdlr.mediaType()===`video`?{type:`video`,codec:S,width:y.tkhd.width||0,height:y.tkhd.height||0,duration:ne,isSync:oe,timescale:ie,timestamp:re,compositionTimeOffset:te,data:w}:{type:`audio`,codec:S,channels:(x==null||(m=x.opus)==null?void 0:m.channelCount)||(x==null||(h=x.mp4a)==null?void 0:h.channelCount)||0,sampleRate:(x==null||(g=x.opus)==null?void 0:g.sampleRate)||(x==null||(_=x.mp4a)==null?void 0:_.sampleRate)||0,duration:ne,isSync:oe,timestamp:re,compositionTimeOffset:te,data:w,timescale:ie}}rawBytes(){return M(Ts,this)}},Is=new WeakMap,Ls=class{constructor(e){E(this,Is,void 0),A(Is,this,new ws(e))}header(){return M(Is,this)}createFragment(e){return new Fs(M(Is,this),e)}};function J(e){let t=new ArrayBuffer(e.length),n=new Uint8Array(t);for(let t=0,r=e.length;t<r;t++)n[t]=e.charCodeAt(t);return new Uint8Array(t)}var Y={ftyp:J(`ftyp`),mvhd:J(`mvhd`),moov:J(`moov`),trak:J(`trak`),tkhd:J(`tkhd`),mdia:J(`mdia`),mdhd:J(`mdhd`),hdlr:J(`hdlr`),minf:J(`minf`),vmhd:J(`vmhd`),smhd:J(`smhd`),dinf:J(`dinf`),dref:J(`dref`),stbl:J(`stbl`),stsd:J(`stsd`),avc1:J(`avc1`),hvc1:J(`hvc1`),hev1:J(`hev1`),av01:J(`av01`),av1C:J(`av1C`),avcC:J(`avcC`),hvcC:J(`hvcC`),esds:J(`esds`),colr:J(`colr`),nclx:J(`nclx`),mvex:J(`mvex`),trex:J(`trex`),udta:J(`udta`),meta:J(`meta`),ilst:J(`ilst`),moof:J(`moof`),mfhd:J(`mfhd`),traf:J(`traf`),tfhd:J(`tfhd`),tfdt:J(`tfdt`),trun:J(`trun`),mdat:J(`mdat`),mp4a:J(`mp4a`),Opus:J(`Opus`),prft:J(`prft`),dOps:J(`dOps`),emsg:J(`emsg`)};U(),h();var Rs=1e3,zs={vide:J(`vide`),soun:J(`soun`),videoHandler:J(`VideoHandler\0`),soundHandler:J(`SoundHandler\0`),url:J(`url `),pasp:J(`pasp`),btrt:J(`btrt`),stts:J(`stts`),stsc:J(`stsc`),stsz:J(`stsz`),stco:J(`stco`),data:J(`data`),mdir:J(`mdir`),appl:J(`appl`)},Bs=J(`iso6`),Vs=new Uint8Array([0,0,2,0]),Hs=[Bs,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([97,118,99,49]),new Uint8Array([109,112,52,49])],Us=[Bs,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([104,118,99,49]),new Uint8Array([109,112,52,49])],Ws=[Bs,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([97,118,48,49]),new Uint8Array([109,112,52,49])],Gs=[Bs,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([109,112,52,49])],Ks=class{constructor(e){m(this,`writer`,void 0),m(this,`moofOffset`,0),this.writer=new He(e)}},X=(e,t,n)=>{e.writer.writeUint32(n+8),e.writer.writeBytes(t)},qs=(e,t,n,r,i)=>{X(e,t,n+4),e.writer.writeUint8(r),e.writer.writeUint24(i)},Js=(e,t)=>{X(e,Y.ftyp,Bs.byteLength+Vs.byteLength+t.reduce((e,t)=>e+t.byteLength,0)),e.writer.writeBytes(Bs),e.writer.writeBytes(Vs),t.forEach(t=>e.writer.writeBytes(t))},Ys=2**32,Xs=2208988800,Zs=(e,t,n,r)=>{qs(e,Y.prft,20,1,0);let i=n/1e3,a=Math.floor(i),o=(i-a)*1e3*1e3*Ys/1e6;e.writer.writeUint32(t),e.writer.writeUint32(a+Xs),e.writer.writeUint32(o),e.writer.writeUint64(r)},Qs=(e,t,n)=>{qs(e,Y.mvhd,96,0,0),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint32(n),e.writer.writeUint32(t),e.writer.writeUint32(65536),e.writer.writeUint16(256),e.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])),e.writer.writeUint32(2)},$s=e=>`sequenceParameterSets`in e,ec=e=>`sequenceHeader`in e,tc=e=>`hvcC`in e,nc=e=>e.type===`video`,rc=e=>e.type===`audio`,ic=(e,t,n)=>{let r=e.writer.position();qs(e,Y.tkhd,0,0,3),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint32(t.trackId),e.writer.writeUint32(0),e.writer.writeUint32(t.duration*n/t.timescale),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint16(0),e.writer.writeUint16(rc(t)?1:0),e.writer.writeUint16(rc(t)?256:0),e.writer.writeUint16(0),e.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])),nc(t)?(e.writer.writeUint32(t.width*65536),e.writer.writeUint32(t.height*65536)):rc(t)&&(e.writer.writeUint32(0),e.writer.writeUint32(0)),e.writer.writeUint32At(r,e.writer.position()-r)},ac=(e,t)=>{qs(e,Y.mdhd,20,0,0),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint32(t.timescale),e.writer.writeUint32(t.duration);let n=t.lang||`und`,r=(n.charCodeAt(0)&31)<<10|(n.charCodeAt(1)&31)<<5|n.charCodeAt(2)&31;e.writer.writeUint16(r),e.writer.writeUint16(0)},oc=(e,t)=>{let n=e.writer.position();qs(e,Y.hdlr,0,0,0),e.writer.writeUint32(0),e.writer.writeBytes(nc(t)?zs.vide:zs.soun),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeBytes(nc(t)?zs.videoHandler:zs.soundHandler),e.writer.writeUint32At(n,e.writer.position()-n)},sc=e=>{let t=e.writer.position();X(e,Y.dinf,0),qs(e,Y.dref,16,0,0),e.writer.writeUint32(1),qs(e,zs.url,0,0,1),e.writer.writeUint32At(t,e.writer.position()-t)},cc=(e,t)=>{let n=e.writer.position();X(e,Y.avcC,0),e.writer.writeUint8(1),e.writer.writeUint8(t.sequenceParameterSets[0][1]),e.writer.writeUint8(t.sequenceParameterSets[0][2]),e.writer.writeUint8(t.sequenceParameterSets[0][3]),e.writer.writeUint8(255),e.writer.writeUint8(224|t.sequenceParameterSets.length),t.sequenceParameterSets.forEach(t=>{e.writer.writeUint16(t.byteLength),e.writer.writeBytes(t)}),e.writer.writeUint8(t.pictureParameterSets.length),t.pictureParameterSets.forEach(t=>{e.writer.writeUint16(t.byteLength),e.writer.writeBytes(t)}),e.writer.writeUint32At(n,e.writer.position()-n)},lc=(e,t)=>{var n,r;let i=e.writer.position();X(e,Y.av1C,0);let{seqProfile:a,operatingPoints:o,colorConfig:s}=t.parsedSequenceHeader,c=o[0];e.writer.writeUint8(129),e.writer.writeUint8(a<<5|((n=c==null?void 0:c.seqLevelIdx)==null?0:n)),e.writer.writeUint8(((r=c==null?void 0:c.tier)==null?0:r)|(s.highBitDepth?1:0)|(s.bitDepth===12?1:0)<<5|(s.monoChrome?1:0)<<4|s.subsamplingX<<3|s.subsamplingY<<2|s.chromaSamplePosition&65535),e.writer.writeUint8(0),e.writer.writeBytes(t.sequenceHeader),e.writer.writeUint32At(i,e.writer.position()-i)},uc=(e,t)=>{let n=e.writer.position();X(e,Y.hvcC,0),e.writer.writeBytes(t.hvcC),e.writer.writeUint32At(n,e.writer.position()-n)},dc=e=>ec(e)?Y.av01:tc(e)?Y[e.sampleEntry]:Y.avc1,fc=(e,t)=>{let n=e.writer.position();X(e,dc(t),0),e.writer.writeUint32(0),e.writer.writeUint16(0),e.writer.writeUint16(1),e.writer.writeUint16(0),e.writer.writeUint16(0),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint16(t.width),e.writer.writeUint16(t.height),e.writer.writeUint32(4718592),e.writer.writeUint32(4718592),e.writer.writeUint32(0),e.writer.writeUint16(1),e.writer.writeUint8(0),e.writer.writeBytes(new Uint8Array(31)),e.writer.writeUint16(24),e.writer.writeUint16(-1),$s(t)?cc(e,t):ec(t)?(lc(e,t),t.parsedSequenceHeader.colorConfig&&(X(e,Y.colr,11),e.writer.writeBytes(Y.nclx),e.writer.writeUint16(t.parsedSequenceHeader.colorConfig.colorPrimaries),e.writer.writeUint16(t.parsedSequenceHeader.colorConfig.transferCharacteristics),e.writer.writeUint16(t.parsedSequenceHeader.colorConfig.matrixCoefficients),e.writer.writeUint8(t.parsedSequenceHeader.colorConfig.colorRange?1:0))):tc(t)&&uc(e,t),t.pixelAspectRatio&&(X(e,zs.pasp,8),e.writer.writeUint32(t.pixelAspectRatio.numerator),e.writer.writeUint32(t.pixelAspectRatio.denumerator)),t.bitrate&&(X(e,zs.btrt,12),e.writer.writeUint32(0),e.writer.writeUint32(t.bitrate),e.writer.writeUint32(t.bitrate)),e.writer.writeUint32At(n,e.writer.position()-n)},pc=(e,t,n)=>{let r=3;for(e.writer.writeUint8(t);r>0;r--)e.writer.writeUint8(n>>7*r|128);e.writer.writeUint8(n&127)},mc=(e,t)=>{let n=t.decoderConfig.byteLength>0?t.decoderConfig.byteLength+5:0,r=e.writer.position();qs(e,Y.esds,0,0,0),pc(e,3,21+n+5+1),e.writer.writeUint16(t.trackId),e.writer.writeUint8(0),pc(e,4,13+n);let i=t.codec===`mp3`&&t.sampleRate>24e3?107:64;e.writer.writeUint8(i),e.writer.writeUint8(21),e.writer.writeUint24(0),e.writer.writeUint32(t.bitrate||0),e.writer.writeUint32(t.bitrate||0),t.decoderConfig.byteLength>0&&(pc(e,5,t.decoderConfig.byteLength),e.writer.writeBytes(t.decoderConfig)),pc(e,6,1),e.writer.writeUint8(2),e.writer.writeUint32At(r,e.writer.position()-r)},hc=e=>{switch(e){case`aac`:case`mp3`:return Y.mp4a;case`opus`:return Y.Opus}},gc=(e,t)=>{let n=e.writer.position();X(e,Y.dOps,0),e.writer.writeUint8(0);let r=t.decoderConfig,i=new DataView(r.buffer,r.byteOffset,r.byteLength);e.writer.writeUint8(i.getUint8(9)),e.writer.writeUint16(i.getUint16(10,!0)),e.writer.writeUint32(i.getUint32(12,!0)),e.writer.writeUint16(i.getUint16(16,!0)),e.writer.writeBytes(t.decoderConfig.slice(18)),e.writer.writeUint32At(n,e.writer.position()-n)},_c=(e,t)=>{let n=e.writer.position();switch(X(e,hc(t.codec),0),e.writer.writeUint32(0),e.writer.writeUint16(0),e.writer.writeUint16(1),e.writer.writeUint16(0),e.writer.writeUint16(0),e.writer.writeUint32(0),e.writer.writeUint16(t.channelCount),e.writer.writeUint16(16),e.writer.writeUint32(0),e.writer.writeUint16(t.sampleRate),e.writer.writeUint16(0),t.codec){case`aac`:case`mp3`:mc(e,t);break;case`opus`:gc(e,t);break}t.bitrate&&(X(e,zs.btrt,12),e.writer.writeUint32(0),e.writer.writeUint32(t.bitrate),e.writer.writeUint32(t.bitrate)),e.writer.writeUint32At(n,e.writer.position()-n)},vc=(e,t)=>{let n=e.writer.position();X(e,Y.stbl,0);let r=e.writer.position();qs(e,Y.stsd,0,0,0),e.writer.writeUint32(1),nc(t)?fc(e,t):rc(t)&&_c(e,t),e.writer.writeUint32At(r,e.writer.position()-r),qs(e,zs.stts,4,0,0),e.writer.writeUint32(0),qs(e,zs.stsc,4,0,0),e.writer.writeUint32(0),qs(e,zs.stsz,8,0,0),e.writer.writeUint32(0),e.writer.writeUint32(0),qs(e,zs.stco,4,0,0),e.writer.writeUint32(0),e.writer.writeUint32At(n,e.writer.position()-n)},yc=(e,t)=>{let n=e.writer.position();X(e,Y.minf,0),nc(t)?(qs(e,Y.vmhd,8,0,1),e.writer.writeUint32(0),e.writer.writeUint32(0)):rc(t)&&(qs(e,Y.smhd,4,0,0),e.writer.writeUint16(0),e.writer.writeUint16(0)),sc(e),vc(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},bc=(e,t)=>{let n=e.writer.position();X(e,Y.mdia,0),ac(e,t),oc(e,t),yc(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},xc=(e,t,n)=>{let r=e.writer.position();X(e,Y.trak,0),ic(e,t,n),bc(e,t),e.writer.writeUint32At(r,e.writer.position()-r)},Sc=(e,t)=>{qs(e,Y.trex,20,0,0),e.writer.writeUint32(t.trackId),e.writer.writeUint32(1),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint32(0)},Cc=(e,t)=>{let n=e.writer.position();X(e,Y.mvex,0),t.forEach(t=>Sc(e,t)),e.writer.writeUint32At(n,e.writer.position()-n)},wc=(e,t,n)=>{let r=e.writer.position();X(e,J(t),0),X(e,zs.data,0),e.writer.writeUint32(1),e.writer.writeUint32(0),e.writer.writeBytes(J(n)),e.writer.writeUint32At(r,e.writer.position()-r),e.writer.writeUint32At(r+8,e.writer.position()-r-8)},Tc=(e,t)=>{let n=e.writer.position();qs(e,Y.meta,0,0,0);let r=e.writer.position();X(e,Y.hdlr,25),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeBytes(zs.mdir),e.writer.writeBytes(zs.appl),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint8(0),e.writer.writeUint32At(r,e.writer.position()-r);let i=e.writer.position();X(e,Y.ilst,0),t==null||t.forEach((t,n)=>wc(e,n,t)),e.writer.writeUint32At(i,e.writer.position()-i),e.writer.writeUint32At(n,e.writer.position()-n)},Ec=(e,t)=>{let n=e.writer.position();X(e,Y.udta,0),Tc(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},Dc=(e,t,n,r)=>{let i=e.writer.position();X(e,Y.moov,0),Qs(e,0,n),t.forEach(t=>xc(e,t,n)),Cc(e,t),r&&Ec(e,r),e.writer.writeUint32At(i,e.writer.position()-i)},Oc=(e,t)=>{let n=e.writer.position();qs(e,Y.tfhd,16,0,56),e.writer.writeUint32(t.trackId),e.writer.writeUint32(t.defaultDuration||0),e.writer.writeUint32(t.defaultSize||0),e.writer.writeUint32(t.defaultFlags||0),e.writer.writeUint32At(n,e.writer.position()-n)},kc=(e,t)=>{let n=e.writer.position();qs(e,Y.tfdt,8,1,0);let r=Math.floor(t.timestamp/4294967296),i=(t.timestamp&4294967295)>>>0;e.writer.writeUint32(r),e.writer.writeUint32(i),e.writer.writeUint32At(n,e.writer.position()-n)},Ac=(e,t)=>{if(!t.samples[0])throw Error(`At least one sample must be provided`);let n=t.samples.some(e=>!!e.compositionTimeOffset),r=jc(t.samples[0])!==t.defaultFlags,i=t.samples.length>1,a=1;r&&(a|=4),n&&(a|=2048),i&&(a|=512,a|=256,a|=1024);let o=e.writer.position();qs(e,Y.trun,16,1,a),e.writer.writeUint32(t.samples.length);let s=e.writer.position();e.writer.writeUint32(0),r&&e.writer.writeUint32(jc(t.samples[0]));for(let r of t.samples)i&&(e.writer.writeUint32(r.duration),e.writer.writeUint32(r.data.byteLength),e.writer.writeUint32(jc(r))),n&&e.writer.writeUint32(r.compositionTimeOffset||0);e.writer.writeUint32At(s,e.writer.position()-e.moofOffset+8),e.writer.writeUint32At(o,e.writer.position()-o)},jc=e=>e.isSync?33554432:16842752,Mc=(e,t)=>{let n=e.writer.position();X(e,Y.traf,0),Oc(e,t),kc(e,t),Ac(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},Nc=(e,t)=>{qs(e,Y.mfhd,4,0,0),e.writer.writeUint32(t)},Pc=(e,t)=>{let n=e.writer.position();X(e,Y.moof,0),Nc(e,t.sequenceNumber),Mc(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},Fc=(e,t,n)=>{X(e,Y.mdat,n);for(let n of t.samples){let t=n.data instanceof ArrayBuffer?new Uint8Array(n.data):n.data;e.writer.writeBytes(t)}},Ic=(e,t)=>{let n=new Ks,r=e.filter(e=>nc(e)&&$s(e)).length>0,i=e.filter(e=>nc(e)&&tc(e)).length>0;return e.filter(e=>nc(e)&&ec(e)).length>0?Js(n,Ws):i?Js(n,Us):r?Js(n,Hs):Js(n,Gs),Dc(n,e,Rs,t),n.writer.buffer()},Lc=e=>{var t;let n=0;for(let t of e.samples)n+=t.data.byteLength;let r=new Ks(n+256);return((t=e.samples[0])==null?void 0:t.producerReferenceTime)!==void 0&&Zs(r,e.trackId,e.samples[0].producerReferenceTime,e.timestamp),r.moofOffset=r.writer.position(),Pc(r,e),Fc(r,e,n),r.writer.bufferExact()},Rc=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return Lc({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:33554432,defaultDuration:n.duration,samples:e})},zc=(e,t,n,r)=>Ic([{type:`audio`,codec:`aac`,decoderConfig:e,channelCount:t,sampleRate:n,timescale:r,duration:0,trackId:1}]),Bc=e=>{let{sequenceParameterSets:t,pictureParameterSets:n}=Co(e),r=t[0],i=n[0];if(!r||!i)throw Error(`No sps or pps provided`);return wo(r)},Vc=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return Lc({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:n.isSync?33554432:16842752,defaultDuration:n.duration,samples:e})},Hc=(e,t)=>{let{sequenceParameterSets:n,pictureParameterSets:r}=Co(e),i=Bc(e);return Ic([{type:`video`,sequenceParameterSets:n.map(e=>new Uint8Array(e)),pictureParameterSets:r.map(e=>new Uint8Array(e)),width:i.width,height:i.height,timescale:t,duration:0,trackId:1}])},Uc=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return Lc({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:n.isSync?33554432:16842752,defaultDuration:n.duration,samples:e})},Wc=(e,t,n,r,i)=>Ic([{type:`video`,hvcC:new Uint8Array(e),sampleEntry:i,width:n,height:r,timescale:t,duration:0,trackId:1}]),Gc=(e,t,n)=>Ic([{type:`audio`,trackId:1,channelCount:t,timescale:n,codec:`opus`,decoderConfig:e,duration:0,sampleRate:48e3}]),Kc=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return Lc({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:33554432,defaultDuration:n.duration,samples:e})};U(),D(),j(),N();var qc=e=>{if(e.length<=78)return;let t=78;for(;t+8<=e.length;){let n=new DataView(e.buffer,e.byteOffset+t,8),r=n.getUint32(0),i=String.fromCharCode(n.getUint8(4),n.getUint8(5),n.getUint8(6),n.getUint8(7));if(r<8||t+r>e.length)break;if(i===`av1C`)return e.slice(t+8,t+r);t+=r}};Symbol.iterator;var Jc=e=>{let t=new Pe(e);return t.peekBit()===1&&t.readBits(32),Zc(t),cl(t)},Yc=e=>{let t=0,n=0;for(let r=0;r<8;r++){let i=e.readBits(8);if(t|=(i&127)<<r*7,n+=1,(i&128)!=128)break}return[n,t]},Xc=e=>{let t=0;for(;t<100&&e.readBit()===0;)t++;return t>=32?0:e.readBits(t)+(1<<t)-1},Zc=e=>{let t=e.remainingBits()/8,n=e.readBits(8);if(n>>7&1)return;let r=n>>3&15,i=n>>2&1,a=n>>1&1;i===1&&e.readBits(8);let[o,s]=a?Yc(e):[0,t];return{headerLength:1+i+o,type:r,obuSize:s}},Qc=e=>{let t=e.readBits(32),n=e.readBits(32),r=e.readBit()!==0,i=0;return r&&(i=Xc(e)+1),{timescale:n,equalPictureInterval:r,numUnitsInDisplayTick:t,numTicksPerPicture:i}},$c=2,el=2,tl=1,nl=2,rl=2,il=13,al=0,ol=2,sl=0,cl=e=>{var t;let n=e.readBits(3),r=e.readBit()!==0,i=e.readBit()!==0,a,o=!1,s=!1,c=!1,l=0,u=0,d=[];if(i)e.readBits(5);else{if(s=e.readBit()!==0,s&&(a=Qc(e),o=e.readBit()!==0,o))throw Error(`Not implemented`);c=e.readBit()!==0;let t=e.readBits(5)+1;for(let n=0;n<t;n++){let t=e.readBits(12),n=e.readBits(5),r=0;if(n>7&&(r=e.readBit()),o)throw Error(`decoderModelInfoPresentFlag==1`);c&&e.readBit()!==0&&e.readBits(4),d.push({tier:r,operatingPointIdc:t,seqLevelIdx:n})}}let f=e.readBits(4)+1,p=e.readBits(4)+1,m=e.readBits(f)+1,h=e.readBits(p)+1,g=!1;g=i?!1:e.readBit()!==0,g&&(l=e.readBits(4)+2,u=e.readBits(3)+1);let _=e.readBit()!==0,v=e.readBit()!==0,y=e.readBit()!==0,b=!1,ee=!1,x=!1,S=!1,te=!1,ne=!1,re=!1,ie=$c,C=el,ae=0;i||(b=e.readBit()!==0,ee=e.readBit()!==0,x=e.readBit()!==0,S=e.readBit()!==0,te=e.readBit()!==0,te&&(ne=e.readBit()!==0,re=e.readBit()!==0),ie=e.readBit()===0?e.readBit():$c,C=ie>0?e.readBit()>0?el:e.readBit():el,ae=te?e.readBits(3):0);let w=e.readBit()!==0,oe=e.readBit()!==0,T=e.readBit()!==0;return{seqProfile:n,stillPicture:r,reducedStillPictureHeader:i,timingInfoPresentFlag:s,timingInfo:(t=a)==null?{equalPictureInterval:!1,numUnitsInDisplayTick:0,timescale:0,numTicksPerPicture:0}:t,decoderModelInfoPresentFlag:o,initialDisplayDelayPresentFlag:c,operatingPoints:d,frameWidthBits:f,frameHeightBits:p,maxFrameWidth:m,maxFrameHeight:h,frameIdNumbersPresentFlag:g,deltaFrameIdLength:l,additionalFrameIdLength:u,use_128x128Superblock:_,enableFilterIntra:v,enableIntraEdgeFilter:y,enableInterintraCompound:b,enableMaskedCompound:ee,enableWarpedMotion:x,enableDualFilter:S,enableOrderHint:te,enableJntComp:ne,enableRefFrameMvs:re,seqForceScreenContentTools:ie,seqForceIntegerMv:C,orderHintBits:ae,enableSuperres:w,enableCdef:oe,enableRestoration:T,colorConfig:ll(e,n),filmGrainParamsPresent:e.readBit()!==0}},ll=(e,t)=>{let n=e.readBit()!==0,r=8,i=!1;t===2&&n?r=e.readBit()===0?10:12:t<=2&&(r=n?10:8),i=t===1?!1:e.readBit()!==0;let a=i?1:3,o=e.readBit()!==0,s=nl,c=rl,l=ol,u=!1,d=0,f=0,p=sl,m=!1;return o&&(s=e.readBits(8),c=e.readBits(8),l=e.readBits(8)),i?(u=e.readBit()!==0,d=1,f=1,p=sl,m=!1,{highBitDepth:n,bitDepth:r,monoChrome:i,chromaSamplePosition:p,colorPrimaries:s,colorRange:u,matrixCoefficients:l,numPlanes:a,separateUvDeltaQ:m,subsamplingX:d,subsamplingY:f,transferCharacteristics:c}):s===tl&&c===il&&l===al?(u=!0,d=0,f=0,{highBitDepth:n,bitDepth:r,monoChrome:i,chromaSamplePosition:p,colorPrimaries:s,colorRange:u,matrixCoefficients:l,numPlanes:a,separateUvDeltaQ:m,subsamplingX:d,subsamplingY:f,transferCharacteristics:c}):(u=e.readBit()!==0,t===0?(d=1,f=1):t===1?(d=0,f=0):r===12?(d=e.readBit(),f=d===0?0:e.readBit()):(d=1,f=0),d!==0&&f!==0&&(p=e.readBits(2)),m=e.readBit()!==0,{highBitDepth:n,bitDepth:r,monoChrome:i,chromaSamplePosition:p,colorPrimaries:s,colorRange:u,matrixCoefficients:l,numPlanes:a,separateUvDeltaQ:m,subsamplingX:d,subsamplingY:f,transferCharacteristics:c})},ul=e=>{let t=Jc(e);if(t)return{width:t.maxFrameWidth,height:t.maxFrameHeight}},dl=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return Lc({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:n.isSync?33554432:16842752,defaultDuration:n.duration,samples:e})},fl=(e,t)=>{let n=Jc(e);if(!n)throw Error(`Failed to parse sequence header`);return Ic([{type:`video`,parsedSequenceHeader:n,sequenceHeader:new Uint8Array(e),width:n.maxFrameWidth,height:n.maxFrameHeight,timescale:t,duration:0,trackId:1}])};ho();var pl=e=>{let{codec:t,initData:n,timescale:r}=e;switch(t){case`h264`:return hl(n,r);case`h265`:return _l(n,r,e.width,e.height,e.codecString);case`av1`:return gl(n,r);case`opus`:return vl(n,r);case`aac`:return yl(n,r,e.channelCount||2,e.sampleRate||r);default:throw Error(`Failed to initialize ${t} segment`)}},ml=(e,t)=>{switch(e){case`h264`:return Bc(t);case`av1`:return ul(t)}},hl=(e,t)=>Hc(e,t),gl=(e,t)=>fl(e,t),_l=(e,t,n,r,i)=>{if(!n||!r)throw Error(`HEVC init segment requires width and height`);return Wc(e,t,n,r,i!=null&&i.startsWith(`hev1`)?`hev1`:`hvc1`)},vl=(e,t)=>{let n=new DataView(e).getUint8(9);return Gc(new Uint8Array(e),n,t)},yl=(e,t,n,r)=>{var i,a;let o=new Uint8Array(e),s=mo(o);return zc(o,(i=s==null?void 0:s.channelCount)==null?n:i,(a=s==null?void 0:s.sampleRate)==null?r:a,t)},bl=(e,t)=>{if(!e[0])throw Error(`At least one sample must be provided`);switch(e[0].codec){case`h264`:return Vc(e,t);case`h265`:return Uc(e,t);case`opus`:return Kc(e,t);case`aac`:return Rc(e,t);case`av1`:return dl(e,t);default:throw Error(`Unsupported codec ${e[0].codec}`)}},xl,Sl,Cl=n((()=>{xl=e=>{if(!e)return;let t=e.channelMappingTable,n=new Uint8Array(19+t.byteLength),r=new DataView(n.buffer,n.byteOffset,n.byteLength);return n.set([79,112,117,115,72,101,97,100],0),r.setUint8(8,1),r.setUint8(9,e.channelCount),r.setUint16(10,e.preSkip,!0),r.setUint32(12,e.inputSampleRate,!0),r.setInt16(16,e.outputGain,!0),r.setUint8(18,e.channelMappingFamily),t.byteLength>0&&n.set(t,19),n},Sl=(e,t)=>{if(e<1||e>2)return;let n=new Uint8Array(19),r=new DataView(n.buffer,n.byteOffset,n.byteLength);return n.set([79,112,117,115,72,101,97,100]),r.setUint8(8,1),r.setUint8(9,e),r.setUint16(10,3840,!0),r.setUint32(12,t,!0),r.setInt16(16,0,!0),r.setUint8(18,0),n}})),wl=n((()=>{Cl()}));U();var Tl=function(e){return e[e.NONE=0]=`NONE`,e[e.SYNC=1]=`SYNC`,e[e.INIT=2]=`INIT`,e[e.RENDITIONS=4]=`RENDITIONS`,e[e.TIMED_METADATA=8]=`TIMED_METADATA`,e[e.HAS_COMPOSITION_TIME=16]=`HAS_COMPOSITION_TIME`,e}({}),El=e=>!!(e&Tl.SYNC),Dl=e=>!!(e&Tl.INIT),Ol=e=>!!(e&Tl.RENDITIONS),kl=e=>!!(e&Tl.TIMED_METADATA),Al=e=>!!(e&Tl.HAS_COMPOSITION_TIME),jl=e=>{let t=new DataView(e,0),n=t.getUint8(0),r=t.getUint16(1),i=t.getUint8(3),a=t.getUint8(4),o=Ie(new Uint8Array(e),5,12),s=t.getUint32(13),c=Al(i)?t.getInt16(17):void 0;return{version:n,renditionId:a,flags:i,timestamp:o,timescale:s,payload:e.slice(r),compositionTimeOffset:c}};U(),h();var Ml=(e,t)=>n=>n.remove(Math.max(0,e),Math.min(1/0,t)),Nl=e=>{let{buffered:t}=e;t.length!==0&&e.remove(t.start(0),t.end(t.length-1))},Pl=e=>t=>t.appendBuffer(e),Fl=e=>t=>t.changeType(e),Il=class extends Error{constructor(){super(`SourceBuffer was disposed before the queued operation ran`),this.name=`SourceBufferDisposedError`}},Ll=class{constructor(e){m(this,`commandQueue`,[]),m(this,`sourceBuffer`,void 0),m(this,`errorCallback`,void 0),m(this,`isDisposed`,!1),m(this,`currentInit`,void 0),m(this,`setErrorCallback`,e=>{this.errorCallback=e}),m(this,`onError`,e=>{var t;(t=this.errorCallback)==null||t.call(this,e)}),m(this,`handleQueue`,()=>{if(!this.sourceBuffer.updating){var e;(e=this.commandQueue.shift())==null||e.execute(this.sourceBuffer)}}),m(this,`enqueue`,(e,t,n)=>{if(this.isDisposed){n(new Il);return}this.commandQueue.push(new Lt(e,t,n))}),m(this,`submit`,e=>new Promise((t,n)=>{this.enqueue(e,t,n),this.handleQueue()})),m(this,`appendBuffer`,(e,t)=>new Promise((n,r)=>{t&&this.currentInit!==t&&(this.enqueue(Pl(t),C,r),this.currentInit=t),this.enqueue(Pl(e),n,r),this.handleQueue()})),m(this,`execute`,e=>this.submit(e)),m(this,`buffered`,()=>this.sourceBuffer.buffered),m(this,`removeFromMediaSource`,e=>{this.dispose(),e.removeSourceBuffer(this.sourceBuffer)}),m(this,`dispose`,()=>{this.isDisposed=!0,this.sourceBuffer.removeEventListener(`updateend`,this.handleQueue),this.sourceBuffer.removeEventListener(`error`,this.onError);let e=this.commandQueue;this.commandQueue=[],this.errorCallback=void 0,e.forEach(e=>e.abort(new Il))}),m(this,`changeType`,e=>this.submit(Fl(e))),m(this,`removeBuffer`,(e,t)=>this.submit(Ml(e,t))),m(this,`flush`,()=>this.submit(Nl)),this.sourceBuffer=e,this.sourceBuffer.addEventListener(`updateend`,this.handleQueue),this.sourceBuffer.addEventListener(`error`,this.onError)}};U(),h();var Rl=class extends en{constructor(){super(),m(this,`MediaSource`,Ke()),m(this,`mediaSource`,new this.MediaSource),m(this,`isOpen`,()=>this.mediaSource.readyState===`open`),m(this,`isClosed`,()=>this.mediaSource.readyState===`closed`),m(this,`isEnded`,()=>this.mediaSource.readyState===`ended`),m(this,`createObjectURL`,()=>URL.createObjectURL(this.mediaSource)),m(this,`attach`,e=>{let t=e;if(`srcObject`in t)try{t.srcObject=this.mediaSource}catch(e){if(e instanceof Error&&e.name!==`TypeError`)throw e;t.src=this.createObjectURL()}else e.src=this.createObjectURL()}),m(this,`detach`,e=>{if(this.mediaSource&&this.mediaSource.readyState===`open`)try{this.mediaSource.endOfStream()}catch(e){}e.srcObject&&(e.srcObject=null),e.src!==``&&(URL.revokeObjectURL(e.src),e.removeAttribute(`src`)),e.load()}),m(this,`addSourceBuffer`,e=>new Ll(this.mediaSource.addSourceBuffer(e))),m(this,`removeSourceBuffer`,e=>{e.removeFromMediaSource(this.mediaSource)}),m(this,`endOfStream`,e=>{this.mediaSource.endOfStream(e)}),m(this,`onSourceOpen`,()=>{this.setDurationIfNeeded(),this.emit(`source open`)}),m(this,`onSourceEnded`,()=>this.emit(`source ended`)),m(this,`onSourceClosed`,()=>this.emit(`source close`)),m(this,`setDurationIfNeeded`,()=>{if(Number.isNaN(this.mediaSource.duration)&&this.mediaSource.readyState===`open`){for(let e=0;e<this.mediaSource.sourceBuffers.length;e++){let t=this.mediaSource.sourceBuffers[e];if(t!=null&&t.updating)return}this.mediaSource.duration=1/0}}),this.mediaSource.addEventListener(`sourceopen`,this.onSourceOpen),this.mediaSource.addEventListener(`sourceclose`,this.onSourceClosed),this.mediaSource.addEventListener(`sourceended`,this.onSourceEnded)}};m(Rl,`isTypeSupported`,e=>{var t,n;return(t=(n=Ke())==null?void 0:n.isTypeSupported(e))==null?!1:t});var zl=`data:video/mp4;base64,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`;h(),F();var Bl=()=>`wakeLock`in navigator&&window.navigator.userAgent.indexOf(`Samsung`)===-1,Vl=class{constructor(){m(this,`enabled`,!1),m(this,`wakeLockVideo`,void 0),m(this,`_wakeLock`,null),m(this,`handleVisibilityChange`,()=>{this._wakeLock!==null&&document.visibilityState===`visible`&&this.enable()}),Bl()&&(this._wakeLock=null,document.addEventListener(`visibilitychange`,this.handleVisibilityChange),document.addEventListener(`fullscreenchange`,this.handleVisibilityChange))}_addSourceToVideo(e,t,n){let r=document.createElement(`source`);r.src=n,r.type=`video/${t}`,e.appendChild(r)}get isEnabled(){return this.enabled}attach(e){if(!Bl()){if(!this.wakeLockVideo){let e=document.createElement(`video`);this.wakeLockVideo=e,this.wakeLockVideo.setAttribute(`title`,`Live Stream`),this.wakeLockVideo.setAttribute(`playsinline`,``),this._addSourceToVideo(this.wakeLockVideo,`mp4`,zl),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())})})}e&&e.appendChild(this.wakeLockVideo)}}enable(){var e=this;return P(function*(){if(Bl())return navigator.wakeLock.request(`screen`).then(t=>{e._wakeLock=t,e.enabled=!0,e._wakeLock.addEventListener(`release`,()=>{})}).catch(()=>{e.enabled=!1});var t,n;return((t=(n=e.wakeLockVideo)==null?void 0:n.play())==null?Promise.resolve():t).then(t=>(e.enabled=!0,t)).catch(()=>{e.enabled=!1})})()}disable(){if(Bl())this._wakeLock&&this._wakeLock.release(),this._wakeLock=null;else{var e,t;(e=this.wakeLockVideo)==null||e.pause(),(t=this.wakeLockVideo)==null||t.remove()}this.enabled=!1}unload(){document.removeEventListener(`visibilitychange`,this.handleVisibilityChange),document.removeEventListener(`fullscreenchange`,this.handleVisibilityChange),this.disable()}};D(),j(),N(),V(),k();var Hl=/\r\n|\r|\n/,Ul=new WeakMap,Wl=new WeakMap,Gl=class{constructor(e){E(this,Ul,void 0),E(this,Wl,void 0),A(Ul,this,e),A(Wl,this,0)}skipEmptyLines(){let e=0;for(;M(Ul,this)[M(Wl,this)]===``;){var t;A(Wl,this,(t=M(Wl,this),t++,t)),e++}return e}readLine(){var e,t;return M(Ul,this)[A(Wl,this,(e=M(Wl,this),t=e++,e)),t]}peekLine(){return M(Ul,this)[M(Wl,this)]}takeUntilEmptyLine(){let e=[];for(;M(Ul,this)[M(Wl,this)]!==``;){let t=this.readLine();if(t===void 0)break;e.push(t)}return e}skipToNextCue(){for(let e=this.peekLine();e!==void 0&&e!==``&&!e.includes(`-->`);)this.readLine(),e=this.peekLine()}linesLeft(){return M(Ul,this).length-M(Wl,this)}},Kl=new WeakSet,ql=class{constructor(){B(this,Kl)}parse(e){let t=[],n=new Gl(e.split(Hl)),r=n.readLine();if(!r||!r.startsWith(`WEBVTT`))throw Error(`missing 'WEBVTT' signature`);for(;;){let e=n.readLine();if(e===``||e===void 0)break}for(;n.linesLeft()>0;){try{let e=O(Kl,this,Jl).call(this,n);e&&t.push(e)}catch(e){n.skipToNextCue()}n.skipEmptyLines()}return t}};function Jl(e){var t;e.skipEmptyLines();let n=e.readLine(),r;if(n===void 0)return;if(/^NOTE($|[ \t])/.test(n)&&!((t=e.peekLine())!=null&&t.includes(`-->`))){e.takeUntilEmptyLine();return}if(!n.includes(`-->`)){let t=e.peekLine();if(t===void 0||t===``)throw Error(`expected cue line`);r=n,e.readLine(),n=t}if(n===void 0)throw Error(`expected cue line`);let[i,a]=n.split(`-->`).map(e=>e.trim());if(!i||!a)throw Error(`a cue needs both start and end time start: ${i} end: ${a}`);let[o,s]=a.split(` `,1).map(e=>e.trim());if(!o)throw Error(`missing end time: ${o}`);let c=[];for(let t=e.peekLine();t!==void 0&&t!==``&&!t.includes(`-->`);t=e.peekLine())c.push(e.readLine());let l=c.filter(e=>e==null?void 0:e.trim()).join(`
98
- `),u=O(Kl,this,Yl).call(this,i),d=O(Kl,this,Yl).call(this,o);if(!Number.isFinite(u)||!Number.isFinite(d))throw Error(`invalid cue time start: ${i} end: ${o}`);if(l!==``)return{id:r,startTime:u,endTime:d,text:l}}function Yl(e){let t=e.split(`:`);if(t.length===2){let[e=0,n=0]=t.map(e=>parseFloat(e));return e*60+n}let[n=0,r=0,i=0]=t.map(e=>parseFloat(e));return n*60*60+r*60+i}var Xl=(e,t,n)=>{let r=Math.max(0,...n),i=Math.min(...t);return Math.max(i,e/2-r)},Zl=(e,t)=>Math.max(0,...e.filter(e=>e<=t)),Ql=(e,t)=>t===0||e>=2*t,$l=e=>{let t=window;t.vindralInstances=t.vindralInstances||{},t.vindralInstances[e.getStatistics().clientId.substring(0,8)]=e};U(),h(),F();var eu=class e extends en{constructor({type:t,autoplay:n,muted:r,volume:i,logger:a,poster:o}){var s;super(),s=this,m(this,`element`,void 0),m(this,`logger`,void 0),m(this,`seekTimes`,new T(10)),m(this,`seekStartTime`,void 0),m(this,`_totalSeekTime`,0),m(this,`lastPlayableAt`,void 0),m(this,`_userProvidedMuted`,void 0),m(this,`timers`,new sr),m(this,`_userHasProvidedInput`,!1),m(this,`_isPaused`,!0),m(this,`isActivated`,!1),m(this,`dummy`,void 0),m(this,`addEventListeners`,()=>{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.onWaiting),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)}),m(this,`removeEventListeners`,()=>{this.element.removeEventListener(`stalled`,this.onEvent),this.element.removeEventListener(`canplay`,this.onEvent),this.element.removeEventListener(`loadeddata`,this.onEvent),this.element.removeEventListener(`loadedmetadata`,this.onEvent),this.element.removeEventListener(`canplaythrough`,this.onEvent),this.element.removeEventListener(`waiting`,this.onWaiting),this.element.removeEventListener(`playing`,this.onPlayPause),this.element.removeEventListener(`pause`,this.onPlayPause),this.element.removeEventListener(`seeked`,this.onSeekEnd),this.element.removeEventListener(`seeking`,this.onSeekStart),this.element.removeEventListener(`volumechange`,this.onVolumeChange),this.element.removeEventListener(`timeupdate`,this.onBufferStateChange),this.element.removeEventListener(`progress`,this.onBufferStateChange)}),m(this,`_iosHackEnterPiPMode`,()=>{let 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))}),m(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)}),m(this,`attach`,e=>{this.element.remove(),e.appendChild(this.element)}),m(this,`load`,()=>{this.timers.setInterval(this.onPlayPause,500),this.onBufferStateChange(),this.timers.setInterval(this.onBufferStateChange,500)}),m(this,`unload`,()=>{this.timers.unload(),this.removeEventListeners()}),m(this,`getPlaybackRate`,()=>this.element.playbackRate),m(this,`getPlaybackState`,()=>this.element.readyState>=this.element.HAVE_FUTURE_DATA||this.element.seeking&&this.lastPlayableAt!==void 0&&performance.now()-this.lastPlayableAt<e.SEEK_SETTLE_BUDGET_MS?`playing`:`buffering`),m(this,`getMediaElementState`,()=>this.element.paused?`paused`:`playing`),m(this,`setPlaybackRate`,e=>void(this.element.playbackRate=e)),m(this,`getBuffer`,()=>{let e=[],t=this.element.buffered;if(!t)return[];for(let n=0;n<t.length;n++)e.push({start:t.start(n)*1e3,end:t.end(n)*1e3});return e}),m(this,`pause`,()=>{this._isPaused=!1,this.element.pause()}),m(this,`tryPlay`,()=>{this.element.muted=this._userProvidedMuted,this._play().catch(C)}),m(this,`play`,()=>{this.element.muted=this._userProvidedMuted,this._play().catch(e=>{if(e instanceof Error&&e.name!==`AbortError`){let t=new W(`Media Play Error`,{source:e,isFatal:!1,code:`media_play_error`});this.emit(`error`,t)}})}),m(this,`_play`,P(function*(){try{yield s.element.play(),s._userHasProvidedInput=!s.muted||s._userProvidedMuted}catch(e){if(e instanceof Error&&e.name===`NotAllowedError`)if(s._userHasProvidedInput=!1,s.element.muted)s.emit(`needs user input`,{forAudio:!0,forVideo:!0});else return s.element.muted=!0,s.emit(`needs user input`,{forAudio:!0,forVideo:!1}),s._play();else throw e}})),m(this,`onEvent`,e=>{this.logger.trace(e.type,{state:this.element.readyState,event:e,playbackState:this.getPlaybackState()})}),m(this,`onWaiting`,e=>{this.onEvent(e),this.onBufferStateChange()}),m(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})}),m(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.getMediaElementState()))}),m(this,`getBufferState`,()=>(this.element.readyState>=this.element.HAVE_FUTURE_DATA&&!this.element.seeking&&(this.lastPlayableAt=performance.now()),{isPaused:this.element.paused,buffered:this.getBuffer(),currentTime:this.currentTime,playbackState:this.getPlaybackState()})),m(this,`onBufferStateChange`,()=>{this.emit(`buffer state`,this.getBufferState())}),m(this,`onSeekStart`,()=>{this.seekStartTime=performance.now()}),m(this,`onSeekEnd`,()=>{if(!this.seekStartTime)return;let e=performance.now()-this.seekStartTime;this.seekTimes.push(e),this._totalSeekTime+=e,this.seekStartTime=void 0}),this.logger=a,this._userProvidedMuted=r,this.element=document.createElement(t),this.element instanceof HTMLVideoElement&&(this.element.playsInline=!0),this.element.controls=!1,this.element.autoplay=n,this.element.muted=r,i!==void 0&&(this.element.volume=i),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||!o||this.element.setAttribute(`poster`,o)},0),this.addEventListeners()}get seekTime(){return this.seekTimes.isEmpty()?0:zt(this.seekTimes.items())}get totalSeekTime(){return this._totalSeekTime}get isSeeking(){return this.element.seeking}get currentTime(){return Number.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}get userMuted(){return this.element.muted}set muted(e){this._userProvidedMuted=e,this.element.muted=e}get userHasProvidedInput(){return this._userHasProvidedInput}get isPaused(){return this._isPaused}};m(eu,`SEEK_SETTLE_BUDGET_MS`,1e3);var tu=e=>{if(!navigator.mediaCapabilities)return Promise.resolve({smooth:!0,supported:!0,powerEfficient:!0,failedToQuery:!0});if(e.codec===`webvtt`)throw Error(`WebVTT is not supported`);let t;return t=Lr(e)?{type:`media-source`,audio:{contentType:Rr(e),bitrate:e.bitRate,channels:e.channels.toString(),samplerate:e.sampleRate}}:{type:`media-source`,video:{contentType:Rr(e),bitrate:e.bitRate,width:e.width,height:e.height,framerate:e.frameRate[0]/e.frameRate[1]}},navigator.mediaCapabilities.decodingInfo(t)};h(),z();var nu,ru=.15,iu=.2,au=.4,ou=.5,su=.6,cu=15,lu={cooldownTime:3e3,maxBufferingEvents:{last10Seconds:0},maxBufferingRatio:{last10Seconds:0},maxRecentDowngradesCount:3,maxDowngradeLookbackMs:60*1e3,minTimeSpentPlaying:{factor:.5,ratio:.1},maxCooldownRatio:2},uu=e=>t=>t>e,du=class{constructor(e,t,n,r){m(this,`qualityOfServiceSource`,void 0),m(this,`config`,void 0),m(this,`emitter`,void 0),m(this,`logger`,void 0),m(this,`isSuspended`,!1),m(this,`lastAdaptTime`,performance.now()),m(this,`isEnabled`,!0),m(this,`load`,()=>{this.emitter.on(`buffer state`,this.onBufferState),this.emitter.on(`adapted level`,this.onAdaptedLevel)}),m(this,`unload`,()=>{this.emitter.off(`buffer state`,this.onBufferState),this.emitter.off(`adapted level`,this.onAdaptedLevel)}),m(this,`suspend`,()=>{this.isSuspended=!0}),m(this,`unsuspend`,()=>{this.reset(),this.isSuspended=!1}),m(this,`reset`,(e=0)=>{this.lastAdaptTime=performance.now()+e}),m(this,`getStatistics`,()=>({isAbrEnabled:this.isEnabled})),m(this,`isQoSOk`,e=>{let t=this.qualityOfServiceSource.getLevelStats(e),{upgradesFromLevel:n,downgradesFromLevel:r}=t==null?{upgradesFromLevel:[],downgradesFromLevel:[]}:t,i=performance.now()-this.config.maxDowngradeLookbackMs,a=r.filter(uu(i)).length,o=n.filter(uu(i)).length;if(a-o>this.config.maxRecentDowngradesCount)return this.logger.debug(`Recent downgrades count is over maximum`,{downgrades:a-o,maxRecentDowngradesCount:this.config.maxRecentDowngradesCount}),!1;let s=this.qualityOfServiceSource.timeSpentPlayingInAtLeastLevelRatio(e),c=s*(this.qualityOfServiceSource.timeActive()-this.qualityOfServiceSource.timeSpentBuffering())/this.config.maxDowngradeLookbackMs;if(a>1&&c<this.config.minTimeSpentPlaying.factor)return this.logger.debug(`Time spent playing is too low`,{recentDowngrades:a,timeSpentPlayingInAtLeastLevelRatio:s}),!1;if(a>1&&s<this.config.minTimeSpentPlaying.ratio)return this.logger.debug(`Time spent playing in at least this level is too low`,{recentDowngrades:a,timeSpentPlayingInAtLeastLevelRatio:s}),!1;let l=Math.max(0,r.length-n.length-c),u=performance.now()-this.config.maxDowngradeLookbackMs*l,d=r.filter(uu(u)).length;return d&&l>this.config.maxCooldownRatio?(this.logger.debug(`Too many downgrades compared to time spent playing`,{downgradesWithinCooldownTime:d,cooldownRatio:l}),!1):!0}),m(this,`onBufferState`,e=>{if(!this.isEnabled||this.isSuspended||this.lastAdaptTime+this.config.cooldownTime>performance.now())return;let{bufferFullness:t,general:n}=this.qualityOfServiceSource.getMetrics(),r=this.qualityOfServiceSource.getBufferFullnessRegression();if(!r)return;let i=10*1e3,a=30*1e3,{slope:o}=r,s=r.predict(cu),c=o<0,l=r.predict(cu)<au&&r.slope<0,u=r.predict(cu)>su,d=this.qualityOfServiceSource.timeSpentBufferingLast(a),f=this.qualityOfServiceSource.timeSpentActiveLast(a),p=this.qualityOfServiceSource.bufferingEventsLast(a),m=f>0?d/f:0,h=this.qualityOfServiceSource.getTargetBufferTime();if(t<.15&&m>.8){this.adaptLevel(`reconnect`);return}if(n.decodeRate<=.9){this.adaptLevel(`downgrade`);return}if(t>ou&&u&&!this.tooMuchTimeBuffering(i)&&!this.tooManyBufferingEvents(i)){this.adaptLevel(`upgrade`);return}if(h<1e3){e.playbackState===`buffering`&&(p>5||m>.3)&&this.adaptLevel(`downgrade`);return}(l||t<ru)&&c&&t<au&&s<iu&&this.adaptLevel(e.playbackState===`buffering`?`double downgrade`:`downgrade`)}),m(this,`onAdaptedLevel`,()=>{this.reset()}),m(this,`adaptLevel`,e=>this.emitter.emit(`adapt level`,e)),this.qualityOfServiceSource=n,this.config=R(R({},lu),r),this.emitter=e,this.logger=t}tooMuchTimeBuffering(e){let t=this.qualityOfServiceSource.timeSpentActiveLast(e);return(t?this.qualityOfServiceSource.timeSpentBufferingLast(e)/t:0)>this.config.maxBufferingRatio.last10Seconds}tooManyBufferingEvents(e){return this.qualityOfServiceSource.bufferingEventsLast(e)>this.config.maxBufferingEvents.last10Seconds}};nu=du,m(du,`create`,(e,t,n,r={})=>new nu(e,t,n,r)),h();var fu,pu=6,mu=8e3,hu=.01,gu,_u=class e{constructor(t,n){m(this,`logger`,void 0),m(this,`element`,void 0),m(this,`url`,void 0),m(this,`blocked`,!1),m(this,`wantsPlay`,!1),m(this,`onInterrupted`,void 0),m(this,`play`,()=>{if(this.wantsPlay&&this.element&&!this.element.paused)return;this.attach();let e=this.element;e&&(this.blocked=!1,this.wantsPlay=!0,e.play().catch(t=>{this.blocked=this.element===e&&this.wantsPlay,this.logger.debug(`Audio focus decoy play blocked`,{error:t})}))}),m(this,`pause`,()=>{var e;this.wantsPlay=!1,(e=this.element)==null||e.pause()}),m(this,`unload`,()=>{this.wantsPlay=!1,this.element&&(this.element.pause(),this.element.removeAttribute(`src`),this.element.load(),this.element.remove(),this.element=void 0),this.revokeUrl()}),m(this,`getStatistics`,()=>({decoyState:this.element?this.blocked?`blocked`:this.element.paused?`attached`:`playing`:`detached`})),m(this,`attach`,()=>{if(!(this.element||!e.isSupported()))try{gu!=null||(gu=new Blob([vu(pu,mu)],{type:`audio/wav`})),this.url=URL.createObjectURL(gu);let e=document.createElement(`audio`);e.setAttribute(`src`,this.url),e.loop=!0,e.preload=`auto`,e.muted=!1,e.volume=hu,e.setAttribute(`aria-hidden`,`true`),e.style.display=`none`,e.addEventListener(`pause`,()=>{var e;this.wantsPlay&&((e=this.onInterrupted)==null||e.call(this))}),document.body.appendChild(e),this.element=e}catch(e){this.logger.debug(`Failed to attach audio focus decoy`,{error:e}),this.revokeUrl()}}),m(this,`revokeUrl`,()=>{if(this.url){try{URL.revokeObjectURL(this.url)}catch(e){}this.url=void 0}}),this.logger=t,this.onInterrupted=n}};fu=_u,m(_u,`create`,(e,t)=>new fu(e,t)),m(_u,`isSupported`,()=>typeof document<`u`&&typeof URL<`u`&&typeof URL.createObjectURL==`function`);var vu=(e,t)=>{let n=t*e,r=new ArrayBuffer(44+n),i=new DataView(r);return i.setUint32(0,1380533830),i.setUint32(4,36+n,!0),i.setUint32(8,1463899717),i.setUint32(12,1718449184),i.setUint32(16,16,!0),i.setUint16(20,1,!0),i.setUint16(22,1,!0),i.setUint32(24,t,!0),i.setUint32(28,t,!0),i.setUint16(32,1,!0),i.setUint16(34,8,!0),i.setUint32(36,1684108385),i.setUint32(40,n,!0),new Uint8Array(r,44).fill(128),r};h(),z();var yu,bu={minBufferTime:1500,maxBufferTime:1500,cooldownTime:3e4,maxBufferingEvents:{last30Seconds:3},maxBufferingRatio:{last30Seconds:.15}},xu=class e{constructor(t,n,r,i,a){m(this,`qualityOfServiceSource`,void 0),m(this,`targetBufferTimeTarget`,void 0),m(this,`config`,void 0),m(this,`emitter`,void 0),m(this,`logger`,void 0),m(this,`isSuspended`,!1),m(this,`lastIncreaseTime`,performance.now()),m(this,`bufferTimeAdjustmentCount`,0),m(this,`load`,()=>{this.emitter.on(`buffer state`,this.onBufferState)}),m(this,`unload`,()=>{this.emitter.off(`buffer state`,this.onBufferState)}),m(this,`suspend`,()=>{this.isSuspended=!0}),m(this,`unsuspend`,()=>{this.reset(),this.isSuspended=!1}),m(this,`reset`,()=>{this.lastIncreaseTime=performance.now()}),m(this,`getStatistics`,()=>({bufferTimeAdjustmentCount:this.bufferTimeAdjustmentCount})),m(this,`onBufferState`,t=>{let{minBufferTime:n,maxBufferTime:r,cooldownTime:i}=this.config;if(this.isSuspended||this.lastIncreaseTime+i>performance.now()||this.targetBufferTimeTarget.targetBufferTime>=r)return;let a=this.qualityOfServiceSource.timeSpentBufferingLast(30*1e3),o=this.qualityOfServiceSource.bufferingEventsLast(30*1e3),s=a/this.qualityOfServiceSource.timeSpentActiveLast(30*1e3),c=Math.ceil(Math.max((r-n)/(e.BUFFER_TIME_MAX_STEPS-1),e.BUFFER_TIME_STEP_SIZE));(s>this.config.maxBufferingRatio.last30Seconds||o>this.config.maxBufferingEvents.last30Seconds)&&(this.targetBufferTimeTarget.targetBufferTime=Math.min(r,this.targetBufferTimeTarget.targetBufferTime+c),this.bufferTimeAdjustmentCount++,this.reset())}),this.qualityOfServiceSource=r,this.targetBufferTimeTarget=i,this.config=R(R({},bu),a),this.emitter=t,this.logger=n}updateConfig(e){this.config=R(R({},this.config),e)}};yu=xu,m(xu,`BUFFER_TIME_STEP_SIZE`,500),m(xu,`BUFFER_TIME_MAX_STEPS`,3),m(xu,`create`,(e,t,n,r,i={})=>new yu(e,t,n,r,i));var Su=e=>e?{Authorization:`Bearer ${e}`}:void 0,Cu=(e,t)=>{try{let t=e.ancestorOrigins;if(t&&t.length>0)return Array.from(t).join(`,`)||void 0}catch(e){}try{if(t.referrer)return new URL(t.referrer).origin||void 0}catch(e){}};U(),h(),z(),F();var wu=e=>typeof e==`object`&&!!e&&`message`in e,Tu=class extends Error{constructor({status:e,url:t,body:n}){let r=vr(n),i=wu(r)?r.message:`Url ${t.toString()}, Status code: ${e}, Body: ${n}`;super(i),m(this,`status`,void 0),m(this,`body`,void 0),m(this,`url`,void 0),this.status=e,this.body=n,this.url=t,Object.setPrototypeOf(this,new.target.prototype)}},Eu=e=>typeof e.status==`number`,Du=()=>{if(!(typeof window>`u`||typeof document>`u`))return Cu(window.location,document)},Ou=e=>{let t=Du();if(!t||e.searchParams.has(`parentOrigin`))return e;let n=new URL(e.toString());return n.searchParams.append(`parentOrigin`,t),n},ku=function(){var e=P(function*(e,t){let n=Ou(e),r=yield fetch(n.toString(),R({mode:`cors`},t));if(!r.ok)throw new Tu({status:r.status,url:n,body:yield r.text()});return r});return function(t,n){return e.apply(this,arguments)}}(),Au=function(){var e=P(function*(e,t){return yield(yield ku(e,R({},t))).json()});return function(t,n){return e.apply(this,arguments)}}();(function(){var e=P(function*(e){return ku(e)});return function(t){return e.apply(this,arguments)}})();var ju=function(){var e=P(function*(e,t){return ku(e,R({method:`POST`},t))});return function(t,n){return e.apply(this,arguments)}}();function Mu(e){var t;return!(typeof e.edges[0]==`string`||e.channels[0]&&`catalog`in e.channels[0]&&((t=e.channels[0])==null?void 0:t.catalog)===void 0)}h(),z(),F();var Nu={lbConnect:e=>e.channelGroupId?`connect?channelId=${e.channelId}&channelGroupId=${e.channelGroupId}`:`connect?channelId=${e.channelId}`,thumbnails:(e,t)=>t?e.channelGroupId?`thumbnail/?channelGroupId=${e.channelGroupId}&auth.token=${t}&auth.type=jwt`:e.channelId?`thumbnail/?channelId=${e.channelId}&auth.token=${t}&auth.type=jwt`:`thumbnail`:`thumbnail`},Pu=class{constructor(e){m(this,`baseUrl`,void 0),m(this,`tokenFactory`,void 0),this.baseUrl=new URL(`/api/v4/`,e.publicEndpoint).toString(),this.tokenFactory=e.tokenFactory}connect(e){var t=this;return P(function*(){let{channelId:n,channelGroupId:r}=e,i={channelId:n,channelGroupId:r},a=new URL(Nu.lbConnect(e),t.baseUrl),o=t.getAuthToken(i),s=yield Au(a,{headers:t.getHeaders(o)});if(Mu(s)){let e=s.channels.map(e=>{let n=t.toChannel(e,i),r=Fr(e.catalog);return R(R(R({},e),n),{},{renditions:r})});return R(R({},s),{},{channels:e})}else{let e=s.channels.map(e=>{let n=t.toChannel(e,i);return R(R({},e),n)});return R(R({},s),{},{channels:e})}})()}getChannel(e){var t=this;return P(function*(){let n={channelId:e},r=new URL(`channel/${e}`,t.baseUrl),i=t.getAuthToken(n),a=yield Au(r,{headers:t.getHeaders(i)});return t.toChannel(a,n,i)})()}getChannels(e){var t=this;return P(function*(){let n={channelGroupId:e},r=new URL(`channels/${e}`,t.baseUrl),i=t.getAuthToken(n),a=yield Au(r,{headers:t.getHeaders(i)}),o=Array.isArray(a)?a:a.channels;return t.toChannels(o,n,i)})()}getHeaders(e){var t;return(t=Su(e))==null?{}:t}getAuthToken(e){return this.tokenFactory?this.tokenFactory(e):void 0}toChannels(e,t,n){return e.map(e=>this.toChannel(e,t,n))}toChannel(e,t,n){let{baseUrl:r,sizes:i}=e.thumbnail,a=r||new URL(Nu.thumbnails(t,n),this.baseUrl),o=i.map(r=>new URL(`?channelId=${e.channelId}&width=${r.width}&height=${r.height}${Fu(t,n)}`,a).toString());return{channelId:e.channelId,name:e.name,isLive:e.isLive,thumbnailUrls:o}}},Fu=(e,t)=>t?e.channelGroupId?`&channelGroupId=${e.channelGroupId}&auth.token=${t}&auth.type=jwt`:`&auth.token=${t}&auth.type=jwt`:``;function Iu(e){let t=globalThis.WebTransportError;return t&&e instanceof t?e:void 0}function Lu(e){var t;return((t=Iu(e))==null?void 0:t.streamErrorCode)===2}var Ru=function(e){return e[e.StreamHeaderGroup=4]=`StreamHeaderGroup`,e[e.FetchHeader=5]=`FetchHeader`,e[e.StreamHeaderTrack=60]=`StreamHeaderTrack`,e}({});U(),D(),N(),j(),F(),V(),Bn(),Un(),k();var zu,Bu,Vu,Hu,Uu,Wu,Gu,Ku,qu,Ju={Normal:0,ObjectDoesNotExist:1,GroupDoesNotExist:2,EndOfGroup:3,EndOfTrackAndGroup:4};function Yu(e){switch(e){case Ju.Normal:case Ju.ObjectDoesNotExist:case Ju.GroupDoesNotExist:case Ju.EndOfGroup:case Ju.EndOfTrackAndGroup:return}throw Error(`Unknown object status ${e}`)}var Xu=new WeakMap,Zu=new WeakMap,Qu=new WeakMap,$u=new WeakMap,ed=new WeakMap,td=new WeakMap,nd=new WeakMap,rd=new WeakMap;zu=Symbol.asyncIterator,Bu=Cn(),Vu=Symbol.asyncDispose;var id=class{endStatus(){return M(td,this).promise}constructor(e,t,n,r,i,a){E(this,Xu,void 0),E(this,Zu,void 0),E(this,Qu,void 0),E(this,$u,void 0),E(this,ed,void 0),E(this,td,new w),E(this,nd,0),E(this,rd,void 0),A(Xu,this,e),A(Zu,this,t),A(Qu,this,n),A($u,this,r),A(ed,this,i),A(rd,this,a)}groupId(){return M(Zu,this)}subscribeId(){return M(Qu,this)}next(){var e=this;return P(function*(){var t;if(!M(td,e).pending||(yield M(Xu,e).isDone()))return{done:!0,value:void 0};let n=M(nd,e)===0?M(Zu,e):yield M(Xu,e).readBigVarInt(),r=yield M(Xu,e).readBigVarInt(),i=yield M(Xu,e).readVarInt(),a=0,o=new Uint8Array;return i>0?o=yield M(Xu,e).read(i):a=yield M(Xu,e).readVarInt(),Yu(a),(a===Ju.EndOfTrackAndGroup||a===Ju.EndOfGroup)&&M(td,e).resolve(a),A(nd,e,(t=M(nd,e),t++,t)),{done:!1,value:{subscribeId:M(Qu,e),trackAlias:M($u,e),groupId:n,subGroupId:I(0),objectId:r,subscriberPriority:M(ed,e),streamId:M(rd,e),objectStatus:a,payload:o}}})()}return(){var e=this;return P(function*(){for(;!(yield e.next()).done;);return{done:!0,value:void 0}})()}[zu](){return this}[Bu](){return Promise.resolve()}[Vu](){return Promise.resolve()}},ad=new WeakMap,od=new WeakMap,sd=new WeakMap,cd=new WeakMap,ld=new WeakMap,ud=new WeakSet;Hu=Symbol.asyncIterator,Uu=Cn(),Wu=Symbol.asyncDispose;var dd=class{constructor(e,t,n,r,i){B(this,ud),E(this,ad,void 0),E(this,od,void 0),E(this,sd,void 0),E(this,cd,void 0),E(this,ld,void 0),A(ad,this,e),A(od,this,t),A(sd,this,n),A(cd,this,r),A(ld,this,i)}streamId(){return M(ld,this)}groups(){return O(ud,this,fd).call(this)}subscribeId(){return M(od,this)}return(){var e=this;return P(function*(){return yield M(ad,e).close(),{done:!0,value:void 0}})()}[Hu](){return this}[Uu](){return O(ud,this,pd).call(this)}[Wu](){return O(ud,this,pd).call(this)}};function fd(){var e=this;return Vn(function*(){for(;!(yield H(M(ad,e).isDone()));){let t=yield H(M(ad,e).readBigVarInt()),n=new id(M(ad,e),t,M(od,e),M(sd,e),M(cd,e),M(ld,e));if(yield n,(yield H(Promise.race([n.endStatus(),M(ad,e).closed()])))===Ju.EndOfTrackAndGroup)return}})()}function pd(){return M(ad,this).close().catch(()=>{})}var md=new WeakMap,hd=new WeakMap,gd=new WeakMap,_d=new WeakMap,vd=new WeakMap,yd=new WeakMap,bd=new WeakMap,xd=new WeakMap,Sd=new WeakMap,Cd=new WeakSet;Gu=Symbol.asyncIterator,Ku=Cn(),qu=Symbol.asyncDispose;var wd=class{constructor(e,t,n,r,i,a,o){B(this,Cd),E(this,md,void 0),E(this,hd,void 0),E(this,gd,void 0),E(this,_d,void 0),E(this,vd,void 0),E(this,yd,void 0),E(this,bd,!1),E(this,xd,void 0),E(this,Sd,bn.get().createContext(`GroupReader`)),A(md,this,e),A(hd,this,t),A(gd,this,n),A(_d,this,r),A(vd,this,i),A(yd,this,a),A(xd,this,o)}streamId(){return M(xd,this)}groupId(){return M(_d,this)}subscribeId(){return M(hd,this)}next(){var e=this;return P(function*(){try{if((yield M(md,e).isDone())||M(bd,e))return{done:!0,value:void 0};let t=yield M(md,e).readBigVarInt(),n=yield M(md,e).readVarInt(),r=0,i=new Uint8Array;return n>0?i=yield M(md,e).read(n):r=yield M(md,e).readVarInt(),Yu(r),r===Ju.EndOfGroup&&A(bd,e,!0),{done:!1,value:{subscribeId:M(hd,e),trackAlias:M(gd,e),groupId:M(_d,e),subGroupId:M(vd,e),subscriberPriority:M(yd,e),streamId:M(xd,e),objectId:t,objectStatus:r,payload:i}}}catch(r){var t,n;return(Lu(r)?M(Sd,e).debug:M(Sd,e).warn)(`Error reading object`,{error:r,streamErrorCode:(t=(n=Iu(r))==null?void 0:n.streamErrorCode)==null?void 0:t}),{done:!0,value:void 0}}})()}return(){var e=this;return P(function*(){return yield M(md,e).close().catch(()=>{}),{done:!0,value:void 0}})()}groups(){return O(Cd,this,Td).call(this)}[Gu](){return this}[Ku](){return O(Cd,this,Ed).call(this)}[qu](){return O(Cd,this,Ed).call(this)}};function Td(){var e=this;return Vn(function*(){yield e})()}function Ed(){return M(md,this).close().catch(()=>{})}function Dd(e,t){return Od.apply(this,arguments)}function Od(){return Od=P(function*(e,t){let n=yield e.readVarInt();switch(n){case Ru.StreamHeaderGroup:return new wd(e,yield e.readBigVarInt(),yield e.readBigVarInt(),yield e.readBigVarInt(),yield e.readBigVarInt(),yield e.readUnsigned8(),t);case Ru.StreamHeaderTrack:return new dd(e,yield e.readBigVarInt(),yield e.readBigVarInt(),yield e.readUnsigned8(),t);default:throw Error(`Unexpected message type ${n}`)}}),Od.apply(this,arguments)}function Z(e){var t,n,r,i=2;for(typeof Symbol<`u`&&(n=Symbol.asyncIterator,r=Symbol.iterator);i--;){if(n&&(t=e[n])!=null)return t.call(e);if(r&&(t=e[r])!=null)return new kd(t.call(e));n=`@@asyncIterator`,r=`@@iterator`}throw TypeError(`Object is not async iterable`)}function kd(e){function t(e){if(Object(e)!==e)return Promise.reject(TypeError(e+` is not an object.`));var t=e.done;return Promise.resolve(e.value).then(function(e){return{value:e,done:t}})}return kd=function(e){this.s=e,this.n=e.next},kd.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var n=this.s.return;return n===void 0?Promise.resolve({value:e,done:!0}):t(n.apply(this.s,arguments))},throw:function(e){var n=this.s.return;return n===void 0?Promise.reject(e):t(n.apply(this.s,arguments))}},new kd(e)}U(),D(),j(),N();var Ad=new WeakMap,jd=new WeakMap,Md=class{constructor(e,t){E(this,Ad,void 0),E(this,jd,void 0),A(Ad,this,e),A(jd,this,t)}start(e){M(Ad,this).addEventListener(`message`,t=>{if(typeof t.data==`object`&&t.data instanceof ArrayBuffer){let n=new Uint8Array(t.data);n[0]===M(jd,this)&&e.enqueue(n.subarray(1))}}),M(Ad,this).addEventListener(`error`,()=>e.error(Error(`WebSocket error`))),M(Ad,this).addEventListener(`close`,()=>gr(()=>e.close()))}cancel(e){M(Ad,this).close(void 0,e)}},Nd=new WeakMap,Pd=new WeakMap,Fd=new WeakMap,Id=new WeakMap,Ld=class{constructor(e){E(this,Nd,void 0),E(this,Pd,null),E(this,Fd,null),E(this,Id,null),A(Nd,this,e)}start(e){A(Pd,this,t=>{if(typeof t.data==`object`&&t.data instanceof ArrayBuffer){let n=new Uint8Array(t.data),r=n[0]||0,i=r&127,a=(r>>7&1)>0;if(i&&i!==0){let t=n.subarray(1);e.enqueue([a,i,t])}}}),A(Fd,this,()=>gr(()=>e.close())),A(Id,this,()=>e.error(Error(`WebSocket error`))),M(Nd,this).addEventListener(`message`,M(Pd,this)),M(Nd,this).addEventListener(`error`,M(Id,this)),M(Nd,this).addEventListener(`close`,M(Fd,this))}cancel(e){M(Pd,this)&&M(Nd,this).removeEventListener(`message`,M(Pd,this)),M(Id,this)&&M(Nd,this).removeEventListener(`error`,M(Id,this)),M(Fd,this)&&M(Nd,this).removeEventListener(`close`,M(Fd,this))}};U(),V(),D(),j(),N(),k(),F();function Rd(e,t){return e[t]<<8|e[t+1]}function zd(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}var Bd=new WeakMap,Vd=new WeakMap,Hd=new WeakMap,Q=new WeakMap,Ud=new WeakMap,Wd=new WeakMap,Gd=new WeakSet,Kd=class{constructor(e,t,n){B(this,Gd),E(this,Bd,void 0),E(this,Vd,void 0),E(this,Hd,void 0),E(this,Q,0),E(this,Ud,new TextDecoder),E(this,Wd,void 0),A(Bd,this,e),A(Vd,this,t),A(Hd,this,t.getReader()),A(Wd,this,n)}readUnsigned8(){var e=this;return P(function*(){var t,n;return yield O(Gd,e,Yd).call(e,1),M(Bd,e)[A(Q,e,(t=M(Q,e),n=t++,t)),n]})()}readString(){var e=this;return P(function*(){let t=yield e.readVarInt(),n=yield e.read(t);return M(Ud,e).decode(n)})()}readVarInt(){var e=this;return P(function*(){let t=yield e.readBigVarInt();if(t>2**53-1)throw Error(`VarInt is too large`);return Number(t)})()}readBigVarInt(){var e=this;return P(function*(){yield O(Gd,e,Yd).call(e,1);let t=M(Bd,e)[M(Q,e)],n=(t&192)>>6;switch(M(Bd,e)[M(Q,e)]=t&63,n){case 0:var r,i;return I(M(Bd,e)[A(Q,e,(r=M(Q,e),i=r++,r)),i]);case 1:{yield O(Gd,e,Yd).call(e,2);let t=M(Q,e);return A(Q,e,M(Q,e)+2),I(Rd(M(Bd,e),t))}case 2:{yield O(Gd,e,Yd).call(e,4);let t=M(Q,e);return A(Q,e,M(Q,e)+4),I(zd(M(Bd,e),t))}case 3:{yield O(Gd,e,Yd).call(e,8);let t=M(Q,e);A(Q,e,M(Q,e)+8);let n=new DataView(M(Bd,e).buffer,M(Bd,e).byteOffset+t,8);return I(ke?n.getBigUint64(0):n.getUint32(0)*4294967296+n.getUint32(4))}default:throw Error(`Invalid VarInt size`)}})()}read(e){var t=this;return P(function*(){return yield O(Gd,t,Yd).call(t,e),O(Gd,t,Zd).call(t,e)})()}readAll(){var e=this;return P(function*(){for(;yield O(Gd,e,Jd).call(e););return O(Gd,e,Zd).call(e,O(Gd,e,qd).call(e))})()}isDone(){var e=this;return P(function*(){return O(Gd,e,qd).call(e)>0?!1:(yield O(Gd,e,Jd).call(e))===0})()}closed(){var e=this;return P(function*(){return M(Hd,e).closed})()}close(){var e=this;return P(function*(){return M(Hd,e).releaseLock(),M(Vd,e).cancel()})()}};function qd(){return M(Bd,this).length-M(Q,this)}function Jd(){var e=this;return P(function*(){var t;let{value:n,done:r}=yield M(Hd,e).read();if(r)return Promise.resolve(0);if((t=M(Wd,e))==null||t.call(e),O(Gd,e,qd).call(e)===0)A(Bd,e,n);else{let t=M(Bd,e).subarray(M(Q,e)),r=new Uint8Array(t.length+n.length);r.set(t),r.set(n,t.byteLength),A(Bd,e,r)}return A(Q,e,0),Promise.resolve(n.length)})()}function Yd(e){var t=this;return P(function*(){for(;O(Gd,t,qd).call(t)<e;)if((yield O(Gd,t,Jd).call(t))===0)throw Error(`Read failed`)})()}function Xd(e){return M(Bd,this).subarray(M(Q,this),M(Q,this)+e)}function Zd(e){let t=O(Gd,this,Xd).call(this,e);return A(Q,this,M(Q,this)+t.length),t}V(),D(),N(),j(),F(),k(),h();var Qd=new WeakMap,$d=new WeakMap,ef=new WeakMap,tf=new WeakMap,nf=new WeakMap,rf=new WeakMap,af=new WeakMap,of=new WeakMap,sf=new WeakSet,cf=class{constructor(e){B(this,sf),E(this,Qd,new Uint8Array(8)),E(this,$d,M(Qd,this).subarray(0,1)),E(this,ef,M(Qd,this).subarray(0,2)),E(this,tf,M(Qd,this).subarray(0,4)),E(this,nf,M(Qd,this).subarray(0,8)),E(this,rf,void 0),E(this,af,void 0),E(this,of,new TextEncoder),A(rf,this,e),A(af,this,M(rf,this).getWriter())}writeString(e){var t=this;return P(function*(){let n=M(of,t).encode(e);return yield t.writeVarInt(n.length),t.write(n)})()}write(e){return M(af,this).write(e)}writeUnsigned8(e){return M(Qd,this)[0]=e,M(af,this).write(M($d,this))}writeVarInt(e){if(e<0)throw Error(`VarInt can not be negative: ${e}`);return M(af,this).write(O(sf,this,lf).call(this,Sf(e,M(Qd,this),0)))}writeBigVarInt(e){if(e<0)throw Error(`VarInt can not be negative: ${e}`);return M(af,this).write(O(sf,this,lf).call(this,Cf(e,M(Qd,this),0)))}flush(){return P(function*(){})()}close(){var e=this;return P(function*(){M(af,e).releaseLock(),yield M(rf,e).close()})()}};function lf(e){switch(e){case 1:return M($d,this);case 2:return M(ef,this);case 4:return M(tf,this);default:return M(nf,this)}}var uf={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},df=new WeakMap,ff=new WeakMap,pf=new WeakMap,mf=new WeakMap,hf=class e{constructor(t){E(this,df,0),E(this,ff,new Uint8Array(e.DEFAULT_BUFFER_SIZE)),E(this,pf,void 0),E(this,mf,new TextEncoder),A(pf,this,t)}writeString(e){var t=this;return P(function*(){let n=M(mf,t).encode(e);return yield t.writeVarInt(n.length),t.write(n)})()}ensureBufferSpace(e){if(M(ff,this).length-M(df,this)>=e)return;let t=new Uint8Array(M(ff,this).length+e);t.set(M(ff,this)),A(ff,this,t)}write(e){return this.ensureBufferSpace(e.length),M(ff,this).set(e,M(df,this)),A(df,this,M(df,this)+e.byteLength),Promise.resolve()}writeUnsigned8(e){return this.ensureBufferSpace(1),M(ff,this)[M(df,this)]=e,A(df,this,M(df,this)+1),Promise.resolve()}writeVarInt(e){if(e<0)throw Error(`VarInt can not be negative: ${e}`);return this.ensureBufferSpace(8),A(df,this,M(df,this)+Sf(e,M(ff,this),M(df,this))),Promise.resolve()}writeBigVarInt(e){if(e<0)throw Error(`VarInt can not be negative: ${e}`);return this.ensureBufferSpace(8),A(df,this,M(df,this)+Cf(e,M(ff,this),M(df,this))),Promise.resolve()}flush(){if(M(pf,this).readyState!==uf.OPEN)throw Error(`Writer is not open`);return M(pf,this).send(M(ff,this).subarray(0,M(df,this))),A(df,this,0),Promise.resolve()}close(){return M(pf,this).close(),Promise.resolve()}};m(hf,`DEFAULT_BUFFER_SIZE`,1024);var gf=2**6-1,_f=2**14-1,vf=2**30-1,yf=2**53-1;function bf(e,t,n){t[n]=e>>8&255,t[n+1]=e&255}function xf(e,t,n){t[n]=e>>>24&255,t[n+1]=e>>16&255,t[n+2]=e>>8&255,t[n+3]=e&255}function Sf(e,t,n){if(e<=gf)return t[n]=e,1;if(e<=_f)return bf(e|16384,t,n),2;if(e<=vf)return xf(e|2147483648,t,n),4;if(e<=yf)return wf(e,t,n),8;throw Error(`overflow, value larger than 53-bits: ${e}`)}function Cf(e,t,n){if(e<=gf)return t[n]=Number(e),1;if(e<=_f)return bf(Number(e)|16384,t,n),2;if(e<=vf)return xf(Number(e)|2147483648,t,n),4;if(e<=yf)return wf(Number(e),t,n),8;throw Error(`overflow, value larger than 53-bits: ${e}`)}function wf(e,t,n){let r=new DataView(t.buffer,t.byteOffset+n,8);r.setUint32(0,e/4294967296),r.setUint32(4,e&4294967295),t[n]=192}var $=function(e){return e[e.SubscribeUpdate=2]=`SubscribeUpdate`,e[e.Subscribe=3]=`Subscribe`,e[e.SubscribeOk=4]=`SubscribeOk`,e[e.SubscribeError=5]=`SubscribeError`,e[e.Announce=6]=`Announce`,e[e.AnnounceOk=7]=`AnnounceOk`,e[e.AnnounceError=8]=`AnnounceError`,e[e.Unannounce=9]=`Unannounce`,e[e.Unsubscribe=10]=`Unsubscribe`,e[e.SubscribeDone=11]=`SubscribeDone`,e[e.AnnounceCancel=12]=`AnnounceCancel`,e[e.TrackStatusRequest=13]=`TrackStatusRequest`,e[e.TrackStatus=14]=`TrackStatus`,e[e.Goaway=16]=`Goaway`,e[e.ClientSetup=64]=`ClientSetup`,e[e.ServerSetup=65]=`ServerSetup`,e[e.Unknown=255]=`Unknown`,e}({});F();function Tf(e){return Ef.apply(this,arguments)}function Ef(){return Ef=P(function*(e){let t=yield e.readVarInt();if(t<1||t>32)throw Error(`namespace must be between 1 and 32, got ${t}`);let n=[];for(let r=0;r<t;r++)n.push(yield e.readString());return n}),Ef.apply(this,arguments)}function Df(e,t){return Of.apply(this,arguments)}function Of(){return Of=P(function*(e,t){yield e.writeVarInt(t.length);for(let n of t)yield e.writeString(n)}),Of.apply(this,arguments)}U(),F();var kf=I(2);function Af(e){return jf.apply(this,arguments)}function jf(){return jf=P(function*(e){let t=yield e.readVarInt(),n=new Map;for(let r=0;r<t;r++){let t=yield e.readBigVarInt(),r=yield e.read(yield e.readVarInt());n.set(t,{type:t,payload:r})}return n}),jf.apply(this,arguments)}function Mf(e,t){return Nf.apply(this,arguments)}function Nf(){return Nf=P(function*(e,t){yield e.writeVarInt(t.size);for(let[n,r]of t)yield e.writeBigVarInt(n),yield e.writeVarInt(r.payload.length),yield e.write(r.payload)}),Nf.apply(this,arguments)}F();function Pf(e){return Ff.apply(this,arguments)}function Ff(){return Ff=P(function*(e){return{type:$.Announce,namespace:yield Tf(e),params:yield Af(e)}}),Ff.apply(this,arguments)}function If(e,t){return Lf.apply(this,arguments)}function Lf(){return Lf=P(function*(e,t){yield Df(e,t.namespace),yield Mf(e,t.params)}),Lf.apply(this,arguments)}F();function Rf(e){return zf.apply(this,arguments)}function zf(){return zf=P(function*(e){return{type:$.AnnounceOk,namespace:yield Tf(e)}}),zf.apply(this,arguments)}function Bf(e,t){return Vf.apply(this,arguments)}function Vf(){return Vf=P(function*(e,t){yield Df(e,t.namespace)}),Vf.apply(this,arguments)}F();var Hf={"latest-group":1,"latest-object":2,"absolute-start":3,"absolute-range":4};function Uf(e){return Wf.apply(this,arguments)}function Wf(){return Wf=P(function*(e){let t=yield e.readVarInt();switch(t){case 1:return{type:`latest-group`};case 2:return{type:`latest-object`};case 3:return{type:`absolute-start`,start:{group:yield e.readBigVarInt(),object:yield e.readBigVarInt()}};case 4:return{type:`absolute-range`,start:{group:yield e.readBigVarInt(),object:yield e.readBigVarInt()},end:{group:yield e.readBigVarInt(),object:yield e.readBigVarInt()}};default:throw Error(`Invalid location type ${t}`)}}),Wf.apply(this,arguments)}function Gf(e,t){return Kf.apply(this,arguments)}function Kf(){return Kf=P(function*(e,t){let n=Hf[t.type];switch(yield e.writeVarInt(n),t.type){case`absolute-range`:yield e.writeBigVarInt(t.start.group),yield e.writeBigVarInt(t.start.object),yield e.writeBigVarInt(t.end.group),yield e.writeBigVarInt(t.end.object);break;case`absolute-start`:yield e.writeBigVarInt(t.start.group),yield e.writeBigVarInt(t.start.object);break;case`latest-object`:case`latest-group`:break;default:throw Error(`Invalid location type ${n}`)}}),Kf.apply(this,arguments)}function qf(e){return Jf.apply(this,arguments)}function Jf(){return Jf=P(function*(e){let t=yield e.readUnsigned8();switch(t){case 0:return`inherit-publisher`;case 1:return`ascending`;case 2:return`descending`;default:throw Error(`Invalid location type ${t}`)}}),Jf.apply(this,arguments)}function Yf(e,t){return Xf.apply(this,arguments)}function Xf(){return Xf=P(function*(e,t){switch(t){case`inherit-publisher`:yield e.writeUnsigned8(0);break;case`ascending`:yield e.writeUnsigned8(1);break;case`descending`:yield e.writeUnsigned8(2);break}}),Xf.apply(this,arguments)}function Zf(e){return Qf.apply(this,arguments)}function Qf(){return Qf=P(function*(e){let t=yield e.readBigVarInt(),n=yield e.readBigVarInt(),r=yield Tf(e),i=yield e.readString(),a=yield e.readUnsigned8(),o=yield qf(e),s=yield Uf(e),c=yield Af(e);if(s.type===`absolute-range`){let e=s.start.group>s.end.group,t=s.start.group===s.end.group&&s.start.object>s.end.object;if(e||t)throw Error(`Invalid filter range`)}return{type:$.Subscribe,id:t,trackAlias:n,namespace:r,name:i,subscriberPriority:a,groupOrder:o,filterType:s,params:c}}),Qf.apply(this,arguments)}function $f(e,t){return ep.apply(this,arguments)}function ep(){return ep=P(function*(e,t){yield e.writeBigVarInt(t.id),yield e.writeBigVarInt(t.trackAlias),yield Df(e,t.namespace),yield e.writeString(t.name),yield e.writeUnsigned8(t.subscriberPriority),yield Yf(e,t.groupOrder),yield Gf(e,t.filterType),yield Mf(e,t.params)}),ep.apply(this,arguments)}F();var tp={Unsubscribed:0,InternalError:1,Unauthorized:2,TrackEnded:3,SubscriptionEnded:4,GoingAway:5,Expired:6};function np(e){return rp.apply(this,arguments)}function rp(){return rp=P(function*(e){let t=yield e.readBigVarInt(),n=yield e.readVarInt(),r=yield e.readString(),i=(yield e.readUnsigned8())===1,a;return i&&(a={group:yield e.readBigVarInt(),object:yield e.readBigVarInt()}),{type:$.SubscribeDone,id:t,errorCode:n,reason:r,finalInfo:a}}),rp.apply(this,arguments)}function ip(e,t){return ap.apply(this,arguments)}function ap(){return ap=P(function*(e,t){yield e.writeBigVarInt(t.id),yield e.writeVarInt(t.errorCode),yield e.writeString(t.reason),yield e.writeUnsigned8(t.finalInfo?1:0),t.finalInfo&&(yield e.writeBigVarInt(t.finalInfo.group),yield e.writeBigVarInt(t.finalInfo.object))}),ap.apply(this,arguments)}F();function op(e){return sp.apply(this,arguments)}function sp(){return sp=P(function*(e){return{type:$.SubscribeError,id:yield e.readBigVarInt(),errorCode:yield e.readBigVarInt(),reason:yield e.readString(),trackAlias:yield e.readBigVarInt()}}),sp.apply(this,arguments)}function cp(e,t){return lp.apply(this,arguments)}function lp(){return lp=P(function*(e,t){yield e.writeBigVarInt(t.id),yield e.writeBigVarInt(t.errorCode),yield e.writeString(t.reason),yield e.writeBigVarInt(t.trackAlias)}),lp.apply(this,arguments)}F();function up(e){return dp.apply(this,arguments)}function dp(){return dp=P(function*(e){let t=yield e.readBigVarInt(),n=yield e.readBigVarInt(),r=yield qf(e),i=(yield e.readUnsigned8())===1,a;if(r===`inherit-publisher`)throw Error(`SubscribeOk cannot have inherit publisher group order`);i&&(a={group:yield e.readBigVarInt(),object:yield e.readBigVarInt()});let o=yield Af(e);return{type:$.SubscribeOk,id:t,groupOrder:r,expires:n,largestInfo:a,params:o}}),dp.apply(this,arguments)}function fp(e,t){return pp.apply(this,arguments)}function pp(){return pp=P(function*(e,t){yield e.writeBigVarInt(t.id),yield e.writeBigVarInt(t.expires),yield Yf(e,t.groupOrder),yield e.writeUnsigned8(t.largestInfo?1:0),t.largestInfo&&(yield e.writeBigVarInt(t.largestInfo.group),yield e.writeBigVarInt(t.largestInfo.object)),yield Mf(e,t.params)}),pp.apply(this,arguments)}F();function mp(e){return hp.apply(this,arguments)}function hp(){return hp=P(function*(e){let t=yield e.readBigVarInt(),n=yield e.readBigVarInt(),r=yield e.readBigVarInt(),i=yield e.readBigVarInt(),a=yield e.readBigVarInt(),o=yield e.readUnsigned8(),s=yield Af(e);if(n>i||n===i&&r>a)throw Error(`Invalid filter range`);return{type:$.SubscribeUpdate,id:t,start:{group:n,object:r},end:{group:i,object:a},subscriberPriority:o,params:s}}),hp.apply(this,arguments)}function gp(e,t){return _p.apply(this,arguments)}function _p(){return _p=P(function*(e,t){yield e.writeBigVarInt(t.id),yield e.writeBigVarInt(t.start.group),yield e.writeBigVarInt(t.start.object),yield e.writeBigVarInt(t.end.group),yield e.writeBigVarInt(t.end.object),yield e.writeUnsigned8(t.subscriberPriority),yield Mf(e,t.params)}),_p.apply(this,arguments)}U();var vp={Publisher:1,Subscriber:2,Both:3},yp={Role:I(0)};F();var bp={Draft07:4278190087};function xp(e){return Sp.apply(this,arguments)}function Sp(){return Sp=P(function*(e){let t=yield e.readVarInt();switch(t){case bp.Draft07:return{type:`known`,value:t};default:return{type:`unknown`,value:t}}}),Sp.apply(this,arguments)}F();function Cp(e,t){return wp.apply(this,arguments)}function wp(){return wp=P(function*(e,t){yield e.writeVarInt(t.supportedVersions.length);for(let n of t.supportedVersions)yield e.writeVarInt(n.value);yield Mf(e,t.parameters)}),wp.apply(this,arguments)}function Tp(e){return Ep.apply(this,arguments)}function Ep(){return Ep=P(function*(e){let t=[],n=yield e.readVarInt();for(let r=0;r<n;r++)t.push(yield xp(e));let r=yield Af(e);if(!r.has(yp.Role))throw Error(`Role parameter is required`);return{type:$.ClientSetup,supportedVersions:t,parameters:r}}),Ep.apply(this,arguments)}F();function Dp(e,t){return Op.apply(this,arguments)}function Op(){return Op=P(function*(e,t){yield e.writeVarInt(t.selectedVersion.value),yield Mf(e,t.parameters)}),Op.apply(this,arguments)}function kp(e){return Ap.apply(this,arguments)}function Ap(){return Ap=P(function*(e){let t=yield xp(e);if(t.type!==`known`)throw Error(`Expected known version`);let n=yield Af(e);if(!n.has(yp.Role))throw Error(`Role parameter is required`);return{type:$.ServerSetup,selectedVersion:t,parameters:n}}),Ap.apply(this,arguments)}F();function jp(e){return Mp.apply(this,arguments)}function Mp(){return Mp=P(function*(e){return{type:$.Unsubscribe,id:yield e.readBigVarInt()}}),Mp.apply(this,arguments)}function Np(e,t){return Pp.apply(this,arguments)}function Pp(){return Pp=P(function*(e,t){yield e.writeBigVarInt(t.id)}),Pp.apply(this,arguments)}V(),D(),j(),N(),k(),F();var Fp=new WeakMap,Ip=new WeakMap,Lp=new WeakSet,Rp=class{constructor(e){B(this,Lp),E(this,Fp,void 0),E(this,Ip,new Uint8Array),A(Fp,this,e)}write(e){var t=this;return P(function*(){yield M(Fp,t).writeVarInt(e.type);let n=new hf({close:()=>{},readyState:uf.OPEN,send:e=>{A(Ip,t,new Uint8Array(e))}});switch(e.type){case $.Subscribe:yield O(Lp,t,Vp).call(t,n,e);break;case $.Announce:yield O(Lp,t,qp).call(t,n,e);break;case $.SubscribeOk:yield O(Lp,t,Hp).call(t,n,e);break;case $.SubscribeUpdate:yield O(Lp,t,Wp).call(t,n,e);break;case $.SubscribeError:yield O(Lp,t,Up).call(t,n,e);break;case $.SubscribeDone:yield O(Lp,t,Gp).call(t,n,e);break;case $.Unsubscribe:yield O(Lp,t,Kp).call(t,n,e);break;case $.ClientSetup:yield O(Lp,t,zp).call(t,n,e);break;case $.ServerSetup:yield O(Lp,t,Bp).call(t,n,e);break;case $.AnnounceOk:yield O(Lp,t,Jp).call(t,n,e);break;default:throw Error(`Unknown message type: ${e.type}`)}yield n.flush(),yield M(Fp,t).writeVarInt(M(Ip,t).byteLength),yield M(Fp,t).write(M(Ip,t)),yield M(Fp,t).flush()})()}close(){var e=this;return P(function*(){return M(Fp,e).close()})()}};function zp(e,t){return P(function*(){yield Cp(e,t)})()}function Bp(e,t){return P(function*(){yield Dp(e,t)})()}function Vp(e,t){return P(function*(){yield $f(e,t)})()}function Hp(e,t){return P(function*(){yield fp(e,t)})()}function Up(e,t){return P(function*(){yield cp(e,t)})()}function Wp(e,t){return P(function*(){yield gp(e,t)})()}function Gp(e,t){return P(function*(){yield ip(e,t)})()}function Kp(e,t){return P(function*(){yield Np(e,t)})()}function qp(e,t){return P(function*(){yield If(e,t)})()}function Jp(e,t){return P(function*(){yield Bf(e,t)})()}D(),j(),N(),F();var Yp=new WeakMap,Xp=new WeakMap,Zp=new WeakMap,Qp=class{constructor(e,t){E(this,Yp,void 0),E(this,Xp,void 0),E(this,Zp,void 0),A(Yp,this,e),A(Xp,this,new Rp(e)),A(Zp,this,t)}write(e){var t=this;return P(function*(){yield M(Yp,t).write(M(Zp,t)),yield M(Xp,t).write(e)})()}close(){return M(Yp,this).close()}};U(),F(),I(1025),I(1027),I(1033),I(2048);var $p=class extends Error{constructor(e,t){super(e),this.errorCode=t}};function em(e){return tm.apply(this,arguments)}function tm(){return tm=P(function*(e){return{type:$.AnnounceError,namespace:yield Tf(e),errorCode:yield e.readBigVarInt(),reason:yield e.readString()}}),tm.apply(this,arguments)}F();function nm(e,t,n){return rm.apply(this,arguments)}function rm(){return rm=P(function*(e,t,n){return{type:$.Unknown,messageType:t,payload:yield e.read(n)}}),rm.apply(this,arguments)}U(),D(),j(),N(),F();var im=new WeakMap,am=class{constructor(e){E(this,im,void 0),A(im,this,e)}cancel(){return M(im,this).close()}read(){var e=this;return P(function*(){let t=yield M(im,e).readVarInt(),n=yield M(im,e).readVarInt();switch(t){case $.ServerSetup:return kp(M(im,e));case $.ClientSetup:return Tp(M(im,e));case $.Subscribe:return Zf(M(im,e));case $.SubscribeOk:return up(M(im,e));case $.SubscribeDone:return np(M(im,e));case $.SubscribeError:return op(M(im,e));case $.SubscribeUpdate:return mp(M(im,e));case $.Unsubscribe:return jp(M(im,e));case $.Announce:return Pf(M(im,e));case $.AnnounceOk:return Rf(M(im,e));case $.AnnounceError:return em(M(im,e))}return nm(M(im,e),I(t),n)})()}};U(),V(),D(),j(),N(),k(),F();var om=new WeakMap,sm=new WeakMap,cm=new WeakMap,lm=new WeakMap,um=new WeakSet,dm=class e{constructor(e,t){B(this,um),E(this,om,void 0),E(this,sm,void 0),E(this,cm,new w),E(this,lm,new w),A(om,this,e),A(sm,this,t),M(cm,this).resolve()}write(e){var t=this;return P(function*(){let n=yield O(um,t,fm).call(t);try{yield M(om,t).write(e)}finally{n.resolve()}})()}markPostHandshake(){M(lm,this).resolve()}postHandshake(){return M(lm,this).promise}read(){var e=this;return P(function*(){return M(sm,e).read()})()}cancel(){return M(sm,this).cancel()}static wrapWebsocket(t){let n=new ReadableStream(new Md(t,pm._)),r=new am(new Kd(new Uint8Array([]),n));return new e(new Qp(new hf(t),new Uint8Array([0])),r)}static wrapWebTransport(t){let n=t.writable,r=t.readable;return new e(new Rp(new cf(n)),new am(new Kd(new Uint8Array,r)))}};function fm(){let e=new w,t=M(cm,this).promise.then(()=>e);return A(cm,this,e),t}var pm={_:0};F();function mm(e,t){return hm.apply(this,arguments)}function hm(){return hm=P(function*(e,t){yield e.write({type:$.ClientSetup,supportedVersions:[{type:`known`,value:bp.Draft07}],parameters:new Map([[yp.Role,{type:yp.Role,payload:new Uint8Array([t])}]])});let n=yield e.read();if(e.markPostHandshake(),n.type!==$.ServerSetup)throw Error(`Expected server setup message`);if(n.selectedVersion.type!==`known`)throw Error(`Expected known version`)}),hm.apply(this,arguments)}U(),h(),D(),N();var gm=new WeakMap,_m=class{constructor(e){m(this,`announce`,void 0),E(this,gm,new w),this.announce=e}onOk(e){M(gm,this).resolve(e)}onError(e){let t=new $p(e.reason,e.errorCode);return M(gm,this).reject(t),t}ok(){return M(gm,this).promise}};h();function vm(e){return new ym(new _m(e))}var ym=class{constructor(e){m(this,`state`,void 0),this.state=e}};U(),h(),D(),j(),N();var bm=new WeakMap,xm=new WeakMap,Sm=new WeakMap,Cm=new WeakMap,wm=new WeakMap,Tm=new WeakMap,Em=new WeakMap,Dm=class e{constructor(e){switch(m(this,`subscribe`,void 0),E(this,bm,new w),E(this,xm,new w),E(this,Sm,new w),E(this,Cm,Date.now()),E(this,wm,new w),E(this,Tm,void 0),E(this,Em,!1),this.subscribe=e,e.filterType.type){case`absolute-start`:A(Tm,this,{startGroup:e.filterType.start.group});break;case`absolute-range`:A(Tm,this,{startGroup:e.filterType.start.group,endGroup:e.filterType.end.group});break}}onUpdate(e){A(Tm,this,{startGroup:e.start.group}),e.end.group>I(0)&&(M(Tm,this).endGroup=e.end.group-I(1),A(Em,this,!0))}endRequested(){return M(Em,this)}onError(e){let t=Error(e.reason);return M(bm,this).reject(t),M(xm,this).reject(t),t}onDone(e){e.finalInfo&&(M(Tm,this)||A(Tm,this,{startGroup:I(0)}),M(Tm,this).endGroup=e.finalInfo.group),M(xm,this).resolve(e)}onUnsubscribe(e){M(Sm,this).resolve(e)}onOk(t){let n=Math.max(0,Date.now()-M(Cm,this)),r=Number(t.expires);if(r>0){let t=Math.max(e.minGraceTime,Math.min(r/10,e.maxGraceTime)),i=Math.min(r-t-n,e.maxTimeout);Promise.race([Tr(i),this.done().catch(C)]).then(()=>M(wm,this).resolve(this.expiryState())).catch(C)}M(bm,this).resolve(t)}done(){return M(xm,this).promise}ok(){return M(bm,this).promise}range(){return M(Tm,this)}close(){M(wm,this).promise.catch(C),M(wm,this).reject(Error(`Subscription closed`))}expiryState(){return M(xm,this).resolved&&M(xm,this).resolved.errorCode!==tp.Expired?`done`:M(Sm,this).pending?`active`:`unsubscribed`}unsubscribed(){return M(Sm,this).promise}isUnsubscribed(){return M(Sm,this).resolved}expiryNotification(){return M(wm,this).promise}};m(Dm,`maxGraceTime`,15e3),m(Dm,`minGraceTime`,3e3),m(Dm,`maxTimeout`,2147483647),D(),j(),N(),F();var Om=new WeakMap,km=new WeakMap,Am=class{constructor(e){E(this,Om,void 0),E(this,km,!1),A(Om,this,e)}write(e){var t=this;return P(function*(){M(km,t)||(yield M(Om,t).writeVarInt(Ru.StreamHeaderGroup),yield M(Om,t).writeBigVarInt(e.subscribeId),yield M(Om,t).writeBigVarInt(e.trackAlias),yield M(Om,t).writeBigVarInt(e.groupId),yield M(Om,t).writeBigVarInt(e.subGroupId),yield M(Om,t).writeUnsigned8(e.subscriberPriority),A(km,t,!0)),yield M(Om,t).writeBigVarInt(e.objectId),yield M(Om,t).writeVarInt(e.payload.length),e.payload.length>0?yield M(Om,t).write(e.payload):yield M(Om,t).writeVarInt(e.objectStatus),yield M(Om,t).flush()})()}close(){var e=this;return P(function*(){yield M(Om,e).close()})()}};U(),V(),D(),j(),N(),k(),F();var jm,Mm,Nm,Pm,Fm=3,Im=new WeakMap,Lm=new WeakMap,Rm=new WeakMap,zm=new WeakMap,Bm=new WeakMap,Vm=new WeakMap,Hm=new WeakMap,Um=new WeakMap,Wm=new WeakSet;jm=Cn(),Mm=Symbol.asyncDispose;var Gm=class{constructor(e,t,n,r){B(this,Wm),E(this,Im,void 0),E(this,Lm,void 0),E(this,Rm,void 0),E(this,zm,void 0),E(this,Bm,void 0),E(this,Vm,void 0),E(this,Hm,[]),E(this,Um,new AbortController),A(Im,this,t),A(Lm,this,e),A(Rm,this,n),A(zm,this,r),A(Vm,this,bn.get().createContext(`SubscriptionWriter:${e.subscribe.name}`))}finalInfo(){return M(Bm,this)}run(){var e=this;return P(function*(){try{yield Promise.race([O(Wm,e,Km).call(e).catch(t=>M(Vm,e).error(`error writing subscription`,t)),M(Lm,e).unsubscribed(),M(Lm,e).done(),M(Lm,e).expiryNotification().catch(C)])}finally{M(Um,e).abort()}})()}done(e,t){var n=this;return P(function*(){if(M(Lm,n).isUnsubscribed())return;let r={type:$.SubscribeDone,id:M(Lm,n).subscribe.id,errorCode:e,reason:t,finalInfo:M(Bm,n)};M(Lm,n).onDone(r),yield M(zm,n).push(r)})()}[jm](){return this.done(tp.TrackEnded,`Track ended`)}[Mm](){return this.done(tp.TrackEnded,`Track ended`)}};function Km(){var e=this;return P(function*(){var t=!1,n=!1,r;try{for(var i=Z(M(Im,e).iterate(M(Um,e).signal)),a;t=!(a=yield i.next()).done;t=!1){let t=a.value;{let n=M(Lm,e).range();if(n&&(n.startGroup>t.id||n.endGroup!==void 0&&n.endGroup<t.id))break;for(;M(Hm,e).length>=Fm;)yield M(Hm,e).shift();if(M(Um,e).signal.aborted)break;let r=new Qm(new Am(yield M(Rm,e).openSendStream()),t.consume(),M(Lm,e));try{yield r.run()}finally{M(Hm,e).push(r.close())}A(Bm,e,r.finalGroup())}}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield i.return())}finally{if(n)throw r}}})()}var qm=new WeakMap,Jm=new WeakMap,Ym=new WeakMap,Xm=new WeakMap,Zm=new WeakMap;Nm=Cn(),Pm=Symbol.asyncDispose;var Qm=class{constructor(e,t,n){E(this,qm,void 0),E(this,Jm,void 0),E(this,Ym,void 0),E(this,Xm,void 0),E(this,Zm,void 0),A(qm,this,e),A(Jm,this,t),A(Ym,this,n),A(Zm,this,bn.get().createContext(`GroupSubscriptionWriter:${n.subscribe.name}`))}finalGroup(){return M(Xm,this)}run(){var e=this;return P(function*(){M(Zm,e).debug(`write group`);var t=!1,n=!1,r;try{for(var i=Z(M(Jm,e)),a;t=!(a=yield i.next()).done;t=!1){let t=a.value;yield M(qm,e).write({subscribeId:M(Ym,e).subscribe.id,trackAlias:M(Ym,e).subscribe.trackAlias,subGroupId:I(0),subscriberPriority:0,groupId:t.groupId,objectId:t.objectId,objectStatus:t.objectStatus,payload:t.payload}),A(Xm,e,{group:t.groupId,object:t.objectId})}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield i.return())}finally{if(n)throw r}}M(Zm,e).debug(`write group done`)})()}close(){return M(qm,this).close().catch(C)}[Nm](){return this.close()}[Pm](){return this.close()}};U(),V(),h(),D(),j(),N(),F(),k();var $m,eh,th=new WeakMap,nh=new WeakMap,rh=new WeakSet;$m=Cn(),eh=Symbol.asyncDispose;var ih=class{constructor(e,t,n){B(this,rh),m(this,`state`,void 0),E(this,th,void 0),E(this,nh,void 0),this.state=e,A(th,this,t),A(nh,this,n)}ok(e){var t=this;return P(function*(){var n,r,i;let a=(n=t.state.range())==null?void 0:n.startGroup,o=e.latest(),s=o==null?void 0:o.id,c=(r=o==null||(i=o.latest())==null?void 0:i.objectId)==null?I(0):r,l=e.consume(a==null?s:a),u={type:$.SubscribeOk,id:t.state.subscribe.id,expires:I(0),groupOrder:`ascending`,params:new Map,largestInfo:s?{group:s,object:c}:void 0};return yield M(nh,t).push(u),new Gm(t.state,l,M(th,t),M(nh,t))})()}invalidRange(){return O(rh,this,ah).call(this,I(1),`Invalid range`)}retryTrackAlias(){return O(rh,this,ah).call(this,I(2),`Retry track alias`)}trackDoesNotExist(){return O(rh,this,ah).call(this,I(3),`Track does not exist`)}unauthorized(){return O(rh,this,ah).call(this,I(4),`Unauthorized`)}timeout(){return O(rh,this,ah).call(this,I(5),`Timeout`)}[$m](){return this.trackDoesNotExist()}[eh](){return this.trackDoesNotExist()}};function ah(e,t){let n={type:$.SubscribeError,id:this.state.subscribe.id,errorCode:e,reason:t,trackAlias:this.state.subscribe.trackAlias};return M(nh,this).push(n)}U(),V(),D(),j(),N(),F(),k();var oh=new WeakMap,sh=new WeakMap,ch=new WeakMap,lh=new WeakMap,uh=new WeakMap,dh=new WeakMap,fh=new WeakMap,ph=new WeakSet,mh=class{constructor(e,t,n){B(this,ph),E(this,oh,void 0),E(this,sh,void 0),E(this,ch,void 0),E(this,lh,bn.get().createContext(`Publisher`)),E(this,uh,new Xn(new Map)),E(this,dh,new Xn(new Map)),E(this,fh,new _e(10)),A(oh,this,e),A(sh,this,t),A(ch,this,n)}announce(e){var t=this;return P(function*(){M(lh,t).info(`Enter 'announce'`,{namespace:e});try{if(M(uh,t).current().has(e.join(`/`)))throw Error(`Duplicate announcement`);let n=new Map,r=M(oh,t).authToken();r&&n.set(kf,{type:kf,payload:new TextEncoder().encode(r)});let i={type:$.Announce,namespace:e,params:n},a=vm(i);if(M(uh,t).update(e=>e.set(i.namespace.join(`/`),a)),yield M(ch,t).push(i),!(yield Promise.race([a.state.ok(),M(oh,t).closed().then(()=>void 0)])))throw Error(`Session closed`)}catch(e){throw M(lh,t).error(`Error 'announce'`,e),e}})()}close(){M(dh,this).current().forEach(e=>e.close()),M(dh,this).close(),M(uh,this).close(),M(fh,this).close()}incomingSubscriptions(){return M(fh,this)}onMessage(e){var t=this;return P(function*(){switch(e.type){case $.Subscribe:{let n=new Dm(e);if(M(dh,t).update(t=>(t.set(e.id,n),t)),M(fh,t).isFull()){let e=yield M(fh,t).pop();yield e==null?void 0:e.timeout()}yield M(fh,t).push(new ih(n,M(sh,t),M(ch,t)))}break;case $.SubscribeUpdate:{let n=M(dh,t).current().get(e.id);n||M(lh,t).debug(`No subscription found`,e),n==null||n.onUpdate(e)}break;case $.Unsubscribe:{let n=M(dh,t).current().get(e.id);if(!n){M(lh,t).debug(`No subscription found`,e);break}n.onUnsubscribe(e),O(ph,t,hh).call(t,e.id)}break;case $.AnnounceOk:{let n=M(uh,t).current().get(e.namespace.join(`/`));n||M(lh,t).warn(`No announcement found`,e),n==null||n.state.onOk(e)}break;case $.AnnounceError:{let n=M(uh,t).current().get(e.namespace.join(`/`));n||M(lh,t).warn(`No announcement found`,e),n==null||n.state.onError(e)}break;default:break}})()}};function hh(e){M(dh,this).isClosed()||M(dh,this).update(t=>(t.delete(e),t))}function gh(){var e=typeof SuppressedError==`function`?SuppressedError:function(e,t){var n=Error();return n.name=`SuppressedError`,n.error=e,n.suppressed=t,n},t={},n=[];function r(e,t){if(t!=null){if(Object(t)!==t)throw TypeError(`using declarations can only be used with objects, functions, null, or undefined.`);if(e)var r=t[Symbol.asyncDispose||Symbol.for(`Symbol.asyncDispose`)];if(r===void 0&&(r=t[Symbol.dispose||Symbol.for(`Symbol.dispose`)],e))var i=r;if(typeof r!=`function`)throw TypeError(`Object is not disposable.`);i&&(r=function(){try{i.call(t)}catch(e){return Promise.reject(e)}}),n.push({v:t,d:r,a:e})}else e&&n.push({d:t,a:e});return t}return{e:t,u:r.bind(null,!1),a:r.bind(null,!0),d:function(){var r,i=this.e,a=0;function o(){for(;r=n.pop();)try{if(!r.a&&a===1)return a=0,n.push(r),Promise.resolve().then(o);if(r.d){var e=r.d.call(r.v);if(r.a)return a|=2,Promise.resolve(e).then(o,s)}else a|=1}catch(e){return s(e)}if(a===1)return i===t?Promise.resolve():Promise.reject(i);if(i!==t)throw i}function s(n){return i=i===t?n:new e(n,i),o()}return o()}}}U(),h(),D(),j(),N(),V(),F(),Bn(),Un(),k();var _h,vh,yh;function bh(e,t){let n=new Dm(t),[r,i]=de(100);return[new Sh(n,r),new kh(e,n,i)]}var xh=new WeakMap,Sh=class{constructor(e,t){m(this,`state`,void 0),E(this,xh,void 0),this.state=e,A(xh,this,t)}onDone(e){this.state.onDone(e)}onData(e){return M(xh,this).push(e)}onError(e){let t=this.state.onError(e);M(xh,this).abort(t)}close(){this.state.close(),M(xh,this).close()}},Ch=new WeakMap,wh=new WeakMap,Th=new WeakMap,Eh=new WeakMap,Dh=new WeakMap,Oh=new WeakSet;_h=Symbol.asyncIterator,vh=Cn(),yh=Symbol.asyncDispose;var kh=class{constructor(e,t,n){B(this,Oh),E(this,Ch,void 0),E(this,wh,void 0),E(this,Th,void 0),E(this,Eh,new w),E(this,Dh,bn.get().createContext(`SubscriptionConsumer`)),A(Ch,this,e),A(wh,this,t),A(Th,this,n)}get id(){return M(wh,this).subscribe.id}get trackAlias(){return M(wh,this).subscribe.trackAlias}get name(){return M(wh,this).subscribe.name}range(){return M(wh,this).range()}endRequested(){return M(wh,this).endRequested()}expiryNotification(){return M(wh,this).expiryNotification()}update(e,t){var n=this;return P(function*(){let r={type:$.SubscribeUpdate,id:M(wh,n).subscribe.id,start:{group:e,object:I(0)},end:{group:t+I(1),object:I(0)},params:new Map,subscriberPriority:0};M(wh,n).onUpdate(r),yield M(Ch,n).push(r)})()}unsubscribe(){var e=this;return P(function*(){let t={type:$.Unsubscribe,id:M(wh,e).subscribe.id};M(wh,e).onUnsubscribe(t),yield M(Ch,e).push(t)})()}close(){var e,t;return M(Eh,this).resolve(),(e=(t=M(Th,this)).return)==null?void 0:e.call(t)}closed(){return M(Eh,this).promise}done(){return M(wh,this).done()}expiryState(){return M(wh,this).expiryState()}unsubscribed(){return M(wh,this).isUnsubscribed()}return(){var e=this;return P(function*(){return M(Eh,e).resolve(),yield e.unsubscribe(),{done:!0,value:void 0}})()}groups(){var e=this;return Vn(function*(){var t=!1,n=!1,r;try{for(var i=Z(M(Th,e)),a;t=!(a=yield H(i.next())).done;t=!1)try{var o=gh();let t=o.a(a.value);var s=!1,c=!1,l;try{for(var u=Z(t.groups()),d;s=!(d=yield H(u.next())).done;s=!1){let t=d.value;{var f,p;let n=(f=M(wh,e).range())==null?void 0:f.startGroup,r=(p=M(wh,e).range())==null?void 0:p.endGroup;if(n!==void 0&&t.groupId()<n||r!==void 0&&t.groupId()>r)return{done:!0,value:void 0};yield t}}}catch(e){c=!0,l=e}finally{try{s&&u.return!=null&&(yield H(u.return()))}finally{if(c)throw l}}}catch(e){o.e=e}finally{yield H(o.d())}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield H(i.return()))}finally{if(n)throw r}}})()}[_h](){return this.groups()}objects(){var e=this;return Vn(function*(){var t=!1,n=!1,r;try{for(var i=Z(e.groups()),a;t=!(a=yield H(i.next())).done;t=!1){let e=a.value;var o=!1,s=!1,c;try{for(var l=Z(e),u;o=!(u=yield H(l.next())).done;o=!1)yield u.value}catch(e){s=!0,c=e}finally{try{o&&l.return!=null&&(yield H(l.return()))}finally{if(s)throw c}}}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield H(i.return()))}finally{if(n)throw r}}})()}[vh](){return O(Oh,this,Ah).call(this)}[yh](){return O(Oh,this,Ah).call(this)}};function Ah(){var e=this;return P(function*(){return M(Dh,e).info(`Enter 'dispose'`),yield e.close(),e.unsubscribe()})()}U(),V(),D(),h(),j(),k(),N(),F();var jh=2e3,Mh=new WeakMap,Nh=new WeakMap,Ph=new WeakMap,Fh=new WeakMap,Ih=new WeakSet,Lh=class{constructor(e,t){B(this,Ih),E(this,Mh,void 0),m(this,`nextSubscribeId`,I(0)),E(this,Nh,new Xn(new Map)),E(this,Ph,void 0),E(this,Fh,bn.get().createContext(`Subscriber`)),A(Mh,this,e),A(Ph,this,t),O(Ih,this,Rh).call(this).catch(C)}subscribe(e,t){var n=this;return P(function*(e,t,r=new Map){M(Fh,n).info(`Enter 'subscribe'`,{namespace:e,track:t});try{let i=n.nextSubscribeId++,a=M(Mh,n).authToken();a&&r.set(kf,{type:kf,payload:new TextEncoder().encode(a)});let o={type:$.Subscribe,namespace:e,name:t.name,id:i,trackAlias:i,groupOrder:t.groupOrder,subscriberPriority:t.priority,filterType:t.filterType,params:r},[s,c]=bh(M(Ph,n),o);if(M(Nh,n).update(e=>e.set(i,s)),yield M(Ph,n).push(o),!(yield Promise.race([s.state.ok(),M(Mh,n).closed().then(()=>void 0)])))throw Error(`Session closed`);return c.closed().then(()=>Promise.race([Tr(jh),n.closed()])).then(()=>O(Ih,n,zh).call(n,c.id)).catch(()=>O(Ih,n,zh).call(n,c.id)),c}catch(e){throw M(Fh,n).error(`Error 'subscribe'`,e),e}}).apply(this,arguments)}closed(){return M(Mh,this).closed()}lastReceived(){return M(Mh,this).lastReceived()}transportType(){return M(Mh,this).transportType()}url(){return M(Mh,this).url()}onMessage(e){var t=this;return P(function*(){switch(e.type){case $.Announce:yield M(Ph,t).push({type:$.AnnounceOk,namespace:e.namespace});break;case $.SubscribeOk:{let n=M(Nh,t).current().get(e.id);n&&n.state.onOk(e)}break;case $.SubscribeError:{let n=M(Nh,t).current().get(e.id);n||M(Fh,t).warn(`No subscription found`,e),n==null||n.onError(e),O(Ih,t,zh).call(t,e.id)}break;case $.SubscribeDone:{let n=M(Nh,t).current().get(e.id);n||M(Fh,t).debug(`No subscription found`,e),n==null||n.onDone(e)}break;default:break}})()}onObjectReader(e){var t=this;return P(function*(){let n=M(Nh,t).current().get(e.subscribeId());if(!n){M(Fh,t).warn(`No subscription found`,e.subscribeId());return}yield n.onData(e)})()}close(){M(Fh,this).debug(`Enter 'close'`),M(Nh,this).current().forEach(e=>e.close()),M(Nh,this).close()}};function Rh(){var e=this;return P(function*(){var t=!1,n=!1,r;try{for(var i=Z(M(Nh,e)),a;t=!(a=yield i.next()).done;t=!1){let t=a.value;{let n=[...t.values()].map(e=>e.state.subscribe);M(Fh,e).debug(`current subscriptions`,n)}}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield i.return())}finally{if(n)throw r}}M(Fh,e).debug(`Return 'observeChanges'`)})()}function zh(e){M(Fh,this).debug(`Enter 'deleteSubscription'`),!M(Nh,this).isClosed()&&M(Nh,this).update(t=>(t.delete(e),t))}U(),V(),D(),h(),j(),k(),N(),F();var Bh,Vh,Hh=new WeakMap,Uh=new WeakMap,Wh=new WeakMap,Gh=new WeakMap,Kh=new WeakMap,qh=new WeakMap,Jh=new WeakMap,Yh=new WeakMap,Xh=new WeakSet;Bh=wn(),Vh=Symbol.dispose;var Zh=class{constructor(e,t){B(this,Xh),E(this,Hh,void 0),E(this,Uh,void 0),E(this,Wh,new w),E(this,Gh,void 0),E(this,Kh,bn.get().createContext(`Session`)),m(this,`subscriber`,void 0),m(this,`publisher`,void 0),E(this,qh,void 0),E(this,Jh,!1),E(this,Yh,performance.now());let[n,r]=de(100);A(Hh,this,e),A(Gh,this,r),this.subscriber=new Lh(this,n),this.publisher=new mh(this,e,n),A(Uh,this,O(Xh,this,$h).call(this)),A(qh,this,new Xn(t)),this.closed().then(()=>this.close()).catch(C)}updateAuthToken(e){M(qh,this).update(e)}authToken(){return M(qh,this).current()}transportType(){return M(Hh,this).transportType()}lastReceived(){return Math.max(M(Yh,this),M(Hh,this).lastReceived())}getStats(){var e,t,n;return(e=(t=(n=M(Hh,this)).getStats)==null?void 0:t.call(n))==null?Promise.resolve(void 0):e}url(){return M(Hh,this).url()}closed(){return Promise.race([M(Uh,this),M(Wh,this).promise])}fail(e){M(Wh,this).pending&&M(Wh,this).resolve(e)}close(){A(Jh,this,!0);try{this.subscriber.close(),this.publisher.close(),M(Gh,this).cancel(`closing`),M(Hh,this).close()}catch(e){M(Kh,this).warn(`Error closing session`,e)}}[Bh](){O(Xh,this,rg).call(this)}[Vh](){O(Xh,this,rg).call(this)}};function Qh(e){var t=this;return P(function*(){var n,r;switch(M(Kh,t).debug(`received message`,e),yield(n=t.subscriber)==null?void 0:n.onMessage(e),yield(r=t.publisher)==null?void 0:r.onMessage(e),e.type){case $.Goaway:M(Kh,t).info(`received GoAway`,e);break;default:break}})()}function $h(){var e=this;return P(function*(){var t;let n=yield Promise.all([O(Xh,e,tg).call(e),O(Xh,e,ng).call(e),O(Xh,e,eg).call(e)]);return(t=M(Wh,e).resolved)==null?n.find(e=>e instanceof Error):t})()}function eg(){var e=this;return P(function*(){try{var t=!1,n=!1,r;try{for(var i=Z(M(Gh,e)),a;t=!(a=yield i.next()).done;t=!1){let t=a.value;M(Kh,e).debug(`sending message`,t),yield M(Hh,e).writeMessage(t)}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield i.return())}finally{if(n)throw r}}}catch(t){return M(Jh,e)?M(Kh,e).debug(`Closed while sending 'runOutgoingMessages'`,t):M(Kh,e).error(`Error 'runOutgoingMessages'`,t),t}M(Kh,e).info(`Return 'runOutgoingMessages'`)})()}function tg(){var e=this;return P(function*(){try{for(yield M(Hh,e).afterHandshake();;){let t=yield M(Hh,e).readMessage().catch(()=>void 0);if(!t)break;A(Yh,e,performance.now()),yield O(Xh,e,Qh).call(e,t)}}catch(t){return M(Kh,e).error(`Error 'runControl'`,t),t}finally{M(Gh,e).cancel(`closing`)}M(Kh,e).info(`Return 'runControl'`)})()}function ng(){var e=this;return P(function*(){try{for(;;){var t;let n=yield M(Hh,e).objectStream();if(!n)break;yield(t=e.subscriber)==null?void 0:t.onObjectReader(n)}}catch(t){return M(Kh,e).error(`Error 'runObjects'`,t),t}M(Kh,e).info(`Return 'runObjects'`)})()}function rg(){M(Kh,this).debug(`Enter 'dispose'`),this.close()}V(),D(),j(),N(),k(),F();var ig=128;ig-1;var ag=new WeakMap,og=new WeakMap,sg=new WeakMap,cg=new WeakMap,lg=new WeakMap,ug=new WeakSet,dg=class{constructor(e,t,n){if(B(this,ug),E(this,ag,void 0),E(this,og,void 0),E(this,sg,!0),E(this,cg,!1),E(this,lg,void 0),!Number.isInteger(t)||t<1||t>127)throw Error(`Invalid stream ID ${t}: must be an integer in 1..127`);A(ag,this,e),A(og,this,t),A(lg,this,n)}writeUnsigned8(e){var t=this;return P(function*(){return O(ug,t,fg).call(t),yield O(ug,t,pg).call(t),M(ag,t).writeUnsigned8(e)})()}writeVarInt(e){var t=this;return P(function*(){return O(ug,t,fg).call(t),yield O(ug,t,pg).call(t),M(ag,t).writeVarInt(e)})()}writeBigVarInt(e){var t=this;return P(function*(){return O(ug,t,fg).call(t),yield O(ug,t,pg).call(t),M(ag,t).writeBigVarInt(e)})()}write(e){var t=this;return P(function*(){return O(ug,t,fg).call(t),yield O(ug,t,pg).call(t),M(ag,t).write(e)})()}writeString(e){var t=this;return P(function*(){return O(ug,t,fg).call(t),yield O(ug,t,pg).call(t),M(ag,t).writeString(e)})()}flush(){var e=this;return P(function*(){O(ug,e,fg).call(e),A(sg,e,!0),yield M(ag,e).flush()})()}close(){var e=this;return P(function*(){M(cg,e)||(A(sg,e,!0),yield O(ug,e,pg).call(e,!1),yield M(ag,e).flush(),A(cg,e,!0),M(lg,e).call(e))})()}};function fg(){if(M(cg,this))throw Error(`Stream is closed`)}function pg(e=!0){if(M(sg,this))return A(sg,this,!1),M(ag,this).writeUnsigned8(M(og,this)|(e?ig:0))}U(),V(),D(),j(),N(),k(),F();var mg=new WeakMap,hg=new WeakMap,gg=new WeakMap,_g=new WeakMap,vg=new WeakMap,yg=new WeakMap,bg=new WeakMap,xg=new WeakMap,Sg=new WeakSet,Cg=class{constructor(e,t){B(this,Sg),E(this,mg,void 0),E(this,hg,void 0),E(this,gg,void 0),E(this,_g,void 0),E(this,vg,new Map),E(this,yg,bn.get().createContext(`WebSocketConnection`)),E(this,bg,performance.now()),E(this,xg,new Set(Array(127).fill(0).map((e,t)=>t+1))),A(mg,this,e),A(hg,this,t),A(gg,this,new ReadableStream(new Ld(e))),M(mg,this).addEventListener(`message`,()=>{A(bg,this,performance.now())}),M(mg,this).addEventListener(`close`,e=>{M(yg,this).info(`WebSocket closed`,{code:e.code,reason:e.reason,wasClean:e.wasClean}),M(hg,this).markPostHandshake(),M(vg,this).forEach(e=>e.close())})}openSendStream(){let e=M(xg,this).values().next().value;if(!e)throw Error(`No stream IDs available`);return M(xg,this).delete(e),Promise.resolve(new dg(new hf(M(mg,this)),e,()=>O(Sg,this,wg).call(this,e)))}transportType(){return`websocket`}url(){return M(mg,this).url}lastReceived(){return M(bg,this)}afterHandshake(){return M(hg,this).postHandshake()}objectStream(){var e=this;return P(function*(){for(;;){A(_g,e,M(gg,e).getReader());try{let{value:t,done:n}=yield M(_g,e).read();if(n)return;let[r,i,a]=t;if(M(vg,e).has(I(i))){let t=M(vg,e).get(I(i));if(!t)throw Error(`Stream not found`);a.length>0&&(yield t.push(a)),r||(M(yg,e).debug(`Closing stream`,{streamId:i}),t.close(),M(vg,e).delete(I(i)))}else{M(yg,e).debug(`Creating new stream`,{streamId:i});let[t,n]=de(1e3),o=new ReadableStream({pull(e){return P(function*(){let t=yield n.pop();t?e.enqueue(t):e.close()})()}});if(M(vg,e).set(I(i),t),r||(M(yg,e).debug(`Closing new stream`,{streamId:i}),yield o.cancel(),M(vg,e).delete(I(i))),a.length>0)return yield Dd(new Kd(a,o),i)}}finally{var t;(t=M(_g,e))==null||t.releaseLock()}}})()}close(){var e;return M(hg,this).cancel().catch(C),M(gg,this).cancel(`closing`).catch(C),(e=M(_g,this))==null||e.cancel(`closing`).catch(C),M(mg,this).close()}closed(){return Promise.resolve()}writeMessage(e){var t=this;return P(function*(){yield M(hg,t).write(e)})()}readMessage(){var e=this;return P(function*(){return M(hg,e).read()})()}};function wg(e){M(xg,this).add(e)}U(),V(),D(),j(),k(),N(),F();var Tg=3,Eg=new WeakMap,Dg=new WeakMap,Og=new WeakMap,kg=new WeakMap,Ag=new WeakMap,jg=new WeakMap,Mg=new WeakMap,Ng=new WeakMap,Pg=new WeakMap,Fg=new WeakSet,Ig=class{constructor(e,t,n){B(this,Fg),E(this,Eg,void 0),E(this,Dg,void 0),E(this,Og,new _e(100)),E(this,kg,void 0),E(this,Ag,0),E(this,jg,!1),E(this,Mg,performance.now()),E(this,Ng,bn.get().createContext(`WebTransportConnection`)),E(this,Pg,()=>{A(Mg,this,performance.now())}),A(kg,this,n),A(Eg,this,e),A(Dg,this,t),O(Fg,this,Lg).call(this).catch(e=>{M(Ng,this).warn(`Incoming streams handling ended with error`,e),M(Dg,this).markPostHandshake(),M(Og,this).close()}),M(Eg,this).closed.finally(()=>{A(jg,this,!0),M(Dg,this).markPostHandshake(),M(Og,this).close()}).catch(C)}openSendStream(){var e=this;return P(function*(){return new cf(yield M(Eg,e).createUnidirectionalStream())})()}transportType(){return`webtransport`}url(){return M(kg,this)}lastReceived(){return M(Mg,this)}afterHandshake(){return M(Dg,this).postHandshake()}closed(){var e=this;return P(function*(){yield M(Eg,e).closed.catch(C)})()}close(e){M(jg,this)||(A(jg,this,!0),M(Og,this).close(),M(Eg,this).close(e))}writeMessage(e){var t=this;return P(function*(){yield M(Dg,t).write(e)})()}readMessage(){var e=this;return P(function*(){return M(Dg,e).read()})()}objectStream(){var e=this;return P(function*(){for(;;){let t=yield M(Og,e).pop();if(!t||M(jg,e))return;let n=yield t.groups;if(M(jg,e))return;if(n)return n}})()}getStats(){var e=this;return P(function*(){let t=M(Eg,e);if(typeof t.getStats!=`function`)return;let n=yield t.getStats();if(n!=null)return{packetsLost:n.packetsLost,packetsSent:n.packetsSent}})()}};function Lg(){var e=this;return P(function*(){let t=M(Eg,e).incomingUnidirectionalStreams.getReader();for(;;){var n;let{value:r,done:i}=yield t.read();if(i||M(jg,e)){M(Og,e).close();return}let a=new Kd(new Uint8Array,r,M(Pg,e)),o=M(Ag,e),s=Dd(a,o).catch(t=>O(Fg,e,Rg).call(e,t,o,a));yield M(Og,e).push({groups:s}),A(Ag,e,(n=M(Ag,e),n++,n))}})()}function Rg(e,t,n){var r;if(n.close().catch(C),M(jg,this))return;let i=Iu(e),a={streamId:t,error:e,source:i==null?void 0:i.source,streamErrorCode:(r=i==null?void 0:i.streamErrorCode)==null?void 0:r};(i==null?void 0:i.source)===`stream`?(Lu(e)?M(Ng,this).debug:M(Ng,this).warn)(`Discarding object stream whose header could not be read`,a):(M(Ng,this).warn(`Closing session after object stream header failure`,a),this.close(i?void 0:{closeCode:Tg,reason:`Invalid object stream header`}))}U(),F();var zg=bn.get().createContext(`MoqClient`);function Bg(e){return Vg.apply(this,arguments)}function Vg(){return Vg=P(function*(e){var t;be(e.signal);let n=new WebSocket(e.wsUrl||e.url);n.binaryType=`arraybuffer`;let r=e=>{throw n.close(),e};yield Se(new Promise((e,t)=>{let r,i=()=>{r&&(clearTimeout(r),r=void 0),n.removeEventListener(`error`,a),n.removeEventListener(`open`,o),n.removeEventListener(`close`,s)},a=()=>{i(),t(Error(`WebSocket error`))},o=()=>{i(),e()},s=()=>{i(),t(Error(`WebSocket closed before open`))};r=setTimeout(()=>{i(),n.close(),zg.warn(`WebSocket connect timed out`,{timeoutMs:qt}),t(Error(`WebSocket connect timed out`))},qt),n.addEventListener(`error`,a),n.addEventListener(`open`,o),n.addEventListener(`close`,s)}),e.signal).catch(r),(t=e.signal)!=null&&t.aborted&&r(ye(e.signal));let i=dm.wrapWebsocket(n),a=mm(i,e.role).catch(e=>{throw zg.warn(`MoQ handshake failed, closing WebSocket`,{error:e}),n.close(),e});if(!e.handshakePipelining){var o;yield Se(a,e.signal).catch(r),(o=e.signal)!=null&&o.aborted&&r(ye(e.signal))}let s=new Zh(new Cg(n,i),e.authToken);return zg.info(`connected`,{url:e.wsUrl||e.url,transport:`websocket`}),e.handshakePipelining&&a.catch(e=>{s.fail(e)}),s}),Vg.apply(this,arguments)}function Hg(e){return Ug.apply(this,arguments)}function Ug(){return Ug=P(function*(e,t=e.signal){be(t);let n=new WebTransport(e.url,{congestionControl:`low-latency`,serverCertificateHashes:e.serverCertificateHashes}),r=e=>{throw n.close(),e},i=()=>{n.close()};typeof window<`u`&&typeof window.addEventListener==`function`&&(window.addEventListener(`beforeunload`,i),n.closed.finally(()=>{window.removeEventListener(`beforeunload`,i)}).catch(()=>{})),yield Se(Promise.race([n.ready,n.closed.then(()=>Promise.reject(Error(`WebTransport closed`)))]),t).catch(r);let a=yield Se(n.createBidirectionalStream(),t).catch(r),o=dm.wrapWebTransport(a),s=mm(o,e.role).catch(e=>{throw zg.warn(`MoQ handshake failed, closing WebTransport`,{error:e}),n.close(),e});e.handshakePipelining||(yield Se(s,t).catch(r)),t!=null&&t.aborted&&r(ye(t));let c=new Zh(new Ig(n,o,e.url.toString()),e.authToken);return zg.info(`connected`,{url:e.url,transport:`webtransport`}),e.handshakePipelining&&s.catch(e=>{c.fail(e)}),c}),Ug.apply(this,arguments)}function Wg(e){return Gg.apply(this,arguments)}function Gg(){return Gg=P(function*(e){if(self.WebTransport&&(e==null?void 0:e.preferredTransport)!==`websocket`&&e.url.protocol.startsWith(`https`)){if(!e.websocketFallbackTimeoutMs)return{session:yield Hg(e),transportSelectionReason:void 0};let t=new AbortController,n=xe(e.signal,e=>t.abort(e.reason)),r=Hg(e,t.signal).catch(()=>void 0),i,a=new Promise(t=>{i=setTimeout(()=>t(void 0),e.websocketFallbackTimeoutMs)}),o=yield Promise.race([r,a]).finally(()=>{clearTimeout(i),n()});return o?{session:o,transportSelectionReason:void 0}:(t.abort(),r.then(e=>e==null?void 0:e.close()),{session:yield Bg(e),transportSelectionReason:`fallback`})}let t;return t=(e==null?void 0:e.preferredTransport)===`websocket`?`disabled`:self.WebTransport?`unavailable`:`unsupported`,{session:yield Bg(e),transportSelectionReason:t}}),Gg.apply(this,arguments)}U(),D(),N();var Kg=new WeakMap,qg=class{constructor(){E(this,Kg,{name:``,priority:0,groupOrder:`ascending`,filterType:{type:`latest-group`}})}name(e){return M(Kg,this).name=e,this}priority(e){return M(Kg,this).priority=e,this}groupOrder(e){return M(Kg,this).groupOrder=e,this}startGroup(e){return M(Kg,this).filterType={type:`absolute-start`,start:{group:e,object:I(0)}},this}range(e,t){return M(Kg,this).filterType={type:`absolute-range`,start:{group:e,object:I(0)},end:{group:t,object:I(0)}},this}build(){return M(Kg,this)}};D(),j(),N();var Jg=new WeakMap,Yg=new WeakMap,Xg=class{constructor(e,t){E(this,Jg,void 0),E(this,Yg,void 0),A(Jg,this,e),A(Yg,this,t)}subscribe(e,t=new Map){return M(Jg,this).subscribe(this.namespace(),e,t)}closed(){return M(Jg,this).closed()}namespace(){return M(Yg,this).namespace}};function Zg(e,t){return t?[`com.vindral.moq`,e,t]:[`com.vindral.moq`,e]}function Qg(e){let t=e[1];if(!t)throw Error(`namespace must contain a channel ID`);return t}function $g(e){return`tracks`in e}function e_(e){let t=new TextDecoder().decode(e);return JSON.parse(t)}U(),V(),D(),N(),j(),k(),F();var t_,n_=new WeakMap,r_=new WeakMap,i_=new WeakMap,a_=new WeakMap,o_=new WeakMap,s_=new WeakMap,c_=new WeakSet;t_=Symbol.asyncIterator;var l_=class e{constructor(e,t){var n=this;B(this,c_),E(this,n_,void 0),E(this,r_,void 0),E(this,i_,new T(100)),E(this,a_,void 0),E(this,o_,void 0),E(this,s_,function(){var e=P(function*(e){if(e===void 0)return M(n_,n).close();if(M(a_,n))return;let t=M(i_,n).items().reduce((e,t)=>e<t?e:t,e);A(a_,n,O(c_,n,u_).call(n,t,e)),M(a_,n).size===0&&(yield M(n_,n).close())});return function(t){return e.apply(this,arguments)}}()),A(n_,this,e),A(r_,this,t),e.done().then(function(){var e=P(function*(e){var t;return M(s_,n).call(n,(t=e.finalInfo)==null?void 0:t.group)});return function(t){return e.apply(this,arguments)}}()).catch(C),A(o_,this,e.groups())}static subscribe(t,n){return P(function*(){return new e(yield t.subscribe(n),void 0)})()}subscribeId(){return M(n_,this).id}name(){return M(n_,this).name}largestGroupId(){return M(r_,this)}needsRenewal(){return M(n_,this).expiryState()===`active`&&M(a_,this)===void 0}endOfTrack(e){let t=M(i_,this).items().reduce((e,t)=>e<t?e:t,e);return this.update(t,e)}update(e,t){var n=this;return P(function*(){return A(a_,n,O(c_,n,u_).call(n,e,t)),M(a_,n).size===0&&(yield M(n_,n).close()),M(n_,n).update(e,t)})()}unsubscribe(){return M(n_,this).unsubscribe()}next(){var e=this;return P(function*(){var t;if(M(a_,e)&&M(a_,e).size===0)return{done:!0,value:void 0};let n=yield M(o_,e).next();if(n.done)return n;let r=n.value.groupId();return(t=M(a_,e))==null||t.delete(r),M(i_,e).push(r),M(r_,e)||A(r_,e,r),A(r_,e,M(r_,e)<r?r:M(r_,e)),n})()}return(){return M(n_,this).return()}[t_](){return this}};function u_(e,t){let n=new Set;for(let r=e;r<=t;r++)n==null||n.add(r);return M(i_,this).items().forEach(e=>{n==null||n.delete(e)}),n}zn();function d_(e){var t={},n=!1;function r(t,r){return n=!0,r=new Promise(function(n){n(e[t](r))}),{done:!1,value:new Rn(r,1)}}return t[typeof Symbol<`u`&&Symbol.iterator||`@@iterator`]=function(){return this},t.next=function(e){return n?(n=!1,e):r(`next`,e)},typeof e.throw==`function`&&(t.throw=function(e){if(n)throw n=!1,e;return r(`throw`,e)}),typeof e.return==`function`&&(t.return=function(e){return n?(n=!1,e):r(`return`,e)}),t}U(),V(),D(),N(),k(),F(),j(),Bn(),Un();var f_,p_=new WeakMap,m_=new WeakMap,h_=new WeakMap,g_=new WeakMap,__=new WeakSet,v_=new WeakMap;f_=Symbol.asyncIterator;var y_=class e{constructor(e){var t=this;B(this,__),E(this,p_,void 0),E(this,m_,void 0),E(this,h_,new _e(10)),E(this,g_,void 0),E(this,v_,function(){var e=P(function*(e,n){try{var r=gh();let i=r.u(yield M(p_,t).lock()),a={subscribeId:i.value.subscribeId()};if(!i.value.needsRenewal()){M(g_,t).debug(`Subscription does not need renewal`,a);return}let o=i.value.largestGroupId(),s=o!==void 0,c=new qg().name(n.name).priority(n.priority).groupOrder(n.groupOrder);switch(a.largestGroupId=o,M(g_,t).debug(`Renewing subscription`,a),n.filterType.type){case`absolute-range`:M(g_,t).debug(`Absolute range is not renewed`,a);return;case`absolute-start`:case`latest-group`:case`latest-object`:s&&c.startGroup(o+I(1));break}let l=c.build();a.newTrack=l;let[u]=yield Promise.all([e.subscribe(l),s?i.value.update(o,o):i.value.unsubscribe()]);u.done().then(e=>O(__,t,b_).call(t,u,e.finalInfo!==void 0)).catch(C),u.expiryNotification().then(()=>M(v_,t).call(t,e,l)).catch(C);let d=new l_(u,o);i.value=d,yield M(h_,t).push(d),M(g_,t).info(`Subscription renewed`,a)}catch(e){r.e=e}finally{r.d()}});return function(t,n){return e.apply(this,arguments)}}()),A(p_,this,new Nn(e)),A(m_,this,e),A(g_,this,bn.get().createContext(`Renewable '${e.name()}'`))}static subscribe(t,n,r){return P(function*(){let i=r==null?void 0:r.params,a=r==null?void 0:r.largestGroupId,o=yield t.subscribe(n,i),s=new e(new l_(o,a));return o.done().then(e=>O(__,s,b_).call(s,o,e.finalInfo!==void 0)).catch(C),o.expiryNotification().then(()=>M(v_,s).call(s,t,n)).catch(C),s})()}largestGroupId(){return M(p_,this).unsafeValue().largestGroupId()}update(e,t){var n=this;return P(function*(){try{var r=gh();let i=r.u(yield M(p_,n).lock());return M(h_,n).close(),i.value.update(e,t)}catch(e){r.e=e}finally{r.d()}})()}endOfTrack(e){var t=this;return P(function*(){try{var n=gh();let r=n.u(yield M(p_,t).lock());return M(h_,t).close(),r.value.endOfTrack(e)}catch(e){n.e=e}finally{n.d()}})()}unsubscribe(){var e=this;return P(function*(){try{var t=gh();let n=t.u(yield M(p_,e).lock());return M(h_,e).close(),n.value.unsubscribe()}catch(e){t.e=e}finally{t.d()}})()}return(){var e=this;return P(function*(){try{var t=gh();let n=t.u(yield M(p_,e).lock());return M(h_,e).close(),n.value.return()}catch(e){t.e=e}finally{t.d()}})()}next(){var e=this;return P(function*(){let t=yield M(m_,e).next();if(t.done){var n,r;yield(n=(r=M(m_,e)).return)==null?void 0:n.call(r);let t=yield M(h_,e).pop();if(t)return A(m_,e,t),e.next()}return t})()}[f_](){return this}objects(){var e=this;return Vn(function*(){var t=!1,n=!1,r;try{for(var i=Z(e),a;t=!(a=yield H(i.next())).done;t=!1)try{var o=gh();yield*d_(Z(o.a(a.value)))}catch(e){o.e=e}finally{yield H(o.d())}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield H(i.return()))}finally{if(n)throw r}}})()}};function b_(e,t){var n=this;return P(function*(){if(e.unsubscribed()||e.endRequested()){M(g_,n).info(`Server initiated subscribe done but the subscription is already closing`);return}if(M(p_,n).unsafeValue().subscribeId()!==e.id){M(g_,n).info(`subscribeId mismatch - the subscription already has been renewed`);return}if(t){M(h_,n).close();return}return n.return()})()}U(),V(),D(),j(),k(),N(),F();var x_=`catalog`;function S_(e){let t=e_(e.payload);if(!$g(t))throw Error(`unexpected catalog type`);return t}var C_=new WeakMap,w_=new WeakMap,T_=new WeakMap,E_=new WeakMap,D_=new WeakSet,O_=class e{constructor(e,t,n){B(this,D_),E(this,C_,void 0),E(this,w_,void 0),E(this,T_,void 0),E(this,E_,void 0),A(w_,this,e),A(C_,this,t),A(T_,this,n),A(E_,this,O(D_,this,k_).call(this)),this.closed().finally(()=>M(C_,this).close()).catch(C)}catalog(){return M(C_,this)}closed(){return M(E_,this)}close(){var e=this;return P(function*(){return M(C_,e).close(),(yield M(w_,e).promise).unsubscribe()})()}static start(t,n){return P(function*(){let r=w.fromPromise(y_.subscribe(t,new qg().name(n.catalogName||x_).groupOrder(`ascending`).build())),i=w.fromPromise(r.promise.then(e=>e.objects()));if(n.catalog)return new e(r,new Xn(n.catalog),i);let a=yield(yield i.promise).next();if(!a.value)throw Error(`No catalog found`);return new e(r,new Xn(S_(a.value)),i)})()}};function k_(){var e=this;return P(function*(){let t=yield M(T_,e).promise;var n=!1,r=!1,i;try{for(var a=Z(t),o;n=!(o=yield a.next()).done;n=!1){let t=o.value;{if(t.objectStatus!==Ju.Normal)continue;let n=S_(t);M(C_,e).update(n)}}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield a.return())}finally{if(r)throw i}}})()}U(),V(),D(),j(),N(),k(),h(),Bn(),z(),Un(),F();var A_,j_,M_,N_,P_,F_,I_,L_,R_=new WeakMap,z_=new WeakMap,B_=new WeakMap,V_=new WeakMap,H_=new WeakMap,U_=new WeakMap,W_=new WeakMap,G_=new WeakMap,K_=new WeakSet;A_=wn(),j_=Symbol.dispose;var q_=class{constructor(e,t){B(this,K_),E(this,R_,void 0),E(this,z_,void 0),E(this,B_,void 0),E(this,V_,void 0),E(this,H_,void 0),E(this,U_,void 0),E(this,W_,void 0),E(this,G_,0),A(R_,this,e),A(z_,this,t)}onFragment(e,t,n,r,i){var a;M(B_,this)===void 0&&(A(B_,this,e),A(V_,this,t),A(H_,this,n),A(U_,this,r),M(R_,this).debug(`group start`,{name:M(z_,this).name,groupId:e,startTimeMs:r,endTimeMs:i,subscribeId:t,mediaType:n,namespace:M(z_,this).namespace})),A(G_,this,(a=M(G_,this),a++,a)),A(W_,this,i)}[A_](){O(K_,this,J_).call(this)}[j_](){O(K_,this,J_).call(this)}};function J_(){M(B_,this)!==void 0&&M(U_,this)!==void 0&&M(W_,this)!==void 0&&M(R_,this).debug(`group end`,{name:M(z_,this).name,groupId:M(B_,this),startTimeMs:M(U_,this),endTimeMs:M(W_,this),durationMs:M(W_,this)-M(U_,this),fragmentCount:M(G_,this),subscribeId:M(V_,this),mediaType:M(H_,this),namespace:M(z_,this).namespace})}var Y_=new WeakMap,X_=new WeakMap,Z_=new WeakMap,Q_=new WeakMap,$_=new WeakSet;M_=Symbol.asyncIterator,N_=Cn(),P_=Symbol.asyncDispose;var ev=class{constructor(e,t,n,r){B(this,$_),E(this,Y_,void 0),E(this,X_,void 0),E(this,Z_,void 0),m(this,`track`,void 0),E(this,Q_,bn.get().createContext(`CmafGroup`)),this.track=r,A(Y_,this,n),A(X_,this,e),A(Z_,this,t)}[M_](){var e=this;return Vn(function*(){try{var t=gh();let s={name:e.track.trackObject.name,namespace:e.track.namespace},c=t.u(new q_(M(Q_,e),s));var n=!1,r=!1,i;try{for(var a=Z(M(X_,e)),o;n=!(o=yield H(a.next())).done;n=!1){let t=o.value;{if(t.objectStatus===Ju.EndOfTrackAndGroup&&(yield H(e.track.endOfTrack(t.groupId))),t.objectStatus!==Ju.Normal)continue;let n=M(Z_,e).createFragment(t.payload),r=n.timescale(),i=n.baseMediaDecodeTime()/r*1e3,a=i+n.duration()/r*1e3,o=M(Y_,e)/1e3*r;n.updateBaseMediaDecodeTime(n.baseMediaDecodeTime()-o);let l=e.track.timestampRange();if(l&&i>=l[1])break;M(Q_,e).trace(`fragment`,R(R({},s),{},{startTime:i,endTime:a,subscribeId:t.subscribeId,groupId:t.groupId,objectId:t.objectId,streamId:t.streamId})),c.onFragment(t.groupId,t.subscribeId,n.mediaType(),i,a),yield[t.groupId,n]}}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield H(a.return()))}finally{if(r)throw i}}}catch(e){t.e=e}finally{t.d()}})()}[N_](){return O($_,this,tv).call(this)}[P_](){return O($_,this,tv).call(this)}};function tv(){var e=this;return P(function*(){var t,n;return yield(t=(n=M(X_,e)).return)==null?void 0:t.call(n),Promise.resolve()})()}var nv=new WeakMap,rv=new WeakMap,iv=new WeakMap,av=new WeakMap;F_=Symbol.asyncIterator,I_=Cn(),L_=Symbol.asyncDispose;var ov=class e{constructor(e,t,n,r,i){E(this,nv,void 0),E(this,rv,void 0),E(this,iv,void 0),E(this,av,void 0),m(this,`trackObject`,void 0),m(this,`namespace`,void 0),this.trackObject=e,this.namespace=t,A(rv,this,n),A(nv,this,r),A(iv,this,i)}static subscribe(t,n,{timestampOffsetMs:r,startGroup:i,params:a}){return P(function*(){if(n.format!==`cmaf`)throw Error(`format must be cmaf`);let o=new qg().name(n.name);i!==void 0&&o.startGroup(i);let s=o.build();if(n.initTrack){let o=new qg().name(n.initTrack).build(),[c,l]=yield Promise.all([sv.call(e,t,o),y_.subscribe(t,s,{params:a,largestGroupId:i?i-I(1):void 0})]),u=new Ls(c);return new e(n,t.namespace(),l,u,r)}Te(n.initData,`no init data found on track`);let c=We(n.initData),l=new Ls(new Uint8Array(c)),u=yield y_.subscribe(t,s,{params:a,largestGroupId:i?i-I(1):void 0});return new e(n,t.namespace(),u,l,r)})()}largestGroupId(){return M(rv,this).largestGroupId()}stopAfterTimestampReached(e){A(av,this,[0,e])}timestampRange(){return M(av,this)}endOfTrack(e){return M(rv,this).endOfTrack(e)}update(e,t){return M(rv,this).update(e,t)}unsubscribe(){var e=this;return P(function*(){return M(rv,e).unsubscribe()})()}next(){var e=this;return P(function*(){let t=yield M(rv,e).next();return t.done?t:{done:!1,value:new ev(t.value,M(nv,e),M(iv,e),e)}})()}return(){var e=this;return P(function*(){return yield M(rv,e).return(),{done:!0,value:void 0}})()}[F_](){return this}[I_](){return this.unsubscribe()}[L_](){var e=this;return P(function*(){return e.unsubscribe()})()}};function sv(e,t){return P(function*(){try{var n=gh();let r=n.a(yield e.subscribe(t)),i=yield r.objects().next();if(i.done)throw Error(`No init object`);return yield r.close(),i.value.payload}catch(e){n.e=e}finally{yield n.d()}})()}U(),V(),D(),j(),k(),N(),F();var cv=1e4,lv=3e4,uv=new WeakMap,dv=new WeakMap,fv=new WeakMap,pv=new WeakMap,mv=new WeakMap,hv=new WeakMap,gv=new WeakSet,_v=class e{constructor(e,t,n){B(this,gv),E(this,uv,bn.get().createContext(`Timeline`)),E(this,dv,new Xn([])),E(this,fv,void 0),E(this,pv,void 0),E(this,mv,void 0),E(this,hv,void 0),A(pv,this,e),A(mv,this,n),A(fv,this,t),A(hv,this,O(gv,this,vv).call(this,M(fv,this))),this.closed().finally(()=>M(dv,this).close()).catch(C)}closed(){return M(hv,this)}close(){var e=this;return P(function*(){return(yield M(fv,e).promise).unsubscribe()})()}timeline(){let[e,t]=M(dv,this).value();return e}timestampWallclockOffset(){return zt(this.timeline().map(e=>e.mediaPts-e.wallclock))}static start(t,n){return new e(t,w.fromPromise(y_.subscribe(t,new qg().name(n).groupOrder(`ascending`).build())),n)}waitForWallclockTime(e){var t=this;return P(function*(){return yield M(dv,t).waitFor(t=>!!t.find(t=>t.wallclock>=e)),t.timeline()})()}waitForTimelineToHaveMinDuration(){var e=this;return P(function*(){return yield M(dv,e).waitFor(e=>{let t=e[0],n=e[e.length-1];return!t||!n?!1:n.wallclock-t.wallclock>cv}),e.timeline()})()}};function vv(e){var t=this;return P(function*(){let n=yield e.promise;var r=!1,i=!1,a;try{for(var o=Z(n),s;r=!(s=yield o.next()).done;r=!1)try{var c=gh();let e=c.a(s.value);var l=!1,u=!1,d;try{for(var f=Z(e),p;l=!(p=yield f.next()).done;l=!1){let e=p.value;{if(e.objectStatus!==Ju.Normal)continue;let r=bv(e.payload);M(dv,t).update(e=>{var t,n;for(e.push(...r),e.sort((e,t)=>e.wallclock-t.wallclock);e[0]&&((t=(n=e[e.length-1])==null?void 0:n.wallclock)==null?0:t)-e[0].wallclock>lv;)e.shift();return e}),n===M(fv,t).resolved&&e.groupId>I(0)&&e.objectId===I(0)&&O(gv,t,yv).call(t,e.groupId).catch(e=>{M(uv,t).warn(`backfill failed`,e)})}}}catch(e){u=!0,d=e}finally{try{l&&f.return!=null&&(yield f.return())}finally{if(u)throw d}}}catch(e){c.e=e}finally{yield c.d()}}catch(e){i=!0,a=e}finally{try{r&&o.return!=null&&(yield o.return())}finally{if(i)throw a}}})()}function yv(e){var t=this;return P(function*(){let n=e-I(1),r=t.timeline(),i=r[0],a=r[r.length-1];if(!i||!a||a.wallclock-i.wallclock>cv)return;M(uv,t).debug(`backfilling timeline`,{currentGroupId:e,backfillGroupId:n});let o=w.fromPromise(y_.subscribe(M(pv,t),new qg().name(M(mv,t)).groupOrder(`ascending`).range(n,n).build()));return O(gv,t,vv).call(t,o)})()}function bv(e){var t;let n=new TextDecoder(`utf-8`).decode(e).split(`
99
- `);return(t=n[0])!=null&&t.startsWith(`MEDIA_PTS`)&&n.shift(),n.filter(e=>e.length>0).map(e=>{let[t,n,r,i,a]=e.split(`,`);if(!t||!i)throw Error(`invalid timeline row: ${e}`);return{mediaPts:parseInt(t,10),groupId:n?parseInt(n,10):void 0,objectId:r?parseInt(r,10):void 0,wallclock:parseInt(i,10),metadata:a}})}U(),D(),h(),j(),F(),N();var xv,Sv,Cv;function wv(e){return typeof e.language==`string`}var Tv=new WeakMap,Ev=new WeakMap,Dv=new WeakMap,Ov=new WeakMap;xv=Symbol.asyncIterator,Sv=Cn(),Cv=Symbol.asyncDispose;var kv=class e{constructor(e,t,n,r,i){E(this,Tv,new ql),E(this,Ev,void 0),E(this,Dv,void 0),E(this,Ov,0),m(this,`trackObject`,void 0),m(this,`namespace`,void 0),A(Dv,this,e),A(Ev,this,t),this.trackObject=n,this.namespace=r,A(Ov,this,i)}static subscribe(t,n,r){return P(function*(){if(!wv(n))throw Error(`track object language is required`);let i=new qg().name(n.name).build(),a=yield y_.subscribe(t,i);return new e(a,a.objects(),n,t.namespace(),r)})()}largestGroupId(){return M(Dv,this).largestGroupId()}update(e,t){return M(Dv,this).update(e,t)}unsubscribe(){return M(Dv,this).unsubscribe()}next(){var e=this;return P(function*(){for(;;){let t=yield M(Ev,e).next();if(t.done)return t;if(t.value.objectStatus!==Ju.Normal)continue;let n=new TextDecoder().decode(t.value.payload),r;try{r=M(Tv,e).parse(n)}catch(e){continue}let i=r.map(t=>(t.startTime-=M(Ov,e)/1e3,t.endTime-=M(Ov,e)/1e3,t));return{done:!1,value:{language:e.trackObject.language,cues:i}}}})()}return(){var e=this;return P(function*(){return yield M(Dv,e).return(),{done:!0,value:void 0}})()}[xv](){return this}[Sv](){return this.unsubscribe()}[Cv](){return this.unsubscribe()}};U(),V(),h(),D(),j(),F(),N(),k();var Av=new WeakMap,jv=new WeakMap,Mv=new WeakMap,Nv=new WeakMap,Pv=new WeakSet,Fv=class e{constructor(e,t,n,r,i){B(this,Pv),m(this,`namespace`,void 0),E(this,Av,void 0),E(this,jv,void 0),E(this,Mv,void 0),E(this,Nv,void 0),this.namespace=r,A(Av,this,e),A(jv,this,t),A(Mv,this,n),A(Nv,this,i)}static start(t,n){return P(function*(){Lv._.info(`Enter 'start'`,{config:n});let r=new Xg(t,{namespace:n.namespace}),[i,a]=yield Promise.all([_v.start(r,`timeline`),O_.start(r,{catalog:n.catalog,namespace:n.namespace})]);return new e(r,i,a,n.namespace,0)})()}closed(){return Promise.race([M(Mv,this).closed(),M(jv,this).closed()])}catalog(){return M(Mv,this).catalog()}timestampWallclockOffset(){return M(jv,this).timestampWallclockOffset()}timestampOffsetMs(){return M(Nv,this)}setTimestampOffsetMs(e){A(Nv,this,e)}waitForWallclockTime(e){return M(jv,this).waitForWallclockTime(e)}subscribeCmafTrack(e,t){let n=t==null?void 0:t.startGroup,r=t==null?void 0:t.params,i=this.catalog().current().tracks,a=e[`com.vindral.variant_uid`]===void 0?void 0:i.find(t=>t[`com.vindral.variant_uid`]===e[`com.vindral.variant_uid`]);return O(Pv,this,Iv).call(this,()=>ov.subscribe(M(Av,this),a==null?e:a,{timestampOffsetMs:M(Nv,this),startGroup:n,params:r}))}subscribeWebVttTrack(e){return O(Pv,this,Iv).call(this,()=>kv.subscribe(M(Av,this),e,M(Nv,this)))}subscribeTrack(e){return O(Pv,this,Iv).call(this,()=>M(Av,this).subscribe(e))}close(){return Promise.all([M(Mv,this).close(),M(jv,this).close()])}};function Iv(e){var t=this;return P(function*(){let[n,r]=t.catalog().value();try{return yield e()}catch(i){if(n===t.catalog().current()&&r&&(yield Promise.race([r,Tr(500)])),n!==t.catalog().current())return e();throw i}})()}var Lv={_:bn.get().createContext(`Channel`)};U();var Rv=I(8);function zv(e){if(e<0||e>65535)throw RangeError(`burstMs must be between 0 and 65535 inclusive`);return{type:Rv,payload:new Uint8Array([e>>8&255,e&255])}}V(),D(),j(),k(),N(),F();var Bv=new WeakMap,Vv=new WeakMap,Hv=new WeakSet,Uv=class e{constructor(e){B(this,Hv),E(this,Bv,void 0),E(this,Vv,void 0);let[t,n]=e.value.value();A(Bv,this,{createdAt:new Date,wallclock:new Date(t.ntpTimestamp),rtt:t.rtt}),A(Vv,this,O(Hv,this,Wv).call(this,e))}wallclock(){let e=Date.now()-M(Bv,this).createdAt.getTime();return M(Bv,this).wallclock.getTime()+e}closed(){return M(Vv,this)}static start(t){return new e(t)}};function Wv(e){var t=this;return P(function*(){var n=!1,r=!1,i;try{for(var a=Z(e.value),o;n=!(o=yield a.next()).done;n=!1){let e=o.value;A(Bv,t,{createdAt:new Date,wallclock:new Date(e.ntpTimestamp),rtt:e.rtt})}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield a.return())}finally{if(r)throw i}}})()}function Gv(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}function Kv(e,t){if(e==null)return{};var n,r,i=Gv(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}U(),z(),h(),F();var qv=[`fairplayCertificate`];function Jv(e){return typeof e==`string`||e==null}function Yv(e){return`provider`in e&&typeof e.provider==`string`&&(!(`widevineLicenseUrl`in e)||Jv(e.widevineLicenseUrl))&&(!(`playreadyLicenseUrl`in e)||Jv(e.playreadyLicenseUrl))&&(!(`fairplayLicenseUrl`in e)||Jv(e.fairplayLicenseUrl))&&(!(`fairplayCertificate`in e)||Jv(e.fairplayCertificate))}function Xv(e){try{return We(e)}catch(e){throw Error(`Failed to convert fairplayCertificate`)}}function Zv(e){let t=new TextDecoder().decode(e),n=JSON.parse(t);if(!Yv(n))throw Error(`Invalid drm object`);let{fairplayCertificate:r}=n;return R(R({},Kv(n,qv)),{},{fairplayCertificate:r?Xv(r):void 0})}var Qv=class e{constructor(e){m(this,`value`,void 0),this.value=e}static create(t,n,r){return P(function*(){try{var i=gh();let a=yield i.a(yield t.subscribeTrack(new qg().name(`drm`).build())).objects().next();if(a.done)throw Error(`No drm object received`);return new e(R(R({},Zv(a.value.payload)),{},{videoCodec:n,audioCodec:r}))}catch(e){i.e=e}finally{yield i.d()}})()}};U(),V(),h(),D(),j(),k(),N(),F();function $v(e){return`rtt`in e&&typeof e.rtt==`number`&&`ntpTimestamp`in e&&typeof e.ntpTimestamp==`number`&&`estimatedBandwidth`in e&&typeof e.estimatedBandwidth==`number`}function ey(e){let t=new TextDecoder().decode(e),n=JSON.parse(t);if(!$v(n))throw Error(`Invalid stats object`);return n}var ty=new WeakMap,ny=new WeakSet,ry=class e{constructor(e,t,n){B(this,ny),m(this,`ip`,void 0),m(this,`value`,void 0),E(this,ty,void 0),this.ip=n,this.value=new Xn(t),A(ty,this,O(ny,this,iy).call(this,e)),this.closed().catch(C)}closed(){return M(ty,this)}static start(t){return P(function*(){let n=(yield t.subscribe(new qg().name(`stats`).groupOrder(`ascending`).build())).objects(),r=yield n.next();if(r.done)throw Error(`No stats object received`);let i=ey(r.value.payload);if(!i.ip)throw Error(`Expected IP in initial stats object`);return new e(n,i,i.ip)})()}};function iy(e){var t=this;return P(function*(){var n=!1,r=!1,i;try{for(var a=Z(e),o;n=!(o=yield a.next()).done;n=!1){let e=o.value;{if(e.objectStatus!==Ju.Normal)continue;let n=ey(e.payload);t.value.update(n)}}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield a.return())}finally{if(r)throw i}}})()}U(),D(),j(),N(),F();var ay=new WeakMap,oy=new WeakMap,sy=class{constructor(e){E(this,ay,bn.get().createContext(`UpstreamWatcher`)),E(this,oy,void 0),A(oy,this,new Xn(w.fromPromise(e.closed())))}update(e){M(oy,this).update(w.fromPromise(e.closed()))}closed(){var e=this;return P(function*(){try{for(;;){let[t,n]=M(oy,e).value(),r=!1;yield Promise.race([n==null?void 0:n.then(()=>r=!0),t.promise.then(()=>{if(!r)throw M(ay,e).warn(`Upstream closed`),Error(`Upstream closed`)})])}}catch(e){return e}})()}};U(),D(),j(),N(),Bn(),z(),Un(),V(),h(),k(),F();var cy,ly=5e3,uy=new WeakMap,dy=new WeakMap,fy=new WeakMap;cy=Symbol.asyncIterator;var py=class{constructor(e,t){E(this,uy,bn.get().createContext(`TracksIterator`)),E(this,dy,void 0),E(this,fy,void 0),A(dy,this,e),A(fy,this,t)}[cy](){var e=this;return Vn(function*(){let t=M(fy,e);var n=!1,r=!1,i;try{for(var a=Z(M(dy,e)),o;n=!(o=yield H(a.next())).done;n=!1){let n=o.value;{if(!n)continue;let r={name:n.trackObject.name,namespace:n.namespace};M(uy,e).debug(`track start`,R({mediaType:t},r)),yield*d_(Z(n)),M(uy,e).debug(`track end`,R({mediaType:t},r))}}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield H(a.return()))}finally{if(r)throw i}}M(uy,e).debug(`tracks ended`,{mediaType:t})})()}},my=new WeakMap,hy=new WeakMap,gy=new WeakMap,_y=new WeakMap,vy=new WeakMap,yy=new WeakMap,by=new WeakMap,xy=new WeakMap,Sy=new WeakMap,Cy=new WeakMap,wy=new WeakSet,Ty=class e{constructor(e,t,n){B(this,wy),E(this,my,void 0),E(this,hy,void 0),E(this,gy,void 0),E(this,_y,bn.get().createContext(`Player`)),E(this,vy,void 0),E(this,yy,new Xn(void 0)),E(this,by,new Xn(void 0)),E(this,xy,new Xn(void 0)),E(this,Sy,void 0),E(this,Cy,void 0),m(this,`subtitles`,new py(M(xy,this),`subtitles`)),m(this,`video`,new py(M(by,this),`video`)),m(this,`audio`,new py(M(yy,this),`audio`)),A(my,this,e),A(hy,this,Uv.start(n)),A(gy,this,n),A(vy,this,new Xn(t)),A(Sy,this,new sy(t)),A(Cy,this,Promise.race([O(wy,this,Ay).call(this),O(wy,this,Ey).call(this),O(wy,this,ky).call(this),M(Sy,this).closed()])),M(my,this).closed().then(()=>this.close()).catch(C)}closed(){return M(Cy,this)}static start(t,n){return P(function*(){let r=new Map;if(n.burstMs!==void 0){let e=zv(n.burstMs);r.set(e.type,e)}let i=new Xg(t,{namespace:Zg(`auxiliary`)}),[[a,o,s],c]=yield Promise.all([Fv.start(t,n).then(e=>Promise.all([Promise.resolve(e),n.videoTrack?e.subscribeCmafTrack(n.videoTrack,{params:r}):void 0,n.audioTrack?e.subscribeCmafTrack(n.audioTrack,{params:r}):void 0])),ry.start(i)]),l=new e(t,a,c);return s&&M(yy,l).update(s),o&&M(by,l).update(o),l})()}connectionInfo(){let e=M(gy,this).value.current();return{ip:M(gy,this).ip,rtt:e.rtt,estimatedBandwidth:e.estimatedBandwidth}}stats(){return M(gy,this).value}catalog(){return M(vy,this).current().catalog()}namespace(){return M(vy,this).current().namespace}videoTrack(){var e;return(e=M(by,this).current())==null?void 0:e.trackObject}audioTrack(){var e;return(e=M(yy,this).current())==null?void 0:e.trackObject}referenceClock(){return M(hy,this)}drm(){var e=this;return P(function*(){var t,n;if(e.catalog().current().tracks.find(({name:e})=>e===`drm`))return Qv.create(M(vy,e).current(),(t=e.videoTrack())==null?void 0:t.codec,(n=e.audioTrack())==null?void 0:n.codec)})()}close(){return M(_y,this).info(`Enter 'close'`),Promise.all([M(vy,this).current().close(),M(vy,this).close(),O(wy,this,Dy).call(this,M(yy,this)),O(wy,this,Dy).call(this,M(by,this)),O(wy,this,Dy).call(this,M(xy,this))])}zap(e,t){var n=this;return P(function*(){M(_y,n).info(`Enter 'zap'`,{config:e,zapOffsetMs:t});let r=yield Fv.start(M(my,n),e),i=M(hy,n).wallclock()-t,a=M(vy,n).current(),o=a.timestampWallclockOffset(),s=yield r.waitForWallclockTime(i);M(Sy,n).update(r),yield M(vy,n).current().close();let c=s.toReversed().find(e=>e.wallclock<=i),l=c!=null&&c.mediaPts?c.mediaPts-a.timestampOffsetMs():void 0,u=r.timestampWallclockOffset()-o+a.timestampOffsetMs();r.setTimestampOffsetMs(u);let d=(c==null?void 0:c.groupId)!==void 0&&!Number.isNaN(c.groupId)?I(c.groupId):void 0;if(l){var f,p;(f=M(by,n).current())==null||f.stopAfterTimestampReached(l),(p=M(yy,n).current())==null||p.stopAfterTimestampReached(l)}M(vy,n).update(r),yield Promise.all([e.videoTrack?n.setVideoTrack(e.videoTrack,d):void 0,e.audioTrack?n.setAudioTrack(e.audioTrack,d):void 0]),M(_y,n).info(`Return 'zap'`)})()}setSubtitleTrack(e){var t=this;return P(function*(){var n;if(!e){var r;yield(r=M(xy,t).current())==null?void 0:r.unsubscribe();return}let[i]=yield Promise.all([M(vy,t).current().subscribeWebVttTrack(e),(n=M(xy,t).current())==null?void 0:n.unsubscribe()]);M(xy,t).update(i)})()}setVideoTrack(e,t){var n=this;return P(function*(){let r=yield O(wy,n,Oy).call(n,M(vy,n).current(),e,M(by,n).current(),t);M(by,n).update(r)})()}setAudioTrack(e,t){var n=this;return P(function*(){let r=yield O(wy,n,Oy).call(n,M(vy,n).current(),e,M(yy,n).current(),t);M(yy,n).update(r)})()}};function Ey(){var e=this;return P(function*(){let t=!1;for(M(my,e).closed().then(()=>{t=!0}).catch(C);;){let n=performance.now()-M(my,e).lastReceived();if(n>=ly)return t?void 0:Error(`Idle timeout`);if(yield Tr(ly-n),t)return}})()}function Dy(e){let t=e.current(),n=t==null?void 0:t.largestGroupId();return e.isClosed()||e.update(void 0),e.close(),n===void 0?t==null?void 0:t.unsubscribe():t==null?void 0:t.update(n,n)}function Oy(e,t,n,r){var i=this;return P(function*(){M(_y,i).info(`Enter '#replaceTrack'`,{trackObject:t,startGroupId:r});let a=n==null?void 0:n.largestGroupId(),[o,s]=yield Promise.all([e.subscribeCmafTrack(t,{startGroup:r==null?a===void 0?void 0:a+I(1):r}),a===void 0?n==null?void 0:n.unsubscribe():n==null?void 0:n.update(a,a)]);return o})()}function ky(){var e=this;return P(function*(){var t=!1,n=!1,r;try{for(var i=Z(M(vy,e)),a;t=!(a=yield i.next()).done;t=!1){let t=a.value;var o=!1,s=!1,c;try{for(var l=Z(t.catalog()),u;o=!(u=yield l.next()).done;o=!1){let t=u.value;yield Promise.all([O(wy,e,jy).call(e,t,M(by,e)),O(wy,e,jy).call(e,t,M(yy,e))])}}catch(e){s=!0,c=e}finally{try{o&&l.return!=null&&(yield l.return())}finally{if(s)throw c}}}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield i.return())}finally{if(n)throw r}}})()}function Ay(){var e=this;return P(function*(){try{return yield M(gy,e).closed(),Error(`Stats closed`)}catch(e){return e}})()}function jy(e,t){var n=this;return P(function*(){let r=t.current();if(!r)return;let i=r.trackObject.name,a=r.trackObject[`com.vindral.variant_uid`],o=e.tracks.find(e=>e.name===i),s=e.tracks.find(e=>e[`com.vindral.variant_uid`]===a);if(!o){if(!s){t.update(void 0);return}t.update(yield M(vy,n).current().subscribeCmafTrack(s))}})()}var My=(e,t)=>{var n,r;let i=new URL(`/subscribe`,e);return i.searchParams.append(`channelId`,t.channelId),i.searchParams.append(`sessionId`,t.sessionId),i.searchParams.append(`clientId`,t.clientId),(n=t.audio)!=null&&n.codec&&(i.searchParams.append(`audio.bitRate`,Math.round(t.audio.bitRate).toString()),i.searchParams.append(`audio.codec`,t.audio.codec),t.audio.language&&i.searchParams.append(`audio.language`,t.audio.language)),(r=t.video)!=null&&r.codec&&(i.searchParams.append(`video.width`,t.video.width.toString()),i.searchParams.append(`video.height`,t.video.height.toString()),i.searchParams.append(`video.bitRate`,Math.round(t.video.bitRate).toString()),i.searchParams.append(`video.codec`,t.video.codec)),t.burstMs&&i.searchParams.append(`burstMs`,t.burstMs.toString()),t.channelGroupId&&i.searchParams.append(`channelGroupId`,t.channelGroupId),t.authToken&&(i.searchParams.append(`auth.token`,t.authToken),i.searchParams.append(`auth.type`,`jwt`)),i.toString()},Ny=e=>{try{return e?new URL(e).origin:void 0}catch(e){return}};U(),V(),D(),h(),N(),j(),k(),F();function Py(e,t,n){let r=new URL(`/voq/subscribe`,e);return r.searchParams.set(`sessionId`,t.sessionId),r.searchParams.set(`clientId`,t.clientId),r.searchParams.set(`channelId`,t.channelId),n&&r.searchParams.set(`authToken`,n),r}function Fy(e,t){let n=[];for(let r of e==null?[]:e)try{n.push({algorithm:r.algorithm,value:We(r.value)})}catch(e){t.warn(`Ignoring undecodable server certificate hash`,{algorithm:r==null?void 0:r.algorithm,error:e})}return n.length>0?n:void 0}var Iy=1e4,Ly=new WeakMap,Ry=new WeakMap,zy=new WeakMap,By=new WeakMap,Vy=new WeakMap,Hy=new WeakMap,Uy=new WeakMap,Wy=new WeakMap,Gy=new WeakMap,Ky=new WeakMap,qy=new WeakMap,Jy=new WeakSet,Yy=new WeakMap,Xy=new WeakMap,Zy=new WeakMap,Qy=class e{get estimatedBandwidth(){return M(Gy,this)}unload(){M(Ly,this).off(`send signal`,M(Xy,this)),M(Ly,this).off(`disconnect`,this.disconnect),M(Ly,this).off(`text track`,M(Yy,this)),this.disconnect()}suspend(){}unsuspend(){}getStatistics(){let e=M(zy,this).transportType()===`webtransport`?`moq`:`moq_ws`;return{edgeUrl:Ny(M(zy,this).url()),connectionProtocol:e,transportSelectionReason:M(Ky,this)}}constructor(e,t,n,r,i,a,o,s){B(this,Jy),E(this,Ly,void 0),E(this,Ry,void 0),E(this,zy,void 0),E(this,By,`disconnected`),E(this,Vy,void 0),E(this,Hy,new Map),E(this,Uy,void 0),E(this,Wy,void 0),E(this,Gy,void 0),E(this,Ky,void 0),E(this,qy,new Map),E(this,Yy,e=>{if(!e){M(Vy,this).setSubtitleTrack(void 0).catch(C);return}let t=M(Hy,this).get(Qg(M(Vy,this).namespace())),n=t==null?void 0:t.getTextTrack(e);n&&M(Vy,this).setSubtitleTrack(n).catch(C)}),E(this,Xy,e=>{switch(e.type){case`subscribe`:if(M(Zy,this)){M(Ry,this).info(`Ignoring - we are already switching`);return}A(Zy,this,!0),O(Jy,this,tb).call(this,e.subscription).catch(t=>{M(Ry,this).error(`error handling subscription`,t),M(Ly,this).emit(`received signal`,{type:`subscription changed`,subscription:e.subscription,reset:!0})}).finally(()=>A(Zy,this,!1));break;case`telemetry`:ju(new URL(`/api/telemetry`,M(zy,this).url().replace(`wss://`,`https://`)),{body:e.body,headers:{"Content-Type":`text/plain`}}).catch(C);break;case`refresh auth`:M(zy,this).updateAuthToken(e.token);break}}),E(this,Zy,!1),m(this,`disconnect`,(e=`Disconnect Requested`)=>{M(Ry,this).info(`Disconnecting`,e),M(zy,this).close(),M(Vy,this).close().catch(C),A(qy,this,new Map),O(Jy,this,nb).call(this,`disconnected`)}),A(Ly,this,e),A(Ry,this,t),A(zy,this,n),A(Vy,this,r),A(Hy,this,i),A(Uy,this,a),A(Wy,this,o),A(Ky,this,s),M(Ly,this).on(`send signal`,M(Xy,this)),M(Ly,this).on(`disconnect`,this.disconnect),M(Ly,this).on(`text track`,M(Yy,this)),O(Jy,this,$y).call(this).catch(C),O(Jy,this,rb).call(this).catch(C)}static start(t,n,r,i,a){return P(function*(){var o,s,c,l;let u=new Map(i.connectInfo.channels.map(e=>[Qg(e.catalog.namespace),new ub(new Xn(e.catalog))])),d=yield i.onConnectInfo(i.connectInfo),f=i.options.get(`authenticationToken`),p,m,h;switch(typeof i.edgeUrl){case`string`:p=Py(i.edgeUrl,d,f);break;default:p=Py(i.edgeUrl.moqUrl||i.edgeUrl.moqWsUrl,d,f),m=Py(i.edgeUrl.moqWsUrl,d,f),h=Fy(i.edgeUrl.serverCertificateHashes,n);break}let g=(o=i.connectInfo.channels.find(e=>e.channelId===d.channelId))==null?void 0:o.catalog;n.debug(`Resolved edge url`,{edgeUrl:p,edgeWsUrl:m}),Te(g,`no catalog found`);let _=(s=u.get(Qg(g.namespace)))==null?void 0:s.getVideoTrack(d.video),v=(c=u.get(Qg(g.namespace)))==null?void 0:c.getAudioTrack(d.audio),y;try{y=yield Wg({url:p,wsUrl:m,serverCertificateHashes:h,handshakePipelining:!0,authToken:i.options.get(`authenticationToken`),preferredTransport:i.options.get(`webtransportEnabled`)?`webtransport`:`websocket`,role:vp.Subscriber,websocketFallbackTimeoutMs:2e3})}catch(e){throw e instanceof W?e:Wi(e instanceof Error?e:void 0)}let{session:b,transportSelectionReason:ee}=y;(l=i.onTransportConnected)==null||l.call(i);let x=b.closed().then(e=>{throw e instanceof Error?e:Error(e?`Session closed before player started: ${String(e)}`:`Session closed before player started`)}),S;try{S=yield Promise.race([Ty.start(b.subscriber,{namespace:g.namespace,catalog:g,videoTrack:_==null?void 0:_.track,audioTrack:v==null?void 0:v.track,burstMs:d.burstMs||0}),Er(Iy,Error(`Timeout waiting for player to start`)),x])}catch(e){throw b.close(),e}let te=new ub(S.catalog());u.set(Qg(g.namespace),te),t.emit(`received signal`,{type:`client ip`,ip:S.connectionInfo().ip}),S.drm().then(e=>{e&&t.emit(`received drm data`,e.value)}).catch(e=>{n.error(`Error getting DRM data`,e)});let ne=new e(t,n,b,S,u,r,a,ee);return d.textTrack&&M(Yy,ne).call(ne,d.textTrack),ne})()}getState(){return M(By,this)}close(){M(zy,this).close()}closed(){return Promise.race([M(zy,this).closed(),M(Vy,this).closed()])}};function $y(){var e=this;return P(function*(){M(zy,e).transportType()===`websocket`&&(yield Tr(5e3));var t=!1,n=!1,r;try{for(var i=Z(M(Vy,e).stats()),a;t=!(a=yield i.next()).done;t=!1){let{rtt:t,estimatedBandwidth:n}=a.value;A(Gy,e,n),M(Wy,e).push(t),M(Ly,e).emit(`rtt`,zt(M(Wy,e).items()))}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield i.return())}finally{if(n)throw r}}})()}function eb(e){var t=this;return P(function*(){var n;let r=yield M(Uy,t).connect({channelId:e});if(!Pr(r))throw Error(`no moq connect info found`);let i=(n=r.channels.find(t=>t.channelId===e))==null?void 0:n.catalog;if(!i)throw Error(`no catalog found`);return i})()}function tb(e){var t=this;return P(function*(){var n,r;M(Ry,t).info(`handle subscription`,e);let i=M(Vy,t),a=M(Hy,t).get(e.channelId);if(a||(a=new ub(new Xn(yield O(Jy,t,eb).call(t,e.channelId))),M(Hy,t).set(e.channelId,a)),i.namespace().join(`/`)!==a.namespace().join(`/`)){var o;M(Ry,t).info(`changing channel`,e.channelId);let n=a.getVideoTrack(e.video),r=a.getAudioTrack(e.audio);yield i.zap({namespace:a.namespace(),catalog:a.catalog(),videoTrack:n==null?void 0:n.track,audioTrack:r==null?void 0:r.track},500),i.drm().then(e=>{e&&M(Ly,t).emit(`received drm data`,e.value)}).catch(e=>{M(Ry,t).error(`Error getting DRM data`,e)}),M(Ry,t).info(`switched channel`,e.channelId),(o=M(Hy,t).get(Qg(i.namespace())))==null||o.updateCatalog(i.catalog()),M(Ly,t).emit(`received signal`,{type:`subscription changed`,subscription:e});return}let s=a.getVideoTrack(e.video),c=a.getAudioTrack(e.audio);yield Promise.all([s&&s.track.name!==((n=M(Vy,t).videoTrack())==null?void 0:n.name)?M(Vy,t).setVideoTrack(s.track):void 0,c&&c.track.name!==((r=M(Vy,t).audioTrack())==null?void 0:r.name)?M(Vy,t).setAudioTrack(c.track):void 0]),M(Ly,t).emit(`received signal`,{type:`subscription changed`,subscription:e})})()}function nb(e){A(By,this,e),M(Ly,this).emit(`connection state`,e)}function rb(){var e=this;return P(function*(){try{O(Jy,e,nb).call(e,`connecting`),M(Ry,e).info(`Connecting...`),O(Jy,e,nb).call(e,`connected`),yield Promise.all([O(Jy,e,ab).call(e,M(Vy,e).referenceClock(),M(Vy,e).audio),O(Jy,e,ab).call(e,M(Vy,e).referenceClock(),M(Vy,e).video),O(Jy,e,ib).call(e,M(Vy,e).subtitles)]),yield M(Vy,e).closed(),M(zy,e).close(),M(Ry,e).info(`Session closed`)}catch(t){M(Ry,e).warn(`Session error`,t),M(zy,e).close()}finally{O(Jy,e,nb).call(e,`disconnected`)}})()}function ib(e){var t=this;return P(function*(){var n=!1,r=!1,i;try{for(var a=Z(e),o;n=!(o=yield a.next()).done;n=!1){let e=o.value;M(Ly,t).emit(`text track data`,e)}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield a.return())}finally{if(r)throw i}}})()}function ab(e,t){var n=this;return P(function*(){let r=``,i=``,a,o=M(Vy,n).videoTrack()===void 0;var s=!1,c=!1,l;try{for(var u=Z(t),d;s=!(d=yield u.next()).done;s=!1){let t=d.value;{var f;let s=Qg(t.track.namespace),c=t.track.trackObject.language,l=Nr((f=t.track.trackObject.codec)==null?``:f),u=t.track.trackObject.codec,d=l?Rr({codec:l,codecString:u}):void 0,v=!!t.track.trackObject[`com.vindral.drm`];var p=!1,m=!1,h;try{for(var g=Z(t),_;p=!(_=yield g.next()).done;p=!1){let[f,p]=_.value;{let m={channelId:r!==``&&(o||p.mediaType()===`video`)&&r!==s?s:void 0,language:p.mediaType()===`audio`&&i!==c?c:void 0,drmTransition:a!==void 0&&a!==v};r=s,i=c,a=v;let h=p.producerReferenceTime(),g=M(qy,n).get(t.track.namespace),_=performance.now();if(h&&(g===void 0||_-g>1e3)){M(qy,n).set(t.track.namespace,_);let r=e.wallclock()-h.getTime();M(Ry,n).debug(`timing-info`,{mediaType:p.mediaType(),referenceClock:e,delta:r,groupId:f,timestamp:p.baseMediaDecodeTime()/p.timescale()*1e3+r,wallclockTime:h.getTime()}),M(Ly,n).emit(`received signal`,{type:`timing info`,timingInfo:{channelId:s,timestamp:p.baseMediaDecodeTime()/p.timescale()*1e3+r,wallclockTime:h.getTime()}})}M(Ly,n).emit(`received moq data`,{payload:p,channelId:s,groupId:f,mimeType:d,codec:l,codecString:u,switchInfo:m,renditionId:ob(t.track.trackObject.name)})}}}catch(e){m=!0,h=e}finally{try{p&&g.return!=null&&(yield g.return())}finally{if(m)throw h}}}}}catch(e){c=!0,l=e}finally{try{s&&u.return!=null&&(yield u.return())}finally{if(c)throw l}}})()}function ob(e){return e.split(``).reduce((e,t)=>e=t.charCodeAt(0)+(e<<6)+(e<<16)-e,0)}var sb=new WeakMap,cb=new WeakMap,lb=new WeakSet,ub=class{constructor(e){B(this,lb),E(this,sb,void 0),E(this,cb,void 0),A(sb,this,e),A(cb,this,O(lb,this,db).call(this))}catalog(){return M(sb,this).current()}namespace(){return M(sb,this).current().namespace}updateCatalog(e){A(sb,this,e)}getTextTrack(e){return M(sb,this).current().tracks.find(t=>t.label===e)}getAudioTrack(e){if(!e.codec)return;let t=M(cb,this).filter(t=>!(!Lr(t)||t.bitRate>e.bitRate||e.codec&&t.codec!==e.codec||e.language&&t.language!==e.language));return t[t.length-1]}getVideoTrack(e){if(!e.codec)return;let t=M(cb,this).filter(t=>!(!Ir(t)||t.bitRate>e.bitRate||e.codec&&t.codec!==e.codec));return t[t.length-1]}renditions(){return M(cb,this)}};function db(){let[e,t]=M(sb,this).value();return Fr(e)}U(),h(),z(),F();var fb=function(e){return e[e.AuthenticationFailed=4e3]=`AuthenticationFailed`,e[e.AuthenticationRefreshFailed=4001]=`AuthenticationRefreshFailed`,e[e.AuthenticationExpired=4002]=`AuthenticationExpired`,e[e.ChannelNotFound=4003]=`ChannelNotFound`,e[e.Inactivity=4010]=`Inactivity`,e}({}),pb=class extends en{constructor(e,t){var n;super(),n=this,m(this,`options`,void 0),m(this,`websocket`,void 0),m(this,`logger`,void 0),m(this,`reconnectState`,{reconnectRetries:0}),m(this,`isSuspended`,!1),m(this,`_connectionAttemptCount`,0),m(this,`connectStartTime`,0),m(this,`_connectTime`,void 0),m(this,`connectTimeout`,void 0),m(this,`shouldContinueConnecting`,!1),m(this,`_isConnectInProgress`,!1),m(this,`readyState`,()=>{var e,t;return(e=(t=this.websocket)==null?void 0:t.readyState)==null?WebSocket.CLOSED:e}),m(this,`url`,()=>{var e;return(e=this.websocket)==null?void 0:e.url}),m(this,`send`,e=>{var t;(t=this.websocket)==null||t.send(e)}),m(this,`closeSocket`,(e,t)=>{e.onmessage=C,e.removeEventListener(`error`,this.onError),e.removeEventListener(`close`,this.onClose),e.removeEventListener(`open`,this.onOpen),e.close(1e3,t)}),m(this,`close`,e=>{this.clearConnectTimeout();let t=this.websocket;return t&&this.closeSocket(t,e),this.websocket=void 0,this.shouldContinueConnecting=!1,this._isConnectInProgress=!1,this.logger.info(`Closed websocket`,{reason:e}),!!t}),m(this,`suspend`,()=>{this.isSuspended=!0}),m(this,`unsuspend`,()=>{this.isSuspended=!1,this.readyState()!==WebSocket.OPEN&&!this.isConnectInProgress&&this.connect()}),m(this,`onMessage`,e=>{this.options.onMessage(e.data)}),m(this,`onError`,()=>{this.logger.warn(`On error`,R({},this.options)),this.close(`websocket had an error`),this.emit(`error`,new W(`WebSocket error`,{code:`websocket_error`,isFatal:!1}))}),m(this,`onClose`,e=>{let t=this._isConnectInProgress;this.logger.info(`Closed`,R(R({},this.options),{},{reason:e.reason,code:e.code,isSuspended:this.isSuspended})),this.close(`websocket was closed`);let n;switch(e.code){case fb.AuthenticationFailed:n=Ri(Li());break;case fb.AuthenticationRefreshFailed:n=Ri(Li());break;case fb.AuthenticationExpired:n=zi(Li());break;case fb.ChannelNotFound:n=Vi(`internal`,Li());break;case fb.Inactivity:n=Bi(`internal`,Li());break;default:t&&(n=Wi(Error(`WebSocket closed before open`)))}n&&this.emit(`error`,n),this.emit(`close`,this)}),m(this,`onOpen`,()=>{this.logger.info(`Opened`,R({},this.options)),this.readyState()===WebSocket.OPEN&&(this.clearConnectTimeout(),this._connectTime=performance.now()-this.connectStartTime,this.reconnectState.reconnectRetries=0,this._isConnectInProgress=!1,this.emit(`open`,this))}),m(this,`clearConnectTimeout`,()=>{this.connectTimeout&&(clearTimeout(this.connectTimeout),this.connectTimeout=void 0)}),m(this,`startConnectTimeout`,()=>{this.clearConnectTimeout(),this.connectTimeout=setTimeout(()=>{this.connectTimeout=void 0,!(!this._isConnectInProgress||this.readyState()===WebSocket.OPEN)&&(this.logger.warn(`WebSocket connect timed out`,{timeoutMs:qt}),this.close(`websocket connection timeout`),this.emit(`error`,Wi(Error(`WebSocket connect timed out`))))},qt)}),m(this,`connect`,P(function*(e=!1){if(n.isConnectInProgress)return n.logger.info(`Connect already in progress`),!1;if(n.isSuspended)return!1;if(n.readyState()!==WebSocket.CLOSED&&n.close(`new connection in progress`),n.shouldContinueConnecting=!0,n._isConnectInProgress=!0,e&&n.options.reconnectDelay>0){n.logger.info(`Waiting for reconnect delay`,R({},n.options)),yield Tr(n.options.reconnectDelay);let e=yield n.options.reconnectHandler(n.reconnectState);if(n.reconnectState.reconnectRetries++,!e)return n._isConnectInProgress=!1,n.emit(`error`,Gi()),!1}n._connectionAttemptCount++;let t;try{if(!n.shouldContinueConnecting)return n._isConnectInProgress=!1,n.logger.info(`Connection aborted`),!1;let e=yield n.options.connectHandler();if(n.connectStartTime=performance.now(),!n.shouldContinueConnecting)return n._isConnectInProgress=!1,n.logger.info(`Connection aborted`),!1;n.logger.info(`Connecting websocket`,R(R({},n.options),{},{url:e}));let r=new WebSocket(e);return t=r,r.binaryType=`arraybuffer`,r.onmessage=n.onMessage,r.addEventListener(`error`,n.onError),r.addEventListener(`close`,n.onClose),r.addEventListener(`open`,n.onOpen),n.websocket=r,n.startConnectTimeout(),!0}catch(e){let r=n.shouldContinueConnecting;return n.clearConnectTimeout(),t&&n.closeSocket(t,`failed to create websocket`),n.websocket=void 0,n.shouldContinueConnecting=!1,n._isConnectInProgress=!1,r&&(e instanceof W?(n.logger.error(`Failed to connect`,e.toStringifiable()),n.emit(`error`,e)):(n.logger.info(`Connection aborted`,{error:e}),n.emit(`error`,new W(`Failed to connect`,{code:`failed_to_connect`,isFatal:!1,source:e,type:`internal`})))),!1}})),this.options=e,this.logger=t}get isConnectInProgress(){return this._isConnectInProgress}get connectionAttemptCount(){return this._connectionAttemptCount}get connectTime(){return this._connectTime}};U(),h(),F();var mb,hb=65536*8,gb=.9,_b=40,vb=e=>{let t=e||_b;return hb*gb*1e3/t},yb=class e{constructor(t,n,r,i){var a=this;m(this,`emitter`,void 0),m(this,`transport`,void 0),m(this,`logger`,void 0),m(this,`config`,void 0),m(this,`rtts`,void 0),m(this,`lastPingSentTime`,performance.now()),m(this,`isPingInFlight`,!1),m(this,`connectCount`,0),m(this,`missedPings`,0),m(this,`isContextSwitchInProgress`,!1),m(this,`signalBuffer`,[]),m(this,`dataBuffer`,[]),m(this,`disconnected`,new w),m(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`)}),m(this,`suspend`,()=>{this.resetPingState(),this.transport.suspend()}),m(this,`unsuspend`,()=>{this.transport.unsuspend()}),m(this,`getState`,()=>{switch(this.transport.readyState()){case WebSocket.OPEN:return`connected`;case WebSocket.CONNECTING:return`connecting`;default:return`disconnected`}}),m(this,`sendSignal`,e=>{if(this.logger.debug(`sending signal`,{signal:e}),this.transport.readyState()!==WebSocket.OPEN){this.logger.debug(`transport is closed`);return}this.transport.send(JSON.stringify(e))}),m(this,`getStatistics`,()=>({edgeUrl:Ny(this.config.edgeUrl),connectionProtocol:`vindral_ws`,transportSelectionReason:void 0})),m(this,`onMessage`,e=>{if(this.pingCooldownExpired()&&this.sendPing(),this.isContextSwitchInProgress){if(e instanceof ArrayBuffer){this.dataBuffer.push(e);return}let t=JSON.parse(e);if(Vr(t)){if(t.type===`pong`){this.handleMessage(e);return}if(t.type===`context switch complete`){this.logger.info(`context switch completed`),this.emitter.emit(`context switch complete`),this.isContextSwitchInProgress=!1,this.flushContextSwitchBuffer();return}}this.signalBuffer.push(e);return}this.handleMessage(e)}),m(this,`resolveEdgeUrl`,P(function*(){let e=a.config.connectInfo,t=yield a.config.onConnectInfo(e),n=My(a.config.edgeUrl,{video:t.video,audio:t.audio,burstMs:t.burstMs,sessionId:t.sessionId,clientId:t.clientId,channelId:t.channelId,channelGroupId:t.channelGroupId,authToken:a.config.options.get(`authenticationToken`)});return a.logger.debug(`Resolved edge url`,{edgeUrl:n}),n})),m(this,`flushContextSwitchBuffer`,()=>{this.logger.info(`Flushing context switch buffer`);let e=this.signalBuffer,t=this.dataBuffer;this.signalBuffer=[],this.dataBuffer=[],e.forEach(e=>{this.handleMessage(e)}),t.forEach(e=>{this.handleMessage(e)})}),m(this,`handleMessage`,e=>{if(e instanceof ArrayBuffer)this.emitter.emit(`received data`,e);else{let t=JSON.parse(e);if(!Vr(t))return;switch(t.type){case`pong`:this.lastPingSentTime&&(this.rtts.push(performance.now()-this.lastPingSentTime),this.isPingInFlight=!1,this.emitter.emit(`rtt`,zt(this.rtts.items())));break;case`context switch`:this.logger.info(`Starting context switch`),this.emitter.emit(`context switch started`),this.isContextSwitchInProgress=!0;break;default:this.emitter.emit(`received signal`,t);break}}}),m(this,`connectWebSocketTransport`,()=>{let e=new pb({reconnectDelay:1e3,onMessage:this.onMessage,reconnectHandler:this.config.reconnectHandler,connectHandler:this.resolveEdgeUrl},this.logger.createContext(`Transport`));return e.on(`open`,this.onTransportChange),e.on(`close`,this.onTransportChange),e.on(`error`,e=>this.disconnected.reject(e)),e.connect(),e}),m(this,`close`,(e=`Disconnect Requested`)=>{this.isContextSwitchInProgress=!1,this.signalBuffer=[],this.dataBuffer=[],this.resetPingState(),this.disconnected.resolve(),this.transport.close(e)}),m(this,`onTransportChange`,()=>{switch(this.getState()){case`connected`:this.transport.connectTime&&(this.rtts.push(this.transport.connectTime/e.TLS_ROUNDTRIPS),this.emitter.emit(`rtt`,zt(this.rtts.items()))),this.connectCount++,this.resetPingState();break;default:this.isContextSwitchInProgress=!1,this.signalBuffer=[],this.dataBuffer=[],this.resetPingState(),this.disconnected.resolve();break}this.emitter.emit(`connection state`,this.getState())}),m(this,`reconnect`,e=>{if(this.transport.isConnectInProgress){this.logger.debug(`Stopping reconnect, already mid-connection`);return}this.close(e)}),m(this,`resetPingState`,()=>{this.missedPings=0,this.isPingInFlight=!1}),m(this,`pingCooldownExpired`,()=>performance.now()-this.lastPingSentTime>e.PING_INTERVAL),m(this,`sendPing`,()=>{if(this.isPingInFlight){this.missedPings++,this.missedPings>e.MAX_MISSED_PINGS&&this.reconnect(`missed pings`);return}this.isPingInFlight=!0,this.lastPingSentTime=performance.now(),this.missedPings=0,this.sendSignal({type:`ping`})}),this.logger=n,this.emitter=t,this.config=r,this.rtts=i,this.emitter.on(`send signal`,this.sendSignal),this.emitter.on(`disconnect`,this.close),this.emitter.on(`reconnect`,this.reconnect),this.disconnected.promise.catch(C),this.transport=this.connectWebSocketTransport()}closed(){return this.disconnected.promise}};mb=yb,m(yb,`PING_INTERVAL`,5e3),m(yb,`MAX_MISSED_PINGS`,4),m(yb,`TLS_ROUNDTRIPS`,3),m(yb,`start`,(e,t,n,r)=>new Promise((i,a)=>{let o=new mb(e,t,n,r);o.transport.once(`error`,e=>a(e)),o.transport.once(`open`,()=>{var e;(e=n.onTransportConnected)==null||e.call(n),i(o)})})),D(),j(),N();var bb=e=>{var t;return typeof e==`string`?e:`${e.moqWsUrl}|${(t=e.moqUrl)==null?``:t}`},xb=e=>typeof e==`string`?e:e.moqUrl||e.moqWsUrl,Sb=new WeakMap,Cb=new WeakMap,wb=new WeakMap,Tb=new WeakMap,Eb=class{constructor(e){E(this,Sb,void 0),E(this,Cb,[]),E(this,wb,new Set),E(this,Tb,void 0),A(Sb,this,e)}select(e){if(M(Sb,this).edgeUrl)return M(Sb,this).edgeUrl;if(e.length>0){A(Cb,this,[...e]);let t=new Set(M(Cb,this).map(e=>bb(e)));for(let e of M(wb,this))t.has(e)||M(wb,this).delete(e)}if(M(Cb,this).length===0)return;let t=M(Cb,this).filter(e=>!M(wb,this).has(bb(e)));t.length===0&&(M(wb,this).clear(),t=M(Cb,this));let n=t[0];if(n)return M(wb,this).add(bb(n)),A(Tb,this,n),n}shiftedEdge(){return M(Tb,this)}hasRemainingEdges(){return M(Cb,this).some(e=>!M(wb,this).has(bb(e)))}reset(){A(Tb,this,void 0),A(Cb,this,[]),M(wb,this).clear()}};U(),V(),h(),D(),j(),N(),z(),k(),F();var Db,Ob=new WeakMap,kb=new WeakMap,Ab=new WeakMap,jb=new WeakMap,Mb=new WeakMap,Nb=new WeakMap,Pb=new WeakMap,Fb=new WeakMap,Ib=new WeakMap,Lb=new WeakMap,Rb=new WeakMap,zb=new WeakMap,Bb=new WeakMap,Vb=new WeakMap,Hb=new WeakMap,Ub=new WeakMap,Wb=new WeakMap,Gb=new WeakMap,Kb=new WeakMap,qb=new WeakSet,Jb=new WeakMap,Yb=new WeakMap,Xb=new WeakMap,Zb=new WeakMap,Qb=new WeakMap,$b=new WeakMap,ex=class e{constructor(t,n,r){var i=this;B(this,qb),m(this,`emitter`,void 0),m(this,`logger`,void 0),m(this,`config`,void 0),m(this,`apiClient`,void 0),m(this,`connectionImpl`,void 0),E(this,Ob,new T(10)),E(this,kb,!0),E(this,Ab,void 0),E(this,jb,0),E(this,Mb,0),E(this,Nb,0),E(this,Pb,void 0),E(this,Fb,void 0),E(this,Ib,void 0),E(this,Lb,void 0),E(this,Rb,void 0),E(this,zb,void 0),E(this,Bb,void 0),E(this,Vb,[]),E(this,Hb,void 0),m(this,`unload`,()=>{var e;this.logger.debug(`Unloading module...`),this.disconnect(`Unloading`),(e=this.connectionImpl)==null||e.unload(),A(Bb,this,void 0),this.logger.debug(`Unloaded module`)}),m(this,`suspend`,()=>{var e;A(kb,this,!1),(e=this.connectionImpl)==null||e.suspend()}),m(this,`unsuspend`,()=>{var e;A(kb,this,!0),(e=this.connectionImpl)==null||e.unsuspend(),this.connect()}),m(this,`getState`,()=>this.connectionImpl?this.connectionImpl.getState():`disconnected`),m(this,`getStatistics`,()=>{let e=M(Mb,this)>0?M(Nb,this)/M(Mb,this):0;if(!this.connectionImpl){let t=M(Ub,this).call(this);return{rtt:{min:0,max:0,average:0,last:0},estimatedBandwidth:0,connectCount:M(Nb,this),connectionAttemptCount:M(Mb,this),connectionSuccessRatio:e,timeToConnected:M(Lb,this),edgeUrl:t==null?void 0:t.edgeUrl,connectionProtocol:t==null?void 0:t.connectionProtocol,transportSelectionReason:t==null?void 0:t.transportSelectionReason}}return R(R({},this.connectionImpl.getStatistics()),{},{rtt:Ht(M(Ob,this).items()),estimatedBandwidth:this.estimatedBandwidth,connectCount:M(Nb,this),connectionAttemptCount:M(Mb,this),connectionSuccessRatio:e,timeToConnected:M(Lb,this)})}),E(this,Ub,()=>M(kb,this)&&M(zb,this)?M(zb,this):M(Rb,this)),m(this,`connect`,()=>{if(A(kb,this,!0),M(Ab,this))return;let e=performance.now();M(Lb,this)===void 0&&A(Pb,this,e),M(Fb,this)===void 0&&A(Fb,this,e),A(Ab,this,O(qb,this,tx).call(this))}),E(this,Wb,()=>{M(Lb,this)!==void 0||M(Pb,this)===void 0||!M(kb,this)||(A(Lb,this,performance.now()-M(Pb,this)),A(Pb,this,void 0))}),m(this,`disconnect`,(e=`Disconnect Requested`)=>{var t;A(kb,this,!1),M(Yb,this).call(this),(t=this.connectionImpl)==null||t.close(e)}),m(this,`reconnect`,e=>{this.disconnect(e),this.connect()}),E(this,Gb,P(function*(){try{return yield i.apiClient.connect(i.config.options.getOptions())}catch(e){if(Eu(e))switch(e.status){case 401:throw i.emitter.emit(`error`,Ri(e)),Ri(e);case 403:throw i.emitter.emit(`error`,qi(e.message)),qi(e.message);default:break}throw i.emitter.emit(`error`,Wi(e instanceof Error?e:void 0)),e}})),E(this,Kb,P(function*(){let t=performance.now(),n=()=>performance.now()-t,r=globalThis.AbortController?new AbortController:void 0,a=setTimeout(()=>r==null?void 0:r.abort(),e.PING_TIMEOUT);try{return yield fetch(new URL(`/api/v4/connect/ping`,i.config.options.get(`url`)).toString(),{method:`HEAD`,signal:r==null?void 0:r.signal}),n()}catch(e){return r!=null&&r.signal.aborted?n():void 0}finally{clearTimeout(a)}})),E(this,Jb,()=>{M(Yb,this).call(this),A(Hb,this,setTimeout(()=>{var e;!M(Bb,this)||((e=this.connectionImpl)==null?void 0:e.getState())!==`connected`||(this.logger.debug(`Connection remained stable for long enough, clearing cached fallback edges`),M(Bb,this).reset(),A(Hb,this,void 0))},e.EDGE_SELECTOR_RESET_TIMEOUT))}),E(this,Yb,()=>{M(Hb,this)!==void 0&&(clearTimeout(M(Hb,this)),A(Hb,this,void 0))}),E(this,Xb,function(){var t=P(function*(t){return(yield i.config.reconnectHandler({reconnectRetries:M(jb,i)}))?(M(Qb,i).call(i)?(i.logger.info(`Reconnect burst detected, applying backoff before retrying`),yield Tr(e.RECONNECT_BACKOFF_MS)):i.logger.info(t===`cached_edge`?`Retrying with next cached edge without backoff`:`Retrying without backoff`),M(kb,i)):(A(kb,i,!1),i.emitter.emit(`error`,Gi()),!1)});return function(e){return t.apply(this,arguments)}}()),E(this,Zb,(e=performance.now())=>{M($b,this).call(this,e),M(Vb,this).push(e)}),E(this,Qb,(t=performance.now())=>(M($b,this).call(this,t),M(Vb,this).length>=e.RECONNECT_BACKOFF_BURST_THRESHOLD)),E(this,$b,t=>{for(;M(Vb,this).length>0;){let n=M(Vb,this)[0];if(n===void 0||n>t-e.RECONNECT_BACKOFF_BURST_WINDOW_MS)return;M(Vb,this).shift()}}),this.logger=n,this.emitter=t,this.config=r,this.apiClient=new Pu({publicEndpoint:this.config.options.get(`url`).toString(),tokenFactory:()=>this.config.options.get(`authenticationToken`)})}get rtt(){return M(Ob,this).items().length>0?zt(M(Ob,this).items()):0}get estimatedBandwidth(){if(this.connectionImpl&&`estimatedBandwidth`in this.connectionImpl){let e=this.connectionImpl.estimatedBandwidth;if(e&&Number.isFinite(e))return e}return vb(this.rtt)}get firstConnectStartTime(){return M(Fb,this)}get lastConnectionTime(){return M(Ib,this)}};Db=ex;function tx(){var e=this;return P(function*(){let t=new Eb({edgeUrl:e.config.options.get(`edgeUrl`)});for(A(Bb,e,t),M(Yb,e).call(e),A(jb,e,0),A(Vb,e,[]);;){var n,r,i;let o=`standard`;A(jb,e,(n=M(jb,e),n++,n)),A(Mb,e,(r=M(Mb,e),r++,r)),M(Zb,e).call(e);let s=!1;A(zb,e,{});try{var a;let[n,r]=yield Promise.all([M(Gb,e).call(e),M(Kb,e).call(e)]);if(M(Ob,e).clear(),r!==void 0&&M(Ob,e).push(r/2),!M(kb,e))break;let i=t.select(n.edges);if(!i)throw new W(`Failed to resolve edge url`,{isFatal:!0,code:`failed_to_resolve_edge_url`});A(zb,e,{edgeUrl:Ny(xb(i))});try{Pr(n)?e.connectionImpl=yield Qy.start(e.emitter,e.logger,e.apiClient,R(R({},e.config),{},{connectInfo:n,edgeUrl:i,onTransportConnected:M(Wb,e)}),M(Ob,e)):(Te(typeof i==`string`,`Edge URL is expected to be a string`),e.connectionImpl=yield yb.start(e.emitter,e.logger,R(R({},e.config),{},{connectInfo:n,edgeUrl:i,onTransportConnected:M(Wb,e)}),M(Ob,e)))}catch(e){throw o=`cached_edge`,e}A(Rb,e,e.connectionImpl.getStatistics()),A(zb,e,void 0),M(kb,e)||e.connectionImpl.close(`Disconnected during connect`),M(Jb,e).call(e),A(Nb,e,(a=M(Nb,e),a++,a)),A(jb,e,0),A(Ib,e,performance.now()),M(Wb,e).call(e);let s=yield e.connectionImpl.closed();e.logger.info(`Connection closed`,{reason:s instanceof Error?s.message:s}),o=`cached_edge`}catch(n){e.logger.warn(`Failed to connect`,n);let r=t.shiftedEdge();r&&e.emitter.emit(`telemetry event`,{code:`shifted_edge`,edgeUrl:xb(r)}),n instanceof W?(e.emitter.emit(`error`,n),s=n.isFatal()):n instanceof Error&&e.emitter.emit(`error`,new W(n.message,{code:`start_failed`,isFatal:!1}))}if((i=e.connectionImpl)==null||i.unload(),e.connectionImpl=void 0,M(Yb,e).call(e),s){A(kb,e,!1);break}if(!M(kb,e)||!(yield M(Xb,e).call(e,o===`cached_edge`&&t.hasRemainingEdges()?`cached_edge`:`standard`)))break}A(zb,e,void 0),A(Bb,e,void 0),M(Yb,e).call(e),A(Ab,e,void 0)})()}m(ex,`PING_TIMEOUT`,1e3),m(ex,`RECONNECT_BACKOFF_MS`,1e3),m(ex,`RECONNECT_BACKOFF_BURST_WINDOW_MS`,5e3),m(ex,`RECONNECT_BACKOFF_BURST_THRESHOLD`,3),m(ex,`EDGE_SELECTOR_RESET_TIMEOUT`,60*1e3),m(ex,`create`,(e,t,n)=>new Db(e,t,n)),U(),z(),h();var nx,rx=()=>({video:R(R({},Br()),{},{bitRate:zr()}),audio:{bitRate:zr()}}),ix=()=>({width:window.innerWidth,height:window.innerHeight,bitRate:zr()}),ax=class e{constructor(t,n,r,i){m(this,`emitter`,void 0),m(this,`timers`,new sr),m(this,`pictureInPictureSource`,void 0),m(this,`element`,void 0),m(this,`currentCap`,void 0),m(this,`userSpecifiedCap`,void 0),m(this,`renditionLevelSource`,void 0),m(this,`resizeObserver`,void 0),m(this,`elementSize`,void 0),m(this,`_sizeBasedResolutionCapEnabled`,void 0),m(this,`unload`,()=>{var e;this.emitter.off(`enter picture in picture`,this.enterPictureInPicture),this.emitter.off(`exit picture in picture`,this.exitPictureInPicture),(e=this.resizeObserver)==null||e.disconnect(),this.suspend()}),m(this,`load`,()=>{window.ResizeObserver&&(this.resizeObserver=new ResizeObserver(this.onResize),this.resizeObserver.observe(this.element)),this.evaluateConstraintCap()}),m(this,`setElement`,e=>{var t;if(e===this.element)return;(t=this.resizeObserver)==null||t.disconnect(),this.element=e;let n=this.element.getBoundingClientRect();this.elementSize={width:n.width,height:n.height},this.resizeObserver&&this.resizeObserver.observe(this.element),this.evaluateConstraintCap()}),m(this,`unsuspend`,()=>{this.timers.setInterval(this.evaluateConstraintCap,e.CHECK_SIZE_INTERVAL),this.evaluateConstraintCap()}),m(this,`suspend`,()=>{this.timers.unload()}),m(this,`setUserSpecifiedCap`,e=>{var t;let n=(t=this.getUserSpecifiedCap())==null?rx():t;this.userSpecifiedCap=R(R({},n),{},{video:R(R({},n.video),e.video),audio:R(R({},n.audio),e.audio)}),this.evaluateConstraintCap()}),m(this,`getUserSpecifiedCap`,()=>this.userSpecifiedCap),m(this,`getCurrentConstraintCap`,()=>this.currentCap),m(this,`getStatistics`,()=>({constraintCap:this.getUserSpecifiedCap(),windowInnerWidth:window.innerWidth,windowInnerHeight:window.innerHeight,elementWidth:this.elementSize.width,elementHeight:this.elementSize.height,pixelRatio:window.devicePixelRatio})),m(this,`constrainSubscription`,e=>{let t=this.getCurrentConstraintCap();return t&&(e.video.codec&&(e.video.bitRate=Math.min(t.video.bitRate,e.video.bitRate),e.video.width=Math.min(t.video.width,e.video.width),e.video.height=Math.min(t.video.height,e.video.height)),e.audio.codec&&(e.audio.bitRate=Math.min(t.audio.bitRate,e.audio.bitRate))),e}),m(this,`onResize`,e=>{e.forEach(e=>{this.elementSize={width:e.contentRect.width,height:e.contentRect.height}})}),m(this,`evaluateConstraintCap`,()=>{var e,t,n,r;let i=this.sizeBasedResolutionCapEnabled?R(R({},rx()),{},{video:ix()}):rx();if(!this.resizeObserver){let e=this.element.getBoundingClientRect();this.elementSize={width:e.width,height:e.height}}if(this.sizeBasedResolutionCapEnabled){var a;let e=window.devicePixelRatio,t=(a=this.pictureInPictureSource)==null?void 0:a.getPictureInPictureSize();this.elementSize.width>0&&this.elementSize.height>0&&(i.video.width=this.elementSize.width,i.video.height=this.elementSize.height),t&&(i.video.width=t.width,i.video.height=t.height),i.video.width*=e,i.video.height*=e}let o=this.renditionLevelSource.getRenditionLevels().find(e=>{if(e.video)return e.video.width/e.video.height>i.video.width/i.video.height?e.video.width>i.video.width:e.video.height>i.video.height});o!=null&&o.video&&(i.video.width=o.video.width,i.video.height=o.video.height);let s=(e=this.userSpecifiedCap)==null?void 0:e.video,c=(t=this.userSpecifiedCap)==null?void 0:t.audio;s&&(i.video.width>s.width&&(i.video.width=s.width),i.video.height>s.height&&(i.video.height=s.height)),i.video.bitRate=(n=s==null?void 0:s.bitRate)==null?i.video.bitRate:n,i.audio.bitRate=(r=c==null?void 0:c.bitRate)==null?i.audio.bitRate:r,Qt(i,this.currentCap)?this.currentCap=R({},i):(this.currentCap=R({},i),this.emitter.emit(`constraint cap changed`,i))}),m(this,`enterPictureInPicture`,e=>{this.pictureInPictureSource=e,this.evaluateConstraintCap()}),m(this,`exitPictureInPicture`,()=>{this.pictureInPictureSource=void 0,this.evaluateConstraintCap()}),this.element=n;let a=this.element.getBoundingClientRect();this.elementSize={width:a.width,height:a.height},this.emitter=t,this.renditionLevelSource=r,this._sizeBasedResolutionCapEnabled=i,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(e){this._sizeBasedResolutionCapEnabled=e,this.evaluateConstraintCap()}};nx=ax,m(ax,`CHECK_SIZE_INTERVAL`,1e3),m(ax,`create`,(e,t,n,r)=>new nx(e,t,n,r)),h();var ox=(e,t)=>`${e}\u0000${t==null?``:t}`,sx=(e,t,n,r)=>e===n&&t===r,cx=class{constructor(){m(this,`lastKey`,void 0),m(this,`shouldNotify`,(e,t)=>{let n=ox(e,t);return this.lastKey===n?!1:(this.lastKey=n,!0)})}},lx,ux=n((()=>{lx=e=>{switch(e){case`opus`:return`opus`;case`aac`:return`mp4a.40.2`;case`mp3`:return`mp3`;default:{let t=e;throw Error(`Unsupported audio codec: ${t}`)}}}})),dx=r({WebCodecsAudioDecoderContext:()=>hx}),fx,px,mx,hx,gx=n((()=>{ho(),wl(),U(),ux(),h(),z(),F(),px=globalThis,mx=e=>{var t,n;if(!e)return{description:e,preSkip:0};let r=e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(!(r.byteLength>=19&&new TextDecoder().decode(r.subarray(0,8))===`OpusHead`))return{description:e,preSkip:0};let i=r.slice();return i[10]=0,i[11]=0,{description:i,preSkip:((t=r[10])==null?0:t)|((n=r[11])==null?0:n)<<8}},hx=class{constructor(e){var t=this;m(this,`decodedSamples`,[]),m(this,`decoder`,null),m(this,`logger`,void 0),m(this,`initSegments`,new Map),m(this,`previousSample`,void 0),m(this,`previousCodec`,void 0),m(this,`pendingSamples`,new T(1/0)),m(this,`priming`,{remaining:0}),m(this,`sentCount`,0),m(this,`doneCount`,0),m(this,`errors`,new T(10)),m(this,`resetDecoderState`,()=>{this.pendingSamples.clear(),this.doneCount=this.sentCount,this.previousSample=void 0,this.previousCodec=void 0}),m(this,`dropUndecoded`,e=>{for(;this.doneCount<e&&this.pendingSamples.pop();)this.doneCount++}),m(this,`ensureDecoder`,()=>((!this.decoder||this.decoder.state===`closed`)&&(this.decoder=this.createDecoder()),this.decoder)),m(this,`createDecoder`,()=>new AudioDecoder({output:e=>{let t=this.pendingSamples.pop();if(!t){e.close();return}this.doneCount++;let{sample:n,decodeStartTime:r,priming:i}=t;try{let t=e.numberOfFrames,a=e.numberOfChannels,o=e.sampleRate,s=e.duration,c=Math.min(t,Math.round(i.remaining*o/48e3));if(i.remaining=Math.max(0,i.remaining-Math.round(c*48e3/o)),c===t&&t>0)return;let l=new Float32Array((t-c)*a);e.copyTo(l,{planeIndex:0,format:`f32`,frameOffset:c});let u=c>0?Math.round((t-c)*n.timescale/o):typeof s==`number`&&Number.isFinite(s)?Math.max(0,Math.round(s*n.timescale/1e6)):n.duration,d=R(R({},n),{},{timestamp:n.timestamp+Math.round(c*n.timescale/o),duration:u,type:`audio`,format:`f32`,data:l,sampleRate:o,channels:a,statistics:{decodeTime:Math.max(performance.now()-r,0),transportTimeFromWorker:0,transportTimeToWorker:0,samplesInBatch:1}});this.decodedSamples.push(d)}finally{e.close()}},error:e=>{this.logger.error(`Decoder error:`,e.name,e.message),this.resetDecoderState(),this.errors.push(e)}})),m(this,`buildCodecString`,lx),m(this,`getDescription`,(e,t)=>{let n=this.initSegments.get(t.renditionId);if(n&&n.data.byteLength>0&&n.codec===e)return n.data;if(e===`opus`)return Sl(t.channels,t.sampleRate);if(e===`aac`)return oo(t.channels,t.sampleRate)}),m(this,`reset`,()=>{this.decodedSamples=[],this.decoder&&this.decoder.state!==`closed`&&this.decoder.reset(),this.resetDecoderState()}),m(this,`unload`,()=>{this.reset(),this.decoder&&this.decoder.state!==`closed`&&this.decoder.close(),this.decoder=null}),m(this,`initSegment`,e=>{this.initSegments.set(e.renditionId,e)}),m(this,`enqueue`,e=>{var t,n;let r=this.ensureDecoder(),i=e.codec,a=((t=this.previousSample)==null?void 0:t.channelId)!==e.channelId,o=((n=this.previousSample)==null?void 0:n.renditionId)!==e.renditionId,s=this.previousCodec!==i;if(!this.previousSample||a||o||s){if(this.previousSample&&r.state===`configured`){let e=this.sentCount;r.flush().then(()=>this.dropUndecoded(e),e=>{this.logger.warn(`Failed to flush before reconfiguration:`,e)})}let t=this.buildCodecString(i),{description:n,preSkip:a}=i===`opus`?mx(this.getDescription(i,e)):{description:this.getDescription(i,e),preSkip:0},o={codec:t,sampleRate:e.sampleRate,numberOfChannels:e.channels,description:n};try{r.configure(o),this.previousCodec=i,this.priming={remaining:a}}catch(t){this.logger.error(`Failed to configure decoder for ${i} (rendition ${e.renditionId}), dropping sample`,t),this.errors.push(t instanceof Error?t:Error(`Failed to configure decoder for ${i}`)),r.state===`configured`&&r.reset(),this.resetDecoderState(),this.ensureDecoder();return}}if(e.timescale<=0){this.logger.error(`Invalid timescale ${e.timescale} in sample, dropping sample`);return}this.previousSample=e;let c=Math.floor(1e6*e.timestamp/e.timescale),l=Math.floor(1e6*e.duration/e.timescale),u;try{u=new EncodedAudioChunk({type:`key`,timestamp:c,duration:l>0?l:void 0,data:e.data})}catch(e){this.logger.error(`Failed to create chunk:`,e);return}this.pendingSamples.push({sample:e,decodeStartTime:performance.now(),priming:this.priming}),this.sentCount++;try{r.decode(u)}catch(e){this.logger.error(`Failed to decode chunk:`,e),this.pendingSamples.popLast(),this.sentCount--,r.state===`closed`&&(this.resetDecoderState(),this.ensureDecoder())}}),m(this,`flush`,P(function*(){if(t.decoder&&t.decoder.state===`configured`)try{let e=t.sentCount;yield t.decoder.flush(),t.dropUndecoded(e)}catch(e){t.logger.error(`Failed to flush decoder:`,e),t.resetDecoderState()}})),m(this,`error`,()=>this.errors.pop()),m(this,`take`,()=>this.decodedSamples.shift()),this.logger=e,this.decoder=this.createDecoder()}},fx=hx,m(hx,`isSupported`,()=>px.AudioDecoder!==void 0),m(hx,`create`,function(){var e=P(function*(e){if(!fx.isSupported())throw Error(`WebCodecs AudioDecoder is not supported in this environment`);return new fx(e)});return function(t){return e.apply(this,arguments)}}())})),_x,vx=n((()=>{_x=(function(){var e=typeof document<`u`&&document.currentScript?document.currentScript.src:void 0;return(function(t){t=t||{};var n;n||(n=t===void 0?{}:t);var r,i;n.ready=new Promise(function(e,t){r=e,i=t});var a={},o;for(o in n)n.hasOwnProperty(o)&&(a[o]=n[o]);var s=``;typeof document<`u`&&document.currentScript&&(s=document.currentScript.src),e&&(s=e),s=s.indexOf(`blob:`)===0?``:s.substr(0,s.lastIndexOf(`/`)+1);var c=n.print||console.log.bind(console),l=n.printErr||console.warn.bind(console);for(o in a)a.hasOwnProperty(o)&&(n[o]=a[o]);a=null;var u;n.wasmBinary&&(u=n.wasmBinary),n.noExitRuntime,typeof WebAssembly!=`object`&&te(`no native wasm support detected`);var d,f=!1,p=typeof TextDecoder<`u`?new TextDecoder(`utf8`):void 0,m,h,g,_=[],v=[],y=[];function b(){var e=n.preRun.shift();_.unshift(e)}var ee=0,x=null,S=null;n.preloadedImages={},n.preloadedAudios={};function te(e){throw n.onAbort&&n.onAbort(e),l(e),f=!0,e=new WebAssembly.RuntimeError(`abort(`+e+`). Build with -s ASSERTIONS=1 for more info.`),i(e),e}function ne(e){return e.startsWith(`data:application/octet-stream;base64,`)}var re=`data:application/octet-stream;base64,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cSELA0AgUCAJQQJ0IgJqIgEgWCABKgIAkiJVIAIgEWoqAgAiVCBUIFVeGzgCACBQIAJBBHIiAmoiASBYIAEqAgCSIlUgAiARaioCACJUIFQgVV4bOAIAIAlBAmohCSALQQJrIgsNAAsLIARFDQAgUCAJQQJ0IgJqIgEgWCABKgIAkiJVIAIgEWoqAgAiVCBUIFVeGzgCAAsCQCAAQQFIDQAgAEEDcSEEQQAhCSAAQQFrQQNPBEAgAEF8cSEHA0AgESAJQQJ0IgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIBEgAkEEciIBakEANgIAIAEgK2pBgICAj3w2AgAgASAlakGAgICPfDYCACARIAJBCHIiAWpBADYCACABICtqQYCAgI98NgIAIAEgJWpBgICAj3w2AgAgESACQQxyIgFqQQA2AgAgASArakGAgICPfDYCACABICVqQYCAgI98NgIAIAlBBGohCSAHQQRrIgcNAAsLIARFDQADQCARIAlBAnQiAWpBADYCACABICtqQYCAgI98NgIAIAEgJWpBgICAj3w2AgAgCUEBaiEJIARBAWsiBA0ACwsCQCAXIB1OIgENACAdIBciCWtBA3EiCwRAA0AgESAJQQJ0IgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIAlBAWohCSALQQFrIgsNAAsLIB0gF0F/c2pBA0kNAANAIBEgCUECdCIEakEANgIAIAQgK2pBgICAj3w2AgAgBCAlakGAgICPfDYCACARIARBBGoiAmpBADYCACACICtqQYCAgI98NgIAIAIgJWpBgICAj3w2AgAgESAEQQhqIgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIBEgBEEMaiICakEANgIAIAIgK2pBgICAj3w2AgAgAiAlakGAgICPfDYCACAJQQRqIgkgHUcNAAsLAkAgAEEBSA0AQQAhCSAAQQFHBEAgAEF+cSELA0AgESAJIB1qQQJ0IgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIBEgCUEBciAdakECdCICakEANgIAIAIgK2pBgICAj3w2AgAgAiAlakGAgICPfDYCACAJQQJqIQkgC0ECayILDQALCyAAQQFxRQ0AIBEgCSAdakECdCIAakEANgIAIAAgK2pBgICAj3w2AgAgACAlakGAgICPfDYCAAsCQCABDQAgF0EBaiEAIB0gF2tBAXEEQCARIBcgHWpBAnQiAWpBADYCACABICtqQYCAgI98NgIAIAEgJWpBgICAj3w2AgAgACEXCyAAIB1GDQADQCARIBcgHWpBAnQiAGpBADYCACAAICtqQYCAgI98NgIAIAAgJWpBgICAj3w2AgAgESAAQQRqIgBqQQA2AgAgACArakGAgICPfDYCACAAICVqQYCAgI98NgIAIBdBAmoiFyAdRw0ACwsgDyAiKAIcNgIoIBxBEGogAyAeID8gDygCECAaQRBqIA9B1ABqEC8gD0EANgI0QX0hBiAvICIoAhQgIigCHGdqQSBrTgRAICIoAiwEQCAPQQE2AiwLIB4gDygCEG0hBgsLIBxB0ABqJAAgBgv/BQIKfwZ9IAAoAhghCSAAKAIAIQcCQCAFQQFIDQAgBUEHcSEIIAVBAWtBB08EQCAFQXhxIQoDQCAJIAdBAXRBfHFqIAdBfHFqIAdBA3VBAnRqIAdBBHVBAnRqIAdBBXVBAnRqIAdBBnVBAnRqIAdBB3VBAnRqIAdBCHUiB0ECdGohCSAKQQhrIgoNAAsLIAhFDQADQCAJIAdBAXUiB0ECdGohCSAIQQFrIggNAAsLIAIgBEEBdEF8cWohCCAAIAVBAnRqKAIIIQwCQCAHQQNMBEAgDCAIEDAMAQtBACEKIAdBAnUiC0EBIAtBAUobIQ4gASAHQQF1Ig1BAWsgBmxBAnRqIQUgDCgCLCEAQQAgBkEBdCIGa0ECdCEPA0AgCCAALgEAQQN0IhBBBHJqIAUqAgAiEyAJIApBAnRqKgIAIhSUIAEqAgAiESAJIAogC2pBAnRqKgIAIhKUkjgCACAIIBBqIBQgEZQgEyASlJM4AgAgAEECaiEAIAUgD2ohBSABIAZBAnRqIQEgCkEBaiIKIA5HDQALIAwgCBAwIAdBBEgNACALQQFqQQF1IgBBASAAQQFKGyEAIAggDUECdGohCkEAIQcDQCAKQQRrIgEqAgAhEyAKQQhrIgoqAgAhFCAIIAgqAgQiESAJIAdBAnRqKgIAIhKUIAgqAgAiFSAJIAcgC2pBAnRqKgIAIhaUkjgCACABIBEgFpQgFSASlJM4AgAgCiATIAkgCyAHQX9zIgFqQQJ0aioCACIRlCAUIAkgASANakECdGoqAgAiEpSSOAIAIAggEyASlCAUIBGUkzgCBCAIQQhqIQggB0EBaiIHIABHDQALCyAEQQJtIQACQCAEQQJIDQAgAiAEQQJ0IgFqIQcgASADaiEIQQEhCQNAIAIgAioCACITIAhBBGsiCCoCACIUlCAHQQRrIgcqAgAiESADKgIAIhKUkzgCACAHIBEgFJQgEyASlJI4AgAgACAJRg0BIANBBGohAyACQQRqIQIgCUEBaiEJDAALAAsLwwICBn8BfSAAKAIsIAZsIQsgACgCICIMIAVBAXRqLgEAIAZsIQkgB0EBRwRAIAkgCyAHbSIAIAAgCUobIQkLQQAgBSAIGyEKIAxBACAEIAgbIgRBAXRqLgEAIg0gBmwiB0ECdCEAIAIhBSAHQQFOBEAgAkEAIAAQCSAAaiEFCyAEIApIBEAgACABaiEAIAQhAQNAIAMgAUECdCIHaioCACAHQcC+AWoqAgCSQwAAAEKWu0TvOfr+Qi7mP6IQGrYhDyAGIA1sIQcgDCABQQFqIgFBAXRqLgEAIg0gBmwhDgNAIAUgACoCACAPlDgCACAFQQRqIQUgAEEEaiEAIAdBAWoiByAOSA0ACyABIApHDQALCyAEIApKBEBBuIUCQdeFAkGHAhAGAAsgAkEAIAkgCBsiAEECdGpBACALIABrQQJ0EAkaC7EDAwJ8An8BfiAAvSIFQj+IpyEDAkACQAJ8AkAgAAJ/AkACQCAFQiCIp0H/////B3EiBEGrxpiEBE8EQCAAvUL///////////8Ag0KAgICAgICA+P8AVgRAIAAPCyAARO85+v5CLoZAZARAIABEAAAAAAAA4H+iDwsgAETSvHrdKyOGwGNFDQEgAERRMC3VEEmHwGNFDQEMBgsgBEHD3Nj+A0kNAyAEQbLFwv8DSQ0BCyAARP6CK2VHFfc/oiADQQN0QfDDAWorAwCgIgCZRAAAAAAAAOBBYwRAIACqDAILQYCAgIB4DAELIANFIANrCyIDtyIBRAAA4P5CLua/oqAiACABRHY8eTXvOeo9oiICoQwBCyAEQYCAwPEDTQ0CQQAhAyAACyEBIAAgASABIAEgAaIiACAAIAAgACAARNCkvnJpN2Y+okTxa9LFQb27vqCiRCzeJa9qVhE/oKJEk72+FmzBZr+gokQ+VVVVVVXFP6CioSIAokQAAAAAAAAAQCAAoaMgAqGgRAAAAAAAAPA/oCEBIANFDQAgASADEBUhAQsgAQ8LIABEAAAAAAAA8D+gC7ABAQR/IAAoAgwhBAJAIAAoAhAiBUEBaiICQSFJBEAgBSEDDAELA0AgACAAKAIEIgMgACgCCCICIAAoAhhqSwR/IAAgAkEBaiICNgIIIAAoAgAgAyACa2ogBDoAAEEABUF/CyAAKAIscjYCLCAEQQh2IQQgBUEPSiECIAVBCGsiAyEFIAINAAsgA0EBaiECCyAAIAI2AhAgACABIAN0IARyNgIMIAAgACgCFEEBajYCFAuSAwECfyAAKAIcIgQgA24hBSAAAn8gAQRAIAAgACgCICAFIAEgA2tsIARqajYCICAFIAIgAWtsDAELIAUgAiADa2wgBGoLIgM2AhwgA0GAgIAETQRAIAAoAiAhAQNAAkAgAUEXdiIFQf8BRwRAIAFBH3YhAiAAKAIoIgRBAE4EQEF/IQEgACAAKAIEIAAoAhgiAyAAKAIIaksEfyAAIANBAWo2AhggACgCACADaiACIARqOgAAQQAFQX8LIAAoAixyNgIsCyAAKAIkIgEEQCACQQFrIQQDQEF/IQMgACAAKAIEIAAoAhgiAiAAKAIIaksEfyAAIAJBAWo2AhggACgCACACaiAEOgAAQQAhAyAAKAIkBSABC0EBayIBNgIkIAAgACgCLCADcjYCLCABDQALCyAAIAVB/wFxNgIoIAAoAhwhAyAAKAIgIQEMAQsgACAAKAIkQQFqNgIkCyAAIANBCHQiAzYCHCAAIAFBCHRBgP7//wdxIgE2AiAgACAAKAIUQQhqNgIUIANBgYCABEkNAAsLC7EEAQh/QR8gA2ciCmshBiADIgQCfyAEQQJOBEAgA0ECa0EBdiIEQQFqIgVBAXEhCAJAIARFBEBBACEFIAMhBAwBCyAFQX5xIQlBACEFIAMhBANAIAIgBUEBdCIHQQZyai4BACILIAtsIAIgB0EEcmouAQAiCyALbGogBnYgBCACIAdBAnJqLgEAIgQgBGwgAiAHai4BACIEIARsaiAGdmpqIQQgBUEEaiEFIAlBAmsiCQ0ACwsgCARAIAQgAiAFQQF0IgRBAnJqLgEAIgUgBWwgAiAEai4BACIEIARsaiAGdmohBAsgA0F+cSEFCyAFC0oEQCAEIAIgBUEBdGouAQAiBCAEbCAGdmohBAtBACEFQSIgCiAEZ2prIgRBACAEQQBKGyEGQQAhBAJ/IANBAk4EQCADQQJrQQF2IgRBAWoiBUEBcSEKAkAgBEUEQEEAIQRBACEFDAELIAVBfnEhCUEAIQRBACEFA0AgAiAFQQF0IgdBBnJqLgEAIgggCGwgAiAHQQRyai4BACIIIAhsaiAGdiAEIAIgB0ECcmouAQAiBCAEbCACIAdqLgEAIgQgBGxqIAZ2amohBCAFQQRqIQUgCUECayIJDQALCyAKBEAgBCACIAVBAXQiBEECcmouAQAiBSAFbCACIARqLgEAIgQgBGxqIAZ2aiEECyADQX5xIQULIAMgBUoLBEAgAiAFQQF0ai4BACICIAJsIAZ2IARqIQQLIAEgBjYCACAAIAQ2AgALnRQCEH8CfiMAQdAAayIGJAAgBkGADDYCTCAGQTdqIRMgBkE4aiEQAkADQAJAIA1BAEgNAEH/////ByANayAESARAQeimAkE9NgIAQX8hDQwBCyAEIA1qIQ0LIAYoAkwiByEEAkACQAJAIActAAAiBQRAA0ACQAJAIAVB/wFxIgVFBEAgBCEFDAELIAVBJUcNASAEIQUDQCAELQABQSVHDQEgBiAEQQJqIgg2AkwgBUEBaiEFIAQtAAIhCyAIIQQgC0ElRg0ACwsgBSAHayEEIAAEQCAAIAcgBBATCyAEDQYgBigCTCEEIAYCfwJAIAYoAkwsAAFBMGtBCk8NACAELQACQSRHDQAgBCwAAUEwayEPQQEhESAEQQNqDAELQX8hDyAEQQFqCyIENgJMQQAhCAJAIAQsAAAiDkEgayIFQR9LDQBBASAFdCIFQYnRBHFFDQADQAJAIAYgBEEBaiIINgJMIAQsAAEiDkEgayIEQSBPDQBBASAEdCIEQYnRBHFFDQAgBCAFciEFIAghBAwBCwsgCCEEIAUhCAsCQCAOQSpGBEAgBgJ/AkAgBCwAAUEwa0EKTw0AIAYoAkwiBC0AAkEkRw0AIAQsAAFBAnQgA2pBwAFrQQo2AgAgBCwAAUEDdCACakGAA2soAgAhCkEBIREgBEEDagwBCyARDQZBACERQQAhCiAABEAgASABKAIAIgRBBGo2AgAgBCgCACEKCyAGKAJMQQFqCyIENgJMIApBf0oNAUEAIAprIQogCEGAwAByIQgMAQsgBkHMAGoQTSIKQQBIDQQgBigCTCEEC0F/IQkCQCAELQAAQS5HDQAgBC0AAUEqRgRAAkAgBCwAAkEwa0EKTw0AIAYoAkwiBC0AA0EkRw0AIAQsAAJBAnQgA2pBwAFrQQo2AgAgBCwAAkEDdCACakGAA2soAgAhCSAGIARBBGoiBDYCTAwCCyARDQUgAAR/IAEgASgCACIEQQRqNgIAIAQoAgAFQQALIQkgBiAGKAJMQQJqIgQ2AkwMAQsgBiAEQQFqNgJMIAZBzABqEE0hCSAGKAJMIQQLQQAhBQNAIAUhEkF/IQwgBCwAAEHBAGtBOUsNCCAGIARBAWoiDjYCTCAELAAAIQUgDiEEIAUgEkE6bGotAN8HIgVBAWtBCEkNAAsCQAJAIAVBE0cEQCAFRQ0KIA9BAE4EQCADIA9BAnRqIAU2AgAgBiACIA9BA3RqKQMANwNADAILIABFDQggBkFAayAFIAEQTCAGKAJMIQ4MAgsgD0F/Sg0JC0EAIQQgAEUNBwsgCEH//3txIgsgCCAIQYDAAHEbIQVBACEMQYQIIQ8gECEIAkACQAJAAn8CQAJAAkACQAJ/AkACQAJAAkACQAJAAkAgDkEBaywAACIEQV9xIAQgBEEPcUEDRhsgBCASGyIEQdgAaw4hBBQUFBQUFBQUDhQPBg4ODhQGFBQUFAIFAxQUCRQBFBQEAAsCQCAEQcEAaw4HDhQLFA4ODgALIARB0wBGDQkMEwsgBikDQCEUQYQIDAULQQAhBAJAAkACQAJAAkACQAJAIBJB/wFxDggAAQIDBBoFBhoLIAYoAkAgDTYCAAwZCyAGKAJAIA02AgAMGAsgBigCQCANrDcDAAwXCyAGKAJAIA07AQAMFgsgBigCQCANOgAADBULIAYoAkAgDTYCAAwUCyAGKAJAIA2sNwMADBMLIAlBCCAJQQhLGyEJIAVBCHIhBUH4ACEECyAQIQcgBEEgcSELIAYpA0AiFFBFBEADQCAHQQFrIgcgFKdBD3FB8AtqLQAAIAtyOgAAIBRCBIgiFEIAUg0ACwsgBUEIcUUNAyAGKQNAUA0DIARBBHZBhAhqIQ9BAiEMDAMLIBAhBCAGKQNAIhRQRQRAA0AgBEEBayIEIBSnQQdxQTByOgAAIBRCA4giFEIAUg0ACwsgBCEHIAVBCHFFDQIgCSAQIAdrIgRBAWogBCAJSBshCQwCCyAGKQNAIhRCf1cEQCAGQgAgFH0iFDcDQEEBIQxBhAgMAQsgBUGAEHEEQEEBIQxBhQgMAQtBhghBhAggBUEBcSIMGwshDyAQIQQCQCAUQoCAgIAQVARAIBQhFQwBCwNAIARBAWsiBCAUIBRCCoAiFUIKfn2nQTByOgAAIBRC/////58BViEHIBUhFCAHDQALCyAVpyIHBEADQCAEQQFrIgQgByAHQQpuIgtBCmxrQTByOgAAIAdBCUshDiALIQcgDg0ACwsgBCEHCyAFQf//e3EgBSAJQX9KGyEFIAYpA0AhFAJAIAkNACAUUEUNAEEAIQkgECEHDAwLIAkgFFAgECAHa2oiBCAEIAlIGyEJDAsLAn8gBigCQCIEQY4IIAQbIgchBSAJIgRBAEchCAJAAkACQCAERQ0AIAVBA3FFDQADQCAFLQAARQ0CIAVBAWohBSAEQQFrIgRBAEchCCAERQ0BIAVBA3ENAAsLIAhFDQELAkAgBS0AAEUNACAEQQRJDQADQCAFKAIAIghBf3MgCEGBgoQIa3FBgIGChHhxDQEgBUEEaiEFIARBBGsiBEEDSw0ACwsgBEUNAANAIAUgBS0AAEUNAhogBUEBaiEFIARBAWsiBA0ACwtBAAsiBCAHIAlqIAQbIQggCyEFIAQgB2sgCSAEGyEJDAoLIAkEQCAGKAJADAILQQAhBCAAQSAgCkEAIAUQEgwCCyAGQQA2AgwgBiAGKQNAPgIIIAYgBkEIajYCQEF/IQkgBkEIagshCEEAIQQCQANAIAgoAgAiB0UNAQJAIAZBBGogBxAsIgdBAEgiCw0AIAcgCSAEa0sNACAIQQRqIQggCSAEIAdqIgRLDQEMAgsLQX8hDCALDQsLIABBICAKIAQgBRASIARFBEBBACEEDAELQQAhCCAGKAJAIQ4DQCAOKAIAIgdFDQEgBkEEaiAHECwiByAIaiIIIARKDQEgACAGQQRqIAcQEyAOQQRqIQ4gBCAISw0ACwsgAEEgIAogBCAFQYDAAHMQEiAKIAQgBCAKSBshBAwICyAAIAYrA0AgCiAJIAUgBEEAERgAIQQMBwsgBiAGKQNAPAA3QQEhCSATIQcgCyEFDAQLIAYgBEEBaiIINgJMIAQtAAEhBSAIIQQMAAsACyANIQwgAA0EIBFFDQJBASEEA0AgAyAEQQJ0aigCACIABEAgAiAEQQN0aiAAIAEQTEEBIQwgBEEBaiIEQQpHDQEMBgsLQQEhDCAEQQpPDQQDQCADIARBAnRqKAIADQEgBEEBaiIEQQpHDQALDAQLQX8hDAwDCyAAQSAgDCAIIAdrIgsgCSAJIAtIGyIJaiIIIAogCCAKShsiBCAIIAUQEiAAIA8gDBATIABBMCAEIAggBUGAgARzEBIgAEEwIAkgC0EAEBIgACAHIAsQEyAAQSAgBCAIIAVBgMAAcxASDAELC0EAIQwLIAZB0ABqJAAgDAv7GwISfwZ9IwBB8ABrIgkkAAJAAkACQAJAAkACQAJAIAAoAggiB0EBa0ECSQRAAkAgACgCDCIIQf/8AEwEQCAIQcA+Rg0BIAhB4N0ARg0BDAkLIAhBgP0ARg0AIAhBwLsBRg0AIAhBgPcCRw0ICyAAKAIYIAhHDQECQCAAKAIcIg5B390ATARAIA5FDQEgDkHAPkYNAQwICyAOQeDdAEYNACAOQYD9AEcNBwsgACgCECAHRw0CIAAoAhRBA08NAyAAKAIgIgdBFEsNBEEBIAd0QYGIwABxRQ0EDAULQfWUAkGFlAJB1AAQBgALQZuWAkGFlAJB1gAQBgALQZeYAkGFlAJB2AAQBgALQdWYAkGFlAJB2QAQBgALIAdBKEYNACAHQTxGDQBB35kCQYWUAkHaABAGAAsCQAJAAkACQAJAIAAoAiwiB0F/SgRAIAcNAUF/IQcgACgCMEEBa0ECTw0CAkAgBUEBSw0AAkACQCABRQ0AIAJFDQAgBUUNAQsgBCAIQf//A3FBkANubw0BCyABQQAgAhtFBEAgAEEAQQAgAyAEQQAQECIFQQBIBEAgBSEHDAILIAUhAQNAIAQgBUoEQCABIABBAEEAIAMgACgCCCABbEECdGogBCABa0EAEBAiByABaiIBIAdBAEgiAhshBSACRQ0BDAMLCyAEIAVHDQUgACAENgJIIAEhBwwBCyACQQBIDQAgAS0AACIHQeAAcSEVAn8gB0GAAXEiDwRAIAdBBXZBA3EiB0HOCGpBzQggBxsMAQtB0QhB0AggB0EQcRsgFUHgAEYNABogB0EFdkEDcUHNCGoLIRYCfyAIIQcgAS0AACIIQYABcQRAIAcgCEEDdkEDcXRBkANtDAELIAhB4ABxQeAARgRAIAdBMm0gCEEIcQ0BGiAHQeQAbQwBCyAHQTxsQegHbSAIQQN2QQNxIghBA0YNABogByAIdEHkAG0LIRAgAS0AACEUAn8gASEHIAlB6wBqIRcgCUHsAGohGEF/IQoCQAJAIAJBAEgNACAJRQ0AQXwhCiACRQ0AAn8gBy0AACISQYABcQRAQYD3AiASQQN2QQNxdEGQA24MAQtBwAdB4AMgEkEIcRsgEkHgAHFB4ABGDQAaQcAWIBJBA3ZBA3EiAUEDRg0AGkGA9wIgAXRB5ABuCyEOQQEhCyAHQQFqIQggAkEBayIMIQECQAJAAkACQCASQQNxDgMDAAECCyAMQQFxDQMgCSAMQQF2IgE7AQBBAiELDAILIAJBAUwEQCAJQf//AzsBAEF8DAULIAgtAAAiDUH8AU8EQEECIQsgAkECTARAIAlB//8DOwEADAQLIActAAJBAnQgDWohDQsgCSANOwEAIAwgC2siASANSA0CIAEgDWshASAIIAtqIQhBAiELDAELIAJBAkgNASAHLQABIgxBP3EiC0UNASALIA5sQYAtSw0BIAdBAmohASACQQJrIQICQCAMQcAAcUUEQCABIQgMAQsDQCACQQFIDQMgDUF+IAEtAAAiCCAIQf8BRiIOG0H/AXEiCGohDSACIAhBf3NqIQIgAUEBaiIIIQEgDg0ACyACQQBIDQILIAxBgAFxBEAgC0ECSQRAIAIhAQwCCyALQQFrIQ4gAiIBIREDQCAJIBNBAXRqIQwgEUEATARAIAxB//8DOwEAQXwMBgtBASENIAgtAAAiAkH8AU8EQCARQQFMBEAgDEH//wM7AQBBfAwHC0ECIQ0gCC0AAUECdCACaiECCyAMIAI7AQAgESANayIRIAJIDQMgCCANaiEIIAEgAiANamshASATQQFqIhMgDkcNAAsgAUEASA0CDAELIAIgC20iASALbCACRw0BIAtBAkkNACALQQFrIgJBB3EhEUEAIQ0gC0ECa0EHTwRAIAJBeHEhEwNAIAkgDUEBdCICaiABOwEAIAkgAkECcmogATsBACAJIAJBBHJqIAE7AQAgCSACQQZyaiABOwEAIAkgAkEIcmogATsBACAJIAJBCnJqIAE7AQAgCSACQQxyaiABOwEAIAkgAkEOcmogATsBACANQQhqIQ0gE0EIayITDQALCyARBEADQCAJIA1BAXRqIAE7AQAgDUEBaiENIBFBAWsiEQ0ACwsLIAFB+wlKDQAgC0EBdCAJakECayABOwEADAELIAoMAQsgGARAIBggCCAHazYCAAsCQCALRQ0AIAtBAXEhDAJAIAtBAUYEQEEAIQIMAQsgC0E+cSEKQQAhAgNAIAJBAXIhDiAIIAkgAkEBdGouAQBqIQEgAkECaiECIAEgCSAOQQF0ai4BAGohCCAKQQJrIgoNAAsLIAxFDQAgCSACQQF0ai4BABoLIBcEQCAXIBI6AAALIAsLIghBAEgEQCAIIQcMAQtB6gdB6QdB6AcgFUHgAEYbIA8bIQxBAkEBIBRBBHEbIQ4gByAJKAJsaiEBIAUEQAJAAkAgDEHqB0YNACAEIBBIDQAgACgCOEHqB0cNAQsgAEEAQQAgAyAEQQAgBhAfIQcMAgsgBCAQayIFBEAgACgCSCECIABBAEEAIAMgBUEAIAYQHyIHQX9MBEAgACACNgJIDAMLIAUgB0cNBwsgACAQNgJAIAAgFjYCNCAAIAw2AjggACAONgIwIAAgASAJLgEAIAMgACgCCCAFbEECdGogEEEBEBAiB0EASA0BIAAgBDYCSCAEIQcMAQtBfiEHIAggEGwgBEoNACAAIBA2AkAgACAWNgI0IAAgDDYCOCAAIA42AjBBACEFAkAgCEEBSARAQQAhBwwBC0EAIQcDQCAAIAEgCSAFQQF0aiIOLgEAIAMgACgCCCAHbEECdGogBCAHa0EAEBAiAkEASARAIAIhBwwDCyACIBBHDQggByAQaiEHIAEgDi4BAGohASAFQQFqIgUgCEcNAAsLIAAgBzYCSCAGBEAgAyEGIAchAyAAKAIIIQpBACEBQQAhFAJAIABBzABqIg5FDQAgBkUNACADQQFIDQAgCkEBSA0AAkAgAyAKbCIIQQFIDQAgCEEBRwRAIAhBfnEhAANAIAYgAUECdCIFaiICQwAAAMBDAAAAQEMAAABAIAIqAgAiGiAaQwAAAEBeIgQbQwAAAMBdIgIbIhkgGSAaIAIbIAQbOAIAIAYgBUEEcmoiAkMAAADAQwAAAEBDAAAAQCACKgIAIhogGkMAAABAXiIEG0MAAADAXSICGyIZIBkgGiACGyAEGzgCACABQQJqIQEgAEECayIADQALCyAIQQFxRQ0AIAYgAUECdGoiAEMAAADAQwAAAEBDAAAAQCAAKgIAIhogGkMAAABAXiIBG0MAAADAXSIAGyIZIBkgGiAAGyABGzgCAAsDQCAGIBRBAnQiAGohDyAAIA5qIggqAgAhGkEAIQADQCAaIA8gACAKbEECdGoiASoCACIdlCIZQwAAAABgRQRAIAEgHSAdIBmUkjgCACAAQQFqIgAgA0cNAQsLIA8qAgAhHUEAIQEDQAJAAkAgASICIgQgA04NAANAIA8gBCAKbEECdGoqAgAiGUMAAIA/Xg0BIBlDAACAv10NASAEQQFqIgQgA0cNAAtDAAAAACEbDAELIAMgBEYEQEMAAAAAIRsMAQsgBEEfdSAEcSEFIA8gBCAKbEECdGoqAgAiGoshGyAEIQEDQAJAIAEiAEEBSARAIAUhAAwBCyAaIA8gAEEBayIBIApsQQJ0aioCAJRDAAAAAGANAQsLAkAgBCIBIANODQADQCAaIA8gASAKbEECdGoqAgAiGZRDAAAAAGBFDQEgASAEIBmLIhkgG14iBRshBCAZIBsgBRshGyABQQFqIgEgA0cNAAsgAyEBC0EAIQwgAEUEQCAaIA8qAgCUQwAAAABgIQwLIBtDAACAv5IgGyAblJUiGSAZQ1nZgDSUkiIZjCAZIBpDAAAAAF4bIRsCQCAAIAFODQAgAEEBaiEFIAEgAGtBAXEEQCAPIAAgCmxBAnRqIgAgACoCACIZIBkgGyAZlJSSOAIAIAUhAAsgASAFRg0AA0AgDyAAIApsQQJ0aiIFIAUqAgAiGSAZIBsgGZSUkjgCACAPIABBAWogCmxBAnRqIgUgBSoCACIZIBkgGyAZlJSSOAIAIABBAmoiACABRw0ACwsCQCAMRSAEQQJIcg0AIAIgBE4NACAdIA8qAgCTIhwgBLKVIR4gAkEBaiEAIAQgAmtBAXEEQCAPIAIgCmxBAnRqIgJDAACAv0MAAIA/QwAAgD8gHCAekyIcIAIqAgCSIhogGkMAAIA/XiIFG0MAAIC/XSICGyIZIBkgGiACGyAFGzgCACAAIQILIAAgBEYNAANAIA8gAiAKbEECdGoiAEMAAIC/QwAAgD9DAACAPyAcIB6TIhogACoCAJIiHCAcQwAAgD9eIgUbQwAAgL9dIgAbIhkgGSAcIAAbIAUbOAIAIA8gAkEBaiAKbEECdGoiAEMAAIC/QwAAgD9DAACAPyAaIB6TIhwgACoCAJIiGiAaQwAAgD9eIgUbQwAAgL9dIgAbIhkgGSAaIAAbIAUbOAIAIAJBAmoiAiAERw0ACwsgASADRw0BCwsgCCAbOAIAIBRBAWoiFCAKRw0ACwsMAQsgAEIANwJMCyAJQfAAaiQAIAcPC0GwmwJBhZQCQdwAEAYAC0HQmwJBhZQCQd0AEAYAC0H8mwJBhZQCQd8AEAYAC0HbkwJBhZQCQYwFEAYAC0GYlAJBhZQCQbEFEAYAC0HMlAJBhZQCQdQFEAYAC0HVlgJBhZQCQdcAEAYAC0GulQJBhZQCQdUAEAYAC8wMAQd/AkAgAEUNACAAQQhrIgMgAEEEaygCACIBQXhxIgBqIQUCQCABQQFxDQAgAUEDcUUNASADIAMoAgAiAWsiA0HEpwIoAgBJDQEgACABaiEAIANByKcCKAIARwRAIAFB/wFNBEAgAygCCCICIAFBA3YiBEEDdEHcpwJqRhogAiADKAIMIgFGBEBBtKcCQbSnAigCAEF+IAR3cTYCAAwDCyACIAE2AgwgASACNgIIDAILIAMoAhghBgJAIAMgAygCDCIBRwRAIAMoAggiAiABNgIMIAEgAjYCCAwBCwJAIANBFGoiAigCACIEDQAgA0EQaiICKAIAIgQNAEEAIQEMAQsDQCACIQcgBCIBQRRqIgIoAgAiBA0AIAFBEGohAiABKAIQIgQNAAsgB0EANgIACyAGRQ0BAkAgAyADKAIcIgJBAnRB5KkCaiIEKAIARgRAIAQgATYCACABDQFBuKcCQbinAigCAEF+IAJ3cTYCAAwDCyAGQRBBFCAGKAIQIANGG2ogATYCACABRQ0CCyABIAY2AhggAygCECICBEAgASACNgIQIAIgATYCGAsgAygCFCICRQ0BIAEgAjYCFCACIAE2AhgMAQsgBSgCBCIBQQNxQQNHDQBBvKcCIAA2AgAgBSABQX5xNgIEIAMgAEEBcjYCBCAAIANqIAA2AgAPCyADIAVPDQAgBSgCBCIBQQFxRQ0AAkAgAUECcUUEQCAFQcynAigCAEYEQEHMpwIgAzYCAEHApwJBwKcCKAIAIABqIgA2AgAgAyAAQQFyNgIEIANByKcCKAIARw0DQbynAkEANgIAQcinAkEANgIADwsgBUHIpwIoAgBGBEBByKcCIAM2AgBBvKcCQbynAigCACAAaiIANgIAIAMgAEEBcjYCBCAAIANqIAA2AgAPCyABQXhxIABqIQACQCABQf8BTQRAIAUoAggiAiABQQN2IgRBA3RB3KcCakYaIAIgBSgCDCIBRgRAQbSnAkG0pwIoAgBBfiAEd3E2AgAMAgsgAiABNgIMIAEgAjYCCAwBCyAFKAIYIQYCQCAFIAUoAgwiAUcEQCAFKAIIIgJBxKcCKAIASRogAiABNgIMIAEgAjYCCAwBCwJAIAVBFGoiAigCACIEDQAgBUEQaiICKAIAIgQNAEEAIQEMAQsDQCACIQcgBCIBQRRqIgIoAgAiBA0AIAFBEGohAiABKAIQIgQNAAsgB0EANgIACyAGRQ0AAkAgBSAFKAIcIgJBAnRB5KkCaiIEKAIARgRAIAQgATYCACABDQFBuKcCQbinAigCAEF+IAJ3cTYCAAwCCyAGQRBBFCAGKAIQIAVGG2ogATYCACABRQ0BCyABIAY2AhggBSgCECICBEAgASACNgIQIAIgATYCGAsgBSgCFCICRQ0AIAEgAjYCFCACIAE2AhgLIAMgAEEBcjYCBCAAIANqIAA2AgAgA0HIpwIoAgBHDQFBvKcCIAA2AgAPCyAFIAFBfnE2AgQgAyAAQQFyNgIEIAAgA2ogADYCAAsgAEH/AU0EQCAAQQN2IgFBA3RB3KcCaiEAAn9BtKcCKAIAIgJBASABdCIBcUUEQEG0pwIgASACcjYCACAADAELIAAoAggLIQIgACADNgIIIAIgAzYCDCADIAA2AgwgAyACNgIIDwtBHyECIANCADcCECAAQf///wdNBEAgAEEIdiIBIAFBgP4/akEQdkEIcSIBdCICIAJBgOAfakEQdkEEcSICdCIEIARBgIAPakEQdkECcSIEdEEPdiABIAJyIARyayIBQQF0IAAgAUEVanZBAXFyQRxqIQILIAMgAjYCHCACQQJ0QeSpAmohAQJAAkACQEG4pwIoAgAiBEEBIAJ0IgdxRQRAQbinAiAEIAdyNgIAIAEgAzYCACADIAE2AhgMAQsgAEEAQRkgAkEBdmsgAkEfRht0IQIgASgCACEBA0AgASIEKAIEQXhxIABGDQIgAkEddiEBIAJBAXQhAiAEIAFBBHFqIgdBEGooAgAiAQ0ACyAHIAM2AhAgAyAENgIYCyADIAM2AgwgAyADNgIIDAELIAQoAggiACADNgIMIAQgAzYCCCADQQA2AhggAyAENgIMIAMgADYCCAtB1KcCQdSnAigCAEEBayIAQX8gABs2AgALC98CAgF9BH8CQCABQQFIDQAgAUEDcSEFAkAgAUEBayIIQQNJBEBBACEDDAELIAFBfHEhB0EAIQMDQCAEIAAgA0ECdCIGaioCACIEIASUkiAAIAZBBHJqKgIAIgQgBJSSIAAgBkEIcmoqAgAiBCAElJIgACAGQQxyaioCACIEIASUkiEEIANBBGohAyAHQQRrIgcNAAsLIAUEQANAIAQgACADQQJ0aioCACIEIASUkiEEIANBAWohAyAFQQFrIgUNAAsLIAFBAUgNAEMAAIA/IARDfR2QJpKRlSAClCECIAFBA3EhAyAIQQNPBEAgAUF8cSEBA0AgACACIAAqAgCUOAIAIAAgAiAAKgIElDgCBCAAIAIgACoCCJQ4AgggACACIAAqAgyUOAIMIABBEGohACABQQRrIgENAAsLIANFDQADQCAAIAIgACoCAJQ4AgAgAEEEaiEAIANBAWsiAw0ACwsL6w4DBX0TfwJ8AkAgBEEBdCABTg0AIAVFDQAgAbIgBUECdEGkgwJqKAIAIARsIAFqspUiBiAGlEMAAAA/lCIGQ9sPyT+UuxA4IR5DAACAPyAGk0PbD8k/lLsQOCEfQQAhBSABIANBA3ROBEAgA0ECdSEMQQEhBANAIAQiBUEBaiEEIAUgBSAFbGogA2wgDGogAUgNAAsLIAEgA24hDiADQQFIDQAgHrYhBiAftiEHIA5BA2shDCAOQQRrIRQgDkEBcSEQIA5BAWsiEUF+cSEVIBFBAXEhFiARIAVBAXRrIg9BAWshFyAOIAVrIhJBfnEhGCASQQFxIRkgDkECayEaIA4gBUF/c2ohGyACQX9KIRwDQCAOIBNsIQsCQCAcRQRAAkAgBUUNACAAIAtBAnRqIQICQCASQQFIDQAgAiEEIBghASAbBEADQCAEIAVBAnQiDWoiHSAEKgIAIgggBpQgHSoCACIJIAeUkjgCACAEIAggB5QgCSAGlJM4AgAgBEEEaiANaiINIAQqAgQiCCAGlCANKgIAIgkgB5SSOAIAIAQgCCAHlCAJIAaUkzgCBCAEQQhqIQQgAUECayIBDQALCyAZRQ0AIAQgBUECdGoiASAEKgIAIgggBpQgASoCACIJIAeUkjgCACAEIAggB5QgCSAGlJM4AgALIA9BAEgNACACIA9BAnRqIQQgEAR/IAQgBUECdGoiASAEKgIAIgggBpQgASoCACIJIAeUkjgCACAEIAggB5QgCSAGlJM4AgAgBEEEayEEIBcFIA8LIQEgD0UNAANAIAQgBUECdCICaiINIAQqAgAiCCAGlCANKgIAIgkgB5SSOAIAIAQgCCAHlCAJIAaUkzgCACACIARBBGsiAmoiDSACKgIAIgggBpQgDSoCACIJIAeUkjgCACACIAggB5QgCSAGlJM4AgAgBEEIayEEIAFBAUohAiABQQJrIQEgAg0ACwsgACALQQJ0aiECAkAgEUEBSA0AIAIqAgAhCCACIQQgFSEBIBoEQANAIAQgCCAGlCAEKgIEIgkgB5STOAIAIAQgCCAHlCAJIAaUkiIJIAeUIAQqAggiCiAGlJIiCDgCCCAEIAkgBpQgCiAHlJM4AgQgBEEIaiEEIAFBAmsiAQ0ACwsgFkUNACAEIAggBpQgBCoCBCIJIAeUkzgCACAEIAggB5QgCSAGlJI4AgQLIAxBAEgNASACIAxBAnRqIQQgEAR/IAQgBCoCACIIIAeUIAQqAgQiCSAGlJI4AgQgBCAIIAaUIAkgB5STOAIAIARBBGshBCAUBSAMCyEBIAxFDQEDQCAEIAQqAgAiCCAHlCAEKgIEIgkgBpSSOAIEIAQgBEEEayICKgIAIgogB5QgCCAGlCAJIAeUkyIIIAaUkjgCACACIAogBpQgCCAHlJM4AgAgBEEIayEEIAFBAUohAiABQQJrIQEgAg0ACwwBCyAAIAtBAnRqIQICQCARQQFIDQAgAioCACEIIAIhBCAVIQEgGgRAA0AgBCAIIAaUIAQqAgQiCSAHlJI4AgAgBCAEKgIIIgogBpQgCSAGlCAIIAeUkyIJIAeUkyIIOAIIIAQgCSAGlCAKIAeUkjgCBCAEQQhqIQQgAUECayIBDQALCyAWRQ0AIAQgCCAGlCAEKgIEIgkgB5SSOAIAIAQgCSAGlCAIIAeUkzgCBAsCQCAMQQBIDQAgAiAMQQJ0aiEEIBAEfyAEIAQqAgQiCCAGlCAEKgIAIgkgB5STOAIEIAQgCSAGlCAIIAeUkjgCACAEQQRrIQQgFAUgDAshASAMRQ0AA0AgBCAEKgIEIgggBpQgBCoCACIJIAeUkzgCBCAEIAkgBpQgCCAHlJIiCCAGlCAEQQRrIgsqAgAiCSAHlJM4AgAgCyAJIAaUIAggB5SSOAIAIARBCGshBCABQQFKIQsgAUECayEBIAsNAAsLIAVFDQACQCASQQFIDQAgAiEEIBghASAbBEADQCAEIAVBAnQiC2oiDSANKgIAIgggB5QgBCoCACIJIAaUkzgCACAEIAkgB5QgCCAGlJI4AgAgBEEEaiALaiILIAsqAgAiCCAHlCAEKgIEIgkgBpSTOAIAIAQgCSAHlCAIIAaUkjgCBCAEQQhqIQQgAUECayIBDQALCyAZRQ0AIAQgBUECdGoiASABKgIAIgggB5QgBCoCACIJIAaUkzgCACAEIAkgB5QgCCAGlJI4AgALIA9BAEgNACACIA9BAnRqIQQgEAR/IAQgBUECdGoiASABKgIAIgggB5QgBCoCACIJIAaUkzgCACAEIAkgB5QgCCAGlJI4AgAgBEEEayEEIBcFIA8LIQEgD0UNAANAIAQgBUECdCICaiILIAsqAgAiCCAHlCAEKgIAIgkgBpSTOAIAIAQgCSAHlCAIIAaUkjgCACACIARBBGsiAmoiCyALKgIAIgggB5QgAioCACIJIAaUkzgCACACIAkgB5QgCCAGlJI4AgAgBEEIayEEIAFBAUohAiABQQJrIQEgAg0ACwsgE0EBaiITIANHDQALCwuSAQEDfEQAAAAAAADwPyAAIACiIgJEAAAAAAAA4D+iIgOhIgREAAAAAAAA8D8gBKEgA6EgAiACIAIgAkSQFcsZoAH6PqJEd1HBFmzBVr+gokRMVVVVVVWlP6CiIAIgAqIiAyADoiACIAJE1DiIvun6qL2iRMSxtL2e7iE+oKJErVKcgE9+kr6goqCiIAAgAaKhoKAL0wEBBX8gAEGANEEIEAchAiAAQc40QQgQByEDIABB1TRBCBAHIQQgASAAQc40QQgQByACIAJBBW0iBUF7bGpBA2xqQQF0QeAzaiICLgECIAIuAQAiAmsiBkH//wNxQZozbEEQdiAGQRB1QZozbGogAEHVNEEIEAdBEXRBEHVBAXJsIAJqIgA2AgQgASADIAVBA2xqQQF0QeAzaiIBLgECIAEuAQAiAWsiAkH//wNxQZozbEEQdiACQRB1QZozbGogBEERdEEQdUEBcmwgAWogAGs2AgAL6wEBBn8gACAAKAIgIAAoAiQiBCADIAJrbCIDayIGNgIgIAAgAQR/IAQgAiABa2wFIAAoAhwgA2sLIgI2AhwgAkGAgIAETQRAIAAoAhghAyAAKAIoIQQgACgCFCEHIAAoAgQhCANAIAAgAkEIdCIJNgIcIAAgB0EIaiIHNgIUQQAhASADIAhJBEAgACADQQFqIgU2AhggACgCACADai0AACEBIAUhAwsgACABNgIoIAAgBkEIdEGA/v//B3EgASAEQQh0ckEBdkH/AXFyQf8BcyIGNgIgIAJBgYACSSEFIAEhBCAJIQIgBQ0ACwsLxQIBB38gAEEEakEAQaQhEAkaIABBADYCyCAgAEGAgAQ2AgAgAEEBNgLIEkH//wEgACIDKAKkEiICQQFqbSEAAkAgAkEBSA0AIAJBA3EhBQJAIAJBAWtBA0kNACACQXxxIQcgA0HUH2ohAiAAIQEDQCACIARBAXQiBmogATsBACACIAZBAnJqIAAgAWoiATsBACACIAZBBHJqIAAgAWoiATsBACACIAZBBnJqIAAgAWoiATsBACAEQQRqIQQgB0EEayIHRQ0BIAAgAWohAQwACwALIAVFDQADQCADIARBAXRqQdQfaiAAIAFqIgE7AQAgBEEBaiEEIAVBAWsiBQ0ACwsgA0G0IGpCgICAgICQnhg3AgAgA0GUIWpCgICEgICAwAA3AgAgA0GgIWpCgoCAgMACNwIAIAMgAygCmBJBB3Q2AswgQQALigIBBn8gAUEBayEDAkAgAUECSA0AIAJBgIAEayEEIANBAXEhBwJAIAFBAkYEQEEAIQEMAQsgA0F+cSEGQQAhAQNAIAAgAUEBdCIFaiIIIAIgCC4BAGxBD3ZBAWpBAXY7AQAgACAFQQJyaiIFIAIgBGxBD3VBAWpBAXUgAmoiAiAFLgEAbEEPdkEBakEBdjsBACACIARsQQ91QQFqQQF1IAJqIQIgAUECaiEBIAZBAmsiBg0ACwsgB0UNACAAIAFBAXRqIgEgAiABLgEAbEEPdkEBakEBdjsBACACIARsQQ91QQFqQQF1IAJqIQILIAAgA0EBdGoiACACIAAuAQBsQQ92QQFqQQF2OwEAC94NAgp/AX4jAEHAAmsiBCQAAkACQCACQQprDgcBAAAAAAABAAtByg9B6w9B2QAQBgALQbAPQcAPIAJBEEYbIQVBACEDA0AgBEHgAWogAyAFai0AAEECdGogASADQQF0ai4BACIHQQh1QQF0QaANaiIGLgECIAYuAQAiBmsgB0H/AXFsIAZBCHRqQQN1QQFqQQF1NgIAIANBAWoiAyACRw0AC0GAgAQhBiAEQYCABDYCoAEgBEEAIAQoAuABayIFNgKkAUEBIQMgAkEBdSEJAkAgAkEESCIMDQAgBSEBA0AgBEGgAWogA0EBaiIHQQJ0aiINIAZBAXQgBEHgAWogA0EDdGooAgAiCqwiDiABrH5CD4hCAXxCAYinazYCACADQQJ0IgggBEGgAWpqIQsgBCADQQJPBH8gCyAEIAhqKAKYASIFIAFqIAasIA5+Qg+IQgF8QgGIp2s2AgAgA0ECRwRAA0AgBEGgAWogA0EBayIBQQJ0aiIIIANBAnQgBGooApQBIgYgCCgCAGogBawgDn5CD4hCAXxCAYinazYCACADQQNKIQggASEDIAYhBSAIDQALCyAEKAKkAQUgBQsgCmsiBTYCpAEgByAJRg0BIA0oAgAhASALKAIAIQYgByEDDAALAAtBgIAEIQYgBEGAgAQ2AmAgBEEAIAQoAuQBayIFNgJkAkAgDA0AIARB4AFqQQRyIQxBASEDIAUhAQNAIARB4ABqIANBAWoiB0ECdGoiDSAGQQF0IAwgA0EDdGooAgAiCqwiDiABrH5CD4hCAXxCAYinazYCACADQQJ0IgggBEHgAGpqIQsgBCADQQJPBH8gCyAEIAhqKAJYIgUgAWogBqwgDn5CD4hCAXxCAYinazYCACADQQJHBEADQCAEQeAAaiADQQFrIgFBAnRqIgggA0ECdCAEaigCVCIGIAgoAgBqIAWsIA5+Qg+IQgF8QgGIp2s2AgAgA0EDSiEIIAEhAyAGIQUgCA0ACwsgBCgCZAUgBQsgCmsiBTYCZCAHIAlGDQEgDSgCACEBIAsoAgAhBiAHIQMMAAsACyACQQJOBEAgCUEBIAlBAUobIQkgBCgCYCEGIAQoAqABIQFBACEDA0AgBCADQQJ0akEAIAEgA0EBaiIFQQJ0IgsgBEGgAWpqKAIAIgdqIgwgBEHgAGogC2ooAgAiASAGayIGams2AgAgBCADQX9zIAJqQQJ0aiAGIAxrNgIAIAEhBiAHIQEgBSIDIAlHDQALC0EAIQdBACEJIAJBfnEhAyACQQFxIQwgAkEBayELAkACQANAAkAgAkEBSARAQQAhBgwBC0EAIQVBACEGIAMhASALBEADQCAEIAVBAXIiDUECdGooAgAiCiAKQR91IgpqIApzIgogBCAFQQJ0aigCACIIIAhBH3UiCGogCHMiCCAGIAYgCEgiCBsiBiAGIApIIgobIQYgDSAFIAcgCBsgChshByAFQQJqIQUgAUECayIBDQALCyAMRQ0AIAQgBUECdGooAgAiASABQR91IgFqIAFzIgEgBiABIAZKIgEbIQYgBSAHIAEbIQcLIAZBBHVBAWpBAXUiAUGAgAJOBEAgBCACQb7/AyABQf7/CSABQf7/CUgbIgFBDnRBgID//wFrIAEgB0EBamxBAnVtaxBLIAlBAWoiCUEKRw0BDAILCyAJQQpGDQAgAkEBSA0BIAJBAXEhAQJAIAtFBEBBACEFDAELIAJBfnEhB0EAIQUDQCAAIAVBAXRqIAQgBUECdGooAgBBBHVBAWpBAXU7AQAgBCAFQQFyIgNBAnRqKAIAIQYgACADQQF0aiAGQQR1QQFqQQF1OwEAIAVBAmohBSAHQQJrIgcNAAsLIAFFDQEgACAFQQF0aiAEIAVBAnRqKAIAQQR1QQFqQQF1OwEADAELIAJBAUgNAEEAIQUDQCAAIAVBAXRqAn9B//8BIAQgBUECdGoiAygCAEEEdSIBQf7/A0oNABpBgIB+IAFB//97SA0AGiABQQFqQQF1CyIBOwEAIAMgAUEFdDYCACAFQQFqIgUgAkcNAAsLAkAgACACECkNACACQX5xIQcgAkEBcSEGQQAhAQNAIAQgAkF+IAF0QYCABGoQS0EAIQMgByEFIAJBAUcEQANAIAAgA0EBdGogBCADQQJ0aigCAEEEdkEBakEBdjsBACAAIANBAXIiCUEBdGogBCAJQQJ0aigCAEEEdkEBakEBdjsBACADQQJqIQMgBUECayIFDQALCyAGBEAgACADQQF0aiAEIANBAnRqKAIAQQR2QQFqQQF2OwEACyAAIAIQKSEDIAFBDksNASABQQFqIQEgA0UNAAsLIARBwAJqJAALsggCCn8EfiMAQeAAayEGAn8CQAJAAkAgAUEBTgRAIAFBA3EhCCABQQFrQQNPDQEMAgsgAUEBayEAQoCAgIAEIQwMAgsgAUF8cSELA0AgBiACQQJ0aiAAIAJBAXRqLgEAIglBDHQ2AgAgBiACQQFyIgVBAnRqIAAgBUEBdGouAQAiBEEMdDYCACAGIAJBAnIiBUECdGogACAFQQF0ai4BACIHQQx0NgIAIAYgAkEDciIFQQJ0aiAAIAVBAXRqLgEAIgVBDHQ2AgAgBSAHIAQgAyAJampqaiEDIAJBBGohAiALQQRrIgsNAAsLIAgEQANAIAYgAkECdGogACACQQF0ai4BACIFQQx0NgIAIAJBAWohAiADIAVqIQMgCEEBayIIDQALCyADQf8fSgRAQQAPCyABQQFrIQJCgICAgAQhDCABQQJIBEAgAiEADAELA0AgBiACIgVBAnRqKAIAIgBBnt//B2pBvL7/D0sEQEEADwtBACAMQYCAgIAEQQAgAEEHdGusIg0gDX5CIIinayIHrH5CHoinQXxxIgtB7sYGSA0CGkEAIQBBAEH/////ASAHIAcgB0EfdSICaiACc2ciCEEBa3QiCUEQdSIEbSIHQRB0IgJBEHUiAyAJQf//A3FsQRB1IAMgBGxqQQN0ayIEIAdBD3VBAWpBAXVsIAJqIARBEHUgA2xqIARB+P8DcSADbEEQdWqsIQ5BHyAIa60hDyABQQF2IQcDQCAGIABBAnRqIgkoAgAiAyAGIAUgAEF/c2pBAnRqIgIoAgAiCqwgDX5CHohCAXxCAYinIgRrIgFBgICAgHhB/////wcgAUF/SiIBGyAEIAMgARtBf3MgAyAEIAEbcUF/ShusIA5+IQwCfgJAAkAgCEEfRgRAIAxCAYMgDEIBh3wiDEKAgICACHxC/////w9YDQFBAA8LIAwgD4dCAXxCAYciDEKAgICACHxC/////w9YDQFBAA8LIAkgDD4CACAKIAOsIA1+Qh6IQgF8QgGIpyIEayIBQYCAgIB4Qf////8HIAFBf0oiARsgBCAKIAEbQX9zIAogBCABG3FBf0obrCAOfiIMQgGDIAxCAYd8DAELIAkgDD4CACAKIAOsIA1+Qh6IQgF8QgGIpyIEayIBQYCAgIB4Qf////8HIAFBf0oiARsgBCAKIAEbQX9zIAogBCABG3FBf0obrCAOfiAPh0IBfEIBhwsiDEKAgICACHxC/////w9WBEBBAA8LIAIgDD4CACAAQQFqIgAgB0cNAAsgBUEBayECIAusIQxBACEAIAUiAUEBSg0ACwtBACAGIABBAnRqKAIAQZ7f/wdqQby+/w9LDQAaQQAgDEKAgICAgICAgMAAQQAgBigCAEEHdGusIgwgDH5CgICAgPD/////AIN9QiCHfkIeiKdBfHEiACAAQe7GBkgbCwvABQIKfQZ/AkACQCAFQwAAAABcDQAgBkMAAAAAXA0AIAAgAUYNASAAIAEgBEECdBALGg8LQQAhC0ECIANBDyADQQ9KGyIWayEXQX4gFmshGCAWQX9zIRlBASAWayEaQQAgFmshGyAIQQxsIgNB2AxqKgIAIAaUIQ8gA0HUDGoqAgAgBpQhECADQdAMaioCACAGlCERQQAgCiAHIAhGGyAKIAUgBlsbIAogAkEPIAJBD0obIgggFkYbIgJBAU4EQCAHQQxsIgNB2AxqKgIAIAWUIRIgA0HUDGoqAgAgBZQhEyADQdAMaioCACAFlCEUIAEgGkECdGoqAgAhDCABIBtBAnRqKgIAIQ0gASAZQQJ0aioCACEOIAEgGEECdGoqAgAhBUEAIQMDQCAAIANBAnQiB2ogBSABIAMgF2pBAnRqKgIAIhWSIA8gByAJaioCACIFIAWUIgWUlCAMIA6SIBAgBZSUIA0gESAFlJQgASAHaioCACABIAMgCGtBAnRqIgcqAgAgFEMAAIA/IAWTIgWUlJIgEyAFlCAHKgIEIAdBBGsqAgCSlJIgEiAFlCAHKgIIIAdBCGsqAgCSlJKSkpI4AgAgDiEFIA0hDiAMIQ0gFSEMIANBAWoiAyACRw0ACyACIQsLIAZDAAAAAFsEQCAAIAFGDQEgACACQQJ0IgNqIAEgA2ogBCACa0ECdBALGg8LIAQgC2siBEEBSA0AIAAgC0ECdCIDaiECIAEgA2oiASAYQQJ0aioCACEOIAEgGUECdGoqAgAhBSABIBtBAnRqKgIAIQwgASAaQQJ0aioCACENQQAhAwNAIAIgA0ECdCIAaiAPIA4gASADIBdqQQJ0aioCACIGkpQgECAFIA2SlCARIAyUIAAgAWoqAgCSkpI4AgAgBSEOIAwhBSANIQwgBiENIANBAWoiAyAERw0ACwsLAwABC5sCACAARQRAQQAPCwJ/AkAgAAR/IAFB/wBNDQECQEGspgIoAgAoAgBFBEAgAUGAf3FBgL8DRg0DDAELIAFB/w9NBEAgACABQT9xQYABcjoAASAAIAFBBnZBwAFyOgAAQQIMBAsgAUGAsANPQQAgAUGAQHFBgMADRxtFBEAgACABQT9xQYABcjoAAiAAIAFBDHZB4AFyOgAAIAAgAUEGdkE/cUGAAXI6AAFBAwwECyABQYCABGtB//8/TQRAIAAgAUE/cUGAAXI6AAMgACABQRJ2QfABcjoAACAAIAFBBnZBP3FBgAFyOgACIAAgAUEMdkE/cUGAAXI6AAFBBAwECwtB6KYCQRk2AgBBfwVBAQsMAQsgACABOgAAQQELC5suAQx/IwBBEGsiDCQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB9AFNBEBBtKcCKAIAIgVBECAAQQtqQXhxIABBC0kbIghBA3YiAnYiAUEDcQRAIAFBf3NBAXEgAmoiA0EDdCIBQeSnAmooAgAiBEEIaiEAAkAgBCgCCCICIAFB3KcCaiIBRgRAQbSnAiAFQX4gA3dxNgIADAELIAIgATYCDCABIAI2AggLIAQgA0EDdCIBQQNyNgIEIAEgBGoiASABKAIEQQFyNgIEDA0LIAhBvKcCKAIAIgpNDQEgAQRAAkBBAiACdCIAQQAgAGtyIAEgAnRxIgBBACAAa3FBAWsiACAAQQx2QRBxIgJ2IgFBBXZBCHEiACACciABIAB2IgFBAnZBBHEiAHIgASAAdiIBQQF2QQJxIgByIAEgAHYiAUEBdkEBcSIAciABIAB2aiIDQQN0IgBB5KcCaigCACIEKAIIIgEgAEHcpwJqIgBGBEBBtKcCIAVBfiADd3EiBTYCAAwBCyABIAA2AgwgACABNgIICyAEQQhqIQAgBCAIQQNyNgIEIAQgCGoiAiADQQN0IgEgCGsiA0EBcjYCBCABIARqIAM2AgAgCgRAIApBA3YiAUEDdEHcpwJqIQdByKcCKAIAIQQCfyAFQQEgAXQiAXFFBEBBtKcCIAEgBXI2AgAgBwwBCyAHKAIICyEBIAcgBDYCCCABIAQ2AgwgBCAHNgIMIAQgATYCCAtByKcCIAI2AgBBvKcCIAM2AgAMDQtBuKcCKAIAIgZFDQEgBkEAIAZrcUEBayIAIABBDHZBEHEiAnYiAUEFdkEIcSIAIAJyIAEgAHYiAUECdkEEcSIAciABIAB2IgFBAXZBAnEiAHIgASAAdiIBQQF2QQFxIgByIAEgAHZqQQJ0QeSpAmooAgAiASgCBEF4cSAIayEDIAEhAgNAAkAgAigCECIARQRAIAIoAhQiAEUNAQsgACgCBEF4cSAIayICIAMgAiADSSICGyEDIAAgASACGyEBIAAhAgwBCwsgASAIaiIJIAFNDQIgASgCGCELIAEgASgCDCIERwRAIAEoAggiAEHEpwIoAgBJGiAAIAQ2AgwgBCAANgIIDAwLIAFBFGoiAigCACIARQRAIAEoAhAiAEUNBCABQRBqIQILA0AgAiEHIAAiBEEUaiICKAIAIgANACAEQRBqIQIgBCgCECIADQALIAdBADYCAAwLC0F/IQggAEG/f0sNACAAQQtqIgBBeHEhCEG4pwIoAgAiCUUNAEEfIQVBACAIayEDAkACQAJAAn8gCEH///8HTQRAIABBCHYiACAAQYD+P2pBEHZBCHEiAnQiACAAQYDgH2pBEHZBBHEiAXQiACAAQYCAD2pBEHZBAnEiAHRBD3YgASACciAAcmsiAEEBdCAIIABBFWp2QQFxckEcaiEFCyAFQQJ0QeSpAmooAgAiAkULBEBBACEADAELQQAhACAIQQBBGSAFQQF2ayAFQR9GG3QhAQNAAkAgAigCBEF4cSAIayIHIANPDQAgAiEEIAciAw0AQQAhAyACIQAMAwsgACACKAIUIgcgByACIAFBHXZBBHFqKAIQIgJGGyAAIAcbIQAgAUEBdCEBIAINAAsLIAAgBHJFBEBBAiAFdCIAQQAgAGtyIAlxIgBFDQMgAEEAIABrcUEBayIAIABBDHZBEHEiAnYiAUEFdkEIcSIAIAJyIAEgAHYiAUECdkEEcSIAciABIAB2IgFBAXZBAnEiAHIgASAAdiIBQQF2QQFxIgByIAEgAHZqQQJ0QeSpAmooAgAhAAsgAEUNAQsDQCAAKAIEQXhxIAhrIgEgA0khAiABIAMgAhshAyAAIAQgAhshBCAAKAIQIgEEfyABBSAAKAIUCyIADQALCyAERQ0AIANBvKcCKAIAIAhrTw0AIAQgCGoiBiAETQ0BIAQoAhghBSAEIAQoAgwiAUcEQCAEKAIIIgBBxKcCKAIASRogACABNgIMIAEgADYCCAwKCyAEQRRqIgIoAgAiAEUEQCAEKAIQIgBFDQQgBEEQaiECCwNAIAIhByAAIgFBFGoiAigCACIADQAgAUEQaiECIAEoAhAiAA0ACyAHQQA2AgAMCQsgCEG8pwIoAgAiAk0EQEHIpwIoAgAhAwJAIAIgCGsiAUEQTwRAQbynAiABNgIAQcinAiADIAhqIgA2AgAgACABQQFyNgIEIAIgA2ogATYCACADIAhBA3I2AgQMAQtByKcCQQA2AgBBvKcCQQA2AgAgAyACQQNyNgIEIAIgA2oiACAAKAIEQQFyNgIECyADQQhqIQAMCwsgCEHApwIoAgAiBkkEQEHApwIgBiAIayIBNgIAQcynAkHMpwIoAgAiAiAIaiIANgIAIAAgAUEBcjYCBCACIAhBA3I2AgQgAkEIaiEADAsLQQAhACAIQS9qIgkCf0GMqwIoAgAEQEGUqwIoAgAMAQtBmKsCQn83AgBBkKsCQoCggICAgAQ3AgBBjKsCIAxBDGpBcHFB2KrVqgVzNgIAQaCrAkEANgIAQfCqAkEANgIAQYAgCyIBaiIFQQAgAWsiB3EiAiAITQ0KQeyqAigCACIEBEBB5KoCKAIAIgMgAmoiASADTQ0LIAEgBEsNCwtB8KoCLQAAQQRxDQUCQAJAQcynAigCACIDBEBB9KoCIQADQCADIAAoAgAiAU8EQCABIAAoAgRqIANLDQMLIAAoAggiAA0ACwtBABARIgFBf0YNBiACIQVBkKsCKAIAIgNBAWsiACABcQRAIAIgAWsgACABakEAIANrcWohBQsgBSAITQ0GIAVB/v///wdLDQZB7KoCKAIAIgQEQEHkqgIoAgAiAyAFaiIAIANNDQcgACAESw0HCyAFEBEiACABRw0BDAgLIAUgBmsgB3EiBUH+////B0sNBSAFEBEiASAAKAIAIAAoAgRqRg0EIAEhAAsCQCAIQTBqIAVNDQAgAEF/Rg0AQZSrAigCACIBIAkgBWtqQQAgAWtxIgFB/v///wdLBEAgACEBDAgLIAEQEUF/RwRAIAEgBWohBSAAIQEMCAtBACAFaxARGgwFCyAAIgFBf0cNBgwECwALQQAhBAwHC0EAIQEMBQsgAUF/Rw0CC0HwqgJB8KoCKAIAQQRyNgIACyACQf7///8HSw0BIAIQESEBQQAQESEAIAFBf0YNASAAQX9GDQEgACABTQ0BIAAgAWsiBSAIQShqTQ0BC0HkqgJB5KoCKAIAIAVqIgA2AgBB6KoCKAIAIABJBEBB6KoCIAA2AgALAkACQAJAQcynAigCACIHBEBB9KoCIQADQCABIAAoAgAiAyAAKAIEIgJqRg0CIAAoAggiAA0ACwwCC0HEpwIoAgAiAEEAIAAgAU0bRQRAQcSnAiABNgIAC0EAIQBB+KoCIAU2AgBB9KoCIAE2AgBB1KcCQX82AgBB2KcCQYyrAigCADYCAEGAqwJBADYCAANAIABBA3QiA0HkpwJqIANB3KcCaiICNgIAIANB6KcCaiACNgIAIABBAWoiAEEgRw0AC0HApwIgBUEoayIDQXggAWtBB3FBACABQQhqQQdxGyIAayICNgIAQcynAiAAIAFqIgA2AgAgACACQQFyNgIEIAEgA2pBKDYCBEHQpwJBnKsCKAIANgIADAILIAEgB00NACAAKAIMQQhxDQAgAyAHSw0AIAAgAiAFajYCBEHMpwIgB0F4IAdrQQdxQQAgB0EIakEHcRsiAGoiAjYCAEHApwJBwKcCKAIAIAVqIgEgAGsiADYCACACIABBAXI2AgQgASAHakEoNgIEQdCnAkGcqwIoAgA2AgAMAQtBxKcCKAIAIAFLBEBBxKcCIAE2AgALIAEgBWohAkH0qgIhAAJAAkACQAJAAkACQANAIAIgACgCAEcEQCAAKAIIIgANAQwCCwsgAC0ADEEIcUUNAQtB9KoCIQADQCAHIAAoAgAiAk8EQCACIAAoAgRqIgQgB0sNAwsgACgCCCEADAALAAsgACABNgIAIAAgACgCBCAFajYCBCABQXggAWtBB3FBACABQQhqQQdxG2oiCSAIQQNyNgIEIAJBeCACa0EHcUEAIAJBCGpBB3EbaiIFIAggCWoiBmshAiAFIAdGBEBBzKcCIAY2AgBBwKcCQcCnAigCACACaiIANgIAIAYgAEEBcjYCBAwDCyAFQcinAigCAEYEQEHIpwIgBjYCAEG8pwJBvKcCKAIAIAJqIgA2AgAgBiAAQQFyNgIEIAAgBmogADYCAAwDCyAFKAIEIgBBA3FBAUYEQCAAQXhxIQcCQCAAQf8BTQRAIAUoAggiAyAAQQN2IgBBA3RB3KcCakYaIAMgBSgCDCIBRgRAQbSnAkG0pwIoAgBBfiAAd3E2AgAMAgsgAyABNgIMIAEgAzYCCAwBCyAFKAIYIQgCQCAFIAUoAgwiAUcEQCAFKAIIIgAgATYCDCABIAA2AggMAQsCQCAFQRRqIgAoAgAiAw0AIAVBEGoiACgCACIDDQBBACEBDAELA0AgACEEIAMiAUEUaiIAKAIAIgMNACABQRBqIQAgASgCECIDDQALIARBADYCAAsgCEUNAAJAIAUgBSgCHCIDQQJ0QeSpAmoiACgCAEYEQCAAIAE2AgAgAQ0BQbinAkG4pwIoAgBBfiADd3E2AgAMAgsgCEEQQRQgCCgCECAFRhtqIAE2AgAgAUUNAQsgASAINgIYIAUoAhAiAARAIAEgADYCECAAIAE2AhgLIAUoAhQiAEUNACABIAA2AhQgACABNgIYCyAFIAdqIQUgAiAHaiECCyAFIAUoAgRBfnE2AgQgBiACQQFyNgIEIAIgBmogAjYCACACQf8BTQRAIAJBA3YiAEEDdEHcpwJqIQICf0G0pwIoAgAiAUEBIAB0IgBxRQRAQbSnAiAAIAFyNgIAIAIMAQsgAigCCAshACACIAY2AgggACAGNgIMIAYgAjYCDCAGIAA2AggMAwtBHyEAIAJB////B00EQCACQQh2IgAgAEGA/j9qQRB2QQhxIgN0IgAgAEGA4B9qQRB2QQRxIgF0IgAgAEGAgA9qQRB2QQJxIgB0QQ92IAEgA3IgAHJrIgBBAXQgAiAAQRVqdkEBcXJBHGohAAsgBiAANgIcIAZCADcCECAAQQJ0QeSpAmohBAJAQbinAigCACIDQQEgAHQiAXFFBEBBuKcCIAEgA3I2AgAgBCAGNgIAIAYgBDYCGAwBCyACQQBBGSAAQQF2ayAAQR9GG3QhACAEKAIAIQEDQCABIgMoAgRBeHEgAkYNAyAAQR12IQEgAEEBdCEAIAMgAUEEcWoiBCgCECIBDQALIAQgBjYCECAGIAM2AhgLIAYgBjYCDCAGIAY2AggMAgtBwKcCIAVBKGsiA0F4IAFrQQdxQQAgAUEIakEHcRsiAGsiAjYCAEHMpwIgACABaiIANgIAIAAgAkEBcjYCBCABIANqQSg2AgRB0KcCQZyrAigCADYCACAHIARBJyAEa0EHcUEAIARBJ2tBB3EbakEvayIAIAAgB0EQakkbIgJBGzYCBCACQfyqAikCADcCECACQfSqAikCADcCCEH8qgIgAkEIajYCAEH4qgIgBTYCAEH0qgIgATYCAEGAqwJBADYCACACQRhqIQADQCAAQQc2AgQgAEEIaiEBIABBBGohACABIARJDQALIAIgB0YNAyACIAIoAgRBfnE2AgQgByACIAdrIgRBAXI2AgQgAiAENgIAIARB/wFNBEAgBEEDdiIAQQN0QdynAmohAgJ/QbSnAigCACIBQQEgAHQiAHFFBEBBtKcCIAAgAXI2AgAgAgwBCyACKAIICyEAIAIgBzYCCCAAIAc2AgwgByACNgIMIAcgADYCCAwEC0EfIQAgB0IANwIQIARB////B00EQCAEQQh2IgAgAEGA/j9qQRB2QQhxIgJ0IgAgAEGA4B9qQRB2QQRxIgF0IgAgAEGAgA9qQRB2QQJxIgB0QQ92IAEgAnIgAHJrIgBBAXQgBCAAQRVqdkEBcXJBHGohAAsgByAANgIcIABBAnRB5KkCaiEDAkBBuKcCKAIAIgJBASAAdCIBcUUEQEG4pwIgASACcjYCACADIAc2AgAgByADNgIYDAELIARBAEEZIABBAXZrIABBH0YbdCEAIAMoAgAhAQNAIAEiAigCBEF4cSAERg0EIABBHXYhASAAQQF0IQAgAiABQQRxaiIDKAIQIgENAAsgAyAHNgIQIAcgAjYCGAsgByAHNgIMIAcgBzYCCAwDCyADKAIIIgAgBjYCDCADIAY2AgggBkEANgIYIAYgAzYCDCAGIAA2AggLIAlBCGohAAwFCyACKAIIIgAgBzYCDCACIAc2AgggB0EANgIYIAcgAjYCDCAHIAA2AggLQcCnAigCACIAIAhNDQBBwKcCIAAgCGsiATYCAEHMpwJBzKcCKAIAIgIgCGoiADYCACAAIAFBAXI2AgQgAiAIQQNyNgIEIAJBCGohAAwDC0HopgJBMDYCAEEAIQAMAgsCQCAFRQ0AAkAgBCgCHCICQQJ0QeSpAmoiACgCACAERgRAIAAgATYCACABDQFBuKcCIAlBfiACd3EiCTYCAAwCCyAFQRBBFCAFKAIQIARGG2ogATYCACABRQ0BCyABIAU2AhggBCgCECIABEAgASAANgIQIAAgATYCGAsgBCgCFCIARQ0AIAEgADYCFCAAIAE2AhgLAkAgA0EPTQRAIAQgAyAIaiIAQQNyNgIEIAAgBGoiACAAKAIEQQFyNgIEDAELIAQgCEEDcjYCBCAGIANBAXI2AgQgAyAGaiADNgIAIANB/wFNBEAgA0EDdiIAQQN0QdynAmohAgJ/QbSnAigCACIBQQEgAHQiAHFFBEBBtKcCIAAgAXI2AgAgAgwBCyACKAIICyEAIAIgBjYCCCAAIAY2AgwgBiACNgIMIAYgADYCCAwBC0EfIQAgA0H///8HTQRAIANBCHYiACAAQYD+P2pBEHZBCHEiAnQiACAAQYDgH2pBEHZBBHEiAXQiACAAQYCAD2pBEHZBAnEiAHRBD3YgASACciAAcmsiAEEBdCADIABBFWp2QQFxckEcaiEACyAGIAA2AhwgBkIANwIQIABBAnRB5KkCaiECAkACQCAJQQEgAHQiAXFFBEBBuKcCIAEgCXI2AgAgAiAGNgIAIAYgAjYCGAwBCyADQQBBGSAAQQF2ayAAQR9GG3QhACACKAIAIQgDQCAIIgEoAgRBeHEgA0YNAiAAQR12IQIgAEEBdCEAIAEgAkEEcWoiAigCECIIDQALIAIgBjYCECAGIAE2AhgLIAYgBjYCDCAGIAY2AggMAQsgASgCCCIAIAY2AgwgASAGNgIIIAZBADYCGCAGIAE2AgwgBiAANgIICyAEQQhqIQAMAQsCQCALRQ0AAkAgASgCHCICQQJ0QeSpAmoiACgCACABRgRAIAAgBDYCACAEDQFBuKcCIAZBfiACd3E2AgAMAgsgC0EQQRQgCygCECABRhtqIAQ2AgAgBEUNAQsgBCALNgIYIAEoAhAiAARAIAQgADYCECAAIAQ2AhgLIAEoAhQiAEUNACAEIAA2AhQgACAENgIYCwJAIANBD00EQCABIAMgCGoiAEEDcjYCBCAAIAFqIgAgACgCBEEBcjYCBAwBCyABIAhBA3I2AgQgCSADQQFyNgIEIAMgCWogAzYCACAKBEAgCkEDdiIAQQN0QdynAmohBEHIpwIoAgAhAgJ/QQEgAHQiACAFcUUEQEG0pwIgACAFcjYCACAEDAELIAQoAggLIQAgBCACNgIIIAAgAjYCDCACIAQ2AgwgAiAANgIIC0HIpwIgCTYCAEG8pwIgAzYCAAsgAUEIaiEACyAMQRBqJAAgAAuOBgEKfyMAIg0hFSAAKAIIIRQgACgCBCEQIA0gACgCLCITIAl0Ig9BAnRBD2pBcHFrIg4kACAAKAIkQQAgCSAIG2shEUEBIAl0IhJBASAIGyENIBMgDyAIGyEIAkACQCAGQQFHDQAgB0ECRw0AIAAgASAOIAMgBCAFIBIgCiALEBkgAigCBCAQQQJtQQJ0aiAOIA9BAnQQCCEDQQAhCSANQQBMDQEgAEFAayEBA0AgASADIAlBAnRqIAIoAgAgCCAJbEECdGogACgCPCAQIBEgDRAYIAlBAWoiCSANRw0AC0EAIQkgDUEATA0BA0AgASAOIAlBAnRqIAIoAgQgCCAJbEECdGogACgCPCAQIBEgDRAYIAlBAWoiCSANRw0ACwwBCyAGQQJGQQAgB0EBRhtFBEAgB0EBIAdBAUobIQcgAEFAayETQQAhBgNAIAAgASAGIA9sQQJ0aiAOIAMgBiAUbEECdGogBCAFIBIgCiALEBkgDUEBTgRAIAIgBkECdGohFkEAIQkDQCATIA4gCUECdGogFigCACAIIAlsQQJ0aiAAKAI8IBAgESANEBggCUEBaiIJIA1HDQALCyAGQQFqIgYgB0cNAAsMAQsgAigCACEGIAAgASAOIAMgBCAFIBIgCiALEBkgACABIA9BAnRqIAYgEEECbUECdGoiASADIBRBAnRqIAQgBSASIAogCxAZAkAgD0EBSA0AQQAhCSAPQQFHBEAgD0F+cSEGA0AgDiAJQQJ0IgNqIgQgBCoCAEMAAAA/lCABIANqKgIAQwAAAD+UkjgCACAOIANBBHIiA2oiBCAEKgIAQwAAAD+UIAEgA2oqAgBDAAAAP5SSOAIAIAlBAmohCSAGQQJrIgYNAAsLIA9BAXFFDQAgDiAJQQJ0IgNqIgQgBCoCAEMAAAA/lCABIANqKgIAQwAAAD+UkjgCAAtBACEJIA1BAEwNACAAQUBrIQEDQCABIA4gCUECdGogAigCACAIIAlsQQJ0aiAAKAI8IBAgESANEBggCUEBaiIJIA1HDQALCyAVJAAL6AYCEH8EfSMAIgchDQJAIANBAkcNACAEQQFHDQAgBioCBCEXIAYqAgAhGCACQQFOBEAgACgCBCEDIAAoAgAhACAFKgIAIRlBACEHA0AgAyAHQQJ0IgRqKgIAIRogASAHQQN0IgVqIBggACAEaioCAENgQqINkpIiGEMAAAA4lDgCACABIAVBBHJqIBcgGkNgQqINkpIiF0MAAAA4lDgCACAZIBeUIRcgGSAYlCEYIAdBAWoiByACRw0ACwsgBiAXOAIEIAYgGDgCACANJAAPCyADQQEgA0EBShshEiACQX5xIQ4gAkEBcSEPIAJBAWshECACIARtIgxBfnEhEyAMQQFxIRQgByACQQJ0QQ9qQXBxayIJJAAgBSoCACEYA0AgASARQQJ0IgVqIQogACAFaigCACEIIAUgBmoiFSoCACEXAkAgBEEBTARAIAJBAUgNAUEAIQcgDiEFIBAEQANAIAogAyAHbEECdGogFyAIIAdBAnRqKgIAQ2BCog2SkiIXQwAAADiUOAIAIAogB0EBciILIANsQQJ0aiAYIBeUIAggC0ECdGoqAgBDYEKiDZKSIhdDAAAAOJQ4AgAgGCAXlCEXIAdBAmohByAFQQJrIgUNAAsLIA9FDQEgCiADIAdsQQJ0aiAXIAggB0ECdGoqAgBDYEKiDZKSIhdDAAAAOJQ4AgAgGCAXlCEXDAELQQEhFiACQQFIDQBBACEHIA4hBSAQBEADQCAJIAdBAnQiC2ogFyAIIAtqKgIAQ2BCog2SkiIXOAIAIAkgC0EEciILaiAYIBeUIAggC2oqAgBDYEKiDZKSIhc4AgAgGCAXlCEXIAdBAmohByAFQQJrIgUNAAsLIA9FDQAgCSAHQQJ0IgVqIBcgBSAIaioCAENgQqINkpIiFzgCACAYIBeUIRcLIBUgFzgCAAJAIBZFDQAgDEEBSA0AQQAhByATIQUgDEEBRwRAA0AgCiADIAdsQQJ0aiAJIAQgB2xBAnRqKgIAQwAAADiUOAIAIAogB0EBciIIIANsQQJ0aiAJIAQgCGxBAnRqKgIAQwAAADiUOAIAIAdBAmohByAFQQJrIgUNAAsLIBRFDQAgCiADIAdsQQJ0aiAJIAQgB2xBAnRqKgIAQwAAADiUOAIACyARQQFqIhEgEkcNAAsgDSQAC78SAhZ/HH0jAEEgayIOJAAgACgCCCEFIA5BATYCACAAQQxqIQRBASEGA0AgBCADIgJBAnQiB0ECcmovAQAhDCAOIAJBAWoiA0ECdGogBiAEIAdqLgEAbCIGNgIAIAxBAUcNAAsgBUEAIAVBAEobIRMgA0ECdCAAai4BCiESIABBDGohFgJAA0AgEiEFAn8gAiIMRQRAIBYhAkEBDAELIAAgDEECdGoiA0EMaiECIAMuAQoLIRICQAJAAkACQAJAIAIuAQBBAmsOBAACAQMECyAFQQRHDQUgDiAMQQJ0aigCACIFQQFIDQNBASEDIAEhAgNAIAIgAioCACIaIAIqAiAiGJM4AiAgAiAYIBqSOAIAIAIgAkEkaioCACIaIAIqAgQiGJI4AgQgAiAYIBqTOAIkIAIgAioCCCIaIAIqAigiGCACQSxqKgIAIhmSQ/MENT+UIhuTOAIoIAIgAkEMaioCACIcIBkgGJND8wQ1P5QiGJM4AiwgAiAaIBuSOAIIIAIgGCAckjgCDCACKgIwIRogAiACKgIQIhggAkE0aioCACIZkzgCMCACIBogAkEUaioCACIbkjgCNCACIBsgGpM4AhQgAiAZIBiSOAIQIAIgAioCGCIaIAJBPGoqAgAiGCACKgI4IhmTQ/MENT+UIhuTOAI4IAIgAkEcaioCACIcIBggGZJD8wQ1v5QiGJM4AjwgAiAYIBySOAIcIAIgGiAbkjgCGCADIAVGDQQgAkFAayECIANBAWohAwwACwALIA4gDEECdGooAgAhBiAFQQFGBEAgBkEBSA0DQQEhAyABIQIDQCACIAIqAgAiGiACKgIQIhiSIhkgAioCCCIbIAIqAhgiHJIiHZM4AhAgAiAZIB2SOAIAIAJBFGogAioCBCIZIAIqAhQiHZIiICACQQxqKgIAIiMgAkEcaioCACIekiIhkzgCACACIBkgHZMiGSAbIByTIhuSOAIcIAIgGiAYkyIaICMgHpMiGJM4AhggAiAZIBuTOAIMIAIgGiAYkjgCCCACICAgIZI4AgQgAyAGRg0EIAJBIGohAiADQQFqIQMMAAsACyAGQQFIDQIgBiATdCIRQQNsIRQgEUEBdCEVIAVBA2whDyAFQQF0IRcgACgCMCEDQQAhCgNAAkAgBUEBSA0AIAEgCiASbEEDdGohAkEBIQsgAyIEIQggBCEHA0AgAioCACEaIAIgF0EDdGoiCSAIKgIAIhggCSoCBCIZlCAJKgIAIhsgCCoCBCIclJIiHSACKgIEIiCSIiMgByoCACIeIAIgBUEDdGoiDSoCBCIhlCANKgIAIh8gByoCBCIilJIiJiAEKgIAIiQgAiAPQQN0aiIQKgIEIiWUIBAqAgAiJyAEKgIEIiiUkiIpkiIqkzgCBCAJIBogGyAYlCAZIByUkyIYkiIZIB8gHpQgISAilJMiGyAnICSUICUgKJSTIhySIh6TOAIAIAIgKiAjkjgCBCACIBkgHpI4AgAgDSAgIB2TIhkgGyAckyIbkzgCBCANIBogGJMiGiAmICmTIhiSOAIAIBAgGSAbkjgCBCAQIBogGJM4AgAgBSALRg0BIAJBCGohAiAEIBRBA3RqIQQgCCAVQQN0aiEIIAcgEUEDdGohByALQQFqIQsMAAsACyAKQQFqIgogBkcNAAsMAgsgDiAMQQJ0aigCACIJQQFIDQEgBUEBdCEQIAkgE3QiDUEBdCERIAAoAjAiAyAFIA1sQQN0aioCBCEaQQAhCwNAIAEgCyASbEEDdGohAiADIgchBiAFIQgDQCACIAVBA3RqIgQgAioCACAEKgIAIhggBioCACIZlCAEKgIEIhsgBioCBCIclJMiHSACIBBBA3RqIgoqAgAiICAHKgIAIiOUIAoqAgQiHiAHKgIEIiGUkyIfkiIiQwAAAD+UkzgCACAEIAIqAgQgGSAblCAYIByUkiIYICMgHpQgICAhlJIiGZIiG0MAAAA/lJM4AgQgAiAiIAIqAgCSOAIAIAIgGyACKgIEkjgCBCAKIBogGCAZk5QiGCAEKgIAkjgCACAKIAQqAgQgGiAdIB+TlCIZkzgCBCAEIAQqAgAgGJM4AgAgBCAZIAQqAgSSOAIEIAJBCGohAiAHIBFBA3RqIQcgBiANQQN0aiEGIAhBAWsiCA0ACyALQQFqIgsgCUcNAAsMAQsgDiAMQQJ0aigCACINQQFIDQAgBUECdCEQIAVBA2whESAFQQF0IRQgACgCMCIIIA0gE3QiFSAFbCICQQR0aiIDKgIEIRogAyoCACEYIAggAkEDdGoiAioCBCEZIAIqAgAhG0EAIQoDQCAFQQFOBEAgASAKIBJsQQN0aiICIAVBA3RqIQMgAiAUQQN0aiEHIAIgEUEDdGohBiACIBBBA3RqIQRBACELA0AgAioCACEcIAIgAioCBCIdIAggCyAVbCIJQQR0aiIPKgIAIh4gByoCBCIhlCAHKgIAIh8gDyoCBCIilJIiJiAIIAlBGGxqIg8qAgAiJCAGKgIEIiWUIAYqAgAiJyAPKgIEIiiUkiIpkiIgIAggCUEDdGoiDyoCACIqIAMqAgQiK5QgAyoCACIsIA8qAgQiLZSSIi4gCCAJQQV0aiIJKgIAIi8gBCoCBCIwlCAEKgIAIjEgCSoCBCIylJIiM5IiI5KSOAIEIAIgHCAfIB6UICEgIpSTIh8gJyAklCAlICiUkyIikiIeICwgKpQgKyAtlJMiJCAxIC+UIDAgMpSTIiWSIiGSkjgCACADIBogHyAikyIflCAZICQgJZMiIpSSIiQgHSAYICCUIBsgI5SSkiIlkjgCBCADIBwgGCAelCAbICGUkpIiJyAaICYgKZMiJpQgGSAuIDOTIiiUkiIpkzgCACAEICUgJJM4AgQgBCApICeSOAIAIAcgGiAilCAZIB+UkyIfIB0gGyAglCAYICOUkpIiHZI4AgQgByAZICaUIBogKJSTIiAgHCAbIB6UIBggIZSSkiIckjgCACAGIB0gH5M4AgQgBiAcICCTOAIAIARBCGohBCAGQQhqIQYgB0EIaiEHIANBCGohAyACQQhqIQIgC0EBaiILIAVHDQALCyAKQQFqIgogDUcNAAsLIAxBAWshAiAMQQBKDQALIA5BIGokAA8LQaiKAkGYigJBzAAQBgAL5gcCC38PfSAEQQFOBEACQCAEQQRIDQAgA0EDTgRAIANBA2shDCAEQQNrIQ0gA0EDRiEOIANBfHEiCEEBciADTiELIAhBAnIgA04hDwNAIAEgCUECdCIKaiIFQQxqIQYgBSoCCCEQIAUqAgQhGSAFKgIAIRpDAAAAACEVAkAgDgRAQwAAAAAhEkMAAAAAIRNDAAAAACEUIBkhFyAQIRhDAAAAACERIBohFiAAIQUMAQtDAAAAACEUQQQhB0MAAAAAIRNDAAAAACESIAAhBQNAIBQgBSoCACIbIAYqAgAiEZSSIAUqAgQiHCAGKgIEIhaUkiAFKgIIIh0gBioCCCIXlJIgBSoCDCIeIAYqAgwiGJSSIRQgEyAQIBuUkiARIByUkiAWIB2UkiAXIB6UkiETIBIgGSAblJIgECAclJIgESAdlJIgFiAelJIhEiAVIBogG5SSIBkgHJSSIBAgHZSSIBEgHpSSIRUgBkEQaiEGIAVBEGohBSAHIAxODQEgB0EEaiEHIBYhGiAYIRAgFyEZDAALAAsCfyADIAhMBEAgBSEHIAYMAQsgBUEEaiEHIBQgBSoCACIQIAYqAgAiEZSSIRQgEyAYIBCUkiETIBIgFyAQlJIhEiAVIBYgEJSSIRUgBkEEagshBQJ/IAsEQCAFIQYgBwwBCyAFQQRqIQYgFCAHKgIAIhAgBSoCACIWlJIhFCATIBEgEJSSIRMgEiAYIBCUkiESIBUgFyAQlJIhFSAHQQRqCyEFIAIgCmogDwR9IBUFIBQgBSoCACIQIAYqAgCUkiEUIBMgFiAQlJIhEyASIBEgEJSSIRIgFSAYIBCUkgs4AgAgAiAKQQRyaiASOAIAIAIgCkEIcmogEzgCACACIApBDHJqIBQ4AgAgCUEEaiIJIA1IDQALDAELQfCJAkGJigJBxQAQBgALIAQgCUoEQCADQXxxIQUgA0EDcSEKIANBAUghDSADQQFrQQNJIQ4DQCAJQQJ0IQwCQCANBEBDAAAAACERDAELIAEgDGohCEEAIQZDAAAAACERIAUhAyAORQRAA0AgESAAIAZBAnQiB2oqAgAgByAIaioCAJSSIAAgB0EEciILaioCACAIIAtqKgIAlJIgACAHQQhyIgtqKgIAIAggC2oqAgCUkiAAIAdBDHIiB2oqAgAgByAIaioCAJSSIREgBkEEaiEGIANBBGsiAw0ACwsgCiIHRQ0AA0AgESAAIAZBAnQiA2oqAgAgAyAIaioCAJSSIREgBkEBaiEGIAdBAWsiBw0ACwsgAiAMaiAROAIAIAlBAWoiCSAERw0ACwsPC0GtiQJBy4kCQfsBEAYAC4sDAgR/AX0jACIFIQggBUGAIGsiBSQAIANBf0oEQAJ/IAMEQCAFIABBgCAQCCEFA0AgBSAGQQJ0IgdqIAAgB2oqAgAgAiAHaioCACIKlDgCACAFIAZBf3NBgAhqQQJ0IgdqIAogACAHaioCAJQ4AgAgBkEBaiIGIANHDQALIAUhAAsgAAsgACABQYAIIARrIgMgBEEBahAxQQAhBiAEQQBOBEBBACAEayEFIAAgA0ECdGohBwNAQwAAAAAhCgJAIAYiAiADaiIGQYAITg0AIAQgAmtBAXEEQCAAIAZBAnRqKgIAIAcqAgCUQwAAAACSIQogBkEBaiEGCyACQX9zIAVGDQADQCAKIAAgBkECdGoqAgAgACAGIAJrQQJ0aioCAJSSIAAgBkEBaiIJQQJ0aioCACAAIAkgAmtBAnRqKgIAlJIhCiAGQQJqIgZBgAhHDQALCyABIAJBAnRqIgYgCiAGKgIAkjgCACACQQFqIQYgAiAERw0ACwsgCCQADwtB6IgCQaWIAkGRAhAGAAvQAwIJfQF/IAFBDGohDCABKgIIIQkgASoCBCEKIAEqAgAhBAJ/IAIqAgwhBSACKgIIIQYgAioCBCEHIAIqAgAhCEEEIQEDQCACIAAqAgAiAyAMKgIAIguUIAWSIgU4AgwgAiAJIAOUIAaSIgY4AgggAiAKIAOUIAeSIgc4AgQgAiAEIAOUIAiSIgg4AgAgAiAFIAAqAgQiAyAMKgIEIgSUkiIFOAIMIAIgBiALIAOUkiIGOAIIIAIgByAJIAOUkiIHOAIEIAIgCCAKIAOUkiIIOAIAIAIgBSAAKgIIIgMgDCoCCCIKlJIiBTgCDCACIAYgBCADlJIiBjgCCCACIAcgCyADlJIiBzgCBCACIAggCSADlJIiCDgCACACIAUgACoCDCIDIAwqAgwiCZSSIgU4AgwgAiAGIAogA5SSIgY4AgggAiAHIAQgA5SSIgc4AgQgAiAIIAsgA5SSIgg4AgAgDEEQaiEMIABBEGohACABQRVIBEAgAUEEaiEBDAELC0EACwRAIAwqAgAhCyACIAQgACoCACIElCACKgIAkjgCACACIAogBJQgAioCBJI4AgQgAiAJIASUIAIqAgiSOAIIIAIgBCALlCACKgIMkjgCDAsLrAQCBH0GfyABKgIAIQYgAEEAIAJBAnQQCSEHAkAgASoCAEMAAAAAWw0AIAJBACACQQBKGyEMA0AgCiIAIAxGDQEgAEEBaiEKAkAgAEUEQEMAAAAAIQMMAQsgAEEBcSEJAkAgAEEBRgRAQwAAAAAhA0EAIQIMAQsgAEF+cSEIQwAAAAAhA0EAIQIDQCADIAcgAkECdGoqAgAgASAAIAJrQQJ0aioCAJSSIAcgAkEBciILQQJ0aioCACABIAAgC2tBAnRqKgIAlJIhAyACQQJqIQIgCEECayIIDQALCyAJRQ0AIAMgByACQQJ0aioCACABIAAgAmtBAnRqKgIAlJIhAwsgByAAQQJ0aiADIAEgCkECdGoqAgCSjCAGlSIDOAIAAkAgAEUNAEEAIQIgCkEBdiIIQQFHBEAgCEH+////B3EhCANAIAcgAkECdCIJaiILIAsqAgAiBCADIAcgACACQX9zakECdGoiCyoCACIFlJI4AgAgCyAFIAMgBJSSOAIAIAcgCUEEcmoiCSAJKgIAIgQgAyAAIAJrQQJ0IAdqQQhrIgkqAgAiBZSSOAIAIAkgBSADIASUkjgCACACQQJqIQIgCEECayIIDQALCyAKQQJxRQ0AIAcgAkECdGoiCCAIKgIAIgQgAyAHIAAgAkF/c2pBAnRqIgAqAgAiBZSSOAIAIAAgBSADIASUkjgCAAsgBiAGIAMgA5SUkyIGIAEqAgBDbxKDOpRdRQ0ACwsLrh8CB30MfyAAKAIkIRkgACgCHCESIAAoAhAhFiAAKAIAIRtBASEVAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAUoAgAiEyAAKAIIIh0oAjggACgCDCIYQQF0ai4BACAIQQN0aiIIa0EgayIUIAhBAXVBcEF8IARBAkYgCUEAR3EiCBtqIARBAXRBfkF/IAgbaiIIbCATaiAIbSIIIAggFEobIghBwAAgCEHAAEgbIghBBE4EQCAIQQdxQQF0QeCHAmouAQBBDiAIQQN2a3VBAWpBfnEiFUGBAk4NAQsgFUEBIBYgGEobIBUgCRshFAJAAkACQCAbBEACfyAAKAIsGgJAAkAgCQRAIARBAUgNASAEQQFxIRMCQCAEQQFGBEBDfR2QJiEQQ30dkCYhDgwBCyAEQX5xIRVDfR2QJiEQQ30dkCYhDgNAIA4gAiAXQQJ0IghqKgIAIhEgAyAIaioCACIPkyILIAuUkiACIAhBBHIiCGoqAgAiDSADIAhqKgIAIgyTIgsgC5SSIQ4gECARIA+SIgsgC5SSIA0gDJIiCyALlJIhECAXQQJqIRcgFUECayIVDQALCyATRQ0CIBAgAiAXQQJ0IghqKgIAIg0gAyAIaioCACIMkiILIAuUkiEQIA4gDSAMkyILIAuUkiEODAILIARBAUgNACAEQQNxIRUCQCAEQQFrIghBA0kEQAwBCyAEQXxxIRMDQCAOIAIgF0ECdCIWaioCACILIAuUkiACIBZBBHJqKgIAIgsgC5SSIAIgFkEIcmoqAgAiCyALlJIgAiAWQQxyaioCACILIAuUkiEOIBdBBGohFyATQQRrIhMNAAsLIBUEQANAIA4gAiAXQQJ0aioCACILIAuUkiEOIBdBAWohFyAVQQFrIhUNAAsLIARBA3EhFwJAIAhBA0kEQEEAIRMMAQsgBEF8cSEVQQAhEwNAIAwgAyATQQJ0IghqKgIAIgsgC5SSIAMgCEEEcmoqAgAiCyALlJIgAyAIQQhyaioCACILIAuUkiADIAhBDHJqKgIAIgsgC5SSIQwgE0EEaiETIBVBBGsiFQ0ACwsgFwRAA0AgDCADIBNBAnRqKgIAIgsgC5SSIQwgE0EBaiETIBdBAWsiFw0ACwsgDkN9HZAmkiEQIAxDfR2QJpIhDgwBC0N9HZAmIQ5DfR2QJiEQCwJ9QwAAAAAgDpEiDCAMlCIPIBCRIgsgC5QiDZJD75KTIV0NABpD2w/JPyAMIAuUIA8gDUMF+Nw+lJKUIA8gDUMhsS0/lJIgDyANQ2UJsD2UkpSVkyANIA9dDQAaIAwgC5QgDSAPQwX43D6UkpQgDSAPQyGxLT+UkiANIA9DZQmwPZSSlJVD2w/JP5JD2w/Jv5ILQ4f5IkaUQwAAAD+SjiILi0MAAABPXQRAIAuoDAELQYCAgIB4CyEIIBIQDyEcIBRBAUYNAwJ/AkAgCQRAIAAoAjAiAA0BIAggFGxBgEBrQQ51DAILAkAgFCAIIBRsIhZBgEBrIhNBDnUiCEwEQCAIIQAMAQsgACgCOEUEQCAIIQAMAQsgFkGAwABIBEAgCCEADAELIBNBgIB/cSAUIgBuQRB0IhNBDXUgE0EQdWxBgIACakEQdSIWIBZBjntsQYCAAWpBD3VB1cAAamxBAXRBgICK7wFrQRB1IBZsQYCAAWpBD3YgFmtBEHRBgICAgHhrQRB1IhpnIhdBgICAgAQgE2siE0ENdSATQRB1bEGAgAJqQRB1IhMgE0GOe2xBgIABakEPdUHVwABqbEEBdEGAgIrvAWtBEHUgE2xBgIABakEPdiATa0EQdEGAgICAeGtBEHUiFWciFmtBC3QgGiAXQRFrdEEQdEEQdSITQdtrbEGAgAFqQQ91Qfw9aiATbEGAgAFqQQ92ayAVIBZBEWt0QRB0QRB1IhNB22tsQYCAAWpBD3VB/D1qIBNsQYCAAWpBD3ZqQRB0QRB1IARBF3RBgICABGtBEHVsQYCAAWpBD3UiFiAFKAIAIhNKDQBBACAIIBZBACATa0gbIQALIAdBAkgNAwwJCyAAQX9zQR92QQAgCCAUbEH//wFBgYB+IAhBgMAAShsgFG1qIgBBDnUgAEEASBsiACAUQQFrIAAgFEgbagshACAEQQJMDQcgEiAUQQJtIhZBA2xBA2oiEyAWQX9zaiAAaiAAQQNsIgggACAWSiIHGyATIBZrIABqIAhBA2ogBxsgEyAWahAcDAgLIBIQDyEcIBRBAUYNBAJAIARBA0gNACAJRQ0AIBICfyASIBRBAm0iFUEBaiIAQQNsIhYgFWoiExBCIgcgFkgEQCAHQQNtDAELIAcgAEEBdGsLIgAgFiAVQX9zamogAEEDbCIIIAAgFUoiBxsgFiAVayAAaiAIQQNqIAcbIBMQJQwIC0EAIAdBAUwgCRsNASASIBRBAWoQFiEADAcLIBQgAGsiF0EBaiIVIABBAWoiFiAAIBRBAXUiB0oiExshCCAHQQFqIgcgB2whGiASIBMEfyAaIBUgF0ECamxBAXVrBSAAIBZsQQF1CyIHIAcgCGogGhAcDAYLIBICfyASIBRBAXUiAEEBaiIDIANsIgcQQiICIAAgA2xBAXVIBEAgAkEDdEEBchA3QQFrQQF2IgBBAWoiCSAAbEEBdgwBCyAHIBRBAWoiACAAQQF0IAcgAkF/c2pBA3RBAXIQN2tBAXYiAGsiCSAUIABrQQJqbEEBdWsLIgIgAiAJaiAHECUgAEEOdCAUbiEIDAgLIAlFDQdBACEHAkAgCEGBwABIDQAgACgCNA0AQQEhByAEQQFIDQAgBEEDcSEIQQAhCSAEQQFrQQNPBEAgBEF8cSETA0AgAyAJQQJ0IhZqIhQgFCoCAIw4AgAgAyAWQQRyaiIUIBQqAgCMOAIAIAMgFkEIcmoiFCAUKgIAjDgCACADIBZBDHJqIhQgFCoCAIw4AgAgCUEEaiEJIBNBBGsiEw0ACwsgCEUNAANAIAMgCUECdGoiByAHKgIAjDgCAEEBIQcgCUEBaiEJIAhBAWsiCA0ACwsgBEEBSA0CIBkgHSgCCCAYakECdGoqAgAiCyAZIBhBAnRqKgIAIgwgDJRDfR2QJpIgCyALlJKRQ30dkCaSIguVIQ0gDCALlSELQQAhCSAEQQFHBEAgBEF+cSEVA0AgAiAJQQJ0IhRqIgggCyAIKgIAlCANIAMgFGoqAgCUkjgCACACIBRBBHIiFGoiCCALIAgqAgCUIA0gAyAUaioCAJSSOAIAIAlBAmohCSAVQQJrIhUNAAsLIARBAXFFDQIgAiAJQQJ0IgRqIgIgCyACKgIAlCANIAMgBGoqAgCUkjgCAAwCC0HwhwJB14UCQZ0FEAYAC0EAIQcgCUUNAwtBAAJ/QQAgBSgCAEERSA0AGkEAIAAoAiBBEUgNABogGwRAIBIoAhwiAiACQQJ2IgNrIQICQCAHRQRAIAIhAwwBCyASIBIoAiAgAmo2AiALIBIgAzYCHCADQYCAgARNBEAgEigCICEJA0ACQCAJQRd2IgRB/wFHBEAgCUEfdiEIIBIoAigiAkEATgRAIBIgEigCBCASKAIYIgMgEigCCGpLBH8gEiADQQFqNgIYIBIoAgAgA2ogAiAIajoAAEEABUF/CyASKAIscjYCLAsgEigCJCIJBEAgCEEBayECA0BBfyEDIBIgEigCBCASKAIYIgggEigCCGpLBH8gEiAIQQFqNgIYIBIoAgAgCGogAjoAAEEAIQMgEigCJAUgCQtBAWsiCTYCJCASIBIoAiwgA3I2AiwgCQ0ACwsgEiAEQf8BcTYCKCASKAIcIQMgEigCICEJDAELIBIgEigCJEEBajYCJAsgEiADQQh0IgM2AhwgEiAJQQh0QYD+//8HcSIJNgIgIBIgEigCFEEIajYCFCADQYGAgARJDQALCyAHDAELIBJBAhAKCyAAKAI0GyEHDAILIBIgACAUQQFqED4LIABBf0wNASAAQQ50IgAgFG4hCCAJRQ0CIBtFDQIgACAUSQRAIARBAUgEQEEAIQcMAgsgGSAdKAIIIBhqQQJ0aioCACILIBkgGEECdGoqAgAiDCAMlEN9HZAmkiALIAuUkpFDfR2QJpIiC5UhDSAMIAuVIQsgBEEBcSEUQQAhB0EAIQAgBEEBRwRAIARBfnEhBANAIAIgAEECdCIJaiIIIAsgCCoCAJQgDSADIAlqKgIAlJI4AgAgAiAJQQRyIglqIgggCyAIKgIAlCANIAMgCWoqAgCUkjgCACAAQQJqIQAgBEECayIEDQALCyAURQ0BIAIgAEECdCIEaiIAIAsgACoCAJQgDSADIARqKgIAlJI4AgAMAQsgBEEBSA0CQQAhACAEQQFHBEAgBEF+cSEVA0AgAiAAQQJ0IglqIgcgByoCAEPzBDU/lCIMIAMgCWoiByoCAEPzBDU/lCILkjgCACAHIAsgDJM4AgAgAiAJQQRyIglqIgcgByoCAEPzBDU/lCIMIAMgCWoiByoCAEPzBDU/lCILkjgCACAHIAsgDJM4AgAgAEECaiEAIBVBAmsiFQ0ACwsgBEEBcUUNAiACIABBAnQiB2oiACAAKgIAQ/MENT+UIgwgAyAHaiIAKgIAQ/MENT+UIguSOAIAIAAgCyAMkzgCAAwCCyASEA8hACAFIAUoAgAgACAcayIVazYCAAwCC0G4hwJB14UCQcYGEAYACyASEA8hACAFIAUoAgAgACAcayIVazYCAEGAgAEhAyAIQYCAAUYNASAIDQIgCCEHCyAKIAooAgBBfyAGdEF/c3E2AgBBgIB/IQlB//8BIQJBACEDQQAhAAwCCyAKIAooAgBBfyAGdEF/cyAGdHE2AgBB//8BIQBBACEHQQAhAkGAgAEhCQwBCyAIQRB0IgBBDXUgAEEQdWxBgIACakEQdSICIAJBjntsQYCAAWpBD3VB1cAAamxBAXRBgICK7wFrQRB1IAJsQYCAAWpBD3YgAmtBEHRBgICAgHhrQRB1IgJnIgNBgICAgAQgAGsiAEENdSAAQRB1bEGAgAJqQRB1IgAgAEGOe2xBgIABakEPdUHVwABqbEEBdEGAgIrvAWtBEHUgAGxBgIABakEPdiAAa0EQdEGAgICAeGtBEHUiAGciBWtBC3QgAiADQRFrdEEQdEEQdSIDQdtrbEGAgAFqQQ91Qfw9aiADbEGAgAFqQQ92ayAAIAVBEWt0QRB0QRB1IgNB22tsQYCAAWpBD3VB/D1qIANsQYCAAWpBD3ZqQRB0QRB1IARBF3RBgICABGtBEHVsQYCAAWpBD3UhCUEAIQcgCCEDCyABIBU2AhQgASADNgIQIAEgCTYCDCABIAA2AgggASACNgIEIAEgBzYCAAvgAwEKfyMAIgUhCyAFIAEgAmwiDEECdEEPakFwcWsiBiQAIAJBAEoEQAJAIANFBEAgAUF+cSEIIAFBAXEhCUEAIQMDQAJAIAFBAUgNACABIANsIQdBACEEIAghBSABQQFHBEADQCAGIAQgB2pBAnRqIAAgAiAEbCADakECdGoqAgA4AgAgBiAEQQFyIgogB2pBAnRqIAAgAiAKbCADakECdGoqAgA4AgAgBEECaiEEIAVBAmsiBQ0ACwsgCUUNACAGIAQgB2pBAnRqIAAgAiAEbCADakECdGoqAgA4AgALIANBAWoiAyACRw0ACwwBCyABQX5xIQggAUEBcSEJIAJBAnRBuIYCaiEKQQAhAwNAAkAgAUEBSA0AIAogA0ECdGooAgAgAWwhB0EAIQQgCCEFIAFBAUcEQANAIAYgBCAHakECdGogACACIARsIANqQQJ0aioCADgCACAGIAcgBEEBciINakECdGogACACIA1sIANqQQJ0aioCADgCACAEQQJqIQQgBUECayIFDQALCyAJRQ0AIAYgBCAHakECdGogACACIARsIANqQQJ0aioCADgCAAsgA0EBaiIDIAJHDQALCyAAIAYgDEECdBAIGiALJAAPC0GghgJB14UCQc8EEAYAC1oBBH9BAUEfIABna0EBdSICdCEDA0AgAEEAIARBAXQgA2ogAnQiASAAIAFJIgEbayEAQQAgAyABGyAEaiEEIAJBAEohASADQQF2IQMgAkEBayECIAENAAsgBAuFGQMUfwR8AX4jAEEQayIDJAACfCAAvUIgiKdB/////wdxIgJB+8Ok/wNNBEBEAAAAAAAA8D8gAkGewZryA0kNARogAEQAAAAAAAAAABAjDAELIAAgAKEgAkGAgMD/B08NABojAEEwayIIJAACQAJAAkAgAL0iGUIgiKciAkH/////B3EiBEH61L2ABE0EQCACQf//P3FB+8MkRg0BIARB/LKLgARNBEAgGUIAWQRAIAMgAEQAAEBU+yH5v6AiAEQxY2IaYbTQvaAiFTkDACADIAAgFaFEMWNiGmG00L2gOQMIQQEhAgwFCyADIABEAABAVPsh+T+gIgBEMWNiGmG00D2gIhU5AwAgAyAAIBWhRDFjYhphtNA9oDkDCEF/IQIMBAsgGUIAWQRAIAMgAEQAAEBU+yEJwKAiAEQxY2IaYbTgvaAiFTkDACADIAAgFaFEMWNiGmG04L2gOQMIQQIhAgwECyADIABEAABAVPshCUCgIgBEMWNiGmG04D2gIhU5AwAgAyAAIBWhRDFjYhphtOA9oDkDCEF+IQIMAwsgBEG7jPGABE0EQCAEQbz714AETQRAIARB/LLLgARGDQIgGUIAWQRAIAMgAEQAADB/fNkSwKAiAETKlJOnkQ7pvaAiFTkDACADIAAgFaFEypSTp5EO6b2gOQMIQQMhAgwFCyADIABEAAAwf3zZEkCgIgBEypSTp5EO6T2gIhU5AwAgAyAAIBWhRMqUk6eRDuk9oDkDCEF9IQIMBAsgBEH7w+SABEYNASAZQgBZBEAgAyAARAAAQFT7IRnAoCIARDFjYhphtPC9oCIVOQMAIAMgACAVoUQxY2IaYbTwvaA5AwhBBCECDAQLIAMgAEQAAEBU+yEZQKAiAEQxY2IaYbTwPaAiFTkDACADIAAgFaFEMWNiGmG08D2gOQMIQXwhAgwDCyAEQfrD5IkESw0BCyADIAAgAESDyMltMF/kP6JEAAAAAAAAOEOgRAAAAAAAADjDoCIXRAAAQFT7Ifm/oqAiACAXRDFjYhphtNA9oiIYoSIWOQMAIARBFHYiASAWvUI0iKdB/w9xa0ERSCEEAn8gF5lEAAAAAAAA4EFjBEAgF6oMAQtBgICAgHgLIQICQCAEDQAgAyAAIBdEAABgGmG00D2iIhahIhUgF0RzcAMuihmjO6IgACAVoSAWoaEiGKEiFjkDACABIBa9QjSIp0H/D3FrQTJIBEAgFSEADAELIAMgFSAXRAAAAC6KGaM7oiIWoSIAIBdEwUkgJZqDezmiIBUgAKEgFqGhIhihIhY5AwALIAMgACAWoSAYoTkDCAwBCyAEQYCAwP8HTwRAIAMgACAAoSIAOQMAIAMgADkDCEEAIQIMAQsgGUL/////////B4NCgICAgICAgLDBAIS/IRYgCEEQaiECIAhBEGpBCHIhAUEBIQcDQCACAn8gFplEAAAAAAAA4EFjBEAgFqoMAQtBgICAgHgLtyIAOQMAIBYgAKFEAAAAAAAAcEGiIRYgBwRAQQAhByABIQIMAQsLIAggFjkDICAIQRBqIQ4gBEEUdkGWCGshBAJ/IBZEAAAAAAAAAABhBEBBASECA0AgAiIBQQFrIQIgCEEQaiABQQN0aisDAEQAAAAAAAAAAGENAAsgAUEBagwBC0EDCyEMIwBBsARrIgYkACAEIARBA2tBGG0iAkEAIAJBAEobIg9BaGxqIQRBhMQBKAIAIgogDEEBayIJakEATgRAIAogDGohAiAPIAlrIQEDQCAGQcACaiAFQQN0aiABQQBIBHxEAAAAAAAAAAAFIAFBAnRBkMQBaigCALcLOQMAIAFBAWohASAFQQFqIgUgAkcNAAsLIARBGGshByAKQQAgCkEAShshBUEAIQIDQEQAAAAAAAAAACEAIAxBAEoEQCACIAlqIQtBACEBA0AgACAOIAFBA3RqKwMAIAZBwAJqIAsgAWtBA3RqKwMAoqAhACABQQFqIgEgDEcNAAsLIAYgAkEDdGogADkDACACIAVGIQEgAkEBaiECIAFFDQALQS8gBGshEUEwIARrIRAgBEEZayESIAohAgJAA0AgBiACQQN0aisDACEAQQAhASACIQUgAkEBSCINRQRAA0AgBkHgA2ogAUECdGoCfyAAAn8gAEQAAAAAAABwPqIiAJlEAAAAAAAA4EFjBEAgAKoMAQtBgICAgHgLtyIARAAAAAAAAHDBoqAiFZlEAAAAAAAA4EFjBEAgFaoMAQtBgICAgHgLNgIAIAYgBUEBayIFQQN0aisDACAAoCEAIAFBAWoiASACRw0ACwsCfyAAIAcQFSIAIABEAAAAAAAAwD+inEQAAAAAAAAgwKKgIgCZRAAAAAAAAOBBYwRAIACqDAELQYCAgIB4CyEJIAAgCbehIQACQAJAAkACfyAHQQFIIhNFBEAgAkECdCAGaiIBIAEoAtwDIgEgASAQdSIBIBB0ayIFNgLcAyABIAlqIQkgBSARdQwBCyAHDQEgAkECdCAGaigC3ANBF3ULIgtBAUgNAgwBC0ECIQsgAEQAAAAAAADgP2YNAEEAIQsMAQsCQCANBEBBACEFDAELQQAhAUEBIQ0DQCAGQeADaiABQQJ0aiIUKAIAIQUCfyAUIA0Ef0EAIAVFDQEaQYCAgAggBWsFQf///wcgBWsLNgIAQQELIQUgAUEBaiIBIAJGDQEgBUUhDQwACwALAkAgEw0AAkACQCASDgIAAQILIAJBAnQgBmoiASABKALcA0H///8DcTYC3AMMAQsgAkECdCAGaiIBIAEoAtwDQf///wFxNgLcAwsgCUEBaiEJIAtBAkcNAEQAAAAAAADwPyAAoSEAQQIhCyAFRQ0AIABEAAAAAAAA8D8gBxAVoSEACyAARAAAAAAAAAAAYQRAQQAhBQJAIAIiASAKTA0AA0AgBkHgA2ogAUEBayIBQQJ0aigCACAFciEFIAEgCkoNAAsgBUUNACAHIQQDQCAEQRhrIQQgBkHgA2ogAkEBayICQQJ0aigCAEUNAAsMAwtBASEBA0AgASIFQQFqIQEgBkHgA2ogCiAFa0ECdGooAgBFDQALIAIgBWohBQNAIAZBwAJqIAIgDGoiCUEDdGogAkEBaiICIA9qQQJ0QZDEAWooAgC3OQMAQQAhAUQAAAAAAAAAACEAIAxBAU4EQANAIAAgDiABQQN0aisDACAGQcACaiAJIAFrQQN0aisDAKKgIQAgAUEBaiIBIAxHDQALCyAGIAJBA3RqIAA5AwAgAiAFSA0ACyAFIQIMAQsLAkAgAEEYIARrEBUiAEQAAAAAAABwQWYEQCAGQeADaiACQQJ0agJ/IAACfyAARAAAAAAAAHA+oiIAmUQAAAAAAADgQWMEQCAAqgwBC0GAgICAeAsiAbdEAAAAAAAAcMGioCIAmUQAAAAAAADgQWMEQCAAqgwBC0GAgICAeAs2AgAgAkEBaiECDAELAn8gAJlEAAAAAAAA4EFjBEAgAKoMAQtBgICAgHgLIQEgByEECyAGQeADaiACQQJ0aiABNgIAC0QAAAAAAADwPyAEEBUhAAJAIAJBf0wNACACIQEDQCAGIAFBA3RqIAAgBkHgA2ogAUECdGooAgC3ojkDACAARAAAAAAAAHA+oiEAIAFBAEohBCABQQFrIQEgBA0ACyACQX9MDQAgAiEBA0AgAiABIgRrIQdEAAAAAAAAAAAhAEEAIQEDQAJAIAAgAUEDdEHg2QFqKwMAIAYgASAEakEDdGorAwCioCEAIAEgCk4NACABIAdJIQUgAUEBaiEBIAUNAQsLIAZBoAFqIAdBA3RqIAA5AwAgBEEBayEBIARBAEoNAAsLRAAAAAAAAAAAIQAgAkEATgRAIAIhAQNAIAAgBkGgAWogAUEDdGorAwCgIQAgAUEASiEEIAFBAWshASAEDQALCyAIIACaIAAgCxs5AwAgBisDoAEgAKEhAEEBIQEgAkEBTgRAA0AgACAGQaABaiABQQN0aisDAKAhACABIAJHIQQgAUEBaiEBIAQNAAsLIAggAJogACALGzkDCCAGQbAEaiQAIAlBB3EhAiAIKwMAIQAgGUJ/VwRAIAMgAJo5AwAgAyAIKwMImjkDCEEAIAJrIQIMAQsgAyAAOQMAIAMgCCsDCDkDCAsgCEEwaiQAAkACQAJAAkAgAkEDcQ4DAAECAwsgAysDACADKwMIECMMAwsgAysDACADKwMIEDmaDAILIAMrAwAgAysDCBAjmgwBCyADKwMAIAMrAwgQOQshACADQRBqJAAgAAt7AQJ8IAAgAKIiAiACIAKioiACRHzVz1o62eU9okTrnCuK5uVavqCiIAIgAkR9/rFX4x3HPqJE1WHBGaABKr+gokSm+BARERGBP6CgIQMgACACIAFEAAAAAAAA4D+iIAIgAKIiACADoqGiIAGhIABESVVVVVVVxT+ioKEL2gIBB38gCEEBIAhBAUobIQsCQCABIAJOIgwNACAGIAhIDQAgASEKA0ACQCAEIApBAnQiCWoiDSgCAEEHSg0AIAUgCWooAgANAEEAIQkDQCAHQQEQDSEOIAMgACgCCCAJbCAKakECdGoiDyAPKgIAIA6yQwAAAL+SQQFBDSANKAIAa3SylEMAAIA4lJI4AgAgCUEBaiIJIAtHDQALIAYgC2shBgsgCkEBaiIKIAJODQEgBiAITg0ACwsCQCAMDQAgBiAISA0AA0ACQCAEIAFBAnQiCmoiDCgCAEEHSg0AQQAhCSAFIApqKAIAQQFHDQADQCAHQQEQDSEKIAMgACgCCCAJbCABakECdGoiDSANKgIAIAqyQwAAAL+SQQFBDSAMKAIAa3SylEMAAIA4lJI4AgAgCUEBaiIJIAtHDQALIAYgC2shBgsgAUEBaiIBIAJODQEgBiAITg0ACwsLMQEBfyAAECYaIABBqCFqECYhASAAQdjCAGpBADYCACAAQgA3AtBCIABBADYC5EIgAQu1TQErfyMAQZABayINJAAgACgCmBIhGSANQQA2AogBAkACQCAZQQFrQcACSQRAAkACQAJAAkAgBA4DAQIAAgsgACAAKALUEkECdGpB9BJqKAIAQQFHDQELIA0gGUEPakHw////B3FBAXRrIh0kACAAIAEgACgC1BIgBCAFED8gASAdIABBzRVqIiYsAAAgAEHOFWosAAAgACgCmBIQPUEAIQQjAEFAaiIaJAAgDUEQaiEKIABBsBVqIQggAEGIEmohEyAFQQJGIQsgACgClBIiB0EBTgRAA0AgEwJ/IAQgC3JFBEAgCCwAACIFIBMsAABBEGsiASABIAVIGwwBCyAEIAhqLAAAQQRrIgYgEywAACIFQQhqIgFKBEAgBSAGQQF0IAFragwBCyAFIAZqCyIBQQAgAUEYdEEYdUEAShsiAUE/IAFBGHRBGHVBP0gbIgE6AAAgCiAEQQJ0agJ/QQAgAUH/AXEiAUEdbCABQfE4bEEQdmpBqhBqIgZBAEkNABpB/////wcgBkH+HksNABogBkH/AHEhFEEBIAZBB3YiAXQhBSAGQf8PTQR/IBRBgAEgFGtsQdJ+bEEQdSAUaiABdEEHdQUgFEGAASAUa2xB0n5sQRB1IBRqIAVBB3ZsCyAFags2AgAgBEEBaiIEIAdHDQALCyAaQSBqIQcgACgCrBUhEyMAQdAAayIfJAAgH0EgaiAfQUBrIBMgAEG4FWoiCCwAABBAAkAgEy8BAiIBQRB0QRB1IhBBAUgiCw0AIBMuAQQhBgNAIB8gAUEBayIEQQF0aiABIAhqLAAAIgpBCnQiBUHmAGsgBUHmAHIgCkEfdXEgCkEAShsiBUEQdSAGbCAfQUBrIARqLQAAIAlBEHVsQQh1aiAFQf7/A3EgBmxBEHVqIgU7AQAgAUECSA0BIAVBEHQhCSAEIQEMAAsACyALRQRAIAgsAAAgEGwiASATKAIIaiELIBMoAgwgAUEBdGohBUEAIQEDQCAHIAFBAXQiBGogBCAfai4BAEEOdCAEIAVqLgEAbSABIAtqLQAAQQd0aiIEQQAgBEEAShsiBEH//wEgBEH//wFIGzsBACABQQFqIgEgEy4BAiIQSA0ACwsgEEECayEkIBBBAWsiCkF+cSEFIApBAXEhJSATKAIkIhggEEEBdGohESAHIgQgCkEBdGohISAQQQJIIRwCQANAIAQuAQAiDyAYLgEAIh5rIQECQCAcBEBBACEVDAELQQAhFUEBIQYgBSEHICQEQANAIA9BEHQhCSAEIAZBAWoiFEEBdCITai4BACIPIAQgBkEBdCIIai4BACILIBMgGGouAQBqayITIAsgCCAYai4BACAJQRB1amsiCyABIAEgC0oiCBsiASABIBNKIgsbIQEgFCAGIBUgCBsgCxshFSAGQQJqIQYgB0ECayIHDQALCyAlRQ0AIAQgBkEBdCIHai4BACAPIAcgGGouAQBqayIHIAEgASAHSiIHGyEBIAYgFSAHGyEVC0GAgAIgES4BACIIICEuAQBqayIHIAEgASAHSiIBG0F/Sg0BAkAgECAVIAEbIglFBEAgBCAeOwEADAELIAkgEEcEQAJAIAlBAUgEQEEAIR4MAQsgCUEBRg0AIAlBAWsiAUEDcSEVQQEhBiAJQQJrQQNPBEAgAUF8cSEHA0AgHiAYIAZBAXRqIgEuAQBqIAEuAQJqIAEuAQRqIAEuAQZqIR4gBkEEaiEGIAdBBGsiBw0ACwsgFUUNAANAIB4gGCAGQQF0ai4BAGohHiAGQQFqIQYgFUEBayIVDQALCyAeIBggCUEBdCIHaiITLgEAQQF1IhRqIQtBgIACIQECQCAJIBBODQBBgIACIAhrIQEgCSAKTg0AIAohBiAJQX9zIBBqQQNxIhUEQANAIAEgGCAGQQF0ai4BAGshASAGQQFrIQYgFUEBayIVDQALCyAkIAlrQQNJDQADQCABIBggBkEBdGoiAS4BACABQQJrLgEAaiABQQRrLgEAaiABQQZrLgEAamshASAGQQRrIgYgCUoNAAsLIAQgB2oiCC4BACAEIAlBAWtBAXRqIgYuAQBqIgdBAXUgB0EBcWohCQJAIAEgFGsiByALSARAIAkgCyIBSg0BIAcgCSAHIAlKGyEBDAELIAciASAJSA0AIAsgCSAJIAtIGyEBCyAGIAEgFGsiATsBACAIIAEgEy8BAGo7AQAMAQsgIUGAgH4gCGs7AQALIBJBAWoiEkEURw0ACyAEIQdBASEBAkAgEEEBTgRAIBBBAUcEQANAIAcgAUEBdGouAQAhBiABIQQCfwNAIAcgBEEBdGogByAEQQFrIgVBAXRqLgEAIgsgBkwNARogByAEQQF0aiALOwEAIARBAUohCyAFIQQgCw0ACyAHCyAGOwEAIAFBAWoiASAQRw0ACwsMAQtBtcMAQanDAEGQARAGAAsgByAHLgEAIgQgGC4BACIBIAEgBEgbIgE7AQAgEEECSCILRQRAQQEhBgNAIAcgBkEBdCIFaiIEIAQuAQAiBCAFIBhqLgEAIAFBEHRBEHVqIgFB//8BIAFB//8BSBsiAUGAgH4gAUGAgH5KGyIBIAEgBEgbIgE7AQAgBkEBaiIGIBBHDQALCyAhICEuAQAiBEGAgAIgES4BAGsiASABIARKGyIVOwEAIAsNACAQQQJrIQYgCkEBcQRAIAcgBkEBdGoiASABLgEAIgQgFUEQdEEQdSAQQQF0IBhqQQJrLgEAayIBIAEgBEobIhU7AQAgEEEDayEGCyAkRQ0AA0AgByAGQQF0IgFqIgogCi4BACIEIBVBEHRBEHUgASAYaiILLgECayIBIAEgBEobIgU7AQAgCkECayIBIAEuAQAiBCAFQRB0QRB1IAsuAQBrIgEgASAEShsiFTsBACAGQQFKIQEgBkECayEGIAENAAsLIB9B0ABqJAAgDUFAayILIBpBIGogACgCpBIgACgCyCAQKCANQSBqIQYCQAJAIAAoAsgSQQFGBEAgAEEEOgDPFQwBCyAALADPFSIKQQNKDQACQCAAKAKkEiIIQQFIDQBBACEBIAhBAUcEQCAIQX5xIQkgAEGoEmohBwNAIBogAUEBdCIFaiAFIAdqLgEAIgQgGkEgaiAFai4BACAEayAKbEECdmo7AQAgGiAFQQJyIgVqIAUgB2ouAQAiBCAaQSBqIAVqLgEAIARrIApsQQJ2ajsBACABQQJqIQEgCUECayIJDQALCyAIQQFxRQ0AIBogAUEBdCIEaiAAIARqQagSai4BACIBIBpBIGogBGouAQAgAWsgCmxBAnZqOwEACyAGIBogCCAAKALIIBAoDAELIAYgCyAAKAKkEkEBdBAIGgsgAEGoEmogGkEgaiAAKAKkEiIBQQF0EAgaIAAoAsAgBEAgBiABQdLwAxAnIAsgACgCpBJB0vADECcLIA0CfyAAQc0Vai0AAEECRgRAIABByhVqLgEAIQQgAEHMFWosAAAhBSAAKAKUEiELAkAgACgCjBIiAUEIRgRAQYDEACEHQQshEAJAAkAgC0ECaw4DAQADAAtBuMUAQevFAEE2EAYAC0HNwwAhB0EDIRAMAQtBsMQAIQdBIiEQAkACQCALQQJrDgMBAAIAC0G4xQBB68UAQT8QBgALQeDDACEHQQwhEAsgBCABQRB0IgFBD3UiBmohBCABQRB1QRJsIQpBACEJA0AgDSAJQQJ0aiIBIAQgByAJIBBsIAVqaiwAAGoiCDYCACABAn8gBiAKSgRAIAYgBiAISA0BGiAKIAggCCAKSBsMAQsgCiAIIApKDQAaIAYgCCAGIAhKGws2AgAgCUEBaiIJIAtHDQALIAAoApQSIgVBAU4EQCAAQdAVaiwAAEECdEGgOmooAgAhBEEAIQEDQCANIAFBCmxqIgsgBCAAIAFqQbQVaiwAAEEFbGoiBywAAEEHdDsBYCALIAcsAAFBB3Q7AWIgCyAHLAACQQd0OwFkIAsgBywAA0EHdDsBZiALIAcsAARBB3Q7AWggAUEBaiIBIAVHDQALCyAAQdEVaiwAAEEBdEHINGouAQAMAQsgDUEAIAAoApQSQQJ0EAlB4ABqQQAgACgClBJBCmwQCRogAEHQFWpBADoAAEEACzYCiAEgGkFAayQAIwBBIGsiASEuIAEkACABIAAoAqASQQF0QQ9qQXBxayIsIgEkACABIAAoApgSIgcgACgCoBIiImpBAnRBD2pBcHFrIiciASQAIAEgACgCnBJBAnQiBEEPakFwcWsiLyIBJAAgASAEQc8AakFwcWsiDiQAIABBzRVqLAAAIQ8gAEHPFWosAAAhBSAHQQFOBEAgD0EBdEF8cUHANGogAEHOFWosAABBAXRqLgEAQQR0IQQgAEHSFWosAAAhAQNAIAAgG0ECdGoiCyAdIBtBAXRqLgEAIgpBDnQiDDYCBCABQbWIzt0AbEHrxuWwA2ohBwJAIAsgCkEBTgR/IAxBgAprBSAKQX9KDQEgDEGACnILIgw2AgQLIAtBACAEIAxqIgFrIAEgB0EASBs2AgQgByAKaiEBIBtBAWoiGyAAKAKYEkgNAAsgACgCoBIhIgsgAiELIA4gACkChAo3AgAgDiAAQbwKaikCADcCOCAOIABBtApqKQIANwIwIA4gAEGsCmopAgA3AiggDiAAQaQKaikCADcCICAOIABBnApqKQIANwIYIA4gAEGUCmopAgA3AhAgDiAAQYwKaikCADcCCAJAAkACQAJAIAAoApQSQQFIDQAgAEEEaiEtIAVBA0ohJSACIQcDQCAuIA0gI0EEdEFgcWpBIGoiEyAAKAKkEkEBdBAIIRJBACANICNBAnRqIhQoAhAiESARIBFBH3UiAWogAXMiCmciCEEBa3QiBkH//wNxQf////8BIAZBEHUiBW0iBEEQdCIBQRB1IhxsQRB1IAUgHGxqQQN0ayIFIARBD3VBAWpBAXVsIAFqIAVBEHUgHGxqIAVB+P8DcSAcbEEQdWohCQJ/IApB//8HTQRAQf////8HIAhBD2siBXYiBEGAgICAeCAFdSIBIAkgASAJShsgBCAJSBsgBXQMAQsgCUEPIAhrdQshBEGAgAQhASAAKAIAIgUgEUcEQCAFIAUgBUEfdSIBaiABc2ciCkEBa3QiASABQRB1IBxsIAFB//8DcSAcbEEQdWoiBawgBqx+Qh2Ip0F4cWsiAUEQdSAcbCAFaiABQf//A3EgHGxBEHVqIQYCfyAKIAhrQR1qIgFBD0wEQEH/////B0EQIAFrIgp2IgVBgICAgHggCnUiASAGIAEgBkobIAUgBkgbIAp0DAELIAYgAUEQa3VBACABQTBIGwsiAUH//wNxIQggAUEQdSEGQQAhDANAIA4gDEECdGoiBSAFKAIAIgpBEHRBEHUiBSAIbEEQdSAFIAZsaiAKQQ91QQFqQQF1IAFsajYCACAMQQFqIgxBEEcNAAsLICNBCmwgDWohCSAAIBE2AgACfwJAAkAgACgCwCBFDQAgACgCxCBBAkcNACAjQQFLDQAgD0H/AXFBAkYNACAJQgA3AWAgCUEAOwFoIAlBgCA7AWQgFCAAKAKEEiIPNgIADAELIA9B/wFxQQJHBEAgACgCnBIhKCAtDAILIBQoAgAhDwsCQAJAICMEQCAjQQJHDQEgJQ0BCyAAKAKgEiIbIA8gACgCpBIiBWprIgFBAkwNBSAjQQJGBEAgACAbQQF0akHECmogCyAAKAKcEkECdBAIGiAAKAKgEiEbIAAoAqQSIQULICwgAUECayIBQQF0aiAAIAAoApwSICNsIAFqQQF0akHECmogEyAbIAFrIAUQSiAjRQRAIA0uAYgBIgEgBEH//wNxbEEQdSABIARBEHVsakECdCEECyAPQX9IDQEgBEH//wNxIQggBEEQdSEGIA9BAXEhBSAAKAKgEiEKAkAgD0F/RgRAQQAhDAwBCyAPQQJqQX5xIQRBACEMA0AgJyAiIAxBf3MiAWpBAnRqIAggLCABIApqQQF0ai4BACIBbEEQdSABIAZsajYCACAnICJBfiAMayIBakECdGogCCAsIAEgCmpBAXRqLgEAIgFsQRB1IAEgBmxqNgIAIAxBAmohDCAEQQJrIgQNAAsLIAVFDQEgJyAiIAxBf3MiAWpBAnRqIAggLCABIApqQQF0ai4BACIBbEEQdSABIAZsajYCAAwBCyABQYCABEYNACAPQX9IDQAgAUH//wNxIQggAUEQdSEGIA9BAWohCkEAIQwDQCAnICIgDEF/c2pBAnRqIgQgBCgCACIFQRB0QRB1IgQgCGxBEHUgBCAGbGogBUEPdUEBakEBdSABbGo2AgAgCiAMRiEEIAxBAWohDCAERQ0ACwsgACgCnBIiKEEBTgRAICIgD2tBAnQgJ2pBCGohDCAJLgFoIQggCS4BZiEGIAkuAWQhCiAJLgFiIQUgCS4BYCEEQQAhGwNAIC8gG0ECdCIBaiABIC1qKAIAIAwoAgAiAUEQdSAEbCABQf//A3EgBGxBEHVqIAxBBGsoAgAiAUEQdSAFbGogAUH//wNxIAVsQRB1aiAMQQhrKAIAIgFBEHUgCmxqIAFB//8DcSAKbEEQdWogDEEMaygCACIBQRB1IAZsaiABQf//A3EgBmxBEHVqIAxBEGsoAgAiAUEQdSAIbGogAUH//wNxIAhsQRB1akEBdGpBBGoiATYCACAnICJBAnRqIAFBAXQ2AgAgIkEBaiEiIAxBBGohDCAbQQFqIhsgKEcNAAsLIC8LIRwgKEEBTgRAAkAgACgCpBIiMEEKaw4HAAUFBQUFAAULIBFBCnRBEHUhFiARQRV1QQFqQQF1IQkgEi4BHiEXIBIuARwhICASLgEaISkgEi4BGCEqIBIuARYhKyASLgEUIRAgEi4BEiEVIBIuARAhGCASLgEOIRogEi4BDCEeIBIuAQohHyASLgEIISEgEi4BBiEkIBIuAQQhDyASLgECIR0gEi4BACESIDBBAXYhFCAOKAIcIQUgDigCJCEBIA4oAiwhBCAOKAI0IQogDigCPCEMQQAhGwNAIAxBEHUgEmwgFGogDEH//wNxIBJsQRB1aiAbQQJ0IhMgDmoiESgCOCIGQRB1IB1saiAGQf//A3EgHWxBEHVqIApBEHUgD2xqIApB//8DcSAPbEEQdWogESgCMCIKQRB1ICRsaiAKQf//A3EgJGxBEHVqIARBEHUgIWxqIARB//8DcSAhbEEQdWogESgCKCIEQRB1IB9saiAEQf//A3EgH2xBEHVqIAFBEHUgHmxqIAFB//8DcSAebEEQdWogESgCICIBQRB1IBpsaiABQf//A3EgGmxBEHVqIAVBEHUgGGxqIAVB//8DcSAYbEEQdWogESgCGCIFQRB1IBVsaiAFQf//A3EgFWxBEHVqIQUgDiAbQRBqQQJ0agJ/An8gMEEQRgRAIAUgESgCFCIIQRB1IBBsaiAIQf//A3EgEGxBEHVqIBEoAhAiBUEQdSArbGogBUH//wNxICtsQRB1aiARKAIMIgVBEHUgKmxqIAVB//8DcSAqbEEQdWogESgCCCIFQRB1IClsaiAFQf//A3EgKWxBEHVqIBEoAgQiBUEQdSAgbGogBUH//wNxICBsQRB1aiARKAIAIgVBEHUgF2xqIAVB//8DcSAXbEEQdWohBQsgBQtBgICAQCAFQYCAgEBKGyIFQf///z8gBUH///8/SBtBBHQiESATIBxqKAIAIghqIgVBAE4EQCAFQYCAgIB4IAggEXFBf0obDAELQf////8HIAUgCCARckF/ShsLIgw2AgAgByAbQQF0akH//wFBgIB+IAxBEHUgFmwgCSAMbGogDEH//wNxIBZsQRB1aiIFQQd2QQFqQQF2IAVBgP//e0gbIAVB//7/A0obOwEAIAEhBSAEIQEgCiEEIAYhCiAbQQFqIhsgKEcNAAsLIA4gDiAoQQJ0IgFqIgQpAgA3AgAgDiAEKQI4NwI4IA4gBCkCMDcCMCAOIAQpAig3AiggDiAEKQIgNwIgIA4gBCkCGDcCGCAOIAQpAhA3AhAgDiAEKQIINwIIICNBAWoiIyAAKAKUEk4NASABIC1qIS0gByAoQQF0aiEHIAAtAM0VIQ8MAAsACyAAQYQKaiIBIA4pAgA3AgAgASAOKQI4NwI4IAEgDikCMDcCMCABIA4pAig3AiggASAOKQIgNwIgIAEgDikCGDcCGCABIA4pAhA3AhAgASAOKQIINwIIIC5BIGokAAwCC0H/xQBBn8YAQZABEAYAC0GyxgBBn8YAQccBEAYACyAAIA0gAkEAEEkgAEEANgLAICAAICYsAAAiATYCxCAgAUEDTw0DIABBADYCyBIMAQsgACANIAJBARBJCyAAKAKgEiIEIAAoApgSIgVIDQIgAEHECmoiASABIAVBAXRqIAQgBWtBAXQiARALIAFqIAIgACgCmBJBAXQQCBpBACEFQQAhBiMAQSBrIhIhFiASJAAgACgCjBIiCyAAQbwgaigCAEcEQEH//wEgACgCpBIiAUEBam0hBAJAIAFBAUgNACABQQNxIQcCQCABQQFrQQNJDQAgAUF8cSEPIABB1B9qIQggBCEBA0AgCCAFQQF0IgpqIAE7AQAgCCAKQQJyaiABIARqIgE7AQAgCCAKQQRyaiABIARqIgE7AQAgCCAKQQZyaiABIARqIgY7AQAgBUEEaiEFIA9BBGsiD0UNASAEIAZqIQEMAAsACyAHRQ0AA0AgACAFQQF0akHUH2ogBCAGaiIGOwEAIAVBAWohBSAHQQFrIgcNAAsLIAAgCzYCvCAgAEG0IGpCgICAgICQnhg3AgALIA0hCiACIQsCQAJAIAAoAsAgRQRAAkAgACgCxCANAAJAIAAoAqQSIgdBAUgNAEEAIQUgB0EBRwRAIAdBfnEhBiAAQdQfaiENIABBqBJqIQQDQCANIAVBAXQiAmoiASABLgEAIgEgAiAEai4BACABayIBQf//A3FB3P8AbEEQdiABQRB2Qdz/AGxqajsBACANIAJBAnIiAmoiASABLgEAIgEgAiAEai4BACABayIBQf//A3FB3P8AbEEQdiABQRB2Qdz/AGxqajsBACAFQQJqIQUgBkECayIGDQALCyAHQQFxRQ0AIAAgBUEBdGoiAkHUH2oiASABLgEAIgEgAkGoEmouAQAgAWsiAUH//wNxQdz/AGxBEHYgAUEQdkHc/wBsamo7AQALIABB1BVqIRECQCAAKAKUEiIPQQFIBEBBACEGDAELIA9BA3EhAQJAIA9BAWtBA0kEQEEAIQVBACEGQQAhCAwBCyAPQXxxIQdBACEFIApBEGohHUEAIQZBACEIA0AgHSAFQQNyIiZBAnRqKAIAIiUgHSAFQQJyIhxBAnRqKAIAIgkgHSAFQQFyIhRBAnRqKAIAIgQgHSAFQQJ0aigCACICIAggAiAISiITGyICIAIgBEgiDRsiAiACIAlIIgQbIgIgAiAlSCICGyEIICYgHCAUIAUgBiATGyANGyAEGyACGyEGIAVBBGohBSAHQQRrIgcNAAsLIAFFDQADQCAKIAVBAnRqKAIQIgIgCCACIAhKIgIbIQggBSAGIAIbIQYgBUEBaiEFIAFBAWsiAQ0ACwsgACAAKAKcEiIBQQJ0akHUFWogESAPQQJ0QQRrIAFsEAsaIBEgACAAKAKcEiIBIAZsQQJ0akEEaiABQQJ0EAgaIAAoApQSIgRBAUgNACAAKAK0ICEFQQAhCANAIAAgBSAKIAhBAnRqIgIoAhAgBWsiAUEQdUGaJGxqIAFB//8DcUGaJGxBEHZqIgU2ArQgIAIoAhAiASAFQRB1QbzqfmwgBWogBUH//wNxQbzqfmxBEHVqSARAIAAgATYCtCAgASEFCyAIQQFqIgggBEcNAAsLIAAoAsAgRQ0BCyASIBlBAnRBzwBqQXBxayIXJAAgAEGYIWooAgAiBEEQdEEQdSICIABBhCFqLwEAIgFsQRB1IAIgAUEQdCIBQR91bGogBEEPdUEBakEBdSABQRB1bGoiBUEQdSEEAn8gBUH///8ATEEAIABBtCBqKAIAIg1BgYCABEgbRQRAQQAgDUEQdSIBIAFsIAQgBGxBBXRrIgVBAUgNARoCQEEYIAVnIgJrIgFFDQAgBUH/AE0EQCAFIAJBGGt0IAVBOCACa3ZyIQUMAQsgBSACQQhqdCAFIAF2ciEFCyAFQf8AcUGAgNQGbEEQdkGAgARyQYCAAkGG6QIgAkEBcRsgAkEBdnZsQYCAfHEMAQtBACANQRB0QRB1IgIgDUEQdWwgBUEQdEEQdSIBIAVB//8DcWxBEHUgASAEbGogBUEPdUEBakEBdiAFbGpBBXRrIAIgDUH//wNxbEEQdWogDUEPdUEBakEBdSANbGoiBUEBSA0AGgJAQRggBWciAmsiAUUNACAFQf8ATQRAIAUgAkEYa3QgBUE4IAJrdnIhBQwBCyAFIAJBCGp0IAUgAXZyIQULQYCAAkGG6QIgAkEBcRsgAkEBdnYiASAFQf8AcUGAgNQGbEEQdmxBEHYgAWpBCHQLIRMgF0FAayEUQf8BIQgDQCAIIgJBAXYhCCACIBlKDQALIABBuCBqKAIAIQYCQCAZQQFIDQAgGUEBcSENAkAgGUEBRgRAQQAhCAwBCyAZQX5xIQFBACEIIABB1BVqIQcDQCAUIAhBAnQiBWogByAGQbWIzt0AbEHrxuWwA2oiBEEYdiACcUECdGooAgA2AgAgFCAFQQRyaiAHIARBtYjO3QBsQevG5bADaiIGQRh2IAJxQQJ0aigCADYCACAIQQJqIQggAUECayIBDQALCyANRQ0AIBQgCEECdGogACAGQbWIzt0AbEHrxuWwA2oiBkEYdiACcUECdGpB1BVqKAIANgIACyAAIAY2ArggIBYgAEHUH2ogACgCpBIgACgCyCAQKCAXIABBrCBqKQIANwI4IBcgAEGkIGopAgA3AjAgFyAAQZwgaikCADcCKCAXIABBlCBqKQIANwIgIBcgAEGMIGopAgA3AhggFyAAQYQgaikCADcCECAXIABB/B9qKQIANwIIIBcgAEH0H2oiICkCADcCAAJAAkAgACgCpBIiKUEKaw4HAQAAAAAAAQALQfkPQbwQQZkBEAYACyAZQQFOBEAgKUEBdiEUIBNBCnRBEHUhKiATQRV1QQFqQQF1IRMgFi4BHiErIBYuARwhECAWLgEaIRUgFi4BGCEYIBYuARYhGiAWLgEUIR4gFi4BEiEfIBYuARAhISAWLgEOISQgFi4BDCEPIBYuAQohHSAWLgEIIRIgFi4BBiERIBYuAQQhJiAWLgECISUgFi4BACEcIBcoAhwhByAXKAIkIQYgFygCLCECIBcoAjQhASAXKAI8IQVBACEIA0AgBUEQdSAcbCAUaiAFQf//A3EgHGxBEHVqIAhBAnQgF2oiCSgCOCINQRB1ICVsaiANQf//A3EgJWxBEHVqIAFBEHUgJmxqIAFB//8DcSAmbEEQdWogCSgCMCIEQRB1IBFsaiAEQf//A3EgEWxBEHVqIAJBEHUgEmxqIAJB//8DcSASbEEQdWogCSgCKCICQRB1IB1saiACQf//A3EgHWxBEHVqIAZBEHUgD2xqIAZB//8DcSAPbEEQdWogCSgCICIBQRB1ICRsaiABQf//A3EgJGxBEHVqIAdBEHUgIWxqIAdB//8DcSAhbEEQdWogCSgCGCIFQRB1IB9saiAFQf//A3EgH2xBEHVqIQcCfwJ/IClBEEYEQCAHIAkoAhQiBUEQdSAebGogBUH//wNxIB5sQRB1aiAJKAIQIgVBEHUgGmxqIAVB//8DcSAabEEQdWogCSgCDCIFQRB1IBhsaiAFQf//A3EgGGxBEHVqIAkoAggiBUEQdSAVbGogBUH//wNxIBVsQRB1aiAJKAIEIgVBEHUgEGxqIAVB//8DcSAQbEEQdWogCSgCACIFQRB1ICtsaiAFQf//A3EgK2xBEHVqIQcLIAcLQYCAgEAgB0GAgIBAShsiBUH///8/IAVB////P0gbQQR0IgkgFyAIQRBqQQJ0aiIHKAIAIgZqIgVBAE4EQCAFQYCAgIB4IAYgCXFBf0obDAELQf////8HIAUgBiAJckF/ShsLIQUgByAFNgIAIAsgCEEBdGoiByAHLgEAQf//AUGAgH4gBUEQdSAqbCAFIBNsaiAFQf//A3EgKmxBEHVqIgdBB3VBAWpBAXUgB0GA//97SBsgB0H//v8DShtqIgdBgIB+IAdBgIB+ShsiB0H//wEgB0H//wFIGzsBACABIQcgAiEGIAQhAiANIQEgCEEBaiIIIBlHDQALCyAgIBcgGUECdGoiASkCADcCACAgIAEpAjg3AjggICABKQIwNwIwICAgASkCKDcCKCAgIAEpAiA3AiAgICABKQIYNwIYICAgASkCEDcCECAgIAEpAgg3AggMAQsgAEH0H2pBACAAKAKkEkECdBAJGgsgFkEgaiQAIwBBEGsiBSQAAkAgACgCwCAEQCAAQYghaiAAQYwhaiALIBkQHSAAQfwgakEBNgIADAELAkAgAEH8IGooAgBFDQAgBUEIaiAFQQxqIAsgGRAdAkAgBSgCDCIEIABBjCFqKAIAIgJKBEAgAEGIIWoiASABKAIAIAQgAmt1NgIADAELIAIgBEwNACAFIAUoAgggAiAEa3U2AggLIAUoAggiBCAAQYghaigCACIBTA0AIAAgASABZyICQQFrdCIBNgKIIUEAIQZBACEIIAEgBEEZIAJrIgFBACABQQBKG3UiAUEBIAFBAUobbSIBQQFOBEACQEEYIAFnIgRrIgJFDQAgAUH/AE0EQCABIARBGGt0IAFBOCAEa3ZyIQEMAQsgASAEQQhqdCABIAJ2ciEBC0GAgAJBhukCIARBAXEbIARBAXZ2IgIgAUH/AHFBgIDUBmxBEHZsQRB2IAJqQQR0IQgLQYCABCAIayAZbSEBIBlBAUgNACABQQJ0IQIDQCALIAZBAXRqIgEgAS4BACIBIAhB/P8DcWxBEHYgCEEQdiABbGo7AQAgAiAIaiIIQYCABEoNASAGQQFqIgYgGUgNAAsLIABBADYC/CALIAVBEGokACAAIAAoApQSQQJ0IApqQQRrKAIANgKEEiADIBk2AgAgCkGQAWokAEEADwtB9cYAQabHAEE6EAYAC0G6xwBBpscAQd4AEAYAC0GFyABBpscAQeoAEAYAC8IMAQp/IwBBoAFrIgskAEEIIQwgACACQQF1QQlsQcA8akEIEAchBQJAAkAgBCAEQXBxSgRAIARB+ABGDQFB6sIAQZTDAEE7EAYACyAEQRBIDQEgBEEEdSEMCyAFQRJsQYA7aiEHA0AgCyAGQQJ0IghqIgpBADYCACAAIAdBCBAHIgVBEUYEQEEBIQkDQCAAIAlBCkZBojxqQQgQByIFQRFGBEAgCUEBaiEJDAELCyAKIAk2AgALIAtB0ABqIAhqIAU2AgAgBkEBaiIGIAxHDQALQQAhCQNAIAEgCUEQdEELdWohBgJAIAtB0ABqIAlBAnRqKAIAIgVBAU4EQEEAIQhBACEHQQAhCiAGAn8CQCAFQQFIDQAgBSAAIAVB4MEAai0AAEHAwABqQQgQByIFayEKIAVBEHQiBUEBSA0AIAVBEHUiBSAAIAVB4MEAai0AAEGgP2pBCBAHIgVrIQggBUEQdCIFQQBMDQAgBUEQdSIFIAAgBUHgwQBqLQAAQYA+akEIEAciBWshByAFQRB0QQFIDQAgBiAAIAVB//8DcUHgwQBqLQAAQeA8akEIEAciDTsBACAFIA1rDAELIAZBADsBAEEACzsBAiAGAn8gB0EQdEEBTgRAIAYgACAHQf//A3FB4MEAai0AAEHgPGpBCBAHIgU7AQQgByAFawwBCyAGQQA7AQRBAAs7AQZBACEHIAYCfwJAIAhBEHQiBUEATARAIAZBCGohCAwBCyAGQQhqIQggBUEQdSIFIAAgBUHgwQBqLQAAQYA+akEIEAciBWshByAFQRB0QQFIDQAgBiAAIAVB//8DcUHgwQBqLQAAQeA8akEIEAciCDsBCCAFIAhrDAELIAhBADsBAEEACzsBCiAGAn8gB0EQdEEBTgRAIAYgACAHQf//A3FB4MEAai0AAEHgPGpBCBAHIgU7AQwgByAFawwBCyAGQQA7AQxBAAs7AQ5BACEHQQAhCCAGAn8CQAJAIApBEHQiBUEBTgRAIAVBEHUiBSAAIAVB4MEAai0AAEGgP2pBCBAHIgVrIQggBUEQdCIFQQBKDQELIAZBEGohCgwBCyAGQRBqIQogBUEQdSIFIAAgBUHgwQBqLQAAQYA+akEIEAciBWshByAFQRB0QQFIDQAgBiAAIAVB//8DcUHgwQBqLQAAQeA8akEIEAciCjsBECAFIAprDAELIApBADsBAEEACzsBEiAGAn8gB0EQdEEBTgRAIAYgACAHQf//A3FB4MEAai0AAEHgPGpBCBAHIgU7ARQgByAFawwBCyAGQQA7ARRBAAs7ARZBACEHIAYCfwJAIAhBEHQiBUEATARAIAZBGGohCAwBCyAGQRhqIQggBUEQdSIFIAAgBUHgwQBqLQAAQYA+akEIEAciBWshByAFQRB0QQFIDQAgBiAAIAVB//8DcUHgwQBqLQAAQeA8akEIEAciCDsBGCAFIAhrDAELIAhBADsBAEEACzsBGiAHQRB0QQFOBEAgBiAAIAdB//8DcUHgwQBqLQAAQeA8akEIEAciBTsBHCAGIAcgBWs7AR4MAgsgBkEAOwEcIAZBADsBHgwBCyAGQgA3AQAgBkIANwEYIAZCADcBECAGQgA3AQgLIAlBAWoiCSAMRw0AC0EAIQYDQCALIAZBAnQiCmooAgAiCEEBTgRAIAEgBkEQdEELdWohDUEAIQcDQEEBIQkgDSAHQQF0aiIOLwEAIQUDQCAAQbA0QQgQByAFQQF0aiEFIAggCUcEQCAJQQFqIQkMAQsLIA4gBTsBACAHQQFqIgdBEEcNAAsgC0HQAGogCmoiBSAFKAIAIAhBBXRyNgIACyAGQQFqIgYgDEcNAAsLIAtB0ABqIQdBACEFIwBBEGsiBiQAIAZBADoADyAEQQhOBEAgAkEBdCADakEQdEEQdUEHbEGAwgBqIQkgBEEIakEEdiEEA0AgByAFQQJ0aigCACICQQFOBEAgBiAJIAJBH3EiAkEGIAJBBkkbai0AADoADkEAIQIDQCABIAJBAXRqIgMuAQBBAU4EQCADIAAgBkEOakEIEAdBAXRBAWsgAy8BAGw7AQALIAJBAWoiAkEQRw0ACwsgAUEgaiEBIAVBAWoiBSAERw0ACwsgBkEQaiQAIAtBoAFqJAALqAIBBX8CQCACQQFLBEAgAkEBayIDQYACTwRAIAAgAUEYIANnayIFdiICIAJBAWogAyAFdkEBahAcIAVFDQJBfyAFdEF/cyABcSEGIAAoAgwhAQJAIAAoAhAiAiAFaiIEQSFJBEAgAiEDDAELA0BBfyEEIAAgACgCBCIDIAAoAggiByAAKAIYaksEfyAAIAdBAWoiBDYCCCAAKAIAIAMgBGtqIAE6AABBAAVBfwsgACgCLHI2AiwgAUEIdiEBIAJBD0ohBCACQQhrIgMhAiAEDQALIAMgBWohBAsgACAENgIQIAAgBiADdCABcjYCDCAAIAAoAhQgBWo2AhQPCyAAIAEgAUEBaiACEBwPC0GqwgBBwsIAQbQBEAYAC0HQwgBBwsIAQcYBEAYAC+AGAQJ/IwBBMGsiBSQAIABBzhVqAn8CQCADRQRAIAAgAkECdGpB5BJqKAIARQ0BCyABQbU0QQgQB0ECagwBCyABQbk0QQgQBwsiA0EBcToAACAAQc0VaiADQQF2IgI6AAACQCAEQQJGBEAgACABQYA3QQgQBzoAsBUMAQsgACABIAJBGHRBFXVB4DZqQQgQB0EDdDoAsBUgACABQeA0QQgQByAALQCwFWo6ALAVCyAAKAKUEkECTgRAQQEhAwNAIAAgA2pBsBVqIAFBgDdBCBAHOgAAIANBAWoiAyAAKAKUEkgNAAsLIABBuBVqIAEgACgCrBUiAigCECACLgEAIAAsAM0VQQF1bGpBCBAHIgI6AAAgBUEQaiAFIAAoAqwVIAJBGHRBGHUQQCAAKAKsFSICLgECIgYgACgCpBJGBEBBACEDIAZBAEoEQANAAkACQAJAIAEgAigCHCAFQRBqIANBAXRqLgEAakEIEAciAg4JAAICAgICAgIBAgtBACABQeg0QQgQB2shAgwBCyABQeg0QQgQB0EIaiECCyAAIANBAWoiA2pBuBVqIAJBBGs6AAAgAyAAKAKsFSICLgECSA0ACwtBBCEDIABBzxVqIAAoApQSQQRGBH8gAUG7NEEIEAcFQQQLOgAAIAAtAM0VQQJGBEACQAJAIARBAkcNACAAKALcEkECRw0AIAFBkBdBCBAHIgJBEHRBAUgNACAAQcoVaiACIAAvAeASakEJayICOwEADAELIABByhVqIgIgAUHwFkEIEAcgACgCjBJBAXZsOwEAIAIgASAAKALMEkEIEAcgAi8BAGoiAjsBAAsgACACOwHgEiAAQcwVaiABIAAoAtASQQgQBzoAACAAQdAVaiABQak3QQgQByICOgAAQQEhAwJAIAAoApQSQQFIDQAgAEG0FWogASACQRh0QRZ1QfA3aigCAEEIEAc6AAAgACgClBJBAkgNAANAIAAgA2pBtBVqIAEgACwA0BVBAnRB8DdqKAIAQQgQBzoAACADQQFqIgMgACgClBJIDQALC0EAIQMgAEHRFWogBAR/QQAFIAFBsjRBCBAHCzoAAAsgACAALADNFTYC3BIgAEHSFWogAUHRNEEIEAc6AAAgBUEwaiQADwtBrDpB6jpB0gAQBgALvQEBA38gAi4BAiIEQQFOBEAgAigCGCAEQf//A3EgA2xBAm1qIQRBACEDA0AgACADQQF0aiAELQAAIgVBAXZBB3FBCWw7AQAgASADaiACKAIUIAIuAQJBAWsgBUEBcWwgA2pqLQAAOgAAIAAgA0EBciIGQQF0aiAFQQV2QQlsOwEAIAEgBmogAigCFCAGIAIuAQJBAWsgBUEEdkEBcWxqai0AADoAACAEQQFqIQQgA0ECaiIDIAIuAQJIDQALCwsQACABIABBmTRBCBAHNgIACysBAX8gACAAKAIcIAFuIgI2AiRBACAAKAIgIAJuQX9zIAFqIgAgACABSxsL+gIBBn8gAEKAgICAgBA3AhggAEKAgICAkAE3AhAgAEIANwIIIAAgAjYCBCAAIAE2AgAgAgRAIABBATYCGCABLQAAIQRBASEDCyAAQQA2AiwgACAENgIoIABBgIACNgIcIABBETYCFCAAIARBAXZB/wBzIgY2AiACQCACIANNBEAgAyEFDAELIAAgA0EBaiIFNgIYIAEgA2otAAAhBwsgACAHNgIoIABBgICABDYCHCAAQRk2AhQgACAHIARBCHRyQQF2Qf8BcSAGQQh0ckH/AXMiCDYCIEEAIQMgAAJ/IAIgBU0EQCAFIQZBAAwBCyAAIAVBAWoiBjYCGCABIAVqLQAACyIENgIoIABBgICAgHg2AhwgAEEhNgIUIAAgBCAHQQh0ckEBdkH/AXEgCEEIdHJB/wFzIgU2AiAgAiAGSwRAIAAgBkEBajYCGCABIAZqLQAAIQMLIAAgAzYCKCAAIAMgBEEIdHJBAXZB/wFxIAVBCHRyQf8BczYCIAvKAgEDfwJAIAMgACgCnAIiBE4EQCAEIAAoAqQCIgZIDQEgAEGoAWoiBSAGQQF0aiACIAQgBmtBAXQiBBAIGgJAAkACQAJAAkAgACgCiAJBAWsOAwABAgMLIAAgASAFIAAoApwCEEcgACABIAAoAqACQQF0aiACIARqIAMgACgCnAJrEEcMAwsgACABIAUgACgCnAIQRiAAIAEgACgCoAJBAXRqIAIgBGogAyAAKAKcAmsQRgwCCyAAIAEgBSAAKAKcAhBFIAAgASAAKAKgAkEBdGogAiAEaiADIAAoApwCaxBFDAELIAEgBSAAKAKcAkEBdBAIIAAoAqACQQF0aiACIARqIAMgACgCnAJrQQF0EAgaCyAFIAIgAyAAKAKkAiIAa0EBdGogAEEBdBAIGkEADwtBiRZB2hVBuAEQBgALQbEWQdoVQboBEAYAC70TARF/IwAiBSETIAUgACgClAIiByAAKAKMAiIEakECdEEPakFwcWsiBSQAIAUgAEEYaiIUIAdBAnQQCCENIAAoAqgCIglBBGohEiAAKAKQAiEQIAkhBQNAIA0gB0ECdGohDyADIAQgAyAESBsiDiIGQQFOBEAgACgCACEHIAUuAQIhBCAFLgEAIQxBACEFA0AgDyAFQQJ0aiACIAVBAXRqLgEAQQh0IAdqIgc2AgAgACgCBCERIAAgB0ECdCIHQfz/A3EiCiAEbEEQdSAHQRB1IgcgBGxqNgIEIAAgESAHIAxsaiAKIAxsQRB1aiIHNgIAIAVBAWoiBSAGRw0ACwsgDkEQdCEMAkACQAJAAkACQCAAKAKUAiIPQRJrDhMAAgICAgIBAgICAgICAgICAgIDAgsgDEEBSA0DIAAoApgCIgZBEHRBEHUhEUEAIQUDQCABQf//ASASIAVB//8DcSARbEEQdSIKQRJsaiIELgEAIgggDSAFQRB1QQJ0aiIHKAIAIgtB//8DcWxBEHUgC0EQdSAIbGogBC4BAiIIIAcoAgQiC0EQdWxqIAtB//8DcSAIbEEQdWogBC4BBCIIIAcoAggiC0EQdWxqIAtB//8DcSAIbEEQdWogBC4BBiIIIAcoAgwiC0EQdWxqIAtB//8DcSAIbEEQdWogBC4BCCIIIAcoAhAiC0EQdWxqIAtB//8DcSAIbEEQdWogBC4BCiIIIAcoAhQiC0EQdWxqIAtB//8DcSAIbEEQdWogBC4BDCIIIAcoAhgiC0EQdWxqIAtB//8DcSAIbEEQdWogBC4BDiIIIAcoAhwiC0EQdWxqIAtB//8DcSAIbEEQdWogBC4BECIEIAcoAiAiCEEQdWxqIAhB//8DcSAEbEEQdWogEiAGIApBf3NqQRJsaiIELgEAIgogBygCRCIIQRB1bGogCEH//wNxIApsQRB1aiAELgECIgogBygCQCIIQRB1bGogCEH//wNxIApsQRB1aiAELgEEIgogBygCPCIIQRB1bGogCEH//wNxIApsQRB1aiAELgEGIgogBygCOCIIQRB1bGogCEH//wNxIApsQRB1aiAELgEIIgogBygCNCIIQRB1bGogCEH//wNxIApsQRB1aiAELgEKIgogBygCMCIIQRB1bGogCEH//wNxIApsQRB1aiAELgEMIgogBygCLCIIQRB1bGogCEH//wNxIApsQRB1aiAELgEOIgogBygCKCIIQRB1bGogCEH//wNxIApsQRB1aiAELgEQIgQgBygCJCIHQRB1bGogB0H//wNxIARsQRB1aiIHQQV1QQFqQQF1IgRBgIB+IARBgIB+ShsgB0Hf//8AShs7AQAgAUECaiEBIAUgEGoiBSAMSA0ACwwDC0EAIQcgDEEATA0CA0AgAUH//wEgCS4BBCIEIA0gB0EQdUECdGoiBSgCXCAFKAIAaiIGQf//A3FsQRB1IAZBEHUgBGxqIAkuAQYiBCAFKAJYIAUoAgRqIgZBEHVsaiAGQf//A3EgBGxBEHVqIAkuAQgiBCAFKAJUIAUoAghqIgZBEHVsaiAGQf//A3EgBGxBEHVqIAkuAQoiBCAFKAJQIAUoAgxqIgZBEHVsaiAGQf//A3EgBGxBEHVqIAkuAQwiBCAFKAJMIAUoAhBqIgZBEHVsaiAGQf//A3EgBGxBEHVqIAkuAQ4iBCAFKAJIIAUoAhRqIgZBEHVsaiAGQf//A3EgBGxBEHVqIAkuARAiBCAFKAJEIAUoAhhqIgZBEHVsaiAGQf//A3EgBGxBEHVqIAkuARIiBCAFKAJAIAUoAhxqIgZBEHVsaiAGQf//A3EgBGxBEHVqIAkuARQiBCAFKAI8IAUoAiBqIgZBEHVsaiAGQf//A3EgBGxBEHVqIAkuARYiBCAFKAI4IAUoAiRqIgZBEHVsaiAGQf//A3EgBGxBEHVqIAkuARgiBCAFKAI0IAUoAihqIgZBEHVsaiAGQf//A3EgBGxBEHVqIAkuARoiBCAFKAIwIAUoAixqIgVBEHVsaiAFQf//A3EgBGxBEHVqIgVBBXVBAWpBAXUiBEGAgH4gBEGAgH5KGyAFQd///wBKGzsBACABQQJqIQEgByAQaiIHIAxIDQALDAILQZAVQaQVQYsBEAYAC0EAIQcgDEEATA0AA0AgAUH//wEgCS4BBCIEIA0gB0EQdUECdGoiBSgCjAEgBSgCAGoiBkH//wNxbEEQdSAGQRB1IARsaiAJLgEGIgQgBSgCiAEgBSgCBGoiBkEQdWxqIAZB//8DcSAEbEEQdWogCS4BCCIEIAUoAoQBIAUoAghqIgZBEHVsaiAGQf//A3EgBGxBEHVqIAkuAQoiBCAFKAKAASAFKAIMaiIGQRB1bGogBkH//wNxIARsQRB1aiAJLgEMIgQgBSgCfCAFKAIQaiIGQRB1bGogBkH//wNxIARsQRB1aiAJLgEOIgQgBSgCeCAFKAIUaiIGQRB1bGogBkH//wNxIARsQRB1aiAJLgEQIgQgBSgCdCAFKAIYaiIGQRB1bGogBkH//wNxIARsQRB1aiAJLgESIgQgBSgCcCAFKAIcaiIGQRB1bGogBkH//wNxIARsQRB1aiAJLgEUIgQgBSgCbCAFKAIgaiIGQRB1bGogBkH//wNxIARsQRB1aiAJLgEWIgQgBSgCaCAFKAIkaiIGQRB1bGogBkH//wNxIARsQRB1aiAJLgEYIgQgBSgCZCAFKAIoaiIGQRB1bGogBkH//wNxIARsQRB1aiAJLgEaIgQgBSgCYCAFKAIsaiIGQRB1bGogBkH//wNxIARsQRB1aiAJLgEcIgQgBSgCXCAFKAIwaiIGQRB1bGogBkH//wNxIARsQRB1aiAJLgEeIgQgBSgCWCAFKAI0aiIGQRB1bGogBkH//wNxIARsQRB1aiAJLgEgIgQgBSgCVCAFKAI4aiIGQRB1bGogBkH//wNxIARsQRB1aiAJLgEiIgQgBSgCUCAFKAI8aiIGQRB1bGogBkH//wNxIARsQRB1aiAJLgEkIgQgBSgCTCAFKAJAaiIGQRB1bGogBkH//wNxIARsQRB1aiAJLgEmIgQgBSgCSCAFKAJEaiIFQRB1bGogBUH//wNxIARsQRB1aiIFQQV1QQFqQQF1IgRBgIB+IARBgIB+ShsgBUHf//8AShs7AQAgAUECaiEBIAcgEGoiByAMSA0ACwsgAyAOayIDQQJOBEAgDSANIA5BAnRqIA9BAnQQCBogAiAOQQF0aiECIAAoAqgCIQUgACgClAIhByAAKAKMAiEEDAELCyAUIA0gDkECdGogD0ECdBAIGiATJAALmAMBCn8jACIFIQkgBSAAKAKMAiIEQQJ0QR9qQXBxayIFJAAgBSAAKQIgNwIIIAUgACkCGDcCACAFQRBqIQogACgCkAIhCwNAIAAgCiACIAMgBCADIARIGyIHEEhBACEIIAdBEXQiDEEBTgRAA0AgAUH//wEgCEH//wNxQQxsQRB2Ig1BA3RBsBRqIgYuAQIgBSAIQRB1QQF0aiIELgECbCAGLgEAIAQuAQBsaiAGLgEEIAQuAQRsaiAGLgEGIAQuAQZsakEAIA1rQQN0QYgVaiIGLgEGIAQuAQhsaiAGLgEEIAQuAQpsaiAGLgECIAQuAQxsaiAGLgEAIAQuAQ5saiIEQQ51QQFqQQF1IgZBgIB+IAZBgIB+ShsgBEH///7/A0obOwEAIAFBAmohASAIIAtqIgggDEgNAAsLIAMgB2siA0EBTgRAIAUgBSAHQQJ0aiIEKQIANwIAIAUgBCkCCDcCCCACIAdBAXRqIQIgACgCjAIhBAwBCwsgACAFIAdBAnRqIgEpAgA3AhggACABKQIINwIgIAkkAAsMACAAIAEgAiADEEgL2wMBDn8gA0EBTgRAIAAoAhQhCCAAKAIQIQYgACgCDCEEIAAoAgghCSAAKAIEIQcgACgCACEFA0AgASAKQQJ0IgtqQf//ASAHIAUgAiAKQQF0ai4BAEEKdCIMIAVrIgVB//8DcUHSDWxBEHYgBUEQdUHSDWxqIg1qIg4gB2siB0H//wNxQYr1AGxBEHYgB0EQdUGK9QBsaiIPaiIFIAlrIgdB//8DcUGrsX5sQRB1IAdBEHVBq7F+bGogBWoiBUEJdUEBakEBdSIJQYCAfiAJQYCAfkobIAVB//v/D0obOwEAIAEgC0ECcmpB//8BIAYgBCAMIARrIgRB//8DcUHGNWxBEHYgBEEQdUHGNWxqIgtqIhAgBmsiBkH//wNxQanJAWxBEHYgBkEQdUGpyQFsaiIRaiIEIAhrIgZB//8DcUH2sX9sQRB1IAZBEHVB9rF/bGogBGoiBEEJdUEBakEBdSIIQYCAfiAIQYCAfkobIARB//v/D0obOwEAIAQgBmohCCAFIAdqIQkgECARaiEGIA4gD2ohByALIAxqIQQgDCANaiEFIApBAWoiCiADRw0ACyAAIAg2AhQgACAGNgIQIAAgBDYCDCAAIAk2AgggACAHNgIEIAAgBTYCAAsLjR4CIn8BfiAAKAKMEiIEIABBnCFqKAIARwRAIAAgBDYCnCEgAEGUIWpCgICEgICAwAA3AgAgAEGgIWpCgoCAgMACNwIAIAAgACgCmBJBB3Q2AswgCyADBEAjAEFAaiIGJAAgBiAAIgQoApgSIAAoAqASakECdEEPakFwcWsiDyIAJAAgACAEKAKgEkEBdEEPakFwcWsiCSQAIAYgBEGUIWooAgBBBnU2AgggBiAEQZghaigCACIUQQZ1IhU2AgwgBCgCyBIEQCAEQfIgakIANwEAIARB6iBqQgA3AQAgBEHiIGpCADcBACAEQdogakIANwEACyABIREgAiEWIAZBNGohByAGQTxqIQsgBkEwaiEQIAZBOGohDCAEQQRqIQogBCgClBIhCEEAIQEjACIAIRMgACAEKAKcEiIAQQJ0QQ9qQXBxayICJAACQCAAQQBMBEAgAiAAQQF0aiEDDAELIAhBAmsgAGwhDSAGKAIIIgVBEHRBEHUhAyAFQQ91QQFqQQF1IQ4DQCACIAFBAXRqQf//AUGAgH4gAyAKIAEgDWpBAnRqKAIAIgVB//8DcWxBEHUgAyAFQRB1bGogBSAObGoiBUEIdiAFQYCAgHxIGyAFQf///wNKGzsBACABQQFqIgEgAEcNAAsgAiAAQQF0aiEDIABBAUgNACAIQQFrIABsIQ0gBigCDCIBQRB0QRB1IQggAUEPdUEBakEBdSEOQQAhAQNAIAMgAUEBdGpB//8BQYCAfiAIIAogASANakECdGooAgAiBUH//wNxbEEQdSAIIAVBEHVsaiAFIA5saiIFQQh2IAVBgICAfEgbIAVB////A0obOwEAIAFBAWoiASAARw0ACwsgByALIAIgABAdIBAgDCADIAAQHSATJAAgBEGgIWooAgAhCgJAIAYoAjQgBigCOHUgBigCMCAGKAI8dUgEQCAKQQFrIQggBEGkIWooAgAhCgwBCyAEQaQhaigCACEICyAEQYQhai8BACEQIAQoAsAgIQAgBCgCxCAhAiAEQdogaiIBIAQoAqQSQfH6AxAnIAZBEGogASAEKAKkEiIFQQF0EAgaIABBASAAQQFIG0EBdCIHQboRaiAHQb4RaiACQQJGGy4BACECAkAgBCgCwCANACAEKALEIEECRgRAIARBkCFqLgEAQYCAASAEQdggai8BACAEQdYgai8BACAEQdQgai8BACAELwHQICAEQdIgai8BAGpqamprIgBBzRkgAEEQdEEQdUHNGUobQf//A3FsQQ52IRAMAQsgASAFECkiAEGAgIDAACAAQYCAgMAASBsiAEGAgIACIABBgICAAkobIgBBA3RB+P8DcSACbEEQdSAAQQ12IAJsakEOdSECIAQoAqQSIQVBgIABIRALAkAgBCgCoBIiAyAFIAQoAswgQQd1QQFqQQF1IgtqayIAQQJKBEAgBEGAIWooAgAhEyAJIABBAmsiAUEBdCIAaiAAIARqQcQKaiAGQRBqIAMgAWsgBRBKQQAgBCgCmCEiACAAIABBH3UiBWogBXMiDWciBUEBa3QiAEH//wNxQf////8BIABBEHUiDG0iDkEQdCISQRB1IgBsQRB1IAAgDGxqQQN0ayIMIA5BD3VBAWpBAXVsIBJqIAxBEHUgAGxqIAxB+P8DcSAAbEEQdWohAAJ/IA1B//8DTQRAQf////8HIAVBEGsiBXYiDEGAgICAeCAFdSINIAAgACANSBsgACAMShsgBXQMAQsgAEEQIAVrdQshACAEKAKkEiIMIAFqIgUgBCgCoBIiDUgEQCAAQf////8DIABB/////wNIGyIAQf//A3EhASAAQRB1IQADQCAPIAVBAnRqIAEgCSAFQQF0ai4BACIObEEQdSAAIA5sajYCACAFQQFqIgUgDUgNAAsLIAQoApQSIhdBAU4EQCAIIApsIgBBgAEgAEGAAUobQQJ0IARqQfwDayEYIAdBthFqLgEAIQcgAkEQdEEQdSEZIAQuAYwSQYAkbCEOIAQvAdggIQUgBC8B1iAhCSAELwHUICEKIAQvAdIgIQggBC8B0CAhAiAEKAKcEiESA0AgEEEQdEEQdSEQAkAgEkEATARAIAVBEHRBEHUhACAJQRB0QRB1IQEgCkEQdEEQdSEKIAhBEHRBEHUhCCACQRB0QRB1IQIMAQsgBUEQdEEQdSEAIAlBEHRBEHUhASAKQRB0QRB1IQogCEEQdEEQdSEIIAJBEHRBEHUhAiADIAtrQQJ0IA9qQQhqIQVBASEJA0AgDyADQQJ0aiAFKAIAIgtBEHUgAmwgC0H//wNxIAJsQRB1aiAFQQRrKAIAIgtBEHUgCGxqIAtB//8DcSAIbEEQdWogBUEIaygCACILQRB1IApsaiALQf//A3EgCmxBEHVqIAVBDGsoAgAiC0EQdSABbGogC0H//wNxIAFsQRB1aiAFQRBrKAIAIgtBEHUgAGxqIAtB//8DcSAAbEEQdWogGCATQbWIzt0AbEHrxuWwA2oiE0EXdkH8A3FqKAIAIgtBEHUgEGxqIAtB//8DcSAQbEEQdWpBAnRBCGo2AgAgA0EBaiEDIAkgEkYNASAFQQRqIQUgCUEBaiEJDAALAAsgBCAEKALMICIJQRB1QY8FbCAJaiAJQf//A3FBjwVsQRB2aiIJIA4gCSAOSBsiCTYCzCAgCUEHdUEBakEBdSELIBAgGWxBD3YhECAAIAdsQQ92IQUgASAHbEEPdiEJIAcgCmxBD3YhCiAHIAhsQQ92IQggAiAHbEEPdiECIBpBAWoiGiAXRw0ACyAEIAU7AdggIAQgCTsB1iAgBCAKOwHUICAEIAg7AdIgIAQgAjsB0CALIA1BAnQgD2pBQGoiByAEKQKECjcCACAHIARBvApqKQIANwI4IAcgBEG0CmopAgA3AjAgByAEQawKaikCADcCKCAHIARBpApqKQIANwIgIAcgBEGcCmopAgA3AhggByAEQZQKaikCADcCECAHIARBjApqKQIANwIIIAxBCk4EQCAEKAKYEiINQQFOBEAgDEEBdiEgIBVBEHRBEHUhDiAUQRV1QQFqQQF1ISEgBi4BIiESIAYuASAhFCAGLgEeIRUgBi4BHCEXIAYuARohGCAGLgEYIRkgBi4BFiEaIAYuARQhHSAGLgESIR4gBi4BECEfIAxBAXEhIiAMQQprIgxBfnEhCSAHKAIcIQMgBygCJCECIAcoAiwhACAHKAI0IQEgBygCPCEFA0AgBUEQdSAfbCAgaiAFQf//A3EgH2xBEHVqIBtBAnQgB2oiBSgCOCIKQRB1IB5saiAKQf//A3EgHmxBEHVqIAFBEHUgHWxqIAFB//8DcSAdbEEQdWogBSgCMCIBQRB1IBpsaiABQf//A3EgGmxBEHVqIABBEHUgGWxqIABB//8DcSAZbEEQdWogBSgCKCIIQRB1IBhsaiAIQf//A3EgGGxBEHVqIAJBEHUgF2xqIAJB//8DcSAXbEEQdWogBSgCICICQRB1IBVsaiACQf//A3EgFWxBEHVqIANBEHUgFGxqIANB//8DcSAUbEEQdWogBSgCGCIAQRB1IBJsaiAAQf//A3EgEmxBEHVqIQMgG0EQaiEPQQohBSAJIQACQAJAAkAgDA4CAgEACwNAIAZBEGogBUEBdCIcQQJyai4BACIjIA8gBWtBAnQgB2pBCGsoAgAiJEEQdWwgAyAGQRBqIBxqLgEAIhwgByAPIAVBf3NqQQJ0aigCACIlQRB1bGogJUH//wNxIBxsQRB1amogJEH//wNxICNsQRB1aiEDIAVBAmohBSAAQQJrIgANAAsLICJFDQAgAyAGQRBqIAVBAXRqLgEAIgAgByAPIAVBf3NqQQJ0aigCACIFQRB1bGogBUH//wNxIABsQRB1aiEDCwJ/IAcgD0ECdGoiDygCACIAIANBgICAQCADQYCAgEBKGyIDQf///z8gA0H///8/SBtBBHQiA2oiBUEATgRAIAVBgICAgHggACADcUF/ShsMAQtB/////wcgBSAAIANyQX9KGwshBSAPIAU2AgAgFiAbQQF0akH//wFBgIB+IAVBEHUgDmwgBSAhbGogBUH//wNxIA5sQRB1aiIAQQd2QQFqQQF2IABBgP//e0gbIABB//7/A0obOwEAIAIhAyAIIQIgASEAIAohASAbQQFqIhsgDUcNAAsLIARBhApqIgAgByANQQJ0aiIBKQIANwIAIAAgASkCODcCOCAAIAEpAjA3AjAgACABKQIoNwIoIAAgASkCIDcCICAAIAEpAhg3AhggACABKQIQNwIQIAAgASkCCDcCCCAEIBA7AYQhIAQgEzYCgCEgESALNgIMIBEgCzYCCCARIAs2AgQgESALNgIAIAZBQGskAAwCC0HnEUHcEUHcAhAGAAtBwhFB3BFBpgIQBgALIAQgBCgCwCBBAWo2AsAgDwsgACAAQc0VaiwAACICNgLEIAJAIAJBAkYEQCAAQdAgaiERIAAoApwSIQpBACEDAkAgACgClBIiAkECdCABakEEayIFKAIAIhZBAUgNACACRQ0AA0AgAyABIAIgCEF/c2oiCUEKbGoiBC4BYiAELgFgaiAELgFkaiAELgFmaiAELgFoaiIESARAIBEgASAJQRB0QRB1QQpsaiIDLwFoOwEIIBEgAykBYDcBACAAIAEgCUECdGooAgBBCHQ2AswgIAUoAgAhFiAEIQMLIAhBAWoiCCAKbCAWTg0BIAIgCEcNAAsLIBFCADcCACAAQdggakEAOwEAIABB1CBqIAM7AQAgA0HM2QBMBEAgAEEANgHQICAAQdYgakEANgEAIABBgOjMBSADQQEgA0EBShtuQRB0QRB1IANBEHRBEHVsQQp2OwHUIAwCCyADQc75AEgNASAAQQA2AdAgIABB1iBqQQA2AQAgAEGAgM35ACADbiADQRB0QRB1bEEOdjsB1CAMAQsgAEHQIGpCADcCACAAQdggakEAOwEAIAAgBEEQdEEQdUGAJGw2AswgIAAoApwSIQogACgClBIhAgsgAEHaIGogAUFAayAAKAKkEkEBdBAIGiAAQZAhaiABKAKIATsBACACQQJ0IAFqKQIIISYgAEGkIWogCjYCACAAQZQhaiAmNwIAIABBoCFqIAI2AgAL4QIBCH8CQAJAIARBBUoEQCAEQQFxDQEgAyAESA0CIAMgBEoEQCAEQQdIIQsgBCEHA0AgAi4BAiAHQQF0IgwgAWoiBUEEay4BAGwgAi4BACAFQQJrIgkuAQBsaiACLgEEIAVBBmsuAQBsaiACLgEGIAVBCGsuAQBsaiACLgEIIAVBCmsuAQBsaiACLgEKIAVBDGsuAQBsaiEIQQYhBiALRQRAA0AgCCACIAZBAXQiCmouAQAgCSAKay4BAGxqIAIgCkECcmouAQAgCSAGQX9zQQF0ai4BAGxqIQggBkECaiIGIARIDQALCyAAIAxqIAUuAQBBDHQgCGtBC3VBAWpBAXUiBUGAgH4gBUGAgH5KGyIFQf//ASAFQf//AUgbOwEAIAdBAWoiByADRw0ACwsgAEEAIARBAXQQCRoPC0HHEEHgEEHDABAGAAtB+xBB4BBBxAAQBgALQZoRQeAQQcUAEAYAC8ABAQR/IAFBAWshBCABQQJOBEAgAkGAgARrIQVBACEBA0AgACABQQJ0aiIDIAMoAgAiA0EQdEEQdSIGIAJB//8DcWxBEHUgBiACQRB1bGogA0EPdUEBakEBdSACbGo2AgAgAiAFbEEPdUEBakEBdSACaiECIAFBAWoiASAERw0ACwsgACAEQQJ0aiIAIAAoAgAiAEEQdEEQdSIBIAJB//8DcWxBEHUgASACQRB1bGogAEEPdUEBakEBdSACbGo2AgALuwIAAkAgAUEUSw0AAkACQAJAAkACQAJAAkACQAJAAkAgAUEJaw4KAAECAwQFBgcICQoLIAIgAigCACIBQQRqNgIAIAAgASgCADYCAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASsDADkDAA8LIAAgAkEAEQUACwtTAQN/AkAgACgCACwAAEEwa0EKTw0AA0AgACgCACICLAAAIQMgACACQQFqNgIAIAEgA2pBMGshASACLAABQTBrQQpPDQEgAUEKbCEBDAALAAsgAQsGACAAECALHQAgBEEBSARAQX8PCyAAIAEgAiADIAQgBUEAEB8LzQYBCH8jAEEQayIGJAACQAJAAkACQCAAQf/8AEwEQCAAQcA+Rg0BIABB4N0ARg0BDAILIABBgP0ARg0AIABBgPcCRg0AIABBwLsBRw0BCyABQQFrQQJJDQELIAJFDQEgAkF/NgIADAELAn8gBkHowgA2AgxBAAsEf0EABSAGIAYoAgxBA2pBfHE2AgwgBigCDEHUyQAoAgBBAnRB4MAAaiABbEHYyQAoAgBBBXRqakG0AWoLEC0iB0UEQEEAIQcgAkUNASACQXk2AgAMAQsjAEEQayIFJABBfyEIAkACQCAAQf/8AEwEQCAAQcA+Rg0BIABB4N0ARg0BDAILIABBgP0ARg0AIABBgPcCRg0AIABBwLsBRw0BCyABQQFrQQFLDQAgB0EAAn8gBUHowgA2AgxBAAsEf0EABSAFIAUoAgxBA2pBfHE2AgwgBSgCDEHUyQAoAgBBAnRB4MAAaiABbEHYyQAoAgBBBXRqakG0AWoLEAkhBEF9IQggBUHowgA2AgggBSAFKAIIQQNqQXxxIgM2AgggBCABNgIwIAQgATYCCCAEQdgANgIEIAQgADYCGCAEIAA2AgwgBCABNgIQIAQgA0HYAGoiAzYCACAEQdgAahA7DQACfyADIARqIgohAyABQQJNBH9BeSADRQ0BGiADQQBB1MkAKAIAQQJ0QeDAAGogAWxB2MkAKAIAQQV0akHcAGoQCSIDQdDJADYCAEHUyQAoAgAhCSADQgE3AhAgAyABNgIMIAMgATYCCCADIAk2AgRB3MkAKAIAIQkgA0EBNgIcIAMgAUEBRjYCICADQQA2AiQgAyAJNgIYIANBvB9BABAMGiADAn8CQAJAAkAgAEH//ABMBEAgAEHAPkYNASAAQeDdAEcNAkEEDAQLIABBgP0ARg0CQQEgAEGA9wJGDQMaIABBwLsBRw0BQQIMAwtBBgwCC0GrDEG/DEHUABAGAAtBAwsiATYCEEEAQX8gARsFQX8LCw0AQQAhCCAFQQA2AgAgCkGgzgAgBRAMGiAEIABB//8DcUGQA242AkAgBEEANgI8IARBADYCLAsgBUEQaiQAIAghACACBEAgAiAANgIACyAARQ0AIAcQIEEAIQcLIAZBEGokACAHC1IBAX8jAEEQayIDJAAgACgCPCABpyABQiCIpyACQf8BcSADQQhqEAEiAAR/QeimAiAANgIAQX8FQQALIQAgAykDCCEBIANBEGokAEJ/IAEgABsL9AIBB38jAEEgayIDJAAgAyAAKAIcIgU2AhAgACgCFCEEIAMgAjYCHCADIAE2AhggAyAEIAVrIgE2AhQgASACaiEFQQIhByADQRBqIQECfwJAAkAgACgCPCADQRBqQQIgA0EMahAAIgQEf0HopgIgBDYCAEF/BUEAC0UEQANAIAUgAygCDCIERg0CIARBf0wNAyABIAQgASgCBCIISyIGQQN0aiIJIAQgCEEAIAYbayIIIAkoAgBqNgIAIAFBDEEEIAYbaiIJIAkoAgAgCGs2AgAgBSAEayEFIAAoAjwgAUEIaiABIAYbIgEgByAGayIHIANBDGoQACIEBH9B6KYCIAQ2AgBBfwVBAAtFDQALCyAFQX9HDQELIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhAgAgwBCyAAQQA2AhwgAEIANwMQIAAgACgCAEEgcjYCAEEAIAdBAkYNABogAiABKAIEawshACADQSBqJAAgAAsJACAAKAI8EAQLC9iTAj4AQYAICxTwkQAALSsgICAwWDB4AChudWxsKQBBoAgLQREACgAREREAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAEQAPChEREQMKBwABAAkLCwAACQYLAAALAAYRAAAAERERAEHxCAshCwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAEGrCQsBDABBtwkLFQwAAAAADAAAAAAJDAAAAAAADAAADABB5QkLAQ4AQfEJCxUNAAAABA0AAAAACQ4AAAAAAA4AAA4AQZ8KCwEQAEGrCgseDwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAEHiCgsOEgAAABISEgAAAAAAAAkAQZMLCwELAEGfCwsVCgAAAAAKAAAAAAkLAAAAAAALAAALAEHNCwsBDABB2QsLlwEMAAAAAAwAAAAACQwAAAAAAAwAAAwAADAxMjM0NTY3ODlBQkNERUZGYXRhbCAoaW50ZXJuYWwpIGVycm9yIGluICVzLCBsaW5lICVkOiAlcwoAYXNzZXJ0aW9uIGZhaWxlZDogMABjZWx0L2NlbHQuYwAAAAAAAAAAnT4AQF4+AMAEPgCA7T4AQIk+AAAAAADATD8AAM09AEGBDQuhAv8A/wD/AP8A/wD+AQAB/wD+AP0CAAH/AP4A/QMAAf8AIP4f9h/qH9gfwh+oH4gfYh86Hwof2B6gHmIeIh7cHZAdQh3uHJYcOhzYG3IbChucGioatBk6GbwYPBi2Fy4XoBYQFn4V6BROFLATEBNuEsgRHhF0EMYPFg9kDq4N+AxADIQLyAoKCkoJigjGBwIHPgZ4BbIE6gMiA1oCkgHKAAAANv9u/qb93vwW/E77iPrC+f74Ovh297b29vU49Xz0wPMI81LynPHq8DrwjO/i7jjuku3w7FDssusY64Lq8Olg6dLoSujE50TnxuZM5tblZOX25I7kKOTG42rjEuO+4nDiJOLe4Z7hYOEo4fbgxuCe4HjgWOA+4CjgFuAK4ALgAOAAQbEPC68HDwgHBAsMAwINCgUGCQ4BAAkGAwQFCAECB2Fzc2VydGlvbiBmYWlsZWQ6IGQ9PTEwIHx8IGQ9PTE2AHNpbGsvTkxTRjJBLmMAYXNzZXJ0aW9uIGZhaWxlZDogcHNEZWMtPkxQQ19vcmRlciA9PSAxMCB8fCBwc0RlYy0+TFBDX29yZGVyID09IDE2AHNpbGsvQ05HLmMAYXNzZXJ0aW9uIGZhaWxlZDogZCA+PSA2AHNpbGsvTFBDX2FuYWx5c2lzX2ZpbHRlci5jAGFzc2VydGlvbiBmYWlsZWQ6IChkICYgMSkgPT0gMABhc3NlcnRpb24gZmFpbGVkOiBkIDw9IGxlbgAAuH6aeZp5Zma4fjNzYXNzZXJ0aW9uIGZhaWxlZDogaWR4ID4gMABzaWxrL1BMQy5jAGFzc2VydGlvbiBmYWlsZWQ6IHBzRGVjLT5MUENfb3JkZXIgPj0gMTAAKq/Vyc//QAARAGP/YQEQ/qMAJyu9Vtn/BgBbAFb/ugAXAID8wBjYTe3/3P9mAKf/6P9IAUn8CAolPgAAAAAAAIfHPclAAIAAhv8kADYBAP1IAjMkRUUMAIAAEgBy/yABi/+f/BsQezgAAAAAAAAAAGgCDcj2/ycAOgDS/6z/eAC4AMX+4/0EBQQVQCMAAAAA5j7GxPP/AAAUABoABQDh/9X//P9BAFoABwBj/wj/1P9RAi8GNArHDAAAAAAAAAAA5FcFxQMA8v/s//H/AgAZACUAGQDw/7n/lf+x/zIAJAFvAtYDCAW4BQAAAAAAAAAAlGtnxBEADAAIAAEA9v/q/+L/4P/q/wMALABkAKgA8wA9AX0BrQHHAQAAAAAAAAAAvQCo/WkCZ3d1AGH/0vsIdDQA3QCo9nRu/P8RAury5WbQ//YCjPClXbD/iQN17wZTnf/MA4LvZkeV/8cDi/AnO5n/gANh8q4upf8FA8/0XiK5/2MCofeYFtL/qQGh+rQLYXNzZXJ0aW9uIGZhaWxlZDogMABzaWxrL3Jlc2FtcGxlcl9wcml2YXRlX2Rvd25fRklSLmMAYXNzZXJ0aW9uIGZhaWxlZDogMABzaWxrL3Jlc2FtcGxlci5jAAYAAwAHAwABCgACBhIKDAQAAgAAAAkEBwQAAwwHB2Fzc2VydGlvbiBmYWlsZWQ6IGluTGVuID49IFMtPkZzX2luX2tIegBhc3NlcnRpb24gZmFpbGVkOiBTLT5pbnB1dERlbGF5IDw9IFMtPkZzX2luX2tIegBB8BYLNP369OnUtpaDeG5iVUg8MSggGRMPDQsJCAcGBQQDAgEA0tDOy8fBt6iOaEo0JRsUDgoGBAIAQbAXC9II38m3p5iKfG9iWE9GPjgyLCcjHxsYFRIQDgwKCAYEAwIBALywm4p3YUMrGgoApXdQPS8jGxQOCQQAcT8AAAAAAAwjPFNshJ20zuQPIDdNZX2Xr8nhEypCWXKJorjR5gwZMkhheJOsyN8aLEVacoeftM3hDRY1UGqCnLTN5A8ZLEBac46oxN4TGD5SZHiRqL7WFh8yT2d4l6rL4xUdLUFqfJarxOAeMUtheY6lutHlExk0Rl10j6bA2xoiPkthdpGnwtkZIThGW3GPpcTfFSIzSGF1kavE3hQdMkNadZCoxd0WHzBCX3WSqMTeGCEzTXSGnrTI4BUcRldqfJWqwtkaITVAU3WYrczhGyJBX2yBm67S4RQaSGNxg5qwyNsiKz1OXXKbsc3lFx02YXyKo7PR5R4mOFl2gZ6yyOcVHTE/VW+Oo8HeGzBNZ4Wes8TX6B0vSmN8l7DG3O0hKj1MXXmbrs/hHTVXcIiaqrzQ4xgeNFSDlqa6y+UlMEBUaHacscnmUQsKCQoJCgnvCO8ICgn8CBcJ7whICxQKWgk/CQoJ4gjiCOII4giSCLcJJAkkCQoJCgkKCSQJJAk/CTIJkAzOCiQJJAkKCeIIrQifCNUIkgicCaoJPwlaCVoJWglaCT8JZwkKCZcN8AtPCJ8I4gjiCOII7wgKCdUI0gxFDBQKWgnHCK0InwiSCJIIQggAEAUPrQg8CjwKZwkKCVoJPwkaCGoMrAw/Ca0I+QmCCSQJCgl3CK0ICg2gDaYKkgjVCJwJMgk/CZ8INQgyCXQJFwk/CVoJdAl0CXQJnAk/CcMOLQ6CCd8JPwniCOII/AifCAAItgyZDJkKHguPCRcJ/Aj8COIITwi/DOQMwQr2Co8J1QjVCMcITwg1CDkLpQtJCj8JZwkyCZIIxwjHCEIImQx9DEkKFAriCIUIxwitCK0IXQhqDO4MtApnCeII4gjiCO8IkghCCEUMyAycCQ0I7wjECT8JtwmCCYUIsw3SDAoJjApXCqoJPwlaCSQJTwhfDc8N3gvwC/wIngetCOII4gjiCEwNJg0nCH8KOQsyCXQJ4giqCewJsA6gDZ4HZApRC98JWgk/CZwJ1QjUC8gMtApIC7QKaghPCO8IugjHCG8OSQ7pB7EHZAqMChQKxAkXCT8JhwxVDTIJGghIC0gLJAm3CccIdwgKDSYNHgvcChcJagjiCO8IQggNCBcJ/AiFCHcIhQg/CUkKjAqMCvkJZwmCCa0I1QitCK0IJAl0CS8KjAreC6wM9gpIC6oJGgj8CAoJMglMCa0IaghPCO8IxAnpCukKPAoUCj8JXA6BDroILgeFCMEKpgpxCtEJnwjpClgMpgr5CR4L0QmFCFoJrQiFCNSylIFsYFVST009Ozk4MzEwLSopKCYkIh8eFQwKAwEA//X07Onh2cu+sK+hlYh9cmZbUUc8NCsjHBQTEgwLBQCzioyUl5WZl6N0Q1I7XEhkWVwAQZAgC+cBEAAAAABjQiQkIiQiIiIiU0UkNCJ0ZkZERLBmREQiQVVEVCR0jZiLqoS7uNiJhPmouYtoZmRERLLaubmq9Ni7u6r0u7vbimebuLmJdLebmIiE2bi4qqTZq5uL9Km4uaqk2N/aitaPvNqo9I2Im6qoitzbi6TbytiJqLr2uYt0udu5imRkhmRmIkREZESoy93aqKeaiGhGpPariYuJm9rbi//+/e4OAwIBAP/+/NojAwIBAP/++tA7BAIBAP/+9sJHCgIBAP/87LdSCAIBAP/867RaEQIBAP/44KthHgQBAP/+7K1fJQcBAEGAIgvuDf///4MGkf//////7F0PYP//////wlMZR93/////okkiQqL////SfkkrOa3////JfUcwOoL///+mbkk5PmjS///7e0E3RGSr/wAAAAAAAAAA+gADAAYAAwADAAMABAADAAMAAwDNAQAAIAAKABQuZAHwCwAAMA0AALAPAADwDwAAEBAAALAQAAAAEQAAUBEAAAcXJjZFVWR0g5OissHQ3+8NGSk3RVNicH+Onau7y9zsDxUiMz1OXGp+iJinuc3h8AoVJDI/T19ufo2drb3N3e0RFCUzO05Za3uGlqS4zeDwCg8gM0NRYHCBjp6tvczc7AgVJTNBT2JxfoqbqLPA0doMDyI3P05XbHaDlKe5y9vsEBMgJDhPW2x2iJqruszc7QscKzpKWWl4h5altMTT4vEGECEuPEtca3uJnKm5x9bhCxMeLDlKWWl5h5ipusra6gwTHS45R1hkeISUpbbH2OkRFyMuOE1canuGmKe5zN7tDhEtNT9LWWtzhJervM7d8AkQHSg4R1hnd4maq73N3u0QEyQwOUxXaXaElqe5ytrsDBEdNkdRXmh+iJWktsnd7Q8cLz5PYXOBjpuotMLQ3+4IDh4tPk5eb3+Pn6/Az9/vER4xPk9ca3eEkaCuvszc6w4TJC09TFtseYqarL3N3u4MEh8tPExba3uKmqu7zN3sDREfKzVGU2dyg5Wnucvc7REWIyo6Tl1ufYubqrzO4PAIDyIyQ1Njc4OSorLB0eDvDRApQklWX2+AiZajt87h8REZJTQ/S1xmd4SQoK+/1OcTHzFBU2R1hZOhrrvI1ePyEh80RFhndX6KlaOxwM/f7xAdLz1MWmp3hZOhsMHR4PAPFSMyPUlWYW53gY2vxtrtSQ5tC20LbQttC20LbQttC20LbQttC20LkwuTC20LHguQDA0MnAvwC/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(!ne(re)){var ie=re;re=n.locateFile?n.locateFile(ie,s):s+ie}function C(){var e=re;try{if(e==re&&u)return new Uint8Array(u);if(ne(e))try{var t=T(e.slice(37)),n=new Uint8Array(t.length);for(e=0;e<t.length;++e)n[e]=t.charCodeAt(e);var r=n}catch(e){throw Error(`Converting base64 string to bytes failed.`)}else r=void 0;var i=r;if(i)return i;throw`both async and sync fetching of the wasm failed`}catch(e){te(e)}}function ae(){return u||typeof fetch!=`function`?Promise.resolve().then(function(){return C()}):fetch(re,{credentials:`same-origin`}).then(function(e){if(!e.ok)throw`failed to load wasm binary file at '`+re+`'`;return e.arrayBuffer()}).catch(function(){return C()})}function w(e){for(;0<e.length;){var t=e.shift();if(typeof t==`function`)t(n);else{var r=t.s;typeof r==`number`?t.o===void 0?g.get(r)():g.get(r)(t.o):r(t.o===void 0?null:t.o)}}}var oe=[null,[],[]],T=typeof atob==`function`?atob:function(e){var t=``,n=0;e=e.replace(/[^A-Za-z0-9\+\/=]/g,``);do{var r=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e.charAt(n++)),i=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e.charAt(n++)),a=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e.charAt(n++)),o=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e.charAt(n++));r=r<<2|i>>4,i=(i&15)<<4|a>>2;var s=(a&3)<<6|o;t+=String.fromCharCode(r),a!==64&&(t+=String.fromCharCode(i)),o!==64&&(t+=String.fromCharCode(s))}while(n<e.length);return t},se={d:function(){te()},f:function(e,t,n){m.copyWithin(e,t,t+n)},c:function(){return!1},e:function(){return 0},b:function(){},a:function(e,t,n,r){for(var i=0,a=0;a<n;a++){for(var o=h[t+8*a>>2],s=h[t+(8*a+4)>>2],u=0;u<s;u++){var d=m[o+u],f=oe[e];if(d===0||d===10){d=e===1?c:l;for(var g=f,_=0,v=_+NaN,y=_;g[y]&&!(y>=v);)++y;if(16<y-_&&g.subarray&&p)g=p.decode(g.subarray(_,y));else{for(v=``;_<y;){var b=g[_++];if(b&128){var ee=g[_++]&63;if((b&224)==192)v+=String.fromCharCode((b&31)<<6|ee);else{var x=g[_++]&63;b=(b&240)==224?(b&15)<<12|ee<<6|x:(b&7)<<18|ee<<12|x<<6|g[_++]&63,65536>b?v+=String.fromCharCode(b):(b-=65536,v+=String.fromCharCode(55296|b>>10,56320|b&1023))}}else v+=String.fromCharCode(b)}g=v}d(g),f.length=0}else f.push(d)}i+=s}return h[r>>2]=i,0}};(function(){function e(e){n.asm=e.exports,d=n.asm.g,e=d.buffer,n.HEAP8=new Int8Array(e),n.HEAP16=new Int16Array(e),n.HEAP32=h=new Int32Array(e),n.HEAPU8=m=new Uint8Array(e),n.HEAPU16=new Uint16Array(e),n.HEAPU32=new Uint32Array(e),n.HEAPF32=new Float32Array(e),n.HEAPF64=new Float64Array(e),g=n.asm.n,v.unshift(n.asm.h),ee--,n.monitorRunDependencies&&n.monitorRunDependencies(ee),ee==0&&(x!==null&&(clearInterval(x),x=null),S&&(e=S,S=null,e()))}function t(t){e(t.instance)}function r(e){return ae().then(function(e){return WebAssembly.instantiate(e,a)}).then(e,function(e){l(`failed to asynchronously prepare wasm: `+e),te(e)})}var a={a:se};if(ee++,n.monitorRunDependencies&&n.monitorRunDependencies(ee),n.instantiateWasm)try{return n.instantiateWasm(a,e)}catch(e){return l(`Module.instantiateWasm callback failed with error: `+e),!1}return(function(){return u||typeof WebAssembly.instantiateStreaming!=`function`||ne(re)||typeof fetch!=`function`?r(t):fetch(re,{credentials:`same-origin`}).then(function(e){return WebAssembly.instantiateStreaming(e,a).then(t,function(e){return l(`wasm streaming compile failed: `+e),l(`falling back to ArrayBuffer instantiation`),r(t)})})})().catch(i),{}})(),n.___wasm_call_ctors=function(){return(n.___wasm_call_ctors=n.asm.h).apply(null,arguments)},n._opus_decoder_create=function(){return(n._opus_decoder_create=n.asm.i).apply(null,arguments)},n._opus_decode_float=function(){return(n._opus_decode_float=n.asm.j).apply(null,arguments)},n._opus_decoder_destroy=function(){return(n._opus_decoder_destroy=n.asm.k).apply(null,arguments)},n._malloc=function(){return(n._malloc=n.asm.l).apply(null,arguments)},n._free=function(){return(n._free=n.asm.m).apply(null,arguments)};var ce;S=function e(){ce||le(),ce||(S=e)};function le(){function e(){if(!ce&&(ce=!0,n.calledRun=!0,!f)){if(w(v),r(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),n.postRun)for(typeof n.postRun==`function`&&(n.postRun=[n.postRun]);n.postRun.length;){var e=n.postRun.shift();y.unshift(e)}w(y)}}if(!(0<ee)){if(n.preRun)for(typeof n.preRun==`function`&&(n.preRun=[n.preRun]);n.preRun.length;)b();w(_),0<ee||(n.setStatus?(n.setStatus(`Running...`),setTimeout(function(){setTimeout(function(){n.setStatus(``)},1),e()},1)):e())}}if(n.run=le,n.preInit)for(typeof n.preInit==`function`&&(n.preInit=[n.preInit]);0<n.preInit.length;)n.preInit.pop()();return le(),t.ready})})()})),yx,bx,xx,Sx=n((()=>{vx(),h(),F(),bx=function(e){return e[e.OK=0]=`OK`,e[e[`Bad argument`]=-1]=`Bad argument`,e[e[`Buffer too small`]=-2]=`Buffer too small`,e[e[`Internal error`]=-3]=`Internal error`,e[e[`Invalid packet`]=-4]=`Invalid packet`,e[e.Unimplemented=-5]=`Unimplemented`,e[e[`Invalid state`]=-6]=`Invalid state`,e[e[`Memory allocation fail`]=-7]=`Memory allocation fail`,e}(bx||{}),xx=class e{constructor(t,n,r){m(this,`opusModule`,void 0),m(this,`decoderInstance`,void 0),m(this,`opusBufferPointer`,void 0),m(this,`pcmBufferPointer`,void 0),m(this,`channels`,void 0),m(this,`pcmBufferByteSize`,()=>e.MAX_SAMPLES*this.channels*Float32Array.BYTES_PER_ELEMENT),m(this,`unload`,()=>{this.opusModule._free(this.opusBufferPointer),this.opusModule._free(this.pcmBufferPointer),this.opusModule._opus_decoder_destroy(this.decoderInstance)}),m(this,`decode`,t=>{if(t.byteLength>e.MAX_OPUS_BUFFER)throw Error(`Opus packet too large (${t.byteLength} bytes), max ${e.MAX_OPUS_BUFFER} bytes`);this.opusModule.HEAPU8.set(t,this.opusBufferPointer);let n=this.opusModule._opus_decode_float(this.decoderInstance,this.opusBufferPointer,t.byteLength,this.pcmBufferPointer,e.MAX_SAMPLES,0);if(n<0)throw Error(`${bx[n]} (${n})`);let r=this.pcmBufferPointer/Float32Array.BYTES_PER_ELEMENT;return this.opusModule.HEAPF32.subarray(r,r+n*this.channels)}),this.opusModule=t,this.channels=r,this.decoderInstance=this.opusModule._opus_decoder_create(n,r,0),this.opusBufferPointer=this.opusModule._malloc(e.MAX_OPUS_BUFFER),this.pcmBufferPointer=this.opusModule._malloc(this.pcmBufferByteSize())}},yx=xx,m(xx,`MAX_OPUS_BUFFER`,16384),m(xx,`MAX_SAMPLES`,6*960),m(xx,`create`,function(){var e=P(function*(e,t){return new yx(yield _x(),e,t)});return function(t,n){return e.apply(this,arguments)}}())})),Cx=n((()=>{Sx()})),wx=r({OpusDecoderContext:()=>Ex}),Tx,Ex,Dx=n((()=>{U(),Cx(),h(),z(),F(),Ex=class{constructor(e){m(this,`decodedSamples`,[]),m(this,`decoder`,void 0),m(this,`errors`,new T(10)),m(this,`unload`,()=>{this.decoder.unload()}),m(this,`enqueue`,e=>{try{let t=performance.now(),n=this.decoder.decode(new Uint8Array(e.data));this.decodedSamples.push(R(R({},e),{},{type:`audio`,format:`f32`,data:n,statistics:{decodeTime:performance.now()-t,transportTimeFromWorker:0,transportTimeToWorker:0,samplesInBatch:1}}))}catch(e){e instanceof Error&&this.errors.push(e)}}),m(this,`initSegment`,C),m(this,`take`,()=>this.decodedSamples.shift()),this.decoder=e}error(){return this.errors.pop()}},Tx=Ex,m(Ex,`create`,function(){var e=P(function*(e,t){return new Tx(yield xx.create(e,t))});return function(t,n){return e.apply(this,arguments)}}())}));function Ox(e){let t;try{if(t=Ax&&(self.URL||self.webkitURL).createObjectURL(Ax),!t)throw``;let n=new Worker(t,{name:e==null?void 0:e.name});return n.addEventListener(`error`,()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),n}catch(t){return new Worker(`data:text/javascript;charset=utf-8,`+encodeURIComponent(kx),{name:e==null?void 0:e.name})}}var kx,Ax,jx=n((()=>{kx=`var __defProp = Object.defineProperty;
97
+ `;H(),h();var pa={width:256,codedWidth:256,height:144,codedHeight:144},ma={preserveDrawingBuffer:!1,alpha:!1,depth:!1,stencil:!1,antialias:!1,premultipliedAlpha:!1},ha=class e extends tn{constructor(){super(),m(this,`canvas`,document.createElement(`canvas`)),m(this,`context`,Zi(this.canvas,ma)),m(this,`pixelShader`,Qi(this.context,this.context.FRAGMENT_SHADER,da)),m(this,`vertexShader`,Qi(this.context,this.context.VERTEX_SHADER,fa)),m(this,`buffer`,ea(this.context,e.SQUARE_VERTICES)),m(this,`program`,ta(this.context,this.vertexShader,this.pixelShader)),m(this,`textures`,{y:$i(this.context),u:$i(this.context),v:$i(this.context)}),m(this,`textRenderer`,void 0),m(this,`size`,pa),m(this,`modelLocation`,null),m(this,`conversionLocation`,null),m(this,`cachedScaleX`,0),m(this,`cachedScaleY`,0),m(this,`cachedTransformMatrix`,null),m(this,`texturesNeedRealloc`,!0),m(this,`onContextLost`,e=>{this.textRenderer=void 0;let t=Error(e instanceof WebGLContextEvent?e.statusMessage:`webgl context lost`);this.emit(`context lost`,qi(t)),e.preventDefault()}),m(this,`onContextRestored`,()=>{this.emit(`context restored`),this.context=Zi(this.canvas,ma),this.pixelShader=Qi(this.context,this.context.FRAGMENT_SHADER,da),this.vertexShader=Qi(this.context,this.context.VERTEX_SHADER,fa),this.buffer=ea(this.context,e.SQUARE_VERTICES),this.program=ta(this.context,this.vertexShader,this.pixelShader),this.textures={y:$i(this.context),u:$i(this.context),v:$i(this.context)},this.load()}),m(this,`load`,()=>{this.context.useProgram(this.program),this.setupPositionVertexAttributes(),this.texturesNeedRealloc=!0,this.setSize(pa),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(e.REC709)}),m(this,`unload`,()=>{var e;this.setSize({width:1,height:1,codedHeight:1,codedWidth:1}),[this.textures.y,this.textures.u,this.textures.v].forEach(e=>this.context.deleteTexture(e)),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()}),m(this,`resetSize`,()=>{this.setSize({width:this.size.width/2,height:this.size.height/2,codedHeight:this.size.codedHeight/2,codedWidth:this.size.codedWidth/2})}),m(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){let e=t.style.getPropertyValue(`--vindral-subtitle-offset`)||t.style.getPropertyValue(`--vindral-control-bar-offset`),n=parseInt(e||`0`,10),r=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:r})}}),m(this,`updateTexture`,(e,t,n,r)=>{let i=this.context.LUMINANCE,a=this.context.UNSIGNED_BYTE;this.context.bindTexture(this.context.TEXTURE_2D,e),this.texturesNeedRealloc?this.context.texImage2D(this.context.TEXTURE_2D,0,i,t,n,0,i,a,r):this.context.texSubImage2D(this.context.TEXTURE_2D,0,0,0,t,n,i,a,r)}),m(this,`setupPositionVertexAttributes`,()=>{let e=this.context.getAttribLocation(this.program,`position`);this.context.enableVertexAttribArray(e),this.context.vertexAttribPointer(e,2,this.context.FLOAT,!1,0,0)}),m(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))}),m(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)}),m(this,`setConversionMatrix`,e=>{this.context.uniformMatrix4fv(this.conversionLocation,!1,e)}),m(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),Kr(this.canvas)}getTextRenderer(){return this.textRenderer||(this.textRenderer=new ca(this.context)),this.textRenderer}};m(ha,`SQUARE_VERTICES`,new Float32Array([0,0,0,1,1,0,1,1])),m(ha,`REC709`,[1.16438,0,1.79274,-.97295,1.16438,-.21325,-.53291,.30148,1.16438,2.1124,0,-1.1334,0,0,0,1]),m(ha,`REC601`,[1.16438,0,1.59603,-.87079,1.16438,-.39176,-.81297,.52959,1.16438,2.01723,0,-1.08139,0,0,0,1]),h(),E(),A(),M(),P(),R();var ga=new WeakMap,_a=new WeakMap,va=class{constructor(e,t,n,r){m(this,`keySystem`,void 0),m(this,`licenseServerUrl`,void 0),m(this,`certificate`,void 0),m(this,`headers`,{}),m(this,`queryParams`,{}),T(this,ga,void 0),T(this,_a,void 0),k(ga,this,t),this.keySystem=e,this.licenseServerUrl=n,this.certificate=r}get statistics(){return{keySystem:j(ga,this).keySystem,licenseServerUrl:this.licenseServerUrl,mediaKeySystemConfiguration:j(ga,this).getConfiguration()}}getMediaKeys(){var e=this;return N(function*(){return j(_a,e)||k(_a,e,yield j(ga,e).createMediaKeys()),j(_a,e)})()}requestLicense(e){var t=this;return N(function*(){let n=new URL(t.licenseServerUrl);for(let[e,r]of Object.entries(t.queryParams))n.searchParams.append(e,r);let r=yield fetch(n,{method:`POST`,body:e,headers:L({"Content-Type":`application/octet-stream`},t.headers)});if(!r.ok)throw Error(`Failed to fetch license: ${r.statusText}`);return yield r.arrayBuffer()})()}};function ya(e){let t=window.atob(e.replace(/-/g,`+`).replace(/_/g,`/`)),n=``;for(let e=0;e<t.length;e++)n+=`0${t.charCodeAt(e).toString(16)}`.substr(-2);return n}function ba(e){let t=``;for(let n=0;n<e.length;n+=2)t+=String.fromCharCode(parseInt(e.substr(n,2),16));return window.btoa(t).replace(/=/g,``).replace(/\+/g,`-`).replace(/\//g,`_`)}function xa(e,t){if(e.byteLength!==t.byteLength)return!1;let n=new Uint8Array(e),r=new Uint8Array(t);for(let e=0;e<n.length;e++)if(n[e]!==r[e])return!1;return!0}E(),A(),M();var Sa=new WeakMap,Ca=class extends va{constructor(e,t){super(`clearkey`,e,``),T(this,Sa,void 0),k(Sa,this,t)}handleLicenseRequest(e){let t=new Uint8Array(e),n=String.fromCharCode(...t),r=JSON.parse(n),i=[];for(let e=0;e<r.kids.length;e++){let t=r.kids[e];if(t){let e=ya(t).toLowerCase(),n=j(Sa,this)[e];n&&i.push({kty:`oct`,alg:`A128KW`,kid:t,k:ba(n)})}}let a=JSON.stringify({keys:i,type:r.type});return new TextEncoder().encode(a)}};P(),R();var wa={playready:[`150`,`2000`,`3000`],widevine:[`SW_SECURE_CRYPTO`,`SW_SECURE_DECODE`,`HW_SECURE_CRYPTO`,`HW_SECURE_DECODE`,`HW_SECURE_ALL`],fairplay:[``],clearkey:[``]},Ta={initDataTypes:[`cenc`],audioCapabilities:[{contentType:`audio/mp4; codecs="mp4a.40.2"`}],videoCapabilities:[{contentType:`video/mp4; codecs="avc1.42c01f"`}]},Ea={fairplay:{keySystem:`com.apple.fps`,supportedConfig:{initDataTypes:[`sinf`],videoCapabilities:[{contentType:`video/mp4; codecs="avc1.42c01f"`}]}},playready:{keySystem:`com.microsoft.playready`,supportedConfig:Ta},widevine:{keySystem:`com.widevine.alpha`,supportedConfig:Ta},clearkey:{keySystem:`org.w3.clearkey`,supportedConfig:Ta}},Da=function(){var e=N(function*(e,t){return navigator.requestMediaKeySystemAccess(e,[t]).catch(()=>void 0)});return function(t,n){return e.apply(this,arguments)}}(),Oa=function(){var e=N(function*(e,t,n,r,i,a){let o;for(let s of r){let r=n==null?void 0:n.map(e=>L(L({},e),{},{robustness:s,contentType:a?`${i===`audioCapabilities`?`audio/mp4`:`video/mp4`}; codecs="${a}"`:e.contentType}));if(!(yield Da(e,{initDataTypes:t,[i]:r})))break;o=r}return o});return function(t,n,r,i,a,o){return e.apply(this,arguments)}}(),ka=function(){var e=N(function*(e,t,n,r){let{keySystem:i,supportedConfig:a}=Ea[e],{initDataTypes:o,videoCapabilities:s,audioCapabilities:c}=a,l=r==null?void 0:r[e],u=(l==null?void 0:l.videoRobustness)||wa[e],d=(l==null?void 0:l.audioRobustness)||wa[e],[f,p]=yield Promise.all([Oa(i,o,s,u,`videoCapabilities`,t),Oa(i,o,c,d,`audioCapabilities`,n)]);if(!(!f&&!p))return yield Da(i,{initDataTypes:o,videoCapabilities:f,audioCapabilities:p})});return function(t,n,r,i){return e.apply(this,arguments)}}(),Aa=function(){var e=N(function*(e,t,n,r){let i;for(let a of e)if(i=yield ka(a,t,n,r),i)return{keySystem:a,mediaKeySystemAccess:i}});return function(t,n,r,i){return e.apply(this,arguments)}}(),ja=class extends va{constructor(e,t,n){super(`fairplay`,e,t,n)}};H(),R(),P();var Ma=e=>{var t;let n=String.fromCharCode(...new Uint16Array(e)),r=new window.DOMParser().parseFromString(n,`application/xml`),i=r.getElementsByTagName(`HttpHeaders`)[0],a={};if(i){let e=i.getElementsByTagName(`name`),t=i.getElementsByTagName(`value`);for(let n=0;n<e.length;n++){var o,s;let r=(o=e[n])==null?void 0:o.childNodes[0],i=(s=t[n])==null?void 0:s.childNodes[0];r!=null&&r.nodeValue&&i&&i.nodeValue&&(a[r.nodeValue]=i.nodeValue)}}let c=r.getElementsByTagName(`Challenge`)[0],l;if(!(c==null||(t=c.childNodes[0])==null)&&t.nodeValue){var u;l=window.atob((u=c.childNodes[0])==null?void 0:u.nodeValue)}return r.querySelector(`parsererror`)&&(a={"Content-Type":`text/xml; charset=utf-8`,SOAPAction:`"http://schemas.microsoft.com/DRM/2007/03/protocols/AcquireLicense"`},l=e),{headers:a,message:l}},Na=class extends va{constructor(e,t){super(`playready`,e,t)}requestLicense(e){var t=this;return N(function*(){Ee(t.licenseServerUrl,`No license server URL set`);let n=new URL(t.licenseServerUrl);for(let[e,r]of Object.entries(t.queryParams))n.searchParams.append(e,r);let r=Ma(e),i=yield fetch(n,{method:`POST`,headers:L(L({},r.headers),t.headers),body:r.message});if(!i.ok)throw Error(`Failed to fetch license: ${i.statusText}`);return yield i.arrayBuffer()})()}},Pa=class extends va{constructor(e,t){super(`widevine`,e,t)}};H(),B(),E(),M(),O(),P(),A(),R();var Fa=5e3,G=new WeakMap,Ia=new WeakMap,La=new WeakMap,Ra=new WeakMap,za=new WeakMap,Ba=new WeakMap,Va=new WeakMap,Ha=new WeakMap,Ua=new WeakMap,Wa=new WeakMap,Ga=new WeakMap,Ka=new WeakMap,qa=new WeakSet,Ja=new WeakMap,Ya=new WeakMap,Xa=new WeakMap,Za=class{constructor(e,t,n={}){var r=this;z(this,qa),T(this,G,void 0),T(this,Ia,void 0),T(this,La,void 0),T(this,Ra,new C),T(this,za,void 0),T(this,Ba,void 0),T(this,Va,new Map),T(this,Ha,void 0),T(this,Ua,ft()),T(this,Wa,void 0),T(this,Ga,e=>{if(j(G,this).info(`Received DRM data`,{drmData:e}),window.clearTimeout(j(Wa,this)),j(Ba,this)){let t=D(qa,this,ao).call(this,e)[j(Ba,this).keySystem];t&&(j(Ba,this).licenseServerUrl=t)}j(Ra,this).resolve(e)}),T(this,Ka,e=>{j(G,this).info(`Encrypted event received`,{event:e}),D(qa,this,Qa).call(this,e)}),T(this,Ja,e=>{var t,n;j(G,this).debug(`Session message received`,{event:e});let r=e.target,i=e.message;if(!j(Va,this).get(r)){j(G,this).error(`No active session found for event`,{event:e});return}j(G,this).debug(`Requesting license for session`,{sessionId:r.sessionId,licenseServerUrl:(t=j(Ba,this))==null?void 0:t.licenseServerUrl}),(n=j(Ba,this))==null||n.requestLicense(i).then(e=>{j(G,this).debug(`License received for session`,{sessionId:r.sessionId}),r.update(e).catch(e=>{D(qa,this,ro).call(this,{message:`Failed to update session with license`,isFatal:!1,error:e})})}).catch(e=>{D(qa,this,ro).call(this,{message:`Failed to request license`,isFatal:!1,error:e})})}),T(this,Ya,e=>{let t=e.target;j(G,this).debug(`Key status changed for session`,{sessionId:t.sessionId}),t.keyStatuses.forEach((e,t)=>{let n=ya(window.btoa(String.fromCharCode(...new Uint8Array(t))));j(G,this).debug(`Key status`,{base64kid:n,status:e})})}),T(this,Xa,function(){var e=N(function*(e){let t=D(qa,r,io).call(r,e);j(G,r).debug(`Prioritized key system list`,{keySystemList:t});let n=yield Aa(t,e.videoCodec,e.audioCodec,{widevine:j(za,r).widevine,playready:j(za,r).playready});if(!n)return j(G,r).warn(`No supported key system found`),null;j(G,r).debug(`Supported key system found`,n.mediaKeySystemAccess.getConfiguration());let{keySystem:i,mediaKeySystemAccess:a}=n,o=null;return i===`clearkey`?(Ee(e.clearkeys,`No clearkeys found`),o=new Ca(a,e.clearkeys)):i===`playready`?(Ee(e.playreadyLicenseUrl,`No playreadyLicenseUrl found`),o=new Na(a,e.playreadyLicenseUrl)):i===`widevine`?(Ee(e.widevineLicenseUrl,`No widevineLicenseUrl found`),o=new Pa(a,e.widevineLicenseUrl)):i===`fairplay`&&(Ee(e.fairplayLicenseUrl,`No fairplayLicenseUrl found`),Ee(e.fairplayCertificate,`No fairplayCertificate found`),o=new ja(a,e.fairplayLicenseUrl,e.fairplayCertificate)),o&&(o.headers=j(za,r).headers||{},o.queryParams=j(za,r).queryParams||{}),o});return function(t){return e.apply(this,arguments)}}()),k(Ia,this,e),k(G,this,t),k(za,this,n),j(Ia,this).on(`received drm data`,j(Ga,this))}static isSupported(){return!!navigator.requestMediaKeySystemAccess}attach(e){k(La,this,e),j(G,this).info(`Media element attached`),j(La,this).addEventListener(`encrypted`,j(Ka,this))}getStatistics(){var e,t;return!j(Ra,this).resolved&&!((e=j(Ba,this))!=null&&e.statistics)?null:L(L({},j(Ra,this).resolved),(t=j(Ba,this))==null?void 0:t.statistics)}unload(){var e;j(G,this).info(`Unloading EncryptedMediaExtensions`),j(Ia,this).off(`received drm data`,j(Ga,this)),(e=j(La,this))==null||e.removeEventListener(`encrypted`,j(Ka,this)),j(Va,this).forEach((e,t)=>{t.close()}),j(Va,this).clear(),k(Ha,this,void 0),k(Ba,this,void 0)}set headers(e){j(za,this).headers=e,j(Ba,this)&&(j(Ba,this).headers=e)}set queryParams(e){j(za,this).queryParams=e,j(Ba,this)&&(j(Ba,this).queryParams=e)}onChannelSwitch(){if(!j(Ra,this).resolved){j(G,this).debug(`DRM is not used, skipping channel switch handling`);return}ct()&&j(Ua,this).platform.safariVersion<18&&D(qa,this,ro).call(this,{message:`DRM channel switch not supported on Safari < 18`,isFatal:!0}),window.clearTimeout(j(Wa,this));let e=j(Ra,this).resolved;k(Ra,this,new C),k(Wa,this,window.setTimeout(()=>{j(Ra,this).resolve(e)},Fa))}};function Qa(e){var t=this;return N(function*(){try{yield D(qa,t,$a).call(t),j(G,t).debug(`Media keys initialization completed`),yield D(qa,t,eo).call(t,e.initData,e.initDataType)}catch(e){D(qa,t,ro).call(t,{message:`Failed to handle encrypted event`,isFatal:!0,error:e})}})()}function $a(){var e=this;return N(function*(){var t;j(G,e).debug(`Initializing media keys`);let n=yield j(Ra,e).promise;if((t=j(La,e))!=null&&t.mediaKeys){j(G,e).debug(`Media keys already set on media element`);return}if(j(Ha,e)){j(G,e).debug(`Media keys initialization already in progress, waiting for completion`),yield j(Ha,e);return}k(Ha,e,N(function*(){let t=yield j(Xa,e).call(e,n);j(G,e).debug(`CDM obtained`,{cdm:t}),Ee(j(La,e),`No media element found`),Ee(t,`No CDM found`);let r=yield t.getMediaKeys();t.certificate&&(yield D(qa,e,no).call(e,r,t.certificate)),j(G,e).debug(`Setting media keys on media element`),yield j(La,e).setMediaKeys(r),k(Ba,e,t)})()),yield j(Ha,e)})()}function eo(e,t){var n=this;return N(function*(){Ee(j(Ba,n),`No CDM manager found`);let r=yield j(Ba,n).getMediaKeys();if(!e||!D(qa,n,to).call(n,e)){j(G,n).debug(`Duplicate initData, no need to create new session`,{initData:e});return}let i=r.createSession();j(G,n).debug(`Creating new session`,{session:i}),i.addEventListener(`keystatuseschange`,j(Ya,n)),i.closed.then(e=>{j(G,n).info(`Session is closed`,{reason:e})}),i.addEventListener(`message`,j(Ja,n)),j(Va,n).set(i,e),j(G,n).debug(`Generating request for session`,{session:i,initDataType:t,initData:e}),yield i.generateRequest(t,e)})()}function to(e){for(let[t,n]of j(Va,this))if(xa(e,n))return!1;return!0}function no(e,t){var n=this;return N(function*(){try{j(G,n).debug(`Setting server certificate`,{certificate:t}),(yield e.setServerCertificate(t))||j(G,n).warn(`Server certificates are not supported by the CDM.`)}catch(e){j(G,n).error(`Failed to set server certificate`,{error:e})}})()}function ro(e){let{message:t,isFatal:n,error:r}=e;j(G,this).error(t,{error:r}),j(Ia,this).emit(`error`,Xi(t,n,r))}function io(e){let t=[];return e.clearkeys&&t.push(`clearkey`),e.playreadyLicenseUrl&&t.push(`playready`),e.widevineLicenseUrl&&t.push(`widevine`),e.fairplayLicenseUrl&&e.fairplayCertificate&&t.push(`fairplay`),t}function ao(e){return{fairplay:e.fairplayLicenseUrl,playready:e.playreadyLicenseUrl,widevine:e.widevineLicenseUrl,clearkey:void 0}}var oo,so,co,lo,uo,fo,po,mo,ho,go=n((()=>{H(),oo=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],so=(e,t)=>{let n=oo.indexOf(t);if(n===-1||e<1||e>8||e===7)return;let r=new ArrayBuffer(2),i=new Uint8Array(r),a=e===8?7:e;return i[0]=16|n>>1,i[1]=(n&1)<<7|a<<3,r},co=[void 0,1,2,3,4,5,6,8,void 0,void 0,void 0,7,8,24,8],lo=5,uo=29,fo=new Set([1,2,3,4]),po=695,mo=1352,ho=e=>{let t=new Fe(e.slice().buffer),n=e=>t.remainingBits()>=e,r=()=>{if(!n(5))return;let e=t.readBits(5);return e===31?n(6)?32+t.readBits(6):void 0:e},i=()=>{if(!n(4))return;let e=t.readBits(4);return e===15?n(24)?t.readBits(24):void 0:oo[e]},a=r(),o=i();if(!a||!o||!n(4))return;let s=t.readBits(4),c=co[s];if(a!==lo&&a!==uo){if(!fo.has(a)||s===0||!n(2))return{sampleRate:o,channelCount:c};if(t.readBits(1),t.readBits(1)===1){if(!n(14))return{sampleRate:o,channelCount:c};t.readBits(14)}if(!n(1))return{sampleRate:o,channelCount:c};if(t.readBits(1)===1){if(!n(1))return{sampleRate:o,channelCount:c};t.readBits(1)}if(!n(16)||t.readBits(11)!==po||r()!==lo||!n(1)||t.readBits(1)===0)return{sampleRate:o,channelCount:c};let e=i();return e?{sampleRate:e,channelCount:n(12)&&t.readBits(11)===mo&&t.readBits(1)===1&&c===1?2:c}:{sampleRate:o,channelCount:c}}let l=i();if(!(!l||r()===void 0))return a===uo&&c===1&&(c=2),{sampleRate:l,channelCount:c}}}));H();var _o=7,vo=8,yo=e=>{let t=e.getUint32(0,!1),n=e.getUint8(0)<<16|e.getUint16(1,!1),r=0;return n===1?r+=3:t===1&&(r+=4),r},bo=e=>yo(new DataView(e,0))!==0,xo=(e,t=0)=>{for(let n=t;n<e.byteLength-4;n++){let t=e.getUint32(n)===1,r=(e.getUint8(n)<<16|e.getUint16(n+1))==1;if(t||r)return{position:n,nalPrefixSize:t?4:3}}},So=e=>e&31,Co=(e,t)=>{let n=new DataView(e,0),r=xo(n);for(;r;){let{position:i,nalPrefixSize:a}=r,o=xo(n,i+4),s=o?o.position-i-a:void 0;if(!t(new DataView(e,i+a,s),a))return;r=o}},wo=e=>{let t=[],n=[];if(!bo(e)){let r=new DataView(e,0),i=r.getUint8(5)&31,a=6;for(let n=0;n<i;n++){let n=r.getUint16(a);t.push(e.slice(a+2,a+2+n)),a+=n+2}let o=r.getUint8(a);a+=1;for(let t=0;t<o;t++){let t=r.getUint16(a);n.push(e.slice(a+2,a+2+t)),a+=t+2}return{sequenceParameterSets:t,pictureParameterSets:n}}return Co(e,e=>{let r=e.byteOffset+e.byteLength;switch(So(e.getUint8(0))){case vo:n.push(e.buffer.slice(e.byteOffset,r));break;case _o:t.push(e.buffer.slice(e.byteOffset,r));break}return!0}),{sequenceParameterSets:t,pictureParameterSets:n}},To=e=>{let t=new DataView(e),n=t.getUint8(1),r=t.getUint8(2),i=t.getUint8(3),a=new Fe(e,32);a.readUnsignedExpGolomb();let o=1;switch(n){case 100:case 110:case 122:case 244:case 44:case 83:case 86:case 118:case 128:case 138:case 144:if(o=a.readUnsignedExpGolomb(),o===3&&a.readBits(1),a.readUnsignedExpGolomb()+8,a.readUnsignedExpGolomb()+8,a.readBit(),a.readBit()){for(let e=0;e<(o===3?12:8);e++)if(a.readBit()){let t=e<6?16:64,n=0,r=8,i=8;for(let e=0;e<t;e++)i!==0&&(n=a.readSignedExpGolomb(),i=(r+n+256)%256),r=i===0?r:i}}break;default:break}a.readUnsignedExpGolomb();let s=a.readUnsignedExpGolomb();if(s===0)a.readUnsignedExpGolomb();else if(s===1)throw Error(`Unhandled case`);a.readUnsignedExpGolomb(),a.readBit();let c=a.readUnsignedExpGolomb(),l=a.readUnsignedExpGolomb(),u=a.readBit();u===0&&a.readBit(),a.readBit();let d=c+1,f=l+1;if(f*=2-u,f*=16,d*=16,a.readBit()){let e=o===1?1:0,t=1<<(o===1||o===2?1:0),n=2-u<<e,r=a.readUnsignedExpGolomb()*t,i=a.readUnsignedExpGolomb()*t,s=a.readUnsignedExpGolomb()*n,c=a.readUnsignedExpGolomb()*n;d-=r+i,f-=s+c}let p={numerator:1,denumerator:1};if(a.readBit()&&a.readBit()){var m;p=(m=Eo[a.readBits(8)])==null?{numerator:0,denumerator:0}:m}return{width:d,height:f,pixelAspectRatio:p,profileIdc:n,constraintFlags:r,levelIdc:i}},Eo=[{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}],Do=e=>{if(e.length<=78)return;let t=78;for(;t+8<=e.length;){let n=new DataView(e.buffer,e.byteOffset+t,8),r=n.getUint32(0),i=String.fromCharCode(n.getUint8(4),n.getUint8(5),n.getUint8(6),n.getUint8(7));if(r<8||t+r>e.length)break;if(i===`hvcC`)return e.slice(t+8,t+r);t+=r}};H();var Oo=184549376;function ko(e){let t=new Ve(e),n=Ao(t);(n.flags&Oo)!==0&&jo(t);let r=Mo(t);if(String.fromCharCode(...r.frameId)===`TXXX`)return{header:n,txx:No(new Ve(t.readBytes(r.size)))}}function Ao(e){return{id:e.readBytes(3),majorVersion:e.readUint8(),minorVersion:e.readUint8(),flags:e.readUint8(),size:e.readUint32()}}function jo(e){let t=e.readUint32();return e.readBytes(t-4),{}}function Mo(e){return{frameId:e.readBytes(4),size:e.readUint32(),flags:e.readUint16()}}function No(e){return{encoding:e.readUint8(),description:e.readUtf8String(),value:e.readUtf8String()}}H();function Po(e){let t=e.readUint32(),n=String.fromCharCode(e.readUint8(),e.readUint8(),e.readUint8(),e.readUint8());return t===1&&(t=e.readUint64()-8),{size:t-8,type:n}}function Fo(e,t){let n=Po(t),r=new Ve(t.readBytes(n.size));if(n.type!==e.type)throw Error(`invalid error type: ${n.type}, expected ${e.type}`);let i=e.decodeData(r);return r.readRemaining(),i}function Io(e){return{version:e.readUint8(),flags:e.readUint24()}}h();var Lo=class e{constructor({timescale:t,presentationTime:n,presentationTimeDelta:r,schemeIdUri:i,value:a,eventDuration:o,id:s,data:c}){m(this,`type`,e.type),m(this,`timescale`,void 0),m(this,`presentationTime`,void 0),m(this,`presentationTimeDelta`,void 0),m(this,`schemeIdUri`,void 0),m(this,`value`,void 0),m(this,`eventDuration`,void 0),m(this,`id`,void 0),m(this,`data`,void 0),this.timescale=t,this.presentationTime=n,this.presentationTimeDelta=r,this.schemeIdUri=i,this.value=a,this.eventDuration=o,this.id=s,this.data=c}static decodeData(t){let{version:n}=Io(t);switch(n){case 1:{let n=t.readUint32(),r=t.readUint64(),i=t.readUint32(),a=t.readUint32(),o=t.readUtf8String(),s=t.readUtf8String(),c=t.remaining();return new e({timescale:n,presentationTime:r,eventDuration:i,id:a,schemeIdUri:o,value:s,data:t.readBytes(c)})}case 0:{let n=t.readUtf8String(),r=t.readUtf8String(),i=t.readUint32(),a=t.readUint32(),o=t.readUint32(),s=t.readUint32(),c=t.remaining();return new e({timescale:i,presentationTimeDelta:a,schemeIdUri:n,value:r,eventDuration:o,id:s,data:t.readBytes(c)})}default:throw Error(`unsupported version ${n}`)}}};m(Lo,`type`,`emsg`),h();var Ro=class e{constructor(t){m(this,`type`,e.type),m(this,`data`,void 0),this.data=t}static decodeData(t){return new e(t.readRemaining())}};m(Ro,`type`,`mdat`),h();var zo=class e{constructor(t,n,r){m(this,`type`,e.type),m(this,`extra`,void 0),m(this,`byteOffset`,void 0),m(this,`baseMediaDecodeTime`,void 0),this.extra=t,this.byteOffset=n,this.baseMediaDecodeTime=r}static decodeData(t){let n=Io(t),r=t.byteOffset(),i=0;return i=n.version===1?t.readUint64():t.readUint32(),new e(n,r,i)}};m(zo,`type`,`tfdt`),h();var Bo=1,Vo=2,Ho=8,Uo=16,Wo=32,Go=class e{constructor(t,n,r,i){m(this,`type`,e.type),m(this,`extra`,void 0),m(this,`defaultSampleDuration`,void 0),m(this,`defaultSampleSize`,void 0),m(this,`defaultSampleFlags`,void 0),this.extra=t,this.defaultSampleDuration=n,this.defaultSampleSize=r,this.defaultSampleFlags=i}static decodeData(t){let n=Io(t),r,i,a;return t.readUint32(),(n.flags&Bo)>0&&t.readUint64(),(n.flags&Vo)>0&&t.readUint32(),(n.flags&Ho)>0&&(r=t.readUint32()),(n.flags&Uo)>0&&(i=t.readUint32()),(n.flags&Wo)>0&&(a=t.readUint32()),new e(n,r,i,a)}};m(Go,`type`,`tfhd`),h();var Ko=class e{is_sync_sample(t){let n=e.FLAG_SAMPLE_FLAG_IS_NON_SYNC|e.FLAG_SAMPLE_DEPENDS_YES,r=this.sampleFlags[t];if(r!==void 0)return(r&n)===0;if(t===0&&this.firstSampleFlags)return(this.firstSampleFlags&n)===0}constructor(t,n,r){m(this,`type`,e.type),m(this,`dataOffset`,void 0),m(this,`firstSampleFlags`,void 0),m(this,`samplesCount`,void 0),m(this,`sampleDurations`,[]),m(this,`sampleSizes`,[]),m(this,`sampleFlags`,[]),m(this,`sampleCts`,[]),this.dataOffset=n,this.firstSampleFlags=r,this.samplesCount=t}static decodeData(t){let{version:n,flags:r}=Io(t),i=t.readUint32(),a,o;r&e.TRUN_DATA_OFFSET&&(a=t.readUint32()),r&e.TRUN_FIRST_SAMPLE_FLAGS&&(o=t.readUint32());let s=new e(i,a,o);if((r&(e.SAMPLE_DURATION|e.SAMPLE_SIZE|e.SAMPLE_FLAGS|e.SAMPLE_CTS))===0)return s;for(let a=0;a<i;a++)r&e.SAMPLE_DURATION&&s.sampleDurations.push(t.readUint32()),r&e.SAMPLE_SIZE&&s.sampleSizes.push(t.readUint32()),r&e.SAMPLE_FLAGS&&s.sampleFlags.push(t.readUint32()),r&e.SAMPLE_CTS&&s.sampleCts.push(n===0?t.readUint32():t.readInt32());return s}};m(Ko,`TRUN_DATA_OFFSET`,1),m(Ko,`TRUN_FIRST_SAMPLE_FLAGS`,4),m(Ko,`SAMPLE_DURATION`,256),m(Ko,`SAMPLE_SIZE`,512),m(Ko,`SAMPLE_FLAGS`,1024),m(Ko,`SAMPLE_CTS`,2048),m(Ko,`FLAG_SAMPLE_FLAG_IS_NON_SYNC`,65536),m(Ko,`FLAG_SAMPLE_DEPENDS_NO`,33554432),m(Ko,`FLAG_SAMPLE_DEPENDS_YES`,16777216),m(Ko,`type`,`trun`),h();var qo=class e{constructor(t,n,r){m(this,`type`,e.type),m(this,`tfhd`,void 0),m(this,`tfdt`,void 0),m(this,`trun`,void 0),this.tfhd=t,this.tfdt=n,this.trun=r}static decodeData(t){let n,r,i;for(;t.remaining()>0;){let e=_s(t);e instanceof Go&&(n=e),e instanceof zo&&(r=e),e instanceof Ko&&(i=e)}return new e(n,r,i)}};m(qo,`type`,`traf`),h();var Jo=class e{constructor(t){m(this,`type`,e.type),m(this,`traf`,void 0),this.traf=t}static decodeData(t){let n;for(;t.remaining()>0;){let e=_s(t);e instanceof qo&&(n=e)}if(!n)throw Error(`No traf found`);return new e(n)}};m(Jo,`type`,`moof`),h();var Yo=class e{constructor(){m(this,`type`,e.type)}static decodeData(t){return new e}};m(Yo,`type`,`mvhd`),h();var Xo=class e{constructor(t){m(this,`type`,e.type),m(this,`fourCC`,void 0),this.fourCC=t}mediaType(){switch(this.fourCC){case`vide`:return`video`;case`soun`:return`audio`;case`sbtl`:return`text`;default:throw Error(`Unknown media type`)}}static decodeData(t){return Io(t),t.readUint32(),new e(String.fromCharCode(...t.readBytes(4)))}};m(Xo,`type`,`hdlr`),h();var Zo=class e{constructor(t,n,r,i){m(this,`type`,e.type),m(this,`creationTime`,void 0),m(this,`modificationTime`,void 0),m(this,`timescale`,void 0),m(this,`duration`,void 0),this.creationTime=t,this.modificationTime=n,this.timescale=r,this.duration=i}static decodeData(t){let{version:n}=Io(t);return n===1?new e(t.readUint64(),t.readUint64(),t.readUint32(),t.readUint64()):new e(t.readUint32(),t.readUint32(),t.readUint32(),t.readUint32())}};m(Zo,`type`,`mdhd`),h();var Qo=class e{mediaType(){return this.avc1||this.hvc1||this.hev1||this.av01?`video`:`audio`}width(){var e;return(e=this.avc1)==null?void 0:e.width}height(){var e;return(e=this.avc1)==null?void 0:e.height}constructor(t,n,r,i,a,o,s){m(this,`type`,e.type),m(this,`av01`,void 0),m(this,`avc1`,void 0),m(this,`hvc1`,void 0),m(this,`hev1`,void 0),m(this,`mp4a`,void 0),m(this,`opus`,void 0),m(this,`codec`,void 0),this.avc1=t,this.hvc1=n,this.hev1=r,this.av01=i,this.mp4a=a,this.opus=o,this.codec=s}static decodeData(t){Io(t);let n=t.readUint32(),r,i,a,o,s,c,l;for(let e=0;e<n;e++)for(;t.remaining()>0;){let e=_s(t);switch(e.type){case`avc1`:r=`h264`,i=e;break;case`hvc1`:r=`h265`,a=e;break;case`hev1`:r=`h265`,o=e;break;case`av01`:r=`av1`,l=e;break;case`mp4a`:r=`aac`,s=e;break;case`Opus`:r=`opus`,c=e;break}}return new e(i,a,o,l,s,c,r)}};m(Qo,`type`,`stsd`),h();var $o=class e{constructor(t){m(this,`type`,e.type),m(this,`stsd`,void 0),this.stsd=t}static decodeData(t){let n;for(;t.remaining()>0;){let e=_s(t);e instanceof Qo&&(n=e)}if(!n)throw Error(`No stsd found`);return new e(n)}};m($o,`type`,`stbl`),h();var es=class e{constructor(t){m(this,`type`,e.type),m(this,`stbl`,void 0),this.stbl=t}static decodeData(t){let n;for(;t.remaining()>0;){let e=_s(t);e instanceof $o&&(n=e)}if(!n)throw Error(`No stbl found`);return new e(n)}};m(es,`type`,`minf`),h();var ts=class e{constructor(t,n,r){m(this,`type`,e.type),m(this,`hdlr`,void 0),m(this,`minf`,void 0),m(this,`mdhd`,void 0),this.hdlr=t,this.minf=n,this.mdhd=r}static decodeData(t){let n,r,i;for(;t.remaining()>0;){let e=_s(t);e instanceof Xo&&(n=e),e instanceof es&&(r=e),e instanceof Zo&&(i=e)}if(!n)throw Error(`No hdlr found`);if(!r)throw Error(`No minf found`);if(!i)throw Error(`No mdhd found`);return new e(n,r,i)}};m(ts,`type`,`mdia`),h();var ns=class e{constructor(t,n,r,i,a,o,s,c){m(this,`type`,e.type),m(this,`modificationTime`,void 0),m(this,`creationTime`,void 0),m(this,`trackId`,void 0),m(this,`duration`,void 0),m(this,`alternateGroup`,void 0),m(this,`volume`,void 0),m(this,`width`,void 0),m(this,`height`,void 0),this.modificationTime=t,this.creationTime=n,this.trackId=r,this.duration=i,this.alternateGroup=a,this.volume=o,this.width=s,this.height=c}static decodeData(t){let n=Io(t),r=0,i=0;n.version===1?(r=t.readUint64(),i=t.readUint64()):(r=t.readUint32(),i=t.readUint32());let a=t.readUint32();t.readUint32();let o=t.readUint32();t.readUint32(),t.readUint32(),t.readUint16();let s=t.readUint16(),c=t.readUint16();t.readUint16(),Array(9).fill(0).map(()=>t.readUint32());let l=t.readUint16();t.readUint16();let u=t.readUint16();return t.readUint16(),new e(r,i,a,o,s,c,l,u)}};m(ns,`type`,`tkhd`),h();var rs=class e{constructor(t,n){m(this,`type`,e.type),m(this,`tkhd`,void 0),m(this,`mdia`,void 0),this.tkhd=t,this.mdia=n}static decodeData(t){let n,r;for(;t.remaining()>0;){let e=_s(t);e instanceof ns&&(n=e),e instanceof ts&&(r=e)}if(!n)throw Error(`No tkhd found`);if(!r)throw Error(`No mdia found`);return new e(n,r)}};m(rs,`type`,`trak`),h();var is=class e{constructor(t,n){m(this,`type`,e.type),m(this,`mvhd`,void 0),m(this,`traks`,void 0),this.mvhd=t,this.traks=n}static decodeData(t){let n,r=[];for(;t.remaining()>0;){let e=_s(t);e instanceof rs&&r.push(e),e instanceof Yo&&(n=e)}if(!n)throw Error(`No mvhd found`);return new e(n,r)}};m(is,`type`,`moov`),h();var as=class e{constructor(t,n,r,i,a,o,s,c){m(this,`type`,e.type),m(this,`configurationVersion`,void 0),m(this,`avcProfileIndication`,void 0),m(this,`profileCompatibility`,void 0),m(this,`avcLevelIndication`,void 0),m(this,`lengthSizeMinusOne`,void 0),m(this,`sequenceParameterSets`,void 0),m(this,`pictureParameterSets`,void 0),m(this,`bytes`,void 0),this.configurationVersion=t,this.avcProfileIndication=n,this.profileCompatibility=r,this.avcLevelIndication=i,this.lengthSizeMinusOne=a,this.sequenceParameterSets=o,this.pictureParameterSets=s,this.bytes=c}static decodeData(t){let n=t.buffer(),r=t.readUint8(),i=t.readUint8(),a=t.readUint8(),o=t.readUint8(),s=t.readUint8()&3,c=t.readUint8()&31,l=[];for(let e=0;e<c;e++){let e=t.readBytes(t.readUint16());l.push(e)}let u=t.readUint8(),d=[];for(let e=0;e<u;e++){let e=t.readBytes(t.readUint16());d.push(e)}return new e(r,i,a,o,s,l,d,n)}};m(as,`type`,`avcC`);var os=class e{constructor(t,n,r,i,a){m(this,`type`,e.type),m(this,`avcC`,void 0),m(this,`width`,void 0),m(this,`height`,void 0),m(this,`horizontalResolution`,void 0),m(this,`verticalResolution`,void 0),this.avcC=t,this.width=n,this.height=r,this.horizontalResolution=i,this.verticalResolution=a}static decodeData(t){t.readUint32(),t.readUint16(),t.readUint16(),t.readUint32(),t.readUint64(),t.readUint32();let n=t.readUint16(),r=t.readUint16(),i=t.readUint32(),a=t.readUint32();t.readUint32(),t.readUint16(),t.readBytes(32),t.readUint16(),t.readUint16();let o;for(;t.remaining()>0;){let e=_s(t);switch(e.type){case`avcC`:o=e;break}}if(!o)throw Error(`no avcC`);return new e(o,n,r,i,a)}};m(os,`type`,`avc1`),h();var ss=e=>{for(let t=0;t<e.length-1;t++){if(e[t]!==5)continue;let n=0,r=0,i=t+1;for(;i<e.length&&r<4;){let t=e[i];if(n=n<<7|t&127,r++,i++,!(t&128))break}if(n<=0||r===4&&e[i-1]&128)continue;let a=t+1+r,o=a+n;if(o<=e.length)return e.slice(a,o)}},cs=class e{constructor(t){m(this,`type`,e.type),m(this,`decoderConfig`,void 0),this.decoderConfig=t}static decodeData(t){var n;return Io(t),new e((n=ss(t.readRemaining()))==null?new Uint8Array:n)}};m(cs,`type`,`esds`);var ls=class e{constructor(t,n,r){m(this,`type`,e.type),m(this,`channelCount`,void 0),m(this,`sampleRate`,void 0),m(this,`esds`,void 0),this.channelCount=t,this.sampleRate=n,this.esds=r}static decodeData(t){t.readUint32(),t.readUint16(),t.readUint16();let n=t.readUint16();t.readUint16(),t.readUint32();let r=t.readUint16();t.readUint16(),t.readUint32();let i=t.readUint16();t.readUint16(),n===1?t.readBytes(16):n===2&&t.readBytes(36);let a;for(;t.remaining()>0;){let e=_s(t);e.type===`esds`&&(a=e)}return new e(r,i,a)}};m(ls,`type`,`mp4a`),h();var us=class e{constructor(t,n,r,i,a,o,s){m(this,`type`,e.type),m(this,`version`,void 0),m(this,`channelCount`,void 0),m(this,`preSkip`,void 0),m(this,`inputSampleRate`,void 0),m(this,`outputGain`,void 0),m(this,`channelMappingFamily`,void 0),m(this,`channelMappingTable`,void 0),this.version=t,this.channelCount=n,this.preSkip=r,this.inputSampleRate=i,this.outputGain=a,this.channelMappingFamily=o,this.channelMappingTable=s}static decodeData(t){let n=t.readUint8(),r=t.readUint8(),i=t.readUint16(),a=t.readUint32(),o=t.readUint16();return new e(n,r,i,a,o>32767?o-65536:o,t.readUint8(),t.readRemaining())}};m(us,`type`,`dOps`);var ds=class e{constructor(t,n,r){m(this,`type`,e.type),m(this,`dops`,void 0),m(this,`channelCount`,void 0),m(this,`sampleRate`,void 0),this.dops=t,this.channelCount=n,this.sampleRate=r}static decodeData(t){t.readUint32(),t.readUint16(),t.readUint16();let n=t.readUint16();t.readUint16(),t.readUint32();let r=t.readUint16();t.readUint16(),t.readUint32();let i=t.readUint16();return t.readUint16(),n===1&&(t.readUint64(),t.readUint64()),new e(Fo(us,t),r,i)}};m(ds,`type`,`Opus`),h();var fs=class e{constructor(t,n){m(this,`type`,e.type),m(this,`ntpTimestamp`,void 0),m(this,`mediaTime`,void 0),this.ntpTimestamp=t,this.mediaTime=n}date(){let[e,t]=this.ntpTimestamp,n=e*1e3+t/2**32*1e3,r=new Date(Date.UTC(1900,0,1,0,0,0));return new Date(r.getTime()+n)}static decodeData(t){let{version:n}=Io(t);t.readUint32();let r=t.readUint32(),i=t.readUint32();if(n===1){let n=t.readUint64();return new e([r,i],n)}let a=t.readUint32();return new e([r,i],a)}};m(fs,`type`,`prft`),E(),A(),M();var ps=new WeakMap,ms=new WeakMap,hs=class{constructor(e,t){T(this,ps,void 0),T(this,ms,void 0),k(ps,this,e),k(ms,this,t.readBytes(e.size))}data(){return j(ms,this)}get type(){return j(ps,this).type}};H();var gs={moov:is,trak:rs,tkhd:ns,mvhd:Yo,moof:Jo,traf:qo,tfhd:Go,tfdt:zo,trun:Ko,mdat:Ro,mdia:ts,hdlr:Xo,minf:es,stbl:$o,mdhd:Zo,stsd:Qo,prft:fs,avc1:os,avcC:as,esds:cs,mp4a:ls,Opus:ds,emsg:Lo};function _s(e){let t=Po(e),n=gs[t.type],r=new Ve(e.readBytes(t.size));if(!n){let e=new hs(t,r);return r.readRemaining(),e}let i=n.decodeData(r);return r.readRemaining(),i}H();function vs(e){if(e.byteLength<8)throw Error(`Buffer too small`);let t=new Ve(e),n=new Map;for(;t.remaining()>0;){let e=_s(t);n.set(e.type,e)}let r=n.get(`ftyp`),i=n.get(`moov`);if(!r)throw Error(`ftyp atom not found`);if(!i||!(i instanceof is))throw Error(`moov atom not found`);return{ftyp:r,moov:i}}function ys(e){if(e.byteLength<8)throw Error(`Buffer too small`);let t=new Ve(e),n=new Map,r=[];for(;t.remaining()>0;){let e=_s(t);e instanceof Lo&&r.push(e),n.set(e.type,e)}let i=n.get(`moof`),a=n.get(`mdat`),o=n.get(`prft`);if(!i||!(i instanceof Jo))throw Error(`moof atom not found`);if(!a||!(a instanceof Ro))throw Error(`mdat atom not found`);if(o&&!(o instanceof fs))throw Error(`invalid prft found`);return{moof:i,mdat:a,prft:o,emsgs:r}}E(),A(),M();var bs=(e,t)=>e&&e.length>0?{perSample:e}:{defaultValue:t},xs=1e4,Ss=e=>{if(!e||e.length<=1)return;let t=Array(e.length),n=0;for(let r=0;r<e.length;r++)t[r]=n,n+=e[r]||0;return t},Cs=new WeakMap,ws=new WeakMap,Ts=class{constructor(e){T(this,Cs,void 0),T(this,ws,void 0),k(Cs,this,e),k(ws,this,vs(e))}rawBytes(){return j(Cs,this)}init(){return j(ws,this)}},Es=new WeakMap,Ds=new WeakMap,K=new WeakMap,Os=new WeakMap,ks=new WeakMap,As=new WeakMap,js=new WeakMap,Ms=new WeakMap,Ns=new WeakMap,Ps=new WeakMap,Fs=new WeakMap,Is=class e{clone(){return new e(j(Ds,this),new Uint8Array(j(Es,this).buffer.slice(j(Es,this).byteOffset,j(Es,this).byteOffset+j(Es,this).byteLength)))}constructor(e,t){var n,r;T(this,Es,void 0),T(this,Ds,void 0),T(this,K,void 0),T(this,Os,void 0),T(this,ks,void 0),T(this,As,void 0),T(this,js,void 0),T(this,Ms,void 0),T(this,Ns,void 0),T(this,Ps,void 0),T(this,Fs,void 0),k(Es,this,t),k(Ds,this,e),k(K,this,ys(t)),k(Os,this,j(Ds,this).init().moov.traks[0]);let i=j(K,this).moof.traf.trun,a=j(K,this).moof.traf.tfhd,o=a==null?void 0:a.defaultSampleSize,s=(n=i==null?void 0:i.samplesCount)==null?0:n;i!==void 0&&(i.sampleSizes.length>0||i.sampleDurations.length>0||i.sampleFlags.length>0||i.sampleCts.length>0)?k(ks,this,s):o!==void 0&&o>0?k(ks,this,Math.min(s,Math.floor(j(K,this).mdat.data.byteLength/o))):k(ks,this,Math.min(s,xs)),k(As,this,s-j(ks,this)),k(js,this,bs(i==null?void 0:i.sampleDurations,a==null?void 0:a.defaultSampleDuration));let c=o===0&&j(K,this).mdat.data.byteLength>0;k(Ms,this,bs(i==null?void 0:i.sampleSizes,c?void 0:o)),k(Ns,this,Ss(j(Ms,this).perSample)),k(Ps,this,Ss(j(js,this).perSample)),k(Fs,this,j(js,this).perSample?j(js,this).perSample.reduce((e,t)=>e+t,0):((r=j(js,this).defaultValue)==null?0:r)*j(ks,this))}updateBaseMediaDecodeTime(e){let t=new DataView(j(Es,this).buffer,j(Es,this).byteOffset,j(Es,this).byteLength);if(j(K,this).moof.traf.tfdt)if(j(K,this).moof.traf.tfdt.baseMediaDecodeTime=e,j(K,this).moof.traf.tfdt.extra.version===1){let n=Math.floor(e/4294967296),r=(e&4294967295)>>>0;t.setUint32(j(K,this).moof.traf.tfdt.byteOffset-j(Es,this).byteOffset,n),t.setUint32(j(K,this).moof.traf.tfdt.byteOffset-j(Es,this).byteOffset+4,r)}else t.setUint32(j(K,this).moof.traf.tfdt.byteOffset-j(Es,this).byteOffset,e)}producerReferenceTime(){if(j(K,this).prft)return j(K,this).prft.date()}duration(){return j(Fs,this)}baseMediaDecodeTime(){var e;let t=(e=j(K,this).moof.traf.tfdt)==null?void 0:e.baseMediaDecodeTime;if(!t)throw Error(`no baseMediaDecodeTime`);return t}startsWithKeyframe(){var e;let t=j(K,this).moof.traf.trun,n=(t==null?void 0:t.firstSampleFlags)||(t==null?void 0:t.sampleFlags[0])||((e=j(K,this).moof.traf.tfhd)==null?void 0:e.defaultSampleFlags);return n?(n&Ko.FLAG_SAMPLE_DEPENDS_NO)!==0:!1}compositionTimeOffset(e){var t;return(t=j(K,this).moof.traf.trun)==null?void 0:t.sampleCts[e]}sampleCompositionTimeOffsets(){var e,t;return(e=(t=j(K,this).moof.traf.trun)==null?void 0:t.sampleCts)==null?[]:e}timescale(){let e=j(Os,this);if(!e)throw Error(`no tracks`);return e.mdia.mdhd.timescale}mediaType(){var e;let t=(e=j(Os,this))==null?void 0:e.mdia.hdlr.mediaType();if(!t)throw Error(`no media type`);return t}header(){return j(Ds,this)}fragment(){return j(K,this)}samplesCount(){return j(ks,this)}unbackedSamplesCount(){return j(As,this)}sample(e){var t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_;let v=j(K,this).moof.traf.trun,y=j(Os,this),b=j(ks,this),ee=(t=j(K,this).moof.traf.tfdt)==null?void 0:t.baseMediaDecodeTime;if(e>=b||ee===void 0||!y)return;let te=y.mdia.minf.stbl.stsd,x=te.codec;if(!x)return;let ne=v==null?void 0:v.sampleCts[e],re=(n=(r=(i=j(js,this).perSample)==null?void 0:i[e])==null?j(js,this).defaultValue:r)==null?0:n,ie=ee+((a=(o=j(Ps,this))==null?void 0:o[e])==null?e*((s=j(js,this).defaultValue)==null?0:s):a),ae=y.mdia.mdhd.timescale||1e3,S=(c=(l=(u=j(Ms,this).perSample)==null?void 0:u[e])==null?j(Ms,this).defaultValue:l)==null?b===1?j(K,this).mdat.data.byteLength:void 0:c;if(S===void 0)return;let oe=(d=(f=j(Ns,this))==null?void 0:f[e])==null?e*((p=j(Ms,this).defaultValue)==null?0:p):d;if(oe+S>j(K,this).mdat.data.byteLength)return;let C=j(K,this).mdat.data.subarray(oe,oe+S),se=(v==null?void 0:v.is_sync_sample(e))||!1;return y.mdia.hdlr.mediaType()===`video`?{type:`video`,codec:x,width:y.tkhd.width||0,height:y.tkhd.height||0,duration:re,isSync:se,timescale:ae,timestamp:ie,compositionTimeOffset:ne,data:C}:{type:`audio`,codec:x,channels:(te==null||(m=te.opus)==null?void 0:m.channelCount)||(te==null||(h=te.mp4a)==null?void 0:h.channelCount)||0,sampleRate:(te==null||(g=te.opus)==null?void 0:g.sampleRate)||(te==null||(_=te.mp4a)==null?void 0:_.sampleRate)||0,duration:re,isSync:se,timestamp:ie,compositionTimeOffset:ne,data:C,timescale:ae}}rawBytes(){return j(Es,this)}},Ls=new WeakMap,Rs=class{constructor(e){T(this,Ls,void 0),k(Ls,this,new Ts(e))}header(){return j(Ls,this)}createFragment(e){return new Is(j(Ls,this),e)}};function q(e){let t=new ArrayBuffer(e.length),n=new Uint8Array(t);for(let t=0,r=e.length;t<r;t++)n[t]=e.charCodeAt(t);return new Uint8Array(t)}var J={ftyp:q(`ftyp`),mvhd:q(`mvhd`),moov:q(`moov`),trak:q(`trak`),tkhd:q(`tkhd`),mdia:q(`mdia`),mdhd:q(`mdhd`),hdlr:q(`hdlr`),minf:q(`minf`),vmhd:q(`vmhd`),smhd:q(`smhd`),dinf:q(`dinf`),dref:q(`dref`),stbl:q(`stbl`),stsd:q(`stsd`),avc1:q(`avc1`),hvc1:q(`hvc1`),hev1:q(`hev1`),av01:q(`av01`),av1C:q(`av1C`),avcC:q(`avcC`),hvcC:q(`hvcC`),esds:q(`esds`),colr:q(`colr`),nclx:q(`nclx`),mvex:q(`mvex`),trex:q(`trex`),udta:q(`udta`),meta:q(`meta`),ilst:q(`ilst`),moof:q(`moof`),mfhd:q(`mfhd`),traf:q(`traf`),tfhd:q(`tfhd`),tfdt:q(`tfdt`),trun:q(`trun`),mdat:q(`mdat`),mp4a:q(`mp4a`),Opus:q(`Opus`),prft:q(`prft`),dOps:q(`dOps`),emsg:q(`emsg`)};H(),h();var zs=1e3,Bs={vide:q(`vide`),soun:q(`soun`),videoHandler:q(`VideoHandler\0`),soundHandler:q(`SoundHandler\0`),url:q(`url `),pasp:q(`pasp`),btrt:q(`btrt`),stts:q(`stts`),stsc:q(`stsc`),stsz:q(`stsz`),stco:q(`stco`),data:q(`data`),mdir:q(`mdir`),appl:q(`appl`)},Vs=q(`iso6`),Hs=new Uint8Array([0,0,2,0]),Us=[Vs,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([97,118,99,49]),new Uint8Array([109,112,52,49])],Ws=[Vs,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([104,118,99,49]),new Uint8Array([109,112,52,49])],Gs=[Vs,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([97,118,48,49]),new Uint8Array([109,112,52,49])],Ks=[Vs,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([109,112,52,49])],qs=class{constructor(e){m(this,`writer`,void 0),m(this,`moofOffset`,0),this.writer=new Ue(e)}},Y=(e,t,n)=>{e.writer.writeUint32(n+8),e.writer.writeBytes(t)},Js=(e,t,n,r,i)=>{Y(e,t,n+4),e.writer.writeUint8(r),e.writer.writeUint24(i)},Ys=(e,t)=>{Y(e,J.ftyp,Vs.byteLength+Hs.byteLength+t.reduce((e,t)=>e+t.byteLength,0)),e.writer.writeBytes(Vs),e.writer.writeBytes(Hs),t.forEach(t=>e.writer.writeBytes(t))},Xs=2**32,Zs=2208988800,Qs=(e,t,n,r)=>{Js(e,J.prft,20,1,0);let i=n/1e3,a=Math.floor(i),o=(i-a)*1e3*1e3*Xs/1e6;e.writer.writeUint32(t),e.writer.writeUint32(a+Zs),e.writer.writeUint32(o),e.writer.writeUint64(r)},$s=(e,t,n)=>{Js(e,J.mvhd,96,0,0),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint32(n),e.writer.writeUint32(t),e.writer.writeUint32(65536),e.writer.writeUint16(256),e.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])),e.writer.writeUint32(2)},ec=e=>`sequenceParameterSets`in e,tc=e=>`sequenceHeader`in e,nc=e=>`hvcC`in e,rc=e=>e.type===`video`,ic=e=>e.type===`audio`,ac=(e,t,n)=>{let r=e.writer.position();Js(e,J.tkhd,0,0,3),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint32(t.trackId),e.writer.writeUint32(0),e.writer.writeUint32(t.duration*n/t.timescale),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint16(0),e.writer.writeUint16(ic(t)?1:0),e.writer.writeUint16(ic(t)?256:0),e.writer.writeUint16(0),e.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])),rc(t)?(e.writer.writeUint32(t.width*65536),e.writer.writeUint32(t.height*65536)):ic(t)&&(e.writer.writeUint32(0),e.writer.writeUint32(0)),e.writer.writeUint32At(r,e.writer.position()-r)},oc=(e,t)=>{Js(e,J.mdhd,20,0,0),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint32(t.timescale),e.writer.writeUint32(t.duration);let n=t.lang||`und`,r=(n.charCodeAt(0)&31)<<10|(n.charCodeAt(1)&31)<<5|n.charCodeAt(2)&31;e.writer.writeUint16(r),e.writer.writeUint16(0)},sc=(e,t)=>{let n=e.writer.position();Js(e,J.hdlr,0,0,0),e.writer.writeUint32(0),e.writer.writeBytes(rc(t)?Bs.vide:Bs.soun),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeBytes(rc(t)?Bs.videoHandler:Bs.soundHandler),e.writer.writeUint32At(n,e.writer.position()-n)},cc=e=>{let t=e.writer.position();Y(e,J.dinf,0),Js(e,J.dref,16,0,0),e.writer.writeUint32(1),Js(e,Bs.url,0,0,1),e.writer.writeUint32At(t,e.writer.position()-t)},lc=(e,t)=>{let n=e.writer.position();Y(e,J.avcC,0),e.writer.writeUint8(1),e.writer.writeUint8(t.sequenceParameterSets[0][1]),e.writer.writeUint8(t.sequenceParameterSets[0][2]),e.writer.writeUint8(t.sequenceParameterSets[0][3]),e.writer.writeUint8(255),e.writer.writeUint8(224|t.sequenceParameterSets.length),t.sequenceParameterSets.forEach(t=>{e.writer.writeUint16(t.byteLength),e.writer.writeBytes(t)}),e.writer.writeUint8(t.pictureParameterSets.length),t.pictureParameterSets.forEach(t=>{e.writer.writeUint16(t.byteLength),e.writer.writeBytes(t)}),e.writer.writeUint32At(n,e.writer.position()-n)},uc=(e,t)=>{var n,r;let i=e.writer.position();Y(e,J.av1C,0);let{seqProfile:a,operatingPoints:o,colorConfig:s}=t.parsedSequenceHeader,c=o[0];e.writer.writeUint8(129),e.writer.writeUint8(a<<5|((n=c==null?void 0:c.seqLevelIdx)==null?0:n)),e.writer.writeUint8(((r=c==null?void 0:c.tier)==null?0:r)|(s.highBitDepth?1:0)|(s.bitDepth===12?1:0)<<5|(s.monoChrome?1:0)<<4|s.subsamplingX<<3|s.subsamplingY<<2|s.chromaSamplePosition&65535),e.writer.writeUint8(0),e.writer.writeBytes(t.sequenceHeader),e.writer.writeUint32At(i,e.writer.position()-i)},dc=(e,t)=>{let n=e.writer.position();Y(e,J.hvcC,0),e.writer.writeBytes(t.hvcC),e.writer.writeUint32At(n,e.writer.position()-n)},fc=e=>tc(e)?J.av01:nc(e)?J[e.sampleEntry]:J.avc1,pc=(e,t)=>{let n=e.writer.position();Y(e,fc(t),0),e.writer.writeUint32(0),e.writer.writeUint16(0),e.writer.writeUint16(1),e.writer.writeUint16(0),e.writer.writeUint16(0),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint16(t.width),e.writer.writeUint16(t.height),e.writer.writeUint32(4718592),e.writer.writeUint32(4718592),e.writer.writeUint32(0),e.writer.writeUint16(1),e.writer.writeUint8(0),e.writer.writeBytes(new Uint8Array(31)),e.writer.writeUint16(24),e.writer.writeUint16(-1),ec(t)?lc(e,t):tc(t)?(uc(e,t),t.parsedSequenceHeader.colorConfig&&(Y(e,J.colr,11),e.writer.writeBytes(J.nclx),e.writer.writeUint16(t.parsedSequenceHeader.colorConfig.colorPrimaries),e.writer.writeUint16(t.parsedSequenceHeader.colorConfig.transferCharacteristics),e.writer.writeUint16(t.parsedSequenceHeader.colorConfig.matrixCoefficients),e.writer.writeUint8(t.parsedSequenceHeader.colorConfig.colorRange?1:0))):nc(t)&&dc(e,t),t.pixelAspectRatio&&(Y(e,Bs.pasp,8),e.writer.writeUint32(t.pixelAspectRatio.numerator),e.writer.writeUint32(t.pixelAspectRatio.denumerator)),t.bitrate&&(Y(e,Bs.btrt,12),e.writer.writeUint32(0),e.writer.writeUint32(t.bitrate),e.writer.writeUint32(t.bitrate)),e.writer.writeUint32At(n,e.writer.position()-n)},mc=(e,t,n)=>{let r=3;for(e.writer.writeUint8(t);r>0;r--)e.writer.writeUint8(n>>7*r|128);e.writer.writeUint8(n&127)},hc=(e,t)=>{let n=t.decoderConfig.byteLength>0?t.decoderConfig.byteLength+5:0,r=e.writer.position();Js(e,J.esds,0,0,0),mc(e,3,21+n+5+1),e.writer.writeUint16(t.trackId),e.writer.writeUint8(0),mc(e,4,13+n);let i=t.codec===`mp3`&&t.sampleRate>24e3?107:64;e.writer.writeUint8(i),e.writer.writeUint8(21),e.writer.writeUint24(0),e.writer.writeUint32(t.bitrate||0),e.writer.writeUint32(t.bitrate||0),t.decoderConfig.byteLength>0&&(mc(e,5,t.decoderConfig.byteLength),e.writer.writeBytes(t.decoderConfig)),mc(e,6,1),e.writer.writeUint8(2),e.writer.writeUint32At(r,e.writer.position()-r)},gc=e=>{switch(e){case`aac`:case`mp3`:return J.mp4a;case`opus`:return J.Opus}},_c=(e,t)=>{let n=e.writer.position();Y(e,J.dOps,0),e.writer.writeUint8(0);let r=t.decoderConfig,i=new DataView(r.buffer,r.byteOffset,r.byteLength);e.writer.writeUint8(i.getUint8(9)),e.writer.writeUint16(i.getUint16(10,!0)),e.writer.writeUint32(i.getUint32(12,!0)),e.writer.writeUint16(i.getUint16(16,!0)),e.writer.writeBytes(t.decoderConfig.slice(18)),e.writer.writeUint32At(n,e.writer.position()-n)},vc=(e,t)=>{let n=e.writer.position();switch(Y(e,gc(t.codec),0),e.writer.writeUint32(0),e.writer.writeUint16(0),e.writer.writeUint16(1),e.writer.writeUint16(0),e.writer.writeUint16(0),e.writer.writeUint32(0),e.writer.writeUint16(t.channelCount),e.writer.writeUint16(16),e.writer.writeUint32(0),e.writer.writeUint16(t.sampleRate),e.writer.writeUint16(0),t.codec){case`aac`:case`mp3`:hc(e,t);break;case`opus`:_c(e,t);break}t.bitrate&&(Y(e,Bs.btrt,12),e.writer.writeUint32(0),e.writer.writeUint32(t.bitrate),e.writer.writeUint32(t.bitrate)),e.writer.writeUint32At(n,e.writer.position()-n)},yc=(e,t)=>{let n=e.writer.position();Y(e,J.stbl,0);let r=e.writer.position();Js(e,J.stsd,0,0,0),e.writer.writeUint32(1),rc(t)?pc(e,t):ic(t)&&vc(e,t),e.writer.writeUint32At(r,e.writer.position()-r),Js(e,Bs.stts,4,0,0),e.writer.writeUint32(0),Js(e,Bs.stsc,4,0,0),e.writer.writeUint32(0),Js(e,Bs.stsz,8,0,0),e.writer.writeUint32(0),e.writer.writeUint32(0),Js(e,Bs.stco,4,0,0),e.writer.writeUint32(0),e.writer.writeUint32At(n,e.writer.position()-n)},bc=(e,t)=>{let n=e.writer.position();Y(e,J.minf,0),rc(t)?(Js(e,J.vmhd,8,0,1),e.writer.writeUint32(0),e.writer.writeUint32(0)):ic(t)&&(Js(e,J.smhd,4,0,0),e.writer.writeUint16(0),e.writer.writeUint16(0)),cc(e),yc(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},xc=(e,t)=>{let n=e.writer.position();Y(e,J.mdia,0),oc(e,t),sc(e,t),bc(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},Sc=(e,t,n)=>{let r=e.writer.position();Y(e,J.trak,0),ac(e,t,n),xc(e,t),e.writer.writeUint32At(r,e.writer.position()-r)},Cc=(e,t)=>{Js(e,J.trex,20,0,0),e.writer.writeUint32(t.trackId),e.writer.writeUint32(1),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint32(0)},wc=(e,t)=>{let n=e.writer.position();Y(e,J.mvex,0),t.forEach(t=>Cc(e,t)),e.writer.writeUint32At(n,e.writer.position()-n)},Tc=(e,t,n)=>{let r=e.writer.position();Y(e,q(t),0),Y(e,Bs.data,0),e.writer.writeUint32(1),e.writer.writeUint32(0),e.writer.writeBytes(q(n)),e.writer.writeUint32At(r,e.writer.position()-r),e.writer.writeUint32At(r+8,e.writer.position()-r-8)},Ec=(e,t)=>{let n=e.writer.position();Js(e,J.meta,0,0,0);let r=e.writer.position();Y(e,J.hdlr,25),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeBytes(Bs.mdir),e.writer.writeBytes(Bs.appl),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint8(0),e.writer.writeUint32At(r,e.writer.position()-r);let i=e.writer.position();Y(e,J.ilst,0),t==null||t.forEach((t,n)=>Tc(e,n,t)),e.writer.writeUint32At(i,e.writer.position()-i),e.writer.writeUint32At(n,e.writer.position()-n)},Dc=(e,t)=>{let n=e.writer.position();Y(e,J.udta,0),Ec(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},Oc=(e,t,n,r)=>{let i=e.writer.position();Y(e,J.moov,0),$s(e,0,n),t.forEach(t=>Sc(e,t,n)),wc(e,t),r&&Dc(e,r),e.writer.writeUint32At(i,e.writer.position()-i)},kc=(e,t)=>{let n=e.writer.position();Js(e,J.tfhd,16,0,56),e.writer.writeUint32(t.trackId),e.writer.writeUint32(t.defaultDuration||0),e.writer.writeUint32(t.defaultSize||0),e.writer.writeUint32(t.defaultFlags||0),e.writer.writeUint32At(n,e.writer.position()-n)},Ac=(e,t)=>{let n=e.writer.position();Js(e,J.tfdt,8,1,0);let r=Math.floor(t.timestamp/4294967296),i=(t.timestamp&4294967295)>>>0;e.writer.writeUint32(r),e.writer.writeUint32(i),e.writer.writeUint32At(n,e.writer.position()-n)},jc=(e,t)=>{if(!t.samples[0])throw Error(`At least one sample must be provided`);let n=t.samples.some(e=>!!e.compositionTimeOffset),r=Mc(t.samples[0])!==t.defaultFlags,i=t.samples.length>1,a=1;r&&(a|=4),n&&(a|=2048),i&&(a|=512,a|=256,a|=1024);let o=e.writer.position();Js(e,J.trun,16,1,a),e.writer.writeUint32(t.samples.length);let s=e.writer.position();e.writer.writeUint32(0),r&&e.writer.writeUint32(Mc(t.samples[0]));for(let r of t.samples)i&&(e.writer.writeUint32(r.duration),e.writer.writeUint32(r.data.byteLength),e.writer.writeUint32(Mc(r))),n&&e.writer.writeUint32(r.compositionTimeOffset||0);e.writer.writeUint32At(s,e.writer.position()-e.moofOffset+8),e.writer.writeUint32At(o,e.writer.position()-o)},Mc=e=>e.isSync?33554432:16842752,Nc=(e,t)=>{let n=e.writer.position();Y(e,J.traf,0),kc(e,t),Ac(e,t),jc(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},Pc=(e,t)=>{Js(e,J.mfhd,4,0,0),e.writer.writeUint32(t)},Fc=(e,t)=>{let n=e.writer.position();Y(e,J.moof,0),Pc(e,t.sequenceNumber),Nc(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},Ic=(e,t,n)=>{Y(e,J.mdat,n);for(let n of t.samples){let t=n.data instanceof ArrayBuffer?new Uint8Array(n.data):n.data;e.writer.writeBytes(t)}},Lc=(e,t)=>{let n=new qs,r=e.filter(e=>rc(e)&&ec(e)).length>0,i=e.filter(e=>rc(e)&&nc(e)).length>0;return e.filter(e=>rc(e)&&tc(e)).length>0?Ys(n,Gs):i?Ys(n,Ws):r?Ys(n,Us):Ys(n,Ks),Oc(n,e,zs,t),n.writer.buffer()},Rc=e=>{var t;let n=0;for(let t of e.samples)n+=t.data.byteLength;let r=new qs(n+256);return((t=e.samples[0])==null?void 0:t.producerReferenceTime)!==void 0&&Qs(r,e.trackId,e.samples[0].producerReferenceTime,e.timestamp),r.moofOffset=r.writer.position(),Fc(r,e),Ic(r,e,n),r.writer.bufferExact()},zc=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return Rc({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:33554432,defaultDuration:n.duration,samples:e})},Bc=(e,t,n,r)=>Lc([{type:`audio`,codec:`aac`,decoderConfig:e,channelCount:t,sampleRate:n,timescale:r,duration:0,trackId:1}]),Vc=e=>{let{sequenceParameterSets:t,pictureParameterSets:n}=wo(e),r=t[0],i=n[0];if(!r||!i)throw Error(`No sps or pps provided`);return To(r)},Hc=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return Rc({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:n.isSync?33554432:16842752,defaultDuration:n.duration,samples:e})},Uc=(e,t)=>{let{sequenceParameterSets:n,pictureParameterSets:r}=wo(e),i=Vc(e);return Lc([{type:`video`,sequenceParameterSets:n.map(e=>new Uint8Array(e)),pictureParameterSets:r.map(e=>new Uint8Array(e)),width:i.width,height:i.height,timescale:t,duration:0,trackId:1}])},Wc=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return Rc({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:n.isSync?33554432:16842752,defaultDuration:n.duration,samples:e})},Gc=(e,t,n,r,i)=>Lc([{type:`video`,hvcC:new Uint8Array(e),sampleEntry:i,width:n,height:r,timescale:t,duration:0,trackId:1}]),Kc=(e,t,n)=>Lc([{type:`audio`,trackId:1,channelCount:t,timescale:n,codec:`opus`,decoderConfig:e,duration:0,sampleRate:48e3}]),qc=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return Rc({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:33554432,defaultDuration:n.duration,samples:e})};H(),E(),A(),M();var Jc=e=>{if(e.length<=78)return;let t=78;for(;t+8<=e.length;){let n=new DataView(e.buffer,e.byteOffset+t,8),r=n.getUint32(0),i=String.fromCharCode(n.getUint8(4),n.getUint8(5),n.getUint8(6),n.getUint8(7));if(r<8||t+r>e.length)break;if(i===`av1C`)return e.slice(t+8,t+r);t+=r}};Symbol.iterator;var Yc=e=>{let t=new Fe(e);return t.peekBit()===1&&t.readBits(32),Qc(t),ll(t)},Xc=e=>{let t=0,n=0;for(let r=0;r<8;r++){let i=e.readBits(8);if(t|=(i&127)<<r*7,n+=1,(i&128)!=128)break}return[n,t]},Zc=e=>{let t=0;for(;t<100&&e.readBit()===0;)t++;return t>=32?0:e.readBits(t)+(1<<t)-1},Qc=e=>{let t=e.remainingBits()/8,n=e.readBits(8);if(n>>7&1)return;let r=n>>3&15,i=n>>2&1,a=n>>1&1;i===1&&e.readBits(8);let[o,s]=a?Xc(e):[0,t];return{headerLength:1+i+o,type:r,obuSize:s}},$c=e=>{let t=e.readBits(32),n=e.readBits(32),r=e.readBit()!==0,i=0;return r&&(i=Zc(e)+1),{timescale:n,equalPictureInterval:r,numUnitsInDisplayTick:t,numTicksPerPicture:i}},el=2,tl=2,nl=1,rl=2,il=2,al=13,ol=0,sl=2,cl=0,ll=e=>{var t;let n=e.readBits(3),r=e.readBit()!==0,i=e.readBit()!==0,a,o=!1,s=!1,c=!1,l=0,u=0,d=[];if(i)e.readBits(5);else{if(s=e.readBit()!==0,s&&(a=$c(e),o=e.readBit()!==0,o))throw Error(`Not implemented`);c=e.readBit()!==0;let t=e.readBits(5)+1;for(let n=0;n<t;n++){let t=e.readBits(12),n=e.readBits(5),r=0;if(n>7&&(r=e.readBit()),o)throw Error(`decoderModelInfoPresentFlag==1`);c&&e.readBit()!==0&&e.readBits(4),d.push({tier:r,operatingPointIdc:t,seqLevelIdx:n})}}let f=e.readBits(4)+1,p=e.readBits(4)+1,m=e.readBits(f)+1,h=e.readBits(p)+1,g=!1;g=i?!1:e.readBit()!==0,g&&(l=e.readBits(4)+2,u=e.readBits(3)+1);let _=e.readBit()!==0,v=e.readBit()!==0,y=e.readBit()!==0,b=!1,ee=!1,te=!1,x=!1,ne=!1,re=!1,ie=!1,ae=el,S=tl,oe=0;i||(b=e.readBit()!==0,ee=e.readBit()!==0,te=e.readBit()!==0,x=e.readBit()!==0,ne=e.readBit()!==0,ne&&(re=e.readBit()!==0,ie=e.readBit()!==0),ae=e.readBit()===0?e.readBit():el,S=ae>0?e.readBit()>0?tl:e.readBit():tl,oe=ne?e.readBits(3):0);let C=e.readBit()!==0,se=e.readBit()!==0,w=e.readBit()!==0;return{seqProfile:n,stillPicture:r,reducedStillPictureHeader:i,timingInfoPresentFlag:s,timingInfo:(t=a)==null?{equalPictureInterval:!1,numUnitsInDisplayTick:0,timescale:0,numTicksPerPicture:0}:t,decoderModelInfoPresentFlag:o,initialDisplayDelayPresentFlag:c,operatingPoints:d,frameWidthBits:f,frameHeightBits:p,maxFrameWidth:m,maxFrameHeight:h,frameIdNumbersPresentFlag:g,deltaFrameIdLength:l,additionalFrameIdLength:u,use_128x128Superblock:_,enableFilterIntra:v,enableIntraEdgeFilter:y,enableInterintraCompound:b,enableMaskedCompound:ee,enableWarpedMotion:te,enableDualFilter:x,enableOrderHint:ne,enableJntComp:re,enableRefFrameMvs:ie,seqForceScreenContentTools:ae,seqForceIntegerMv:S,orderHintBits:oe,enableSuperres:C,enableCdef:se,enableRestoration:w,colorConfig:ul(e,n),filmGrainParamsPresent:e.readBit()!==0}},ul=(e,t)=>{let n=e.readBit()!==0,r=8,i=!1;t===2&&n?r=e.readBit()===0?10:12:t<=2&&(r=n?10:8),i=t===1?!1:e.readBit()!==0;let a=i?1:3,o=e.readBit()!==0,s=rl,c=il,l=sl,u=!1,d=0,f=0,p=cl,m=!1;return o&&(s=e.readBits(8),c=e.readBits(8),l=e.readBits(8)),i?(u=e.readBit()!==0,d=1,f=1,p=cl,m=!1,{highBitDepth:n,bitDepth:r,monoChrome:i,chromaSamplePosition:p,colorPrimaries:s,colorRange:u,matrixCoefficients:l,numPlanes:a,separateUvDeltaQ:m,subsamplingX:d,subsamplingY:f,transferCharacteristics:c}):s===nl&&c===al&&l===ol?(u=!0,d=0,f=0,{highBitDepth:n,bitDepth:r,monoChrome:i,chromaSamplePosition:p,colorPrimaries:s,colorRange:u,matrixCoefficients:l,numPlanes:a,separateUvDeltaQ:m,subsamplingX:d,subsamplingY:f,transferCharacteristics:c}):(u=e.readBit()!==0,t===0?(d=1,f=1):t===1?(d=0,f=0):r===12?(d=e.readBit(),f=d===0?0:e.readBit()):(d=1,f=0),d!==0&&f!==0&&(p=e.readBits(2)),m=e.readBit()!==0,{highBitDepth:n,bitDepth:r,monoChrome:i,chromaSamplePosition:p,colorPrimaries:s,colorRange:u,matrixCoefficients:l,numPlanes:a,separateUvDeltaQ:m,subsamplingX:d,subsamplingY:f,transferCharacteristics:c})},dl=e=>{let t=Yc(e);if(t)return{width:t.maxFrameWidth,height:t.maxFrameHeight}},fl=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return Rc({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:n.isSync?33554432:16842752,defaultDuration:n.duration,samples:e})},pl=(e,t)=>{let n=Yc(e);if(!n)throw Error(`Failed to parse sequence header`);return Lc([{type:`video`,parsedSequenceHeader:n,sequenceHeader:new Uint8Array(e),width:n.maxFrameWidth,height:n.maxFrameHeight,timescale:t,duration:0,trackId:1}])};go();var ml=e=>{let{codec:t,initData:n,timescale:r}=e;switch(t){case`h264`:return gl(n,r);case`h265`:return vl(n,r,e.width,e.height,e.codecString);case`av1`:return _l(n,r);case`opus`:return yl(n,r);case`aac`:return bl(n,r,e.channelCount||2,e.sampleRate||r);default:throw Error(`Failed to initialize ${t} segment`)}},hl=(e,t)=>{switch(e){case`h264`:return Vc(t);case`av1`:return dl(t)}},gl=(e,t)=>Uc(e,t),_l=(e,t)=>pl(e,t),vl=(e,t,n,r,i)=>{if(!n||!r)throw Error(`HEVC init segment requires width and height`);return Gc(e,t,n,r,i!=null&&i.startsWith(`hev1`)?`hev1`:`hvc1`)},yl=(e,t)=>{let n=new DataView(e).getUint8(9);return Kc(new Uint8Array(e),n,t)},bl=(e,t,n,r)=>{var i,a;let o=new Uint8Array(e),s=ho(o);return Bc(o,(i=s==null?void 0:s.channelCount)==null?n:i,(a=s==null?void 0:s.sampleRate)==null?r:a,t)},xl=(e,t)=>{if(!e[0])throw Error(`At least one sample must be provided`);switch(e[0].codec){case`h264`:return Hc(e,t);case`h265`:return Wc(e,t);case`opus`:return qc(e,t);case`aac`:return zc(e,t);case`av1`:return fl(e,t);default:throw Error(`Unsupported codec ${e[0].codec}`)}},Sl,Cl,wl=n((()=>{Sl=e=>{if(!e)return;let t=e.channelMappingTable,n=new Uint8Array(19+t.byteLength),r=new DataView(n.buffer,n.byteOffset,n.byteLength);return n.set([79,112,117,115,72,101,97,100],0),r.setUint8(8,1),r.setUint8(9,e.channelCount),r.setUint16(10,e.preSkip,!0),r.setUint32(12,e.inputSampleRate,!0),r.setInt16(16,e.outputGain,!0),r.setUint8(18,e.channelMappingFamily),t.byteLength>0&&n.set(t,19),n},Cl=(e,t)=>{if(e<1||e>2)return;let n=new Uint8Array(19),r=new DataView(n.buffer,n.byteOffset,n.byteLength);return n.set([79,112,117,115,72,101,97,100]),r.setUint8(8,1),r.setUint8(9,e),r.setUint16(10,3840,!0),r.setUint32(12,t,!0),r.setInt16(16,0,!0),r.setUint8(18,0),n}})),Tl=n((()=>{wl()}));H();var El=function(e){return e[e.NONE=0]=`NONE`,e[e.SYNC=1]=`SYNC`,e[e.INIT=2]=`INIT`,e[e.RENDITIONS=4]=`RENDITIONS`,e[e.TIMED_METADATA=8]=`TIMED_METADATA`,e[e.HAS_COMPOSITION_TIME=16]=`HAS_COMPOSITION_TIME`,e}({}),Dl=e=>!!(e&El.SYNC),Ol=e=>!!(e&El.INIT),kl=e=>!!(e&El.RENDITIONS),Al=e=>!!(e&El.TIMED_METADATA),jl=e=>!!(e&El.HAS_COMPOSITION_TIME),Ml=e=>{let t=new DataView(e,0),n=t.getUint8(0),r=t.getUint16(1),i=t.getUint8(3),a=t.getUint8(4),o=Le(new Uint8Array(e),5,12),s=t.getUint32(13),c=jl(i)?t.getInt16(17):void 0;return{version:n,renditionId:a,flags:i,timestamp:o,timescale:s,payload:e.slice(r),compositionTimeOffset:c}};H(),h();var Nl=(e,t)=>n=>n.remove(Math.max(0,e),Math.min(1/0,t)),Pl=e=>{let{buffered:t}=e;t.length!==0&&e.remove(t.start(0),t.end(t.length-1))},Fl=e=>t=>t.appendBuffer(e),Il=e=>t=>t.changeType(e),Ll=class extends Error{constructor(){super(`SourceBuffer was disposed before the queued operation ran`),this.name=`SourceBufferDisposedError`}},Rl=class{constructor(e){m(this,`commandQueue`,[]),m(this,`sourceBuffer`,void 0),m(this,`errorCallback`,void 0),m(this,`isDisposed`,!1),m(this,`currentInit`,void 0),m(this,`setErrorCallback`,e=>{this.errorCallback=e}),m(this,`onError`,e=>{var t;(t=this.errorCallback)==null||t.call(this,e)}),m(this,`handleQueue`,()=>{if(!this.sourceBuffer.updating){var e;(e=this.commandQueue.shift())==null||e.execute(this.sourceBuffer)}}),m(this,`enqueue`,(e,t,n)=>{if(this.isDisposed){n(new Ll);return}this.commandQueue.push(new Rt(e,t,n))}),m(this,`submit`,e=>new Promise((t,n)=>{this.enqueue(e,t,n),this.handleQueue()})),m(this,`appendBuffer`,(e,t)=>new Promise((n,r)=>{t&&this.currentInit!==t&&(this.enqueue(Fl(t),S,r),this.currentInit=t),this.enqueue(Fl(e),n,r),this.handleQueue()})),m(this,`execute`,e=>this.submit(e)),m(this,`buffered`,()=>this.sourceBuffer.buffered),m(this,`removeFromMediaSource`,e=>{this.dispose(),e.removeSourceBuffer(this.sourceBuffer)}),m(this,`dispose`,()=>{this.isDisposed=!0,this.sourceBuffer.removeEventListener(`updateend`,this.handleQueue),this.sourceBuffer.removeEventListener(`error`,this.onError);let e=this.commandQueue;this.commandQueue=[],this.errorCallback=void 0,e.forEach(e=>e.abort(new Ll))}),m(this,`changeType`,e=>this.submit(Il(e))),m(this,`removeBuffer`,(e,t)=>this.submit(Nl(e,t))),m(this,`flush`,()=>this.submit(Pl)),this.sourceBuffer=e,this.sourceBuffer.addEventListener(`updateend`,this.handleQueue),this.sourceBuffer.addEventListener(`error`,this.onError)}};H(),h();var zl=class extends tn{constructor(){super(),m(this,`MediaSource`,qe()),m(this,`mediaSource`,new this.MediaSource),m(this,`isOpen`,()=>this.mediaSource.readyState===`open`),m(this,`isClosed`,()=>this.mediaSource.readyState===`closed`),m(this,`isEnded`,()=>this.mediaSource.readyState===`ended`),m(this,`createObjectURL`,()=>URL.createObjectURL(this.mediaSource)),m(this,`attach`,e=>{let t=e;if(`srcObject`in t)try{t.srcObject=this.mediaSource}catch(e){if(e instanceof Error&&e.name!==`TypeError`)throw e;t.src=this.createObjectURL()}else e.src=this.createObjectURL()}),m(this,`detach`,e=>{if(this.mediaSource&&this.mediaSource.readyState===`open`)try{this.mediaSource.endOfStream()}catch(e){}e.srcObject&&(e.srcObject=null),e.src!==``&&(URL.revokeObjectURL(e.src),e.removeAttribute(`src`)),e.load()}),m(this,`addSourceBuffer`,e=>new Rl(this.mediaSource.addSourceBuffer(e))),m(this,`removeSourceBuffer`,e=>{e.removeFromMediaSource(this.mediaSource)}),m(this,`endOfStream`,e=>{this.mediaSource.endOfStream(e)}),m(this,`onSourceOpen`,()=>{this.setDurationIfNeeded(),this.emit(`source open`)}),m(this,`onSourceEnded`,()=>this.emit(`source ended`)),m(this,`onSourceClosed`,()=>this.emit(`source close`)),m(this,`setDurationIfNeeded`,()=>{if(Number.isNaN(this.mediaSource.duration)&&this.mediaSource.readyState===`open`){for(let e=0;e<this.mediaSource.sourceBuffers.length;e++){let t=this.mediaSource.sourceBuffers[e];if(t!=null&&t.updating)return}this.mediaSource.duration=1/0}}),this.mediaSource.addEventListener(`sourceopen`,this.onSourceOpen),this.mediaSource.addEventListener(`sourceclose`,this.onSourceClosed),this.mediaSource.addEventListener(`sourceended`,this.onSourceEnded)}};m(zl,`isTypeSupported`,e=>{var t,n;return(t=(n=qe())==null?void 0:n.isTypeSupported(e))==null?!1:t});var Bl=`data:video/mp4;base64,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`;h(),P();var Vl=()=>`wakeLock`in navigator&&window.navigator.userAgent.indexOf(`Samsung`)===-1,Hl=class{constructor(){m(this,`enabled`,!1),m(this,`wakeLockVideo`,void 0),m(this,`_wakeLock`,null),m(this,`handleVisibilityChange`,()=>{this._wakeLock!==null&&document.visibilityState===`visible`&&this.enable()}),Vl()&&(this._wakeLock=null,document.addEventListener(`visibilitychange`,this.handleVisibilityChange),document.addEventListener(`fullscreenchange`,this.handleVisibilityChange))}_addSourceToVideo(e,t,n){let r=document.createElement(`source`);r.src=n,r.type=`video/${t}`,e.appendChild(r)}get isEnabled(){return this.enabled}attach(e){if(!Vl()){if(!this.wakeLockVideo){let e=document.createElement(`video`);this.wakeLockVideo=e,this.wakeLockVideo.setAttribute(`title`,`Live Stream`),this.wakeLockVideo.setAttribute(`playsinline`,``),this._addSourceToVideo(this.wakeLockVideo,`mp4`,Bl),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())})})}e&&e.appendChild(this.wakeLockVideo)}}enable(){var e=this;return N(function*(){if(Vl())return navigator.wakeLock.request(`screen`).then(t=>{e._wakeLock=t,e.enabled=!0,e._wakeLock.addEventListener(`release`,()=>{})}).catch(()=>{e.enabled=!1});var t,n;return((t=(n=e.wakeLockVideo)==null?void 0:n.play())==null?Promise.resolve():t).then(t=>(e.enabled=!0,t)).catch(()=>{e.enabled=!1})})()}disable(){if(Vl())this._wakeLock&&this._wakeLock.release(),this._wakeLock=null;else{var e,t;(e=this.wakeLockVideo)==null||e.pause(),(t=this.wakeLockVideo)==null||t.remove()}this.enabled=!1}unload(){document.removeEventListener(`visibilitychange`,this.handleVisibilityChange),document.removeEventListener(`fullscreenchange`,this.handleVisibilityChange),this.disable()}};E(),A(),M(),B(),O();var Ul=/\r\n|\r|\n/,Wl=new WeakMap,Gl=new WeakMap,Kl=class{constructor(e){T(this,Wl,void 0),T(this,Gl,void 0),k(Wl,this,e),k(Gl,this,0)}skipEmptyLines(){let e=0;for(;j(Wl,this)[j(Gl,this)]===``;){var t;k(Gl,this,(t=j(Gl,this),t++,t)),e++}return e}readLine(){var e,t;return j(Wl,this)[k(Gl,this,(e=j(Gl,this),t=e++,e)),t]}peekLine(){return j(Wl,this)[j(Gl,this)]}takeUntilEmptyLine(){let e=[];for(;j(Wl,this)[j(Gl,this)]!==``;){let t=this.readLine();if(t===void 0)break;e.push(t)}return e}skipToNextCue(){for(let e=this.peekLine();e!==void 0&&e!==``&&!e.includes(`-->`);)this.readLine(),e=this.peekLine()}linesLeft(){return j(Wl,this).length-j(Gl,this)}},ql=new WeakSet,Jl=class{constructor(){z(this,ql)}parse(e){let t=[],n=new Kl(e.split(Ul)),r=n.readLine();if(!r||!r.startsWith(`WEBVTT`))throw Error(`missing 'WEBVTT' signature`);for(;;){let e=n.readLine();if(e===``||e===void 0)break}for(;n.linesLeft()>0;){try{let e=D(ql,this,Yl).call(this,n);e&&t.push(e)}catch(e){n.skipToNextCue()}n.skipEmptyLines()}return t}};function Yl(e){var t;e.skipEmptyLines();let n=e.readLine(),r;if(n===void 0)return;if(/^NOTE($|[ \t])/.test(n)&&!((t=e.peekLine())!=null&&t.includes(`-->`))){e.takeUntilEmptyLine();return}if(!n.includes(`-->`)){let t=e.peekLine();if(t===void 0||t===``)throw Error(`expected cue line`);r=n,e.readLine(),n=t}if(n===void 0)throw Error(`expected cue line`);let[i,a]=n.split(`-->`).map(e=>e.trim());if(!i||!a)throw Error(`a cue needs both start and end time start: ${i} end: ${a}`);let[o,s]=a.split(` `,1).map(e=>e.trim());if(!o)throw Error(`missing end time: ${o}`);let c=[];for(let t=e.peekLine();t!==void 0&&t!==``&&!t.includes(`-->`);t=e.peekLine())c.push(e.readLine());let l=c.filter(e=>e==null?void 0:e.trim()).join(`
98
+ `),u=D(ql,this,Xl).call(this,i),d=D(ql,this,Xl).call(this,o);if(!Number.isFinite(u)||!Number.isFinite(d))throw Error(`invalid cue time start: ${i} end: ${o}`);if(l!==``)return{id:r,startTime:u,endTime:d,text:l}}function Xl(e){let t=e.split(`:`);if(t.length===2){let[e=0,n=0]=t.map(e=>parseFloat(e));return e*60+n}let[n=0,r=0,i=0]=t.map(e=>parseFloat(e));return n*60*60+r*60+i}var Zl=(e,t,n)=>{let r=Math.max(0,...n),i=Math.min(...t);return Math.max(i,e/2-r)},Ql=(e,t)=>Math.max(0,...e.filter(e=>e<=t)),$l=(e,t)=>t===0||e>=2*t,eu=e=>{let t=window;t.vindralInstances=t.vindralInstances||{},t.vindralInstances[e.getStatistics().clientId.substring(0,8)]=e};H(),h(),P();var tu=class e extends tn{constructor({type:t,autoplay:n,muted:r,volume:i,logger:a,poster:o}){var s;super(),s=this,m(this,`element`,void 0),m(this,`logger`,void 0),m(this,`seekTimes`,new w(10)),m(this,`seekStartTime`,void 0),m(this,`_totalSeekTime`,0),m(this,`lastPlayableAt`,void 0),m(this,`_userProvidedMuted`,void 0),m(this,`timers`,new cr),m(this,`_userHasProvidedInput`,!1),m(this,`_isPaused`,!0),m(this,`isActivated`,!1),m(this,`dummy`,void 0),m(this,`addEventListeners`,()=>{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.onWaiting),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)}),m(this,`removeEventListeners`,()=>{this.element.removeEventListener(`stalled`,this.onEvent),this.element.removeEventListener(`canplay`,this.onEvent),this.element.removeEventListener(`loadeddata`,this.onEvent),this.element.removeEventListener(`loadedmetadata`,this.onEvent),this.element.removeEventListener(`canplaythrough`,this.onEvent),this.element.removeEventListener(`waiting`,this.onWaiting),this.element.removeEventListener(`playing`,this.onPlayPause),this.element.removeEventListener(`pause`,this.onPlayPause),this.element.removeEventListener(`seeked`,this.onSeekEnd),this.element.removeEventListener(`seeking`,this.onSeekStart),this.element.removeEventListener(`volumechange`,this.onVolumeChange),this.element.removeEventListener(`timeupdate`,this.onBufferStateChange),this.element.removeEventListener(`progress`,this.onBufferStateChange)}),m(this,`_iosHackEnterPiPMode`,()=>{let 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))}),m(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)}),m(this,`attach`,e=>{this.element.remove(),e.appendChild(this.element)}),m(this,`load`,()=>{this.timers.setInterval(this.onPlayPause,500),this.onBufferStateChange(),this.timers.setInterval(this.onBufferStateChange,500)}),m(this,`unload`,()=>{this.timers.unload(),this.removeEventListeners()}),m(this,`getPlaybackRate`,()=>this.element.playbackRate),m(this,`getPlaybackState`,()=>this.element.readyState>=this.element.HAVE_FUTURE_DATA||this.element.seeking&&this.lastPlayableAt!==void 0&&performance.now()-this.lastPlayableAt<e.SEEK_SETTLE_BUDGET_MS?`playing`:`buffering`),m(this,`getMediaElementState`,()=>this.element.paused?`paused`:`playing`),m(this,`setPlaybackRate`,e=>void(this.element.playbackRate=e)),m(this,`getBuffer`,()=>{let e=[],t=this.element.buffered;if(!t)return[];for(let n=0;n<t.length;n++)e.push({start:t.start(n)*1e3,end:t.end(n)*1e3});return e}),m(this,`pause`,()=>{this._isPaused=!1,this.element.pause()}),m(this,`tryPlay`,()=>{this.element.muted=this._userProvidedMuted,this._play().catch(S)}),m(this,`play`,()=>{this.element.muted=this._userProvidedMuted,this._play().catch(e=>{if(e instanceof Error&&e.name!==`AbortError`){let t=new U(`Media Play Error`,{source:e,isFatal:!1,code:`media_play_error`});this.emit(`error`,t)}})}),m(this,`_play`,N(function*(){try{yield s.element.play(),s._userHasProvidedInput=!s.muted||s._userProvidedMuted}catch(e){if(e instanceof Error&&e.name===`NotAllowedError`)if(s._userHasProvidedInput=!1,s.element.muted)s.emit(`needs user input`,{forAudio:!0,forVideo:!0});else return s.element.muted=!0,s.emit(`needs user input`,{forAudio:!0,forVideo:!1}),s._play();else throw e}})),m(this,`onEvent`,e=>{this.logger.trace(e.type,{state:this.element.readyState,event:e,playbackState:this.getPlaybackState()})}),m(this,`onWaiting`,e=>{this.onEvent(e),this.onBufferStateChange()}),m(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})}),m(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.getMediaElementState()))}),m(this,`getBufferState`,()=>(this.element.readyState>=this.element.HAVE_FUTURE_DATA&&!this.element.seeking&&(this.lastPlayableAt=performance.now()),{isPaused:this.element.paused,buffered:this.getBuffer(),currentTime:this.currentTime,playbackState:this.getPlaybackState()})),m(this,`onBufferStateChange`,()=>{this.emit(`buffer state`,this.getBufferState())}),m(this,`onSeekStart`,()=>{this.seekStartTime=performance.now()}),m(this,`onSeekEnd`,()=>{if(!this.seekStartTime)return;let e=performance.now()-this.seekStartTime;this.seekTimes.push(e),this._totalSeekTime+=e,this.seekStartTime=void 0}),this.logger=a,this._userProvidedMuted=r,this.element=document.createElement(t),this.element instanceof HTMLVideoElement&&(this.element.playsInline=!0),this.element.controls=!1,this.element.autoplay=n,this.element.muted=r,i!==void 0&&(this.element.volume=i),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||!o||this.element.setAttribute(`poster`,o)},0),this.addEventListeners()}get seekTime(){return this.seekTimes.isEmpty()?0:Bt(this.seekTimes.items())}get totalSeekTime(){return this._totalSeekTime}get isSeeking(){return this.element.seeking}get currentTime(){return Number.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}get userMuted(){return this.element.muted}set muted(e){this._userProvidedMuted=e,this.element.muted=e}get userHasProvidedInput(){return this._userHasProvidedInput}get isPaused(){return this._isPaused}};m(tu,`SEEK_SETTLE_BUDGET_MS`,1e3);var nu=e=>{if(!navigator.mediaCapabilities)return Promise.resolve({smooth:!0,supported:!0,powerEfficient:!0,failedToQuery:!0});if(e.codec===`webvtt`)throw Error(`WebVTT is not supported`);let t;return t=Rr(e)?{type:`media-source`,audio:{contentType:zr(e),bitrate:e.bitRate,channels:e.channels.toString(),samplerate:e.sampleRate}}:{type:`media-source`,video:{contentType:zr(e),bitrate:e.bitRate,width:e.width,height:e.height,framerate:e.frameRate[0]/e.frameRate[1]}},navigator.mediaCapabilities.decodingInfo(t)};h(),R();var ru,iu=.15,au=.2,ou=.4,su=.5,cu=.6,lu=15,uu={cooldownTime:3e3,maxBufferingEvents:{last10Seconds:0},maxBufferingRatio:{last10Seconds:0},maxRecentDowngradesCount:3,maxDowngradeLookbackMs:60*1e3,minTimeSpentPlaying:{factor:.5,ratio:.1},maxCooldownRatio:2},du=e=>t=>t>e,fu=class{constructor(e,t,n,r){m(this,`qualityOfServiceSource`,void 0),m(this,`config`,void 0),m(this,`emitter`,void 0),m(this,`logger`,void 0),m(this,`isSuspended`,!1),m(this,`lastAdaptTime`,performance.now()),m(this,`isEnabled`,!0),m(this,`load`,()=>{this.emitter.on(`buffer state`,this.onBufferState),this.emitter.on(`adapted level`,this.onAdaptedLevel)}),m(this,`unload`,()=>{this.emitter.off(`buffer state`,this.onBufferState),this.emitter.off(`adapted level`,this.onAdaptedLevel)}),m(this,`suspend`,()=>{this.isSuspended=!0}),m(this,`unsuspend`,()=>{this.reset(),this.isSuspended=!1}),m(this,`reset`,(e=0)=>{this.lastAdaptTime=performance.now()+e}),m(this,`getStatistics`,()=>({isAbrEnabled:this.isEnabled})),m(this,`isQoSOk`,e=>{let t=this.qualityOfServiceSource.getLevelStats(e),{upgradesFromLevel:n,downgradesFromLevel:r}=t==null?{upgradesFromLevel:[],downgradesFromLevel:[]}:t,i=performance.now()-this.config.maxDowngradeLookbackMs,a=r.filter(du(i)).length,o=n.filter(du(i)).length;if(a-o>this.config.maxRecentDowngradesCount)return this.logger.debug(`Recent downgrades count is over maximum`,{downgrades:a-o,maxRecentDowngradesCount:this.config.maxRecentDowngradesCount}),!1;let s=this.qualityOfServiceSource.timeSpentPlayingInAtLeastLevelRatio(e),c=s*(this.qualityOfServiceSource.timeActive()-this.qualityOfServiceSource.timeSpentBuffering())/this.config.maxDowngradeLookbackMs;if(a>1&&c<this.config.minTimeSpentPlaying.factor)return this.logger.debug(`Time spent playing is too low`,{recentDowngrades:a,timeSpentPlayingInAtLeastLevelRatio:s}),!1;if(a>1&&s<this.config.minTimeSpentPlaying.ratio)return this.logger.debug(`Time spent playing in at least this level is too low`,{recentDowngrades:a,timeSpentPlayingInAtLeastLevelRatio:s}),!1;let l=Math.max(0,r.length-n.length-c),u=performance.now()-this.config.maxDowngradeLookbackMs*l,d=r.filter(du(u)).length;return d&&l>this.config.maxCooldownRatio?(this.logger.debug(`Too many downgrades compared to time spent playing`,{downgradesWithinCooldownTime:d,cooldownRatio:l}),!1):!0}),m(this,`onBufferState`,e=>{if(!this.isEnabled||this.isSuspended||this.lastAdaptTime+this.config.cooldownTime>performance.now())return;let{bufferFullness:t,general:n}=this.qualityOfServiceSource.getMetrics(),r=this.qualityOfServiceSource.getBufferFullnessRegression();if(!r)return;let i=10*1e3,a=30*1e3,{slope:o}=r,s=r.predict(lu),c=o<0,l=r.predict(lu)<ou&&r.slope<0,u=r.predict(lu)>cu,d=this.qualityOfServiceSource.timeSpentBufferingLast(a),f=this.qualityOfServiceSource.timeSpentActiveLast(a),p=this.qualityOfServiceSource.bufferingEventsLast(a),m=f>0?d/f:0,h=this.qualityOfServiceSource.getTargetBufferTime();if(t<.15&&m>.8){this.adaptLevel(`reconnect`);return}if(n.decodeRate<=.9){this.adaptLevel(`downgrade`);return}if(t>su&&u&&!this.tooMuchTimeBuffering(i)&&!this.tooManyBufferingEvents(i)){this.adaptLevel(`upgrade`);return}if(h<1e3){e.playbackState===`buffering`&&(p>5||m>.3)&&this.adaptLevel(`downgrade`);return}(l||t<iu)&&c&&t<ou&&s<au&&this.adaptLevel(e.playbackState===`buffering`?`double downgrade`:`downgrade`)}),m(this,`onAdaptedLevel`,()=>{this.reset()}),m(this,`adaptLevel`,e=>this.emitter.emit(`adapt level`,e)),this.qualityOfServiceSource=n,this.config=L(L({},uu),r),this.emitter=e,this.logger=t}tooMuchTimeBuffering(e){let t=this.qualityOfServiceSource.timeSpentActiveLast(e);return(t?this.qualityOfServiceSource.timeSpentBufferingLast(e)/t:0)>this.config.maxBufferingRatio.last10Seconds}tooManyBufferingEvents(e){return this.qualityOfServiceSource.bufferingEventsLast(e)>this.config.maxBufferingEvents.last10Seconds}};ru=fu,m(fu,`create`,(e,t,n,r={})=>new ru(e,t,n,r)),h();var pu,mu=6,hu=8e3,gu=.01,_u,vu=class e{constructor(t,n){m(this,`logger`,void 0),m(this,`element`,void 0),m(this,`url`,void 0),m(this,`blocked`,!1),m(this,`wantsPlay`,!1),m(this,`onInterrupted`,void 0),m(this,`play`,()=>{if(this.wantsPlay&&this.element&&!this.element.paused)return;this.attach();let e=this.element;e&&(this.blocked=!1,this.wantsPlay=!0,e.play().catch(t=>{this.blocked=this.element===e&&this.wantsPlay,this.logger.debug(`Audio focus decoy play blocked`,{error:t})}))}),m(this,`pause`,()=>{var e;this.wantsPlay=!1,(e=this.element)==null||e.pause()}),m(this,`unload`,()=>{this.wantsPlay=!1,this.element&&(this.element.pause(),this.element.removeAttribute(`src`),this.element.load(),this.element.remove(),this.element=void 0),this.revokeUrl()}),m(this,`getStatistics`,()=>({decoyState:this.element?this.blocked?`blocked`:this.element.paused?`attached`:`playing`:`detached`})),m(this,`attach`,()=>{if(!(this.element||!e.isSupported()))try{_u!=null||(_u=new Blob([yu(mu,hu)],{type:`audio/wav`})),this.url=URL.createObjectURL(_u);let e=document.createElement(`audio`);e.setAttribute(`src`,this.url),e.loop=!0,e.preload=`auto`,e.muted=!1,e.volume=gu,e.setAttribute(`aria-hidden`,`true`),e.style.display=`none`,e.addEventListener(`pause`,()=>{var e;this.wantsPlay&&((e=this.onInterrupted)==null||e.call(this))}),document.body.appendChild(e),this.element=e}catch(e){this.logger.debug(`Failed to attach audio focus decoy`,{error:e}),this.revokeUrl()}}),m(this,`revokeUrl`,()=>{if(this.url){try{URL.revokeObjectURL(this.url)}catch(e){}this.url=void 0}}),this.logger=t,this.onInterrupted=n}};pu=vu,m(vu,`create`,(e,t)=>new pu(e,t)),m(vu,`isSupported`,()=>typeof document<`u`&&typeof URL<`u`&&typeof URL.createObjectURL==`function`);var yu=(e,t)=>{let n=t*e,r=new ArrayBuffer(44+n),i=new DataView(r);return i.setUint32(0,1380533830),i.setUint32(4,36+n,!0),i.setUint32(8,1463899717),i.setUint32(12,1718449184),i.setUint32(16,16,!0),i.setUint16(20,1,!0),i.setUint16(22,1,!0),i.setUint32(24,t,!0),i.setUint32(28,t,!0),i.setUint16(32,1,!0),i.setUint16(34,8,!0),i.setUint32(36,1684108385),i.setUint32(40,n,!0),new Uint8Array(r,44).fill(128),r};h(),R();var bu,xu={minBufferTime:1500,maxBufferTime:1500,cooldownTime:3e4,maxBufferingEvents:{last30Seconds:3},maxBufferingRatio:{last30Seconds:.15}},Su=class e{constructor(t,n,r,i,a){m(this,`qualityOfServiceSource`,void 0),m(this,`targetBufferTimeTarget`,void 0),m(this,`config`,void 0),m(this,`emitter`,void 0),m(this,`logger`,void 0),m(this,`isSuspended`,!1),m(this,`lastIncreaseTime`,performance.now()),m(this,`bufferTimeAdjustmentCount`,0),m(this,`load`,()=>{this.emitter.on(`buffer state`,this.onBufferState)}),m(this,`unload`,()=>{this.emitter.off(`buffer state`,this.onBufferState)}),m(this,`suspend`,()=>{this.isSuspended=!0}),m(this,`unsuspend`,()=>{this.reset(),this.isSuspended=!1}),m(this,`reset`,()=>{this.lastIncreaseTime=performance.now()}),m(this,`getStatistics`,()=>({bufferTimeAdjustmentCount:this.bufferTimeAdjustmentCount})),m(this,`onBufferState`,t=>{let{minBufferTime:n,maxBufferTime:r,cooldownTime:i}=this.config;if(this.isSuspended||this.lastIncreaseTime+i>performance.now()||this.targetBufferTimeTarget.targetBufferTime>=r)return;let a=this.qualityOfServiceSource.timeSpentBufferingLast(30*1e3),o=this.qualityOfServiceSource.bufferingEventsLast(30*1e3),s=a/this.qualityOfServiceSource.timeSpentActiveLast(30*1e3),c=Math.ceil(Math.max((r-n)/(e.BUFFER_TIME_MAX_STEPS-1),e.BUFFER_TIME_STEP_SIZE));(s>this.config.maxBufferingRatio.last30Seconds||o>this.config.maxBufferingEvents.last30Seconds)&&(this.targetBufferTimeTarget.targetBufferTime=Math.min(r,this.targetBufferTimeTarget.targetBufferTime+c),this.bufferTimeAdjustmentCount++,this.reset())}),this.qualityOfServiceSource=r,this.targetBufferTimeTarget=i,this.config=L(L({},xu),a),this.emitter=t,this.logger=n}updateConfig(e){this.config=L(L({},this.config),e)}};bu=Su,m(Su,`BUFFER_TIME_STEP_SIZE`,500),m(Su,`BUFFER_TIME_MAX_STEPS`,3),m(Su,`create`,(e,t,n,r,i={})=>new bu(e,t,n,r,i));var Cu=e=>e?{Authorization:`Bearer ${e}`}:void 0,wu=(e,t)=>{try{let t=e.ancestorOrigins;if(t&&t.length>0)return Array.from(t).join(`,`)||void 0}catch(e){}try{if(t.referrer)return new URL(t.referrer).origin||void 0}catch(e){}};H(),h(),R(),P();var Tu=e=>typeof e==`object`&&!!e&&`message`in e,Eu=class extends Error{constructor({status:e,url:t,body:n}){let r=yr(n),i=Tu(r)?r.message:`Url ${t.toString()}, Status code: ${e}, Body: ${n}`;super(i),m(this,`status`,void 0),m(this,`body`,void 0),m(this,`url`,void 0),this.status=e,this.body=n,this.url=t,Object.setPrototypeOf(this,new.target.prototype)}},Du=e=>typeof e.status==`number`,Ou=()=>{if(!(typeof window>`u`||typeof document>`u`))return wu(window.location,document)},ku=e=>{let t=Ou();if(!t||e.searchParams.has(`parentOrigin`))return e;let n=new URL(e.toString());return n.searchParams.append(`parentOrigin`,t),n},Au=function(){var e=N(function*(e,t){let n=ku(e),r=yield fetch(n.toString(),L({mode:`cors`},t));if(!r.ok)throw new Eu({status:r.status,url:n,body:yield r.text()});return r});return function(t,n){return e.apply(this,arguments)}}(),ju=function(){var e=N(function*(e,t){return yield(yield Au(e,L({},t))).json()});return function(t,n){return e.apply(this,arguments)}}();(function(){var e=N(function*(e){return Au(e)});return function(t){return e.apply(this,arguments)}})();var Mu=function(){var e=N(function*(e,t){return Au(e,L({method:`POST`},t))});return function(t,n){return e.apply(this,arguments)}}();function Nu(e){var t;return!(typeof e.edges[0]==`string`||e.channels[0]&&`catalog`in e.channels[0]&&((t=e.channels[0])==null?void 0:t.catalog)===void 0)}h(),R(),P();var Pu={lbConnect:e=>e.channelGroupId?`connect?channelId=${e.channelId}&channelGroupId=${e.channelGroupId}`:`connect?channelId=${e.channelId}`,thumbnails:(e,t)=>t?e.channelGroupId?`thumbnail/?channelGroupId=${e.channelGroupId}&auth.token=${t}&auth.type=jwt`:e.channelId?`thumbnail/?channelId=${e.channelId}&auth.token=${t}&auth.type=jwt`:`thumbnail`:`thumbnail`},Fu=class{constructor(e){m(this,`baseUrl`,void 0),m(this,`tokenFactory`,void 0),this.baseUrl=new URL(`/api/v4/`,e.publicEndpoint).toString(),this.tokenFactory=e.tokenFactory}connect(e){var t=this;return N(function*(){let{channelId:n,channelGroupId:r}=e,i={channelId:n,channelGroupId:r},a=new URL(Pu.lbConnect(e),t.baseUrl),o=t.getAuthToken(i),s=yield ju(a,{headers:t.getHeaders(o)});if(Nu(s)){let e=s.channels.map(e=>{let n=t.toChannel(e,i),r=Ir(e.catalog);return L(L(L({},e),n),{},{renditions:r})});return L(L({},s),{},{channels:e})}else{let e=s.channels.map(e=>{let n=t.toChannel(e,i);return L(L({},e),n)});return L(L({},s),{},{channels:e})}})()}getChannel(e){var t=this;return N(function*(){let n={channelId:e},r=new URL(`channel/${e}`,t.baseUrl),i=t.getAuthToken(n),a=yield ju(r,{headers:t.getHeaders(i)});return t.toChannel(a,n,i)})()}getChannels(e){var t=this;return N(function*(){let n={channelGroupId:e},r=new URL(`channels/${e}`,t.baseUrl),i=t.getAuthToken(n),a=yield ju(r,{headers:t.getHeaders(i)}),o=Array.isArray(a)?a:a.channels;return t.toChannels(o,n,i)})()}getHeaders(e){var t;return(t=Cu(e))==null?{}:t}getAuthToken(e){return this.tokenFactory?this.tokenFactory(e):void 0}toChannels(e,t,n){return e.map(e=>this.toChannel(e,t,n))}toChannel(e,t,n){let{baseUrl:r,sizes:i}=e.thumbnail,a=r||new URL(Pu.thumbnails(t,n),this.baseUrl),o=i.map(r=>new URL(`?channelId=${e.channelId}&width=${r.width}&height=${r.height}${Iu(t,n)}`,a).toString());return{channelId:e.channelId,name:e.name,isLive:e.isLive,thumbnailUrls:o}}},Iu=(e,t)=>t?e.channelGroupId?`&channelGroupId=${e.channelGroupId}&auth.token=${t}&auth.type=jwt`:`&auth.token=${t}&auth.type=jwt`:``;function Lu(e){let t=globalThis.WebTransportError;return t&&e instanceof t?e:void 0}function Ru(e){var t;return((t=Lu(e))==null?void 0:t.streamErrorCode)===2}var zu=function(e){return e[e.StreamHeaderGroup=4]=`StreamHeaderGroup`,e[e.FetchHeader=5]=`FetchHeader`,e[e.StreamHeaderTrack=60]=`StreamHeaderTrack`,e}({});H(),B(),E(),M(),A(),O(),P(),Vn(),Wn();var Bu,Vu,Hu,Uu,Wu,Gu,Ku,qu,Ju,Yu={Normal:0,ObjectDoesNotExist:1,GroupDoesNotExist:2,EndOfGroup:3,EndOfTrackAndGroup:4};function Xu(e){switch(e){case Yu.Normal:case Yu.ObjectDoesNotExist:case Yu.GroupDoesNotExist:case Yu.EndOfGroup:case Yu.EndOfTrackAndGroup:return}throw Error(`Unknown object status ${e}`)}var Zu=new WeakMap,Qu=new WeakMap,$u=new WeakMap,ed=new WeakMap,td=new WeakMap,nd=new WeakMap,rd=new WeakMap,id=new WeakMap,ad=new WeakMap,od=new WeakMap,sd=new WeakMap,cd=new WeakSet;Bu=Symbol.asyncIterator,Vu=wn(),Hu=Symbol.asyncDispose;var ld=class{endStatus(){return j(nd,this).promise}drained(){var e;return(e=j(ad,this))==null?Promise.resolve():e}drainFailed(){return j(od,this).promise}constructor(e,t,n,r,i,a){z(this,cd),T(this,Zu,void 0),T(this,Qu,void 0),T(this,$u,void 0),T(this,ed,void 0),T(this,td,void 0),T(this,nd,new C),T(this,rd,0),T(this,id,void 0),T(this,ad,void 0),T(this,od,new C),T(this,sd,xn.get().createContext(`TrackReaderGroup`)),k(Zu,this,e),k(Qu,this,t),k($u,this,n),k(ed,this,r),k(td,this,i),k(id,this,a),j(od,this).promise.catch(S)}groupId(){return j(Qu,this)}subscribeId(){return j($u,this)}next(){return j(ad,this)?Promise.resolve({done:!0,value:void 0}):D(cd,this,ud).call(this)}return(){return j(ad,this)||(k(ad,this,D(cd,this,dd).call(this)),j(ad,this).catch(S)),Promise.resolve({done:!0,value:void 0})}[Bu](){return this}[Vu](){return Promise.resolve()}[Hu](){return Promise.resolve()}};function ud(){var e=this;return N(function*(){var t;if(!j(nd,e).pending||(yield j(Zu,e).isDone()))return{done:!0,value:void 0};let n=j(rd,e)===0?j(Qu,e):yield j(Zu,e).readBigVarInt(),r=yield j(Zu,e).readBigVarInt(),i=yield j(Zu,e).readVarInt(),a=0,o=new Uint8Array;return i>0?o=yield j(Zu,e).read(i):a=yield j(Zu,e).readVarInt(),Xu(a),(a===Yu.EndOfTrackAndGroup||a===Yu.EndOfGroup)&&j(nd,e).resolve(a),k(rd,e,(t=j(rd,e),t++,t)),{done:!1,value:{subscribeId:j($u,e),trackAlias:j(ed,e),groupId:n,subGroupId:F(0),objectId:r,subscriberPriority:j(td,e),streamId:j(id,e),objectStatus:a,payload:o}}})()}function dd(){var e=this;return N(function*(){try{for(;!(yield D(cd,e,ud).call(e)).done;);}catch(t){throw j(sd,e).debug(`Stopped draining group`,{groupId:j(Qu,e),error:t}),j(od,e).reject(t instanceof Error?t:Error(String(t))),t}})()}var fd=new WeakMap,pd=new WeakMap,md=new WeakMap,hd=new WeakMap,gd=new WeakMap,_d=new WeakSet;Uu=Symbol.asyncIterator,Wu=wn(),Gu=Symbol.asyncDispose;var vd=class{constructor(e,t,n,r,i){z(this,_d),T(this,fd,void 0),T(this,pd,void 0),T(this,md,void 0),T(this,hd,void 0),T(this,gd,void 0),k(fd,this,e),k(pd,this,t),k(md,this,n),k(hd,this,r),k(gd,this,i)}streamId(){return j(gd,this)}groups(){return D(_d,this,yd).call(this)}subscribeId(){return j(pd,this)}return(){var e=this;return N(function*(){return yield j(fd,e).close(),{done:!0,value:void 0}})()}[Uu](){return this}[Wu](){return D(_d,this,bd).call(this)}[Gu](){return D(_d,this,bd).call(this)}};function yd(){var e=this;return Hn(function*(){for(;!(yield V(j(fd,e).isDone()));){let t=yield V(j(fd,e).readBigVarInt()),n=new ld(j(fd,e),t,j(pd,e),j(md,e),j(hd,e),j(gd,e));yield n;let r=yield V(Promise.race([n.endStatus(),j(fd,e).closed(),n.drainFailed()]));if(yield V(n.drained()),r===Yu.EndOfTrackAndGroup)return}})()}function bd(){return j(fd,this).close().catch(()=>{})}var xd=new WeakMap,Sd=new WeakMap,Cd=new WeakMap,wd=new WeakMap,Td=new WeakMap,Ed=new WeakMap,Dd=new WeakMap,Od=new WeakMap,kd=new WeakMap,Ad=new WeakSet;Ku=Symbol.asyncIterator,qu=wn(),Ju=Symbol.asyncDispose;var jd=class{constructor(e,t,n,r,i,a,o){z(this,Ad),T(this,xd,void 0),T(this,Sd,void 0),T(this,Cd,void 0),T(this,wd,void 0),T(this,Td,void 0),T(this,Ed,void 0),T(this,Dd,!1),T(this,Od,void 0),T(this,kd,xn.get().createContext(`GroupReader`)),k(xd,this,e),k(Sd,this,t),k(Cd,this,n),k(wd,this,r),k(Td,this,i),k(Ed,this,a),k(Od,this,o)}streamId(){return j(Od,this)}groupId(){return j(wd,this)}subscribeId(){return j(Sd,this)}next(){var e=this;return N(function*(){try{if((yield j(xd,e).isDone())||j(Dd,e))return{done:!0,value:void 0};let t=yield j(xd,e).readBigVarInt(),n=yield j(xd,e).readVarInt(),r=0,i=new Uint8Array;return n>0?i=yield j(xd,e).read(n):r=yield j(xd,e).readVarInt(),Xu(r),r===Yu.EndOfGroup&&k(Dd,e,!0),{done:!1,value:{subscribeId:j(Sd,e),trackAlias:j(Cd,e),groupId:j(wd,e),subGroupId:j(Td,e),subscriberPriority:j(Ed,e),streamId:j(Od,e),objectId:t,objectStatus:r,payload:i}}}catch(r){var t,n;return(Ru(r)?j(kd,e).debug:j(kd,e).warn)(`Error reading object`,{error:r,streamErrorCode:(t=(n=Lu(r))==null?void 0:n.streamErrorCode)==null?void 0:t}),{done:!0,value:void 0}}})()}return(){var e=this;return N(function*(){return yield j(xd,e).close().catch(()=>{}),{done:!0,value:void 0}})()}groups(){return D(Ad,this,Md).call(this)}[Ku](){return this}[qu](){return D(Ad,this,Nd).call(this)}[Ju](){return D(Ad,this,Nd).call(this)}};function Md(){var e=this;return Hn(function*(){yield e})()}function Nd(){return j(xd,this).close().catch(()=>{})}function Pd(e,t){return Fd.apply(this,arguments)}function Fd(){return Fd=N(function*(e,t){let n=yield e.readVarInt();switch(n){case zu.StreamHeaderGroup:return new jd(e,yield e.readBigVarInt(),yield e.readBigVarInt(),yield e.readBigVarInt(),yield e.readBigVarInt(),yield e.readUnsigned8(),t);case zu.StreamHeaderTrack:return new vd(e,yield e.readBigVarInt(),yield e.readBigVarInt(),yield e.readUnsigned8(),t);default:throw Error(`Unexpected message type ${n}`)}}),Fd.apply(this,arguments)}function X(e){var t,n,r,i=2;for(typeof Symbol<`u`&&(n=Symbol.asyncIterator,r=Symbol.iterator);i--;){if(n&&(t=e[n])!=null)return t.call(e);if(r&&(t=e[r])!=null)return new Id(t.call(e));n=`@@asyncIterator`,r=`@@iterator`}throw TypeError(`Object is not async iterable`)}function Id(e){function t(e){if(Object(e)!==e)return Promise.reject(TypeError(e+` is not an object.`));var t=e.done;return Promise.resolve(e.value).then(function(e){return{value:e,done:t}})}return Id=function(e){this.s=e,this.n=e.next},Id.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var n=this.s.return;return n===void 0?Promise.resolve({value:e,done:!0}):t(n.apply(this.s,arguments))},throw:function(e){var n=this.s.return;return n===void 0?Promise.reject(e):t(n.apply(this.s,arguments))}},new Id(e)}H(),E(),A(),M();var Ld=new WeakMap,Rd=new WeakMap,zd=class{constructor(e,t){T(this,Ld,void 0),T(this,Rd,void 0),k(Ld,this,e),k(Rd,this,t)}start(e){j(Ld,this).addEventListener(`message`,t=>{if(typeof t.data==`object`&&t.data instanceof ArrayBuffer){let n=new Uint8Array(t.data);n[0]===j(Rd,this)&&e.enqueue(n.subarray(1))}}),j(Ld,this).addEventListener(`error`,()=>e.error(Error(`WebSocket error`))),j(Ld,this).addEventListener(`close`,()=>_r(()=>e.close()))}cancel(e){j(Ld,this).close(void 0,e)}},Bd=new WeakMap,Vd=new WeakMap,Hd=new WeakMap,Ud=new WeakMap,Wd=class{constructor(e){T(this,Bd,void 0),T(this,Vd,null),T(this,Hd,null),T(this,Ud,null),k(Bd,this,e)}start(e){k(Vd,this,t=>{if(typeof t.data==`object`&&t.data instanceof ArrayBuffer){let n=new Uint8Array(t.data),r=n[0]||0,i=r&127,a=(r>>7&1)>0;if(i&&i!==0){let t=n.subarray(1);e.enqueue([a,i,t])}}}),k(Hd,this,()=>_r(()=>e.close())),k(Ud,this,()=>e.error(Error(`WebSocket error`))),j(Bd,this).addEventListener(`message`,j(Vd,this)),j(Bd,this).addEventListener(`error`,j(Ud,this)),j(Bd,this).addEventListener(`close`,j(Hd,this))}cancel(e){j(Vd,this)&&j(Bd,this).removeEventListener(`message`,j(Vd,this)),j(Ud,this)&&j(Bd,this).removeEventListener(`error`,j(Ud,this)),j(Hd,this)&&j(Bd,this).removeEventListener(`close`,j(Hd,this))}};H(),B(),E(),A(),M(),O(),P();function Gd(e,t){return e[t]<<8|e[t+1]}function Kd(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}var qd=new WeakMap,Jd=new WeakMap,Z=new WeakMap,Yd=new WeakMap,Xd=new WeakMap,Zd=new WeakSet,Qd=class{constructor(e,t,n){z(this,Zd),T(this,qd,void 0),T(this,Jd,void 0),T(this,Z,0),T(this,Yd,new TextDecoder),T(this,Xd,void 0),k(qd,this,e),k(Jd,this,t.getReader()),k(Xd,this,n)}readUnsigned8(){var e=this;return N(function*(){var t,n;return yield D(Zd,e,tf).call(e,1),j(qd,e)[k(Z,e,(t=j(Z,e),n=t++,t)),n]})()}readString(){var e=this;return N(function*(){let t=yield e.readVarInt(),n=yield e.read(t);return j(Yd,e).decode(n)})()}readVarInt(){var e=this;return N(function*(){let t=yield e.readBigVarInt();if(t>2**53-1)throw Error(`VarInt is too large`);return Number(t)})()}readBigVarInt(){var e=this;return N(function*(){yield D(Zd,e,tf).call(e,1);let t=j(qd,e)[j(Z,e)],n=(t&192)>>6;switch(j(qd,e)[j(Z,e)]=t&63,n){case 0:var r,i;return F(j(qd,e)[k(Z,e,(r=j(Z,e),i=r++,r)),i]);case 1:{yield D(Zd,e,tf).call(e,2);let t=j(Z,e);return k(Z,e,j(Z,e)+2),F(Gd(j(qd,e),t))}case 2:{yield D(Zd,e,tf).call(e,4);let t=j(Z,e);return k(Z,e,j(Z,e)+4),F(Kd(j(qd,e),t))}case 3:{yield D(Zd,e,tf).call(e,8);let t=j(Z,e);k(Z,e,j(Z,e)+8);let n=new DataView(j(qd,e).buffer,j(qd,e).byteOffset+t,8);return F(Ae?n.getBigUint64(0):n.getUint32(0)*4294967296+n.getUint32(4))}default:throw Error(`Invalid VarInt size`)}})()}read(e){var t=this;return N(function*(){return yield D(Zd,t,tf).call(t,e),D(Zd,t,rf).call(t,e)})()}readAll(){var e=this;return N(function*(){for(;yield D(Zd,e,ef).call(e););return D(Zd,e,rf).call(e,D(Zd,e,$d).call(e))})()}isDone(){var e=this;return N(function*(){return D(Zd,e,$d).call(e)>0?!1:(yield D(Zd,e,ef).call(e))===0})()}closed(){var e=this;return N(function*(){return j(Jd,e).closed})()}close(){var e=this;return N(function*(){return j(Jd,e).cancel()})()}};function $d(){return j(qd,this).length-j(Z,this)}function ef(){var e=this;return N(function*(){var t;let{value:n,done:r}=yield j(Jd,e).read();if(r)return Promise.resolve(0);if((t=j(Xd,e))==null||t.call(e),D(Zd,e,$d).call(e)===0)k(qd,e,n);else{let t=j(qd,e).subarray(j(Z,e)),r=new Uint8Array(t.length+n.length);r.set(t),r.set(n,t.byteLength),k(qd,e,r)}return k(Z,e,0),Promise.resolve(n.length)})()}function tf(e){var t=this;return N(function*(){for(;D(Zd,t,$d).call(t)<e;)if((yield D(Zd,t,ef).call(t))===0)throw Error(`Read failed`)})()}function nf(e){return j(qd,this).subarray(j(Z,this),j(Z,this)+e)}function rf(e){let t=D(Zd,this,nf).call(this,e);return k(Z,this,j(Z,this)+t.length),t}B(),E(),M(),A(),P(),O(),h();var af=new WeakMap,of=new WeakMap,sf=new WeakMap,cf=new WeakMap,lf=new WeakMap,uf=new WeakMap,df=new WeakMap,ff=new WeakMap,pf=new WeakSet,mf=class{constructor(e){z(this,pf),T(this,af,new Uint8Array(8)),T(this,of,j(af,this).subarray(0,1)),T(this,sf,j(af,this).subarray(0,2)),T(this,cf,j(af,this).subarray(0,4)),T(this,lf,j(af,this).subarray(0,8)),T(this,uf,void 0),T(this,df,void 0),T(this,ff,new TextEncoder),k(uf,this,e),k(df,this,j(uf,this).getWriter())}writeString(e){var t=this;return N(function*(){let n=j(ff,t).encode(e);return yield t.writeVarInt(n.length),t.write(n)})()}write(e){return j(df,this).write(e)}writeUnsigned8(e){return j(af,this)[0]=e,j(df,this).write(j(of,this))}writeVarInt(e){if(e<0)throw Error(`VarInt can not be negative: ${e}`);return j(df,this).write(D(pf,this,hf).call(this,Of(e,j(af,this),0)))}writeBigVarInt(e){if(e<0)throw Error(`VarInt can not be negative: ${e}`);return j(df,this).write(D(pf,this,hf).call(this,kf(e,j(af,this),0)))}flush(){return N(function*(){})()}close(){var e=this;return N(function*(){j(df,e).releaseLock(),yield j(uf,e).close()})()}};function hf(e){switch(e){case 1:return j(of,this);case 2:return j(sf,this);case 4:return j(cf,this);default:return j(lf,this)}}var gf={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},_f=new WeakMap,vf=new WeakMap,yf=new WeakMap,bf=new WeakMap,xf=class e{constructor(t){T(this,_f,0),T(this,vf,new Uint8Array(e.DEFAULT_BUFFER_SIZE)),T(this,yf,void 0),T(this,bf,new TextEncoder),k(yf,this,t)}writeString(e){var t=this;return N(function*(){let n=j(bf,t).encode(e);return yield t.writeVarInt(n.length),t.write(n)})()}ensureBufferSpace(e){if(j(vf,this).length-j(_f,this)>=e)return;let t=new Uint8Array(j(vf,this).length+e);t.set(j(vf,this)),k(vf,this,t)}write(e){return this.ensureBufferSpace(e.length),j(vf,this).set(e,j(_f,this)),k(_f,this,j(_f,this)+e.byteLength),Promise.resolve()}writeUnsigned8(e){return this.ensureBufferSpace(1),j(vf,this)[j(_f,this)]=e,k(_f,this,j(_f,this)+1),Promise.resolve()}writeVarInt(e){if(e<0)throw Error(`VarInt can not be negative: ${e}`);return this.ensureBufferSpace(8),k(_f,this,j(_f,this)+Of(e,j(vf,this),j(_f,this))),Promise.resolve()}writeBigVarInt(e){if(e<0)throw Error(`VarInt can not be negative: ${e}`);return this.ensureBufferSpace(8),k(_f,this,j(_f,this)+kf(e,j(vf,this),j(_f,this))),Promise.resolve()}flush(){if(j(yf,this).readyState!==gf.OPEN)throw Error(`Writer is not open`);return j(yf,this).send(j(vf,this).subarray(0,j(_f,this))),k(_f,this,0),Promise.resolve()}close(){return j(yf,this).close(),Promise.resolve()}};m(xf,`DEFAULT_BUFFER_SIZE`,1024);var Sf=2**6-1,Cf=2**14-1,wf=2**30-1,Tf=2**53-1;function Ef(e,t,n){t[n]=e>>8&255,t[n+1]=e&255}function Df(e,t,n){t[n]=e>>>24&255,t[n+1]=e>>16&255,t[n+2]=e>>8&255,t[n+3]=e&255}function Of(e,t,n){if(e<=Sf)return t[n]=e,1;if(e<=Cf)return Ef(e|16384,t,n),2;if(e<=wf)return Df(e|2147483648,t,n),4;if(e<=Tf)return Af(e,t,n),8;throw Error(`overflow, value larger than 53-bits: ${e}`)}function kf(e,t,n){if(e<=Sf)return t[n]=Number(e),1;if(e<=Cf)return Ef(Number(e)|16384,t,n),2;if(e<=wf)return Df(Number(e)|2147483648,t,n),4;if(e<=Tf)return Af(Number(e),t,n),8;throw Error(`overflow, value larger than 53-bits: ${e}`)}function Af(e,t,n){let r=new DataView(t.buffer,t.byteOffset+n,8);r.setUint32(0,e/4294967296),r.setUint32(4,e&4294967295),t[n]=192}var Q=function(e){return e[e.SubscribeUpdate=2]=`SubscribeUpdate`,e[e.Subscribe=3]=`Subscribe`,e[e.SubscribeOk=4]=`SubscribeOk`,e[e.SubscribeError=5]=`SubscribeError`,e[e.Announce=6]=`Announce`,e[e.AnnounceOk=7]=`AnnounceOk`,e[e.AnnounceError=8]=`AnnounceError`,e[e.Unannounce=9]=`Unannounce`,e[e.Unsubscribe=10]=`Unsubscribe`,e[e.SubscribeDone=11]=`SubscribeDone`,e[e.AnnounceCancel=12]=`AnnounceCancel`,e[e.TrackStatusRequest=13]=`TrackStatusRequest`,e[e.TrackStatus=14]=`TrackStatus`,e[e.Goaway=16]=`Goaway`,e[e.ClientSetup=64]=`ClientSetup`,e[e.ServerSetup=65]=`ServerSetup`,e[e.Unknown=255]=`Unknown`,e}({});P();function jf(e){return Mf.apply(this,arguments)}function Mf(){return Mf=N(function*(e){let t=yield e.readVarInt();if(t<1||t>32)throw Error(`namespace must be between 1 and 32, got ${t}`);let n=[];for(let r=0;r<t;r++)n.push(yield e.readString());return n}),Mf.apply(this,arguments)}function Nf(e,t){return Pf.apply(this,arguments)}function Pf(){return Pf=N(function*(e,t){yield e.writeVarInt(t.length);for(let n of t)yield e.writeString(n)}),Pf.apply(this,arguments)}H(),P();var Ff=F(2);function If(e){return Lf.apply(this,arguments)}function Lf(){return Lf=N(function*(e){let t=yield e.readVarInt(),n=new Map;for(let r=0;r<t;r++){let t=yield e.readBigVarInt(),r=yield e.read(yield e.readVarInt());n.set(t,{type:t,payload:r})}return n}),Lf.apply(this,arguments)}function Rf(e,t){return zf.apply(this,arguments)}function zf(){return zf=N(function*(e,t){yield e.writeVarInt(t.size);for(let[n,r]of t)yield e.writeBigVarInt(n),yield e.writeVarInt(r.payload.length),yield e.write(r.payload)}),zf.apply(this,arguments)}P();function Bf(e){return Vf.apply(this,arguments)}function Vf(){return Vf=N(function*(e){return{type:Q.Announce,namespace:yield jf(e),params:yield If(e)}}),Vf.apply(this,arguments)}function Hf(e,t){return Uf.apply(this,arguments)}function Uf(){return Uf=N(function*(e,t){yield Nf(e,t.namespace),yield Rf(e,t.params)}),Uf.apply(this,arguments)}P();function Wf(e){return Gf.apply(this,arguments)}function Gf(){return Gf=N(function*(e){return{type:Q.AnnounceOk,namespace:yield jf(e)}}),Gf.apply(this,arguments)}function Kf(e,t){return qf.apply(this,arguments)}function qf(){return qf=N(function*(e,t){yield Nf(e,t.namespace)}),qf.apply(this,arguments)}P();var Jf={"latest-group":1,"latest-object":2,"absolute-start":3,"absolute-range":4};function Yf(e){return Xf.apply(this,arguments)}function Xf(){return Xf=N(function*(e){let t=yield e.readVarInt();switch(t){case 1:return{type:`latest-group`};case 2:return{type:`latest-object`};case 3:return{type:`absolute-start`,start:{group:yield e.readBigVarInt(),object:yield e.readBigVarInt()}};case 4:return{type:`absolute-range`,start:{group:yield e.readBigVarInt(),object:yield e.readBigVarInt()},end:{group:yield e.readBigVarInt(),object:yield e.readBigVarInt()}};default:throw Error(`Invalid location type ${t}`)}}),Xf.apply(this,arguments)}function Zf(e,t){return Qf.apply(this,arguments)}function Qf(){return Qf=N(function*(e,t){let n=Jf[t.type];switch(yield e.writeVarInt(n),t.type){case`absolute-range`:yield e.writeBigVarInt(t.start.group),yield e.writeBigVarInt(t.start.object),yield e.writeBigVarInt(t.end.group),yield e.writeBigVarInt(t.end.object);break;case`absolute-start`:yield e.writeBigVarInt(t.start.group),yield e.writeBigVarInt(t.start.object);break;case`latest-object`:case`latest-group`:break;default:throw Error(`Invalid location type ${n}`)}}),Qf.apply(this,arguments)}function $f(e){return ep.apply(this,arguments)}function ep(){return ep=N(function*(e){let t=yield e.readUnsigned8();switch(t){case 0:return`inherit-publisher`;case 1:return`ascending`;case 2:return`descending`;default:throw Error(`Invalid location type ${t}`)}}),ep.apply(this,arguments)}function tp(e,t){return np.apply(this,arguments)}function np(){return np=N(function*(e,t){switch(t){case`inherit-publisher`:yield e.writeUnsigned8(0);break;case`ascending`:yield e.writeUnsigned8(1);break;case`descending`:yield e.writeUnsigned8(2);break}}),np.apply(this,arguments)}function rp(e){return ip.apply(this,arguments)}function ip(){return ip=N(function*(e){let t=yield e.readBigVarInt(),n=yield e.readBigVarInt(),r=yield jf(e),i=yield e.readString(),a=yield e.readUnsigned8(),o=yield $f(e),s=yield Yf(e),c=yield If(e);if(s.type===`absolute-range`){let e=s.start.group>s.end.group,t=s.start.group===s.end.group&&s.start.object>s.end.object;if(e||t)throw Error(`Invalid filter range`)}return{type:Q.Subscribe,id:t,trackAlias:n,namespace:r,name:i,subscriberPriority:a,groupOrder:o,filterType:s,params:c}}),ip.apply(this,arguments)}function ap(e,t){return op.apply(this,arguments)}function op(){return op=N(function*(e,t){yield e.writeBigVarInt(t.id),yield e.writeBigVarInt(t.trackAlias),yield Nf(e,t.namespace),yield e.writeString(t.name),yield e.writeUnsigned8(t.subscriberPriority),yield tp(e,t.groupOrder),yield Zf(e,t.filterType),yield Rf(e,t.params)}),op.apply(this,arguments)}P();var sp={Unsubscribed:0,InternalError:1,Unauthorized:2,TrackEnded:3,SubscriptionEnded:4,GoingAway:5,Expired:6};function cp(e){return lp.apply(this,arguments)}function lp(){return lp=N(function*(e){let t=yield e.readBigVarInt(),n=yield e.readVarInt(),r=yield e.readString(),i=(yield e.readUnsigned8())===1,a;return i&&(a={group:yield e.readBigVarInt(),object:yield e.readBigVarInt()}),{type:Q.SubscribeDone,id:t,errorCode:n,reason:r,finalInfo:a}}),lp.apply(this,arguments)}function up(e,t){return dp.apply(this,arguments)}function dp(){return dp=N(function*(e,t){yield e.writeBigVarInt(t.id),yield e.writeVarInt(t.errorCode),yield e.writeString(t.reason),yield e.writeUnsigned8(t.finalInfo?1:0),t.finalInfo&&(yield e.writeBigVarInt(t.finalInfo.group),yield e.writeBigVarInt(t.finalInfo.object))}),dp.apply(this,arguments)}P();function fp(e){return pp.apply(this,arguments)}function pp(){return pp=N(function*(e){return{type:Q.SubscribeError,id:yield e.readBigVarInt(),errorCode:yield e.readBigVarInt(),reason:yield e.readString(),trackAlias:yield e.readBigVarInt()}}),pp.apply(this,arguments)}function mp(e,t){return hp.apply(this,arguments)}function hp(){return hp=N(function*(e,t){yield e.writeBigVarInt(t.id),yield e.writeBigVarInt(t.errorCode),yield e.writeString(t.reason),yield e.writeBigVarInt(t.trackAlias)}),hp.apply(this,arguments)}P();function gp(e){return _p.apply(this,arguments)}function _p(){return _p=N(function*(e){let t=yield e.readBigVarInt(),n=yield e.readBigVarInt(),r=yield $f(e),i=(yield e.readUnsigned8())===1,a;if(r===`inherit-publisher`)throw Error(`SubscribeOk cannot have inherit publisher group order`);i&&(a={group:yield e.readBigVarInt(),object:yield e.readBigVarInt()});let o=yield If(e);return{type:Q.SubscribeOk,id:t,groupOrder:r,expires:n,largestInfo:a,params:o}}),_p.apply(this,arguments)}function vp(e,t){return yp.apply(this,arguments)}function yp(){return yp=N(function*(e,t){yield e.writeBigVarInt(t.id),yield e.writeBigVarInt(t.expires),yield tp(e,t.groupOrder),yield e.writeUnsigned8(t.largestInfo?1:0),t.largestInfo&&(yield e.writeBigVarInt(t.largestInfo.group),yield e.writeBigVarInt(t.largestInfo.object)),yield Rf(e,t.params)}),yp.apply(this,arguments)}P();function bp(e){return xp.apply(this,arguments)}function xp(){return xp=N(function*(e){let t=yield e.readBigVarInt(),n=yield e.readBigVarInt(),r=yield e.readBigVarInt(),i=yield e.readBigVarInt(),a=yield e.readBigVarInt(),o=yield e.readUnsigned8(),s=yield If(e);if(n>i||n===i&&r>a)throw Error(`Invalid filter range`);return{type:Q.SubscribeUpdate,id:t,start:{group:n,object:r},end:{group:i,object:a},subscriberPriority:o,params:s}}),xp.apply(this,arguments)}function Sp(e,t){return Cp.apply(this,arguments)}function Cp(){return Cp=N(function*(e,t){yield e.writeBigVarInt(t.id),yield e.writeBigVarInt(t.start.group),yield e.writeBigVarInt(t.start.object),yield e.writeBigVarInt(t.end.group),yield e.writeBigVarInt(t.end.object),yield e.writeUnsigned8(t.subscriberPriority),yield Rf(e,t.params)}),Cp.apply(this,arguments)}H();var wp={Publisher:1,Subscriber:2,Both:3},Tp={Role:F(0)};P();var Ep={Draft07:4278190087};function Dp(e){return Op.apply(this,arguments)}function Op(){return Op=N(function*(e){let t=yield e.readVarInt();switch(t){case Ep.Draft07:return{type:`known`,value:t};default:return{type:`unknown`,value:t}}}),Op.apply(this,arguments)}P();function kp(e,t){return Ap.apply(this,arguments)}function Ap(){return Ap=N(function*(e,t){yield e.writeVarInt(t.supportedVersions.length);for(let n of t.supportedVersions)yield e.writeVarInt(n.value);yield Rf(e,t.parameters)}),Ap.apply(this,arguments)}function jp(e){return Mp.apply(this,arguments)}function Mp(){return Mp=N(function*(e){let t=[],n=yield e.readVarInt();for(let r=0;r<n;r++)t.push(yield Dp(e));let r=yield If(e);if(!r.has(Tp.Role))throw Error(`Role parameter is required`);return{type:Q.ClientSetup,supportedVersions:t,parameters:r}}),Mp.apply(this,arguments)}P();function Np(e,t){return Pp.apply(this,arguments)}function Pp(){return Pp=N(function*(e,t){yield e.writeVarInt(t.selectedVersion.value),yield Rf(e,t.parameters)}),Pp.apply(this,arguments)}function Fp(e){return Ip.apply(this,arguments)}function Ip(){return Ip=N(function*(e){let t=yield Dp(e);if(t.type!==`known`)throw Error(`Expected known version`);let n=yield If(e);if(!n.has(Tp.Role))throw Error(`Role parameter is required`);return{type:Q.ServerSetup,selectedVersion:t,parameters:n}}),Ip.apply(this,arguments)}P();function Lp(e){return Rp.apply(this,arguments)}function Rp(){return Rp=N(function*(e){return{type:Q.Unsubscribe,id:yield e.readBigVarInt()}}),Rp.apply(this,arguments)}function zp(e,t){return Bp.apply(this,arguments)}function Bp(){return Bp=N(function*(e,t){yield e.writeBigVarInt(t.id)}),Bp.apply(this,arguments)}B(),E(),A(),M(),O(),P();var Vp=new WeakMap,Hp=new WeakMap,Up=new WeakSet,Wp=class{constructor(e){z(this,Up),T(this,Vp,void 0),T(this,Hp,new Uint8Array),k(Vp,this,e)}write(e){var t=this;return N(function*(){yield j(Vp,t).writeVarInt(e.type);let n=new xf({close:()=>{},readyState:gf.OPEN,send:e=>{k(Hp,t,new Uint8Array(e))}});switch(e.type){case Q.Subscribe:yield D(Up,t,qp).call(t,n,e);break;case Q.Announce:yield D(Up,t,$p).call(t,n,e);break;case Q.SubscribeOk:yield D(Up,t,Jp).call(t,n,e);break;case Q.SubscribeUpdate:yield D(Up,t,Xp).call(t,n,e);break;case Q.SubscribeError:yield D(Up,t,Yp).call(t,n,e);break;case Q.SubscribeDone:yield D(Up,t,Zp).call(t,n,e);break;case Q.Unsubscribe:yield D(Up,t,Qp).call(t,n,e);break;case Q.ClientSetup:yield D(Up,t,Gp).call(t,n,e);break;case Q.ServerSetup:yield D(Up,t,Kp).call(t,n,e);break;case Q.AnnounceOk:yield D(Up,t,em).call(t,n,e);break;default:throw Error(`Unknown message type: ${e.type}`)}yield n.flush(),yield j(Vp,t).writeVarInt(j(Hp,t).byteLength),yield j(Vp,t).write(j(Hp,t)),yield j(Vp,t).flush()})()}close(){var e=this;return N(function*(){return j(Vp,e).close()})()}};function Gp(e,t){return N(function*(){yield kp(e,t)})()}function Kp(e,t){return N(function*(){yield Np(e,t)})()}function qp(e,t){return N(function*(){yield ap(e,t)})()}function Jp(e,t){return N(function*(){yield vp(e,t)})()}function Yp(e,t){return N(function*(){yield mp(e,t)})()}function Xp(e,t){return N(function*(){yield Sp(e,t)})()}function Zp(e,t){return N(function*(){yield up(e,t)})()}function Qp(e,t){return N(function*(){yield zp(e,t)})()}function $p(e,t){return N(function*(){yield Hf(e,t)})()}function em(e,t){return N(function*(){yield Kf(e,t)})()}E(),A(),M(),P();var tm=new WeakMap,nm=new WeakMap,rm=new WeakMap,im=class{constructor(e,t){T(this,tm,void 0),T(this,nm,void 0),T(this,rm,void 0),k(tm,this,e),k(nm,this,new Wp(e)),k(rm,this,t)}write(e){var t=this;return N(function*(){yield j(tm,t).write(j(rm,t)),yield j(nm,t).write(e)})()}close(){return j(tm,this).close()}};H(),P(),F(1025),F(1027),F(1033),F(2048);var am=class extends Error{constructor(e,t){super(e),this.errorCode=t}};function om(e){return sm.apply(this,arguments)}function sm(){return sm=N(function*(e){return{type:Q.AnnounceError,namespace:yield jf(e),errorCode:yield e.readBigVarInt(),reason:yield e.readString()}}),sm.apply(this,arguments)}P();function cm(e,t,n){return lm.apply(this,arguments)}function lm(){return lm=N(function*(e,t,n){return{type:Q.Unknown,messageType:t,payload:yield e.read(n)}}),lm.apply(this,arguments)}H(),E(),A(),M(),P();var um=new WeakMap,dm=class{constructor(e){T(this,um,void 0),k(um,this,e)}cancel(){return j(um,this).close()}read(){var e=this;return N(function*(){let t=yield j(um,e).readVarInt(),n=yield j(um,e).readVarInt();switch(t){case Q.ServerSetup:return Fp(j(um,e));case Q.ClientSetup:return jp(j(um,e));case Q.Subscribe:return rp(j(um,e));case Q.SubscribeOk:return gp(j(um,e));case Q.SubscribeDone:return cp(j(um,e));case Q.SubscribeError:return fp(j(um,e));case Q.SubscribeUpdate:return bp(j(um,e));case Q.Unsubscribe:return Lp(j(um,e));case Q.Announce:return Bf(j(um,e));case Q.AnnounceOk:return Wf(j(um,e));case Q.AnnounceError:return om(j(um,e))}return cm(j(um,e),F(t),n)})()}};H(),B(),E(),A(),M(),O(),P();var fm=new WeakMap,pm=new WeakMap,mm=new WeakMap,hm=new WeakMap,gm=new WeakSet,_m=class e{constructor(e,t){z(this,gm),T(this,fm,void 0),T(this,pm,void 0),T(this,mm,new C),T(this,hm,new C),k(fm,this,e),k(pm,this,t),j(mm,this).resolve()}write(e){var t=this;return N(function*(){let n=yield D(gm,t,vm).call(t);try{yield j(fm,t).write(e)}finally{n.resolve()}})()}markPostHandshake(){j(hm,this).resolve()}postHandshake(){return j(hm,this).promise}read(){var e=this;return N(function*(){return j(pm,e).read()})()}cancel(){return j(pm,this).cancel()}static wrapWebsocket(t){let n=new ReadableStream(new zd(t,ym._)),r=new dm(new Qd(new Uint8Array([]),n));return new e(new im(new xf(t),new Uint8Array([0])),r)}static wrapWebTransport(t){let n=t.writable,r=t.readable;return new e(new Wp(new mf(n)),new dm(new Qd(new Uint8Array,r)))}};function vm(){let e=new C,t=j(mm,this).promise.then(()=>e);return k(mm,this,e),t}var ym={_:0};P();function bm(e,t){return xm.apply(this,arguments)}function xm(){return xm=N(function*(e,t){yield e.write({type:Q.ClientSetup,supportedVersions:[{type:`known`,value:Ep.Draft07}],parameters:new Map([[Tp.Role,{type:Tp.Role,payload:new Uint8Array([t])}]])});let n=yield e.read();if(e.markPostHandshake(),n.type!==Q.ServerSetup)throw Error(`Expected server setup message`);if(n.selectedVersion.type!==`known`)throw Error(`Expected known version`)}),xm.apply(this,arguments)}H(),h(),E(),M();var Sm=new WeakMap,Cm=class{constructor(e){m(this,`announce`,void 0),T(this,Sm,new C),this.announce=e}onOk(e){j(Sm,this).resolve(e)}onError(e){let t=new am(e.reason,e.errorCode);return j(Sm,this).reject(t),t}ok(){return j(Sm,this).promise}};h();function wm(e){return new Tm(new Cm(e))}var Tm=class{constructor(e){m(this,`state`,void 0),this.state=e}};H(),h(),E(),A(),M();var Em=new WeakMap,Dm=new WeakMap,Om=new WeakMap,km=new WeakMap,Am=new WeakMap,jm=new WeakMap,Mm=new WeakMap,Nm=class e{constructor(e){switch(m(this,`subscribe`,void 0),T(this,Em,new C),T(this,Dm,new C),T(this,Om,new C),T(this,km,Date.now()),T(this,Am,new C),T(this,jm,void 0),T(this,Mm,!1),this.subscribe=e,e.filterType.type){case`absolute-start`:k(jm,this,{startGroup:e.filterType.start.group});break;case`absolute-range`:k(jm,this,{startGroup:e.filterType.start.group,endGroup:e.filterType.end.group});break}}onUpdate(e){k(jm,this,{startGroup:e.start.group}),e.end.group>F(0)&&(j(jm,this).endGroup=e.end.group-F(1),k(Mm,this,!0))}endRequested(){return j(Mm,this)}onError(e){let t=Error(e.reason);return j(Em,this).reject(t),j(Dm,this).reject(t),t}onDone(e){e.finalInfo&&(j(jm,this)||k(jm,this,{startGroup:F(0)}),j(jm,this).endGroup=e.finalInfo.group),j(Dm,this).resolve(e)}onUnsubscribe(e){j(Om,this).resolve(e)}onOk(t){let n=Math.max(0,Date.now()-j(km,this)),r=Number(t.expires);if(r>0){let t=Math.max(e.minGraceTime,Math.min(r/10,e.maxGraceTime)),i=Math.min(r-t-n,e.maxTimeout);Promise.race([Er(i),this.done().catch(S)]).then(()=>j(Am,this).resolve(this.expiryState())).catch(S)}j(Em,this).resolve(t)}done(){return j(Dm,this).promise}ok(){return j(Em,this).promise}range(){return j(jm,this)}close(){j(Am,this).promise.catch(S),j(Am,this).reject(Error(`Subscription closed`))}expiryState(){return j(Dm,this).resolved&&j(Dm,this).resolved.errorCode!==sp.Expired?`done`:j(Om,this).pending?`active`:`unsubscribed`}unsubscribed(){return j(Om,this).promise}isUnsubscribed(){return j(Om,this).resolved}expiryNotification(){return j(Am,this).promise}};m(Nm,`maxGraceTime`,15e3),m(Nm,`minGraceTime`,3e3),m(Nm,`maxTimeout`,2147483647),E(),A(),M(),P();var Pm=new WeakMap,Fm=new WeakMap,Im=class{constructor(e){T(this,Pm,void 0),T(this,Fm,!1),k(Pm,this,e)}write(e){var t=this;return N(function*(){j(Fm,t)||(yield j(Pm,t).writeVarInt(zu.StreamHeaderGroup),yield j(Pm,t).writeBigVarInt(e.subscribeId),yield j(Pm,t).writeBigVarInt(e.trackAlias),yield j(Pm,t).writeBigVarInt(e.groupId),yield j(Pm,t).writeBigVarInt(e.subGroupId),yield j(Pm,t).writeUnsigned8(e.subscriberPriority),k(Fm,t,!0)),yield j(Pm,t).writeBigVarInt(e.objectId),yield j(Pm,t).writeVarInt(e.payload.length),e.payload.length>0?yield j(Pm,t).write(e.payload):yield j(Pm,t).writeVarInt(e.objectStatus),yield j(Pm,t).flush()})()}close(){var e=this;return N(function*(){yield j(Pm,e).close()})()}};H(),B(),E(),A(),M(),O(),P();var Lm,Rm,zm,Bm,Vm=3,Hm=new WeakMap,Um=new WeakMap,Wm=new WeakMap,Gm=new WeakMap,Km=new WeakMap,qm=new WeakMap,Jm=new WeakMap,Ym=new WeakMap,Xm=new WeakSet;Lm=wn(),Rm=Symbol.asyncDispose;var Zm=class{constructor(e,t,n,r){z(this,Xm),T(this,Hm,void 0),T(this,Um,void 0),T(this,Wm,void 0),T(this,Gm,void 0),T(this,Km,void 0),T(this,qm,void 0),T(this,Jm,[]),T(this,Ym,new AbortController),k(Hm,this,t),k(Um,this,e),k(Wm,this,n),k(Gm,this,r),k(qm,this,xn.get().createContext(`SubscriptionWriter:${e.subscribe.name}`))}finalInfo(){return j(Km,this)}run(){var e=this;return N(function*(){try{yield Promise.race([D(Xm,e,Qm).call(e).catch(t=>j(qm,e).error(`error writing subscription`,t)),j(Um,e).unsubscribed(),j(Um,e).done(),j(Um,e).expiryNotification().catch(S)])}finally{j(Ym,e).abort()}})()}done(e,t){var n=this;return N(function*(){if(j(Um,n).isUnsubscribed())return;let r={type:Q.SubscribeDone,id:j(Um,n).subscribe.id,errorCode:e,reason:t,finalInfo:j(Km,n)};j(Um,n).onDone(r),yield j(Gm,n).push(r)})()}[Lm](){return this.done(sp.TrackEnded,`Track ended`)}[Rm](){return this.done(sp.TrackEnded,`Track ended`)}};function Qm(){var e=this;return N(function*(){var t=!1,n=!1,r;try{for(var i=X(j(Hm,e).iterate(j(Ym,e).signal)),a;t=!(a=yield i.next()).done;t=!1){let t=a.value;{let n=j(Um,e).range();if(n&&(n.startGroup>t.id||n.endGroup!==void 0&&n.endGroup<t.id))break;for(;j(Jm,e).length>=Vm;)yield j(Jm,e).shift();if(j(Ym,e).signal.aborted)break;let r=new ih(new Im(yield j(Wm,e).openSendStream()),t.consume(),j(Um,e));try{yield r.run()}finally{j(Jm,e).push(r.close())}k(Km,e,r.finalGroup())}}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield i.return())}finally{if(n)throw r}}})()}var $m=new WeakMap,eh=new WeakMap,th=new WeakMap,nh=new WeakMap,rh=new WeakMap;zm=wn(),Bm=Symbol.asyncDispose;var ih=class{constructor(e,t,n){T(this,$m,void 0),T(this,eh,void 0),T(this,th,void 0),T(this,nh,void 0),T(this,rh,void 0),k($m,this,e),k(eh,this,t),k(th,this,n),k(rh,this,xn.get().createContext(`GroupSubscriptionWriter:${n.subscribe.name}`))}finalGroup(){return j(nh,this)}run(){var e=this;return N(function*(){j(rh,e).debug(`write group`);var t=!1,n=!1,r;try{for(var i=X(j(eh,e)),a;t=!(a=yield i.next()).done;t=!1){let t=a.value;yield j($m,e).write({subscribeId:j(th,e).subscribe.id,trackAlias:j(th,e).subscribe.trackAlias,subGroupId:F(0),subscriberPriority:0,groupId:t.groupId,objectId:t.objectId,objectStatus:t.objectStatus,payload:t.payload}),k(nh,e,{group:t.groupId,object:t.objectId})}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield i.return())}finally{if(n)throw r}}j(rh,e).debug(`write group done`)})()}close(){return j($m,this).close().catch(S)}[zm](){return this.close()}[Bm](){return this.close()}};H(),B(),h(),E(),A(),M(),P(),O();var ah,oh,sh=new WeakMap,ch=new WeakMap,lh=new WeakSet;ah=wn(),oh=Symbol.asyncDispose;var uh=class{constructor(e,t,n){z(this,lh),m(this,`state`,void 0),T(this,sh,void 0),T(this,ch,void 0),this.state=e,k(sh,this,t),k(ch,this,n)}ok(e){var t=this;return N(function*(){var n,r,i;let a=(n=t.state.range())==null?void 0:n.startGroup,o=e.latest(),s=o==null?void 0:o.id,c=(r=o==null||(i=o.latest())==null?void 0:i.objectId)==null?F(0):r,l=e.consume(a==null?s:a),u={type:Q.SubscribeOk,id:t.state.subscribe.id,expires:F(0),groupOrder:`ascending`,params:new Map,largestInfo:s?{group:s,object:c}:void 0};return yield j(ch,t).push(u),new Zm(t.state,l,j(sh,t),j(ch,t))})()}invalidRange(){return D(lh,this,dh).call(this,F(1),`Invalid range`)}retryTrackAlias(){return D(lh,this,dh).call(this,F(2),`Retry track alias`)}trackDoesNotExist(){return D(lh,this,dh).call(this,F(3),`Track does not exist`)}unauthorized(){return D(lh,this,dh).call(this,F(4),`Unauthorized`)}timeout(){return D(lh,this,dh).call(this,F(5),`Timeout`)}[ah](){return this.trackDoesNotExist()}[oh](){return this.trackDoesNotExist()}};function dh(e,t){let n={type:Q.SubscribeError,id:this.state.subscribe.id,errorCode:e,reason:t,trackAlias:this.state.subscribe.trackAlias};return j(ch,this).push(n)}H(),B(),E(),A(),M(),P(),O();var fh=new WeakMap,ph=new WeakMap,mh=new WeakMap,hh=new WeakMap,gh=new WeakMap,_h=new WeakMap,vh=new WeakMap,yh=new WeakSet,bh=class{constructor(e,t,n){z(this,yh),T(this,fh,void 0),T(this,ph,void 0),T(this,mh,void 0),T(this,hh,xn.get().createContext(`Publisher`)),T(this,gh,new Zn(new Map)),T(this,_h,new Zn(new Map)),T(this,vh,new ve(10)),k(fh,this,e),k(ph,this,t),k(mh,this,n)}announce(e){var t=this;return N(function*(){j(hh,t).info(`Enter 'announce'`,{namespace:e});try{if(j(gh,t).current().has(e.join(`/`)))throw Error(`Duplicate announcement`);let n=new Map,r=j(fh,t).authToken();r&&n.set(Ff,{type:Ff,payload:new TextEncoder().encode(r)});let i={type:Q.Announce,namespace:e,params:n},a=wm(i);if(j(gh,t).update(e=>e.set(i.namespace.join(`/`),a)),yield j(mh,t).push(i),!(yield Promise.race([a.state.ok(),j(fh,t).closed().then(()=>void 0)])))throw Error(`Session closed`)}catch(e){throw j(hh,t).error(`Error 'announce'`,e),e}})()}close(){j(_h,this).current().forEach(e=>e.close()),j(_h,this).close(),j(gh,this).close(),j(vh,this).close()}incomingSubscriptions(){return j(vh,this)}onMessage(e){var t=this;return N(function*(){switch(e.type){case Q.Subscribe:{let n=new Nm(e);if(j(_h,t).update(t=>(t.set(e.id,n),t)),j(vh,t).isFull()){let e=yield j(vh,t).pop();yield e==null?void 0:e.timeout()}yield j(vh,t).push(new uh(n,j(ph,t),j(mh,t)))}break;case Q.SubscribeUpdate:{let n=j(_h,t).current().get(e.id);n||j(hh,t).debug(`No subscription found`,e),n==null||n.onUpdate(e)}break;case Q.Unsubscribe:{let n=j(_h,t).current().get(e.id);if(!n){j(hh,t).debug(`No subscription found`,e);break}n.onUnsubscribe(e),D(yh,t,xh).call(t,e.id)}break;case Q.AnnounceOk:{let n=j(gh,t).current().get(e.namespace.join(`/`));n||j(hh,t).warn(`No announcement found`,e),n==null||n.state.onOk(e)}break;case Q.AnnounceError:{let n=j(gh,t).current().get(e.namespace.join(`/`));n||j(hh,t).warn(`No announcement found`,e),n==null||n.state.onError(e)}break;default:break}})()}};function xh(e){j(_h,this).isClosed()||j(_h,this).update(t=>(t.delete(e),t))}function Sh(){var e=typeof SuppressedError==`function`?SuppressedError:function(e,t){var n=Error();return n.name=`SuppressedError`,n.error=e,n.suppressed=t,n},t={},n=[];function r(e,t){if(t!=null){if(Object(t)!==t)throw TypeError(`using declarations can only be used with objects, functions, null, or undefined.`);if(e)var r=t[Symbol.asyncDispose||Symbol.for(`Symbol.asyncDispose`)];if(r===void 0&&(r=t[Symbol.dispose||Symbol.for(`Symbol.dispose`)],e))var i=r;if(typeof r!=`function`)throw TypeError(`Object is not disposable.`);i&&(r=function(){try{i.call(t)}catch(e){return Promise.reject(e)}}),n.push({v:t,d:r,a:e})}else e&&n.push({d:t,a:e});return t}return{e:t,u:r.bind(null,!1),a:r.bind(null,!0),d:function(){var r,i=this.e,a=0;function o(){for(;r=n.pop();)try{if(!r.a&&a===1)return a=0,n.push(r),Promise.resolve().then(o);if(r.d){var e=r.d.call(r.v);if(r.a)return a|=2,Promise.resolve(e).then(o,s)}else a|=1}catch(e){return s(e)}if(a===1)return i===t?Promise.resolve():Promise.reject(i);if(i!==t)throw i}function s(n){return i=i===t?n:new e(n,i),o()}return o()}}}H(),B(),E(),M(),A(),O(),P(),h(),Vn(),Wn();var Ch,wh,Th,Eh,Dh=8;function Oh(e,t){let n=new Nm(t),r=new Fh,i=new Zh(e,n,r);return[new zh(n,r,i),i]}var kh=new WeakMap,Ah=new WeakMap,jh=new WeakMap,Mh=new WeakMap,Nh=new WeakMap,Ph=new WeakSet;Ch=Symbol.asyncIterator;var Fh=class{constructor(){z(this,Ph),T(this,kh,[]),T(this,Ah,void 0),T(this,jh,!1),T(this,Mh,!1),T(this,Nh,xn.get().createContext(`GroupsQueue`))}push(e){if(j(kh,this).push(e),j(kh,this).length>Dh){let t=j(kh,this).shift(),n=j(Mh,this)?j(Nh,this).debug:j(Nh,this).warn;k(Mh,this,!0),n(`Closing the oldest queued stream; the consumer is behind`,{subscribeId:e.subscribeId()}),t[Symbol.asyncDispose]()}D(Ph,this,Ih).call(this)}close(){k(jh,this,!0),D(Ph,this,Ih).call(this)}abort(){k(jh,this,!0);for(let e of j(kh,this).splice(0))e[Symbol.asyncDispose]();D(Ph,this,Ih).call(this)}next(){var e=this;return N(function*(){for(;;){let t=j(kh,e).shift();if(t)return{done:!1,value:t};if(j(jh,e))return{done:!0,value:void 0};j(Ah,e)!=null||k(Ah,e,new C),yield j(Ah,e).promise}})()}return(){return this.close(),Promise.resolve({done:!0,value:void 0})}[Ch](){return this}};function Ih(){var e;(e=j(Ah,this))==null||e.resolve(),k(Ah,this,void 0)}var Lh=new WeakMap,Rh=new WeakMap,zh=class{constructor(e,t,n){m(this,`state`,void 0),T(this,Lh,void 0),T(this,Rh,void 0),this.state=e,k(Lh,this,t),k(Rh,this,n)}onDone(e){this.state.onDone(e)}onData(e){if(!j(Rh,this).willRead()){e[Symbol.asyncDispose]();return}j(Lh,this).push(e)}onError(e){this.state.onError(e),j(Lh,this).abort()}close(){this.state.close(),j(Lh,this).close()}},Bh=Symbol(`closed`),Vh=new WeakMap,Hh=new WeakMap,Uh=new WeakMap,Wh=new WeakMap,Gh=new WeakMap,Kh=new WeakMap,qh=new WeakMap,Jh=new WeakMap,Yh=new WeakSet,Xh=new WeakMap;wh=Symbol.asyncIterator,Th=wn(),Eh=Symbol.asyncDispose;var Zh=class{constructor(e,t,n){z(this,Yh),T(this,Vh,void 0),T(this,Hh,void 0),T(this,Uh,void 0),T(this,Wh,new C),T(this,Gh,new Set),T(this,Kh,!1),T(this,qh,0),T(this,Jh,new Set),T(this,Xh,xn.get().createContext(`SubscriptionConsumer`)),k(Vh,this,e),k(Hh,this,t),k(Uh,this,n)}get id(){return j(Hh,this).subscribe.id}get trackAlias(){return j(Hh,this).subscribe.trackAlias}get name(){return j(Hh,this).subscribe.name}range(){return j(Hh,this).range()}endRequested(){return j(Hh,this).endRequested()}expiryNotification(){return j(Hh,this).expiryNotification()}update(e,t){var n=this;return N(function*(){let r={type:Q.SubscribeUpdate,id:j(Hh,n).subscribe.id,start:{group:e,object:F(0)},end:{group:t+F(1),object:F(0)},params:new Map,subscriberPriority:0};j(Hh,n).onUpdate(r),yield j(Vh,n).push(r)})()}unsubscribe(){var e=this;return N(function*(){let t={type:Q.Unsubscribe,id:j(Hh,e).subscribe.id};j(Hh,e).onUnsubscribe(t),yield j(Vh,e).push(t)})()}close(){var e,t;return D(Yh,this,Qh).call(this),(e=(t=j(Uh,this)).return)==null?void 0:e.call(t)}closed(){return j(Wh,this).promise}done(){return j(Hh,this).done()}expiryState(){return j(Hh,this).expiryState()}unsubscribed(){return j(Hh,this).isUnsubscribed()}willRead(){return j(Kh,this)?!1:j(Wh,this).pending||j(qh,this)>0}return(){var e=this;return N(function*(){return k(Kh,e,!0),D(Yh,e,Qh).call(e),yield D(Yh,e,ng).call(e),yield e.discardQueued(),yield e.unsubscribe(),{done:!0,value:void 0}})()}discardQueued(){var e=this;return N(function*(){var t,n;for(yield(t=(n=j(Uh,e)).return)==null?void 0:t.call(n);;){let t=yield j(Uh,e).next();if(t.done)return;yield t.value[Symbol.asyncDispose]()}})()}groups(){var e;k(qh,this,(e=j(qh,this),e++,e));let t=D(Yh,this,eg).call(this),n=!0,r=()=>{if(n){var e;n=!1,k(qh,this,(e=j(qh,this),e--,e))}},i=function(){var e=N(function*(e){try{let t=yield e;return t.done&&r(),t}catch(e){throw r(),e}});return function(t){return e.apply(this,arguments)}}(),a={next:()=>i(t.next()),return:()=>i(t.return(void 0)),throw:e=>i(t.throw(e)),[Symbol.asyncIterator]:()=>a};return a}[wh](){return this.groups()}objects(){var e=this;return Hn(function*(){var t=!1,n=!1,r;try{for(var i=X(e.groups()),a;t=!(a=yield V(i.next())).done;t=!1){let e=a.value;var o=!1,s=!1,c;try{for(var l=X(e),u;o=!(u=yield V(l.next())).done;o=!1)yield u.value}catch(e){s=!0,c=e}finally{try{o&&l.return!=null&&(yield V(l.return()))}finally{if(s)throw c}}}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield V(i.return()))}finally{if(n)throw r}}})()}[Th](){return D(Yh,this,tg).call(this)}[Eh](){return D(Yh,this,tg).call(this)}};function Qh(){j(Wh,this).resolve();for(let e of j(Gh,this))e();j(Gh,this).clear()}function $h(e){return j(Wh,this).pending?new Promise((t,n)=>{let r=()=>t(Bh);j(Gh,this).add(r),e.then(e=>{j(Gh,this).delete(r),t(e)},e=>{j(Gh,this).delete(r),n(e)})}):Promise.resolve(Bh)}function eg(){var e=this;return Hn(function*(){let t=!1;var n=!1,r=!1,i;try{readers:for(var a=X(j(Uh,e)),o;n=!(o=yield V(a.next())).done;n=!1)try{var s=Sh();let n=s.a(o.value);{if(j(Kh,e))return;j(Jh,e).add(n);let r=n.groups();try{for(let n=!0;;n=!1){var c,l;let i=r.next();i.catch(S);let a=n?yield V(i):yield V(D(Yh,e,$h).call(e,i));if(a===Bh||a.done)break;let o=a.value,s=(c=j(Hh,e).range())==null?void 0:c.startGroup,u=(l=j(Hh,e).range())==null?void 0:l.endGroup;if(s!==void 0&&o.groupId()<s||u!==void 0&&o.groupId()>u){t=!0;break readers}yield o}}finally{var u;(u=r.return)==null||(u=u.call(r))==null||u.catch(S),j(Jh,e).delete(n)}}}catch(e){s.e=e}finally{yield V(s.d())}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield V(a.return()))}finally{if(r)throw i}}t&&j(qh,e)===1&&(k(Kh,e,!0),D(Yh,e,Qh).call(e),yield V(e.discardQueued()))})()}function tg(){var e=this;return N(function*(){return j(Xh,e).info(`Enter 'dispose'`),k(Kh,e,!0),yield e.close(),yield D(Yh,e,ng).call(e),yield e.discardQueued(),e.unsubscribe()})()}function ng(){var e=this;return N(function*(){let t=[...j(Jh,e)];j(Jh,e).clear(),yield Promise.all(t.map(e=>Promise.resolve(e[Symbol.asyncDispose]()).catch(S)))})()}H(),B(),E(),h(),A(),O(),M(),P();var rg=2e3,ig=new WeakMap,ag=new WeakMap,og=new WeakMap,sg=new WeakMap,cg=new WeakSet,lg=class{constructor(e,t){z(this,cg),T(this,ig,void 0),m(this,`nextSubscribeId`,F(0)),T(this,ag,new Zn(new Map)),T(this,og,void 0),T(this,sg,xn.get().createContext(`Subscriber`)),k(ig,this,e),k(og,this,t),D(cg,this,ug).call(this).catch(S)}subscribe(e,t){var n=this;return N(function*(e,t,r=new Map){j(sg,n).info(`Enter 'subscribe'`,{namespace:e,track:t});try{let i=n.nextSubscribeId++,a=j(ig,n).authToken();a&&r.set(Ff,{type:Ff,payload:new TextEncoder().encode(a)});let o={type:Q.Subscribe,namespace:e,name:t.name,id:i,trackAlias:i,groupOrder:t.groupOrder,subscriberPriority:t.priority,filterType:t.filterType,params:r},[s,c]=Oh(j(og,n),o);if(j(ag,n).update(e=>e.set(i,s)),yield j(og,n).push(o),!(yield Promise.race([s.state.ok(),j(ig,n).closed().then(()=>void 0)])))throw Error(`Session closed`);return c.closed().then(()=>Promise.race([Er(rg),n.closed()])).then(()=>D(cg,n,dg).call(n,c.id)).catch(()=>D(cg,n,dg).call(n,c.id)),c}catch(e){throw j(sg,n).error(`Error 'subscribe'`,e),e}}).apply(this,arguments)}closed(){return j(ig,this).closed()}lastReceived(){return j(ig,this).lastReceived()}transportType(){return j(ig,this).transportType()}url(){return j(ig,this).url()}onMessage(e){var t=this;return N(function*(){switch(e.type){case Q.Announce:yield j(og,t).push({type:Q.AnnounceOk,namespace:e.namespace});break;case Q.SubscribeOk:{let n=j(ag,t).current().get(e.id);n&&n.state.onOk(e)}break;case Q.SubscribeError:{let n=j(ag,t).current().get(e.id);n||j(sg,t).warn(`No subscription found`,e),n==null||n.onError(e),D(cg,t,dg).call(t,e.id)}break;case Q.SubscribeDone:{let n=j(ag,t).current().get(e.id);n||j(sg,t).debug(`No subscription found`,e),n==null||n.onDone(e)}break;default:break}})()}onObjectReader(e){let t=j(ag,this).current().get(e.subscribeId());if(!t){j(sg,this).warn(`No subscription found`,e.subscribeId()),e[Symbol.asyncDispose]();return}t.onData(e)}close(){j(sg,this).debug(`Enter 'close'`),j(ag,this).current().forEach(e=>e.close()),j(ag,this).close()}};function ug(){var e=this;return N(function*(){var t=!1,n=!1,r;try{for(var i=X(j(ag,e)),a;t=!(a=yield i.next()).done;t=!1){let t=a.value;{let n=[...t.values()].map(e=>e.state.subscribe);j(sg,e).debug(`current subscriptions`,n)}}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield i.return())}finally{if(n)throw r}}j(sg,e).debug(`Return 'observeChanges'`)})()}function dg(e){j(sg,this).debug(`Enter 'deleteSubscription'`),!j(ag,this).isClosed()&&j(ag,this).update(t=>(t.delete(e),t))}H(),B(),E(),h(),A(),O(),M(),P();var fg,pg,mg=new WeakMap,hg=new WeakMap,gg=new WeakMap,_g=new WeakMap,vg=new WeakMap,yg=new WeakMap,bg=new WeakMap,xg=new WeakMap,Sg=new WeakSet;fg=Tn(),pg=Symbol.dispose;var Cg=class{constructor(e,t){z(this,Sg),T(this,mg,void 0),T(this,hg,void 0),T(this,gg,new C),T(this,_g,void 0),T(this,vg,xn.get().createContext(`Session`)),m(this,`subscriber`,void 0),m(this,`publisher`,void 0),T(this,yg,void 0),T(this,bg,!1),T(this,xg,performance.now());let[n,r]=fe(100);k(mg,this,e),k(_g,this,r),this.subscriber=new lg(this,n),this.publisher=new bh(this,e,n),k(hg,this,D(Sg,this,Tg).call(this)),k(yg,this,new Zn(t)),this.closed().then(()=>this.close()).catch(S)}updateAuthToken(e){j(yg,this).update(e)}authToken(){return j(yg,this).current()}transportType(){return j(mg,this).transportType()}lastReceived(){return Math.max(j(xg,this),j(mg,this).lastReceived())}getStats(){var e,t,n;return(e=(t=(n=j(mg,this)).getStats)==null?void 0:t.call(n))==null?Promise.resolve(void 0):e}url(){return j(mg,this).url()}closed(){return Promise.race([j(hg,this),j(gg,this).promise])}fail(e){j(gg,this).pending&&j(gg,this).resolve(e)}close(){k(bg,this,!0);try{this.subscriber.close(),this.publisher.close(),j(_g,this).cancel(`closing`),j(mg,this).close()}catch(e){j(vg,this).warn(`Error closing session`,e)}}[fg](){D(Sg,this,kg).call(this)}[pg](){D(Sg,this,kg).call(this)}};function wg(e){var t=this;return N(function*(){var n,r;switch(j(vg,t).debug(`received message`,e),yield(n=t.subscriber)==null?void 0:n.onMessage(e),yield(r=t.publisher)==null?void 0:r.onMessage(e),e.type){case Q.Goaway:j(vg,t).info(`received GoAway`,e);break;default:break}})()}function Tg(){var e=this;return N(function*(){var t;let n=yield Promise.all([D(Sg,e,Dg).call(e),D(Sg,e,Og).call(e),D(Sg,e,Eg).call(e)]);return(t=j(gg,e).resolved)==null?n.find(e=>e instanceof Error):t})()}function Eg(){var e=this;return N(function*(){try{var t=!1,n=!1,r;try{for(var i=X(j(_g,e)),a;t=!(a=yield i.next()).done;t=!1){let t=a.value;j(vg,e).debug(`sending message`,t),yield j(mg,e).writeMessage(t)}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield i.return())}finally{if(n)throw r}}}catch(t){return j(bg,e)?j(vg,e).debug(`Closed while sending 'runOutgoingMessages'`,t):j(vg,e).error(`Error 'runOutgoingMessages'`,t),t}j(vg,e).info(`Return 'runOutgoingMessages'`)})()}function Dg(){var e=this;return N(function*(){try{for(yield j(mg,e).afterHandshake();;){let t=yield j(mg,e).readMessage().catch(()=>void 0);if(!t)break;k(xg,e,performance.now()),yield D(Sg,e,wg).call(e,t)}}catch(t){return j(vg,e).error(`Error 'runControl'`,t),t}finally{j(_g,e).cancel(`closing`)}j(vg,e).info(`Return 'runControl'`)})()}function Og(){var e=this;return N(function*(){try{for(;;){var t;let n=yield j(mg,e).objectStream();if(!n)break;(t=e.subscriber)==null||t.onObjectReader(n)}}catch(t){return j(vg,e).error(`Error 'runObjects'`,t),t}j(vg,e).info(`Return 'runObjects'`)})()}function kg(){j(vg,this).debug(`Enter 'dispose'`),this.close()}B(),E(),A(),M(),O(),P();var Ag=128;Ag-1;var jg=new WeakMap,Mg=new WeakMap,Ng=new WeakMap,Pg=new WeakMap,Fg=new WeakMap,Ig=new WeakSet,Lg=class{constructor(e,t,n){if(z(this,Ig),T(this,jg,void 0),T(this,Mg,void 0),T(this,Ng,!0),T(this,Pg,!1),T(this,Fg,void 0),!Number.isInteger(t)||t<1||t>127)throw Error(`Invalid stream ID ${t}: must be an integer in 1..127`);k(jg,this,e),k(Mg,this,t),k(Fg,this,n)}writeUnsigned8(e){var t=this;return N(function*(){return D(Ig,t,Rg).call(t),yield D(Ig,t,zg).call(t),j(jg,t).writeUnsigned8(e)})()}writeVarInt(e){var t=this;return N(function*(){return D(Ig,t,Rg).call(t),yield D(Ig,t,zg).call(t),j(jg,t).writeVarInt(e)})()}writeBigVarInt(e){var t=this;return N(function*(){return D(Ig,t,Rg).call(t),yield D(Ig,t,zg).call(t),j(jg,t).writeBigVarInt(e)})()}write(e){var t=this;return N(function*(){return D(Ig,t,Rg).call(t),yield D(Ig,t,zg).call(t),j(jg,t).write(e)})()}writeString(e){var t=this;return N(function*(){return D(Ig,t,Rg).call(t),yield D(Ig,t,zg).call(t),j(jg,t).writeString(e)})()}flush(){var e=this;return N(function*(){D(Ig,e,Rg).call(e),k(Ng,e,!0),yield j(jg,e).flush()})()}close(){var e=this;return N(function*(){j(Pg,e)||(k(Ng,e,!0),yield D(Ig,e,zg).call(e,!1),yield j(jg,e).flush(),k(Pg,e,!0),j(Fg,e).call(e))})()}};function Rg(){if(j(Pg,this))throw Error(`Stream is closed`)}function zg(e=!0){if(j(Ng,this))return k(Ng,this,!1),j(jg,this).writeUnsigned8(j(Mg,this)|(e?Ag:0))}H(),B(),E(),A(),M(),O(),P();var Bg=new WeakMap,Vg=new WeakMap,Hg=new WeakMap,Ug=new WeakMap,Wg=new WeakMap,Gg=new WeakMap,Kg=new WeakMap,qg=new WeakMap,Jg=new WeakMap,Yg=new WeakSet,Xg=class{constructor(e,t){z(this,Yg),T(this,Bg,void 0),T(this,Vg,void 0),T(this,Hg,void 0),T(this,Ug,void 0),T(this,Wg,new Map),T(this,Gg,new Set),T(this,Kg,xn.get().createContext(`WebSocketConnection`)),T(this,qg,performance.now()),T(this,Jg,new Set(Array(127).fill(0).map((e,t)=>t+1))),k(Bg,this,e),k(Vg,this,t),k(Hg,this,new ReadableStream(new Wd(e))),j(Bg,this).addEventListener(`message`,()=>{k(qg,this,performance.now())}),j(Bg,this).addEventListener(`close`,e=>{j(Kg,this).info(`WebSocket closed`,{code:e.code,reason:e.reason,wasClean:e.wasClean}),j(Vg,this).markPostHandshake(),j(Wg,this).forEach(e=>e.close())})}openSendStream(){let e=j(Jg,this).values().next().value;if(!e)throw Error(`No stream IDs available`);return j(Jg,this).delete(e),Promise.resolve(new Lg(new xf(j(Bg,this)),e,()=>D(Yg,this,Zg).call(this,e)))}transportType(){return`websocket`}url(){return j(Bg,this).url}lastReceived(){return j(qg,this)}afterHandshake(){return j(Vg,this).postHandshake()}objectStream(){var e=this;return N(function*(){for(;;){k(Ug,e,j(Hg,e).getReader());try{let{value:t,done:n}=yield j(Ug,e).read();if(n)return;let[r,i,a]=t,o=F(i);if(j(Gg,e).has(o)){r||j(Gg,e).delete(o);continue}if(j(Wg,e).has(o)){let t=j(Wg,e).get(o);if(!t)throw Error(`Stream not found`);a.length>0&&(yield t.push(a)),r||(j(Kg,e).debug(`Closing stream`,{streamId:i}),t.close(),j(Wg,e).delete(o),j(Gg,e).delete(o))}else{j(Kg,e).debug(`Creating new stream`,{streamId:i});let[t,n]=fe(1e3),s=new ReadableStream({pull(e){return N(function*(){let t=yield n.pop();t?e.enqueue(t):e.close()})()},cancel:()=>D(Yg,e,Qg).call(e,o,t,n)});if(j(Wg,e).set(o,t),r||(j(Kg,e).debug(`Closing new stream`,{streamId:i}),j(Wg,e).delete(o),yield s.cancel()),a.length>0)return yield Pd(new Qd(a,s),i)}}finally{var t;(t=j(Ug,e))==null||t.releaseLock()}}})()}close(){var e;return j(Vg,this).cancel().catch(S),j(Hg,this).cancel(`closing`).catch(S),(e=j(Ug,this))==null||e.cancel(`closing`).catch(S),j(Bg,this).close()}closed(){return Promise.resolve()}writeMessage(e){var t=this;return N(function*(){yield j(Vg,t).write(e)})()}readMessage(){var e=this;return N(function*(){return j(Vg,e).read()})()}};function Zg(e){j(Jg,this).add(e)}function Qg(e,t,n){j(Wg,this).get(e)===t&&(j(Kg,this).debug(`Discarding cancelled stream`,{streamId:e}),j(Wg,this).delete(e),j(Gg,this).add(e),t.close(),N(function*(){for(;yield n.pop(););})().catch(S))}H(),B(),E(),A(),O(),M(),P();var $g=3,e_=32,t_=250,n_=(e,t=performance.now())=>e.acceptedAt+t_-t,r_=new WeakMap,i_=new WeakMap,a_=new WeakMap,o_=new WeakMap,s_=new WeakMap,c_=new WeakMap,l_=new WeakMap,u_=new WeakMap,d_=new WeakMap,f_=new WeakMap,p_=new WeakMap,m_=new WeakSet,h_=class{constructor(e,t,n){z(this,m_),T(this,r_,void 0),T(this,i_,void 0),T(this,a_,[]),T(this,o_,void 0),T(this,s_,!1),T(this,c_,void 0),T(this,l_,0),T(this,u_,!1),T(this,d_,performance.now()),T(this,f_,xn.get().createContext(`WebTransportConnection`)),T(this,p_,()=>{k(d_,this,performance.now())}),k(c_,this,n),k(r_,this,e),k(i_,this,t),D(m_,this,g_).call(this).catch(e=>{j(f_,this).warn(`Incoming streams handling ended with error`,e),j(i_,this).markPostHandshake()}),j(r_,this).closed.finally(()=>{k(u_,this,!0),j(i_,this).markPostHandshake(),D(m_,this,b_).call(this)}).catch(S)}openSendStream(){var e=this;return N(function*(){return new mf(yield j(r_,e).createUnidirectionalStream())})()}transportType(){return`webtransport`}url(){return j(c_,this)}lastReceived(){return j(d_,this)}afterHandshake(){return j(i_,this).postHandshake()}closed(){var e=this;return N(function*(){yield j(r_,e).closed.catch(S)})()}close(e){j(u_,this)||(k(u_,this,!0),D(m_,this,b_).call(this),j(r_,this).close(e))}writeMessage(e){var t=this;return N(function*(){yield j(i_,t).write(e)})()}readMessage(){var e=this;return N(function*(){return j(i_,e).read()})()}objectStream(){var e=this;return N(function*(){for(;;){if(j(u_,e))return;let t=performance.now(),n;for(let r=0;r<j(a_,e).length;r++){let i=j(a_,e)[r];if(i.groups)return j(a_,e).splice(r,1),D(m_,e,v_).call(e),i.groups;if(n_(i,t)>0){j(a_,e).some(e=>e.groups)&&(n=n_(i,t));break}}if(j(s_,e)&&j(a_,e).length===0)return;yield D(m_,e,__).call(e,n)}})()}getStats(){var e=this;return N(function*(){let t=j(r_,e);if(typeof t.getStats!=`function`)return;let n=yield t.getStats();if(n!=null)return{packetsLost:n.packetsLost,packetsSent:n.packetsSent}})()}};function g_(){var e=this;return N(function*(){let t=j(r_,e).incomingUnidirectionalStreams.getReader();try{for(;;){var n,r;let{value:i,done:a}=yield t.read();if(a)return;for(;j(a_,e).length>=e_&&!j(u_,e);){let t=j(a_,e).find(e=>!e.groups);if(!t){yield D(m_,e,__).call(e);continue}let n=n_(t);n>0?yield D(m_,e,__).call(e,n):D(m_,e,y_).call(e,t)}if(j(u_,e)){i.cancel().catch(S);return}let o=new Qd(new Uint8Array,i,j(p_,e)),s=(k(l_,e,(n=j(l_,e),r=n++,n)),r),c={reader:o,streamId:s,acceptedAt:performance.now()};j(a_,e).push(c),Pd(o,s).then(t=>{c.groups=t,D(m_,e,v_).call(e)},t=>{let n=j(a_,e).indexOf(c);n<0||(j(a_,e).splice(n,1),D(m_,e,x_).call(e,t,s,o),D(m_,e,v_).call(e))})}}finally{k(s_,e,!0),D(m_,e,v_).call(e)}})()}function __(e){var t=this;return N(function*(){if(j(o_,t)!=null||k(o_,t,new C),e===void 0)return j(o_,t).promise;let n=new AbortController;yield Promise.race([j(o_,t).promise,Er(e,n.signal).catch(S)]),n.abort()})()}function v_(){var e;(e=j(o_,this))==null||e.resolve(),k(o_,this,void 0)}function y_(e){j(a_,this).splice(j(a_,this).indexOf(e),1),e.reader.close().catch(S),j(f_,this).warn(`Cancelling object stream whose header stalled past its hold`,{streamId:e.streamId}),D(m_,this,v_).call(this)}function b_(){for(let{reader:e}of j(a_,this).splice(0))e.close().catch(S);D(m_,this,v_).call(this)}function x_(e,t,n){var r;if(n.close().catch(S),j(u_,this))return;let i=Lu(e),a={streamId:t,error:e,source:i==null?void 0:i.source,streamErrorCode:(r=i==null?void 0:i.streamErrorCode)==null?void 0:r};(i==null?void 0:i.source)===`stream`?(Ru(e)?j(f_,this).debug:j(f_,this).warn)(`Discarding object stream whose header could not be read`,a):(j(f_,this).warn(`Closing session after object stream header failure`,a),this.close(i?void 0:{closeCode:$g,reason:`Invalid object stream header`}))}H(),P();var S_=xn.get().createContext(`MoqClient`);function C_(e){return w_.apply(this,arguments)}function w_(){return w_=N(function*(e){var t;xe(e.signal);let n=new WebSocket(e.wsUrl||e.url);n.binaryType=`arraybuffer`;let r=e=>{throw n.close(),e};yield Ce(new Promise((e,t)=>{let r,i=()=>{r&&(clearTimeout(r),r=void 0),n.removeEventListener(`error`,a),n.removeEventListener(`open`,o),n.removeEventListener(`close`,s)},a=()=>{i(),t(Error(`WebSocket error`))},o=()=>{i(),e()},s=()=>{i(),t(Error(`WebSocket closed before open`))};r=setTimeout(()=>{i(),n.close(),S_.warn(`WebSocket connect timed out`,{timeoutMs:Jt}),t(Error(`WebSocket connect timed out`))},Jt),n.addEventListener(`error`,a),n.addEventListener(`open`,o),n.addEventListener(`close`,s)}),e.signal).catch(r),(t=e.signal)!=null&&t.aborted&&r(be(e.signal));let i=_m.wrapWebsocket(n),a=bm(i,e.role).catch(e=>{throw S_.warn(`MoQ handshake failed, closing WebSocket`,{error:e}),n.close(),e});if(!e.handshakePipelining){var o;yield Ce(a,e.signal).catch(r),(o=e.signal)!=null&&o.aborted&&r(be(e.signal))}let s=new Cg(new Xg(n,i),e.authToken);return S_.info(`connected`,{url:e.wsUrl||e.url,transport:`websocket`}),e.handshakePipelining&&a.catch(e=>{s.fail(e)}),s}),w_.apply(this,arguments)}function T_(e){return E_.apply(this,arguments)}function E_(){return E_=N(function*(e,t=e.signal){xe(t);let n=new WebTransport(e.url,{congestionControl:`low-latency`,serverCertificateHashes:e.serverCertificateHashes}),r=e=>{throw n.close(),e},i=()=>{n.close()};typeof window<`u`&&typeof window.addEventListener==`function`&&(window.addEventListener(`beforeunload`,i),n.closed.finally(()=>{window.removeEventListener(`beforeunload`,i)}).catch(()=>{})),yield Ce(Promise.race([n.ready,n.closed.then(()=>Promise.reject(Error(`WebTransport closed`)))]),t).catch(r);let a=yield Ce(n.createBidirectionalStream(),t).catch(r),o=_m.wrapWebTransport(a),s=bm(o,e.role).catch(e=>{throw S_.warn(`MoQ handshake failed, closing WebTransport`,{error:e}),n.close(),e});e.handshakePipelining||(yield Ce(s,t).catch(r)),t!=null&&t.aborted&&r(be(t));let c=new Cg(new h_(n,o,e.url.toString()),e.authToken);return S_.info(`connected`,{url:e.url,transport:`webtransport`}),e.handshakePipelining&&s.catch(e=>{c.fail(e)}),c}),E_.apply(this,arguments)}function D_(e){return O_.apply(this,arguments)}function O_(){return O_=N(function*(e){if(self.WebTransport&&(e==null?void 0:e.preferredTransport)!==`websocket`&&e.url.protocol.startsWith(`https`)){if(!e.websocketFallbackTimeoutMs)return{session:yield T_(e),transportSelectionReason:void 0};let t=new AbortController,n=Se(e.signal,e=>t.abort(e.reason)),r=T_(e,t.signal).catch(()=>void 0),i,a=new Promise(t=>{i=setTimeout(()=>t(void 0),e.websocketFallbackTimeoutMs)}),o=yield Promise.race([r,a]).finally(()=>{clearTimeout(i),n()});return o?{session:o,transportSelectionReason:void 0}:(t.abort(),r.then(e=>e==null?void 0:e.close()),{session:yield C_(e),transportSelectionReason:`fallback`})}let t;return t=(e==null?void 0:e.preferredTransport)===`websocket`?`disabled`:self.WebTransport?`unavailable`:`unsupported`,{session:yield C_(e),transportSelectionReason:t}}),O_.apply(this,arguments)}H(),E(),M();var k_=new WeakMap,A_=class{constructor(){T(this,k_,{name:``,priority:0,groupOrder:`ascending`,filterType:{type:`latest-group`}})}name(e){return j(k_,this).name=e,this}priority(e){return j(k_,this).priority=e,this}groupOrder(e){return j(k_,this).groupOrder=e,this}startGroup(e){return j(k_,this).filterType={type:`absolute-start`,start:{group:e,object:F(0)}},this}range(e,t){return j(k_,this).filterType={type:`absolute-range`,start:{group:e,object:F(0)},end:{group:t,object:F(0)}},this}build(){return j(k_,this)}};E(),A(),M();var j_=new WeakMap,M_=new WeakMap,N_=class{constructor(e,t){T(this,j_,void 0),T(this,M_,void 0),k(j_,this,e),k(M_,this,t)}subscribe(e,t=new Map){return j(j_,this).subscribe(this.namespace(),e,t)}closed(){return j(j_,this).closed()}namespace(){return j(M_,this).namespace}};function P_(e,t){return t?[`com.vindral.moq`,e,t]:[`com.vindral.moq`,e]}function F_(e){let t=e[1];if(!t)throw Error(`namespace must contain a channel ID`);return t}function I_(e){return`tracks`in e}function L_(e){let t=new TextDecoder().decode(e);return JSON.parse(t)}H(),B(),E(),M(),A(),O(),P();var R_,z_=2e3,B_=new WeakMap,V_=new WeakMap,H_=new WeakMap,U_=new WeakMap,W_=new WeakMap,G_=new WeakMap,K_=new WeakMap,q_=new WeakMap,J_=new WeakMap,Y_=new WeakMap,X_=new WeakMap,Z_=new WeakMap,Q_=new WeakMap,$_=new WeakMap,$=new WeakSet;R_=Symbol.asyncIterator;var ev=class e{constructor(e,t){var n=this;z(this,$),T(this,B_,void 0),T(this,V_,void 0),T(this,H_,new w(100)),T(this,U_,void 0),T(this,W_,!1),T(this,G_,void 0),T(this,K_,void 0),T(this,q_,!1),T(this,J_,new Set),T(this,Y_,!1),T(this,X_,!1),T(this,Z_,!1),T(this,Q_,void 0),T(this,$_,function(){var e=N(function*(e){if(e===void 0)return j(B_,n).close();if(k(W_,n,!0),j(U_,n))for(let t of j(U_,n))t>e&&j(U_,n).delete(t);else{let t=j(H_,n).items().reduce((e,t)=>e<t?e:t,e);k(U_,n,D($,n,pv).call(n,t,e))}D($,n,tv).call(n,!0)});return function(t){return e.apply(this,arguments)}}()),k(B_,this,e),k(V_,this,t),e.done().then(function(){var e=N(function*(e){var t;return j($_,n).call(n,(t=e.finalInfo)==null?void 0:t.group)});return function(t){return e.apply(this,arguments)}}()).catch(S),k(Q_,this,e.groups())}static subscribe(t,n){return N(function*(){return new e(yield t.subscribe(n),void 0)})()}subscribeId(){return j(B_,this).id}name(){return j(B_,this).name}largestGroupId(){return j(V_,this)}needsRenewal(){return j(B_,this).expiryState()===`active`&&j(U_,this)===void 0}endOfTrack(e){var t=this;return N(function*(){if(j(W_,t))return D($,t,av).call(t,void 0,e);let n=j(H_,t).items().reduce((e,t)=>e<t?e:t,e);return t.update(n,e)})()}update(e,t){var n=this;return N(function*(){return j(W_,n)?D($,n,av).call(n,e,t):(k(U_,n,D($,n,pv).call(n,e,t)),j(U_,n).size===0&&(yield j(B_,n).close()),j(B_,n).update(e,t))})()}unsubscribe(){return j(B_,this).unsubscribe()}next(){var e=this;return N(function*(){k(Z_,e,!0),D($,e,nv).call(e);try{return yield D($,e,sv).call(e)}finally{k(Z_,e,!1),clearTimeout(j(K_,e))}})()}return(){var e;return(e=j(B_,this).close())==null||e.catch(S),k(Y_,this,!0),D($,this,iv).call(this),D($,this,dv).call(this),j(B_,this).return()}[R_](){return this}};function tv(e){var t;j(X_,this)||(((t=j(U_,this))==null?void 0:t.size)===0?D($,this,rv).call(this):e&&D($,this,nv).call(this))}function nv(){j(X_,this)||!j(W_,this)||!j(Z_,this)||(clearTimeout(j(K_,this)),k(K_,this,setTimeout(()=>D($,this,rv).call(this),z_)))}function rv(){if(D($,this,iv).call(this),D($,this,dv).call(this),!j(Y_,this)){var e;(e=j(B_,this).close())==null||e.catch(S)}}function iv(){k(X_,this,!0),clearTimeout(j(K_,this))}function av(e,t){var n;let r=j(G_,this),i={startGroup:r&&r.startGroup>(e==null?0n:e)?r.startGroup:e==null?0n:e,endGroup:r&&r.endGroup<t?r.endGroup:t};k(G_,this,i);for(let e of(n=j(U_,this))==null?[]:n)if(!D($,this,ov).call(this,e)){var a;(a=j(U_,this))==null||a.delete(e)}D($,this,tv).call(this,!1)}function ov(e){let t=j(G_,this);return!t||e>=t.startGroup&&e<=t.endGroup}function sv(){var e=this;return N(function*(){let t=!1;for(;;){if(j(U_,e)&&j(U_,e).size===0)return t?D($,e,cv).call(e):{done:!0,value:void 0};let n;try{n=yield D($,e,uv).call(e,()=>j(Q_,e).next())}catch(n){if(t)return D($,e,cv).call(e);throw n}if(n===void 0)return D($,e,cv).call(e);if(n.done)return n;if(!D($,e,ov).call(e,n.value.groupId())){if(!(yield D($,e,lv).call(e,n.value)))return D($,e,cv).call(e);t=!0;continue}return D($,e,fv).call(e,n)}})()}function cv(){var e,t,n;return(e=j(U_,this))==null||e.clear(),D($,this,rv).call(this),(t=(n=j(Q_,this)).return)==null||(t=t.call(n))==null||t.catch(S),{done:!0,value:void 0}}function lv(e){var t=this;return N(function*(){var n;return j(Y_,t)||(n=yield D($,t,uv).call(t,()=>{var t,n;return((t=(n=e.return)==null?void 0:n.call(e))==null?Promise.resolve():t).then(()=>!0,()=>!1)}))==null?!1:n})()}function uv(e){var t=this;return N(function*(){if(j(q_,t))return;let n=e(),r,i=new Promise(e=>{r=()=>e(void 0)});j(J_,t).add(r);try{return yield Promise.race([n,i])}finally{j(J_,t).delete(r)}})()}function dv(){k(q_,this,!0);for(let e of j(J_,this))e();j(J_,this).clear()}function fv(e){var t;let n=e.value.groupId();return(t=j(U_,this))!=null&&t.delete(n)&&j(W_,this)&&D($,this,tv).call(this,!0),j(H_,this).push(n),j(V_,this)||k(V_,this,n),k(V_,this,j(V_,this)<n?n:j(V_,this)),e}function pv(e,t){let n=new Set;for(let r=e;r<=t;r++)n==null||n.add(r);return j(H_,this).items().forEach(e=>{n==null||n.delete(e)}),n}Bn();function mv(e){var t={},n=!1;function r(t,r){return n=!0,r=new Promise(function(n){n(e[t](r))}),{done:!1,value:new zn(r,1)}}return t[typeof Symbol<`u`&&Symbol.iterator||`@@iterator`]=function(){return this},t.next=function(e){return n?(n=!1,e):r(`next`,e)},typeof e.throw==`function`&&(t.throw=function(e){if(n)throw n=!1,e;return r(`throw`,e)}),typeof e.return==`function`&&(t.return=function(e){return n?(n=!1,e):r(`return`,e)}),t}H(),B(),E(),M(),O(),P(),A(),Vn(),Wn();var hv,gv=new WeakMap,_v=new WeakMap,vv=new WeakMap,yv=new WeakMap,bv=new WeakSet,xv=new WeakMap;hv=Symbol.asyncIterator;var Sv=class e{constructor(e){var t=this;z(this,bv),T(this,gv,void 0),T(this,_v,void 0),T(this,vv,new ve(10)),T(this,yv,void 0),T(this,xv,function(){var e=N(function*(e,n){try{var r=Sh();let i=r.u(yield j(gv,t).lock()),a={subscribeId:i.value.subscribeId()};if(!i.value.needsRenewal()){j(yv,t).debug(`Subscription does not need renewal`,a);return}let o=i.value.largestGroupId(),s=o!==void 0,c=new A_().name(n.name).priority(n.priority).groupOrder(n.groupOrder);switch(a.largestGroupId=o,j(yv,t).debug(`Renewing subscription`,a),n.filterType.type){case`absolute-range`:j(yv,t).debug(`Absolute range is not renewed`,a);return;case`absolute-start`:case`latest-group`:case`latest-object`:s&&c.startGroup(o+F(1));break}let l=c.build();a.newTrack=l;let[u]=yield Promise.all([e.subscribe(l),s?i.value.update(o,o):i.value.unsubscribe()]);u.done().then(e=>D(bv,t,Cv).call(t,u,e.finalInfo!==void 0)).catch(S),u.expiryNotification().then(()=>j(xv,t).call(t,e,l)).catch(S);let d=new ev(u,o);i.value=d,yield j(vv,t).push(d),j(yv,t).info(`Subscription renewed`,a)}catch(e){r.e=e}finally{r.d()}});return function(t,n){return e.apply(this,arguments)}}()),k(gv,this,new Pn(e)),k(_v,this,e),k(yv,this,xn.get().createContext(`Renewable '${e.name()}'`))}static subscribe(t,n,r){return N(function*(){let i=r==null?void 0:r.params,a=r==null?void 0:r.largestGroupId,o=yield t.subscribe(n,i),s=new e(new ev(o,a));return o.done().then(e=>D(bv,s,Cv).call(s,o,e.finalInfo!==void 0)).catch(S),o.expiryNotification().then(()=>j(xv,s).call(s,t,n)).catch(S),s})()}largestGroupId(){return j(gv,this).unsafeValue().largestGroupId()}update(e,t){var n=this;return N(function*(){try{var r=Sh();let i=r.u(yield j(gv,n).lock());return j(vv,n).close(),i.value.update(e,t)}catch(e){r.e=e}finally{r.d()}})()}endOfTrack(e){var t=this;return N(function*(){try{var n=Sh();let r=n.u(yield j(gv,t).lock());return j(vv,t).close(),r.value.endOfTrack(e)}catch(e){n.e=e}finally{n.d()}})()}unsubscribe(){var e=this;return N(function*(){try{var t=Sh();let n=t.u(yield j(gv,e).lock());return j(vv,e).close(),n.value.unsubscribe()}catch(e){t.e=e}finally{t.d()}})()}return(){var e=this;return N(function*(){try{var t=Sh();let n=t.u(yield j(gv,e).lock());return j(vv,e).close(),n.value.return()}catch(e){t.e=e}finally{t.d()}})()}next(){var e=this;return N(function*(){let t=yield j(_v,e).next();if(t.done){var n,r;yield(n=(r=j(_v,e)).return)==null?void 0:n.call(r);let t=yield j(vv,e).pop();if(t)return k(_v,e,t),e.next()}return t})()}[hv](){return this}objects(){var e=this;return Hn(function*(){var t=!1,n=!1,r;try{for(var i=X(e),a;t=!(a=yield V(i.next())).done;t=!1)try{var o=Sh();yield*mv(X(o.a(a.value)))}catch(e){o.e=e}finally{yield V(o.d())}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield V(i.return()))}finally{if(n)throw r}}})()}};function Cv(e,t){var n=this;return N(function*(){if(e.unsubscribed()||e.endRequested()){j(yv,n).info(`Server initiated subscribe done but the subscription is already closing`);return}if(j(gv,n).unsafeValue().subscribeId()!==e.id){j(yv,n).info(`subscribeId mismatch - the subscription already has been renewed`);return}if(t){j(vv,n).close();return}return n.return()})()}H(),B(),E(),A(),O(),M(),P();var wv=`catalog`;function Tv(e){let t=L_(e.payload);if(!I_(t))throw Error(`unexpected catalog type`);return t}var Ev=new WeakMap,Dv=new WeakMap,Ov=new WeakMap,kv=new WeakMap,Av=new WeakSet,jv=class e{constructor(e,t,n){z(this,Av),T(this,Ev,void 0),T(this,Dv,void 0),T(this,Ov,void 0),T(this,kv,void 0),k(Dv,this,e),k(Ev,this,t),k(Ov,this,n),k(kv,this,D(Av,this,Mv).call(this)),this.closed().finally(()=>j(Ev,this).close()).catch(S)}catalog(){return j(Ev,this)}closed(){return j(kv,this)}close(){var e=this;return N(function*(){return j(Ev,e).close(),(yield j(Dv,e).promise).unsubscribe()})()}static start(t,n){return N(function*(){let r=C.fromPromise(Sv.subscribe(t,new A_().name(n.catalogName||wv).groupOrder(`ascending`).build())),i=C.fromPromise(r.promise.then(e=>e.objects()));if(n.catalog)return new e(r,new Zn(n.catalog),i);let a=yield(yield i.promise).next();if(!a.value)throw Error(`No catalog found`);return new e(r,new Zn(Tv(a.value)),i)})()}};function Mv(){var e=this;return N(function*(){let t=yield j(Ov,e).promise;var n=!1,r=!1,i;try{for(var a=X(t),o;n=!(o=yield a.next()).done;n=!1){let t=o.value;{if(t.objectStatus!==Yu.Normal)continue;let n=Tv(t);j(Ev,e).update(n)}}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield a.return())}finally{if(r)throw i}}})()}H(),B(),E(),A(),M(),O(),h(),Vn(),R(),Wn(),P();var Nv,Pv,Fv,Iv,Lv,Rv,zv,Bv,Vv=new WeakMap,Hv=new WeakMap,Uv=new WeakMap,Wv=new WeakMap,Gv=new WeakMap,Kv=new WeakMap,qv=new WeakMap,Jv=new WeakMap,Yv=new WeakSet;Nv=Tn(),Pv=Symbol.dispose;var Xv=class{constructor(e,t){z(this,Yv),T(this,Vv,void 0),T(this,Hv,void 0),T(this,Uv,void 0),T(this,Wv,void 0),T(this,Gv,void 0),T(this,Kv,void 0),T(this,qv,void 0),T(this,Jv,0),k(Vv,this,e),k(Hv,this,t)}onFragment(e,t,n,r,i){var a;j(Uv,this)===void 0&&(k(Uv,this,e),k(Wv,this,t),k(Gv,this,n),k(Kv,this,r),j(Vv,this).debug(`group start`,{name:j(Hv,this).name,groupId:e,startTimeMs:r,endTimeMs:i,subscribeId:t,mediaType:n,namespace:j(Hv,this).namespace})),k(Jv,this,(a=j(Jv,this),a++,a)),k(qv,this,i)}[Nv](){D(Yv,this,Zv).call(this)}[Pv](){D(Yv,this,Zv).call(this)}};function Zv(){j(Uv,this)!==void 0&&j(Kv,this)!==void 0&&j(qv,this)!==void 0&&j(Vv,this).debug(`group end`,{name:j(Hv,this).name,groupId:j(Uv,this),startTimeMs:j(Kv,this),endTimeMs:j(qv,this),durationMs:j(qv,this)-j(Kv,this),fragmentCount:j(Jv,this),subscribeId:j(Wv,this),mediaType:j(Gv,this),namespace:j(Hv,this).namespace})}var Qv=new WeakMap,$v=new WeakMap,ey=new WeakMap,ty=new WeakMap,ny=new WeakSet;Fv=Symbol.asyncIterator,Iv=wn(),Lv=Symbol.asyncDispose;var ry=class{constructor(e,t,n,r){z(this,ny),T(this,Qv,void 0),T(this,$v,void 0),T(this,ey,void 0),m(this,`track`,void 0),T(this,ty,xn.get().createContext(`CmafGroup`)),this.track=r,k(Qv,this,n),k($v,this,e),k(ey,this,t)}[Fv](){var e=this;return Hn(function*(){try{var t=Sh();let s={name:e.track.trackObject.name,namespace:e.track.namespace},c=t.u(new Xv(j(ty,e),s));var n=!1,r=!1,i;try{for(var a=X(j($v,e)),o;n=!(o=yield V(a.next())).done;n=!1){let t=o.value;{if(t.objectStatus===Yu.EndOfTrackAndGroup&&(yield V(e.track.endOfTrack(t.groupId))),t.objectStatus!==Yu.Normal)continue;let n=j(ey,e).createFragment(t.payload),r=n.timescale(),i=n.baseMediaDecodeTime()/r*1e3,a=i+n.duration()/r*1e3,o=j(Qv,e)/1e3*r;n.updateBaseMediaDecodeTime(n.baseMediaDecodeTime()-o);let l=e.track.timestampRange();if(l&&i>=l[1])break;j(ty,e).trace(`fragment`,L(L({},s),{},{startTime:i,endTime:a,subscribeId:t.subscribeId,groupId:t.groupId,objectId:t.objectId,streamId:t.streamId})),c.onFragment(t.groupId,t.subscribeId,n.mediaType(),i,a),yield[t.groupId,n]}}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield V(a.return()))}finally{if(r)throw i}}}catch(e){t.e=e}finally{t.d()}})()}[Iv](){return D(ny,this,iy).call(this)}[Lv](){return D(ny,this,iy).call(this)}};function iy(){var e=this;return N(function*(){var t,n;return yield(t=(n=j($v,e)).return)==null?void 0:t.call(n),Promise.resolve()})()}var ay=new WeakMap,oy=new WeakMap,sy=new WeakMap,cy=new WeakMap;Rv=Symbol.asyncIterator,zv=wn(),Bv=Symbol.asyncDispose;var ly=class e{constructor(e,t,n,r,i){T(this,ay,void 0),T(this,oy,void 0),T(this,sy,void 0),T(this,cy,void 0),m(this,`trackObject`,void 0),m(this,`namespace`,void 0),this.trackObject=e,this.namespace=t,k(oy,this,n),k(ay,this,r),k(sy,this,i)}static subscribe(t,n,{timestampOffsetMs:r,startGroup:i,params:a}){return N(function*(){if(n.format!==`cmaf`)throw Error(`format must be cmaf`);let o=new A_().name(n.name);i!==void 0&&o.startGroup(i);let s=o.build();if(n.initTrack){let o=new A_().name(n.initTrack).build(),[c,l]=yield Promise.all([uy.call(e,t,o),Sv.subscribe(t,s,{params:a,largestGroupId:i?i-F(1):void 0})]),u=new Rs(c);return new e(n,t.namespace(),l,u,r)}Ee(n.initData,`no init data found on track`);let c=Ge(n.initData),l=new Rs(new Uint8Array(c)),u=yield Sv.subscribe(t,s,{params:a,largestGroupId:i?i-F(1):void 0});return new e(n,t.namespace(),u,l,r)})()}largestGroupId(){return j(oy,this).largestGroupId()}stopAfterTimestampReached(e){k(cy,this,[0,e])}timestampRange(){return j(cy,this)}endOfTrack(e){return j(oy,this).endOfTrack(e)}update(e,t){return j(oy,this).update(e,t)}unsubscribe(){var e=this;return N(function*(){return j(oy,e).unsubscribe()})()}next(){var e=this;return N(function*(){let t=yield j(oy,e).next();return t.done?t:{done:!1,value:new ry(t.value,j(ay,e),j(sy,e),e)}})()}return(){var e=this;return N(function*(){return yield j(oy,e).return(),{done:!0,value:void 0}})()}[Rv](){return this}[zv](){return this.unsubscribe()}[Bv](){var e=this;return N(function*(){return e.unsubscribe()})()}};function uy(e,t){return N(function*(){try{var n=Sh();let r=n.a(yield e.subscribe(t)),i=yield r.objects().next();if(i.done)throw Error(`No init object`);return yield r.close(),i.value.payload}catch(e){n.e=e}finally{yield n.d()}})()}H(),B(),E(),A(),O(),M(),P();var dy=1e4,fy=3e4,py=new WeakMap,my=new WeakMap,hy=new WeakMap,gy=new WeakMap,_y=new WeakMap,vy=new WeakMap,yy=new WeakSet,by=class e{constructor(e,t,n){z(this,yy),T(this,py,xn.get().createContext(`Timeline`)),T(this,my,new Zn([])),T(this,hy,void 0),T(this,gy,void 0),T(this,_y,void 0),T(this,vy,void 0),k(gy,this,e),k(_y,this,n),k(hy,this,t),k(vy,this,D(yy,this,xy).call(this,j(hy,this))),this.closed().finally(()=>j(my,this).close()).catch(S)}closed(){return j(vy,this)}close(){var e=this;return N(function*(){return(yield j(hy,e).promise).unsubscribe()})()}timeline(){let[e,t]=j(my,this).value();return e}timestampWallclockOffset(){return Bt(this.timeline().map(e=>e.mediaPts-e.wallclock))}static start(t,n){return new e(t,C.fromPromise(Sv.subscribe(t,new A_().name(n).groupOrder(`ascending`).build())),n)}waitForWallclockTime(e){var t=this;return N(function*(){return yield j(my,t).waitFor(t=>!!t.find(t=>t.wallclock>=e)),t.timeline()})()}waitForTimelineToHaveMinDuration(){var e=this;return N(function*(){return yield j(my,e).waitFor(e=>{let t=e[0],n=e[e.length-1];return!t||!n?!1:n.wallclock-t.wallclock>dy}),e.timeline()})()}};function xy(e){var t=this;return N(function*(){let n=yield e.promise;var r=!1,i=!1,a;try{for(var o=X(n),s;r=!(s=yield o.next()).done;r=!1)try{var c=Sh();let e=c.a(s.value);var l=!1,u=!1,d;try{for(var f=X(e),p;l=!(p=yield f.next()).done;l=!1){let e=p.value;{if(e.objectStatus!==Yu.Normal)continue;let r=Cy(e.payload);j(my,t).update(e=>{var t,n;for(e.push(...r),e.sort((e,t)=>e.wallclock-t.wallclock);e[0]&&((t=(n=e[e.length-1])==null?void 0:n.wallclock)==null?0:t)-e[0].wallclock>fy;)e.shift();return e}),n===j(hy,t).resolved&&e.groupId>F(0)&&e.objectId===F(0)&&D(yy,t,Sy).call(t,e.groupId).catch(e=>{j(py,t).warn(`backfill failed`,e)})}}}catch(e){u=!0,d=e}finally{try{l&&f.return!=null&&(yield f.return())}finally{if(u)throw d}}}catch(e){c.e=e}finally{yield c.d()}}catch(e){i=!0,a=e}finally{try{r&&o.return!=null&&(yield o.return())}finally{if(i)throw a}}})()}function Sy(e){var t=this;return N(function*(){let n=e-F(1),r=t.timeline(),i=r[0],a=r[r.length-1];if(!i||!a||a.wallclock-i.wallclock>dy)return;j(py,t).debug(`backfilling timeline`,{currentGroupId:e,backfillGroupId:n});let o=C.fromPromise(Sv.subscribe(j(gy,t),new A_().name(j(_y,t)).groupOrder(`ascending`).range(n,n).build()));return D(yy,t,xy).call(t,o)})()}function Cy(e){var t;let n=new TextDecoder(`utf-8`).decode(e).split(`
99
+ `);return(t=n[0])!=null&&t.startsWith(`MEDIA_PTS`)&&n.shift(),n.filter(e=>e.length>0).map(e=>{let[t,n,r,i,a]=e.split(`,`);if(!t||!i)throw Error(`invalid timeline row: ${e}`);return{mediaPts:parseInt(t,10),groupId:n?parseInt(n,10):void 0,objectId:r?parseInt(r,10):void 0,wallclock:parseInt(i,10),metadata:a}})}H(),E(),h(),A(),P(),M();var wy,Ty,Ey;function Dy(e){return typeof e.language==`string`}var Oy=new WeakMap,ky=new WeakMap,Ay=new WeakMap,jy=new WeakMap;wy=Symbol.asyncIterator,Ty=wn(),Ey=Symbol.asyncDispose;var My=class e{constructor(e,t,n,r,i){T(this,Oy,new Jl),T(this,ky,void 0),T(this,Ay,void 0),T(this,jy,0),m(this,`trackObject`,void 0),m(this,`namespace`,void 0),k(Ay,this,e),k(ky,this,t),this.trackObject=n,this.namespace=r,k(jy,this,i)}static subscribe(t,n,r){return N(function*(){if(!Dy(n))throw Error(`track object language is required`);let i=new A_().name(n.name).build(),a=yield Sv.subscribe(t,i);return new e(a,a.objects(),n,t.namespace(),r)})()}largestGroupId(){return j(Ay,this).largestGroupId()}update(e,t){return j(Ay,this).update(e,t)}unsubscribe(){return j(Ay,this).unsubscribe()}next(){var e=this;return N(function*(){for(;;){let t=yield j(ky,e).next();if(t.done)return t;if(t.value.objectStatus!==Yu.Normal)continue;let n=new TextDecoder().decode(t.value.payload),r;try{r=j(Oy,e).parse(n)}catch(e){continue}let i=r.map(t=>(t.startTime-=j(jy,e)/1e3,t.endTime-=j(jy,e)/1e3,t));return{done:!1,value:{language:e.trackObject.language,cues:i}}}})()}return(){var e=this;return N(function*(){return yield j(Ay,e).return(),{done:!0,value:void 0}})()}[wy](){return this}[Ty](){return this.unsubscribe()}[Ey](){return this.unsubscribe()}};H(),B(),h(),E(),A(),P(),M(),O();var Ny=new WeakMap,Py=new WeakMap,Fy=new WeakMap,Iy=new WeakMap,Ly=new WeakSet,Ry=class e{constructor(e,t,n,r,i){z(this,Ly),m(this,`namespace`,void 0),T(this,Ny,void 0),T(this,Py,void 0),T(this,Fy,void 0),T(this,Iy,void 0),this.namespace=r,k(Ny,this,e),k(Py,this,t),k(Fy,this,n),k(Iy,this,i)}static start(t,n){return N(function*(){By._.info(`Enter 'start'`,{config:n});let r=new N_(t,{namespace:n.namespace}),[i,a]=yield Promise.all([by.start(r,`timeline`),jv.start(r,{catalog:n.catalog,namespace:n.namespace})]);return new e(r,i,a,n.namespace,0)})()}closed(){return Promise.race([j(Fy,this).closed(),j(Py,this).closed()])}catalog(){return j(Fy,this).catalog()}timestampWallclockOffset(){return j(Py,this).timestampWallclockOffset()}timestampOffsetMs(){return j(Iy,this)}setTimestampOffsetMs(e){k(Iy,this,e)}waitForWallclockTime(e){return j(Py,this).waitForWallclockTime(e)}subscribeCmafTrack(e,t){let n=t==null?void 0:t.startGroup,r=t==null?void 0:t.params,i=this.catalog().current().tracks,a=e[`com.vindral.variant_uid`]===void 0?void 0:i.find(t=>t[`com.vindral.variant_uid`]===e[`com.vindral.variant_uid`]);return D(Ly,this,zy).call(this,()=>ly.subscribe(j(Ny,this),a==null?e:a,{timestampOffsetMs:j(Iy,this),startGroup:n,params:r}))}subscribeWebVttTrack(e){return D(Ly,this,zy).call(this,()=>My.subscribe(j(Ny,this),e,j(Iy,this)))}subscribeTrack(e){return D(Ly,this,zy).call(this,()=>j(Ny,this).subscribe(e))}close(){return Promise.all([j(Fy,this).close(),j(Py,this).close()])}};function zy(e){var t=this;return N(function*(){let[n,r]=t.catalog().value();try{return yield e()}catch(i){if(n===t.catalog().current()&&r&&(yield Promise.race([r,Er(500)])),n!==t.catalog().current())return e();throw i}})()}var By={_:xn.get().createContext(`Channel`)};H();var Vy=F(8);function Hy(e){if(e<0||e>65535)throw RangeError(`burstMs must be between 0 and 65535 inclusive`);return{type:Vy,payload:new Uint8Array([e>>8&255,e&255])}}B(),E(),A(),O(),M(),P();var Uy=new WeakMap,Wy=new WeakMap,Gy=new WeakSet,Ky=class e{constructor(e){z(this,Gy),T(this,Uy,void 0),T(this,Wy,void 0);let[t,n]=e.value.value();k(Uy,this,{createdAt:new Date,wallclock:new Date(t.ntpTimestamp),rtt:t.rtt}),k(Wy,this,D(Gy,this,qy).call(this,e))}wallclock(){let e=Date.now()-j(Uy,this).createdAt.getTime();return j(Uy,this).wallclock.getTime()+e}closed(){return j(Wy,this)}static start(t){return new e(t)}};function qy(e){var t=this;return N(function*(){var n=!1,r=!1,i;try{for(var a=X(e.value),o;n=!(o=yield a.next()).done;n=!1){let e=o.value;k(Uy,t,{createdAt:new Date,wallclock:new Date(e.ntpTimestamp),rtt:e.rtt})}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield a.return())}finally{if(r)throw i}}})()}function Jy(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}function Yy(e,t){if(e==null)return{};var n,r,i=Jy(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}H(),R(),h(),P();var Xy=[`fairplayCertificate`];function Zy(e){return typeof e==`string`||e==null}function Qy(e){return`provider`in e&&typeof e.provider==`string`&&(!(`widevineLicenseUrl`in e)||Zy(e.widevineLicenseUrl))&&(!(`playreadyLicenseUrl`in e)||Zy(e.playreadyLicenseUrl))&&(!(`fairplayLicenseUrl`in e)||Zy(e.fairplayLicenseUrl))&&(!(`fairplayCertificate`in e)||Zy(e.fairplayCertificate))}function $y(e){try{return Ge(e)}catch(e){throw Error(`Failed to convert fairplayCertificate`)}}function eb(e){let t=new TextDecoder().decode(e),n=JSON.parse(t);if(!Qy(n))throw Error(`Invalid drm object`);let{fairplayCertificate:r}=n;return L(L({},Yy(n,Xy)),{},{fairplayCertificate:r?$y(r):void 0})}var tb=class e{constructor(e){m(this,`value`,void 0),this.value=e}static create(t,n,r){return N(function*(){try{var i=Sh();let a=yield i.a(yield t.subscribeTrack(new A_().name(`drm`).build())).objects().next();if(a.done)throw Error(`No drm object received`);return new e(L(L({},eb(a.value.payload)),{},{videoCodec:n,audioCodec:r}))}catch(e){i.e=e}finally{yield i.d()}})()}};H(),B(),h(),E(),A(),O(),M(),P();function nb(e){return`rtt`in e&&typeof e.rtt==`number`&&`ntpTimestamp`in e&&typeof e.ntpTimestamp==`number`&&`estimatedBandwidth`in e&&typeof e.estimatedBandwidth==`number`}function rb(e){let t=new TextDecoder().decode(e),n=JSON.parse(t);if(!nb(n))throw Error(`Invalid stats object`);return n}var ib=new WeakMap,ab=new WeakSet,ob=class e{constructor(e,t,n){z(this,ab),m(this,`ip`,void 0),m(this,`value`,void 0),T(this,ib,void 0),this.ip=n,this.value=new Zn(t),k(ib,this,D(ab,this,sb).call(this,e)),this.closed().catch(S)}closed(){return j(ib,this)}static start(t){return N(function*(){let n=(yield t.subscribe(new A_().name(`stats`).groupOrder(`ascending`).build())).objects(),r=yield n.next();if(r.done)throw Error(`No stats object received`);let i=rb(r.value.payload);if(!i.ip)throw Error(`Expected IP in initial stats object`);return new e(n,i,i.ip)})()}};function sb(e){var t=this;return N(function*(){var n=!1,r=!1,i;try{for(var a=X(e),o;n=!(o=yield a.next()).done;n=!1){let e=o.value;{if(e.objectStatus!==Yu.Normal)continue;let n=rb(e.payload);t.value.update(n)}}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield a.return())}finally{if(r)throw i}}})()}H(),E(),A(),M(),P();var cb=new WeakMap,lb=new WeakMap,ub=class{constructor(e){T(this,cb,xn.get().createContext(`UpstreamWatcher`)),T(this,lb,void 0),k(lb,this,new Zn(C.fromPromise(e.closed())))}update(e){j(lb,this).update(C.fromPromise(e.closed()))}closed(){var e=this;return N(function*(){try{for(;;){let[t,n]=j(lb,e).value(),r=!1;yield Promise.race([n==null?void 0:n.then(()=>r=!0),t.promise.then(()=>{if(!r)throw j(cb,e).warn(`Upstream closed`),Error(`Upstream closed`)})])}}catch(e){return e}})()}};H(),E(),A(),M(),Vn(),R(),Wn(),B(),h(),O(),P();var db,fb=5e3,pb=new WeakMap,mb=new WeakMap,hb=new WeakMap;db=Symbol.asyncIterator;var gb=class{constructor(e,t){T(this,pb,xn.get().createContext(`TracksIterator`)),T(this,mb,void 0),T(this,hb,void 0),k(mb,this,e),k(hb,this,t)}[db](){var e=this;return Hn(function*(){let t=j(hb,e);var n=!1,r=!1,i;try{for(var a=X(j(mb,e)),o;n=!(o=yield V(a.next())).done;n=!1){let n=o.value;{if(!n)continue;let r={name:n.trackObject.name,namespace:n.namespace};j(pb,e).debug(`track start`,L({mediaType:t},r)),yield*mv(X(n)),j(pb,e).debug(`track end`,L({mediaType:t},r))}}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield V(a.return()))}finally{if(r)throw i}}j(pb,e).debug(`tracks ended`,{mediaType:t})})()}},_b=new WeakMap,vb=new WeakMap,yb=new WeakMap,bb=new WeakMap,xb=new WeakMap,Sb=new WeakMap,Cb=new WeakMap,wb=new WeakMap,Tb=new WeakMap,Eb=new WeakMap,Db=new WeakSet,Ob=class e{constructor(e,t,n){z(this,Db),T(this,_b,void 0),T(this,vb,void 0),T(this,yb,void 0),T(this,bb,xn.get().createContext(`Player`)),T(this,xb,void 0),T(this,Sb,new Zn(void 0)),T(this,Cb,new Zn(void 0)),T(this,wb,new Zn(void 0)),T(this,Tb,void 0),T(this,Eb,void 0),m(this,`subtitles`,new gb(j(wb,this),`subtitles`)),m(this,`video`,new gb(j(Cb,this),`video`)),m(this,`audio`,new gb(j(Sb,this),`audio`)),k(_b,this,e),k(vb,this,Ky.start(n)),k(yb,this,n),k(xb,this,new Zn(t)),k(Tb,this,new ub(t)),k(Eb,this,Promise.race([D(Db,this,Nb).call(this),D(Db,this,kb).call(this),D(Db,this,Mb).call(this),j(Tb,this).closed()])),j(_b,this).closed().then(()=>this.close()).catch(S)}closed(){return j(Eb,this)}static start(t,n){return N(function*(){let r=new Map;if(n.burstMs!==void 0){let e=Hy(n.burstMs);r.set(e.type,e)}let i=new N_(t,{namespace:P_(`auxiliary`)}),[[a,o,s],c]=yield Promise.all([Ry.start(t,n).then(e=>Promise.all([Promise.resolve(e),n.videoTrack?e.subscribeCmafTrack(n.videoTrack,{params:r}):void 0,n.audioTrack?e.subscribeCmafTrack(n.audioTrack,{params:r}):void 0])),ob.start(i)]),l=new e(t,a,c);return s&&j(Sb,l).update(s),o&&j(Cb,l).update(o),l})()}connectionInfo(){let e=j(yb,this).value.current();return{ip:j(yb,this).ip,rtt:e.rtt,estimatedBandwidth:e.estimatedBandwidth}}stats(){return j(yb,this).value}catalog(){return j(xb,this).current().catalog()}namespace(){return j(xb,this).current().namespace}videoTrack(){var e;return(e=j(Cb,this).current())==null?void 0:e.trackObject}audioTrack(){var e;return(e=j(Sb,this).current())==null?void 0:e.trackObject}referenceClock(){return j(vb,this)}drm(){var e=this;return N(function*(){var t,n;if(e.catalog().current().tracks.find(({name:e})=>e===`drm`))return tb.create(j(xb,e).current(),(t=e.videoTrack())==null?void 0:t.codec,(n=e.audioTrack())==null?void 0:n.codec)})()}close(){return j(bb,this).info(`Enter 'close'`),Promise.all([j(xb,this).current().close(),j(xb,this).close(),D(Db,this,Ab).call(this,j(Sb,this)),D(Db,this,Ab).call(this,j(Cb,this)),D(Db,this,Ab).call(this,j(wb,this))])}zap(e,t){var n=this;return N(function*(){j(bb,n).info(`Enter 'zap'`,{config:e,zapOffsetMs:t});let r=yield Ry.start(j(_b,n),e),i=j(vb,n).wallclock()-t,a=j(xb,n).current(),o=a.timestampWallclockOffset(),s=yield r.waitForWallclockTime(i);j(Tb,n).update(r),yield j(xb,n).current().close();let c=s.toReversed().find(e=>e.wallclock<=i),l=c!=null&&c.mediaPts?c.mediaPts-a.timestampOffsetMs():void 0,u=r.timestampWallclockOffset()-o+a.timestampOffsetMs();r.setTimestampOffsetMs(u);let d=(c==null?void 0:c.groupId)!==void 0&&!Number.isNaN(c.groupId)?F(c.groupId):void 0;if(l){var f,p;(f=j(Cb,n).current())==null||f.stopAfterTimestampReached(l),(p=j(Sb,n).current())==null||p.stopAfterTimestampReached(l)}j(xb,n).update(r),yield Promise.all([e.videoTrack?n.setVideoTrack(e.videoTrack,d):void 0,e.audioTrack?n.setAudioTrack(e.audioTrack,d):void 0]),j(bb,n).info(`Return 'zap'`)})()}setSubtitleTrack(e){var t=this;return N(function*(){var n;if(!e){var r;yield(r=j(wb,t).current())==null?void 0:r.unsubscribe();return}let[i]=yield Promise.all([j(xb,t).current().subscribeWebVttTrack(e),(n=j(wb,t).current())==null?void 0:n.unsubscribe()]);j(wb,t).update(i)})()}setVideoTrack(e,t){var n=this;return N(function*(){let r=yield D(Db,n,jb).call(n,j(xb,n).current(),e,j(Cb,n).current(),t);j(Cb,n).update(r)})()}setAudioTrack(e,t){var n=this;return N(function*(){let r=yield D(Db,n,jb).call(n,j(xb,n).current(),e,j(Sb,n).current(),t);j(Sb,n).update(r)})()}};function kb(){var e=this;return N(function*(){let t=!1;for(j(_b,e).closed().then(()=>{t=!0}).catch(S);;){let n=performance.now()-j(_b,e).lastReceived();if(n>=fb)return t?void 0:Error(`Idle timeout`);if(yield Er(fb-n),t)return}})()}function Ab(e){let t=e.current(),n=t==null?void 0:t.largestGroupId();return e.isClosed()||e.update(void 0),e.close(),n===void 0?t==null?void 0:t.unsubscribe():t==null?void 0:t.update(n,n)}function jb(e,t,n,r){var i=this;return N(function*(){j(bb,i).info(`Enter '#replaceTrack'`,{trackObject:t,startGroupId:r});let a=n==null?void 0:n.largestGroupId(),[o,s]=yield Promise.all([e.subscribeCmafTrack(t,{startGroup:r==null?a===void 0?void 0:a+F(1):r}),a===void 0?n==null?void 0:n.unsubscribe():n==null?void 0:n.update(a,a)]);return o})()}function Mb(){var e=this;return N(function*(){var t=!1,n=!1,r;try{for(var i=X(j(xb,e)),a;t=!(a=yield i.next()).done;t=!1){let t=a.value;var o=!1,s=!1,c;try{for(var l=X(t.catalog()),u;o=!(u=yield l.next()).done;o=!1){let t=u.value;yield Promise.all([D(Db,e,Pb).call(e,t,j(Cb,e)),D(Db,e,Pb).call(e,t,j(Sb,e))])}}catch(e){s=!0,c=e}finally{try{o&&l.return!=null&&(yield l.return())}finally{if(s)throw c}}}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield i.return())}finally{if(n)throw r}}})()}function Nb(){var e=this;return N(function*(){try{return yield j(yb,e).closed(),Error(`Stats closed`)}catch(e){return e}})()}function Pb(e,t){var n=this;return N(function*(){let r=t.current();if(!r)return;let i=r.trackObject.name,a=r.trackObject[`com.vindral.variant_uid`],o=e.tracks.find(e=>e.name===i),s=e.tracks.find(e=>e[`com.vindral.variant_uid`]===a);if(!o){if(!s){t.update(void 0);return}t.update(yield j(xb,n).current().subscribeCmafTrack(s))}})()}var Fb=(e,t)=>{var n,r;let i=new URL(`/subscribe`,e);return i.searchParams.append(`channelId`,t.channelId),i.searchParams.append(`sessionId`,t.sessionId),i.searchParams.append(`clientId`,t.clientId),(n=t.audio)!=null&&n.codec&&(i.searchParams.append(`audio.bitRate`,Math.round(t.audio.bitRate).toString()),i.searchParams.append(`audio.codec`,t.audio.codec),t.audio.language&&i.searchParams.append(`audio.language`,t.audio.language)),(r=t.video)!=null&&r.codec&&(i.searchParams.append(`video.width`,t.video.width.toString()),i.searchParams.append(`video.height`,t.video.height.toString()),i.searchParams.append(`video.bitRate`,Math.round(t.video.bitRate).toString()),i.searchParams.append(`video.codec`,t.video.codec)),t.burstMs&&i.searchParams.append(`burstMs`,t.burstMs.toString()),t.channelGroupId&&i.searchParams.append(`channelGroupId`,t.channelGroupId),t.authToken&&(i.searchParams.append(`auth.token`,t.authToken),i.searchParams.append(`auth.type`,`jwt`)),i.toString()},Ib=e=>{try{return e?new URL(e).origin:void 0}catch(e){return}};H(),B(),E(),h(),M(),A(),O(),P();function Lb(e,t,n){let r=new URL(`/voq/subscribe`,e);return r.searchParams.set(`sessionId`,t.sessionId),r.searchParams.set(`clientId`,t.clientId),r.searchParams.set(`channelId`,t.channelId),n&&r.searchParams.set(`authToken`,n),r}function Rb(e,t){let n=[];for(let r of e==null?[]:e)try{n.push({algorithm:r.algorithm,value:Ge(r.value)})}catch(e){t.warn(`Ignoring undecodable server certificate hash`,{algorithm:r==null?void 0:r.algorithm,error:e})}return n.length>0?n:void 0}var zb=1e4,Bb=new WeakMap,Vb=new WeakMap,Hb=new WeakMap,Ub=new WeakMap,Wb=new WeakMap,Gb=new WeakMap,Kb=new WeakMap,qb=new WeakMap,Jb=new WeakMap,Yb=new WeakMap,Xb=new WeakMap,Zb=new WeakSet,Qb=new WeakMap,$b=new WeakMap,ex=new WeakMap,tx=class e{get estimatedBandwidth(){return j(Jb,this)}unload(){j(Bb,this).off(`send signal`,j($b,this)),j(Bb,this).off(`disconnect`,this.disconnect),j(Bb,this).off(`text track`,j(Qb,this)),this.disconnect()}suspend(){}unsuspend(){}getStatistics(){let e=j(Hb,this).transportType()===`webtransport`?`moq`:`moq_ws`;return{edgeUrl:Ib(j(Hb,this).url()),connectionProtocol:e,transportSelectionReason:j(Yb,this)}}constructor(e,t,n,r,i,a,o,s){z(this,Zb),T(this,Bb,void 0),T(this,Vb,void 0),T(this,Hb,void 0),T(this,Ub,`disconnected`),T(this,Wb,void 0),T(this,Gb,new Map),T(this,Kb,void 0),T(this,qb,void 0),T(this,Jb,void 0),T(this,Yb,void 0),T(this,Xb,new Map),T(this,Qb,e=>{if(!e){j(Wb,this).setSubtitleTrack(void 0).catch(S);return}let t=j(Gb,this).get(F_(j(Wb,this).namespace())),n=t==null?void 0:t.getTextTrack(e);n&&j(Wb,this).setSubtitleTrack(n).catch(S)}),T(this,$b,e=>{switch(e.type){case`subscribe`:if(j(ex,this)){j(Vb,this).info(`Ignoring - we are already switching`);return}k(ex,this,!0),D(Zb,this,ix).call(this,e.subscription).catch(t=>{j(Vb,this).error(`error handling subscription`,t),j(Bb,this).emit(`received signal`,{type:`subscription changed`,subscription:e.subscription,reset:!0})}).finally(()=>k(ex,this,!1));break;case`telemetry`:Mu(new URL(`/api/telemetry`,j(Hb,this).url().replace(`wss://`,`https://`)),{body:e.body,headers:{"Content-Type":`text/plain`}}).catch(S);break;case`refresh auth`:j(Hb,this).updateAuthToken(e.token);break}}),T(this,ex,!1),m(this,`disconnect`,(e=`Disconnect Requested`)=>{j(Vb,this).info(`Disconnecting`,e),j(Hb,this).close(),j(Wb,this).close().catch(S),k(Xb,this,new Map),D(Zb,this,ax).call(this,`disconnected`)}),k(Bb,this,e),k(Vb,this,t),k(Hb,this,n),k(Wb,this,r),k(Gb,this,i),k(Kb,this,a),k(qb,this,o),k(Yb,this,s),j(Bb,this).on(`send signal`,j($b,this)),j(Bb,this).on(`disconnect`,this.disconnect),j(Bb,this).on(`text track`,j(Qb,this)),D(Zb,this,nx).call(this).catch(S),D(Zb,this,ox).call(this).catch(S)}static start(t,n,r,i,a){return N(function*(){var o,s,c,l;let u=new Map(i.connectInfo.channels.map(e=>[F_(e.catalog.namespace),new px(new Zn(e.catalog))])),d=yield i.onConnectInfo(i.connectInfo),f=i.options.get(`authenticationToken`),p,m,h;switch(typeof i.edgeUrl){case`string`:p=Lb(i.edgeUrl,d,f);break;default:p=Lb(i.edgeUrl.moqUrl||i.edgeUrl.moqWsUrl,d,f),m=Lb(i.edgeUrl.moqWsUrl,d,f),h=Rb(i.edgeUrl.serverCertificateHashes,n);break}let g=(o=i.connectInfo.channels.find(e=>e.channelId===d.channelId))==null?void 0:o.catalog;n.debug(`Resolved edge url`,{edgeUrl:p,edgeWsUrl:m}),Ee(g,`no catalog found`);let _=(s=u.get(F_(g.namespace)))==null?void 0:s.getVideoTrack(d.video),v=(c=u.get(F_(g.namespace)))==null?void 0:c.getAudioTrack(d.audio),y;try{y=yield D_({url:p,wsUrl:m,serverCertificateHashes:h,handshakePipelining:!0,authToken:i.options.get(`authenticationToken`),preferredTransport:i.options.get(`webtransportEnabled`)?`webtransport`:`websocket`,role:wp.Subscriber,websocketFallbackTimeoutMs:2e3})}catch(e){throw e instanceof U?e:Gi(e instanceof Error?e:void 0)}let{session:b,transportSelectionReason:ee}=y;(l=i.onTransportConnected)==null||l.call(i);let te=b.closed().then(e=>{throw e instanceof Error?e:Error(e?`Session closed before player started: ${String(e)}`:`Session closed before player started`)}),x;try{x=yield Promise.race([Ob.start(b.subscriber,{namespace:g.namespace,catalog:g,videoTrack:_==null?void 0:_.track,audioTrack:v==null?void 0:v.track,burstMs:d.burstMs||0}),Dr(zb,Error(`Timeout waiting for player to start`)),te])}catch(e){throw b.close(),e}let ne=new px(x.catalog());u.set(F_(g.namespace),ne),t.emit(`received signal`,{type:`client ip`,ip:x.connectionInfo().ip}),x.drm().then(e=>{e&&t.emit(`received drm data`,e.value)}).catch(e=>{n.error(`Error getting DRM data`,e)});let re=new e(t,n,b,x,u,r,a,ee);return d.textTrack&&j(Qb,re).call(re,d.textTrack),re})()}getState(){return j(Ub,this)}close(){j(Hb,this).close()}closed(){return Promise.race([j(Hb,this).closed(),j(Wb,this).closed()])}};function nx(){var e=this;return N(function*(){j(Hb,e).transportType()===`websocket`&&(yield Er(5e3));var t=!1,n=!1,r;try{for(var i=X(j(Wb,e).stats()),a;t=!(a=yield i.next()).done;t=!1){let{rtt:t,estimatedBandwidth:n}=a.value;k(Jb,e,n),j(qb,e).push(t),j(Bb,e).emit(`rtt`,Bt(j(qb,e).items()))}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield i.return())}finally{if(n)throw r}}})()}function rx(e){var t=this;return N(function*(){var n;let r=yield j(Kb,t).connect({channelId:e});if(!Fr(r))throw Error(`no moq connect info found`);let i=(n=r.channels.find(t=>t.channelId===e))==null?void 0:n.catalog;if(!i)throw Error(`no catalog found`);return i})()}function ix(e){var t=this;return N(function*(){var n,r;j(Vb,t).info(`handle subscription`,e);let i=j(Wb,t),a=j(Gb,t).get(e.channelId);if(a||(a=new px(new Zn(yield D(Zb,t,rx).call(t,e.channelId))),j(Gb,t).set(e.channelId,a)),i.namespace().join(`/`)!==a.namespace().join(`/`)){var o;j(Vb,t).info(`changing channel`,e.channelId);let n=a.getVideoTrack(e.video),r=a.getAudioTrack(e.audio);yield i.zap({namespace:a.namespace(),catalog:a.catalog(),videoTrack:n==null?void 0:n.track,audioTrack:r==null?void 0:r.track},500),i.drm().then(e=>{e&&j(Bb,t).emit(`received drm data`,e.value)}).catch(e=>{j(Vb,t).error(`Error getting DRM data`,e)}),j(Vb,t).info(`switched channel`,e.channelId),(o=j(Gb,t).get(F_(i.namespace())))==null||o.updateCatalog(i.catalog()),j(Bb,t).emit(`received signal`,{type:`subscription changed`,subscription:e});return}let s=a.getVideoTrack(e.video),c=a.getAudioTrack(e.audio);yield Promise.all([s&&s.track.name!==((n=j(Wb,t).videoTrack())==null?void 0:n.name)?j(Wb,t).setVideoTrack(s.track):void 0,c&&c.track.name!==((r=j(Wb,t).audioTrack())==null?void 0:r.name)?j(Wb,t).setAudioTrack(c.track):void 0]),j(Bb,t).emit(`received signal`,{type:`subscription changed`,subscription:e})})()}function ax(e){k(Ub,this,e),j(Bb,this).emit(`connection state`,e)}function ox(){var e=this;return N(function*(){try{D(Zb,e,ax).call(e,`connecting`),j(Vb,e).info(`Connecting...`),D(Zb,e,ax).call(e,`connected`),yield Promise.all([D(Zb,e,cx).call(e,j(Wb,e).referenceClock(),j(Wb,e).audio),D(Zb,e,cx).call(e,j(Wb,e).referenceClock(),j(Wb,e).video),D(Zb,e,sx).call(e,j(Wb,e).subtitles)]),yield j(Wb,e).closed(),j(Hb,e).close(),j(Vb,e).info(`Session closed`)}catch(t){j(Vb,e).warn(`Session error`,t),j(Hb,e).close()}finally{D(Zb,e,ax).call(e,`disconnected`)}})()}function sx(e){var t=this;return N(function*(){var n=!1,r=!1,i;try{for(var a=X(e),o;n=!(o=yield a.next()).done;n=!1){let e=o.value;j(Bb,t).emit(`text track data`,e)}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield a.return())}finally{if(r)throw i}}})()}function cx(e,t){var n=this;return N(function*(){let r=``,i=``,a,o=j(Wb,n).videoTrack()===void 0;var s=!1,c=!1,l;try{for(var u=X(t),d;s=!(d=yield u.next()).done;s=!1){let t=d.value;{var f;let s=F_(t.track.namespace),c=t.track.trackObject.language,l=Pr((f=t.track.trackObject.codec)==null?``:f),u=t.track.trackObject.codec,d=l?zr({codec:l,codecString:u}):void 0,v=!!t.track.trackObject[`com.vindral.drm`];var p=!1,m=!1,h;try{for(var g=X(t),_;p=!(_=yield g.next()).done;p=!1){let[f,p]=_.value;{let m={channelId:r!==``&&(o||p.mediaType()===`video`)&&r!==s?s:void 0,language:p.mediaType()===`audio`&&i!==c?c:void 0,drmTransition:a!==void 0&&a!==v};r=s,i=c,a=v;let h=p.producerReferenceTime(),g=j(Xb,n).get(t.track.namespace),_=performance.now();if(h&&(g===void 0||_-g>1e3)){j(Xb,n).set(t.track.namespace,_);let r=e.wallclock()-h.getTime();j(Vb,n).debug(`timing-info`,{mediaType:p.mediaType(),referenceClock:e,delta:r,groupId:f,timestamp:p.baseMediaDecodeTime()/p.timescale()*1e3+r,wallclockTime:h.getTime()}),j(Bb,n).emit(`received signal`,{type:`timing info`,timingInfo:{channelId:s,timestamp:p.baseMediaDecodeTime()/p.timescale()*1e3+r,wallclockTime:h.getTime()}})}j(Bb,n).emit(`received moq data`,{payload:p,channelId:s,groupId:f,mimeType:d,codec:l,codecString:u,switchInfo:m,renditionId:lx(t.track.trackObject.name)})}}}catch(e){m=!0,h=e}finally{try{p&&g.return!=null&&(yield g.return())}finally{if(m)throw h}}}}}catch(e){c=!0,l=e}finally{try{s&&u.return!=null&&(yield u.return())}finally{if(c)throw l}}})()}function lx(e){return e.split(``).reduce((e,t)=>e=t.charCodeAt(0)+(e<<6)+(e<<16)-e,0)}var ux=new WeakMap,dx=new WeakMap,fx=new WeakSet,px=class{constructor(e){z(this,fx),T(this,ux,void 0),T(this,dx,void 0),k(ux,this,e),k(dx,this,D(fx,this,mx).call(this))}catalog(){return j(ux,this).current()}namespace(){return j(ux,this).current().namespace}updateCatalog(e){k(ux,this,e)}getTextTrack(e){return j(ux,this).current().tracks.find(t=>t.label===e)}getAudioTrack(e){if(!e.codec)return;let t=j(dx,this).filter(t=>!(!Rr(t)||t.bitRate>e.bitRate||e.codec&&t.codec!==e.codec||e.language&&t.language!==e.language));return t[t.length-1]}getVideoTrack(e){if(!e.codec)return;let t=j(dx,this).filter(t=>!(!Lr(t)||t.bitRate>e.bitRate||e.codec&&t.codec!==e.codec));return t[t.length-1]}renditions(){return j(dx,this)}};function mx(){let[e,t]=j(ux,this).value();return Ir(e)}H(),h(),R(),P();var hx=function(e){return e[e.AuthenticationFailed=4e3]=`AuthenticationFailed`,e[e.AuthenticationRefreshFailed=4001]=`AuthenticationRefreshFailed`,e[e.AuthenticationExpired=4002]=`AuthenticationExpired`,e[e.ChannelNotFound=4003]=`ChannelNotFound`,e[e.Inactivity=4010]=`Inactivity`,e}({}),gx=class extends tn{constructor(e,t){var n;super(),n=this,m(this,`options`,void 0),m(this,`websocket`,void 0),m(this,`logger`,void 0),m(this,`reconnectState`,{reconnectRetries:0}),m(this,`isSuspended`,!1),m(this,`_connectionAttemptCount`,0),m(this,`connectStartTime`,0),m(this,`_connectTime`,void 0),m(this,`connectTimeout`,void 0),m(this,`shouldContinueConnecting`,!1),m(this,`_isConnectInProgress`,!1),m(this,`readyState`,()=>{var e,t;return(e=(t=this.websocket)==null?void 0:t.readyState)==null?WebSocket.CLOSED:e}),m(this,`url`,()=>{var e;return(e=this.websocket)==null?void 0:e.url}),m(this,`send`,e=>{var t;(t=this.websocket)==null||t.send(e)}),m(this,`closeSocket`,(e,t)=>{e.onmessage=S,e.removeEventListener(`error`,this.onError),e.removeEventListener(`close`,this.onClose),e.removeEventListener(`open`,this.onOpen),e.close(1e3,t)}),m(this,`close`,e=>{this.clearConnectTimeout();let t=this.websocket;return t&&this.closeSocket(t,e),this.websocket=void 0,this.shouldContinueConnecting=!1,this._isConnectInProgress=!1,this.logger.info(`Closed websocket`,{reason:e}),!!t}),m(this,`suspend`,()=>{this.isSuspended=!0}),m(this,`unsuspend`,()=>{this.isSuspended=!1,this.readyState()!==WebSocket.OPEN&&!this.isConnectInProgress&&this.connect()}),m(this,`onMessage`,e=>{this.options.onMessage(e.data)}),m(this,`onError`,()=>{this.logger.warn(`On error`,L({},this.options)),this.close(`websocket had an error`),this.emit(`error`,new U(`WebSocket error`,{code:`websocket_error`,isFatal:!1}))}),m(this,`onClose`,e=>{let t=this._isConnectInProgress;this.logger.info(`Closed`,L(L({},this.options),{},{reason:e.reason,code:e.code,isSuspended:this.isSuspended})),this.close(`websocket was closed`);let n;switch(e.code){case hx.AuthenticationFailed:n=zi(Ri());break;case hx.AuthenticationRefreshFailed:n=zi(Ri());break;case hx.AuthenticationExpired:n=Bi(Ri());break;case hx.ChannelNotFound:n=Hi(`internal`,Ri());break;case hx.Inactivity:n=Vi(`internal`,Ri());break;default:t&&(n=Gi(Error(`WebSocket closed before open`)))}n&&this.emit(`error`,n),this.emit(`close`,this)}),m(this,`onOpen`,()=>{this.logger.info(`Opened`,L({},this.options)),this.readyState()===WebSocket.OPEN&&(this.clearConnectTimeout(),this._connectTime=performance.now()-this.connectStartTime,this.reconnectState.reconnectRetries=0,this._isConnectInProgress=!1,this.emit(`open`,this))}),m(this,`clearConnectTimeout`,()=>{this.connectTimeout&&(clearTimeout(this.connectTimeout),this.connectTimeout=void 0)}),m(this,`startConnectTimeout`,()=>{this.clearConnectTimeout(),this.connectTimeout=setTimeout(()=>{this.connectTimeout=void 0,!(!this._isConnectInProgress||this.readyState()===WebSocket.OPEN)&&(this.logger.warn(`WebSocket connect timed out`,{timeoutMs:Jt}),this.close(`websocket connection timeout`),this.emit(`error`,Gi(Error(`WebSocket connect timed out`))))},Jt)}),m(this,`connect`,N(function*(e=!1){if(n.isConnectInProgress)return n.logger.info(`Connect already in progress`),!1;if(n.isSuspended)return!1;if(n.readyState()!==WebSocket.CLOSED&&n.close(`new connection in progress`),n.shouldContinueConnecting=!0,n._isConnectInProgress=!0,e&&n.options.reconnectDelay>0){n.logger.info(`Waiting for reconnect delay`,L({},n.options)),yield Er(n.options.reconnectDelay);let e=yield n.options.reconnectHandler(n.reconnectState);if(n.reconnectState.reconnectRetries++,!e)return n._isConnectInProgress=!1,n.emit(`error`,Ki()),!1}n._connectionAttemptCount++;let t;try{if(!n.shouldContinueConnecting)return n._isConnectInProgress=!1,n.logger.info(`Connection aborted`),!1;let e=yield n.options.connectHandler();if(n.connectStartTime=performance.now(),!n.shouldContinueConnecting)return n._isConnectInProgress=!1,n.logger.info(`Connection aborted`),!1;n.logger.info(`Connecting websocket`,L(L({},n.options),{},{url:e}));let r=new WebSocket(e);return t=r,r.binaryType=`arraybuffer`,r.onmessage=n.onMessage,r.addEventListener(`error`,n.onError),r.addEventListener(`close`,n.onClose),r.addEventListener(`open`,n.onOpen),n.websocket=r,n.startConnectTimeout(),!0}catch(e){let r=n.shouldContinueConnecting;return n.clearConnectTimeout(),t&&n.closeSocket(t,`failed to create websocket`),n.websocket=void 0,n.shouldContinueConnecting=!1,n._isConnectInProgress=!1,r&&(e instanceof U?(n.logger.error(`Failed to connect`,e.toStringifiable()),n.emit(`error`,e)):(n.logger.info(`Connection aborted`,{error:e}),n.emit(`error`,new U(`Failed to connect`,{code:`failed_to_connect`,isFatal:!1,source:e,type:`internal`})))),!1}})),this.options=e,this.logger=t}get isConnectInProgress(){return this._isConnectInProgress}get connectionAttemptCount(){return this._connectionAttemptCount}get connectTime(){return this._connectTime}};H(),h(),P();var _x,vx=65536*8,yx=.9,bx=40,xx=e=>{let t=e||bx;return vx*yx*1e3/t},Sx=class e{constructor(t,n,r,i){var a=this;m(this,`emitter`,void 0),m(this,`transport`,void 0),m(this,`logger`,void 0),m(this,`config`,void 0),m(this,`rtts`,void 0),m(this,`lastPingSentTime`,performance.now()),m(this,`isPingInFlight`,!1),m(this,`connectCount`,0),m(this,`missedPings`,0),m(this,`isContextSwitchInProgress`,!1),m(this,`signalBuffer`,[]),m(this,`dataBuffer`,[]),m(this,`disconnected`,new C),m(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`)}),m(this,`suspend`,()=>{this.resetPingState(),this.transport.suspend()}),m(this,`unsuspend`,()=>{this.transport.unsuspend()}),m(this,`getState`,()=>{switch(this.transport.readyState()){case WebSocket.OPEN:return`connected`;case WebSocket.CONNECTING:return`connecting`;default:return`disconnected`}}),m(this,`sendSignal`,e=>{if(this.logger.debug(`sending signal`,{signal:e}),this.transport.readyState()!==WebSocket.OPEN){this.logger.debug(`transport is closed`);return}this.transport.send(JSON.stringify(e))}),m(this,`getStatistics`,()=>({edgeUrl:Ib(this.config.edgeUrl),connectionProtocol:`vindral_ws`,transportSelectionReason:void 0})),m(this,`onMessage`,e=>{if(this.pingCooldownExpired()&&this.sendPing(),this.isContextSwitchInProgress){if(e instanceof ArrayBuffer){this.dataBuffer.push(e);return}let t=JSON.parse(e);if(Hr(t)){if(t.type===`pong`){this.handleMessage(e);return}if(t.type===`context switch complete`){this.logger.info(`context switch completed`),this.emitter.emit(`context switch complete`),this.isContextSwitchInProgress=!1,this.flushContextSwitchBuffer();return}}this.signalBuffer.push(e);return}this.handleMessage(e)}),m(this,`resolveEdgeUrl`,N(function*(){let e=a.config.connectInfo,t=yield a.config.onConnectInfo(e),n=Fb(a.config.edgeUrl,{video:t.video,audio:t.audio,burstMs:t.burstMs,sessionId:t.sessionId,clientId:t.clientId,channelId:t.channelId,channelGroupId:t.channelGroupId,authToken:a.config.options.get(`authenticationToken`)});return a.logger.debug(`Resolved edge url`,{edgeUrl:n}),n})),m(this,`flushContextSwitchBuffer`,()=>{this.logger.info(`Flushing context switch buffer`);let e=this.signalBuffer,t=this.dataBuffer;this.signalBuffer=[],this.dataBuffer=[],e.forEach(e=>{this.handleMessage(e)}),t.forEach(e=>{this.handleMessage(e)})}),m(this,`handleMessage`,e=>{if(e instanceof ArrayBuffer)this.emitter.emit(`received data`,e);else{let t=JSON.parse(e);if(!Hr(t))return;switch(t.type){case`pong`:this.lastPingSentTime&&(this.rtts.push(performance.now()-this.lastPingSentTime),this.isPingInFlight=!1,this.emitter.emit(`rtt`,Bt(this.rtts.items())));break;case`context switch`:this.logger.info(`Starting context switch`),this.emitter.emit(`context switch started`),this.isContextSwitchInProgress=!0;break;default:this.emitter.emit(`received signal`,t);break}}}),m(this,`connectWebSocketTransport`,()=>{let e=new gx({reconnectDelay:1e3,onMessage:this.onMessage,reconnectHandler:this.config.reconnectHandler,connectHandler:this.resolveEdgeUrl},this.logger.createContext(`Transport`));return e.on(`open`,this.onTransportChange),e.on(`close`,this.onTransportChange),e.on(`error`,e=>this.disconnected.reject(e)),e.connect(),e}),m(this,`close`,(e=`Disconnect Requested`)=>{this.isContextSwitchInProgress=!1,this.signalBuffer=[],this.dataBuffer=[],this.resetPingState(),this.disconnected.resolve(),this.transport.close(e)}),m(this,`onTransportChange`,()=>{switch(this.getState()){case`connected`:this.transport.connectTime&&(this.rtts.push(this.transport.connectTime/e.TLS_ROUNDTRIPS),this.emitter.emit(`rtt`,Bt(this.rtts.items()))),this.connectCount++,this.resetPingState();break;default:this.isContextSwitchInProgress=!1,this.signalBuffer=[],this.dataBuffer=[],this.resetPingState(),this.disconnected.resolve();break}this.emitter.emit(`connection state`,this.getState())}),m(this,`reconnect`,e=>{if(this.transport.isConnectInProgress){this.logger.debug(`Stopping reconnect, already mid-connection`);return}this.close(e)}),m(this,`resetPingState`,()=>{this.missedPings=0,this.isPingInFlight=!1}),m(this,`pingCooldownExpired`,()=>performance.now()-this.lastPingSentTime>e.PING_INTERVAL),m(this,`sendPing`,()=>{if(this.isPingInFlight){this.missedPings++,this.missedPings>e.MAX_MISSED_PINGS&&this.reconnect(`missed pings`);return}this.isPingInFlight=!0,this.lastPingSentTime=performance.now(),this.missedPings=0,this.sendSignal({type:`ping`})}),this.logger=n,this.emitter=t,this.config=r,this.rtts=i,this.emitter.on(`send signal`,this.sendSignal),this.emitter.on(`disconnect`,this.close),this.emitter.on(`reconnect`,this.reconnect),this.disconnected.promise.catch(S),this.transport=this.connectWebSocketTransport()}closed(){return this.disconnected.promise}};_x=Sx,m(Sx,`PING_INTERVAL`,5e3),m(Sx,`MAX_MISSED_PINGS`,4),m(Sx,`TLS_ROUNDTRIPS`,3),m(Sx,`start`,(e,t,n,r)=>new Promise((i,a)=>{let o=new _x(e,t,n,r);o.transport.once(`error`,e=>a(e)),o.transport.once(`open`,()=>{var e;(e=n.onTransportConnected)==null||e.call(n),i(o)})})),E(),A(),M();var Cx=e=>{var t;return typeof e==`string`?e:`${e.moqWsUrl}|${(t=e.moqUrl)==null?``:t}`},wx=e=>typeof e==`string`?e:e.moqUrl||e.moqWsUrl,Tx=new WeakMap,Ex=new WeakMap,Dx=new WeakMap,Ox=new WeakMap,kx=class{constructor(e){T(this,Tx,void 0),T(this,Ex,[]),T(this,Dx,new Set),T(this,Ox,void 0),k(Tx,this,e)}select(e){if(j(Tx,this).edgeUrl)return j(Tx,this).edgeUrl;if(e.length>0){k(Ex,this,[...e]);let t=new Set(j(Ex,this).map(e=>Cx(e)));for(let e of j(Dx,this))t.has(e)||j(Dx,this).delete(e)}if(j(Ex,this).length===0)return;let t=j(Ex,this).filter(e=>!j(Dx,this).has(Cx(e)));t.length===0&&(j(Dx,this).clear(),t=j(Ex,this));let n=t[0];if(n)return j(Dx,this).add(Cx(n)),k(Ox,this,n),n}shiftedEdge(){return j(Ox,this)}hasRemainingEdges(){return j(Ex,this).some(e=>!j(Dx,this).has(Cx(e)))}reset(){k(Ox,this,void 0),k(Ex,this,[]),j(Dx,this).clear()}};H(),B(),h(),E(),A(),M(),R(),O(),P();var Ax,jx=new WeakMap,Mx=new WeakMap,Nx=new WeakMap,Px=new WeakMap,Fx=new WeakMap,Ix=new WeakMap,Lx=new WeakMap,Rx=new WeakMap,zx=new WeakMap,Bx=new WeakMap,Vx=new WeakMap,Hx=new WeakMap,Ux=new WeakMap,Wx=new WeakMap,Gx=new WeakMap,Kx=new WeakMap,qx=new WeakMap,Jx=new WeakMap,Yx=new WeakMap,Xx=new WeakSet,Zx=new WeakMap,Qx=new WeakMap,$x=new WeakMap,eS=new WeakMap,tS=new WeakMap,nS=new WeakMap,rS=class e{constructor(t,n,r){var i=this;z(this,Xx),m(this,`emitter`,void 0),m(this,`logger`,void 0),m(this,`config`,void 0),m(this,`apiClient`,void 0),m(this,`connectionImpl`,void 0),T(this,jx,new w(10)),T(this,Mx,!0),T(this,Nx,void 0),T(this,Px,0),T(this,Fx,0),T(this,Ix,0),T(this,Lx,void 0),T(this,Rx,void 0),T(this,zx,void 0),T(this,Bx,void 0),T(this,Vx,void 0),T(this,Hx,void 0),T(this,Ux,void 0),T(this,Wx,[]),T(this,Gx,void 0),m(this,`unload`,()=>{var e;this.logger.debug(`Unloading module...`),this.disconnect(`Unloading`),(e=this.connectionImpl)==null||e.unload(),k(Ux,this,void 0),this.logger.debug(`Unloaded module`)}),m(this,`suspend`,()=>{var e;k(Mx,this,!1),(e=this.connectionImpl)==null||e.suspend()}),m(this,`unsuspend`,()=>{var e;k(Mx,this,!0),(e=this.connectionImpl)==null||e.unsuspend(),this.connect()}),m(this,`getState`,()=>this.connectionImpl?this.connectionImpl.getState():`disconnected`),m(this,`getStatistics`,()=>{let e=j(Fx,this)>0?j(Ix,this)/j(Fx,this):0;if(!this.connectionImpl){let t=j(Kx,this).call(this);return{rtt:{min:0,max:0,average:0,last:0},estimatedBandwidth:0,connectCount:j(Ix,this),connectionAttemptCount:j(Fx,this),connectionSuccessRatio:e,timeToConnected:j(Bx,this),edgeUrl:t==null?void 0:t.edgeUrl,connectionProtocol:t==null?void 0:t.connectionProtocol,transportSelectionReason:t==null?void 0:t.transportSelectionReason}}return L(L({},this.connectionImpl.getStatistics()),{},{rtt:Ut(j(jx,this).items()),estimatedBandwidth:this.estimatedBandwidth,connectCount:j(Ix,this),connectionAttemptCount:j(Fx,this),connectionSuccessRatio:e,timeToConnected:j(Bx,this)})}),T(this,Kx,()=>j(Mx,this)&&j(Hx,this)?j(Hx,this):j(Vx,this)),m(this,`connect`,()=>{if(k(Mx,this,!0),j(Nx,this))return;let e=performance.now();j(Bx,this)===void 0&&k(Lx,this,e),j(Rx,this)===void 0&&k(Rx,this,e),k(Nx,this,D(Xx,this,iS).call(this))}),T(this,qx,()=>{j(Bx,this)!==void 0||j(Lx,this)===void 0||!j(Mx,this)||(k(Bx,this,performance.now()-j(Lx,this)),k(Lx,this,void 0))}),m(this,`disconnect`,(e=`Disconnect Requested`)=>{var t;k(Mx,this,!1),j(Qx,this).call(this),(t=this.connectionImpl)==null||t.close(e)}),m(this,`reconnect`,e=>{this.disconnect(e),this.connect()}),T(this,Jx,N(function*(){try{return yield i.apiClient.connect(i.config.options.getOptions())}catch(e){if(Du(e))switch(e.status){case 401:throw i.emitter.emit(`error`,zi(e)),zi(e);case 403:throw i.emitter.emit(`error`,Ji(e.message)),Ji(e.message);default:break}throw i.emitter.emit(`error`,Gi(e instanceof Error?e:void 0)),e}})),T(this,Yx,N(function*(){let t=performance.now(),n=()=>performance.now()-t,r=globalThis.AbortController?new AbortController:void 0,a=setTimeout(()=>r==null?void 0:r.abort(),e.PING_TIMEOUT);try{return yield fetch(new URL(`/api/v4/connect/ping`,i.config.options.get(`url`)).toString(),{method:`HEAD`,signal:r==null?void 0:r.signal}),n()}catch(e){return r!=null&&r.signal.aborted?n():void 0}finally{clearTimeout(a)}})),T(this,Zx,()=>{j(Qx,this).call(this),k(Gx,this,setTimeout(()=>{var e;!j(Ux,this)||((e=this.connectionImpl)==null?void 0:e.getState())!==`connected`||(this.logger.debug(`Connection remained stable for long enough, clearing cached fallback edges`),j(Ux,this).reset(),k(Gx,this,void 0))},e.EDGE_SELECTOR_RESET_TIMEOUT))}),T(this,Qx,()=>{j(Gx,this)!==void 0&&(clearTimeout(j(Gx,this)),k(Gx,this,void 0))}),T(this,$x,function(){var t=N(function*(t){return(yield i.config.reconnectHandler({reconnectRetries:j(Px,i)}))?(j(tS,i).call(i)?(i.logger.info(`Reconnect burst detected, applying backoff before retrying`),yield Er(e.RECONNECT_BACKOFF_MS)):i.logger.info(t===`cached_edge`?`Retrying with next cached edge without backoff`:`Retrying without backoff`),j(Mx,i)):(k(Mx,i,!1),i.emitter.emit(`error`,Ki()),!1)});return function(e){return t.apply(this,arguments)}}()),T(this,eS,(e=performance.now())=>{j(nS,this).call(this,e),j(Wx,this).push(e)}),T(this,tS,(t=performance.now())=>(j(nS,this).call(this,t),j(Wx,this).length>=e.RECONNECT_BACKOFF_BURST_THRESHOLD)),T(this,nS,t=>{for(;j(Wx,this).length>0;){let n=j(Wx,this)[0];if(n===void 0||n>t-e.RECONNECT_BACKOFF_BURST_WINDOW_MS)return;j(Wx,this).shift()}}),this.logger=n,this.emitter=t,this.config=r,this.apiClient=new Fu({publicEndpoint:this.config.options.get(`url`).toString(),tokenFactory:()=>this.config.options.get(`authenticationToken`)})}get rtt(){return j(jx,this).items().length>0?Bt(j(jx,this).items()):0}get estimatedBandwidth(){if(this.connectionImpl&&`estimatedBandwidth`in this.connectionImpl){let e=this.connectionImpl.estimatedBandwidth;if(e&&Number.isFinite(e))return e}return xx(this.rtt)}get firstConnectStartTime(){return j(Rx,this)}get lastConnectionTime(){return j(zx,this)}};Ax=rS;function iS(){var e=this;return N(function*(){let t=new kx({edgeUrl:e.config.options.get(`edgeUrl`)});for(k(Ux,e,t),j(Qx,e).call(e),k(Px,e,0),k(Wx,e,[]);;){var n,r,i;let o=`standard`;k(Px,e,(n=j(Px,e),n++,n)),k(Fx,e,(r=j(Fx,e),r++,r)),j(eS,e).call(e);let s=!1;k(Hx,e,{});try{var a;let[n,r]=yield Promise.all([j(Jx,e).call(e),j(Yx,e).call(e)]);if(j(jx,e).clear(),r!==void 0&&j(jx,e).push(r/2),!j(Mx,e))break;let i=t.select(n.edges);if(!i)throw new U(`Failed to resolve edge url`,{isFatal:!0,code:`failed_to_resolve_edge_url`});k(Hx,e,{edgeUrl:Ib(wx(i))});try{Fr(n)?e.connectionImpl=yield tx.start(e.emitter,e.logger,e.apiClient,L(L({},e.config),{},{connectInfo:n,edgeUrl:i,onTransportConnected:j(qx,e)}),j(jx,e)):(Ee(typeof i==`string`,`Edge URL is expected to be a string`),e.connectionImpl=yield Sx.start(e.emitter,e.logger,L(L({},e.config),{},{connectInfo:n,edgeUrl:i,onTransportConnected:j(qx,e)}),j(jx,e)))}catch(e){throw o=`cached_edge`,e}k(Vx,e,e.connectionImpl.getStatistics()),k(Hx,e,void 0),j(Mx,e)||e.connectionImpl.close(`Disconnected during connect`),j(Zx,e).call(e),k(Ix,e,(a=j(Ix,e),a++,a)),k(Px,e,0),k(zx,e,performance.now()),j(qx,e).call(e);let s=yield e.connectionImpl.closed();e.logger.info(`Connection closed`,{reason:s instanceof Error?s.message:s}),o=`cached_edge`}catch(n){e.logger.warn(`Failed to connect`,n);let r=t.shiftedEdge();r&&e.emitter.emit(`telemetry event`,{code:`shifted_edge`,edgeUrl:wx(r)}),n instanceof U?(e.emitter.emit(`error`,n),s=n.isFatal()):n instanceof Error&&e.emitter.emit(`error`,new U(n.message,{code:`start_failed`,isFatal:!1}))}if((i=e.connectionImpl)==null||i.unload(),e.connectionImpl=void 0,j(Qx,e).call(e),s){k(Mx,e,!1);break}if(!j(Mx,e)||!(yield j($x,e).call(e,o===`cached_edge`&&t.hasRemainingEdges()?`cached_edge`:`standard`)))break}k(Hx,e,void 0),k(Ux,e,void 0),j(Qx,e).call(e),k(Nx,e,void 0)})()}m(rS,`PING_TIMEOUT`,1e3),m(rS,`RECONNECT_BACKOFF_MS`,1e3),m(rS,`RECONNECT_BACKOFF_BURST_WINDOW_MS`,5e3),m(rS,`RECONNECT_BACKOFF_BURST_THRESHOLD`,3),m(rS,`EDGE_SELECTOR_RESET_TIMEOUT`,60*1e3),m(rS,`create`,(e,t,n)=>new Ax(e,t,n)),H(),R(),h();var aS,oS=()=>({video:L(L({},Vr()),{},{bitRate:Br()}),audio:{bitRate:Br()}}),sS=()=>({width:window.innerWidth,height:window.innerHeight,bitRate:Br()}),cS=class e{constructor(t,n,r,i){m(this,`emitter`,void 0),m(this,`timers`,new cr),m(this,`pictureInPictureSource`,void 0),m(this,`element`,void 0),m(this,`currentCap`,void 0),m(this,`userSpecifiedCap`,void 0),m(this,`renditionLevelSource`,void 0),m(this,`resizeObserver`,void 0),m(this,`elementSize`,void 0),m(this,`_sizeBasedResolutionCapEnabled`,void 0),m(this,`unload`,()=>{var e;this.emitter.off(`enter picture in picture`,this.enterPictureInPicture),this.emitter.off(`exit picture in picture`,this.exitPictureInPicture),(e=this.resizeObserver)==null||e.disconnect(),this.suspend()}),m(this,`load`,()=>{window.ResizeObserver&&(this.resizeObserver=new ResizeObserver(this.onResize),this.resizeObserver.observe(this.element)),this.evaluateConstraintCap()}),m(this,`setElement`,e=>{var t;if(e===this.element)return;(t=this.resizeObserver)==null||t.disconnect(),this.element=e;let n=this.element.getBoundingClientRect();this.elementSize={width:n.width,height:n.height},this.resizeObserver&&this.resizeObserver.observe(this.element),this.evaluateConstraintCap()}),m(this,`unsuspend`,()=>{this.timers.setInterval(this.evaluateConstraintCap,e.CHECK_SIZE_INTERVAL),this.evaluateConstraintCap()}),m(this,`suspend`,()=>{this.timers.unload()}),m(this,`setUserSpecifiedCap`,e=>{var t;let n=(t=this.getUserSpecifiedCap())==null?oS():t;this.userSpecifiedCap=L(L({},n),{},{video:L(L({},n.video),e.video),audio:L(L({},n.audio),e.audio)}),this.evaluateConstraintCap()}),m(this,`getUserSpecifiedCap`,()=>this.userSpecifiedCap),m(this,`getCurrentConstraintCap`,()=>this.currentCap),m(this,`getStatistics`,()=>({constraintCap:this.getUserSpecifiedCap(),windowInnerWidth:window.innerWidth,windowInnerHeight:window.innerHeight,elementWidth:this.elementSize.width,elementHeight:this.elementSize.height,pixelRatio:window.devicePixelRatio})),m(this,`constrainSubscription`,e=>{let t=this.getCurrentConstraintCap();return t&&(e.video.codec&&(e.video.bitRate=Math.min(t.video.bitRate,e.video.bitRate),e.video.width=Math.min(t.video.width,e.video.width),e.video.height=Math.min(t.video.height,e.video.height)),e.audio.codec&&(e.audio.bitRate=Math.min(t.audio.bitRate,e.audio.bitRate))),e}),m(this,`onResize`,e=>{e.forEach(e=>{this.elementSize={width:e.contentRect.width,height:e.contentRect.height}})}),m(this,`evaluateConstraintCap`,()=>{var e,t,n,r;let i=this.sizeBasedResolutionCapEnabled?L(L({},oS()),{},{video:sS()}):oS();if(!this.resizeObserver){let e=this.element.getBoundingClientRect();this.elementSize={width:e.width,height:e.height}}if(this.sizeBasedResolutionCapEnabled){var a;let e=window.devicePixelRatio,t=(a=this.pictureInPictureSource)==null?void 0:a.getPictureInPictureSize();this.elementSize.width>0&&this.elementSize.height>0&&(i.video.width=this.elementSize.width,i.video.height=this.elementSize.height),t&&(i.video.width=t.width,i.video.height=t.height),i.video.width*=e,i.video.height*=e}let o=this.renditionLevelSource.getRenditionLevels().find(e=>{if(e.video)return e.video.width/e.video.height>i.video.width/i.video.height?e.video.width>i.video.width:e.video.height>i.video.height});o!=null&&o.video&&(i.video.width=o.video.width,i.video.height=o.video.height);let s=(e=this.userSpecifiedCap)==null?void 0:e.video,c=(t=this.userSpecifiedCap)==null?void 0:t.audio;s&&(i.video.width>s.width&&(i.video.width=s.width),i.video.height>s.height&&(i.video.height=s.height)),i.video.bitRate=(n=s==null?void 0:s.bitRate)==null?i.video.bitRate:n,i.audio.bitRate=(r=c==null?void 0:c.bitRate)==null?i.audio.bitRate:r,$t(i,this.currentCap)?this.currentCap=L({},i):(this.currentCap=L({},i),this.emitter.emit(`constraint cap changed`,i))}),m(this,`enterPictureInPicture`,e=>{this.pictureInPictureSource=e,this.evaluateConstraintCap()}),m(this,`exitPictureInPicture`,()=>{this.pictureInPictureSource=void 0,this.evaluateConstraintCap()}),this.element=n;let a=this.element.getBoundingClientRect();this.elementSize={width:a.width,height:a.height},this.emitter=t,this.renditionLevelSource=r,this._sizeBasedResolutionCapEnabled=i,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(e){this._sizeBasedResolutionCapEnabled=e,this.evaluateConstraintCap()}};aS=cS,m(cS,`CHECK_SIZE_INTERVAL`,1e3),m(cS,`create`,(e,t,n,r)=>new aS(e,t,n,r)),h();var lS=(e,t)=>`${e}\u0000${t==null?``:t}`,uS=(e,t,n,r)=>e===n&&t===r,dS=class{constructor(){m(this,`lastKey`,void 0),m(this,`shouldNotify`,(e,t)=>{let n=lS(e,t);return this.lastKey===n?!1:(this.lastKey=n,!0)})}},fS,pS=n((()=>{fS=e=>{switch(e){case`opus`:return`opus`;case`aac`:return`mp4a.40.2`;case`mp3`:return`mp3`;default:{let t=e;throw Error(`Unsupported audio codec: ${t}`)}}}})),mS=r({WebCodecsAudioDecoderContext:()=>vS}),hS,gS,_S,vS,yS=n((()=>{go(),Tl(),H(),pS(),h(),R(),P(),gS=globalThis,_S=e=>{var t,n;if(!e)return{description:e,preSkip:0};let r=e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(!(r.byteLength>=19&&new TextDecoder().decode(r.subarray(0,8))===`OpusHead`))return{description:e,preSkip:0};let i=r.slice();return i[10]=0,i[11]=0,{description:i,preSkip:((t=r[10])==null?0:t)|((n=r[11])==null?0:n)<<8}},vS=class{constructor(e){var t=this;m(this,`decodedSamples`,[]),m(this,`decoder`,null),m(this,`logger`,void 0),m(this,`initSegments`,new Map),m(this,`previousSample`,void 0),m(this,`previousCodec`,void 0),m(this,`pendingSamples`,new w(1/0)),m(this,`priming`,{remaining:0}),m(this,`sentCount`,0),m(this,`doneCount`,0),m(this,`errors`,new w(10)),m(this,`resetDecoderState`,()=>{this.pendingSamples.clear(),this.doneCount=this.sentCount,this.previousSample=void 0,this.previousCodec=void 0}),m(this,`dropUndecoded`,e=>{for(;this.doneCount<e&&this.pendingSamples.pop();)this.doneCount++}),m(this,`ensureDecoder`,()=>((!this.decoder||this.decoder.state===`closed`)&&(this.decoder=this.createDecoder()),this.decoder)),m(this,`createDecoder`,()=>new AudioDecoder({output:e=>{let t=this.pendingSamples.pop();if(!t){e.close();return}this.doneCount++;let{sample:n,decodeStartTime:r,priming:i}=t;try{let t=e.numberOfFrames,a=e.numberOfChannels,o=e.sampleRate,s=e.duration,c=Math.min(t,Math.round(i.remaining*o/48e3));if(i.remaining=Math.max(0,i.remaining-Math.round(c*48e3/o)),c===t&&t>0)return;let l=new Float32Array((t-c)*a);e.copyTo(l,{planeIndex:0,format:`f32`,frameOffset:c});let u=c>0?Math.round((t-c)*n.timescale/o):typeof s==`number`&&Number.isFinite(s)?Math.max(0,Math.round(s*n.timescale/1e6)):n.duration,d=L(L({},n),{},{timestamp:n.timestamp+Math.round(c*n.timescale/o),duration:u,type:`audio`,format:`f32`,data:l,sampleRate:o,channels:a,statistics:{decodeTime:Math.max(performance.now()-r,0),transportTimeFromWorker:0,transportTimeToWorker:0,samplesInBatch:1}});this.decodedSamples.push(d)}finally{e.close()}},error:e=>{this.logger.error(`Decoder error:`,e.name,e.message),this.resetDecoderState(),this.errors.push(e)}})),m(this,`buildCodecString`,fS),m(this,`getDescription`,(e,t)=>{let n=this.initSegments.get(t.renditionId);if(n&&n.data.byteLength>0&&n.codec===e)return n.data;if(e===`opus`)return Cl(t.channels,t.sampleRate);if(e===`aac`)return so(t.channels,t.sampleRate)}),m(this,`reset`,()=>{this.decodedSamples=[],this.decoder&&this.decoder.state!==`closed`&&this.decoder.reset(),this.resetDecoderState()}),m(this,`unload`,()=>{this.reset(),this.decoder&&this.decoder.state!==`closed`&&this.decoder.close(),this.decoder=null}),m(this,`initSegment`,e=>{this.initSegments.set(e.renditionId,e)}),m(this,`enqueue`,e=>{var t,n;let r=this.ensureDecoder(),i=e.codec,a=((t=this.previousSample)==null?void 0:t.channelId)!==e.channelId,o=((n=this.previousSample)==null?void 0:n.renditionId)!==e.renditionId,s=this.previousCodec!==i;if(!this.previousSample||a||o||s){if(this.previousSample&&r.state===`configured`){let e=this.sentCount;r.flush().then(()=>this.dropUndecoded(e),e=>{this.logger.warn(`Failed to flush before reconfiguration:`,e)})}let t=this.buildCodecString(i),{description:n,preSkip:a}=i===`opus`?_S(this.getDescription(i,e)):{description:this.getDescription(i,e),preSkip:0},o={codec:t,sampleRate:e.sampleRate,numberOfChannels:e.channels,description:n};try{r.configure(o),this.previousCodec=i,this.priming={remaining:a}}catch(t){this.logger.error(`Failed to configure decoder for ${i} (rendition ${e.renditionId}), dropping sample`,t),this.errors.push(t instanceof Error?t:Error(`Failed to configure decoder for ${i}`)),r.state===`configured`&&r.reset(),this.resetDecoderState(),this.ensureDecoder();return}}if(e.timescale<=0){this.logger.error(`Invalid timescale ${e.timescale} in sample, dropping sample`);return}this.previousSample=e;let c=Math.floor(1e6*e.timestamp/e.timescale),l=Math.floor(1e6*e.duration/e.timescale),u;try{u=new EncodedAudioChunk({type:`key`,timestamp:c,duration:l>0?l:void 0,data:e.data})}catch(e){this.logger.error(`Failed to create chunk:`,e);return}this.pendingSamples.push({sample:e,decodeStartTime:performance.now(),priming:this.priming}),this.sentCount++;try{r.decode(u)}catch(e){this.logger.error(`Failed to decode chunk:`,e),this.pendingSamples.popLast(),this.sentCount--,r.state===`closed`&&(this.resetDecoderState(),this.ensureDecoder())}}),m(this,`flush`,N(function*(){if(t.decoder&&t.decoder.state===`configured`)try{let e=t.sentCount;yield t.decoder.flush(),t.dropUndecoded(e)}catch(e){t.logger.error(`Failed to flush decoder:`,e),t.resetDecoderState()}})),m(this,`error`,()=>this.errors.pop()),m(this,`take`,()=>this.decodedSamples.shift()),this.logger=e,this.decoder=this.createDecoder()}},hS=vS,m(vS,`isSupported`,()=>gS.AudioDecoder!==void 0),m(vS,`create`,function(){var e=N(function*(e){if(!hS.isSupported())throw Error(`WebCodecs AudioDecoder is not supported in this environment`);return new hS(e)});return function(t){return e.apply(this,arguments)}}())})),bS,xS=n((()=>{bS=(function(){var e=typeof document<`u`&&document.currentScript?document.currentScript.src:void 0;return(function(t){t=t||{};var n;n||(n=t===void 0?{}:t);var r,i;n.ready=new Promise(function(e,t){r=e,i=t});var a={},o;for(o in n)n.hasOwnProperty(o)&&(a[o]=n[o]);var s=``;typeof document<`u`&&document.currentScript&&(s=document.currentScript.src),e&&(s=e),s=s.indexOf(`blob:`)===0?``:s.substr(0,s.lastIndexOf(`/`)+1);var c=n.print||console.log.bind(console),l=n.printErr||console.warn.bind(console);for(o in a)a.hasOwnProperty(o)&&(n[o]=a[o]);a=null;var u;n.wasmBinary&&(u=n.wasmBinary),n.noExitRuntime,typeof WebAssembly!=`object`&&ne(`no native wasm support detected`);var d,f=!1,p=typeof TextDecoder<`u`?new TextDecoder(`utf8`):void 0,m,h,g,_=[],v=[],y=[];function b(){var e=n.preRun.shift();_.unshift(e)}var ee=0,te=null,x=null;n.preloadedImages={},n.preloadedAudios={};function ne(e){throw n.onAbort&&n.onAbort(e),l(e),f=!0,e=new WebAssembly.RuntimeError(`abort(`+e+`). Build with -s ASSERTIONS=1 for more info.`),i(e),e}function re(e){return e.startsWith(`data:application/octet-stream;base64,`)}var ie=`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(!re(ie)){var ae=ie;ie=n.locateFile?n.locateFile(ae,s):s+ae}function S(){var e=ie;try{if(e==ie&&u)return new Uint8Array(u);if(re(e))try{var t=w(e.slice(37)),n=new Uint8Array(t.length);for(e=0;e<t.length;++e)n[e]=t.charCodeAt(e);var r=n}catch(e){throw Error(`Converting base64 string to bytes failed.`)}else r=void 0;var i=r;if(i)return i;throw`both async and sync fetching of the wasm failed`}catch(e){ne(e)}}function oe(){return u||typeof fetch!=`function`?Promise.resolve().then(function(){return S()}):fetch(ie,{credentials:`same-origin`}).then(function(e){if(!e.ok)throw`failed to load wasm binary file at '`+ie+`'`;return e.arrayBuffer()}).catch(function(){return S()})}function C(e){for(;0<e.length;){var t=e.shift();if(typeof t==`function`)t(n);else{var r=t.s;typeof r==`number`?t.o===void 0?g.get(r)():g.get(r)(t.o):r(t.o===void 0?null:t.o)}}}var se=[null,[],[]],w=typeof atob==`function`?atob:function(e){var t=``,n=0;e=e.replace(/[^A-Za-z0-9\+\/=]/g,``);do{var r=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e.charAt(n++)),i=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e.charAt(n++)),a=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e.charAt(n++)),o=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e.charAt(n++));r=r<<2|i>>4,i=(i&15)<<4|a>>2;var s=(a&3)<<6|o;t+=String.fromCharCode(r),a!==64&&(t+=String.fromCharCode(i)),o!==64&&(t+=String.fromCharCode(s))}while(n<e.length);return t},ce={d:function(){ne()},f:function(e,t,n){m.copyWithin(e,t,t+n)},c:function(){return!1},e:function(){return 0},b:function(){},a:function(e,t,n,r){for(var i=0,a=0;a<n;a++){for(var o=h[t+8*a>>2],s=h[t+(8*a+4)>>2],u=0;u<s;u++){var d=m[o+u],f=se[e];if(d===0||d===10){d=e===1?c:l;for(var g=f,_=0,v=_+NaN,y=_;g[y]&&!(y>=v);)++y;if(16<y-_&&g.subarray&&p)g=p.decode(g.subarray(_,y));else{for(v=``;_<y;){var b=g[_++];if(b&128){var ee=g[_++]&63;if((b&224)==192)v+=String.fromCharCode((b&31)<<6|ee);else{var te=g[_++]&63;b=(b&240)==224?(b&15)<<12|ee<<6|te:(b&7)<<18|ee<<12|te<<6|g[_++]&63,65536>b?v+=String.fromCharCode(b):(b-=65536,v+=String.fromCharCode(55296|b>>10,56320|b&1023))}}else v+=String.fromCharCode(b)}g=v}d(g),f.length=0}else f.push(d)}i+=s}return h[r>>2]=i,0}};(function(){function e(e){n.asm=e.exports,d=n.asm.g,e=d.buffer,n.HEAP8=new Int8Array(e),n.HEAP16=new Int16Array(e),n.HEAP32=h=new Int32Array(e),n.HEAPU8=m=new Uint8Array(e),n.HEAPU16=new Uint16Array(e),n.HEAPU32=new Uint32Array(e),n.HEAPF32=new Float32Array(e),n.HEAPF64=new Float64Array(e),g=n.asm.n,v.unshift(n.asm.h),ee--,n.monitorRunDependencies&&n.monitorRunDependencies(ee),ee==0&&(te!==null&&(clearInterval(te),te=null),x&&(e=x,x=null,e()))}function t(t){e(t.instance)}function r(e){return oe().then(function(e){return WebAssembly.instantiate(e,a)}).then(e,function(e){l(`failed to asynchronously prepare wasm: `+e),ne(e)})}var a={a:ce};if(ee++,n.monitorRunDependencies&&n.monitorRunDependencies(ee),n.instantiateWasm)try{return n.instantiateWasm(a,e)}catch(e){return l(`Module.instantiateWasm callback failed with error: `+e),!1}return(function(){return u||typeof WebAssembly.instantiateStreaming!=`function`||re(ie)||typeof fetch!=`function`?r(t):fetch(ie,{credentials:`same-origin`}).then(function(e){return WebAssembly.instantiateStreaming(e,a).then(t,function(e){return l(`wasm streaming compile failed: `+e),l(`falling back to ArrayBuffer instantiation`),r(t)})})})().catch(i),{}})(),n.___wasm_call_ctors=function(){return(n.___wasm_call_ctors=n.asm.h).apply(null,arguments)},n._opus_decoder_create=function(){return(n._opus_decoder_create=n.asm.i).apply(null,arguments)},n._opus_decode_float=function(){return(n._opus_decode_float=n.asm.j).apply(null,arguments)},n._opus_decoder_destroy=function(){return(n._opus_decoder_destroy=n.asm.k).apply(null,arguments)},n._malloc=function(){return(n._malloc=n.asm.l).apply(null,arguments)},n._free=function(){return(n._free=n.asm.m).apply(null,arguments)};var le;x=function e(){le||ue(),le||(x=e)};function ue(){function e(){if(!le&&(le=!0,n.calledRun=!0,!f)){if(C(v),r(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),n.postRun)for(typeof n.postRun==`function`&&(n.postRun=[n.postRun]);n.postRun.length;){var e=n.postRun.shift();y.unshift(e)}C(y)}}if(!(0<ee)){if(n.preRun)for(typeof n.preRun==`function`&&(n.preRun=[n.preRun]);n.preRun.length;)b();C(_),0<ee||(n.setStatus?(n.setStatus(`Running...`),setTimeout(function(){setTimeout(function(){n.setStatus(``)},1),e()},1)):e())}}if(n.run=ue,n.preInit)for(typeof n.preInit==`function`&&(n.preInit=[n.preInit]);0<n.preInit.length;)n.preInit.pop()();return ue(),t.ready})})()})),SS,CS,wS,TS=n((()=>{xS(),h(),P(),CS=function(e){return e[e.OK=0]=`OK`,e[e[`Bad argument`]=-1]=`Bad argument`,e[e[`Buffer too small`]=-2]=`Buffer too small`,e[e[`Internal error`]=-3]=`Internal error`,e[e[`Invalid packet`]=-4]=`Invalid packet`,e[e.Unimplemented=-5]=`Unimplemented`,e[e[`Invalid state`]=-6]=`Invalid state`,e[e[`Memory allocation fail`]=-7]=`Memory allocation fail`,e}(CS||{}),wS=class e{constructor(t,n,r){m(this,`opusModule`,void 0),m(this,`decoderInstance`,void 0),m(this,`opusBufferPointer`,void 0),m(this,`pcmBufferPointer`,void 0),m(this,`channels`,void 0),m(this,`pcmBufferByteSize`,()=>e.MAX_SAMPLES*this.channels*Float32Array.BYTES_PER_ELEMENT),m(this,`unload`,()=>{this.opusModule._free(this.opusBufferPointer),this.opusModule._free(this.pcmBufferPointer),this.opusModule._opus_decoder_destroy(this.decoderInstance)}),m(this,`decode`,t=>{if(t.byteLength>e.MAX_OPUS_BUFFER)throw Error(`Opus packet too large (${t.byteLength} bytes), max ${e.MAX_OPUS_BUFFER} bytes`);this.opusModule.HEAPU8.set(t,this.opusBufferPointer);let n=this.opusModule._opus_decode_float(this.decoderInstance,this.opusBufferPointer,t.byteLength,this.pcmBufferPointer,e.MAX_SAMPLES,0);if(n<0)throw Error(`${CS[n]} (${n})`);let r=this.pcmBufferPointer/Float32Array.BYTES_PER_ELEMENT;return this.opusModule.HEAPF32.subarray(r,r+n*this.channels)}),this.opusModule=t,this.channels=r,this.decoderInstance=this.opusModule._opus_decoder_create(n,r,0),this.opusBufferPointer=this.opusModule._malloc(e.MAX_OPUS_BUFFER),this.pcmBufferPointer=this.opusModule._malloc(this.pcmBufferByteSize())}},SS=wS,m(wS,`MAX_OPUS_BUFFER`,16384),m(wS,`MAX_SAMPLES`,6*960),m(wS,`create`,function(){var e=N(function*(e,t){return new SS(yield bS(),e,t)});return function(t,n){return e.apply(this,arguments)}}())})),ES=n((()=>{TS()})),DS=r({OpusDecoderContext:()=>kS}),OS,kS,AS=n((()=>{H(),ES(),h(),R(),P(),kS=class{constructor(e){m(this,`decodedSamples`,[]),m(this,`decoder`,void 0),m(this,`errors`,new w(10)),m(this,`unload`,()=>{this.decoder.unload()}),m(this,`enqueue`,e=>{try{let t=performance.now(),n=this.decoder.decode(new Uint8Array(e.data));this.decodedSamples.push(L(L({},e),{},{type:`audio`,format:`f32`,data:n,statistics:{decodeTime:performance.now()-t,transportTimeFromWorker:0,transportTimeToWorker:0,samplesInBatch:1}}))}catch(e){e instanceof Error&&this.errors.push(e)}}),m(this,`initSegment`,S),m(this,`take`,()=>this.decodedSamples.shift()),this.decoder=e}error(){return this.errors.pop()}},OS=kS,m(kS,`create`,function(){var e=N(function*(e,t){return new OS(yield wS.create(e,t))});return function(t,n){return e.apply(this,arguments)}}())}));function jS(e){let t;try{if(t=NS&&(self.URL||self.webkitURL).createObjectURL(NS),!t)throw``;let n=new Worker(t,{name:e==null?void 0:e.name});return n.addEventListener(`error`,()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),n}catch(t){return new Worker(`data:text/javascript;charset=utf-8,`+encodeURIComponent(MS),{name:e==null?void 0:e.name})}}var MS,NS,PS=n((()=>{MS=`var __defProp = Object.defineProperty;
100
100
  var __defProps = Object.defineProperties;
101
101
  var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
102
102
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
@@ -1318,15 +1318,15 @@ var __async = (__this, __arguments, generator) => {
1318
1318
  }
1319
1319
  });
1320
1320
  })();
1321
- `,Ax=typeof self<`u`&&self.Blob&&new Blob([`(self.URL || self.webkitURL).revokeObjectURL(self.location.href);`,kx],{type:`text/javascript;charset=utf-8`})})),Mx=r({VideoDecoderWorkerContext:()=>Px}),Nx,Px,Fx=n((()=>{U(),jx(),h(),z(),F(),Px=class{get isWebCodecs(){return this._isWebCodecs}get usingOffscreenCanvas(){return this._usingOffscreenCanvas}constructor(e,t,n,r,i=!1,a=!1){m(this,`decodedSamples`,[]),m(this,`codedSamples`,[]),m(this,`decoder`,void 0),m(this,`logger`,void 0),m(this,`errors`,new T(10)),m(this,`pool`,void 0),m(this,`getCurrentTime`,void 0),m(this,`_usingOffscreenCanvas`,void 0),m(this,`_isWebCodecs`,void 0),m(this,`_renderedFrameCount`,0),m(this,`_rendererDroppedFrameCount`,0),m(this,`statisticsQueue`,new T(1e3)),m(this,`samplesInTransitToWorker`,0),m(this,`workerPendingDecodeCount`,0),m(this,`videoTrackLostListener`,void 0),m(this,`targetSamplesInBatch`,4),m(this,`maxSamplesInFlight`,20),m(this,`unload`,()=>{this.decoder.postMessage({type:`unload`}),this.decoder.removeEventListener(`message`,this.onDecoderEvent),this.decoder.terminate(),this.statisticsQueue.clear(),this.codedSamples=[],this.decodedSamples.forEach(e=>{var t;return(t=e.videoFrame)==null?void 0:t.close()}),this.decodedSamples=[],this.samplesInTransitToWorker=0,this.workerPendingDecodeCount=0}),m(this,`enqueue`,e=>{this.codedSamples.push(R({},e)),this.flushQueuedSamples()}),m(this,`setRenderingEnabled`,e=>{this.decoder.postMessage({type:`render enabled`,enabled:e})}),m(this,`setMaxCanvasPixels`,e=>{this.decoder.postMessage({type:`max canvas pixels`,maxPixels:e})}),m(this,`_videoTrack`,void 0),m(this,`onVideoTrackLost`,e=>{this.videoTrackLostListener=e}),m(this,`setSubtitleCues`,(e,t,n,r,i)=>{this.decoder.postMessage({type:`subtitle cues`,cues:e,containerWidth:t,containerHeight:n,devicePixelRatio:r,bottomPadding:i})}),m(this,`prepareOutputBuffers`,e=>{this._isWebCodecs||e.forEach(e=>{let t=Math.ceil(e.width/16)*16*(Math.ceil(e.height/16)*16)*3/2;e.buffer=this.pool.get(t)})}),m(this,`flushQueuedSamples`,()=>{for(;this.codedSamples.length>0&&this.samplesInFlight()<this.maxSamplesInFlight;){let e=Math.max(this.maxSamplesInFlight-this.samplesInFlight(),0),t=Math.min(this.targetSamplesInBatch,this.codedSamples.length,e);if(t<=0)return;let n=this.codedSamples.slice(0,t);this.codedSamples=this.codedSamples.slice(t),this.prepareOutputBuffers(n),this.sendSamples(n),this.samplesInTransitToWorker+=n.length}}),m(this,`initSegment`,e=>{let t={type:`init segment`,initSegment:e};this.decoder.postMessage(t)}),m(this,`take`,()=>this.decodedSamples.shift()),m(this,`samplesInFlight`,()=>this.samplesInTransitToWorker+this.workerPendingDecodeCount),m(this,`getRenderStatistics`,()=>({renderedFrameCount:this._renderedFrameCount,rendererDroppedFrameCount:this._rendererDroppedFrameCount})),m(this,`takeEstimatedStatistics`,()=>this.statisticsQueue.pop()),m(this,`sendSamples`,e=>{var t;let n={type:`decode samples`,samples:e,timestamp:Date.now(),currentTime:(t=this.getCurrentTime)==null?void 0:t.call(this)},r=this._isWebCodecs?e.map(e=>e.data):e.flatMap(e=>[e.data,e.buffer]).filter(e=>e!==void 0);this.decoder.postMessage(n,r)}),m(this,`onDecoderEvent`,e=>{switch(e.data.type){case`ready`:break;case`video track lost`:var t;this._videoTrack=void 0,(t=this.videoTrackLostListener)==null||t.call(this,e.data.error);break;case`error`:this.errors.push(Error(e.data.message)),this.samplesInTransitToWorker=0,this.workerPendingDecodeCount=0;break;case`decoder error`:this.errors.push(Object.assign(Error(e.data.message),{name:e.data.name,stream:e.data.stream}));break;case`decoded samples`:{typeof e.data.samplesAcceptedCount==`number`&&e.data.samplesAcceptedCount>0&&(this.samplesInTransitToWorker=Math.max(0,this.samplesInTransitToWorker-e.data.samplesAcceptedCount)),typeof e.data.decoderPendingCount==`number`&&e.data.decoderPendingCount>=0&&(this.workerPendingDecodeCount=e.data.decoderPendingCount);let t=e.data.timestamp,n=Date.now()-t;if(typeof e.data.estimatedSampleCount==`number`&&e.data.estimatedSampleCount>0&&typeof e.data.estimatedDecodeTimeSum==`number`&&typeof e.data.estimatedTransportTimeToWorkerSum==`number`){let t=e.data.estimatedSampleCount,r=e.data.estimatedDecodeTimeSum/t,i=e.data.estimatedTransportTimeToWorkerSum/t+n;for(let e=0;e<t;e++)this.statisticsQueue.push({decodeTime:r,transportTime:i})}e.data.samples.forEach(e=>{e.statistics&&(e.statistics.transportTimeFromWorker=n)}),typeof e.data.renderedFrameCount==`number`&&(this._renderedFrameCount=e.data.renderedFrameCount),typeof e.data.rendererDroppedFrameCount==`number`&&(this._rendererDroppedFrameCount=e.data.rendererDroppedFrameCount),this.decodedSamples.push(...e.data.samples),this.flushQueuedSamples()}break}}),this.decoder=e,this.logger=t,this.pool=n,this.getCurrentTime=r,this._isWebCodecs=i,this._usingOffscreenCanvas=a,this.decoder.addEventListener(`message`,this.onDecoderEvent)}get videoTrack(){return this._videoTrack}error(){return this.errors.pop()}},Nx=Px,m(Px,`create`,function(){var e=P(function*(e,t,n,r=!1,i=`no-preference`,a,o,s=!1,c){let l=new Ox,{isWebCodecs:u,usingOffscreenCanvas:d,videoTrack:f,videoTrackError:p}=yield new Promise((n,o)=>{let u=!1,d=setTimeout(()=>{u||(u=!0,f(Error(`Decoder worker initialization timed out`)))},1e4),f=e=>{if(u=!0,clearTimeout(d),l.removeEventListener(`message`,p),l.terminate(),e instanceof Error){o(e);return}o(Error(`Failed to initialize decoder worker`))},p=e=>{if(!u)switch(u=!0,clearTimeout(d),l.removeEventListener(`message`,p),e.data.type){case`ready`:n({isWebCodecs:e.data.isWebCodecs,usingOffscreenCanvas:e.data.usingOffscreenCanvas,videoTrack:e.data.videoTrack,videoTrackError:e.data.videoTrackError});break;case`error`:var t;f(Error((t=e.data.message)==null?`Failed to initialize decoder worker`:t));break;default:f(Error(`Failed to initialize decoder worker`));break}};l.addEventListener(`message`,p);let m={type:`init`,logLevel:t,useWebCodecs:r,webcodecsHardwareAcceleration:i,offscreenCanvas:a,videoTrackRequested:s,maxCanvasPixels:c};try{a?l.postMessage(m,[a]):l.postMessage(m)}catch(n){let o=n instanceof DOMException&&n.name===`DataCloneError`;if(a&&o){e.warn(`Failed to transfer OffscreenCanvas to worker, falling back to main-thread rendering`,n);try{l.postMessage({type:`init`,logLevel:t,useWebCodecs:r,webcodecsHardwareAcceleration:i,offscreenCanvas:void 0})}catch(e){f(e)}}else f(n)}}),m=new Nx(l,e,n,o,u,d);return m._videoTrack=f,s&&!f&&e.info(`Worker video track unavailable, using canvas capture`,{error:p}),m});return function(t,n,r){return e.apply(this,arguments)}}())}));U(),h(),z(),F();var Ix=5,Lx=40,Rx=1,zx=5,Bx=e=>{var t,n;return((t=e.maxCompositionOffsetMs)==null?0:t)-((n=e.minCompositionOffsetMs)==null?0:n)},Vx=(e,t,n)=>{let r=[];for(let i of e){let e=r[r.length-1];if(e&&e.end>=t&&i.start-e.end<=n){e.end=Math.max(e.end,i.end);continue}r.push({start:i.start,end:i.end})}return r},Hx=(e,t)=>{let n=e[e.length-1];n&&n.end>t&&n.start<t&&(n.end=t)},Ux=100,Wx=1e3,Gx=class e{constructor(e,t,n,r,i=!1,a=!1,o=!1){m(this,`backgroundTimersEnabled`,!1),m(this,`timers`,this.createTimers()),m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`trackContexts`,void 0),m(this,`playbackSource`,void 0),m(this,`isLoaded`,!1),m(this,`isSuspended`,!1),m(this,`_webCodecsInUse`,void 0),m(this,`_audioWebCodecsInUse`,void 0),m(this,`_offscreenCanvasInUse`,void 0),m(this,`currentVideoDecodeRate`,2),m(this,`decodeRateGraceIntervals`,3),m(this,`isAudioEmitRetryScheduled`,!1),m(this,`videoKeyframeTimestamps`,[]),m(this,`load`,()=>{this.isLoaded=!0,this.armTimers(),this.emitter.on(`init segment`,this.onInitSegment),this.emitter.on(`coded sample`,this.decode),this.emitter.on(`flush buffers`,this.resetContexts)}),m(this,`enableBackgroundTimers`,()=>{this.backgroundTimersEnabled||(this.backgroundTimersEnabled=!0,this.replaceTimers())}),m(this,`unload`,()=>{this.isLoaded=!1,this.trackContexts.forEach(({decoderContext:e})=>e.unload()),this.timers.unload(),this.isAudioEmitRetryScheduled=!1,this.videoKeyframeTimestamps=[],this.emitter.off(`init segment`,this.onInitSegment),this.emitter.off(`coded sample`,this.decode),this.emitter.off(`flush buffers`,this.resetContexts)}),m(this,`resetContexts`,()=>{this.trackContexts.forEach(({decoderContext:e})=>{var t;(t=e.reset)==null||t.call(e)})}),m(this,`suspend`,()=>{this.isSuspended=!0}),m(this,`unsuspend`,()=>{this.isSuspended=!1,this.emitDecodedFrames(),this._audioWebCodecsInUse&&this.scheduleAudioEmitRetry()}),m(this,`armTimers`,()=>{let e=this._audioWebCodecsInUse?20:Ux;this.timers.setInterval(this.emitDecodedFrames,e),this.timers.setInterval(this.emitDecodeRate,Wx)}),m(this,`replaceTimers`,()=>{let e=this.isAudioEmitRetryScheduled;this.isAudioEmitRetryScheduled=!1,this.timers.unload(),this.timers=this.createTimers(),this.timers.isWorkerBackendUnavailable()&&this.logger.warn(`Background timer worker is unavailable (likely blocked by CSP or unsupported in this environment). Falling back to main-thread timers; hidden-tab playback may be throttled.`),this.isLoaded&&(this.armTimers(),e&&this.scheduleAudioEmitRetry())}),m(this,`getBuffer`,e=>{let t=this.trackContexts.get(e);return t&&this.playableRanges(t).map(e=>({start:e.start,end:e.end}))}),m(this,`getVideoKeyframeTimestamps`,()=>this.videoKeyframeTimestamps),m(this,`videoDecodeRate`,()=>this.currentVideoDecodeRate),m(this,`calculateVideoDecodeRate`,()=>{var e;if(this._webCodecsInUse)return 2;let t=this.trackContexts.get(`video`);if(!t)return 2**53-1;let n=(e=t.sampleDuration)==null?40:e,r=Ht(t.decodeTime.items()),i=Ht(t.transportTime.items()),a=r.average+i.average;return a<=0?2:Math.min(n/a,100)}),m(this,`getStatistics`,()=>{var e,t,n,r,i;let a=this.trackContexts.get(`video`),o=Ht((e=a==null?void 0:a.decodeTime.items())==null?[]:e),s=Ht((t=a==null?void 0:a.transportTime.items())==null?[]:t),c=Ht((n=(r=this.trackContexts.get(`audio`))==null?void 0:r.decodeTime.items())==null?[]:n),l=this._offscreenCanvasInUse?a==null||(i=a.getRenderStatistics)==null?void 0:i.call(a):void 0;return R(R({videoDecodeRate:this.videoDecodeRate(),videoDecodeTime:o,audioDecodeTime:c,videoTransportTime:s,videoKeyframeIntervalMs:Bt(this.videoKeyframeTimestamps)},l?{renderedFrameCount:l.renderedFrameCount,rendererDroppedFrameCount:l.rendererDroppedFrameCount}:{}),{},{videoRenderer:this._offscreenCanvasInUse?`OffscreenCanvas`:`Canvas`,videoDecoder:this._webCodecsInUse?`WebCodecs`:`WASM`,audioRenderer:`AudioContext`,audioDecoder:this._audioWebCodecsInUse?`WebCodecs`:`WASM`})}),m(this,`setVideoRenderingEnabled`,e=>{var t,n,r;this._offscreenCanvasInUse&&((t=this.trackContexts.get(`video`))==null||(r=(n=t.decoderContext).setRenderingEnabled)==null||r.call(n,e))}),m(this,`setMaxVideoCanvasPixels`,e=>{var t,n,r;this._offscreenCanvasInUse&&((t=this.trackContexts.get(`video`))==null||(r=(n=t.decoderContext).setMaxCanvasPixels)==null||r.call(n,e))}),m(this,`onVideoTrackLost`,e=>{var t,n,r;(t=this.trackContexts.get(`video`))==null||(r=(n=t.decoderContext).onVideoTrackLost)==null||r.call(n,e)}),m(this,`setSubtitleCues`,(e,t,n,r,i)=>{var a;if(!this._offscreenCanvasInUse)return;let o=(a=this.trackContexts.get(`video`))==null?void 0:a.decoderContext;o&&`setSubtitleCues`in o&&o.setSubtitleCues(e,t,n,r,i)}),m(this,`onInitSegment`,({initSegment:e})=>{var t;let n=(t=this.trackContexts.get(e.type))==null?void 0:t.decoderContext;if(!n)throw new W(`No known decoder context`,{code:`no_known_decoder_context`,isFatal:!1});n.initSegment(e)}),m(this,`decode`,e=>{var t,n,r;let i=this.trackContexts.get(e.type);if(!i)throw new W(`No known decoder context`,{code:`no_known_decoder_context`,isFatal:!1});if(this.isSuspended)return;let a=e.compositionTimeOffset||0,{decoderContext:o,buffer:s}=i;i.stream=`${e.channelId}/${e.renditionId}`;let c=(e.timestamp+a)/e.timescale*1e3,l=e.duration/e.timescale*1e3;l>0&&(i.sampleDuration=l);let u=i.sampleDuration||Lx,d=e.timestamp/e.timescale*1e3,f=a/e.timescale*1e3,p=Bx(i),m=(t=s[s.length-1])==null?void 0:t.end,h=Math.max(u*zx,p+((n=i.frontierSampleDurationMs)==null?u:n)),g=m!==void 0&&c+h<m;i.lastDecodeTimestampMs=g?d:Math.max((r=i.lastDecodeTimestampMs)==null?d:r,d);let _=i.channelId!==void 0&&!sx(i.channelId,i.renditionId,e.channelId,e.renditionId);i.channelId=e.channelId,i.renditionId=e.renditionId,(g||_)&&(i.minCompositionOffsetMs=void 0,i.maxCompositionOffsetMs=void 0,i.hasAnchoredGop=!1,i.isReorderStructureStale=!0);let v=i.hasAnchoredGop===!0;if(e.isSync&&(i.hasAnchoredGop=!0),!g&&i.hasAnchoredGop){var y,b;i.minCompositionOffsetMs=Math.min((y=i.minCompositionOffsetMs)==null?f:y,f),i.maxCompositionOffsetMs=Math.max((b=i.maxCompositionOffsetMs)==null?f:b,f),v&&(i.isReorderStructureStale=!1)}let ee=Bx(i)>0;if(g)i.buffer=[{start:c,end:c+u}],i.frontierSampleDurationMs=u,e.type===`video`&&(this.videoKeyframeTimestamps=[]);else{var x;!ee&&!i.isReorderStructureStale&&Hx(s,c+u);let e=(x=s[s.length-1])==null?void 0:x.end;(e===void 0||c+u>=e)&&(i.frontierSampleDurationMs=u),pr(s,c,c+u,Ix)}if(i.playableRangesCache=void 0,e.type===`video`&&e.isSync){let e=this.videoKeyframeTimestamps[this.videoKeyframeTimestamps.length-1];e!==void 0&&c<e&&(this.videoKeyframeTimestamps=[]),this.videoKeyframeTimestamps.push(c),this.videoKeyframeTimestamps.length>20&&(this.videoKeyframeTimestamps=this.videoKeyframeTimestamps.slice(-20))}o.enqueue(e),this.emitDecodedFrames(),this._audioWebCodecsInUse&&e.type===`audio`&&this.scheduleAudioEmitRetry()}),m(this,`scheduleAudioEmitRetry`,()=>{this.isAudioEmitRetryScheduled||(this.isAudioEmitRetryScheduled=!0,this.timers.setTimeout(()=>{this.isAudioEmitRetryScheduled=!1,this.emitDecodedFrames()},0))}),m(this,`emitDecodedFrames`,()=>{let e;this.updateBufferState(),this.trackContexts.forEach((t,n)=>{var r,i,a,o;let s;for(;(s=(r=(i=t.decoderContext).error)==null?void 0:r.call(i))!==void 0;){var c;let e=`${(c=s.stream)==null?t.stream:c} ${s.name}: ${s.message}`;e!==t.lastReportedError&&(t.lastReportedError=e,this.emitter.emit(`error`,ki(!1,s,n)))}for(;(e=t.decoderContext.take())!==void 0;){t.lastReportedError=void 0;let{statistics:n}=e;n&&(t.decodeTime.push(n.decodeTime),t.transportTime.push((n.transportTimeToWorker+n.transportTimeFromWorker)/n.samplesInBatch)),this.emitter.emit(`decoded frame`,e)}let l=(a=(o=t.decoderContext).takeEstimatedStatistics)==null?void 0:a.call(o);for(;l!==void 0;){var u,d;t.decodeTime.push(l.decodeTime),t.transportTime.push(l.transportTime),l=(u=(d=t.decoderContext).takeEstimatedStatistics)==null?void 0:u.call(d)}})}),m(this,`emitDecodeRate`,()=>{if(this.decodeRateGraceIntervals>0){this.decodeRateGraceIntervals--;return}this.currentVideoDecodeRate=this.calculateVideoDecodeRate(),this.emitter.emit(`video decode rate`,this.currentVideoDecodeRate)}),m(this,`playableRanges`,e=>{let t=Bx(e);if(t<=0)return e.buffer;if(e.playableRangesCache===void 0){var n,r;e.playableRangesCache=Vx(e.buffer,((n=e.lastDecodeTimestampMs)==null?1/0:n)-Math.max(0,-((r=e.minCompositionOffsetMs)==null?0:r))-Rx,t+(e.sampleDuration||Lx)+Rx)}return e.playableRangesCache}),m(this,`updateBufferState`,()=>{let e=this.playbackSource.currentTime,t,n=!0;this.trackContexts.forEach(r=>{var i,a,o,s;let c=this.playableRanges(r),l=(i=t==null||(a=t[t.length-1])==null?void 0:a.end)==null?0:i,u=(o=(s=c[c.length-1])==null?void 0:s.end)==null?0:o;(t===void 0||l>u)&&(t=c),mr(c,e)||(n=!1)}),t&&this.emitter.emit(`buffer state`,{buffered:t,currentTime:e,isPaused:this.playbackSource.isPaused,playbackState:n?`playing`:`buffering`})}),this.logger=t,this.emitter=e,this.trackContexts=n,this.playbackSource=r,this._webCodecsInUse=i,this._audioWebCodecsInUse=a,this._offscreenCanvasInUse=o}get audioWebCodecsInUse(){return this._audioWebCodecsInUse}createTimers(){return sr.create(this.backgroundTimersEnabled?{mode:`worker-preferred`}:void 0)}static create(t,n,r,i,a,o,s=!1,c=`no-preference`,l,u=!1,d){return P(function*(){let f=new Map,p=new Set,m=!1,h=!1,g=!1;for(let e of i){if(p.has(e.type)){n.warn(`Received duplicate track type for decoder initialization. Ignoring subsequent track.`,{trackType:e.type,codec:e.codec,mimeType:e.mimeType});continue}switch(p.add(e.type),e.type){case`audio`:{let t,r,i=!1;if(s){let{WebCodecsAudioDecoderContext:a}=yield Promise.resolve().then(()=>(gx(),dx));if(i=a.isSupported(),i)try{t=yield a.create(n.createContext(`WebCodecsAudio`)),h=!0}catch(t){r=t instanceof Error?t:Error(`Failed to initialize WebCodecs audio decoder`),e.codec===`opus`&&n.warn(`Failed to initialize WebCodecs audio decoder, falling back to WASM Opus decoder`,{codec:e.codec,error:r})}}if(!t)if(e.codec===`opus`){let{OpusDecoderContext:n}=yield Promise.resolve().then(()=>(Dx(),wx));t=yield n.create(e.sampleRate||48e3,e.channels||2)}else{let t=s?r?`WebCodecs audio decoder initialization failed: ${r.message}`:i?`WebCodecs audio decoder could not be initialized.`:`WebCodecs AudioDecoder API is not supported in this environment.`:`WebCodecs audio decoding is disabled.`;throw Ai(e.codec,t,r)}f.set(e.type,{buffer:[],decoderContext:t,decodeTime:new T(100),transportTime:new T(100),sampleDuration:40});break}case`video`:{let{VideoDecoderWorkerContext:t}=yield Promise.resolve().then(()=>(Fx(),Mx)),i=yield t.create(n.createContext(`VideoDecoderWorker`),r,o,s,c,l,()=>a.currentTime,u,d);m=i.isWebCodecs,g=i.usingOffscreenCanvas,f.set(e.type,{buffer:[],decoderContext:i,decodeTime:new T(100),transportTime:new T(100),sampleDuration:40,getRenderStatistics:i.getRenderStatistics});break}default:break}}return new e(t,n,f,a,m,h,g)})()}get videoTrack(){var e;if(this._offscreenCanvasInUse)return(e=this.trackContexts.get(`video`))==null?void 0:e.decoderContext.videoTrack}};U(),h(),z();var Kx,qx=class{constructor(e){m(this,`emitter`,void 0),m(this,`isVisibleCount`,0),m(this,`isHiddenCount`,0),m(this,`isOnlineCount`,0),m(this,`isOfflineCount`,0),m(this,`isActive`,document.visibilityState===`visible`),m(this,`isBehindAnotherApp`,!1),m(this,`unload`,()=>{this.emitter.off(`fullscreen app switch`,this.onFullscreenAppSwitch),window.removeEventListener(`focus`,this.onVisibilityChanged),document.removeEventListener(`visibilitychange`,this.onVisibilityChanged),window.removeEventListener(`pageshow`,this.onPageShow),window.removeEventListener(`pagehide`,this.onPageHide),window.removeEventListener(`online`,this.onOnline),window.removeEventListener(`offline`,this.onOffline)}),m(this,`load`,()=>{this.emitter.on(`fullscreen app switch`,this.onFullscreenAppSwitch),window.addEventListener(`focus`,this.onVisibilityChanged),document.addEventListener(`visibilitychange`,this.onVisibilityChanged),window.addEventListener(`pageshow`,this.onPageShow),window.addEventListener(`pagehide`,this.onPageHide),window.addEventListener(`online`,this.onOnline),window.addEventListener(`offline`,this.onOffline)}),m(this,`unsuspend`,()=>{}),m(this,`getStatistics`,()=>R({isVisible:this.isVisible,isOnline:this.isOnline,isVisibleCount:this.isVisibleCount,isHiddenCount:this.isHiddenCount,isOnlineCount:this.isOnlineCount,isOfflineCount:this.isOfflineCount},Xt())),m(this,`onOnline`,()=>this.isOnlineCount++),m(this,`onOffline`,()=>this.isOfflineCount++),m(this,`onPageShow`,e=>{this.emitter.emit(`pageshow`,e),this.onVisibilityChanged()}),m(this,`onPageHide`,e=>this.emitter.emit(`pagehide`,e)),m(this,`onVisibilityChanged`,()=>{this.isBehindAnotherApp=!1,this.setIsActive(this.isVisible)}),m(this,`onFullscreenAppSwitch`,()=>{this.isBehindAnotherApp=!0,this.setIsActive(!1)}),m(this,`setIsActive`,e=>{e!==this.isActive&&(this.emitter.emit(`page active`,e),e?this.isVisibleCount++:this.isHiddenCount++),this.isActive=e}),this.emitter=e}get isOnline(){return navigator.onLine}get isVisible(){return document.visibilityState===`visible`&&!this.isBehindAnotherApp}};Kx=qx,m(qx,`create`,e=>new Kx(e)),U(),h(),z();var Jx,Yx=e=>(t,n,r)=>t.timestamp<=n||t.timestampAdded<=r-e,Xx=class e{constructor(t,n,r){m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`waitingEvents`,[]),m(this,`isTriggered`,Yx(e.EVENT_TIMEOUT)),m(this,`timeSource`,void 0),m(this,`timers`,new sr),m(this,`load`,()=>{this.timers.setInterval(this.onBufferedStateChanged,e.EVENT_CHECK_INTERVAL),this.emitter.on(`add event`,this.addEvent)}),m(this,`unload`,()=>{this.timers.unload(),this.emitter.off(`add event`,this.addEvent)}),m(this,`addEvent`,e=>{this.logger.debug(`Adding event`,{event:e}),!this.waitingEvents.some(t=>t.id!==void 0&&t.id===e.id)&&this.waitingEvents.push(R(R({},e),{},{timestampAdded:performance.now()}))}),m(this,`extractEvent`,(e,t)=>{t.type===`video`&&e.channelId!==t.channelId&&this.addEvent({type:`channel switch`,channelId:t.channelId,timestamp:t.timestamp/t.timescale*1e3}),t.type===`audio`&&e.type===`audio`&&t.language!==void 0&&t.language!==e.language&&this.addEvent({type:`language switch`,language:t.language,timestamp:t.timestamp/t.timescale*1e3})}),m(this,`onBufferedStateChanged`,()=>{var e;let t=performance.now(),n=(e=this.timeSource.drift)==null?0:e,r=this.timeSource.serverCurrentTime-n;if(this.waitingEvents.length===0)return;let i=this.waitingEvents.filter(e=>this.isTriggered(e,r,t));this.waitingEvents=this.waitingEvents.filter(e=>!this.isTriggered(e,r,t)),i.forEach(e=>{this.logger.debug(`Emitting event`,{event:e}),this.emitter.emit(`event`,e)})}),this.logger=n,this.emitter=t,this.timeSource=r}};Jx=Xx,m(Xx,`EVENT_TIMEOUT`,5e3),m(Xx,`EVENT_CHECK_INTERVAL`,20),m(Xx,`create`,(e,t,n)=>new Jx(e,t,n)),U(),h();var Zx,Qx=class e{constructor(t){m(this,`emitter`,void 0),m(this,`timers`,sr.create()),m(this,`bytesReceived`,new Map),m(this,`timeoutInterval`,void 0),m(this,`lastBytesUpdated`,performance.now()),m(this,`load`,()=>{this.emitter.on(`connection state`,this.onConnectionState),this.timers.setInterval(()=>this.bytesReceived.forEach(e=>e.tick()),100)}),m(this,`unload`,()=>{this.emitter.off(`connection state`,this.onConnectionState),this.timers.unload()}),m(this,`averageBitRate`,e=>{var t,n;return((t=(n=this.bytesReceived.get(e))==null?void 0:n.average)==null?0:t)*8}),m(this,`totalBytesReceived`,()=>{let e=0;return this.bytesReceived.forEach(t=>{e+=t.total}),e}),m(this,`add`,(t,n)=>{let r=this.bytesReceived.get(t);r||(r=new Gt(20),this.bytesReceived.set(t,r)),n>0&&(this.lastBytesUpdated=performance.now(),this.timeoutInterval||(this.timeoutInterval=this.timers.setInterval(this.checkTimeout,e.UPDATE_RECEIVED_BYTES_INTERVAL))),r.add(n)}),m(this,`getStatistics`,()=>({bytesReceived:this.totalBytesReceived(),videoBitRate:this.averageBitRate(`video`),audioBitRate:this.averageBitRate(`audio`)})),m(this,`onConnectionState`,t=>{this.clearTimeoutInterval(),t===`connected`&&(this.lastBytesUpdated=performance.now(),this.timeoutInterval=this.timers.setInterval(this.checkTimeout,e.UPDATE_RECEIVED_BYTES_INTERVAL))}),m(this,`checkTimeout`,()=>{let t=performance.now()-this.lastBytesUpdated;if(this.totalBytesReceived()===0&&t>e.NO_DATA_ERROR_TIMEOUT){this.emitter.emit(`error`,Ui()),this.emitter.emit(`reconnect`,`no incoming data`),this.clearTimeoutInterval();return}t>e.NO_DATA_TIMEOUT&&this.totalBytesReceived()>0&&(this.emitter.emit(`no data timeout`,this.totalBytesReceived()),this.clearTimeoutInterval())}),m(this,`clearTimeoutInterval`,()=>{this.timeoutInterval&&(this.timers.clearInterval(this.timeoutInterval),this.timeoutInterval=void 0)}),this.emitter=t}};Zx=Qx,m(Qx,`NO_DATA_ERROR_TIMEOUT`,20*1e3),m(Qx,`NO_DATA_TIMEOUT`,5*1e3),m(Qx,`UPDATE_RECEIVED_BYTES_INTERVAL`,1e3),m(Qx,`create`,e=>new Zx(e)),U(),h();var $x=1e3,eS=50,tS=class e{constructor(e){m(this,`logger`,void 0),m(this,`trackingState`,new Map),m(this,`runningJitter`,new Map),m(this,`recentJitterSamples`,new Map),m(this,`load`,()=>{this.logger.debug(`JitterModule loaded`)}),m(this,`unload`,()=>{this.trackingState.clear(),this.runningJitter.clear(),this.recentJitterSamples.clear(),this.logger.debug(`JitterModule unloaded`)}),this.logger=e}static create(t){return new e(t)}getTrackingKey(e,t){return`${e}-${t}`}recordSample(e){var t;let n=this.getTrackingKey(e.type,e.renditionId),r=performance.now(),i=e.timestamp/e.timescale*1e3,a=this.trackingState.get(n);if(!a){this.trackingState.set(n,{lastArrivalTime:r,lastTimestampMs:i,jitterSamples:new T($x),interArrivalTimes:new T($x)}),this.runningJitter.set(n,0),this.recentJitterSamples.set(n,new T(eS));return}let o=i-a.lastTimestampMs;if(o<=0){a.lastArrivalTime=r,a.lastTimestampMs=i;return}let s=r-a.lastArrivalTime,c=Math.abs(s-o);a.jitterSamples.push(c),a.interArrivalTimes.push(s);let l=(t=this.runningJitter.get(n))==null?0:t,u=l+(c-l)/16;this.runningJitter.set(n,u);let d=this.recentJitterSamples.get(n);d||(d=new T(eS),this.recentJitterSamples.set(n,d)),d.push(c),a.lastArrivalTime=r,a.lastTimestampMs=i}getJitterForType(e){for(let[i,a]of this.trackingState)if(i.startsWith(e)){var t,n,r;if(a.jitterSamples.items().length<1)return;let e=(t=this.runningJitter.get(i))==null?0:t,{min:o,max:s,average:c}=Ht((n=(r=this.recentJitterSamples.get(i))==null?void 0:r.items())==null?[]:n);return{min:Math.round(o),max:Math.round(s),last:Math.round(c),average:Math.round(e)}}}getRunningJitter(e){for(let[t,n]of this.runningJitter)if(t.startsWith(e))return n}reset(e,t){if(e!==void 0&&t!==void 0){let n=this.getTrackingKey(e,t);this.trackingState.delete(n),this.runningJitter.delete(n),this.recentJitterSamples.delete(n)}else if(e!==void 0)for(let t of this.trackingState.keys())t.startsWith(e)&&(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`)}}};U(),h(),F();var nS=()=>window.AudioContext||window.webkitAudioContext,rS=class e extends en{constructor(){var t;super(),t=this,m(this,`context`,new(nS())),m(this,`timers`,sr.create()),m(this,`previousCurrentTime`,0),m(this,`_isStuck`,!1),m(this,`mediaStreamDestination`,void 0),m(this,`unload`,()=>(this.timers.unload(),this.context.removeEventListener(`statechange`,this.onStateChange),this.context.state===`closed`?Promise.resolve():this.context.close())),m(this,`createGain`,()=>this.context.createGain()),m(this,`createBuffer`,(e,t,n)=>this.context.createBuffer(e,t,n)),m(this,`createBufferSource`,()=>this.context.createBufferSource()),m(this,`getMediaStreamDestination`,()=>(this.mediaStreamDestination||(this.mediaStreamDestination=this.context.createMediaStreamDestination()),this.mediaStreamDestination)),m(this,`getDefaultDestination`,()=>this.context.destination),m(this,`createSplitter`,()=>this.context.createChannelSplitter(2)),m(this,`resume`,P(function*(){let e=!0,n=t.context.resume();n.then(()=>{e=!1},()=>{e=!1});try{return yield Promise.race([n,Er(1e3,Ii())])}catch(n){throw!e&&t.context.state!==`running`&&t.suspend().catch(C),n}})),m(this,`suspend`,P(function*(){var e;yield(e=t.context.suspend())==null?Promise.resolve():e})),m(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},e.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}};m(rS,`CHECK_INTERVAL`,1e3),U(),h(),F(),z();var iS,aS=150,oS=400,sS=e=>e===void 0?5:e<=aS?1:e<=oS?2:5,cS=class extends en{get isContextRunning(){var e;return((e=this.audio)==null?void 0:e.state)===`running`}get contextState(){var e,t;return(e=(t=this.audio)==null?void 0:t.state)==null?`none`:e}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)}get userMuted(){return this._userProvidedMuted}set muted(e){this._userProvidedMuted=e,this._muted=e,this.setGain(this._volume)}get isPaused(){return!1}get currentTime(){return!this.audio||!this.audio.isRunning||this.audio.isStuck||this.startTimeIsInvalidated?this.clockSource.currentTime:this.audio.currentTime*1e3+this.clockDelta}set currentTime(e){this.logger.debug(`setting current time to`,{currentTime:e}),this.startTimeIsInvalidated=!0}get bufferTime(){return this._bufferTime}set bufferTime(e){this._bufferTime=e,this.audioBufferMultiplier=sS(e)}get sinkPaused(){return this._sinkPaused}set sinkPaused(e){if(this._sinkPaused&&!e){let e=this.clockSource.currentTime;this.preInitSampleQueue.filterPop(({timestamp:t,timescale:n})=>t/n*1e3>e),this.startTimeIsInvalidated=!0}this._sinkPaused=e}get audioNode(){return this.splitter}constructor(e,t,{muted:n,reInitWhenStuck:r,bufferTime:i}){var a;super(),a=this,m(this,`logger`,void 0),m(this,`audio`,void 0),m(this,`gainNode`,void 0),m(this,`splitter`,void 0),m(this,`_volume`,1),m(this,`_userProvidedMuted`,!1),m(this,`_muted`,!1),m(this,`startTime`,0),m(this,`samples`,new Float32Array),m(this,`preInitSampleQueue`,new T(500)),m(this,`unplayedBufferSources`,new T(100)),m(this,`sampleRate`,48e3),m(this,`channels`,2),m(this,`index`,0),m(this,`clockSource`,void 0),m(this,`clockDelta`,0),m(this,`startTimeIsInvalidated`,!0),m(this,`lastSampleTimestamp`,0),m(this,`reInitWhenStuck`,void 0),m(this,`ignoreSuspendCalls`,!1),m(this,`_bufferTime`,void 0),m(this,`_sinkPaused`,!1),m(this,`audioBufferMultiplier`,void 0),m(this,`isActivated`,!1),m(this,`unload`,P(function*(){var e,t;(e=a.gainNode)==null||e.disconnect(),yield(t=a.audio)==null?void 0:t.unload(),a.reset(),a.audio=void 0,a.gainNode=void 0})),m(this,`suspend`,()=>{this.setGain(0)}),m(this,`unsuspend`,()=>{if(this.setGain(this._volume),!it()){this.resume().catch(this.onUnsuspendFailure);return}this.restartContext()}),m(this,`restartContext`,()=>{var e;this.ignoreSuspendCalls=!!this.audio,(e=this.audio)==null||e.suspend().then(P(function*(){yield a.resume(),a.ignoreSuspendCalls=!1})).catch(this.onUnsuspendFailure)}),m(this,`flush`,(e=this.samples.length)=>{if(!this.audio||!this.gainNode)throw new W(`AudioContext must be initialized to flush`,{isFatal:!1,code:`audiocontext_must_be_initialized`});let t=Math.floor(e/this.channels);if(t<=0)return;let n=this.audio.createBufferSource(),r=this.audio.createBuffer(this.channels,t,this.sampleRate);if(this.channels===2){let e=r.getChannelData(0),n=r.getChannelData(1);for(let r=0;r<t;r++){let t=r*2;e[r]=this.samples[t],n[r]=this.samples[t+1]}}else if(this.channels===1)r.getChannelData(0).set(this.samples.subarray(0,t));else{let e=0;for(let n=0;n<this.channels;n++){e=n;let i=r.getChannelData(n);for(let n=0;n<t;n++)i[n]=this.samples[e],e+=this.channels}}let i=Math.max(this.startTime,0);n.buffer=r,n.connect(this.gainNode),this.splitter&&n.connect(this.splitter),n.start(i),this.unplayedBufferSources.push([i,n]),this.startTime+=r.duration}),m(this,`onDecodedFrame`,e=>{var t;if(this._sinkPaused||!(this.gainNode&&(t=this.audio)!=null&&t.isRunning)){if(e.type===`audio`){this.preInitSampleQueue.push(R(R({},e),{},{data:e.data.slice(0,e.data.length)}));let t=this.clockSource.currentTime;this.preInitSampleQueue.filterPop(({timestamp:e,timescale:n})=>e/n*1e3>t)}return}for(;!this.preInitSampleQueue.isEmpty();){let e=this.preInitSampleQueue.items();this.preInitSampleQueue.clear(),e.forEach(this.onDecodedFrame)}if(this.unplayedBufferSources.filterPop(([e,t])=>{var n,r;return((n=(r=this.audio)==null?void 0:r.currentTime)==null?0:n)<e}),e.type===`audio`){let 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){let e=this.audio.currentTime*1e3,n=this.clockSource.currentTime,r=(e+t-n)/1e3;this.clockDelta=n-e,this.startTime=r,this.startTimeIsInvalidated=!1,this.unplayedBufferSources.items().forEach(([e,t])=>{r<=e&&t.stop()})}let n=e.data.length*this.audioBufferMultiplier;this.samples.length!==n&&(this.index>0&&this.flush(this.index),this.samples=new Float32Array(n),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)}}),m(this,`play`,P(function*(){a.audio=a.getAudioContext(),yield a.resume()})),m(this,`pause`,()=>{}),m(this,`flushBuffer`,()=>{var e,t;this.unplayedBufferSources.items().forEach(([e,t])=>{try{t.stop()}catch(e){}}),this.unplayedBufferSources.clear(),this.preInitSampleQueue.clear(),this.samples=new Float32Array,this.index=0,this.lastSampleTimestamp=0,this.startTime=(e=(t=this.audio)==null?void 0:t.currentTime)==null?0:e,this.startTimeIsInvalidated=!0}),m(this,`resume`,P(function*(){if(!a._userProvidedMuted)try{var e;yield(e=a.audio)==null?void 0:e.resume(),a._muted=a._userProvidedMuted,a.startTimeIsInvalidated=!0}catch(e){throw a._muted=!0,e}})),m(this,`onUnsuspendFailure`,()=>{this.ignoreSuspendCalls=!1,this.emit(`state change`,`suspended`)}),m(this,`getAudioContext`,()=>this.audio?this.audio:this.setupContext()),m(this,`setupContext`,()=>{var e,t,n;return(e=this.audio)==null||e.unload(),this.audio=new rS,this.audio.on(`state`,e=>{this.logger.info(`AudioContext state change`,{state:e}),e===`running`&&(this._muted=this._userProvidedMuted,this.setGain(this._volume)),!this.ignoreSuspendCalls&&this.emit(`state change`,e)}),this.audio.on(`stuck`,()=>{if(!this.reInitWhenStuck){this.restartContext();return}this.logger.info(`Re-init audio context`),this.setupContext(),this.resume().catch(C),this.emit(`stuck`)}),(t=this.gainNode)==null||t.disconnect(),this.gainNode=this.audio.createGain(),this.setGain(this._volume),this.startTime=this.audio.currentTime,(n=this.splitter)==null||n.disconnect(),this.splitter=this.audio.createSplitter(),this.audio}),m(this,`setGain`,e=>{this.gainNode&&(this.gainNode.gain.value=this._muted?0:e)}),this._muted=n,this._userProvidedMuted=n,this.logger=e,this.clockSource=t,this.reInitWhenStuck=r,this._bufferTime=i,this.audioBufferMultiplier=sS(i)}useMediaStreamDestination(){var e;let t=this.getAudioContext(),n=t.getMediaStreamDestination();return(e=this.gainNode)==null||e.connect(n),t.isRunning||t.resume().catch(()=>{}),n}useDefaultDestination(){var e;let t=this.getAudioContext().getDefaultDestination();return(e=this.gainNode)==null||e.connect(t),t}};iS=cS,m(cS,`create`,(e,t,n)=>new iS(e,t,n)),h();var lS,uS=class{constructor(e,t,n,r,i,a){m(this,`staleFrameThresholdMs`,400),m(this,`pool`,void 0),m(this,`logger`,void 0),m(this,`videoRenderer`,new ma),m(this,`videoFrameCanvas2DRenderer`,null),m(this,`renderQueue`,[]),m(this,`clockSource`,void 0),m(this,`isFirstFrame`,!0),m(this,`usingWebCodecs`,!1),m(this,`onCanvasChangeCallback`,void 0),m(this,`onRendererErrorCallback`,void 0),m(this,`animationFrameRequest`,void 0),m(this,`firstFrameAnimationFrameRequest`,void 0),m(this,`pendingFirstFrameSample`,void 0),m(this,`renderedFrameCount`,0),m(this,`rendererDroppedFrameCount`,0),m(this,`renderTargetSize`,void 0),m(this,`load`,()=>{this.videoRenderer.load(),this.subscribeToContextLost(this.videoRenderer)}),m(this,`unload`,()=>(this.stopRender(),this.clearRenderQueue(),this.unsubscribeFromContextLost(this.videoRenderer),this.videoRenderer.unload(),this.videoFrameCanvas2DRenderer&&(this.unsubscribeFromContextLost(this.videoFrameCanvas2DRenderer),this.videoFrameCanvas2DRenderer.unload()),Promise.resolve())),m(this,`suspend`,()=>{this.clearRenderQueue(),this.stopRender()}),m(this,`unsuspend`,()=>{this.animationFrameRequest===void 0&&(this.animationFrameRequest=requestAnimationFrame(this.render))}),m(this,`element`,()=>this.usingWebCodecs&&this.videoFrameCanvas2DRenderer?this.videoFrameCanvas2DRenderer.canvas:this.videoRenderer.canvas),m(this,`getStatistics`,()=>({renderedFrameCount:this.renderedFrameCount,rendererDroppedFrameCount:this.rendererDroppedFrameCount})),m(this,`resetSize`,()=>{this.videoRenderer.resetSize()}),m(this,`setActiveCues`,(e,t)=>{this.usingWebCodecs&&this.videoFrameCanvas2DRenderer?this.videoFrameCanvas2DRenderer.setActiveCues(e,t):this.usingWebCodecs||this.videoRenderer.getTextRenderer().setActiveCues(e,t)}),m(this,`onDecodedFrame`,e=>{if(e.type===`video`)if(this.isFirstFrame)this.isFirstFrame=!1,this.pendingFirstFrameSample=e,this.firstFrameAnimationFrameRequest=requestAnimationFrame(()=>{this.firstFrameAnimationFrameRequest=void 0;let e=this.pendingFirstFrameSample;this.pendingFirstFrameSample=void 0,e&&this.renderSample(e)});else{let t=(this.clockSource.currentTime-this.staleFrameThresholdMs)/1e3;this.renderQueue=this.renderQueue.filter(n=>{let r=this.samplePresentationTime(n),i=this.samplePresentationTime(e),a=r>t&&r<=i;return a||this.releaseSampleResources(n),a}),this.renderQueue.push(e)}}),m(this,`render`,()=>{let e=this.clockSource.currentTime,t=this.renderQueue[0],n,r=0;for(;t&&this.samplePresentationTime(t)*1e3<=e;)t=this.renderQueue.shift(),t&&(r++,n&&this.releaseSampleResources(n),n=t),t=this.renderQueue[0];n&&this.renderSample(n),this.rendererDroppedFrameCount+=Math.max(r-1,0),this.animationFrameRequest=requestAnimationFrame(this.render)}),m(this,`renderSample`,e=>{if(this.renderedFrameCount++,e.videoFrame){let n=this.videoFrameCanvas2DRenderer;if(!this.usingWebCodecs){var t;this.logger.info(`Switching to Canvas2D renderer for WebCodecs`),n||(n=new ai,n.load(),this.subscribeToContextLost(n),this.videoFrameCanvas2DRenderer=n);let e=this.videoRenderer.canvas,r=n.canvas;if(e.parentElement)try{e.parentElement.replaceChild(r,e)}catch(e){}this.usingWebCodecs=!0,(t=this.onCanvasChangeCallback)==null||t.call(this)}n?n.render(e,this.getSubtitlePadding()):this.videoRenderer.render(e,this.renderTargetSize),e.videoFrame.close()}else{if(this.usingWebCodecs){var n;this.logger.info(`Switching back to WebGL renderer for WASM`);let t=this.videoFrameCanvas2DRenderer;if(!t){this.usingWebCodecs=!1,this.videoRenderer.render(e,this.renderTargetSize),e.buffer.byteLength>0&&this.pool.reclaim(e.buffer);return}let r=t.canvas,i=this.videoRenderer.canvas;if(r.parentElement)try{r.parentElement.replaceChild(i,r)}catch(e){}this.usingWebCodecs=!1,(n=this.onCanvasChangeCallback)==null||n.call(this)}this.videoRenderer.render(e,this.renderTargetSize)}e.buffer.byteLength>0&&this.pool.reclaim(e.buffer)}),m(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)}),m(this,`clearRenderQueue`,()=>{this.renderQueue.forEach(e=>{this.releaseSampleResources(e)}),this.renderQueue=[]}),m(this,`onRendererContextLost`,e=>{var t;(t=this.onRendererErrorCallback)==null||t.call(this,e)}),m(this,`subscribeToContextLost`,e=>{let t=e;typeof t.on==`function`&&t.on(`context lost`,this.onRendererContextLost)}),m(this,`unsubscribeFromContextLost`,e=>{let t=e;typeof t.off==`function`&&t.off(`context lost`,this.onRendererContextLost)}),m(this,`getSubtitlePadding`,()=>{let e=this.renderTargetSize.style.getPropertyValue(`--vindral-subtitle-offset`)||this.renderTargetSize.style.getPropertyValue(`--vindral-control-bar-offset`),t=parseInt(e||`0`,10);return Number.isNaN(t)?0:-t}),m(this,`samplePresentationTime`,e=>(e.timestamp+(e.compositionTimeOffset||0))/e.timescale),m(this,`releaseSampleResources`,e=>{try{var t;(t=e.videoFrame)==null||t.close()}catch(e){}e.buffer.byteLength>0&&this.pool.reclaim(e.buffer)}),this.logger=e,this.clockSource=t,this.pool=n,this.renderTargetSize=r||this.videoRenderer.canvas,this.onCanvasChangeCallback=i,this.onRendererErrorCallback=a}};lS=uS,m(uS,`create`,(e,t,n,r,i,a)=>new lS(e,t,n,r,i,a)),D(),j(),N();var dS=new WeakMap,fS=class{constructor(){E(this,dS,[]),A(dS,this,[])}addTextTrack(e,t,n){let r=[],i={kind:e,label:t,language:n,mode:`disabled`,cues:r,addCue:e=>{r.push(e)},removeCue:e=>{let t=r.findIndex(t=>t===e);t!==-1&&r.splice(t,1)}};return M(dS,this).push(i),i}set language(e){M(dS,this).forEach(t=>{t.language===e?t.mode=`showing`:t.mode=`hidden`})}get language(){var e;return(e=M(dS,this).find(e=>e.mode===`showing`))==null?void 0:e.language}get tracks(){return M(dS,this)}get activeTrack(){return M(dS,this).find(e=>e.mode===`showing`)}getActiveCues(e){let t=M(dS,this).find(e=>e.mode===`showing`);return t?t.cues.filter(({startTime:t,endTime:n})=>e>=t&&e<n):[]}};U(),h();var pS=(e,t)=>{let n;for(n=t;e>1;e--)n+=t;return n},mS=class{constructor(){m(this,`audio`,void 0),m(this,`unmute`,()=>this.audio.play().catch(C));let e=document.createElement(`div`);e.innerHTML=`<audio x-webkit-airplay='deny'></audio>`;let t=e.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`+pS(23,`A`)+`WGluZwAAAA8AAAACAAACcQCA`+pS(16,`gICA`)+pS(66,`/`)+`8AAABhTEFNRTMuMTAwA8MAAAAAAAAAABQgJAUHQQAB9AAAAnGMHkkI`+pS(320,`A`)+`//sQxAADgnABGiAAQBCqgCRMAAgEAH`+pS(15,`/`)+`7+n/9FTuQsQH//////2NG0jWUGlio5gLQTOtIoeR2WX////X4s9Atb/JRVCbBUpeRUq`+pS(18,`/`)+`9RUi0f2jn/+xDECgPCjAEQAABN4AAANIAAAAQVTEFNRTMuMTAw`+pS(97,`V`)+`Q==`,this.audio.loop=!1,this.audio.load();else throw Error(`Failed to create audio tag`)}};U(),h(),z();var hS,gS=class{constructor(e,t,n,r,i,a,o,s){m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`audioPlayer`,void 0),m(this,`videoPlayer`,void 0),m(this,`pool`,void 0),m(this,`unmuter`,new mS),m(this,`_isPaused`,!1),m(this,`isDisconnected`,!1),m(this,`timers`,new sr),m(this,`isVideoRenderingEnabled`,!0),m(this,`isLoaded`,!1),m(this,`isSuspended`,!0),m(this,`isVideoPlayerLoaded`,!1),m(this,`volumeState`,void 0),m(this,`textTracks`,new fS),m(this,`playbackRate`,void 0),m(this,`emitVolumeState`,()=>{let e={volume:this.volume,isMuted:this.userMuted};Qt(e,this.volumeState)||(this.volumeState=e,this.emitter.emit(`volume state`,e))}),m(this,`reset`,()=>{}),m(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())}),m(this,`unload`,()=>{this.emitter.off(`target buffer time`,this.onTargetBufferTime),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}),m(this,`suspend`,()=>{this.isSuspended=!0,this.isVideoRenderingEnabled&&this.videoPlayer.suspend(),this.audioPlayer.suspend()}),m(this,`unsuspend`,()=>{this.isSuspended=!1,this.isVideoRenderingEnabled&&this.videoPlayer.unsuspend(),this.audioPlayer.unsuspend()}),m(this,`setVideoRenderingEnabled`,e=>{if(e!==this.isVideoRenderingEnabled&&(this.isVideoRenderingEnabled=e,this.isLoaded)){if(!e){this.timers.unload(),this.videoPlayer.suspend();return}this.isVideoPlayerLoaded||(this.videoPlayer.load(),this.isVideoPlayerLoaded=!0),this.startTextTrackInterval(),this.isSuspended||this.videoPlayer.unsuspend()}}),m(this,`element`,()=>this.videoPlayer.element()),m(this,`getStatistics`,()=>R(R({},this.videoPlayer.getStatistics()),{},{audioContextState:this.audioPlayer.contextState})),m(this,`startTextTrackInterval`,()=>{this.timers.setInterval(()=>{if(!this.textTracks.language)return;let e=this.textTracks.getActiveCues(this.currentTime/1e3);this.videoPlayer.setActiveCues(e,{width:this.videoPlayer.element().clientWidth,height:this.videoPlayer.element().clientHeight})},100)}),m(this,`flushBuffers`,()=>{this.audioPlayer.flushBuffer()}),m(this,`onTargetBufferTime`,e=>{this.audioPlayer.bufferTime=e}),m(this,`activateAudioPlayer`,()=>(this.isDisconnected&&(this.isDisconnected=!1,this.audioPlayer.useDefaultDestination()),this._isPaused=!1,this.unmuter.unmute(),this.audioPlayer.play())),m(this,`onDecodedFrame`,e=>{try{this.audioPlayer.onDecodedFrame(e)}catch(e){e instanceof Error&&this.emitter.emit(`error`,ji(!1,e))}this.isVideoRenderingEnabled&&this.videoPlayer.onDecodedFrame(e)}),this.logger=t,this.emitter=e,this.pool=n,this.emitter.on(`target buffer time`,this.onTargetBufferTime),this.audioPlayer=cS.create(this.logger.createContext(`AudioPlayerModule`),r,{muted:i,reInitWhenStuck:!0,bufferTime:s}),a!==void 0&&(this.audioPlayer.volume=a),this.audioPlayer.on(`stuck`,()=>{this.isDisconnected=!0}),this.audioPlayer.on(`state change`,this.emitVolumeState),this.videoPlayer=uS.create(this.logger.createContext(`VideoPlayerModule`),this.audioPlayer,this.pool,void 0,o)}get volume(){return this.audioPlayer.volume}set volume(e){this.audioPlayer.volume=e,this.emitVolumeState()}get muted(){return this.audioPlayer.muted}get userMuted(){return this.audioPlayer.userMuted}set muted(e){let t=this.muted;this.audioPlayer.muted=e,this.emitVolumeState(),!e&&t&&this.activateAudioPlayer().catch(C)}get currentTime(){return this.audioPlayer.currentTime}set currentTime(e){this.audioPlayer.currentTime=e}get isActivated(){return this.audioPlayer.isActivated}set isActivated(e){this.audioPlayer.isActivated=e}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`)}};hS=gS,m(gS,`create`,(e,t,n,r,i,a,o,s)=>new hS(e,t,n,r,i,a,o,s)),h(),z();var _S,vS=[`play`,`pause`,`stop`],yS,bS=new Set,xS=class e{constructor(t,n,r){m(this,`emitter`,void 0),m(this,`logger`,void 0),m(this,`options`,void 0),m(this,`isLoaded`,!1),m(this,`playbackState`,void 0),m(this,`pageMetadata`,null),m(this,`load`,()=>{this.isLoaded||!e.isSupported()||(this.isLoaded=!0,bS.add(this),this.emitter.on(`playback state`,this.onPlaybackState),this.emitter.on(`volume state`,this.update))}),m(this,`unload`,()=>{var e;this.isLoaded&&(this.isLoaded=!1,bS.delete(this),this.emitter.off(`playback state`,this.onPlaybackState),this.emitter.off(`volume state`,this.update),this.handOverOwnership(`on unload`),(e=this.options.decoy)==null||e.unload())}),m(this,`stop`,()=>{var e;this.playbackState=void 0,(e=this.options.decoy)==null||e.unload(),yS===this&&this.handOverOwnership(`on stop`)}),m(this,`getStatistics`,()=>{var t;return{mediaSessionSupported:e.isSupported(),mediaSessionOwner:yS===this,mediaSessionPlaybackState:yS===this?this.isPaused?`paused`:`playing`:`none`,decoyState:(t=this.options.decoy)==null?void 0:t.getStatistics().decoyState}}),m(this,`onPlaybackState`,e=>{this.playbackState=e,this.update()}),m(this,`refresh`,()=>{this.update()}),m(this,`update`,()=>{if(this.isLoaded){if(this.isEligibleToOwn&&yS!==this){this.claimOwnership();return}this.sync()}}),m(this,`handOverOwnership`,e=>{if(yS===this){this.logger.debug(`Handing over the media session ${e}`),this.releaseOwnership();for(let e of bS)if(e!==this&&e.isEligibleToOwn){e.claimOwnership();return}}}),m(this,`sync`,()=>{var e,t,n,r,i,a;if(yS!==this)return;if((e=(t=this.options).isSuppressed)!=null&&e.call(t)){var o;(o=this.options.decoy)==null||o.unload(),this.handOverOwnership(`as suppressed`);return}if(this.options.isMuted()&&this.options.pauseMeansMute!==!0){if(this.options.keepDecoyWhenMuted){var s;(s=this.options.decoy)==null||s.pause()}else{var c;(c=this.options.decoy)==null||c.unload()}this.handOverOwnership(`as muted`);return}if(this.isPaused&&(n=(r=this.options).releaseOnHiddenPause)!=null&&n.call(r)&&(i=(a=this.options).isHidden)!=null&&i.call(a)){var l;(l=this.options.decoy)==null||l.unload(),this.handOverOwnership(`as a hidden pause`);return}let u=this.isPaused?`paused`:`playing`;if(navigator.mediaSession.playbackState=u,u===`paused`){if(!this.options.holdDecoyWhilePaused){var d;(d=this.options.decoy)==null||d.pause()}}else{var f;(f=this.options.decoy)==null||f.play()}}),m(this,`claimOwnership`,()=>{yS==null||yS.releaseOwnership(),yS=this,this.pageMetadata=navigator.mediaSession.metadata,this.applyMetadata();for(let e of vS)this.safely(e,()=>navigator.mediaSession.setActionHandler(e,this.onAction[e]));this.safely(`position state`,()=>{var e,t;return(e=(t=navigator.mediaSession).setPositionState)==null?void 0:e.call(t,{duration:1/0,playbackRate:1,position:0})}),this.sync()}),m(this,`applyMetadata`,()=>{let e=this.options.metadata;e&&this.safely(`metadata`,()=>{navigator.mediaSession.metadata=new MediaMetadata(R({},e))})}),m(this,`releaseOwnership`,()=>{var e;if(yS===this){yS=void 0,(e=this.options.decoy)==null||e.pause();for(let e of vS)this.safely(e,()=>navigator.mediaSession.setActionHandler(e,null));this.options.metadata&&this.safely(`metadata restore`,()=>{navigator.mediaSession.metadata=this.pageMetadata}),this.safely(`release`,()=>{navigator.mediaSession.playbackState=`none`}),this.pageMetadata=null}}),m(this,`safely`,(e,t)=>{try{t()}catch(t){this.logger.debug(`Media session ${e} failed`,{error:t})}}),m(this,`onAction`,{play:()=>{this.emitter.emit(`media session: request play`)},pause:()=>{this.emitter.emit(`media session: request pause`)},stop:()=>{this.emitter.emit(`media session: request stop`)}}),this.emitter=t,this.logger=n,this.options=r}get isPaused(){var e,t;return this.playbackState===`paused`||((e=(t=this.options).isSinkPaused)==null?void 0:e.call(t))===!0||this.options.pauseMeansMute===!0&&this.options.isMuted()}get isEligibleToOwn(){var e,t;return this.playbackState!==void 0&&!this.isPaused&&!this.options.isMuted()&&((e=(t=this.options).isSuppressed)==null?void 0:e.call(t))!==!0}};_S=xS,m(xS,`create`,(e,t,n)=>new _S(e,t,n)),m(xS,`isSupported`,()=>typeof navigator<`u`&&`mediaSession`in navigator&&typeof MediaMetadata<`u`),U(),h(),z();var SS,CS=class{constructor(e,t,n,r,{muted:i,volume:a,type:o,poster:s,offscreenCanvas:c,bufferTime:l,backgroundPlaybackEnabled:u,splitAudio:d}){if(m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`mediaElement`,void 0),m(this,`sound`,void 0),m(this,`wantsPlay`,void 0),m(this,`audioPlayer`,void 0),m(this,`videoPlayer`,void 0),m(this,`pool`,void 0),m(this,`isDisconnected`,!0),m(this,`_userProvidedMuted`,!1),m(this,`timers`,new sr),m(this,`offscreenCanvas`,void 0),m(this,`videoTrack`,void 0),m(this,`canvasCaptureTracks`,[]),m(this,`backgroundPlaybackEnabled`,void 0),m(this,`nativeTracksByLanguage`,new Map),m(this,`nativeCuesByLanguage`,new Map),m(this,`lastCanvasCueTexts`,[]),m(this,`isIOSNativeFullscreen`,!1),m(this,`knownNativeLanguage`,void 0),m(this,`renderCanvasSubtitlesInNativeFullscreen`,(()=>{let e=dt().platform;return e.isIOS&&e.iosVersion<=16})()),m(this,`volumeState`,void 0),m(this,`textTracks`,new fS),m(this,`reset`,()=>{}),m(this,`load`,()=>{this.mediaElement.load(),this.sound&&(this.sound.load(),document.body.appendChild(this.sound.element),this.mediaElement.element.addEventListener(`pause`,this.onVideoPause),this.mediaElement.element.addEventListener(`play`,this.onVideoPlay),window.addEventListener(`focus`,this.onWindowFocus)),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.textTracks.addEventListener(`change`,this.onNativeTextTrackChange),this.element().element.addEventListener(`webkitendfullscreen`,this.onExitIOSHack),this.element().element.addEventListener(`webkitbeginfullscreen`,this.onEnterIOSHack),this.videoPlayer.load(),this.timers.setInterval(this.syncNativeTextTracks,100)}),m(this,`unload`,()=>{this.emitter.off(`target buffer time`,this.onTargetBufferTime),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.textTracks.removeEventListener(`change`,this.onNativeTextTrackChange),this.element().element.removeEventListener(`webkitendfullscreen`,this.onExitIOSHack),this.element().element.removeEventListener(`webkitbeginfullscreen`,this.onEnterIOSHack);for(let e of this.nativeTracksByLanguage.keys())this.clearNativeCues(e);this.nativeTracksByLanguage.clear(),this.nativeCuesByLanguage.clear(),this.sound&&(this.mediaElement.element.removeEventListener(`pause`,this.onVideoPause),this.mediaElement.element.removeEventListener(`play`,this.onVideoPlay),window.removeEventListener(`focus`,this.onWindowFocus),this.sound.pause(),this.sound.element.srcObject=null,this.sound.unload(),this.sound.element.remove()),this.mediaElement.unload(),this.timers.unload(),this.audioPlayer.unload(),this.videoPlayer.unload()}),m(this,`suspend`,()=>{this.videoPlayer.suspend(),this.audioPlayer.suspend()}),m(this,`unsuspend`,()=>{this.videoPlayer.unsuspend(),this.audioPlayer.unsuspend()}),m(this,`element`,()=>this.mediaElement),m(this,`elements`,()=>this.sound?[this.mediaElement,this.sound]:[this.mediaElement]),m(this,`getStatistics`,()=>R(R({},this.videoPlayer.getStatistics()),{},{audioContextState:this.audioPlayer.contextState})),m(this,`activateAudioPlayer`,()=>(this.isDisconnected&&this.connectStreams(),this.audioPlayer.play())),m(this,`flushBuffers`,()=>{this.audioPlayer.flushBuffer()}),m(this,`onTargetBufferTime`,e=>{this.audioPlayer.bufferTime=e}),m(this,`resetCanvasSize`,()=>{this.videoPlayer.resetSize()}),m(this,`onVideoPause`,()=>{this.mediaElement.element.paused&&(this.emitPlaybackState(),this.wantsPlay&&this.timers.setTimeout(this.isIOSNativeFullscreen?this.reportFullscreenPause:this.restartVideoIfWanted,400))}),m(this,`onVideoPlay`,()=>{if(!this.mediaElement.element.paused){if(!this.wantsPlay){this.isIOSNativeFullscreen?this.emitter.emit(`native control`,`play`):this.mediaElement.pause();return}this.emitPlaybackState()}}),m(this,`onEnterIOSHack`,()=>{this.isIOSNativeFullscreen=!0,this.mediaElement._iosHackEnterPiPMode()}),m(this,`onExitIOSHack`,()=>{this.isIOSNativeFullscreen=!1,this.clearCanvasCues(),this.mediaElement._iosHackExitPiPMode(),this.sound&&this.restartVideoIfWanted()}),m(this,`reportFullscreenPause`,()=>{!this.isIOSNativeFullscreen||!this.wantsPlay||!this.mediaElement.element.paused||(Ot(this.mediaElement.element)===`picture-in-picture`||document.hasFocus()?this.emitter.emit(`native control`,`pause`):this.emitter.emit(`fullscreen app switch`))}),m(this,`onWindowFocus`,()=>{this.isIOSNativeFullscreen&&this.wantsPlay&&this.mediaElement.element.paused&&this.mediaElement.tryPlay()}),m(this,`lastPlaybackState`,void 0),m(this,`emitPlaybackState`,()=>{let e=this.isPaused?`paused`:`playing`;e!==this.lastPlaybackState&&(this.lastPlaybackState=e,this.emitter.emit(`media element state`,e))}),m(this,`restartVideoIfWanted`,()=>{this.wantsPlay&&this.mediaElement.element.paused&&!this.isIOSNativeFullscreen&&document.visibilityState===`visible`&&this.mediaElement.tryPlay()}),m(this,`onDecodedFrame`,e=>{try{this.audioPlayer.onDecodedFrame(e)}catch(e){e instanceof Error&&this.emitter.emit(`error`,ji(!1,e))}this.offscreenCanvas||this.videoPlayer.onDecodedFrame(e)}),m(this,`onVideoPlayerError`,e=>{if(e instanceof W){this.emitter.emit(`error`,e);return}this.emitter.emit(`error`,ki(!1,e,`video`))}),m(this,`connectStreams`,()=>{let e=this.offscreenCanvas||this.videoPlayer.element();this.logger.info(`Connecting streams using ${this.offscreenCanvas?`OffscreenCanvas`:`VideoPlayer`} canvas (${e.width}x${e.height})`);let t=this.videoTrack?[this.videoTrack]:e.captureStream().getTracks(),n=this.canvasCaptureTracks;this.canvasCaptureTracks=this.videoTrack?[]:t;let r=this.audioPlayer.useMediaStreamDestination().stream,i=this.sound?t:[...t,...r.getTracks()];this.logger.info(`Video tracks: ${t.length} (${this.videoTrack?`worker track`:`canvas capture`}), Audio tracks: ${r.getTracks().length}`);for(let e of n)e.stop();this.mediaElement.element.srcObject=new MediaStream(i),this.sound&&this.sound.element.srcObject!==r&&(this.sound.element.srcObject=r),this.isDisconnected=!1}),m(this,`setVideoTrack`,e=>{this.videoTrack!==e&&(this.videoTrack=e,this.reconnectCanvasStream())}),m(this,`setOffscreenCanvas`,e=>{this.offscreenCanvas!==e&&(this.offscreenCanvas=e,this.reconnectCanvasStream())}),m(this,`setBackgroundPlaybackEnabled`,e=>{this.backgroundPlaybackEnabled!==e&&(this.backgroundPlaybackEnabled=e,this.applyVisibilityMutePolicy())}),m(this,`reconnectCanvasStream`,()=>{if(!this.isDisconnected){let e=!this.mediaElement.element.paused;this.logger.info(`Reconnecting canvas stream after renderer change`,{wasPlaying:e}),this.connectStreams(),e&&this.mediaElement.tryPlay()}}),m(this,`ensureNativeTrack`,e=>{let t=this.nativeTracksByLanguage.get(e.language);if(t)return t;let n=this.mediaElement.element.addTextTrack(e.kind,e.label,e.language);return this.nativeTracksByLanguage.set(e.language,n),this.nativeCuesByLanguage.set(e.language,[]),n}),m(this,`getSelectedNativeTextTrack`,()=>{let e=this.mediaElement.element.textTracks;for(let t=0;t<e.length;t++){let n=e[t];if((n==null?void 0:n.mode)===`showing`)return n}}),m(this,`onNativeTextTrackChange`,()=>{let e=this.getSelectedNativeTextTrack();if((e==null?void 0:e.language)===this.knownNativeLanguage)return;if(this.knownNativeLanguage=e==null?void 0:e.language,!e){this.emitter.emit(`native text track selected`,void 0);return}let t=this.textTracks.tracks.find(t=>t.language===e.language);t&&this.emitter.emit(`native text track selected`,t.label)}),m(this,`clearNativeCues`,e=>{let t=this.nativeTracksByLanguage.get(e),n=this.nativeCuesByLanguage.get(e);if(!(!t||!n||n.length===0)){for(let e of n)try{t.removeCue(e)}catch(e){}this.nativeCuesByLanguage.set(e,[])}}),m(this,`setNativeCues`,(e,t)=>{let n=this.nativeTracksByLanguage.get(e),r=this.nativeCuesByLanguage.get(e);if(!n||!r||Qt(t.map(e=>e.text),r.map(e=>e.text)))return;this.clearNativeCues(e);let i=[];for(let e of t){let t=new VTTCue(0,2**53-1,e.text);n.addCue(t),i.push(t)}this.nativeCuesByLanguage.set(e,i)}),m(this,`shouldRenderCanvasCues`,()=>this.canvasCuesEnabled&&this.isIOSNativeFullscreen),m(this,`setCanvasCues`,(e,t=!1)=>{let n=e.map(e=>e.text);!t&&Qt(n,this.lastCanvasCueTexts)||(this.lastCanvasCueTexts=n,this.videoPlayer.setActiveCues(e,{width:this.mediaElement.element.clientWidth,height:this.mediaElement.element.clientHeight}))}),m(this,`clearCanvasCues`,()=>{this.canvasCuesEnabled&&this.setCanvasCues([],!0)}),m(this,`syncNativeTextTracks`,()=>{var e;for(let e of this.textTracks.tracks)this.ensureNativeTrack(e);let t=this.textTracks.activeTrack,n=t?this.textTracks.getActiveCues(this.currentTime/1e3):[];this.shouldRenderCanvasCues()&&this.setCanvasCues(n);for(let[e,r]of this.nativeTracksByLanguage)e===(t==null?void 0:t.language)?(r.mode!==`showing`&&(r.mode=`showing`),this.setNativeCues(e,n)):(r.mode!==`disabled`&&(r.mode=`disabled`),this.clearNativeCues(e));this.knownNativeLanguage=(e=this.getSelectedNativeTextTrack())==null?void 0:e.language}),m(this,`updateVolumeState`,()=>{let e={isMuted:this.userMuted,volume:this.volume};Qt(e,this.volumeState)||(this.volumeState=e,this.emitter.emit(`volume state`,this.volumeState))}),m(this,`applyVisibilityMutePolicy`,()=>{if(!this.audioPlayer.isContextRunning)return;let e=document.visibilityState===`hidden`;this.soundElement.muted=this._userProvidedMuted||e&&!this.backgroundPlaybackEnabled}),this.logger=t,this.emitter=e,this.pool=n,this._userProvidedMuted=i,this.offscreenCanvas=c,this.backgroundPlaybackEnabled=u==null?!1:u,this.emitter.on(`target buffer time`,this.onTargetBufferTime),this.mediaElement=new eu({poster:s,type:o,muted:d?!0:i,volume:a,autoplay:!1,logger:this.logger.createContext(`MediaElement`)}),d&&(this.sound=new eu({type:`audio`,muted:i,volume:a,autoplay:!1,logger:this.logger.createContext(`SoundElement`)}),this.sound.element.style.display=`none`,this.sound.element.setAttribute(`aria-hidden`,`true`)),this.soundElement.on(`volume state`,e=>{this.updateVolumeState(),!e.isMuted&&!this.audioPlayer.isContextRunning&&this.activateAudioPlayer().catch(C),e.isMuted||(this._userProvidedMuted=!1)}),this.soundElement.on(`media element state`,e=>{e===`paused`&&this.audioPlayer.flushBuffer(),this.audioPlayer.sinkPaused=e===`paused`,this.emitPlaybackState()}),this.sound)for(let e of this.elements())e.on(`needs user input`,e=>this.emitter.emit(`needs user input`,e)),e.on(`error`,e=>this.emitter.emit(`error`,e));this.audioPlayer=cS.create(this.logger.createContext(`AudioPlayerModule`),r,{muted:!1,reInitWhenStuck:!1,bufferTime:l}),this.audioPlayer.on(`state change`,e=>{e===`suspended`||e===`interrupted`?this.soundElement.muted=!0:e===`running`&&this.applyVisibilityMutePolicy(),this.updateVolumeState()}),this.videoPlayer=uS.create(this.logger.createContext(`VideoPlayerModule`),this.audioPlayer,this.pool,this.mediaElement.element,()=>this.reconnectCanvasStream(),this.onVideoPlayerError)}get volume(){return this.soundElement.volume}set volume(e){this.soundElement.volume=e}get muted(){return this.soundElement.muted||this.audioPlayer.muted}get userMuted(){return this.audioPlayer.isContextRunning?this.soundElement.muted:this._userProvidedMuted}set muted(e){let t=this.muted;this._userProvidedMuted=e,this.soundElement.muted=e,!e&&t&&this.activateAudioPlayer().catch(C)}get currentTime(){return this.audioPlayer.currentTime}set currentTime(e){this.audioPlayer.currentTime=e}get isActivated(){return this.mediaElement.isActivated}set isActivated(e){this.mediaElement.isActivated=e}get seekTime(){return this.mediaElement.seekTime}get totalSeekTime(){return this.mediaElement.totalSeekTime}get isPaused(){return this.sound?this.wantsPlay===!1||this.sound.isPaused&&this.mediaElement.element.paused:this.mediaElement.isPaused}get isPlayingAsRequested(){let e=this.soundElement.element;return!this.wantsPlay||!e.paused&&e.muted===this._userProvidedMuted}get isSeeking(){return this.mediaElement.isSeeking}get audioNode(){return this.audioPlayer.audioNode}play(){var e;this.wantsPlay=!0;let t=this._userProvidedMuted;return this.activateAudioPlayer().catch(()=>{t||this.emitter.emit(`needs user input`,{forAudio:!0,forVideo:!1})}),(e=this.sound)==null||e.play(),this.mediaElement.play()}pause(){var e;this.wantsPlay=!1,(e=this.sound)==null||e.pause(),this.mediaElement.pause()}get soundElement(){var e;return(e=this.sound)==null?this.mediaElement:e}get canvasCuesEnabled(){return this.renderCanvasSubtitlesInNativeFullscreen&&!this.offscreenCanvas}};SS=CS,m(CS,`create`,(e,t,n,r,i)=>new SS(e,t,n,r,i)),U(),h(),z(),F();var wS,TS=class{constructor(){m(this,`initSegments`,new Map),m(this,`set`,(e,t,n)=>{var r;let i=(r=this.initSegments.get(e))==null?new Map:r;i.set(t,n),this.initSegments.set(e,i)}),m(this,`get`,(e,t)=>{var n;return(n=this.initSegments.get(e))==null?void 0:n.get(t)})}};function ES(e,{mediaSource:t,mimeType:n,codec:r}){return R(R({},e),{},{state:`initialized`,mimeType:n,sourceBufferMimeType:n,codec:r,sourceBuffer:t.addSourceBuffer(n),isWorkingOnPendingSamples:!1,sequenceNumber:0,lastBufferCleanupTime:performance.now()})}function DS({initSegments:e,pendingSamples:t}){return{state:`uninitialized`,initSegments:e==null?new TS:e,sequenceNumber:0,isWorkingOnPendingSamples:!1,hasFirstSync:t.some(e=>e.isSync),pendingSamples:t==null?[]:t,pendingSamplesOffset:0,consecutiveQuotaExceededErrorCount:0,successfulAppendCalls:0}}var OS=class{constructor(e,t,n){var r=this;m(this,`maxChunkSize`,20),m(this,`minConsecutiveErrorsBeforeEmit`,5),m(this,`maxSecondsInBuffer`,60),m(this,`logger`,void 0),m(this,`timers`,sr.create()),m(this,`emitter`,void 0),m(this,`mediaElement`,void 0),m(this,`mediaSource`,new Rl),m(this,`trackContexts`,new Map),m(this,`autoRecoverFromMediaErrors`,!0),m(this,`quotaErrorCount`,0),m(this,`recoveredFromErrorCount`,0),m(this,`sourceOpenStartTime`,performance.now()),m(this,`sourceOpenEndTime`,performance.now()),m(this,`pendingTracksToAddSourceBuffers`,void 0),m(this,`hasAddedInitialPosterFrame`,!0),m(this,`videoKeyframeTimestamps`,[]),m(this,`isReopening`,!1),m(this,`pendingMediaError`,void 0),m(this,`isFlushDeferred`,!1),m(this,`hasRecoveredSinceShown`,!1),m(this,`playbackStallCount`,0),m(this,`hasStartedPlayback`,!1),m(this,`isPlaybackStalled`,!1),m(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),this.emitter.on(`page active`,this.onPageActive)}),m(this,`unload`,()=>{this.logger.debug(`Unloading module...`),this.pendingMediaError=void 0,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.emitter.off(`page active`,this.onPageActive),this.mediaSource.off(`source ended`,this.onSourceEnded),this.mediaSource.off(`source open`,this.onSourceOpen),this.mediaElement.removeEventListener(`error`,this.onMediaElementError),this.mediaElement.removeEventListener(`waiting`,this.onPlaybackStall),this.mediaElement.removeEventListener(`stalled`,this.onPlaybackStall),this.mediaElement.removeEventListener(`playing`,this.onPlaybackProgress),this.mediaElement.removeEventListener(`pause`,this.onPlaybackPauseOrSeek),this.mediaElement.removeEventListener(`play`,this.onPlay),this.mediaElement.removeEventListener(`seeking`,this.onPlaybackPauseOrSeek),this.mediaSource.detach(this.mediaElement),this.trackContexts.forEach(e=>{e.state===`initialized`&&e.sourceBuffer.dispose(),e.pendingSamples=[],e.pendingSamplesOffset=0}),this.videoKeyframeTimestamps=[],this.timers.unload(),this.logger.debug(`Unloaded module`)}),m(this,`getStatistics`,()=>{var e,t;let n={quotaErrorCount:this.quotaErrorCount,mediaSourceOpenTime:this.sourceOpenEndTime-this.sourceOpenStartTime,playbackStallCount:this.playbackStallCount,successfulAudioAppendsCalls:(e=this.trackContexts.get(`audio`))==null?void 0:e.successfulAppendCalls,successfulVideoAppendCalls:(t=this.trackContexts.get(`video`))==null?void 0:t.successfulAppendCalls,videoKeyframeIntervalMs:Bt(this.videoKeyframeTimestamps),videoRenderer:`MSE`,videoDecoder:`MSE`,audioRenderer:`MSE`,audioDecoder:`MSE`};if(this.mediaElement instanceof HTMLVideoElement){var r,i;let e=(r=(i=this.mediaElement).getVideoPlaybackQuality)==null?void 0:r.call(i);n.totalVideoFrames=e==null?void 0:e.totalVideoFrames,n.droppedVideoFrames=e==null?void 0:e.droppedVideoFrames}return n}),m(this,`flushBuffers`,()=>{if(document.visibilityState!==`visible`&&this.mediaElement.paused&&this.hasStartedPlayback){this.logger.info(`Deferring the buffer flush until the page is visible or playback resumes`),this.isFlushDeferred=!0;return}this.isFlushDeferred=!1,this.videoKeyframeTimestamps=[];let e=[];this.trackContexts.forEach(t=>{t.pendingSamples=[],t.pendingSamplesOffset=0,t.hasFirstSync=!1,t.state!==`uninitialized`&&this.mediaSource.isOpen()&&e.push(t.sourceBuffer.removeBuffer(0,1/0).catch(e=>{if(!(e instanceof Il))throw e}))}),Promise.all(e).then(()=>this.emitter.emit(`buffers flushed`)).catch(e=>this.logger.error(`Failed to remove buffer`,e))}),m(this,`setTrackContexts`,(e=new Map)=>{this.logger.debug(`setTrackContexts`),[`audio`,`video`].forEach(t=>{var n,r,i;let a=e.get(t),o=(n=a==null?void 0:a.pendingSamples)==null?[]:n,s=a==null?void 0:a.initSegments,c=(r=a==null?void 0:a.pendingSamplesOffset)==null?0:r;for(;c<o.length&&!((i=o[c])!=null&&i.isSync);)c++;let l=DS({pendingSamples:o,initSegments:s});l.pendingSamplesOffset=c,this.trackContexts.set(t,l)})}),m(this,`resetRemovedTrackContexts`,e=>{let t=new Set(e.map(e=>e.type));this.trackContexts.forEach((e,n)=>{if(t.has(n))return;e.state===`initialized`&&this.mediaSource.isOpen()&&this.mediaSource.removeSourceBuffer(e.sourceBuffer);let r=DS({pendingSamples:[],initSegments:e.initSegments});this.trackContexts.set(n,r)})}),m(this,`isCurrentTrackContext`,(e,t)=>this.trackContexts.get(e)===t),m(this,`initializeSourceBuffer`,(e,t)=>{let n=ES(e,{mimeType:t.mimeType,mediaSource:this.mediaSource,codec:t.codec});n.sourceBuffer.setErrorCallback(this.onSourceBufferError(t.type)),this.trackContexts.set(t.type,n)}),m(this,`setSourceBuffers`,function(){var e=P(function*(e){if(!r.mediaSource.isOpen()){r.pendingTracksToAddSourceBuffers=e;return}r.resetRemovedTrackContexts(e);let t=!0;for(let n of e){let e=r.trackContexts.get(n.type);if(!e||e.state===`uninitialized`||e.sourceBufferMimeType!==n.mimeType){t=!1;break}}if(t){r.logger.debug(`Already setup with the correct mime types`);return}for(let t of e){let n=r.trackContexts.get(t.type);if(n||(n=DS({pendingSamples:[],initSegments:new TS}),r.trackContexts.set(t.type,n)),n.state===`initialized`){if(t.mimeType!==n.sourceBufferMimeType)try{yield n.sourceBuffer.changeType(t.mimeType),n.sourceBufferMimeType=t.mimeType}catch(i){if(i instanceof Il)throw r.logger.debug(`Abandoning source buffer setup for a disposed buffer`,{type:t.type}),i;r.logger.warn(`changeType failed, recreating source buffer`,{from:n.sourceBufferMimeType,to:t.mimeType,error:i});try{r.mediaSource.removeSourceBuffer(n.sourceBuffer)}catch(t){r.logger.warn(`removeSourceBuffer failed`,{removeError:t}),r.reopenMediaSource(`changeType recovery failed`),r.pendingTracksToAddSourceBuffers=e;return}let a=DS({pendingSamples:n.pendingSamples,initSegments:n.initSegments});a.pendingSamplesOffset=n.pendingSamplesOffset,r.initializeSourceBuffer(a,t)}}else r.initializeSourceBuffer(n,t)}});return function(t){return e.apply(this,arguments)}}()),m(this,`getBuffer`,e=>{if(this.mediaSource.isClosed())return[];let t=this.trackContexts.get(e);return!t||t.state===`uninitialized`?[]:this.getBufferedRanges(t.sourceBuffer)}),m(this,`getBufferState`,e=>{let t=this.getCommonBufferedRangesForCurrentTracks();if(t)return{buffered:t,playbackState:this.getPlaybackStateForBufferedRanges(e,t)}}),m(this,`getNextBufferedRangeStart`,e=>{let t=this.getCommonBufferedRangesForCurrentTracks();if(t)return kS(e,t)}),m(this,`getVideoKeyframeTimestamps`,()=>this.videoKeyframeTimestamps),m(this,`init`,({initSegment:e,mimeType:t})=>{this.logger.debug(`Added init segment`,{channel:e.channelId,renditionId:e.renditionId});let n=this.trackContexts.get(e.type);if(!n)throw Pi(e.type,e.renditionId);n.state===`initialized`&&(n.mimeType=t);let r=pl({codec:e.codec,timescale:e.timescale,initData:e.data,codecString:e.codecString,width:e.width,height:e.height});r&&n.initSegments.set(e.channelId,e.renditionId,new Uint8Array(r))}),m(this,`append`,function(){var e=P(function*(e,t){let n=e[0];if(!n)return;let i=r.trackContexts.get(n.type),a=i==null?void 0:i.initSegments.get(n.channelId,n.renditionId);if(r.mediaSource.isClosed())return;if(!a)throw Mi(n.renditionId,n.channelId);if(!i)throw Pi(n.type,n.renditionId);if(i.state===`uninitialized`)throw Fi(n.type,n.renditionId);if(t){var o;let e=(n.timestamp+((o=n.compositionTimeOffset)==null?0:o))/n.timescale;if(yield i.sourceBuffer.removeBuffer(e,1/0),i.mimeType!==i.sourceBufferMimeType&&i.sourceBuffer.changeType)try{yield i.sourceBuffer.changeType(i.mimeType),i.sourceBufferMimeType=i.mimeType}catch(e){if(e instanceof Il)throw e;r.logger.warn(`changeType failed`,{from:i.sourceBufferMimeType,to:i.mimeType,error:e})}`fragmented`in n||(yield i.sourceBuffer.appendBuffer(a))}let s=Math.max(0,n.timestamp/n.timescale-r.maxSecondsInBuffer);s>0&&performance.now()-i.lastBufferCleanupTime>1e4&&(i.lastBufferCleanupTime=performance.now(),yield i.sourceBuffer.removeBuffer(0,s+10));try{let t=i.sequenceNumber;if(`fragmented`in n)for(let t of e)`initData`in t&&(yield i.sourceBuffer.appendBuffer(t.data,t.initData));else{let n=bl(e,t++);yield i.sourceBuffer.appendBuffer(n)}i.sequenceNumber=t,i.consecutiveQuotaExceededErrorCount=0,i.successfulAppendCalls++}catch(e){throw e instanceof DOMException&&e.code===DOMException.QUOTA_EXCEEDED_ERR&&(r.quotaErrorCount++,i.consecutiveQuotaExceededErrorCount++,r.logger.error(`quota exceeded error`,{error:e})),e}});return function(t,n){return e.apply(this,arguments)}}()),m(this,`onFragment`,({fragment:e,mimeType:t,codec:n,channelId:r,renditionId:i})=>{let a=e.mediaType(),o=e.rawBytes(),s=e.header().rawBytes(),c=e.baseMediaDecodeTime(),l=e.timescale(),u=e.duration(),d=a===`video`?e.startsWithKeyframe():!0,f=e.compositionTimeOffset(0);if(a===`text`){this.logger.warn(`Skipping unexpected text fragment`);return}if(!n){this.logger.warn(`Skipping fragment with no codec`);return}let p=this.trackContexts.get(a);if(!p)throw Pi(a);p.state===`initialized`&&t&&(p.mimeType=t,p.initSegments.set(r,i,s));let m={fragmented:!0,type:a,data:o,initData:s,timestamp:c,duration:u,timescale:l,channelId:r,renditionId:i,isSync:d,codec:n,fragment:e,compositionTimeOffset:f};this.onCodedSample(m)}),m(this,`onCodedSample`,e=>{if(e.duration===0)return;let t=this.trackContexts.get(e.type);if(!t)throw Pi(e.type,e.renditionId);if(!(!t.hasFirstSync&&!e.isSync)){if(this.hasAddedInitialPosterFrame&&e.isSync&&e.type===`video`){this.hasAddedInitialPosterFrame=!1;let n=R({},e);`fragment`in n?(n.fragment=n.fragment.clone(),n.fragment.updateBaseMediaDecodeTime(0),n.data=n.fragment.rawBytes()):n.timestamp=0,t.pendingSamples.push(n)}if(t.hasFirstSync=!0,t.pendingSamples.push(e),e.type===`video`&&e.isSync){var n;let t=(e.timestamp+((n=e.compositionTimeOffset)==null?0:n))/e.timescale*1e3,r=this.videoKeyframeTimestamps[this.videoKeyframeTimestamps.length-1];r!==void 0&&t<r&&(this.videoKeyframeTimestamps=[]),this.videoKeyframeTimestamps.push(t),this.videoKeyframeTimestamps.length>20&&(this.videoKeyframeTimestamps=this.videoKeyframeTimestamps.slice(-20))}t.state!==`uninitialized`&&(t.isWorkingOnPendingSamples||PS(t,this.append,this.maxChunkSize).catch(n=>{if(t.isWorkingOnPendingSamples=!1,!this.isReopening){if(!this.isCurrentTrackContext(e.type,t)){this.logger.debug(`Suppressing append error from stale track context`,{type:e.type});return}if(n instanceof Il){this.logger.debug(`Suppressing append error from a disposed source buffer`,{type:e.type});return}if(n instanceof Error){if(this.mediaElement.error){this.onMediaElementError();return}if(this.logger.error(`append failed`,{message:n.message,name:n.name}),n instanceof DOMException&&n.code===DOMException.QUOTA_EXCEEDED_ERR){if(t.consecutiveQuotaExceededErrorCount>=this.minConsecutiveErrorsBeforeEmit){let r=Ni(!1,n,t.consecutiveQuotaExceededErrorCount,e.type);this.emitter.emit(`error`,r)}}else{let r=Ni(!1,n,t.consecutiveQuotaExceededErrorCount,e.type);this.emitter.emit(`error`,r)}}}}))}}),m(this,`onSourceBufferError`,e=>()=>{var t;this.logger.warn(`SourceBuffer error`,{trackType:e,mediaElementError:(t=this.mediaElement.error)==null?void 0:t.message})}),m(this,`onSourceOpen`,()=>{this.logger.debug(`source opened`),this.sourceOpenEndTime=performance.now(),this.isReopening=!1;let e=this.pendingTracksToAddSourceBuffers,t=this.pendingMediaError;this.pendingTracksToAddSourceBuffers=void 0,e&&this.setSourceBuffers(e).then(()=>{t&&this.pendingMediaError===t&&(this.pendingMediaError=void 0,this.hasRecoveredSinceShown=!0,this.emitter.emit(`recovered from media error`,{error:t,count:this.recoveredFromErrorCount}))}).catch(e=>{e instanceof Il||(this.logger.error(`Failed to set source buffers after source open`,e),t&&this.pendingMediaError===t&&this.onRecoveryFailed(e))})}),m(this,`reopenMediaSource`,e=>{this.logger.info(`Re-opening MediaSource`,{reason:e}),this.isReopening=!0,this.recoveredFromErrorCount++;let t=!this.mediaElement.paused,n=[];this.trackContexts.forEach((e,t)=>{e.state===`initialized`&&n.push({type:t,mimeType:e.mimeType,codec:e.codec})}),this.sourceOpenStartTime=performance.now(),this.pendingTracksToAddSourceBuffers=n,this.mediaSource.detach(this.mediaElement),this.trackContexts.forEach(e=>{e.state===`initialized`&&e.sourceBuffer.dispose()}),this.setTrackContexts(this.trackContexts),this.mediaSource.attach(this.mediaElement),t&&this.mediaElement.play().catch(C)}),m(this,`onMediaElementError`,()=>{let{error:e}=this.mediaElement;if(!e||this.isReopening)return;let t=Oi(/AUDIO_RENDERER/.test(e.message)||!this.autoRecoverFromMediaErrors,e);if(this.logger.error(`MediaElement error`,{error:t}),this.emitter.emit(`error`,t),!t.isFatal()){this.pendingMediaError=t;try{this.reopenMediaSource(`media element error recovery`)}catch(e){this.onRecoveryFailed(e)}}}),m(this,`onRecoveryFailed`,e=>{this.pendingMediaError=void 0,this.isReopening=!1,this.emitter.emit(`error`,new W(`MediaSource recovery failed`,{isFatal:!0,code:Ci,source:e instanceof Error?e:Error(String(e))}))}),m(this,`onPlay`,()=>{this.isFlushDeferred&&!this.mediaElement.paused&&this.flushBuffers()}),m(this,`onPageActive`,e=>{if(e&&(this.isFlushDeferred&&this.flushBuffers(),this.hasRecoveredSinceShown)){var t;this.hasRecoveredSinceShown=!1,((t=this.trackContexts.get(`video`))==null?void 0:t.state)===`initialized`&&(this.mediaElement.currentTime+=.05)}}),m(this,`onSourceEnded`,()=>{this.mediaElement.error&&this.onMediaElementError(),this.logger.debug(`source ended`)}),m(this,`onPlaybackProgress`,()=>{this.hasStartedPlayback=!0,this.isPlaybackStalled=!1}),m(this,`onPlaybackPauseOrSeek`,()=>{this.isPlaybackStalled=!1}),m(this,`onPlaybackStall`,e=>{!this.hasStartedPlayback||this.mediaElement.paused||this.mediaElement.seeking||this.isPlaybackStalled||(this.playbackStallCount++,this.isPlaybackStalled=!0,this.logger.info(`Detected playback stall`,{event:e.type,currentTime:this.mediaElement.currentTime*1e3,playbackStallCount:this.playbackStallCount}))}),m(this,`getBufferedRanges`,e=>{let t=[];try{let n=e.buffered();if(!n)return[];for(let e=0;e<n.length;e++)t.push({start:n.start(e)*1e3,end:n.end(e)*1e3});return t}catch(e){return[]}}),m(this,`getInitializedTrackBuffers`,()=>{let e=[];return this.trackContexts.forEach(t=>{t.state!==`uninitialized`&&e.push(this.getBufferedRanges(t.sourceBuffer))}),e}),m(this,`getCommonBufferedRangesForCurrentTracks`,()=>{if(this.mediaSource.isClosed())return;let e=this.getInitializedTrackBuffers();if(e.length!==0)return this.getCommonBufferedRanges(e)}),m(this,`getCommonBufferedRanges`,e=>e.slice(1).reduce((e,t)=>MS(e,t),e[0]?Array.from(e[0]):[])),m(this,`getPlaybackStateForBufferedRanges`,(e,t)=>mr(t,e)?`playing`:`buffering`),this.logger=e,this.mediaElement=n,this.emitter=t}};wS=OS,m(OS,`create`,(e,t,n)=>{let r=new wS(e,t,n);return r.setTrackContexts(),r.mediaSource.on(`source ended`,r.onSourceEnded),r.mediaSource.on(`source open`,r.onSourceOpen),n.addEventListener(`error`,r.onMediaElementError),n.addEventListener(`waiting`,r.onPlaybackStall),n.addEventListener(`stalled`,r.onPlaybackStall),n.addEventListener(`playing`,r.onPlaybackProgress),n.addEventListener(`pause`,r.onPlaybackPauseOrSeek),n.addEventListener(`play`,r.onPlay),n.addEventListener(`seeking`,r.onPlaybackPauseOrSeek),r.mediaSource.attach(n),r});var kS=(e,t)=>{for(let r=0;r<t.length;r++){let i=t[r];if(i){if(e<i.start)return i.start;if(i.start<=e&&e<i.end){var n;return(n=t[r+1])==null?void 0:n.start}}}},AS=(e,t)=>{var n;let r=e.renditionId!==t.renditionId,i=e.channelId!==t.channelId,a=((n=e.timestamp)==null?0:n)>t.timestamp,o=e.type===`video`&&t.type===`video`&&`levelIdc`in e&&`levelIdc`in t&&e.levelIdc!==t.levelIdc,s=!1;return e.type===`video`&&t.type===`video`&&`width`in e&&`width`in t&&(s=t.width!==e.width||t.height!==e.height),i||r||a||s||o},jS=32,MS=(e,t)=>{let n=[],r=0,i=0;for(;r<e.length&&i<t.length;){let a=e[r],o=t[i];if(!a||!o)break;let s=Math.max(a.start,o.start),c=Math.min(a.end,o.end);s<c&&n.push({start:s,end:c}),a.end<=o.end?r++:i++}return n},NS=e=>{let t=e.pendingSamplesOffset;if(t!==0){if(t>=e.pendingSamples.length){e.pendingSamples=[],e.pendingSamplesOffset=0;return}t<jS||t*2<e.pendingSamples.length||(e.pendingSamples=e.pendingSamples.slice(t),e.pendingSamplesOffset=0)}},PS=function(){var e=P(function*(e,t,n){for(e.isWorkingOnPendingSamples=!0;e.pendingSamplesOffset<e.pendingSamples.length;){let r=[],i=e.pendingSamplesOffset;for(let t=e.pendingSamplesOffset;t<e.pendingSamples.length;t++){i=t;let a=e.pendingSamples[t],o=e.pendingSamples[t+1];if(a&&(r.push(a),o)){if(AS(a,o))break;let e=(a.timestamp+a.duration)/a.timescale;if(o.timestamp/o.timescale-e>.1)break}if(t-e.pendingSamplesOffset>=n-1)break}let a=r[0];if(!a)break;yield t(r,e.previousSample?AS(e.previousSample,a):!0),e.pendingSamplesOffset=i+1,e.previousSample=r[r.length-1],NS(e)}e.isWorkingOnPendingSamples=!1});return function(t,n,r){return e.apply(this,arguments)}}();U(),h(),F();var FS,IS=class{constructor(e,t){var n=this;m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`element`,void 0),m(this,`pictureInPictureWindow`,void 0),m(this,`unload`,()=>{this.emitter.off(`add picture in picture listener`,this.onEnablePictureInPicture),this.detachElementListeners()}),m(this,`onEnablePictureInPicture`,e=>{this.detachElementListeners(),this.element=e.element,e.element.addEventListener(`leavepictureinpicture`,this.onLeavePictureInPicture),e.element.addEventListener(`enterpictureinpicture`,this.onEnterPictureInPicture),jt(e.element,!0)}),m(this,`getPictureInPictureSize`,()=>this.pictureInPictureWindow),m(this,`isPictureInPictureActive`,()=>this.isWebkitPresentationModeActive()||this.isStandardPictureInPictureActive()),m(this,`isPictureInPictureSupported`,()=>this.isWebkitPresentationModeSupported()||this.isStandardPictureInPictureSupported()),m(this,`requestPictureInPicture`,()=>(this.emitter.emit(`ios-hack: reset size`),this.isStandardPictureInPictureSupported()?this.requestStandardPictureInPicture():this.isWebkitPresentationModeSupported()?this.requestWebkitPresentationMode(`picture-in-picture`):Promise.reject(Error(`Picture in picture is not supported`)))),m(this,`exitPictureInPicture`,()=>this.isStandardPictureInPictureSupported()?this.exitStandardPictureInPicture():this.isWebkitPresentationModeSupported()?this.requestWebkitPresentationMode(`inline`):Promise.reject(Error(`Picture in picture is not supported`))),m(this,`getStatistics`,()=>({isPictureInPictureActive:this.isPictureInPictureActive()})),m(this,`detachElementListeners`,()=>{this.element&&(this.element.removeEventListener(`leavepictureinpicture`,this.onLeavePictureInPicture),this.element.removeEventListener(`enterpictureinpicture`,this.onEnterPictureInPicture),jt(this.element,!1))}),m(this,`onLeavePictureInPicture`,()=>{this.pictureInPictureWindow=void 0,this.logger.debug(`Leave picture in picture`),this.emitter.emit(`exit picture in picture`)}),m(this,`onEnterPictureInPicture`,e=>{this.pictureInPictureWindow=Dt(e),this.logger.debug(`Enter picture in picture`),this.emitter.emit(`enter picture in picture`,this)}),m(this,`requestStandardPictureInPicture`,P(function*(){if(!n.element)throw Error(`Picture in picture is not supported`);let e=St(n.element);if(!e)throw Error(`Picture in picture is not supported`);yield e()})),m(this,`exitStandardPictureInPicture`,P(function*(){let e=Ct();if(!e)throw Error(`Picture in picture is not supported`);yield e()})),m(this,`isStandardPictureInPictureSupported`,()=>!!this.element&&Et(this.element)),m(this,`isStandardPictureInPictureActive`,()=>!!this.element&&Tt()),m(this,`isWebkitPresentationModeActive`,()=>!!this.element&&Ot(this.element)===`picture-in-picture`),m(this,`requestWebkitPresentationMode`,function(){var e=P(function*(e){return n.element&&kt(n.element,e),Promise.resolve()});return function(t){return e.apply(this,arguments)}}()),m(this,`isWebkitPresentationModeSupported`,()=>!!this.element&&At(this.element)),this.emitter=e,this.logger=t,this.emitter.on(`add picture in picture listener`,this.onEnablePictureInPicture)}};FS=IS,m(IS,`create`,(e,t)=>new FS(e,t)),U(),h();var LS,RS=class{constructor(e,t,n,r){m(this,`emitter`,void 0),m(this,`logger`,void 0),m(this,`clockSource`,void 0),m(this,`state`,`buffering`),m(this,`bufferFullness`,0),m(this,`targetBufferTime`,void 0),m(this,`lastBufferStateEvent`,`drained`),m(this,`firstFrameTime`,void 0),m(this,`currentTimeIsInRange`,!1),m(this,`needsInputForAudioCount`,0),m(this,`needsInputForVideoCount`,0),m(this,`unload`,()=>{this.emitter.off(`buffer state`,this.onBufferedStateChanged),this.emitter.off(`needs user input`,this.onNeedsUserInput)}),m(this,`setTargetBufferTime`,e=>{this.targetBufferTime=e,this.emitter.emit(`target buffer time`,e)}),m(this,`getTargetBufferTime`,()=>this.targetBufferTime),m(this,`getBufferFullness`,()=>this.bufferFullness),m(this,`getLastBufferStateEvent`,()=>this.lastBufferStateEvent),m(this,`getState`,()=>this.state),m(this,`getFirstFrameTime`,()=>this.firstFrameTime),m(this,`getStatistics`,()=>({bufferTime:this.targetBufferTime,needsInputForAudioCount:this.needsInputForAudioCount,needsInputForVideoCount:this.needsInputForVideoCount})),m(this,`onBufferedStateChanged`,({buffered:e,isPaused:t,playbackState:n})=>{let r=this.clockSource.currentTime,i=mr(e,r),a=e[e.length-1],o=a?a.end-a.start>=this.targetBufferTime:!1,s=a?Math.max(0,a.end-r)/this.targetBufferTime:0,c=t?`paused`:n,l=this.state;this.currentTimeIsInRange!==i&&!i?(this.lastBufferStateEvent=`drained`,this.emitter.emit(`buffer state event`,this.lastBufferStateEvent)):i&&o&&this.lastBufferStateEvent===`drained`&&(this.lastBufferStateEvent=`filled`,this.emitter.emit(`buffer state event`,this.lastBufferStateEvent)),c===`playing`&&this.firstFrameTime===void 0&&(this.firstFrameTime=performance.now()),this.currentTimeIsInRange=i,this.state=c,this.bufferFullness=i?s:0,l!==c&&this.emitter.emit(`playback state`,c),this.emitter.emit(`buffer fullness`,this.bufferFullness)}),m(this,`onNeedsUserInput`,({forAudio:e,forVideo:t})=>{e&&this.needsInputForAudioCount++,t&&this.needsInputForVideoCount++}),this.emitter=e,this.logger=t,this.clockSource=n,this.targetBufferTime=r,this.emitter.on(`buffer state`,this.onBufferedStateChanged),this.emitter.on(`needs user input`,this.onNeedsUserInput),this.emitter.emit(`target buffer time`,r)}};LS=RS,m(RS,`create`,(e,t,n,r)=>new LS(e,t,n,r)),U(),h();var zS,BS=()=>({upgradesFromLevel:[],downgradesFromLevel:[],bufferingRanges:[],activeRanges:[],decodeRate:2**53-1}),VS=()=>({levels:{},levelDowngrades:[],levelUpgrades:[],bufferFullness:0,general:BS()}),HS=class{constructor(e,t,n){m(this,`minBufferFullnessLengthForRegression`,6),m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`timers`,sr.create()),m(this,`metrics`,VS()),m(this,`bufferFullness`,new T(30)),m(this,`bufferFullnessRegression`,void 0),m(this,`currentLevel`,void 0),m(this,`isSuspended`,!1),m(this,`_fatalQosCount`,0),m(this,`targetBufferTime`,0),m(this,`renditionLevelSource`,void 0),m(this,`qualityIndexOrder`,[]),m(this,`hasPlayedInSession`,!1),m(this,`hasAsserted`,!1),m(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),this.emitter.on(`connection state`,this.onConnectionState)}),m(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.emitter.off(`connection state`,this.onConnectionState),this.suspend()}),m(this,`suspend`,()=>{this.isSuspended=!0,this.timers.unload(),this.stopBuffering(),this.unsetActive(),this.hasPlayedInSession=!1}),m(this,`unsuspend`,()=>{this.isSuspended=!1,this.currentLevel&&this.setActive()}),m(this,`fatalQosGraceTime`,()=>1e4*(this.fatalQosCount+1)),m(this,`incrementFatalQosCount`,()=>{this._fatalQosCount++}),m(this,`getMetrics`,()=>this.metrics),m(this,`getLevelStats`,e=>{var t,n,r,i;let a=((t=(n=e.video)==null?void 0:n.bitRate)==null?0:t)+((r=(i=e.audio)==null?void 0:i.bitRate)==null?0:r);return this.metrics.levels[a]}),m(this,`getBufferFullnessRegression`,()=>this.bufferFullnessRegression),m(this,`getTargetBufferTime`,()=>this.targetBufferTime),m(this,`activeRatios`,()=>{let e=new Map,t=dr(this.metrics.general.activeRanges);if(Object.entries(this.metrics.levels).forEach(([n,r])=>{var i;let a=parseInt(n,10),o=t?dr(r.activeRanges)/t:0,s=this.getQualityIndex(a).toString();e.set(s,((i=e.get(s))==null?0:i)+o)}),!this.hasAsserted){let t=e.size?Math.abs(Array.from(e.values()).reduce((e,t)=>e+t,0)-1)<=.02:!0;t||(this.hasAsserted=!0,console.assert(t,`Active ratios should be close to 1 - actual: ${Array.from(e.values()).reduce((e,t)=>e+t,0)}`))}return e}),m(this,`bufferingRatios`,()=>{let e=new Map,t=dr(this.metrics.general.bufferingRanges);if(Object.entries(this.metrics.levels).forEach(([n,r])=>{var i;let a=parseInt(n,10),o=t?dr(r.bufferingRanges)/t:0,s=this.getQualityIndex(a).toString();e.set(s,((i=e.get(s))==null?0:i)+o)}),!this.hasAsserted){let t=Array.from(e.values()).reduce((e,t)=>e+t,0)<=1;t||(this.hasAsserted=!0,console.assert(t,`Buffering ratios should be less than 1 - actual: ${Array.from(e.values()).reduce((e,t)=>e+t,0)}`))}return e}),m(this,`bufferingEventsLast`,e=>this.metrics.general.bufferingRanges.filter(t=>t.start>=performance.now()-e).length),m(this,`timeSpentBufferingLast`,e=>fr(this.metrics.general.bufferingRanges,e)),m(this,`timeSpentActiveLast`,e=>fr(this.metrics.general.activeRanges,e)),m(this,`timeSpentPlayingInAtLeastLevelRatio`,e=>{var t,n,r,i;let a=this.timeSpentBuffering(),o=this.timeActive(),s=this.bufferingRatios(),c=this.activeRatios(),l=((t=(n=e.video)==null?void 0:n.bitRate)==null?0:t)+((r=(i=e.audio)==null?void 0:i.bitRate)==null?0:r),u=a/o;return Object.keys(this.metrics.levels).map(e=>parseInt(e,10)).filter(e=>e>=l).reduce((e,t)=>{var n,r;let i=this.getQualityIndex(t).toString();return((n=c.get(i))==null?0:n)-((r=s.get(i))==null?0:r)*u+e},0)}),m(this,`timeSpentBuffering`,()=>dr(this.metrics.general.bufferingRanges)),m(this,`timeActive`,()=>dr(this.metrics.general.activeRanges)),m(this,`getStatistics`,()=>{let e=this.timeSpentBuffering(),t=this.timeActive(),n=this.metrics.general.bufferingRanges.length,r=this.activeRatios(),i=t/6e4,a=t>0?e/t:0,o=Math.max(i,1),s=i>0?n/o:0,c=[...r].reduce((e,[t,n])=>e+parseInt(t,10)*n,0),l=6e4,u=this.timeSpentActiveLast(l),d=this.timeSpentBufferingLast(l),f=u>0?d/u:0,p=this.metrics.general.upgradesFromLevel.length+this.metrics.general.downgradesFromLevel.length,m=i>0?p/o:0,h=n>0?e/n:0;return{timeSpentBuffering:e,bufferingEventsCount:n,timeSpentRatio:[...r].reduce((e,[t,n])=>(e[t]=n,e),{}),fatalQosCount:this.fatalQosCount,bufferingRatio:a,bufferingEventsPerMinute:s,averageRenditionIndex:c,bufferingRatioPerMinute:f,renditionChangesPerMinute:m,timePerBufferingEvent:h}}),m(this,`onRenditionLevelChanged`,e=>{var t,n,r,i,a,o,s,c;let l=((t=(n=e.from)==null||(n=n.video)==null?void 0:n.bitRate)==null?0:t)+((r=(i=e.from)==null||(i=i.audio)==null?void 0:i.bitRate)==null?0:r),u=((a=(o=e.to)==null||(o=o.video)==null?void 0:o.bitRate)==null?0:a)+((s=(c=e.to)==null||(c=c.audio)==null?void 0:c.bitRate)==null?0:s);this.logger.info(`rendition level changed`,{fromLevel:l,toLevel:u}),this.metrics.general.activeRanges.length===0&&this.setActive(),e.from&&e.to&&(l<u?this.metrics.general.upgradesFromLevel.push(performance.now()):this.metrics.general.downgradesFromLevel.push(performance.now()));let d=!1;if(e.from){var f;let e=(f=this.metrics.levels[l])==null?BS():f;l<u?e.upgradesFromLevel.push(performance.now()):e.downgradesFromLevel.push(performance.now()),lr(e.activeRanges);let t=e.bufferingRanges[e.bufferingRanges.length-1];d=!!t&&!t.end,lr(e.bufferingRanges),this.metrics.levels[l]=e}if(e.to){var p;let e=(p=this.metrics.levels[u])==null?BS():p;ur(e.activeRanges),d&&ur(e.bufferingRanges),this.metrics.levels[u]=e,this.currentLevel=u}}),m(this,`onBufferFullness`,e=>{this.bufferFullness.push(e),this.metrics.bufferFullness=e,this.bufferFullness.items().length>=this.minBufferFullnessLengthForRegression&&(this.bufferFullnessRegression=this.calculateLinearRegression())}),m(this,`onPlaybackState`,e=>{switch(this.logger.info(`Playback state`,{state:e,currentLevel:this.currentLevel}),e){case`playing`:this.hasPlayedInSession=!0,this.stopBuffering();break;case`buffering`:!this.isSuspended&&this.hasPlayedInSession&&this.startBuffering();break}}),m(this,`onConnectionState`,e=>{e!==`connected`&&this.isSuspended&&(this.hasPlayedInSession=!1)}),m(this,`onVideoDecodeRate`,e=>{var t;if(this.metrics.general.decodeRate=e,!this.currentLevel)return;let n=this.metrics.levels[(t=this.currentLevel)==null?0:t];n&&(n.decodeRate=e)}),m(this,`onTargetBufferTime`,e=>{this.targetBufferTime=e}),m(this,`calculateLinearRegression`,()=>Ut(this.bufferFullness.items().map((e,t)=>({x:t,y:e})))),m(this,`stopBuffering`,()=>{if(this.currentLevel){let e=this.metrics.levels[this.currentLevel];e&&lr(e.bufferingRanges)}lr(this.metrics.general.bufferingRanges)}),m(this,`startBuffering`,()=>{if(this.currentLevel){let e=this.metrics.levels[this.currentLevel];e&&ur(e.bufferingRanges)}ur(this.metrics.general.bufferingRanges)}),m(this,`unsetActive`,()=>{if(this.currentLevel){let e=this.metrics.levels[this.currentLevel];e&&lr(e.activeRanges)}lr(this.metrics.general.activeRanges)}),m(this,`getQualityIndex`,e=>{if(!this.qualityIndexOrder.length){var t,n;let e=((t=(n=this.renditionLevelSource)==null?void 0:n.getRenditionLevels())==null?[]:t).map(e=>{var t,n,r,i;return((t=(n=e.video)==null?void 0:n.bitRate)==null?0:t)+((r=(i=e.audio)==null?void 0:i.bitRate)==null?0:r)}).filter(e=>e>0);this.qualityIndexOrder=[...new Set(e)].sort((e,t)=>t-e)}let r=this.qualityIndexOrder.indexOf(e);return r===-1&&(this.qualityIndexOrder.push(e),this.qualityIndexOrder.sort((e,t)=>t-e),r=this.qualityIndexOrder.indexOf(e)),r}),this.logger=t,this.emitter=e,this.renditionLevelSource=n}get fatalQosCount(){return this._fatalQosCount}setActive(){if(this.currentLevel){let e=this.metrics.levels[this.currentLevel];e&&ur(e.activeRanges)}ur(this.metrics.general.activeRanges)}};zS=HS,m(HS,`create`,(e,t,n)=>new zS(e,t,n)),U(),h();var US,WS=class{constructor(e,t){m(this,`renditions`,new Map),m(this,`renditionLevels`,[]),m(this,`languages`,[]),m(this,`emitter`,void 0),m(this,`subscriptionSource`,void 0),m(this,`renditionLevelChangeCount`,0),m(this,`unload`,()=>{this.emitter.off(`renditions`,this.onRenditions),this.emitter.off(`subscription changed`,this.onSubscriptionChanged)}),m(this,`getRenditionLevels`,e=>e?this.createRenditionLevels(e):this.renditionLevels),m(this,`getRenditionLevel`,e=>{var t;let n=e==null?this.getCurrentSubscription():e,r=e?this.createRenditionLevels(e):this.renditionLevels;if(!n.video)return r.length?r[0]:void 0;let i=n.video.bitRate||2**53-1,a=n.video.width||2**53-1,o=n.video.height||2**53-1;return(t=r.filter(e=>e.video&&n.video?e.video.bitRate<=i&&e.video.width<=a&&e.video.height<=o:!0).pop())==null?r[0]:t}),m(this,`setRenditions`,(e,t)=>{this.renditions.set(e,t)}),m(this,`getLanguages`,()=>this.languages),m(this,`getVideoRendition`,(e,t=this.getCurrentSubscription().channelId)=>{let n=this.getRendition(e,t);if(n&&Ir(n))return n}),m(this,`getAudioRenditions`,e=>{let t=this.renditions.get(e);return t==null?void 0:t.filter(e=>Lr(e))}),m(this,`getVideoRenditions`,e=>{let t=this.renditions.get(e);return t==null?void 0:t.filter(e=>Ir(e))}),m(this,`getAudioRendition`,(e,t=this.getCurrentSubscription().channelId)=>{let n=this.getRendition(e,t);if(n&&Lr(n))return n}),m(this,`getRendition`,(e,t=this.getCurrentSubscription().channelId)=>{var n;return(n=this.renditions.get(t))==null?void 0:n.find(t=>t.id===e)}),m(this,`getStatistics`,()=>{var e,t,n,r,i,a,o,s,c,l;let u=this.getRenditionLevel();return{videoCodec:u==null||(e=u.video)==null?void 0:e.codec,audioCodec:u==null||(t=u.audio)==null?void 0:t.codec,videoRenditionId:u==null||(n=u.video)==null?void 0:n.id,audioRenditionId:u==null||(r=u.audio)==null?void 0:r.id,videoWidth:u==null||(i=u.video)==null?void 0:i.width,videoHeight:u==null||(a=u.video)==null?void 0:a.height,expectedVideoBitRate:u==null||(o=u.video)==null?void 0:o.bitRate,expectedAudioBitRate:u==null||(s=u.audio)==null?void 0:s.bitRate,frameRate:u==null||(c=u.video)==null?void 0:c.frameRate,language:u==null||(l=u.audio)==null?void 0:l.language,renditionLevelChangeCount:this.renditionLevelChangeCount}}),m(this,`onRenditions`,e=>{let t=this.subscriptionSource.getCurrentSubscription();this.renditions.set(e.channelId,e.renditions),this.updateRenditionLevels({to:t,from:t})}),m(this,`onSubscriptionChanged`,e=>{this.updateRenditionLevels(e)}),m(this,`updateRenditionLevels`,({to:e,from:t})=>{var n;let{channelId:r,initiator:i}=e,a=this.getRenditionLevel(t),o=new Set;((n=this.renditions.get(r))==null?[]:n).filter(e=>e.codec!==`webvtt`).forEach(e=>e.language?o.add(e.language):void 0),this.languages=Array.from(o),this.renditionLevels=this.createRenditionLevels(e);let s=this.getRenditionLevel(e);Qt(a,s)||(this.renditionLevelChangeCount++,this.emitter.emit(`rendition level changed`,{to:s,from:a,reason:i?`manual`:`abr`}))}),m(this,`createRenditionLevels`,e=>{var t;let{video:n,audio:r,channelId:i}=e,a=(t=this.renditions.get(i))==null?[]:t,o=a.filter(Ir).filter(e=>n&&e.codec===n.codec),s=a.filter(Lr).filter(e=>r&&e.codec===r.codec&&e.language===r.language),c=Math.max(o.length,s.length),l=[];for(let e=0;e<c;e++){let t=o[Math.min(o.length-1,e)],n=s[Math.min(s.length-1,e)];l.push({audio:n,video:t})}return l}),m(this,`getCurrentSubscription`,()=>this.subscriptionSource.getCurrentSubscription()),this.subscriptionSource=t,this.emitter=e,this.emitter.on(`renditions`,this.onRenditions),this.emitter.on(`subscription changed`,this.onSubscriptionChanged)}};US=WS,m(WS,`create`,(e,t)=>new US(e,t)),U(),h();var GS,KS=e=>JSON.parse(JSON.stringify(e)),qS=1e4,JS=class{constructor(e,t,n){m(this,`logger`,void 0),m(this,`timers`,new sr),m(this,`emitter`,void 0),m(this,`targetSubscription`,void 0),m(this,`currentSubscription`,void 0),m(this,`_isSwitchingSubscription`,!1),m(this,`pendingSubscriptionTimeoutId`,void 0),m(this,`burstMs`,0),m(this,`unload`,()=>{this.logger.debug(`Unloading module...`),this.timers.unload(),this.emitter.off(`subscription changed`,this.onSubscriptionChanged),this.logger.debug(`Unloaded module`)}),m(this,`isSwitchingSubscription`,()=>this._isSwitchingSubscription),m(this,`getTargetSubscription`,()=>this.targetSubscription),m(this,`getCurrentSubscription`,()=>this.currentSubscription),m(this,`enableBurst`,e=>{this.burstMs=e}),m(this,`setSize`,e=>{this.targetSubscription.video.width=e.width,this.targetSubscription.video.height=e.height,this.scheduleSubscriptionChange()}),m(this,`setVideoConstraint`,e=>{this.targetSubscription.video=e,this.scheduleSubscriptionChange()}),m(this,`setAudioConstraint`,e=>{this.targetSubscription.audio=e,this.scheduleSubscriptionChange()}),m(this,`setVideoBitRate`,e=>{this.targetSubscription.video.bitRate=e,this.scheduleSubscriptionChange()}),m(this,`setAudioBitRate`,e=>{this.targetSubscription.audio.bitRate=e,this.scheduleSubscriptionChange()}),m(this,`setChannelId`,e=>{this.targetSubscription.channelId=e,this.scheduleSubscriptionChange()}),m(this,`setLanguage`,e=>{this.targetSubscription.audio.language=e,this.scheduleSubscriptionChange()}),m(this,`setVideoCodec`,e=>{this.targetSubscription.video.codec=e,this.scheduleSubscriptionChange()}),m(this,`setAudioCodec`,e=>{this.targetSubscription.audio.codec=e,this.scheduleSubscriptionChange()}),m(this,`setBurst`,e=>{e?this.targetSubscription.burstMs=e:delete this.targetSubscription.burstMs}),m(this,`isNewSubscription`,()=>{let e=[`burstMs`,`meta`,`initiator`,`channelGroupId`];return!Qt(Qn(this.currentSubscription,e),Qn(this.targetSubscription,e))}),m(this,`onSubscriptionChanged`,({to:e,reset:t})=>{this.logger.debug(`onSubscriptionChanged`,{to:e,reset:t}),t?this.targetSubscription=KS(this.currentSubscription):this.currentSubscription=KS(e),this._isSwitchingSubscription=this.isNewSubscription()}),m(this,`scheduleSubscriptionChange`,()=>{this.targetSubscription=KS(this.targetSubscription),this._isSwitchingSubscription=this.isNewSubscription();let e=this.currentSubscription.channelId,t=this.targetSubscription.channelId,n=e!==t;this._isSwitchingSubscription&&(n&&this.burstMs?this.setBurst(this.burstMs):this.setBurst(0),this.pendingSubscriptionTimeoutId&&(this.timers.clearTimeout(this.pendingSubscriptionTimeoutId),this.pendingSubscriptionTimeoutId=void 0),n&&this.timers.setTimeout(()=>{this.currentSubscription.channelId===e&&this.targetSubscription.channelId===t&&(this.logger.warn(`Channel switch timeout`,t),this.targetSubscription=KS(this.currentSubscription),this.emitter.emit(`channel switch timeout`,t))},qS),this.pendingSubscriptionTimeoutId=this.timers.setTimeout(()=>this.emitter.emit(`send signal`,{type:`subscribe`,subscription:this.getTargetSubscription()}),0))}),this.logger=e,this.targetSubscription=t,this.currentSubscription=KS(t),this.emitter=n,this.emitter.on(`subscription changed`,this.onSubscriptionChanged)}};GS=JS,m(JS,`create`,(e,t,n)=>new GS(e,n,t)),U(),h();var YS=class e{constructor(){m(this,`channelId`,void 0),m(this,`renditionId`,void 0),m(this,`anchorCts`,void 0),m(this,`hasBFramesValue`,!1),m(this,`isAwaitingAssessment`,!1),m(this,`zeroOffsetSamples`,0),m(this,`omittedBoundaryCrossings`,0),m(this,`hasSeenKeyframe`,!1),m(this,`hasObservedReordering`,!1),m(this,`rememberedRenditions`,new nn(e.MAX_REMEMBERED_RENDITIONS))}get hasBFrames(){return this.hasBFramesValue}get isAwaitingReorderAssessment(){return this.isAwaitingAssessment}update(e){var t;e.type===`video`&&(this.resetOnSwitch(e.channelId,e.renditionId),!this.hasObservedReordering&&(e.isSync&&this.noteKeyframe(),this.observeOffset((t=e.compositionTimeOffset)==null?0:t,e.isSync)))}updateFromFragment(e){var t;if(e.type!==`video`||(this.resetOnSwitch(e.channelId,e.renditionId),this.hasObservedReordering))return;if(e.startsWithKeyframe&&this.noteKeyframe(),e.compositionTimeOffsets.length===0){if(!e.startsWithKeyframe&&this.hasSeenKeyframe&&this.anchorCts!==void 0&&this.anchorCts!==0&&this.noteOmittedBoundaryCrossing())return;this.zeroOffsetSamples+=e.sampleCount,this.zeroOffsetSamples>=2&&(this.isAwaitingAssessment=!1),this.anchorCts=void 0;return}let n=this.zeroOffsetSamples>0;if(this.zeroOffsetSamples=0,!(this.hasSeenKeyframe&&n&&!e.startsWithKeyframe&&((t=e.compositionTimeOffsets[0])==null?0:t)!==0&&this.noteOmittedBoundaryCrossing()))for(let t=0;t<e.sampleCount;t++){var r;let n=(r=e.compositionTimeOffsets[t])==null?0:r;if(this.observeOffset(n,t===0&&e.startsWithKeyframe))return}}observeOffset(e,t){return t||this.anchorCts===void 0?(this.anchorCts!==void 0&&(this.isAwaitingAssessment=!1),this.anchorCts=e,!1):e===this.anchorCts?(this.isAwaitingAssessment=!1,!1):(this.latchBFrames(),!0)}reset(){this.channelId=void 0,this.renditionId=void 0,this.anchorCts=void 0,this.hasBFramesValue=!1,this.zeroOffsetSamples=0,this.omittedBoundaryCrossings=0,this.hasSeenKeyframe=!1,this.hasObservedReordering=!1,this.isAwaitingAssessment=!0}remember(e){this.channelId!==void 0&&this.rememberedRenditions.set(ox(this.channelId,this.renditionId),e)}latchBFrames(){this.hasBFramesValue=!0,this.hasObservedReordering=!0,this.isAwaitingAssessment=!1,this.remember(!0)}noteOmittedBoundaryCrossing(){return this.omittedBoundaryCrossings+=1,this.omittedBoundaryCrossings>=2?(this.latchBFrames(),!0):!1}noteKeyframe(){this.hasSeenKeyframe&&!this.hasObservedReordering&&(this.remember(!1),this.hasBFramesValue=!1),this.hasSeenKeyframe=!0,this.omittedBoundaryCrossings=0}resetOnSwitch(e,t){if(!sx(e,t,this.channelId,this.renditionId)){let n=this.channelId!==void 0;this.channelId=e,this.renditionId=t,this.anchorCts=void 0,this.zeroOffsetSamples=0,this.omittedBoundaryCrossings=0,this.hasSeenKeyframe=!1,this.hasObservedReordering=!1;let r=this.rememberedRenditions.get(ox(e,t));this.hasBFramesValue=r==null?!1:r,n&&(this.isAwaitingAssessment=r===void 0)}}};m(YS,`MAX_REMEMBERED_RENDITIONS`,32),U(),h(),z();var XS,ZS=5e3,QS=()=>it()||tt(),$S=e=>e&&QS()?100:0,eC=e=>t=>t>e,tC=100,nC=1e3,rC={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}},iC=class{get driftSamplesToCollect(){return this._driftSamplesToCollect}set driftSamplesToCollect(e){this._driftSamplesToCollect=e,this.driftSamples=new T(e)}constructor(e,t,n,r,i,a=!0){m(this,`emitter`,void 0),m(this,`logger`,void 0),m(this,`playbackSource`,void 0),m(this,`bufferSource`,void 0),m(this,`keyframeTimestamps`,new T(10)),m(this,`lastSeekTime`,void 0),m(this,`needsMediaSourceRecovery`,!1),m(this,`lastAdjustmentTime`,performance.now()),m(this,`lastDecayCheckTime`,performance.now()),m(this,`syncInterval`,void 0),m(this,`currentSyncIntervalMs`,tC),m(this,`config`,void 0),m(this,`state`,void 0),m(this,`allowTimeshiftOnAudio`,!1),m(this,`syncInfoToleranceMaxMs`,150),m(this,`syncInfoToleranceStep`,20),m(this,`seekOvershoot`,void 0),m(this,`timers`,sr.create()),m(this,`rtt`,0),m(this,`channelSyncInfo`,new Map),m(this,`seekAdjustmentCount`,0),m(this,`timeshiftAdjustmentCount`,0),m(this,`syncInfoCorrectionCount`,0),m(this,`playbackRateAdjustmentCount`,0),m(this,`lastPlaybackRateChangeTime`,0),m(this,`seekAdjustmentTimestamps`,[]),m(this,`timeshiftAdjustmentTimestamps`,[]),m(this,`_driftSamplesToCollect`,5),m(this,`driftSamples`,new T(this._driftSamplesToCollect)),m(this,`timestampOffset`,void 0),m(this,`hasObservedBFrames`,!1),m(this,`bFrameDetector`,new YS),m(this,`currentChannelId`,void 0),m(this,`highestSeenTimestamps`,new Map),m(this,`isSuspended`,!1),m(this,`isSyncAdjustmentActivated`,!1),m(this,`queuedTimeshift`,!1),m(this,`playbackState`,void 0),m(this,`hasPerformedRecoverySeekInCurrentRecoveryState`,!1),m(this,`shouldSeekAfterBuffering`,!1),m(this,`usesMse`,void 0),m(this,`load`,()=>{this.emitter.on(`page active`,this.onPageActive),this.emitter.on(`pageshow`,this.onPageShow),this.setSyncInterval(document.visibilityState===`hidden`?nC:tC)}),m(this,`unload`,()=>{this.logger.debug(`Unloading module...`),this.emitter.off(`rtt`,this.updateRtt),this.emitter.off(`playback state`,this.onPlaybackState),this.emitter.off(`page active`,this.onPageActive),this.emitter.off(`pageshow`,this.onPageShow),this.emitter.off(`buffers flushed`,this.clearBFrameLatch),this.emitter.off(`recovered from media error`,this.onMediaSourceRecovered),this.clearSyncInterval(),this.timers.unload(),this.logger.debug(`Unloaded module`)}),m(this,`suspend`,()=>{this.isSuspended=!0}),m(this,`unsuspend`,()=>{this.resetSyncState(),this.isSuspended=!1,this.onSync()}),m(this,`deactivateSyncAdjustments`,()=>{this.isSyncAdjustmentActivated=!1}),m(this,`activateSyncAdjustments`,()=>{this.tryApplySyncInfo(0),this.isSyncAdjustmentActivated=!0}),m(this,`reset`,()=>{this.logger.info(`Reset sync state`),this.needsMediaSourceRecovery=!1,this.currentChannelId=void 0,this.timestampOffset=void 0,this.bFrameDetector.reset(),this.resetSyncState(),this.highestSeenTimestamps.clear()}),m(this,`getTimeshiftOffset`,()=>{var e;return(e=this.timestampOffset)==null?0:e}),m(this,`getCurrentChannelId`,()=>this.currentChannelId),m(this,`resetSyncState`,()=>{this.state.seekToleranceMultiplier=1,this.state.timeshiftToleranceMultiplier=1,this.seekAdjustmentTimestamps=[],this.timeshiftAdjustmentTimestamps=[],this.driftSamples.clear(),this.playbackState=void 0,this.hasPerformedRecoverySeekInCurrentRecoveryState=!1,this.clearRecoverySeekFlags()}),m(this,`getEffectiveSeekToleranceMs`,()=>this.config.timeshift.enabled?this.config.seek.toleranceMs*2:this.config.seek.toleranceMs),m(this,`isTimeshiftUnsafe`,()=>this.usesMse&&(this.hasObservedBFrames||this.bFrameDetector.isAwaitingReorderAssessment)),m(this,`clearBFrameLatch`,()=>{this.hasObservedBFrames=!1}),m(this,`latchBFramesIfDetected`,()=>{!this.hasObservedBFrames&&this.bFrameDetector.hasBFrames&&(this.hasObservedBFrames=!0,this.logger.info(this.usesMse?`B-frame stream detected; disabling timeshift drift correction`:`B-frame stream detected; timeshift drift correction stays enabled (no MSE buffer to splice)`))}),m(this,`getLiveEdgeTime`,e=>{let t=this.channelSyncInfo.get(e);if(!t)return;let n=performance.now()-t.localTimestamp;return t.timestamp+n}),m(this,`getLiveEdgeTimeLatencyAdjusted`,e=>{let t=this.getLiveEdgeTime(e);if(t)return t+this.rtt/2}),m(this,`getWallclockTime`,e=>{let t=this.channelSyncInfo.get(e);if(!t)return;let n=performance.now()-t.localTimestamp;return t.wallclockTime+n}),m(this,`getWallclockTimeLatencyAdjusted`,e=>{let t=this.getWallclockTime(e);if(t)return t+this.rtt/2}),m(this,`processSample`,e=>{var t;if(!e.channelId)throw Error(`Sample must be assigned to a channel`);this.currentChannelId||(this.currentChannelId=e.channelId),this.timestampOffset||(this.timestampOffset=e.timestamp/e.timescale*1e3-ZS);let n=e.type===`video`&&e.isSync;if(this.bFrameDetector.update(e),this.latchBFramesIfDetected(),this.currentChannelId!==e.channelId){let t=2**53-1;console.assert(this.highestSeenTimestamps.size!==0,`no known timestamps`),this.highestSeenTimestamps.forEach(e=>{t=Math.min(t,e)});let n=e.timestamp/e.timescale*1e3;this.currentChannelId=e.channelId,this.timestampOffset=n-t}else (n||this.allowTimeshiftOnAudio)&&this.tryTimeshiftSync();let r=this.timestampOffset*e.timescale/1e3;return e.timestamp-=r,n&&this.keyframeTimestamps.push(e.timestamp/e.timescale*1e3),this.highestSeenTimestamps.set(e.type,Math.max((t=this.highestSeenTimestamps.get(e.type))==null?0:t,e.timestamp/e.timescale*1e3)),e}),m(this,`processFragment`,(e,t,n)=>{var r;this.currentChannelId||(this.currentChannelId=e);let i=t.mediaType();if(!i)throw Error(`Fragment must have a media type`);this.timestampOffset||(this.timestampOffset=t.baseMediaDecodeTime()/t.timescale()*1e3-ZS);let a=i===`video`&&t.startsWithKeyframe();if(i===`video`&&(this.bFrameDetector.updateFromFragment({type:i,channelId:e,renditionId:n,startsWithKeyframe:a,sampleCount:t.samplesCount(),compositionTimeOffsets:t.sampleCompositionTimeOffsets()}),this.latchBFramesIfDetected()),this.currentChannelId!==e){let t=2**53-1;console.assert(this.highestSeenTimestamps.size!==0,`no known timestamps`),this.highestSeenTimestamps.forEach(e=>{t=Math.min(t,e)}),this.currentChannelId=e}else (a||this.allowTimeshiftOnAudio)&&this.tryTimeshiftSync();let o=this.timestampOffset*t.timescale()/1e3;return t.updateBaseMediaDecodeTime(t.baseMediaDecodeTime()-o),a&&this.keyframeTimestamps.push(t.baseMediaDecodeTime()/t.timescale()*1e3),this.highestSeenTimestamps.set(i,Math.max((r=this.highestSeenTimestamps.get(i))==null?0:r,t.baseMediaDecodeTime()/t.timescale()*1e3)),t}),m(this,`forceSeek`,()=>{this.logger.debug(`Forcing seek`,{amount:this.serverCurrentTime-this.playbackSource.currentTime}),this.clearRecoverySeekFlags(),this.playbackSource.currentTime=this.serverCurrentTime}),m(this,`forceTimeshift`,()=>{this.queuedTimeshift=!0}),m(this,`setPlaybackRateAdjustmentEnabled`,e=>{this.config.playbackRate.enabled=e}),m(this,`getStatistics`,()=>{let e=this.driftSamples.items(),t=e.length>0?zt(e.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,videoHasBFrames:this.bFrameDetector.hasBFrames}}),m(this,`updateRtt`,e=>{this.rtt=e}),m(this,`isPlaybackSourceReadyToSeek`,()=>!this.isSeeking()&&this.isSeekCooldownExpired()&&this.isSyncAdjustmentActivated),m(this,`isPlaybackSourceReady`,()=>!this.isSeeking()&&this.isSyncAdjustmentActivated),m(this,`isSeeking`,()=>this.playbackSource.isSeeking?!this.isSeekTimeoutExpired():!1),m(this,`isAllowedToSync`,()=>this.isPlaybackSourceReadyToSeek()&&!!this.currentChannelId&&!this.isSuspended&&!this.playbackSource.isPaused),m(this,`isAllowedToSyncIgnoringCooldown`,()=>this.isPlaybackSourceReady()&&!!this.currentChannelId&&!this.isSuspended&&!this.playbackSource.isPaused),m(this,`isSeekCooldownExpired`,()=>this.lastSeekTime===void 0||performance.now()-this.lastSeekTime>this.config.seek.cooldownMs),m(this,`isSeekTimeoutExpired`,()=>this.lastSeekTime===void 0||performance.now()-this.lastSeekTime>this.config.seek.timeoutMs),m(this,`currentTimeshiftToleranceMs`,()=>Math.min(this.config.timeshift.toleranceMs*this.state.timeshiftToleranceMultiplier,this.config.timeshift.toleranceMaxMs)),m(this,`currentSeekToleranceMs`,()=>Math.min(this.state.seekToleranceMultiplier*this.getEffectiveSeekToleranceMs(),this.config.seek.toleranceMaxMs)),m(this,`currentEmergencySeekToleranceMs`,()=>Math.max(this.currentSeekToleranceMs()+this.getEffectiveSeekToleranceMs(),this.bufferSource.getTargetBufferTime())),m(this,`currentAheadToleranceMs`,()=>{let e=Math.max(this.config.seek.aheadToleranceMs*this.state.seekToleranceMultiplier,400),t=this.playbackSource.seekTime>500?e:this.config.seek.aheadToleranceMs;return Math.min(t,this.bufferSource.getTargetBufferTime()/2)}),m(this,`tryDecayMultipliers`,()=>{if(!this.config.backoff.decayEnabled)return;let e=performance.now();if(e-this.lastDecayCheckTime<this.config.backoff.decayCheckInterval)return;this.lastDecayCheckTime=e;let t=this.seekAdjustmentTimestamps.length>0?Math.max(...this.seekAdjustmentTimestamps):0,n=this.timeshiftAdjustmentTimestamps.length>0?Math.max(...this.timeshiftAdjustmentTimestamps):0,r=e-Math.max(t,n,this.lastAdjustmentTime),i=Math.max(this.state.seekToleranceMultiplier,this.state.timeshiftToleranceMultiplier),a=this.config.seek.timeoutMs*this.config.backoff.decayCooldownMultiplier*i;if(r<a)return;let o=!1;if(this.state.seekToleranceMultiplier>1){let 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:r,requiredStabilityMs:a}),this.state.seekToleranceMultiplier=e,o=!0)}if(this.state.timeshiftToleranceMultiplier>1){let 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:r,requiredStabilityMs:a}),this.state.timeshiftToleranceMultiplier=e,o=!0)}if(o){let t=e-a*2;this.seekAdjustmentTimestamps=this.seekAdjustmentTimestamps.filter(e=>e>t),this.timeshiftAdjustmentTimestamps=this.timeshiftAdjustmentTimestamps.filter(e=>e>t)}}),m(this,`applyBackoff`,()=>{if(this.config.backoff.enabled&&(this.lastAdjustmentTime=performance.now(),this.seekAdjustmentCount>0&&this.seekAdjustmentCount%this.config.seek.backoffEveryN===0)){let e=this.state.seekToleranceMultiplier,t=this.config.seek.toleranceMaxMs/this.getEffectiveSeekToleranceMs();this.state.seekToleranceMultiplier=Math.min(this.state.seekToleranceMultiplier+this.config.seek.toleranceMultiplierStep,t),e!==this.state.seekToleranceMultiplier&&this.logger.info(`Backoff: Increasing seek tolerance multiplier`,{from:e,to:this.state.seekToleranceMultiplier,currentSeekToleranceMs:this.currentSeekToleranceMs()})}}),m(this,`tryPlaybackRateSync`,e=>{if(!this.config.playbackRate.enabled)return!1;let t=this.playbackSource.playbackRate!==1,n=Math.abs(e),r=t&&n<this.config.playbackRate.stopDiff,i=!t&&n>=this.config.playbackRate.startDiff;if(n>this.config.playbackRate.maxDiff)return t&&(this.playbackSource.playbackRate=1,this.lastPlaybackRateChangeTime=performance.now()),!1;let a=performance.now(),o=a-this.lastPlaybackRateChangeTime>=this.config.playbackRate.cooldownMs;if(r&&o)return this.playbackSource.playbackRate=1,this.lastPlaybackRateChangeTime=a,this.logger.info(`Resetting playback rate to 1`,{drift:e}),!0;if(i&&o){let t=e>0?1+this.config.playbackRate.speed:1-this.config.playbackRate.speed;return this.playbackSource.playbackRate=t,this.lastPlaybackRateChangeTime=a,this.playbackRateAdjustmentCount++,this.logger.info(`Adjusting playback rate`,{drift:e,targetRate:t}),!0}if(t&&n>=this.config.playbackRate.stopDiff&&n<=this.config.playbackRate.maxDiff){let t=e>0?1+this.config.playbackRate.speed:1-this.config.playbackRate.speed;return this.playbackSource.playbackRate!==t&&o&&(this.playbackSource.playbackRate=t,this.lastPlaybackRateChangeTime=a,this.logger.info(`Changing playback rate direction`,{drift:e,targetRate:t})),!0}return!t&&n<this.config.playbackRate.startDiff?!0:t}),m(this,`tryTimeshiftSync`,()=>{var e;if(!this.config.timeshift.enabled)return;if(this.isTimeshiftUnsafe()){this.queuedTimeshift&&this.hasObservedBFrames&&(this.queuedTimeshift=!1,this.logger.info(`Dropping forced timeshift: suppressed for B-frame stream, use forceSeek to resync`));return}if(this.hasPendingRecoverySeek()||!this.isAllowedToSync()||this.playbackSource.playbackRate!==1)return;let t=(e=this.drift)==null?0:e;this.driftSamples.push(t);let n=Vt(this.driftSamples.items());if(this.queuedTimeshift&&n>0){this.queuedTimeshift=!1,this.applyTimeshift(n);return}if(n>=this.getEffectiveSeekToleranceMs()||n<this.currentTimeshiftToleranceMs())return;let r=performance.now()-this.config.seek.timeoutMs*this.state.timeshiftToleranceMultiplier,i=this.timeshiftAdjustmentTimestamps.filter(eC(r)).length;if(i&&this.state.timeshiftToleranceMultiplier>2){this.logger.debug(`Too many timeshifts within sliding window`,{timeshiftCooldownThreshold:r,recentTimeshiftCount:i});return}this.applyTimeshift(n)}),m(this,`clearRecoverySeekFlags`,()=>{this.shouldSeekAfterBuffering=!1}),m(this,`hasActiveRecoveryTrigger`,()=>this.playbackState===`buffering`),m(this,`hasPendingRecoverySeek`,()=>(this.refreshRecoverySeekState(),this.getRecoverySeekReason()!==void 0)),m(this,`refreshRecoverySeekState`,()=>{var e,t;if(!this.hasActiveRecoveryTrigger()||!this.usesMse||this.hasPerformedRecoverySeekInCurrentRecoveryState){this.clearRecoverySeekFlags();return}let n=(e=(t=this.bufferSource).getNextBufferedRangeStart)==null?void 0:e.call(t,this.playbackSource.currentTime);return this.shouldSeekAfterBuffering=n!==void 0,n}),m(this,`getRecoverySeekReason`,()=>{if(this.needsMediaSourceRecovery)return`media source reopen`;if(this.shouldSeekAfterBuffering)return`buffering`}),m(this,`shouldSkipNormalSeek`,e=>e<0&&-e<this.currentAheadToleranceMs()||e>0&&e<this.currentSeekToleranceMs()||Math.abs(e)<1?!0:!this.isAllowedToSync()),m(this,`shouldDeferRecoverySeek`,(e,t)=>t!==void 0&&t>e),m(this,`buildSeekPlan`,(e,t)=>{var n,r;let i=this.playbackSource.currentTime+e,a=t?(n=(r=this.bufferSource).getNextBufferedRangeStart)==null?void 0:n.call(r,this.playbackSource.currentTime):void 0;if(t===`media source reopen`&&a===void 0)return;let o=i+this.seekOvershoot,s=this.playbackSource.currentTime+this.seekOvershoot,c=t?Math.max(o,s):o;if(t&&this.shouldDeferRecoverySeek(c,a)){this.logger.debug(`Deferring recovery seek until expected playhead reaches next buffered range start`,{currentTime:this.playbackSource.currentTime,desiredCurrentTime:c,nextBufferedRangeStart:a,recoverySeekReason:t});return}let l=t&&a?a:i,u=this.findKeyframeCloseToTimestamp(l);if(!(!t&&!u&&!this.keyframeTimestamps.isEmpty()))return{closestKeyFrame:u,keyframeSearchTime:l,nextBufferedRangeStart:a,targetCurrentTime:u&&u>c?a?Math.max(a,u):u:c}}),m(this,`applySeek`,(e,t)=>{let n=this.playbackSource.seekTime,r=this.buildSeekPlan(e,t);if(!r)return;this.logger.info(`Adjusting for drift using seek`,{drift:e,currentTime:this.playbackSource.currentTime,recoverySeekReason:t,keyframeSearchTime:r.keyframeSearchTime,closestKeyFrame:r.closestKeyFrame,nextBufferedRangeStart:r.nextBufferedRangeStart,targetCurrentTime:r.targetCurrentTime,seekTime:n,rtt:this.rtt,seekToleranceMultiplier:this.state.seekToleranceMultiplier}),this.needsMediaSourceRecovery=!1;let i=performance.now();this.lastSeekTime=i,t&&(this.hasPerformedRecoverySeekInCurrentRecoveryState=!0),this.clearRecoverySeekFlags(),this.driftSamples.clear(),this.seekAdjustmentTimestamps.push(i),this.seekAdjustmentCount++,this.playbackSource.currentTime=r.targetCurrentTime+Math.min(n,this.bufferSource.getTargetBufferTime()),this.applyBackoff()}),m(this,`applyTimeshift`,e=>{var t;let n=(t=e==null?this.drift:e)==null?0:t;if(!this.timestampOffset)return;let r=n;this.logger.info(`Adjusting for drift using timeshift`,{drift:n,syncAmount:r,currentTime:this.playbackSource.currentTime,rtt:this.rtt,timeshiftToleranceMultiplier:this.state.timeshiftToleranceMultiplier}),this.timestampOffset+=r;let i=performance.now();if(this.lastSeekTime=i,this.lastAdjustmentTime=i,!this.playbackSource.isPaused&&(this.driftSamples.clear(),this.timeshiftAdjustmentTimestamps.push(i),this.timeshiftAdjustmentCount++,this.config.backoff.enabled&&this.timeshiftAdjustmentCount>0&&this.timeshiftAdjustmentCount%this.config.timeshift.backoffEveryN===0)){let e=this.state.timeshiftToleranceMultiplier,t=this.config.timeshift.toleranceMaxMs/this.config.timeshift.toleranceMs;this.state.timeshiftToleranceMultiplier=Math.min(this.state.timeshiftToleranceMultiplier+1,t),e!==this.state.timeshiftToleranceMultiplier&&this.logger.info(`Backoff: Increasing timeshift tolerance multiplier`,{from:e,to:this.state.timeshiftToleranceMultiplier,currentTimeshiftToleranceMs:this.currentTimeshiftToleranceMs()})}}),m(this,`onSync`,()=>{var e;this.tryDecayMultipliers(),this.refreshRecoverySeekState();let t=(e=this.drift)==null?0:e,n=this.getRecoverySeekReason(),r=n!==void 0;if(!r&&!this.isAllowedToSyncIgnoringCooldown()||r&&(this.isSeeking()||!this.currentChannelId||this.isSuspended||this.playbackSource.isPaused)||(this.driftSamples.push(t),!this.isSeekCooldownExpired())||!r&&this.driftSamples.items().length<this.driftSamplesToCollect&&Math.abs(t)<2e3)return;let i=r?t:Vt(this.driftSamples.items());if(!r&&this.tryPlaybackRateSync(i)||!r&&this.shouldSkipNormalSeek(i))return;let a=performance.now()-this.config.seek.timeoutMs*this.state.seekToleranceMultiplier,o=this.seekAdjustmentTimestamps.filter(eC(a)).length,s=this.currentEmergencySeekToleranceMs(),c=i>0&&i>=s;if(o&&this.state.seekToleranceMultiplier>2&&!r&&!c){this.logger.debug(`Too many seek adjustments within sliding window`,{seekCooldownThreshold:a,recentSeekCount:o});return}o&&(r||c)&&this.logger.debug(`Bypassing recent seek limit`,{drift:i,recoverySeekReason:n,emergencySeekToleranceMs:s,recentSeekCount:o,seekToleranceMultiplier:this.state.seekToleranceMultiplier}),this.applySeek(i,n)}),m(this,`onMediaSourceRecovered`,()=>{this.needsMediaSourceRecovery=!0,this.lastSeekTime=void 0,this.keyframeTimestamps.clear(),this.driftSamples.clear()}),m(this,`onPlaybackState`,e=>{e===`playing`&&(this.needsMediaSourceRecovery=!1);let t=this.playbackState===`buffering`;if(this.playbackState=e,e!==`buffering`){this.hasPerformedRecoverySeekInCurrentRecoveryState=!1,this.clearRecoverySeekFlags();return}if(t||(this.hasPerformedRecoverySeekInCurrentRecoveryState=!1),this.refreshRecoverySeekState()!==void 0){this.onSync();return}}),m(this,`onPageActive`,e=>{this.setSyncInterval(e?tC:nC),e&&this.onSync()}),m(this,`onPageShow`,e=>{e.persisted&&(this.setSyncInterval(document.visibilityState===`hidden`?nC:tC),this.onSync())}),m(this,`setSyncInterval`,e=>{this.syncInterval!==void 0&&this.currentSyncIntervalMs===e||(this.clearSyncInterval(),this.currentSyncIntervalMs=e,this.syncInterval=this.timers.setInterval(this.onSync,e))}),m(this,`clearSyncInterval`,()=>{this.syncInterval!==void 0&&(this.timers.clearInterval(this.syncInterval),this.syncInterval=void 0)}),m(this,`findKeyframeCloseToTimestamp`,e=>{let t=this.keyframeTimestamps.items();for(let n of t){let t=n>=e-this.config.seek.keyframeSearchBeforeMs,r=n<=e+this.config.seek.keyframeSearchAfterMs;if(t&&r)return n}}),this.logger=t,this.emitter=e,this.playbackSource=n,this.bufferSource=r,this.usesMse=a,this.seekOvershoot=$S(a),this.config={seek:R({},rC.seek),timeshift:R({},rC.timeshift),playbackRate:R({},rC.playbackRate),backoff:R({},rC.backoff)},this.config.timeshift.enabled=i,a||(this.config.seek.toleranceMs=50,this.config.timeshift.toleranceMs=20,this.config.seek.aheadToleranceMs=40),this.state={seekToleranceMultiplier:1,timeshiftToleranceMultiplier:1},typeof window<`u`&&window.location.search.includes(`playbackRateAdjustmentEnabled`)&&(this.config.playbackRate.enabled=!0),this.emitter.on(`rtt`,this.updateRtt),this.emitter.on(`playback state`,this.onPlaybackState),this.emitter.on(`buffers flushed`,this.clearBFrameLatch),this.emitter.on(`recovered from media error`,this.onMediaSourceRecovered),this.logger.info(`SyncModule initialized`,{config:this.config})}updateChannelSyncInfo(e,t){let n=performance.now(),r=this.channelSyncInfo.get(e),i=this.getLiveEdgeTime(e);if(this.isSuspended)return;if(!r||!i){this.logger.info(`Initial timing info`,{syncInfo:t}),this.channelSyncInfo.set(e,R(R({},t),{},{localTimestamp:n,timeDifferences:new T(12)}));return}let a=t.wallclockTime-r.wallclockTime,o=t.timestamp-r.timestamp,s=n-r.localTimestamp,c=o-s;if(r.timeDifferences.push(c),this.logger.debug(`Timing info`,{rtt:this.rtt,channelId:e,syncInfo:t,localTimestamp:n,diffFromEstimated:c,timestampDelta:o,wallclockDelta:a,localTimestampDelta:s}),Math.abs(c)>=Math.max(this.bufferSource.getTargetBufferTime()*2,3e3)){this.logger.info(`Resetting sync info`,{diffFromEstimated:c}),this.channelSyncInfo.set(e,R(R({},t),{},{localTimestamp:n,timeDifferences:new T(r.timeDifferences.maxSize+1)})),this.currentChannelId&&this.currentChannelId===e&&(this.reset(),this.emitter.emit(`channel reset`));return}r.timeDifferences.items().length<3||this.tryApplySyncInfo(Math.min(this.syncInfoToleranceMaxMs,this.syncInfoCorrectionCount*this.syncInfoToleranceStep))}tryApplySyncInfo(e){let t=this.getCurrentChannelId();if(!t)return;let n=this.channelSyncInfo.get(t);if(!n)return;let r=n.timeDifferences.items();if(r.length===0)return;let i=Vt(r);Math.abs(i)>e&&(this.logger.info(`Adjusting sync info`,{medianDifference:i,tolerance:e,count:r.length}),n.timestamp+=i,this.syncInfoCorrectionCount++,n.timeDifferences.clear())}get serverCurrentTime(){return this.channelCurrentTime-this.getTimeshiftOffset()}get channelCurrentTime(){let e=this.getCurrentChannelId();if(!e)return 0;let t=this.getLiveEdgeTime(e);return t?t-this.bufferSource.getTargetBufferTime():0}get drift(){return this.serverCurrentTime-this.playbackSource.currentTime}};XS=iC,m(iC,`create`,(e,t,n,r,i,a=!0)=>new XS(e,t,n,r,i,a)),U(),z(),h(),F();var aC,oC={enabled:!0,interval:3e4,includeErrors:!0,includeEvents:!0,includeStats:!0,maxRetries:10,maxErrorReports:50,maxEvents:50},sC=(e,t)=>R(R({},t),{},{type:e,timestamp:new Date().toISOString(),discriminator:`web`}),cC=class{constructor(e,t,n,r){var i=this;m(this,`logger`,void 0),m(this,`timers`,new sr),m(this,`emitter`,void 0),m(this,`options`,void 0),m(this,`parentContext`,void 0),m(this,`unsentLines`,new T(100)),m(this,`retries`,0),m(this,`errorCount`,0),m(this,`eventCount`,0),m(this,`statsCount`,0),m(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`)}),m(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)}),m(this,`addStats`,({isFinal:e,initiator:t}={isFinal:!1,initiator:`interval`},n={})=>{if(!this.options.includeStats)return;let r=this.parentContext.getStatistics(),i=sC(`stats`,R(R(R({},n),r),{},{isFinal:e,initiator:t,count:this.statsCount++}));this.unsentLines.push(i)}),m(this,`addEvent`,e=>{if(!this.options.includeEvents||this.eventCount>this.options.maxEvents)return;let t=sC(`event`,R(R({},this.parentContext.getStatistics()),e));this.eventCount++,this.unsentLines.push(t)}),m(this,`getStatistics`,()=>({errorCount:this.errorCount})),m(this,`send`,function(){var e=P(function*(e){if(i.options.enabled&&!(i.retries>=i.options.maxRetries)&&!i.unsentLines.isEmpty()){i.logger.debug(`Sending telemetry`,{lines:i.unsentLines.items()});try{let t=i.unsentLines.items().map(e=>JSON.stringify(e)).reverse().join(`
1322
- `);switch(e){case`beacon`:navigator.sendBeacon(i.options.url,t);break;default:i.parentContext.connectionState===`connected`?i.emitter.emit(`send signal`,{type:`telemetry`,body:t}):yield ju(new URL(i.options.url),{body:t,headers:{"Content-Type":`text/plain`}});break}i.retries=0,i.unsentLines.clear()}catch(e){i.retries++}}});return function(t){return e.apply(this,arguments)}}()),m(this,`onVisibilityChange`,e=>{e===`hidden`&&(this.addStats({isFinal:!0,initiator:`visibilitychange`}),this.send(`beacon`))}),m(this,`onPageHide`,e=>{this.addStats({isFinal:!0,initiator:`pagehide`},{persisted:e.persisted}),this.send(`beacon`)}),m(this,`onRejection`,e=>this.addError(e.reason)),m(this,`onError`,e=>this.addError(e.error)),m(this,`addError`,e=>{let{includeErrors:t,maxErrorReports:n}=this.options;if(!(e instanceof W)||e.code()===`channel_not_live`||!t||(this.errorCount++,this.errorCount>n))return;let r=this.parentContext.getStatistics();this.unsentLines.push(sC(`error`,R(R({},r),e.toStringifiable())))}),this.logger=e,this.emitter=t,this.options=R(R({},oC),n),this.parentContext=r}};aC=cC,m(cC,`create`,(e,t,n,r)=>new aC(e,t,n,r)),U(),h();var lC,uC=class{constructor(e,t,n){m(this,`logger`,void 0),m(this,`elements`,void 0),m(this,`documentState`,void 0),m(this,`timers`,new sr),m(this,`unload`,()=>{this.timers.unload()}),m(this,`unpause`,()=>{if(!(!this.documentState.isVisible||!this.documentState.isOnline))for(let e of this.elements)e.userHasProvidedInput&&e.isPaused&&(this.logger.debug(`Unpause media element`),e.tryPlay())}),this.logger=e,this.elements=t,this.documentState=n,this.timers.setInterval(this.unpause,100)}};lC=uC,m(uC,`create`,(e,t,n)=>new lC(e,t,n)),h();var dC=[`minBufferTime`,`maxBufferTime`,`burstEnabled`,`sizeBasedResolutionCapEnabled`,`webcodecsHardwareAcceleration`,`offscreenCanvasEnabled`,`videoCodecs`];function fC(e){return dC.includes(e)}var pC=class{constructor(e){m(this,`options`,void 0),m(this,`overrides`,new Map),this.options=e}getOptions(){return this.options}addOverrides(e,t){this.overrides.set(e,t)}set(e,t){this.options[e]=t}get(e,t){if(t&&fC(e)){var n;let r=(n=this.overrides.get(t))==null?void 0:n[e];if(r!==void 0)return r}return this.options[e]}getOverride(e,t){var n;return(n=this.overrides.get(t))==null?void 0:n[e]}};z();var mC=6,hC=e=>{let t=[e],n=0,r=0,i=!1,a=(e,t)=>{var i,a;if(e.flags&&El(e.flags)){var o;n=(o=e.compositionTimeOffset)==null?0:o}e.timestamp+=n,e.compositionTimeOffset=((i=e.compositionTimeOffset)==null?0:i)-n;let s=e.timestamp/e.timescale,c=t.flags&&El(t.flags)?(a=t.compositionTimeOffset)==null?0:a:n,l=(t.timestamp+c)/t.timescale,u=Math.max(0,Math.round((l-s)*e.timescale));return u>0&&(r=u),R(R({},e),{},{duration:u>0?u:r})};return(e,n=!1)=>{if(e.flags&&El(e.flags)&&n&&(i=!i),!(n&&t.length<mC&&i)&&t.length>0){i=!1;let n=e;for(let e=t.length-1;e>0;e--){let r=t[e];if(!r||!n)break;r.timestamp>=n.timestamp?t.splice(e,1):n=r}let r=t.map((n,r)=>a(n,t[r+1]||e));return t=[e],r}return t.push(e),[]}},gC=[`mse`,`wasm`],_C=e=>e==null?gC:e,vC=e=>{if(!e)return!1;let t=e.headers&&Object.keys(e.headers).length>0,n=e.queryParams&&Object.keys(e.queryParams).length>0;return!!(t||n)},yC=(e,t,n)=>{if(vC(n))return`mse`;let r=_C(e);for(let e of r)switch(e){case`mse`:if(t)return`mse`;break;case`webcodecs`:if(typeof VideoDecoder<`u`)return`webcodecs`;break;case`wasm`:return`wasm`}return`wasm`};z();var bC=(e,t,n)=>{if(Ir(t))return R(R({},e),{},{type:`video`,codec:t.codec,isSync:El(e.flags),data:e.payload,duration:0,width:t.width,height:t.height},n);if(t.codec===`webvtt`)throw Error(`WebVTT is not supported`);return R(R({},e),{},{type:`audio`,channels:t.channels,sampleRate:t.sampleRate,codec:t.codec,language:t.language,isSync:El(e.flags),data:e.payload,duration:0})};z();var xC=({average:e,last:t,max:n,min:r})=>({average:Math.round(e),last:Math.round(t),max:Math.round(n),min:Math.round(r)}),SC=[`timeSpentBuffering`,`timePerBufferingEvent`,`drift`,`seekTime`,`totalSeekTime`,`currentSeekToleranceMs`,`currentAheadToleranceMs`,`averageDrift`,`videoKeyframeIntervalMs`,`timeToConnected`,`mediaSourceOpenTime`],CC=[`videoDecodeTime`,`audioDecodeTime`,`videoTransportTime`,`rtt`],wC=e=>typeof e==`object`&&!!e&&`min`in e&&`max`in e&&`average`in e&&`last`in e,TC=e=>{let t=R({},e);for(let e of SC){let n=t[e];typeof n==`number`&&(t[e]=Math.round(n))}for(let e of CC){let n=t[e];wC(n)&&(t[e]=xC(n))}return t};z();var EC=(e,t)=>e&&typeof e==`object`&&t in e,DC=e=>!(typeof e!=`object`||!EC(e,`channelId`)||typeof e.channelId!=`string`||!EC(e,`url`)||typeof e.url!=`string`||e.channelId.length===0||e.url.length===0),OC=e=>{if(!DC(e))throw new W(`Invalid options`,{isFatal:!0,code:`invalid_options`});let t=R({},e);return Object.keys(t).forEach(e=>{let n=t;n[e]===void 0&&delete n[e]}),t},kC=e=>{if(typeof e!=`object`||!e)throw Error(`not an object`);if(!(`video`in e))throw Error(`missing video in subscription`);if(!(`audio`in e))throw Error(`missing audio in subscription`);if(!(`channelId`in e))throw Error(`missing channelId`);return!0};ho(),wl(),ux(),h(),F();var AC=class{constructor(e){var t=this;m(this,`cache`,new Map),m(this,`inFlight`,new Map),m(this,`checkVideoSupport`,function(){var e=P(function*(e){var n;if(typeof VideoDecoder>`u`)return!1;let r=VideoDecoder.isConfigSupported;if(typeof r!=`function`)return!0;if(e.codec===`h265`&&!e.codecString)return t.logger.warn(`Missing HEVC codec string for WebCodecs support check. Falling back to optimistic support.`,{renditionId:e.id}),!0;let i=(n=e.codecString)==null?e.codec===`av1`?`av01.0.08M.08`:`avc1.42E01E`:n,a=`video|${i}|${e.width}x${e.height}`;return t.check(a,()=>r({codec:i,optimizeForLatency:!0,codedWidth:e.width,codedHeight:e.height}),!0,{message:`Failed to check WebCodecs rendition support. Falling back to optimistic support check.`,codec:i,renditionId:e.id})});return function(t){return e.apply(this,arguments)}}()),m(this,`checkAudioSupport`,function(){var e=P(function*(e){var n;if(typeof AudioDecoder>`u`)return!1;let r=AudioDecoder.isConfigSupported;if(typeof r!=`function`)return!0;let i=(n=e.codecString)==null?lx(e.codec):n,a=`audio|${i}|${e.sampleRate}|${e.channels}`,o=e.codec===`aac`?oo(e.channels,e.sampleRate):e.codec===`opus`?Sl(e.channels,e.sampleRate):void 0;return t.check(a,()=>r({codec:i,sampleRate:e.sampleRate,numberOfChannels:e.channels,description:o}),!1,{message:`Failed to check WebCodecs audio rendition support. Treating rendition as unsupported.`,codec:i,renditionId:e.id})});return function(t){return e.apply(this,arguments)}}()),m(this,`check`,(e,t,n,r)=>{let i=this.cache.get(e);if(i!==void 0)return Promise.resolve(i);let a=this.inFlight.get(e);if(a)return a;let o=Promise.resolve().then(t).then(({supported:t})=>(this.cache.set(e,t),t)).catch(t=>(this.logger.warn(r.message,{codec:r.codec,renditionId:r.renditionId,error:t}),this.cache.set(e,n),n)).finally(()=>{this.inFlight.delete(e)});return this.inFlight.set(e,o),o}),this.logger=e}};U(),h(),D(),z(),F(),N(),j();var jC=1e4,MC=1280*720,NC=new WeakMap,PC=new WeakMap,FC=new WeakMap,IC=class e extends en{constructor(t){var n,r,i;super(),n=this,m(this,`pictureInPicture`,void 0),m(this,`drm`,void 0),m(this,`browser`,dt()),m(this,`options`,void 0),m(this,`element`,void 0),m(this,`playbackSource`,void 0),m(this,`emitter`,new en),m(this,`logger`,void 0),m(this,`modules`,void 0),m(this,`clientIp`,void 0),m(this,`sessionId`,void 0),m(this,`clientId`,Cr()),m(this,`_channels`,[]),m(this,`createdAt`,performance.now()),m(this,`offscreenCanvasElement`,void 0),m(this,`webCodecsRenditionSupport`,void 0),m(this,`hasCalledConnect`,!1),m(this,`hasRequestedAudioSession`,!1),m(this,`isUserPaused`,!1),m(this,`isMediaElementPaused`,!1),m(this,`latestEmittedLanguages`,[]),m(this,`wakeLock`,void 0),m(this,`pool`,new re(e.MAX_POOL_SIZE)),m(this,`userAgentInformation`,new xr),m(this,`encryptedMediaExtensions`,void 0),E(this,NC,0),E(this,PC,[]),m(this,`sampleProcessingSesssions`,new Map),m(this,`unbackedSamplesWarned`,new cx),m(this,`unextractableSamplesWarned`,new cx),m(this,`sizes`,new Map),m(this,`isSuspended`,!0),m(this,`inactivityDisconnectInterval`,void 0),m(this,`visiblePauseTimeout`,void 0),m(this,`offscreenSubtitleInterval`,void 0),E(this,FC,void 0),m(this,`attach`,e=>{var t;(t=this.wakeLock)==null||t.attach(e),e.appendChild(this.element)}),m(this,`setElement`,e=>{this.element!==e&&(this.element=e,this.modules.constraintCap.setElement(e))}),m(this,`applyBurstEnabled`,e=>{this.modules.subscription.enableBurst(this.options.get(`burstEnabled`,e)?this.targetBufferTime:0)}),m(this,`getOptions`,()=>this.options.getOptions()),m(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;let t=window.devicePixelRatio||1,n=Math.round(window.innerWidth*t),r=Math.round(window.innerHeight*t),i=this.options.get(`authenticationToken`),a=i?`&auth.token=${i}`:``;return`${e}/api/thumbnail?channelId=${this.channelId}${a}&width=${n}&height=${r}`}),m(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})}),m(this,`connect`,()=>{this.hasCalledConnect||(this.play(),this._connect())}),m(this,`_connect`,()=>{if(!this.hasCalledConnect){if(this.hasCalledConnect=!0,Object.values(this.modules).forEach(e=>{e&&`load`in e&&e.load()}),this.playbackSource instanceof eu){var e,t;(e=(t=this.playbackSource).load)==null||e.call(t)}this.unsuspend()}}),m(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`),burstEnabled:this.options.get(`burstEnabled`)})),m(this,`onConnectInfo`,function(){var e=P(function*(e){var t;n.sessionId=Cr();let r=n.modules.subscription.getTargetSubscription(),i=e.channels.find(e=>e.channelId===r.channelId);if(n.emitter.emit(`connect info`,e),`timeshift`in e&&e.timeshift?(e.timeshift,n._channels=e.channels.map(t=>R(R({},t),{},{timeshift:e.timeshift})),n.emit(`timeshift info`,e.timeshift)):n._channels=e.channels,n.updateTextTracks((t=i==null?void 0:i.renditions)==null?[]:t),!n.textTrack&&n.options.get(`textTrack`)&&(n.textTrack=n.options.get(`textTrack`)),yield Promise.all(e.channels.map(function(){var e=P(function*(e){e.overrides&&n.options.addOverrides(e.channelId,e.overrides),e.renditions=yield n.filterRenditions(e.renditions),n.modules.renditions.setRenditions(e.channelId,e.renditions)});return function(t){return e.apply(this,arguments)}}())),!i)throw Vi(`external`);let a=n.options.getOverride(`sizeBasedResolutionCapEnabled`,n.channelId);a!==void 0&&(n.modules.constraintCap.sizeBasedResolutionCapEnabled=a);let o=n.options.getOverride(`minBufferTime`,n.channelId),s=n.options.getOverride(`maxBufferTime`,n.channelId);if((o||s)&&(n.modules.bufferTime.updateConfig({minBufferTime:n.options.get(`minBufferTime`,n.channelId),maxBufferTime:n.options.get(`maxBufferTime`,n.channelId)}),n.targetBufferTime=n.options.get(`minBufferTime`,n.channelId)),n.applyBurstEnabled(n.channelId),n.emit(`is live`,i.isLive),!i.isLive)throw Hi();let c=n.modules.connection.estimatedBandwidth;n.patchSubscription(i,c),yield n.initializeDecodingModule(),n.resetModules(),n.emit(`rendition levels`,n.modules.renditions.getRenditionLevels()),n.emit(`channels`,n.channels),n.emitLanguagesIfChanged(),n.sampleProcessingSesssions.clear();let l=n.options.get(`burstEnabled`,n.channelId)&&n.burstFits(c);return{video:n.targetSubscription.video,audio:n.targetSubscription.audio,burstMs:l?n.targetBufferTime:void 0,sessionId:n.sessionId,clientId:n.clientId,channelId:n.channelId,channelGroupId:n.options.get(`channelGroupId`),authToken:n.options.get(`authenticationToken`),textTrack:n.textTrack}});return function(t){return e.apply(this,arguments)}}()),m(this,`emitLanguagesIfChanged`,()=>{let e=this.modules.renditions.getLanguages(),t=this.latestEmittedLanguages;e.length===t.length&&e.every(e=>t.includes(e))||(this.logger.debug(`Emitting new languages`,{currentLanguages:e}),this.latestEmittedLanguages=e,this.emit(`languages`,this.latestEmittedLanguages))}),m(this,`updateTextTracks`,e=>{let t=e.filter(e=>e.codec===`webvtt`);t.forEach(e=>{if(!M(PC,this).find(t=>t.language===e.language)){if(this.modules.canvasModule){let t=this.modules.canvasModule.textTracks.addTextTrack(e.kind,e.label||e.language||``,e.language||``);M(PC,this).push(t)}else if(this.mediaElement instanceof HTMLVideoElement){let t=this.mediaElement.addTextTrack(e.kind,e.label||e.language,e.language);M(PC,this).push(t)}}});for(let e of M(PC,this))t.find(t=>t.language===e.language)?e.mode===`disabled`&&(e.mode=`hidden`):e.mode=`disabled`;this.emit(`text tracks`,this.textTracks)}),m(this,`cleanupTextTracks`,(e=this.currentTime-2e4)=>{M(PC,this).forEach(t=>{if(t.cues)for(let n of Array.from(t.cues))n.endTime*1e3<e-2e3&&t.removeCue(n)})}),m(this,`filterRenditions`,function(){var e=P(function*(e){let t=yield Promise.all(e.map(function(){var e=P(function*(e){if(Lr(e)){var t;return n.willUseMediaSource()&&!((t=Ke())!=null&&t.isTypeSupported(Rr(e)))?!1:n.willUseMediaSource()||e.codec===`opus`?!0:n.isWebCodecsAudioAvailable(n.channelId)?n.webCodecsRenditionSupport.checkAudioSupport(e):!1}if(!Ir(e)||!n.isSupportedVideoCodecProfile(e.codec,e.codecString))return!1;if(!n.willUseMediaSource())return n.isWebCodecsVideoAvailable(n.channelId)?n.webCodecsRenditionSupport.checkVideoSupport(e):!0;let r=yield tu(e);if(!r.supported)return!1;if(e.codec===`av1`&&!r.smooth&&!r.powerEfficient)return n.logger.debug(`discarding av1 rendition, neither smooth nor power efficient`,{codecString:e.codecString,width:e.width,height:e.height,bitRate:e.bitRate,capabilities:r}),!1;let i=n.options.getOverride(`maxVideoBitRate`,n.channelId);return i?i>=e.bitRate:!0});return function(t){return e.apply(this,arguments)}}())),r=e.filter((e,n)=>t[n]),i=e.filter((e,n)=>!t[n]);i.length>0&&n.logger.debug(`unsupported renditions filtered out`,{renditions:i.map(e=>R(R({codec:e.codec,codecString:e.codecString},Ir(e)?{width:e.width,height:e.height}:{}),{},{bitRate:e.bitRate}))});let a=r.filter(e=>e.codec===`h264`).reverse()[0],o=r.filter(e=>e.codec===`av1`).reverse()[0];return a&&o&&a.width>o.width&&a.height>o.height&&(n.logger.debug(`discarding av1 renditions, h264 ladder has higher resolution`,{bestH264:{width:a.width,height:a.height,bitRate:a.bitRate},bestAV1:{width:o.width,height:o.height,bitRate:o.bitRate}}),r=r.filter(e=>e.codec!==`av1`)),n.logger.debug(`supported renditions`,{renditions:r.map(e=>R(R({codec:e.codec,codecString:e.codecString},Ir(e)?{width:e.width,height:e.height}:{}),{},{bitRate:e.bitRate}))}),r});return function(t){return e.apply(this,arguments)}}()),m(this,`burstFits`,e=>{var t,n;let{video:r,audio:i,channelId:a}=this.modules.subscription.getTargetSubscription(),o=Zl(((t=this.modules.renditions.getVideoRenditions(a))==null?[]:t).filter(e=>e.codec===r.codec).map(e=>e.bitRate),r.bitRate),s=Zl(((n=this.modules.renditions.getAudioRenditions(a))==null?[]:n).filter(e=>e.codec===i.codec).filter(e=>!i.language||e.language===i.language).map(e=>e.bitRate),i.bitRate),c=Ql(e,o+s);return c||this.logger.info(`Skipping the join burst: the starting rendition needs more than half the bandwidth`,{estimatedBandwidth:e,videoBitRate:o,audioBitRate:s}),c}),m(this,`patchSubscription`,(e,t)=>{var n;let r=this.options.get(`maxInitialBitRate`),i=Math.min(this.options.get(`maxVideoBitRate`),r,t,this.targetSubscription.video.bitRate),a=Math.min(this.options.get(`maxAudioBitRate`),r,t,this.targetSubscription.audio.bitRate),o=this.options.get(`media`)===`audio`?[]:this.options.get(`videoCodecs`,this.channelId),s=this.supportedAudioCodecs(),c=e.renditions.filter(Lr),l=e.renditions.filter(Ir),u=s.find(e=>c.find(t=>t.codec===e)!==void 0),d=o.find(e=>l.find(t=>t.codec===e)!==void 0),f=c.map(e=>e.language);this.logger.debug(`supported and selected codecs`,{audioCodecs:s,videoCodecs:o,audioCodec:u,videoCodec:d});let p=(n=this.modules.subscription.getTargetSubscription().audio.language)==null?this.options.get(`language`):n;if(d&&this.abrEnabled&&this.options.get(`burstEnabled`,this.channelId)){let e=c.filter(e=>e.codec===u),n=e.filter(e=>e.language===p),r=Xl(t,l.filter(e=>e.codec===d).map(e=>e.bitRate),(n.length?n:e).map(e=>e.bitRate));i=Math.min(i,r)}if(d){let e=this.options.get(`maxSize`);this.modules.subscription.setVideoConstraint(R({codec:d,bitRate:this.abrEnabled?i:this.options.get(`maxVideoBitRate`)},e))}u&&(this.modules.subscription.setAudioConstraint({codec:u,bitRate:this.abrEnabled?a:this.options.get(`maxAudioBitRate`),language:p}),(p===void 0||!f.includes(p))&&this.modules.subscription.setLanguage(f[0])),this.alignSizeAndBitRate(this.targetSubscription);let m=this.modules.subscription.getTargetSubscription();this.emitter.emit(`subscription changed`,{to:m,from:this.modules.subscription.getCurrentSubscription()})}),m(this,`isSupportedVideoCodecProfile`,(e,t)=>{if(this.willUseMediaSource()){let n=Ke();return n?n.isTypeSupported(Rr({codec:e,codecString:t})):!0}if(this.isWebCodecsVideoAvailable(this.channelId)&&(e===`h264`||e===`h265`||e===`av1`))return!0;if(e===`h264`){let e=!!(t!=null&&t.startsWith(`avc1.42`)),n=!!(t!=null&&t.startsWith(`avc1.66.`));return e||n}return!(e===`h265`||e===`av1`)}),m(this,`supportedAudioCodecs`,()=>{if(this.options.get(`media`)===`video`)return[];let 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}),m(this,`initializeDecodingModule`,P(function*(){var e;let t=n.currentRenditionLevel,r=[];if(!t)throw new W(`No currentRenditionLevel`,{code:`no_current_rendition_level`,isFatal:!1});if(t!=null&&t.video&&r.push({type:`video`,mimeType:Rr(t.video),codec:t.video.codec}),t!=null&&t.audio&&r.push({type:`audio`,codec:t.audio.codec,mimeType:Rr(t.audio),channels:t.audio.channels,sampleRate:t.audio.sampleRate}),r.length===0)throw new W(`Can't initialize decoding module without tracks`,{code:`no_tracks`,isFatal:!1});if(n.willUseMediaSource()&&n.element instanceof HTMLMediaElement){n.emitter.emit(`flush buffers`);try{var i;yield(i=n.modules.mseModule)==null?void 0:i.setSourceBuffers(r)}catch(e){throw e instanceof Il?(n.logger.debug(`Abandoning decoding module setup for a disposed source buffer`),new W(`Source buffer setup was superseded`,{code:`start_failed`,isFatal:!1,type:`internal`,source:e})):e}return}let a=n.shouldUseWebCodecs(n.channelId),o=n.options.get(`webcodecsHardwareAcceleration`,n.channelId),s=n.shouldUseOffscreenCanvas(n.channelId)&&a,c=typeof OffscreenCanvas<`u`&&typeof HTMLCanvasElement<`u`&&typeof HTMLCanvasElement.prototype.transferControlToOffscreen==`function`,l=s&&c&&typeof VideoDecoder<`u`,u,d;if(l)try{d=document.createElement(`canvas`),Gr(d),u=d.transferControlToOffscreen()}catch(e){u=void 0,d=void 0,n.logger.warn(`Failed to enable OffscreenCanvas; falling back to main thread rendering`,{error:e})}else s&&n.logger.warn(`OffscreenCanvas requested but not supported; falling back to main thread rendering`);let f=n.capturesCanvasOnWebKit(u),p=yield Gx.create(n.emitter,n.logger.createContext(`DecoderModule`),n.options.get(`logLevel`),r,n.playbackSource,n.pool,a,o,u,f),{videoRenderer:m}=p.getStatistics(),h=n.modules.canvasModule;if(h instanceof gS)if(m===`OffscreenCanvas`&&d){h.setVideoRenderingEnabled(!1);let e=n.element;e.parentElement?e.parentElement.replaceChild(d,e):n.logger.warn(`OffscreenCanvas rendering is active but the current element is not attached to the DOM. Updating internal element reference only.`),n.offscreenCanvasElement=d,n.setElement(d)}else{h.setVideoRenderingEnabled(!0),n.offscreenCanvasElement=void 0;let e=h.element();if(e!==n.element){let t=n.element;t.parentElement&&t.parentElement.replaceChild(e,t),n.setElement(e)}}else h instanceof CS&&(h.setBackgroundPlaybackEnabled(n.isBackgroundPlayEnabled(n.channelId)),m===`OffscreenCanvas`&&d?(h.setOffscreenCanvas(d),n.offscreenCanvasElement=d,f&&n.connectWebKitVideoOutput(p,h)):(h.setVideoTrack(void 0),h.setOffscreenCanvas(void 0),n.offscreenCanvasElement=void 0));(e=n.modules.decoder)==null||e.unload(),n.modules.decoder=p,n.isHiddenWithBackgroundPlayback()&&n.modules.decoder.enableBackgroundTimers(),n.modules.decoder.setVideoRenderingEnabled(n.isVideoOnScreen()),n.modules.decoder.load(),n.setupOffscreenSubtitleRouting()})),m(this,`capturesCanvasOnWebKit`,e=>!!e&&this.browser.platform.isWebKit&&this.modules.canvasModule instanceof CS),m(this,`connectWebKitVideoOutput`,(e,t)=>{let n=()=>{t.setVideoTrack(void 0),this.browser.platform.isIOS&&e.setMaxVideoCanvasPixels(MC)};e.onVideoTrackLost(e=>{this.logger.warn(`Worker video track lost, falling back to canvas capture`,{error:e}),n()});let r=e.videoTrack;r?t.setVideoTrack(r):n()}),m(this,`setupOffscreenSubtitleRouting`,()=>{if(this.offscreenSubtitleInterval!==void 0&&(clearInterval(this.offscreenSubtitleInterval),this.offscreenSubtitleInterval=void 0),!this.offscreenCanvasElement||!this.modules.decoder||this.modules.canvasModule instanceof CS)return;let e=this.modules.decoder,t=this.modules.canvasModule;if(!t)return;let n=!1;this.offscreenSubtitleInterval=setInterval(()=>{var r,i,a,o;if(!t.textTracks.language){n&&(e.setSubtitleCues([],0,0,1,0),n=!1);return}n=!0;let s=t.textTracks.getActiveCues(this.currentTime/1e3).map(e=>({text:e.text})),c=((r=this.element)==null?void 0:r.clientWidth)||0,l=((i=this.element)==null?void 0:i.clientHeight)||0,u=((a=this.element)==null?void 0:a.style.getPropertyValue(`--vindral-subtitle-offset`))||((o=this.element)==null?void 0:o.style.getPropertyValue(`--vindral-control-bar-offset`)),d=parseInt(u||`0`,10)||0;e.setSubtitleCues(s,c,l,globalThis.devicePixelRatio||1,-d)},100)}),m(this,`unload`,P(function*(){var t,r,i;n.logger.debug(`Unloading modules...`),n.offscreenSubtitleInterval!==void 0&&(clearInterval(n.offscreenSubtitleInterval),n.offscreenSubtitleInterval=void 0),yield Promise.all(Object.values(n.modules).map(e=>e==null?void 0:e.unload())),(t=n.wakeLock)==null||t.unload(),n.pool=new re(e.MAX_POOL_SIZE),(r=(i=n.playbackSource).unload)==null||r.call(i),n.element.remove(),n.emitter.reset(),n.encryptedMediaExtensions.unload(),n.reset(),n.logger.debug(`Unloaded modules`)})),m(this,`userInput`,()=>{this.play()}),m(this,`pause`,()=>{if(this.options.get(`pauseSupportEnabled`)&&(this.isUserPaused=!0,this.playbackState!==`paused`&&this.playbackSource.pause(),this.hasCalledConnect)){let e=!this.modules.documentState.isVisible;this.suspend(e),e&&this.disconnectForInactivePage(`Background playback paused`)}}),m(this,`yieldToInterruption`,()=>{if(!this.browser.platform.isWebKit&&(this.logger.info(`Yielding playback after an interruption`),this.options.get(`pauseSupportEnabled`)?this.pause():this.muted=!0,!this.modules.documentState.isVisible)){var e;(e=this.modules.mediaSession)==null||e.stop()}}),m(this,`fromNativeControls`,e=>{if(this.options.get(`pauseSupportEnabled`)){e===`pause`?this.pause():this.play();return}this.muted=e===`pause`,e===`play`&&this.play()}),m(this,`registerDebugInstance`,()=>{$l(this)}),m(this,`play`,()=>{var t;this.clearVisiblePauseDisconnect(),this.isUserPaused=!1,this.requestAudioSessionOnce(),this.hasCalledConnect?this.unsuspend():this.playbackState!==`playing`&&(this._connect(),self.addEventListener(`__vindral_register_debug__`,this.registerDebugInstance),this.modules.timer.setInterval(()=>this.cleanupTextTracks(),e.REMOVE_CUE_THRESHOLD)),(t=this.wakeLock)==null||t.enable(),this.playbackState===`paused`&&this.playbackSource.isActivated&&(this.resetModules(),this.emitter.emit(`flush buffers`),this.cleanupTextTracks(2**53-1)),this.playbackSource.play(),this.isHiddenWithBackgroundPlayback()&&this.scheduleInactivityDisconnect()}),m(this,`getStatistics`,()=>{let e=Object.values(this.modules).reduce((e,t)=>t&&`getStatistics`in t?R(R({},e),t.getStatistics()):e,this.getRuntimeInfo()),t=Math.round(this.timeActive>0?(e.bytesReceived||0)*8/(this.timeActive/1e3):0),n=this.uptime/36e5,r=Math.max(0,(e.connectCount||0)-1),i=n>0?r/n:0,a=this.timeActive/6e4,o=Math.max(a,1),s=a>0?(e.seekAdjustmentCount||0)/o:0,c=a>0?(e.timeshiftAdjustmentCount||0)/o:0;return TC(R(R({},e),{},{averageBitRate:t,reconnectsPerHour:i,seekAdjustmentsPerMinute:s,timeshiftAdjustmentsPerMinute:c}))}),m(this,`resetModules`,()=>{Object.values(this.modules).forEach(e=>{e&&`reset`in e&&e.reset()}),this.playbackSource instanceof eu&&this.modules.adaptivity.reset(jC),this.sampleProcessingSesssions.clear(),this.cleanupTextTracks(1/0),this.playbackSource.currentTime=0,this.playbackSource.isActivated=!1}),m(this,`disconnectForInactivePage`,e=>{if(this.clearInactivityDisconnect(),this.emitter.emit(`flush buffers`),!this.isBackgroundPlayEnabled(this.channelId)){var t;(t=this.modules.mediaSession)==null||t.stop()}this.connectionState!==`disconnected`&&this.modules.connection.disconnect(e)}),m(this,`scheduleInactivityDisconnect`,()=>{this.clearInactivityDisconnect(),this.inactivityDisconnectInterval=this.modules.timer.setInterval(()=>{let e=this.modules.pictureInPicture.isPictureInPictureActive(),t=this.playbackState===`paused`||this.muted&&!e;this.connectionState===`connected`&&t&&(this.emitter.emit(`flush buffers`),this.modules.connection.disconnect(`Background playback inactive timeout`),this.suspend(!0),this.clearInactivityDisconnect())},e.BACKGROUND_INACTIVITY_DISCONNECT_TIMEOUT)}),m(this,`onVisiblePause`,()=>{if(!this.browser.platform.isIOS){this.disconnectForVisiblePause();return}this.clearVisiblePauseDisconnect(),this.visiblePauseTimeout=this.modules.timer.setTimeout(()=>{this.visiblePauseTimeout=void 0,this.disconnectForVisiblePause()},e.VISIBLE_PAUSE_DISCONNECT_DELAY)}),m(this,`disconnectForVisiblePause`,()=>{this.isUserPaused=!0,this.suspend(),this.modules.connection.disconnect()}),m(this,`clearVisiblePauseDisconnect`,()=>{this.visiblePauseTimeout!==void 0&&(this.modules.timer.clearTimeout(this.visiblePauseTimeout),this.visiblePauseTimeout=void 0)}),m(this,`clearInactivityDisconnect`,()=>{this.inactivityDisconnectInterval!==void 0&&(this.modules.timer.clearInterval(this.inactivityDisconnectInterval),this.inactivityDisconnectInterval=void 0)}),m(this,`isHiddenWithBackgroundPlayback`,()=>!this.modules.documentState.isVisible&&this.shouldAllowBackgroundPlayback(this.channelId)),m(this,`isVideoOnScreen`,(e=this.modules.documentState.isVisible)=>e||this.modules.pictureInPicture.isPictureInPictureActive()),m(this,`isHiddenWithBackgroundPlayDisabled`,()=>!this.modules.documentState.isVisible&&!this.isBackgroundPlayEnabled(this.channelId)),m(this,`resumeModules`,()=>{Object.values(this.modules).forEach(e=>{e&&`unsuspend`in e&&e.unsuspend()})}),m(this,`getRuntimeInfo`,()=>{let e=this.modules.canvasModule instanceof CS?!0:void 0;return R({uptime:this.uptime,version:`4.7.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,mediaElementPaused:this.element&&`paused`in this.element?this.element.paused:void 0},this.userAgentInformation.getUserAgentInformation())}),m(this,`getPlaybackBufferState`,(e,t)=>{let n=t==null?void 0:t.getBufferState(e.currentTime);if(!n)return e;let r=e.playbackState===`buffering`||n.playbackState===`buffering`?`buffering`:e.playbackState===`paused`?`paused`:`playing`;return R(R({},e),{},{buffered:n.buffered,playbackState:r})}),m(this,`onMediaElementBufferState`,(e,t)=>{this.emitter.emit(`buffer state`,this.getPlaybackBufferState(e,t))}),m(this,`onMediaElementState`,e=>{var t;if(this.logger.info(`media element state`,{state:e}),this.isMediaElementPaused=e===`paused`,(t=this.modules.mediaSession)==null||t.refresh(),this.options.get(`pauseSupportEnabled`))if(e===`paused`)this.modules.documentState.isVisible&&this.onVisiblePause();else{if(this.clearVisiblePauseDisconnect(),this.isUserPaused=!1,this.isHiddenWithBackgroundPlayDisabled())return;this.unsuspend(),this.modules.connection.getState()===`disconnected`&&this.modules.connection.unsuspend()}}),m(this,`onBufferEvent`,e=>{this.emit(`buffer state event`,e);let t=!this.playbackSource.isActivated||this.playbackSource.isPaused;if(e===`filled`&&t){var n,r,i,a;let e=Math.max(this.currentTime,(n=(r=this.videoBufferedRanges[0])==null?void 0:r.start)==null?0:n,(i=(a=this.audioBufferedRanges[0])==null?void 0:a.start)==null?0:i);this.logger.info(`Buffer filled - starting playback`,{currentTime:e}),this.playbackSource.currentTime=e,this.modules.sync.activateSyncAdjustments(),this.playbackSource.isActivated=!0}else e===`drained`&&this.playbackSource.isPaused&&(this.playbackSource.isActivated=!1,this.modules.sync.deactivateSyncAdjustments())}),m(this,`timeToFirstFrame`,()=>{let e=this.modules.playback.getFirstFrameTime(),t=this.modules.connection.firstConnectStartTime;if(t!==void 0&&e!==void 0)return Math.round(e-t)}),m(this,`hiddenPauseIsStop`,()=>{var e;if(this.browser.platform.isWebKit||!this.browser.isMobile)return!1;let t=(e=this.modules)==null?void 0:e.decoder;return t?t.audioWebCodecsInUse:this.isWebCodecsAudioAvailable(this.channelId)}),this.options=new pC(R(R({},Hr),OC(t))),t.telemetryEnabled===void 0&&[`localhost`,`127.0.0.1`].includes(location.hostname)&&this.options.set(`telemetryEnabled`,!1);let a={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}},o=bn.get();o.setLevel(this.options.get(`logLevel`)),o.setDebug(!1),this.logger=o,this.webCodecsRenditionSupport=new AC(o),t.iosMediaElementEnabled!==void 0&&this.logger.warn(`Option iosMediaElementEnabled is deprecated and will be removed in a future release. Use streamToMediaElementEnabled instead.`);let s=(r=t.streamToMediaElementEnabled)==null?t.iosMediaElementEnabled:r;s!==void 0&&(this.options.set(`streamToMediaElementEnabled`,s),this.options.set(`iosMediaElementEnabled`,s)),t.iosBackgroundPlayEnabled!==void 0&&this.logger.warn(`Option iosBackgroundPlayEnabled is deprecated and will be removed in a future release. Use backgroundPlayEnabled instead.`);let c=(i=t.backgroundPlayEnabled)==null?t.iosBackgroundPlayEnabled:i;c!==void 0&&(this.options.set(`backgroundPlayEnabled`,c),this.options.set(`iosBackgroundPlayEnabled`,c));let l=t.mseEnabled!==void 0,u=t.decoders!==void 0;l&&this.logger.warn(`Option mseEnabled is deprecated and will be removed in a future release. Use decoders instead (e.g. decoders: ["wasm"]).`),l&&!u&&t.mseEnabled===!1&&this.options.set(`decoders`,[`wasm`]);let d=IS.create(this.emitter,this.logger.createContext(`PictureInPictureModule`)),f=this.options.get(`mediaSessionEnabled`)?xS.create(this.emitter,this.logger.createContext(`MediaSessionModule`),{metadata:this.options.get(`mediaSessionMetadata`),decoy:this.willUseMediaSource()||this.usesSplitCanvasAudio()?void 0:_u.create(this.logger.createContext(`AudioFocusDecoy`),this.yieldToInterruption),isMuted:()=>this.playbackSource.userMuted,isHidden:()=>!this.modules.documentState.isVisible,isSinkPaused:()=>this.isMediaElementPaused,releaseOnHiddenPause:this.hiddenPauseIsStop,isSuppressed:this.isHiddenWithBackgroundPlayDisabled,holdDecoyWhilePaused:this.holdsDecoyWhilePaused(),keepDecoyWhenMuted:this.isWebKitCanvasPath(),pauseMeansMute:!this.options.get(`pauseSupportEnabled`)}):void 0,p=sr.create(),h=ex.create(this.emitter,this.logger.createContext(`ConnectionModule`),{reconnectHandler:this.options.get(`reconnectHandler`),options:this.options,onConnectInfo:this.onConnectInfo}),g=JS.create(this.logger.createContext(`SubscriptionModule`),this.emitter,a),_=WS.create(this.emitter,g),v=HS.create(this.emitter,this.logger.createContext(`QualityOfServiceModule`),_),y=RS.create(this.emitter,this.logger.createContext(`PlaybackModule`),this,this.options.get(`minBufferTime`));this.encryptedMediaExtensions=new Xa(this.emitter,this.logger.createContext(`EncryptedMediaExtensions`),t.drm),this.drm={setHeaders:e=>{this.encryptedMediaExtensions.headers=e},setQueryParams:e=>{this.encryptedMediaExtensions.queryParams=e}};let b=qx.create(this.emitter),ee=this.options.get(`poster`),x=ee===!0?this.getThumbnailUrl():ee||void 0,S,te,ne;if(this.willUseMediaSource()){let e=new eu({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:x});e.on(`buffer state`,e=>this.onMediaElementBufferState(e,S)),e.on(`needs user input`,e=>this.emitter.emit(`needs user input`,e)),e.on(`volume state`,e=>this.emitter.emit(`volume state`,e)),e.on(`media element state`,e=>this.onMediaElementState(e)),this.element=e.element,this.playbackSource=e,Xa.isSupported()&&this.encryptedMediaExtensions.attach(e.element),S=OS.create(this.logger.createContext(`MseModule`),this.emitter,this.element),this.options.get(`pauseSupportEnabled`)||(te=uC.create(this.logger.createContext(`UnpauseModule`),[e],b)),this.options.get(`pictureInPictureEnabled`)&&this.emitter.emit(`add picture in picture listener`,{element:e.element})}else if(this.streamsToMediaElement()){let e=CS.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:x,offscreenCanvas:this.offscreenCanvasElement,bufferTime:this.options.get(`minBufferTime`),backgroundPlaybackEnabled:this.isBackgroundPlayEnabled(this.channelId),splitAudio:this.usesSplitCanvasAudio()});this.element=e.element().element,this.playbackSource=e,ne=e;let t=this.browser.platform.isIOS&&this.browser.platform.iosVersion<=15;this.options.get(`pictureInPictureEnabled`)&&!t&&this.emitter.emit(`add picture in picture listener`,{element:this.element}),this.options.get(`pauseSupportEnabled`)||(te=uC.create(this.logger.createContext(`UnpauseModule`),e.elements(),b))}else{let e;e=gS.create(this.emitter,this.logger.createContext(`LegacyCanvasModule`),this.pool,this,this.options.get(`muted`)||this.options.get(`media`)===`video`,this.options.get(`volume`),()=>{this.setElement(e.element())},this.options.get(`minBufferTime`)),this.element=e.element(),this.playbackSource=e,ne=e,this.options.get(`iosWakeLockEnabled`)&&(this.wakeLock=new Vl)}this.emitter.on(`channel reset`,this.resetModules),this.emitter.on(`no data timeout`,this.resetModules),this.emitter.on(`media element state`,e=>this.onMediaElementState(e)),this.emitter.on(`volume state`,e=>this.emit(`volume state`,e)),this.options.get(`pauseSupportEnabled`)||this.emitter.on(`exit picture in picture`,()=>p.setTimeout(()=>this.play(),0)),this.emitter.on(`constraint cap changed`,e=>{this.logger.info(`new cap set`,{cap:e}),this.alignSizeAndBitRate(this.targetSubscription)}),this.pictureInPicture={enter:()=>d.requestPictureInPicture(),exit:()=>d.exitPictureInPicture(),isActive:()=>d.isPictureInPictureActive(),isSupported:()=>d.isPictureInPictureSupported()},this.emitter.on(`error`,e=>{if(e.type()===`external`&&this.emit(`error`,e),e.isFatal())return()=>void this.unload()});let ie=this.willUseMediaSource(),C=ie?!this.browser.platform.isWebKit:!0,ae={getTargetBufferTime:()=>y.getTargetBufferTime(),getNextBufferedRangeStart:S?e=>S.getNextBufferedRangeStart(e):void 0},w=iC.create(this.emitter,this.logger.createContext(`SyncModule`),this.playbackSource,ae,C,ie),oe=tS.create(this.logger.createContext(`JitterModule`)),T=(this.options.get(`edgeUrl`)||this.options.get(`url`)).replace(`wss://`,`https://`).replace(`ws://`,`http://`).replace(`//lb.`,`//errors.`),se=new URL(`/telemetry`,T).toString();this.modules={telemetry:cC.create(this.logger.createContext(`TelemetryModule`),this.emitter,{url:se,enabled:this.options.get(`telemetryEnabled`),includeStats:!1,interval:5e3},this),bufferTime:xu.create(this.emitter,this.logger.createContext(`BufferTimeModule`),v,this,{maxBufferTime:this.options.get(`maxBufferTime`),minBufferTime:this.options.get(`minBufferTime`)}),incomingData:Qx.create(this.emitter),adaptivity:du.create(this.emitter,this.logger.createContext(`AdaptivityModule`),v,{cooldownTime:Math.max(this.options.get(`minBufferTime`),2e3)}),constraintCap:ax.create(this.emitter,this.element,_,this.options.get(`abrEnabled`)?this.options.get(`sizeBasedResolutionCapEnabled`):!1),event:Xx.create(this.emitter,this.logger.createContext(`EventModule`),w),sync:w,jitter:oe,documentState:b,connection:h,playback:y,pictureInPicture:d,mediaSession:f,timer:p,subscription:g,renditions:_,qualityOfService:v,mseModule:S,unpause:te,canvasModule:ne},this.modules.adaptivity.isEnabled=this.options.get(`abrEnabled`),this.emitter.on(`enter picture in picture`,()=>{var e;return(e=this.modules.decoder)==null?void 0:e.setVideoRenderingEnabled(!0)}),this.emitter.on(`exit picture in picture`,()=>{var e;return(e=this.modules.decoder)==null?void 0:e.setVideoRenderingEnabled(this.modules.documentState.isVisible)}),this.emitter.on(`media session: request play`,()=>this.fromNativeControls(`play`)),this.emitter.on(`media session: request pause`,()=>this.fromNativeControls(`pause`)),this.emitter.on(`media session: request stop`,()=>this.fromNativeControls(`pause`)),this.emitter.on(`native control`,e=>{this.options.get(`pauseSupportEnabled`)&&this.fromNativeControls(e)}),this.emitter.on(`page active`,e=>{var t,n;if((t=this.modules.decoder)==null||t.setVideoRenderingEnabled(this.isVideoOnScreen(e)),e)this.clearInactivityDisconnect(),this.isUserPaused||(this.logger.debug(`Unsuspending`),this.unsuspend(),this.usesSplitCanvasAudio()&&this.playbackSource.isPlayingAsRequested===!1&&(this.logger.debug(`Playing again after show`),this.play()));else if(this.clearVisiblePauseDisconnect(),this.logger.debug(`Suspending`),this.suspend(),this.shouldAllowBackgroundPlayback(this.channelId)){var r,i,a;(r=this.modules.decoder)==null||r.enableBackgroundTimers(),this.modules.connection.unsuspend(),this.modules.sync.unsuspend(),(i=this.modules.decoder)==null||i.unsuspend(),(a=this.modules.canvasModule)==null||a.unsuspend(),this.scheduleInactivityDisconnect()}else this.disconnectForInactivePage(this.isUserPaused?`Background playback paused`:`Background playback disabled`);(n=this.modules.mediaSession)==null||n.refresh()}),this.emitter.on(`pageshow`,e=>{if(!e.persisted||this.isUserPaused)return;let t=this.shouldAllowBackgroundPlayback(this.channelId),n=document.visibilityState===`visible`;if(!n&&!t){this.logger.debug(`Ignoring pageshow while hidden`);return}if(this.logger.debug(`Resuming after pageshow`),!n){var r;(r=this.modules.decoder)==null||r.enableBackgroundTimers()}this.resumeModules(),this.isSuspended=!1,this.isHiddenWithBackgroundPlayback()&&this.scheduleInactivityDisconnect()});let ce;this.emitter.on(`context switch complete`,()=>{ce||(ce=window.setTimeout(()=>{window.clearTimeout(ce),ce=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`,e=>this.emit(`needs user input`,e)),this.emitter.on(`event`,e=>{switch(e.type){case`metadata`:this.emit(`metadata`,e);break;case`channel switch`:this.emit(`channel switch`,{channelId:e.channelId});break;case`language switch`:this.emit(`language switch`,{language:e.language});break}}),this.emitter.on(`buffer state event`,this.onBufferEvent),this.emitter.on(`playback state`,e=>this.emit(`playback state`,e)),this.emitter.on(`rendition level changed`,({to:e})=>{e&&this.emit(`rendition level`,e)}),this.emitter.on(`connection state`,e=>{this.emit(`connection state`,e)}),this.emitter.on(`recovered from media error`,()=>{this.modules.adaptivity.reset(this.targetBufferTime*2),!this.isUserPaused&&this.visiblePauseTimeout===void 0&&this.playbackSource.play()}),this.emitter.once(`connect info`,e=>{var t,n;let r=((t=(n=e.telemetry)==null?void 0:n.probability)==null?1:t)>=Math.random();if(e.telemetry){var i;(i=this.modules.telemetry)==null||i.unload(),this.modules.telemetry=cC.create(this.logger.createContext(`TelemetryModule`),this.emitter,R(R({},e.telemetry),{},{enabled:this.options.get(`telemetryEnabled`)&&r}),this),this.modules.telemetry.load()}}),this.emitter.on(`adapt level`,e=>{let t=this.modules.renditions.getRenditionLevels(),n=this.modules.renditions.getRenditionLevel(),r=t.findIndex(e=>e===n),i=t.length-1,a=r;switch(e){case`upgrade`:{var o,s,c,l,u;let e=Math.min(r+1,i),n=t[e],d=(o=this.modules.connection.estimatedBandwidth)==null?zr():o,f=((s=n==null||(c=n.audio)==null?void 0:c.bitRate)==null?0:s)+((l=n==null||(u=n.video)==null?void 0:u.bitRate)==null?0:l),p=d*2>f;n&&p&&this.modules.adaptivity.isQoSOk(n)&&(a=e)}break;case`downgrade`:a=Math.max(r-1,0);break;case`double downgrade`:a=Math.max(r-2,0);break;case`reconnect`:if(r===0||this.modules.qualityOfService.timeSpentBufferingLast(6e3)>5e3){if(this.modules.connection.lastConnectionTime===void 0||performance.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 a=0}if(a===r)return;let d=t[a];this.alignSizeAndBitRate(R(R({},this.targetSubscription),{},{video:R(R({},this.targetSubscription.video),d==null?void 0:d.video),audio:R(R({},this.targetSubscription.audio),d==null?void 0:d.audio)})),this.emitter.emit(`adapted level`)}),this.emitter.on(`text track data`,e=>{let t=M(PC,this).find(t=>t.language===e.language),n=this.modules.sync.getTimeshiftOffset()/1e3,r=n-M(NC,this);if(A(NC,this,n),t){if(t.cues)for(let e of t.cues)e.startTime-=r,e.endTime-=r;for(let r of e.cues){let e=new VTTCue(r.startTime-n,r.endTime-n,r.text);t.addCue(e)}}}),this.emitter.on(`native text track selected`,e=>{this.textTrack=e}),this.emitter.on(`received signal`,e=>{let t=e,n=this.modules.subscription.getCurrentSubscription();switch(this.logger.debug(`received`,R({},t)),t.type){case`client ip`:this.clientIp=t.ip;break;case`renditions`:this.updateTextTracks(t.renditions),A(FC,this,this.filterRenditions(t.renditions).then(e=>{this.emitter.emit(`renditions`,{renditions:e,channelId:this.currentSubscription.channelId}),this.emit(`rendition levels`,this.modules.renditions.getRenditionLevels()),this.emitLanguagesIfChanged()}).finally(()=>{A(FC,this,void 0)}));break;case`subscription changed`:var r;try{kC(t.subscription)}catch(e){this.emitter.emit(`error`,new W(`Subscription failed validation`,{source:e instanceof Error?e:void 0,isFatal:!1,code:`subscription_failed_validation`}))}this.emitter.emit(`subscription changed`,{reset:t.reset,to:t.subscription,from:this.modules.subscription.getCurrentSubscription()}),t.reset&&n.channelId!==t.subscription.channelId&&(this.emit(`error`,Ji(t.subscription.channelId)),this.emit(`channel switch failed`,{channelId:n.channelId})),this.modules.sync.allowTimeshiftOnAudio=!((r=t.subscription.video)!=null&&r.codec),this.modules.adaptivity.reset();break;case`timing info`:this.modules.sync.updateChannelSyncInfo(t.timingInfo.channelId,t.timingInfo),this.emit(`server wallclock time`,t.timingInfo.wallclockTime);break}}),this.emitter.on(`channel switch timeout`,e=>{this.emit(`error`,Ji(e)),this.emit(`channel switch failed`,{channelId:this.currentSubscription.channelId})}),this.emitter.on(`received data`,e=>{let t=this.modules.subscription.getCurrentSubscription(),n=jl(e);if(!t){this.logger.warn(`Received unwanted message`,R({},n));return}D(R(R({},n),{},{channelId:t.channelId}))}),this.emitter.on(`received moq data`,e=>{let t=e.payload.mediaType(),n=e.channelId,r=e.renditionId,i=this.modules.sync.processFragment(n,e.payload,r),a=i.unbackedSamplesCount();if(a>0&&this.unbackedSamplesWarned.shouldNotify(n,r)&&this.logger.warn(`Fragment declares more samples than its payload holds`,{unbackedSamples:a,samplesCount:i.samplesCount(),channelId:n,renditionId:r}),t!==`text`&&this.modules.jitter.recordSample({type:t,renditionId:r,timestamp:i.baseMediaDecodeTime(),timescale:i.timescale()}),e.switchInfo.channelId&&(e.switchInfo.drmTransition&&this.emitter.emit(`error`,Yi(`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:e.switchInfo.channelId,timestamp:i.baseMediaDecodeTime()/i.timescale()*1e3})),e.switchInfo.language&&this.modules.event.addEvent({type:`language switch`,language:e.switchInfo.language,timestamp:i.baseMediaDecodeTime()/i.timescale()*1e3}),this.modules.incomingData.add(t,e.payload.rawBytes().byteLength),(t===`video`||t===`audio`)&&this.hasListeners(`cmaf fragment`)&&this.emit(`cmaf fragment`,{mediaType:t,initSegment:i.header().rawBytes().slice(),fragment:i.rawBytes().slice(),isKeyframe:i.startsWithKeyframe()}),i.fragment().emsgs.forEach(e=>{if(!e.presentationTime)return;let t=Oo(e.data);t&&this.modules.event.addEvent({id:e.id,timestamp:e.presentationTime/e.timescale*1e3-this.modules.sync.getTimeshiftOffset(),content:t.txx.value,type:`metadata`})}),this.modules.decoder){var o,s;let a=(o=i.header().init().moov.traks[0])==null?void 0:o.mdia.minf.stbl.stsd,m=(s=a==null?void 0:a.codec)==null?`h264`:s,h;if(m===`h264`){var c;h=a==null||(c=a.avc1)==null?void 0:c.avcC.bytes}else if(m===`h265`){var l,u,d;let e=(l=a==null||(u=a.hvc1)==null?void 0:u.data())==null?a==null||(d=a.hev1)==null?void 0:d.data():l;e&&(h=Eo(e))}else if(m===`av1`&&a!=null&&a.av01)h=qc(a.av01.data());else if(m===`aac`){var f;h=a==null||(f=a.mp4a)==null||(f=f.esds)==null?void 0:f.decoderConfig}else if(m===`opus`){var p;h=xl(a==null||(p=a.opus)==null?void 0:p.dops)}if(h){let i=h.buffer.slice(h.byteOffset,h.byteOffset+h.byteLength);if(t===`text`)throw Error(`Subtitles are not supported`);this.emitter.emit(`init segment`,{initSegment:{channelId:n,renditionId:r,data:i,timescale:1e3,type:t,codec:m,codecString:e.codecString},mimeType:t})}else m&&this.logger.warn(`Failed to extract init data for codec`,{codec:m,channelId:n,renditionId:r});let g=0;for(let e=0;e<i.samplesCount();e++){let t=i.sample(e);if(!t){g++;continue}this.emitter.emit(`coded sample`,R(R({},t),{},{renditionId:r,channelId:n,data:t.data.buffer.slice(t.data.byteOffset,t.data.byteOffset+t.data.byteLength)}))}g>0&&this.unextractableSamplesWarned.shouldNotify(n,r)&&this.logger.warn(`Dropped samples the demuxer could not extract`,{droppedSamples:g,samplesCount:i.samplesCount(),channelId:n,renditionId:r})}else this.emitter.emit(`fragment`,{mimeType:e.mimeType,codec:e.codec,fragment:i,channelId:n,renditionId:r})});let le=this.options.get(`container`);le&&this.attach(le),this.logger.info(`Created Vindral instance`,{options:this.options});let D=function(){var e=P(function*(e){let t=e.channelId;M(FC,n)&&(yield M(FC,n));let r=n.modules.renditions.getRendition(e.renditionId,t);if(!Ol(e.flags)){if(kl(e.flags)){let t=new TextDecoder().decode(e.payload),r=n.modules.sync.getTimeshiftOffset();if(e.renditionId!==0){let e=vr(t);if(e&&e.language!==void 0){let t=new ql,i=[];try{i=t.parse(e.content||``)}catch(e){n.logger.warn(`failed to parse WebVTT segment, dropping it`,e)}let a=r/1e3,o=M(PC,n).find(t=>t.language===e.language),s=a-M(NC,n);if(A(NC,n,a),o){if(o.cues)for(let e of o.cues)e.startTime-=s,e.endTime-=s;for(let e of i){let t=new VTTCue(e.startTime-a,e.endTime-a,e.text);o.addCue(t)}}}}else n.modules.event.addEvent({timestamp:e.timestamp/e.timescale*1e3-n.modules.sync.getTimeshiftOffset(),content:t,type:`metadata`})}else if(r!=null&&r.codec){let i=Mr(r.codec);if(i===`text`)throw Error(`Subtitles are not supported`);if(n.modules.incomingData.add(i,e.payload.byteLength),Dl(e.flags)){let a=R(R({type:i,data:e.payload,codec:r.codec,codecString:r.codecString},e),{},{channelId:t},Ir(r)?{width:r.width,height:r.height}:{}),o=ml(a.codec,a.payload);o&&n.sizes.set(a.renditionId,o);let s=Rr({codec:r.codec,codecString:r.codecString});n.emitter.emit(`init segment`,{initSegment:a,mimeType:s}),n.emit(`initialized media`)}else{let t=bC(e,r,n.sizes.get(e.renditionId));n.modules.jitter.recordSample(t);let a=n.sampleProcessingSesssions.get(i);if(!a)a=hC(n.modules.sync.processSample(t)),n.sampleProcessingSesssions.set(i,a);else{let e=n.willUseMediaSource()&&n.isSwitchingRenditionLevel&&t.type===`video`,r=a(n.modules.sync.processSample(t),e),i=t;r.forEach(e=>{n.modules.event.extractEvent(e,i),n.emitter.emit(`coded sample`,e),i=e})}}}}});return function(t){return e.apply(this,arguments)}}();this.options.get(`maxVideoBitRate`)!==2**53-1&&(this.maxVideoBitRate=this.options.get(`maxVideoBitRate`)),this.options.get(`maxAudioBitRate`)!==2**53-1&&(this.maxAudioBitRate=this.options.get(`maxAudioBitRate`)),Qt(this.options.get(`maxSize`),Br())||(this.maxSize=this.options.get(`maxSize`)),this.options.get(`burstEnabled`)&&g.enableBurst(this.targetBufferTime)}set volume(e){this.playbackSource.volume=e}get volume(){return this.playbackSource.volume}set muted(e){let t=this.playbackSource.muted;e===this.playbackSource.userMuted&&(e||!t)||(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.applyBurstEnabled(this.channelId))}updateBufferTimeConfig(e){this.modules.bufferTime.updateConfig(e)}get playbackLatency(){var e;if(this.playbackSource.currentTime!==0)return this.targetBufferTime+((e=this.modules.sync.drift)==null?0:e)+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;let 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&&(M(PC,this).forEach(t=>{if(t.label===e)t.mode=`showing`;else{if(t.mode===`showing`&&t.cues)for(let e of[...t.cues])t.removeCue(e);t.mode=`hidden`}}),this.emitter.emit(`text track`,e))}get textTracks(){return M(PC,this).filter(e=>e.mode!==`disabled`).map(e=>e.label)}get textTrack(){var e;return(e=M(PC,this).find(e=>e.mode===`showing`))==null?void 0:e.label}get channelId(){var e,t;return(e=(t=this.modules)==null?void 0:t.subscription.getTargetSubscription().channelId)==null?this.options.get(`channelId`):e}set channelId(e){if(e===this.channelId)return;this.applyBurstEnabled(e),this.modules.subscription.setChannelId(e);let t=this.options.get(`media`)===`audio`?[]:this.options.get(`videoCodecs`),n=this.modules.renditions.getAudioRenditions(e),r=this.modules.renditions.getVideoRenditions(e),i=this.targetSubscription.audio.language,a=n==null?void 0:n.some(e=>e.language===i),o=t.find(e=>(r==null?void 0:r.find(t=>t.codec===e))!==void 0);o&&this.modules.subscription.setVideoCodec(o),this.logger.debug(`Channel switch - started`,{audioRenditions:n,targetSubscriptionLanguage:i,targetHasCurrentLanguage:a}),this.alignSizeAndBitRate(this.targetSubscription)}get maxSize(){var e,t;let{width:n,height:r}=(e=(t=this.modules.constraintCap.getCurrentConstraintCap())==null?void 0:t.video)==null?Br():e;return{width:n,height:r}}set maxSize(e){this.modules.constraintCap.setUserSpecifiedCap({video:{width:e.width,height:e.height}}),this.alignSizeAndBitRate(this.targetSubscription)}get maxVideoBitRate(){var e,t;return(e=(t=this.modules.constraintCap.getCurrentConstraintCap())==null?void 0:t.video.bitRate)==null?zr():e}set maxVideoBitRate(e){this.modules.constraintCap.setUserSpecifiedCap({video:{bitRate:e}}),this.alignSizeAndBitRate(this.targetSubscription)}get maxAudioBitRate(){var e,t;return(e=(t=this.modules.constraintCap.getCurrentConstraintCap())==null?void 0:t.audio.bitRate)==null?zr():e}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,n,r;return(e=(t=(n=this.modules.mseModule)==null?void 0:n.getBuffer(`video`))==null?(r=this.modules.decoder)==null?void 0:r.getBuffer(`video`):t)==null?[]:e}get audioBufferedRanges(){var e,t,n,r;return(e=(t=(n=this.modules.mseModule)==null?void 0:n.getBuffer(`audio`))==null?(r=this.modules.decoder)==null?void 0:r.getBuffer(`audio`):t)==null?[]:e}get videoKeyframeTimestamps(){var e,t,n,r;return(e=(t=(n=this.modules.mseModule)==null?void 0:n.getVideoKeyframeTimestamps())==null?(r=this.modules.decoder)==null?void 0:r.getVideoKeyframeTimestamps():t)==null?[]:e}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 Math.round(this.modules.qualityOfService.timeSpentBuffering())}get timeActive(){return Math.round(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 Math.round(performance.now()-this.createdAt)}suspend(e=!1){this.isSuspended&&!e||(Object.values(this.modules).forEach(e=>{e&&`suspend`in e&&e.suspend()}),this.isSuspended=!0)}unsuspend(){if(this.isSuspended){if(this.isHiddenWithBackgroundPlayDisabled()){this.logger.debug(`Deferring resume until the page is visible`);return}this.resumeModules(),this.isSuspended=!1}}alignSizeAndBitRate(e){let t=this.modules.constraintCap.constrainSubscription(R(R({},e),{},{video:R({},e.video),audio:R({},e.audio)})),n=this.modules.constraintCap.getUserSpecifiedCap();!this.abrEnabled&&n&&(t.audio.bitRate=n.audio.bitRate,t.video.bitRate=n.video.bitRate,t.video.width=n.video.width,t.video.height=n.video.height);let r=this.modules.renditions.getRenditionLevel(t);if(r){if(r.video&&(this.modules.subscription.setVideoBitRate(r.video.bitRate),this.modules.subscription.setSize(r.video)),r.audio)this.modules.subscription.setAudioBitRate(r.audio.bitRate),this.modules.subscription.setLanguage(r.audio.language);else if(t.audio.language){let e=this.modules.renditions.getAudioRenditions(t.channelId);!this.abrEnabled&&n&&(e=e==null?void 0:e.filter(e=>e.bitRate<n.audio.bitRate));let r=t.audio.language,i=e==null?void 0:e.some(e=>e.language===r),a=e==null?void 0:e.find(e=>e.language),o=(e==null?void 0:e.length)&&e[0]||void 0;i||(a?(this.logger.debug(`Randomizing language since target did not have current language`),this.modules.subscription.setAudioBitRate(a.bitRate),this.modules.subscription.setLanguage(a.language)):(this.logger.debug(`Randomizing audio rendition since target did not have current language`),o!=null&&o.bitRate&&this.modules.subscription.setAudioBitRate(o.bitRate),this.modules.subscription.setLanguage(o==null?void 0:o.language)))}}}get currentSubscription(){return this.modules.subscription.getCurrentSubscription()}get targetSubscription(){return this.modules.subscription.getTargetSubscription()}resolvedDecoder(e){return yC(this.options.get(`decoders`,e),this.browser.supportsMediaSource,this.options.get(`drm`))}usesSplitCanvasAudio(){return!this.willUseMediaSource()&&this.options.get(`streamToMediaElementEnabled`)&&Ft(this.browser)&&this.options.get(`media`)!==`audio`&&this.options.get(`media`)!==`video`&&this.browser.platform.isIOS}isWebKitCanvasPath(){return!this.willUseMediaSource()&&this.browser.platform.isWebKit}holdsDecoyWhilePaused(){return!(!this.isWebKitCanvasPath()||this.browser.platform.isIOS&&this.streamsToMediaElement()&&lt(this.browser,26))}streamsToMediaElement(){return this.options.get(`streamToMediaElementEnabled`)===!0&&Ft(this.browser)}requestAudioSessionOnce(){this.hasRequestedAudioSession||!this.options.get(`mediaSessionEnabled`)||!this.isWebKitCanvasPath()||!this.isBackgroundPlayEnabled(this.channelId)||(this.hasRequestedAudioSession=!0,this.logger.info(`Requested playback audio session`,{playback:De()}))}willUseMediaSource(){return this.resolvedDecoder()===`mse`}shouldUseWebCodecs(e){return this.resolvedDecoder(e)===`webcodecs`}isWebCodecsVideoAvailable(e){return this.shouldUseWebCodecs(e)&&typeof VideoDecoder<`u`}isWebCodecsAudioAvailable(e){return this.shouldUseWebCodecs(e)&&typeof AudioDecoder<`u`}shouldUseOffscreenCanvas(e){let t=this.options.get(`offscreenCanvasEnabled`,e);return t===void 0?this.shouldUseWebCodecs(e):t}isBackgroundPlayEnabled(e){return this.options.get(`backgroundPlayEnabled`,e)}shouldAllowBackgroundPlayback(e){return this.hasCalledConnect&&this.isBackgroundPlayEnabled(e)&&!this.isUserPaused}};m(IC,`MAX_POOL_SIZE`,10),m(IC,`REMOVE_CUE_THRESHOLD`,1e3*10),m(IC,`BACKGROUND_INACTIVITY_DISCONNECT_TIMEOUT`,1e3*15),m(IC,`VISIBLE_PAUSE_DISCONNECT_DELAY`,1e3);var LC={bar:`_bar_qm7bl_1`,hidden:`_hidden_qm7bl_47`},RC=`_withThumbnails_suenn_19`,zC={"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:RC,"hide-on-small":`_hide-on-small_suenn_27`},BC={"icon-button":`_icon-button_5fg7v_1`},VC={viewBox:`-10 -10 44 44`,content:`<g fill="none" stroke="white">
1321
+ `,NS=typeof self<`u`&&self.Blob&&new Blob([`(self.URL || self.webkitURL).revokeObjectURL(self.location.href);`,MS],{type:`text/javascript;charset=utf-8`})})),FS=r({VideoDecoderWorkerContext:()=>LS}),IS,LS,RS=n((()=>{H(),PS(),h(),R(),P(),LS=class{get isWebCodecs(){return this._isWebCodecs}get usingOffscreenCanvas(){return this._usingOffscreenCanvas}constructor(e,t,n,r,i=!1,a=!1){m(this,`decodedSamples`,[]),m(this,`codedSamples`,[]),m(this,`decoder`,void 0),m(this,`logger`,void 0),m(this,`errors`,new w(10)),m(this,`pool`,void 0),m(this,`getCurrentTime`,void 0),m(this,`_usingOffscreenCanvas`,void 0),m(this,`_isWebCodecs`,void 0),m(this,`_renderedFrameCount`,0),m(this,`_rendererDroppedFrameCount`,0),m(this,`statisticsQueue`,new w(1e3)),m(this,`samplesInTransitToWorker`,0),m(this,`workerPendingDecodeCount`,0),m(this,`videoTrackLostListener`,void 0),m(this,`targetSamplesInBatch`,4),m(this,`maxSamplesInFlight`,20),m(this,`unload`,()=>{this.decoder.postMessage({type:`unload`}),this.decoder.removeEventListener(`message`,this.onDecoderEvent),this.decoder.terminate(),this.statisticsQueue.clear(),this.codedSamples=[],this.decodedSamples.forEach(e=>{var t;return(t=e.videoFrame)==null?void 0:t.close()}),this.decodedSamples=[],this.samplesInTransitToWorker=0,this.workerPendingDecodeCount=0}),m(this,`enqueue`,e=>{this.codedSamples.push(L({},e)),this.flushQueuedSamples()}),m(this,`setRenderingEnabled`,e=>{this.decoder.postMessage({type:`render enabled`,enabled:e})}),m(this,`setMaxCanvasPixels`,e=>{this.decoder.postMessage({type:`max canvas pixels`,maxPixels:e})}),m(this,`_videoTrack`,void 0),m(this,`onVideoTrackLost`,e=>{this.videoTrackLostListener=e}),m(this,`setSubtitleCues`,(e,t,n,r,i)=>{this.decoder.postMessage({type:`subtitle cues`,cues:e,containerWidth:t,containerHeight:n,devicePixelRatio:r,bottomPadding:i})}),m(this,`prepareOutputBuffers`,e=>{this._isWebCodecs||e.forEach(e=>{let t=Math.ceil(e.width/16)*16*(Math.ceil(e.height/16)*16)*3/2;e.buffer=this.pool.get(t)})}),m(this,`flushQueuedSamples`,()=>{for(;this.codedSamples.length>0&&this.samplesInFlight()<this.maxSamplesInFlight;){let e=Math.max(this.maxSamplesInFlight-this.samplesInFlight(),0),t=Math.min(this.targetSamplesInBatch,this.codedSamples.length,e);if(t<=0)return;let n=this.codedSamples.slice(0,t);this.codedSamples=this.codedSamples.slice(t),this.prepareOutputBuffers(n),this.sendSamples(n),this.samplesInTransitToWorker+=n.length}}),m(this,`initSegment`,e=>{let t={type:`init segment`,initSegment:e};this.decoder.postMessage(t)}),m(this,`take`,()=>this.decodedSamples.shift()),m(this,`samplesInFlight`,()=>this.samplesInTransitToWorker+this.workerPendingDecodeCount),m(this,`getRenderStatistics`,()=>({renderedFrameCount:this._renderedFrameCount,rendererDroppedFrameCount:this._rendererDroppedFrameCount})),m(this,`takeEstimatedStatistics`,()=>this.statisticsQueue.pop()),m(this,`sendSamples`,e=>{var t;let n={type:`decode samples`,samples:e,timestamp:Date.now(),currentTime:(t=this.getCurrentTime)==null?void 0:t.call(this)},r=this._isWebCodecs?e.map(e=>e.data):e.flatMap(e=>[e.data,e.buffer]).filter(e=>e!==void 0);this.decoder.postMessage(n,r)}),m(this,`onDecoderEvent`,e=>{switch(e.data.type){case`ready`:break;case`video track lost`:var t;this._videoTrack=void 0,(t=this.videoTrackLostListener)==null||t.call(this,e.data.error);break;case`error`:this.errors.push(Error(e.data.message)),this.samplesInTransitToWorker=0,this.workerPendingDecodeCount=0;break;case`decoder error`:this.errors.push(Object.assign(Error(e.data.message),{name:e.data.name,stream:e.data.stream}));break;case`decoded samples`:{typeof e.data.samplesAcceptedCount==`number`&&e.data.samplesAcceptedCount>0&&(this.samplesInTransitToWorker=Math.max(0,this.samplesInTransitToWorker-e.data.samplesAcceptedCount)),typeof e.data.decoderPendingCount==`number`&&e.data.decoderPendingCount>=0&&(this.workerPendingDecodeCount=e.data.decoderPendingCount);let t=e.data.timestamp,n=Date.now()-t;if(typeof e.data.estimatedSampleCount==`number`&&e.data.estimatedSampleCount>0&&typeof e.data.estimatedDecodeTimeSum==`number`&&typeof e.data.estimatedTransportTimeToWorkerSum==`number`){let t=e.data.estimatedSampleCount,r=e.data.estimatedDecodeTimeSum/t,i=e.data.estimatedTransportTimeToWorkerSum/t+n;for(let e=0;e<t;e++)this.statisticsQueue.push({decodeTime:r,transportTime:i})}e.data.samples.forEach(e=>{e.statistics&&(e.statistics.transportTimeFromWorker=n)}),typeof e.data.renderedFrameCount==`number`&&(this._renderedFrameCount=e.data.renderedFrameCount),typeof e.data.rendererDroppedFrameCount==`number`&&(this._rendererDroppedFrameCount=e.data.rendererDroppedFrameCount),this.decodedSamples.push(...e.data.samples),this.flushQueuedSamples()}break}}),this.decoder=e,this.logger=t,this.pool=n,this.getCurrentTime=r,this._isWebCodecs=i,this._usingOffscreenCanvas=a,this.decoder.addEventListener(`message`,this.onDecoderEvent)}get videoTrack(){return this._videoTrack}error(){return this.errors.pop()}},IS=LS,m(LS,`create`,function(){var e=N(function*(e,t,n,r=!1,i=`no-preference`,a,o,s=!1,c){let l=new jS,{isWebCodecs:u,usingOffscreenCanvas:d,videoTrack:f,videoTrackError:p}=yield new Promise((n,o)=>{let u=!1,d=setTimeout(()=>{u||(u=!0,f(Error(`Decoder worker initialization timed out`)))},1e4),f=e=>{if(u=!0,clearTimeout(d),l.removeEventListener(`message`,p),l.terminate(),e instanceof Error){o(e);return}o(Error(`Failed to initialize decoder worker`))},p=e=>{if(!u)switch(u=!0,clearTimeout(d),l.removeEventListener(`message`,p),e.data.type){case`ready`:n({isWebCodecs:e.data.isWebCodecs,usingOffscreenCanvas:e.data.usingOffscreenCanvas,videoTrack:e.data.videoTrack,videoTrackError:e.data.videoTrackError});break;case`error`:var t;f(Error((t=e.data.message)==null?`Failed to initialize decoder worker`:t));break;default:f(Error(`Failed to initialize decoder worker`));break}};l.addEventListener(`message`,p);let m={type:`init`,logLevel:t,useWebCodecs:r,webcodecsHardwareAcceleration:i,offscreenCanvas:a,videoTrackRequested:s,maxCanvasPixels:c};try{a?l.postMessage(m,[a]):l.postMessage(m)}catch(n){let o=n instanceof DOMException&&n.name===`DataCloneError`;if(a&&o){e.warn(`Failed to transfer OffscreenCanvas to worker, falling back to main-thread rendering`,n);try{l.postMessage({type:`init`,logLevel:t,useWebCodecs:r,webcodecsHardwareAcceleration:i,offscreenCanvas:void 0})}catch(e){f(e)}}else f(n)}}),m=new IS(l,e,n,o,u,d);return m._videoTrack=f,s&&!f&&e.info(`Worker video track unavailable, using canvas capture`,{error:p}),m});return function(t,n,r){return e.apply(this,arguments)}}())}));H(),h(),R(),P();var zS=5,BS=40,VS=1,HS=5,US=e=>{var t,n;return((t=e.maxCompositionOffsetMs)==null?0:t)-((n=e.minCompositionOffsetMs)==null?0:n)},WS=(e,t,n)=>{let r=[];for(let i of e){let e=r[r.length-1];if(e&&e.end>=t&&i.start-e.end<=n){e.end=Math.max(e.end,i.end);continue}r.push({start:i.start,end:i.end})}return r},GS=(e,t)=>{let n=e[e.length-1];n&&n.end>t&&n.start<t&&(n.end=t)},KS=100,qS=1e3,JS=class e{constructor(e,t,n,r,i=!1,a=!1,o=!1){m(this,`backgroundTimersEnabled`,!1),m(this,`timers`,this.createTimers()),m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`trackContexts`,void 0),m(this,`playbackSource`,void 0),m(this,`isLoaded`,!1),m(this,`isSuspended`,!1),m(this,`_webCodecsInUse`,void 0),m(this,`_audioWebCodecsInUse`,void 0),m(this,`_offscreenCanvasInUse`,void 0),m(this,`currentVideoDecodeRate`,2),m(this,`decodeRateGraceIntervals`,3),m(this,`isAudioEmitRetryScheduled`,!1),m(this,`videoKeyframeTimestamps`,[]),m(this,`load`,()=>{this.isLoaded=!0,this.armTimers(),this.emitter.on(`init segment`,this.onInitSegment),this.emitter.on(`coded sample`,this.decode),this.emitter.on(`flush buffers`,this.resetContexts)}),m(this,`enableBackgroundTimers`,()=>{this.backgroundTimersEnabled||(this.backgroundTimersEnabled=!0,this.replaceTimers())}),m(this,`unload`,()=>{this.isLoaded=!1,this.trackContexts.forEach(({decoderContext:e})=>e.unload()),this.timers.unload(),this.isAudioEmitRetryScheduled=!1,this.videoKeyframeTimestamps=[],this.emitter.off(`init segment`,this.onInitSegment),this.emitter.off(`coded sample`,this.decode),this.emitter.off(`flush buffers`,this.resetContexts)}),m(this,`resetContexts`,()=>{this.trackContexts.forEach(({decoderContext:e})=>{var t;(t=e.reset)==null||t.call(e)})}),m(this,`suspend`,()=>{this.isSuspended=!0}),m(this,`unsuspend`,()=>{this.isSuspended=!1,this.emitDecodedFrames(),this._audioWebCodecsInUse&&this.scheduleAudioEmitRetry()}),m(this,`armTimers`,()=>{let e=this._audioWebCodecsInUse?20:KS;this.timers.setInterval(this.emitDecodedFrames,e),this.timers.setInterval(this.emitDecodeRate,qS)}),m(this,`replaceTimers`,()=>{let e=this.isAudioEmitRetryScheduled;this.isAudioEmitRetryScheduled=!1,this.timers.unload(),this.timers=this.createTimers(),this.timers.isWorkerBackendUnavailable()&&this.logger.warn(`Background timer worker is unavailable (likely blocked by CSP or unsupported in this environment). Falling back to main-thread timers; hidden-tab playback may be throttled.`),this.isLoaded&&(this.armTimers(),e&&this.scheduleAudioEmitRetry())}),m(this,`getBuffer`,e=>{let t=this.trackContexts.get(e);return t&&this.playableRanges(t).map(e=>({start:e.start,end:e.end}))}),m(this,`getVideoKeyframeTimestamps`,()=>this.videoKeyframeTimestamps),m(this,`videoDecodeRate`,()=>this.currentVideoDecodeRate),m(this,`calculateVideoDecodeRate`,()=>{var e;if(this._webCodecsInUse)return 2;let t=this.trackContexts.get(`video`);if(!t)return 2**53-1;let n=(e=t.sampleDuration)==null?40:e,r=Ut(t.decodeTime.items()),i=Ut(t.transportTime.items()),a=r.average+i.average;return a<=0?2:Math.min(n/a,100)}),m(this,`getStatistics`,()=>{var e,t,n,r,i;let a=this.trackContexts.get(`video`),o=Ut((e=a==null?void 0:a.decodeTime.items())==null?[]:e),s=Ut((t=a==null?void 0:a.transportTime.items())==null?[]:t),c=Ut((n=(r=this.trackContexts.get(`audio`))==null?void 0:r.decodeTime.items())==null?[]:n),l=this._offscreenCanvasInUse?a==null||(i=a.getRenderStatistics)==null?void 0:i.call(a):void 0;return L(L({videoDecodeRate:this.videoDecodeRate(),videoDecodeTime:o,audioDecodeTime:c,videoTransportTime:s,videoKeyframeIntervalMs:Vt(this.videoKeyframeTimestamps)},l?{renderedFrameCount:l.renderedFrameCount,rendererDroppedFrameCount:l.rendererDroppedFrameCount}:{}),{},{videoRenderer:this._offscreenCanvasInUse?`OffscreenCanvas`:`Canvas`,videoDecoder:this._webCodecsInUse?`WebCodecs`:`WASM`,audioRenderer:`AudioContext`,audioDecoder:this._audioWebCodecsInUse?`WebCodecs`:`WASM`})}),m(this,`setVideoRenderingEnabled`,e=>{var t,n,r;this._offscreenCanvasInUse&&((t=this.trackContexts.get(`video`))==null||(r=(n=t.decoderContext).setRenderingEnabled)==null||r.call(n,e))}),m(this,`setMaxVideoCanvasPixels`,e=>{var t,n,r;this._offscreenCanvasInUse&&((t=this.trackContexts.get(`video`))==null||(r=(n=t.decoderContext).setMaxCanvasPixels)==null||r.call(n,e))}),m(this,`onVideoTrackLost`,e=>{var t,n,r;(t=this.trackContexts.get(`video`))==null||(r=(n=t.decoderContext).onVideoTrackLost)==null||r.call(n,e)}),m(this,`setSubtitleCues`,(e,t,n,r,i)=>{var a;if(!this._offscreenCanvasInUse)return;let o=(a=this.trackContexts.get(`video`))==null?void 0:a.decoderContext;o&&`setSubtitleCues`in o&&o.setSubtitleCues(e,t,n,r,i)}),m(this,`onInitSegment`,({initSegment:e})=>{var t;let n=(t=this.trackContexts.get(e.type))==null?void 0:t.decoderContext;if(!n)throw new U(`No known decoder context`,{code:`no_known_decoder_context`,isFatal:!1});n.initSegment(e)}),m(this,`decode`,e=>{var t,n,r;let i=this.trackContexts.get(e.type);if(!i)throw new U(`No known decoder context`,{code:`no_known_decoder_context`,isFatal:!1});if(this.isSuspended)return;let a=e.compositionTimeOffset||0,{decoderContext:o,buffer:s}=i;i.stream=`${e.channelId}/${e.renditionId}`;let c=(e.timestamp+a)/e.timescale*1e3,l=e.duration/e.timescale*1e3;l>0&&(i.sampleDuration=l);let u=i.sampleDuration||BS,d=e.timestamp/e.timescale*1e3,f=a/e.timescale*1e3,p=US(i),m=(t=s[s.length-1])==null?void 0:t.end,h=Math.max(u*HS,p+((n=i.frontierSampleDurationMs)==null?u:n)),g=m!==void 0&&c+h<m;i.lastDecodeTimestampMs=g?d:Math.max((r=i.lastDecodeTimestampMs)==null?d:r,d);let _=i.channelId!==void 0&&!uS(i.channelId,i.renditionId,e.channelId,e.renditionId);i.channelId=e.channelId,i.renditionId=e.renditionId,(g||_)&&(i.minCompositionOffsetMs=void 0,i.maxCompositionOffsetMs=void 0,i.hasAnchoredGop=!1,i.isReorderStructureStale=!0);let v=i.hasAnchoredGop===!0;if(e.isSync&&(i.hasAnchoredGop=!0),!g&&i.hasAnchoredGop){var y,b;i.minCompositionOffsetMs=Math.min((y=i.minCompositionOffsetMs)==null?f:y,f),i.maxCompositionOffsetMs=Math.max((b=i.maxCompositionOffsetMs)==null?f:b,f),v&&(i.isReorderStructureStale=!1)}let ee=US(i)>0;if(g)i.buffer=[{start:c,end:c+u}],i.frontierSampleDurationMs=u,e.type===`video`&&(this.videoKeyframeTimestamps=[]);else{var te;!ee&&!i.isReorderStructureStale&&GS(s,c+u);let e=(te=s[s.length-1])==null?void 0:te.end;(e===void 0||c+u>=e)&&(i.frontierSampleDurationMs=u),mr(s,c,c+u,zS)}if(i.playableRangesCache=void 0,e.type===`video`&&e.isSync){let e=this.videoKeyframeTimestamps[this.videoKeyframeTimestamps.length-1];e!==void 0&&c<e&&(this.videoKeyframeTimestamps=[]),this.videoKeyframeTimestamps.push(c),this.videoKeyframeTimestamps.length>20&&(this.videoKeyframeTimestamps=this.videoKeyframeTimestamps.slice(-20))}o.enqueue(e),this.emitDecodedFrames(),this._audioWebCodecsInUse&&e.type===`audio`&&this.scheduleAudioEmitRetry()}),m(this,`scheduleAudioEmitRetry`,()=>{this.isAudioEmitRetryScheduled||(this.isAudioEmitRetryScheduled=!0,this.timers.setTimeout(()=>{this.isAudioEmitRetryScheduled=!1,this.emitDecodedFrames()},0))}),m(this,`emitDecodedFrames`,()=>{let e;this.updateBufferState(),this.trackContexts.forEach((t,n)=>{var r,i,a,o;let s;for(;(s=(r=(i=t.decoderContext).error)==null?void 0:r.call(i))!==void 0;){var c;let e=`${(c=s.stream)==null?t.stream:c} ${s.name}: ${s.message}`;e!==t.lastReportedError&&(t.lastReportedError=e,this.emitter.emit(`error`,Ai(!1,s,n)))}for(;(e=t.decoderContext.take())!==void 0;){t.lastReportedError=void 0;let{statistics:n}=e;n&&(t.decodeTime.push(n.decodeTime),t.transportTime.push((n.transportTimeToWorker+n.transportTimeFromWorker)/n.samplesInBatch)),this.emitter.emit(`decoded frame`,e)}let l=(a=(o=t.decoderContext).takeEstimatedStatistics)==null?void 0:a.call(o);for(;l!==void 0;){var u,d;t.decodeTime.push(l.decodeTime),t.transportTime.push(l.transportTime),l=(u=(d=t.decoderContext).takeEstimatedStatistics)==null?void 0:u.call(d)}})}),m(this,`emitDecodeRate`,()=>{if(this.decodeRateGraceIntervals>0){this.decodeRateGraceIntervals--;return}this.currentVideoDecodeRate=this.calculateVideoDecodeRate(),this.emitter.emit(`video decode rate`,this.currentVideoDecodeRate)}),m(this,`playableRanges`,e=>{let t=US(e);if(t<=0)return e.buffer;if(e.playableRangesCache===void 0){var n,r;e.playableRangesCache=WS(e.buffer,((n=e.lastDecodeTimestampMs)==null?1/0:n)-Math.max(0,-((r=e.minCompositionOffsetMs)==null?0:r))-VS,t+(e.sampleDuration||BS)+VS)}return e.playableRangesCache}),m(this,`updateBufferState`,()=>{let e=this.playbackSource.currentTime,t,n=!0;this.trackContexts.forEach(r=>{var i,a,o,s;let c=this.playableRanges(r),l=(i=t==null||(a=t[t.length-1])==null?void 0:a.end)==null?0:i,u=(o=(s=c[c.length-1])==null?void 0:s.end)==null?0:o;(t===void 0||l>u)&&(t=c),hr(c,e)||(n=!1)}),t&&this.emitter.emit(`buffer state`,{buffered:t,currentTime:e,isPaused:this.playbackSource.isPaused,playbackState:n?`playing`:`buffering`})}),this.logger=t,this.emitter=e,this.trackContexts=n,this.playbackSource=r,this._webCodecsInUse=i,this._audioWebCodecsInUse=a,this._offscreenCanvasInUse=o}get audioWebCodecsInUse(){return this._audioWebCodecsInUse}createTimers(){return cr.create(this.backgroundTimersEnabled?{mode:`worker-preferred`}:void 0)}static create(t,n,r,i,a,o,s=!1,c=`no-preference`,l,u=!1,d){return N(function*(){let f=new Map,p=new Set,m=!1,h=!1,g=!1;for(let e of i){if(p.has(e.type)){n.warn(`Received duplicate track type for decoder initialization. Ignoring subsequent track.`,{trackType:e.type,codec:e.codec,mimeType:e.mimeType});continue}switch(p.add(e.type),e.type){case`audio`:{let t,r,i=!1;if(s){let{WebCodecsAudioDecoderContext:a}=yield Promise.resolve().then(()=>(yS(),mS));if(i=a.isSupported(),i)try{t=yield a.create(n.createContext(`WebCodecsAudio`)),h=!0}catch(t){r=t instanceof Error?t:Error(`Failed to initialize WebCodecs audio decoder`),e.codec===`opus`&&n.warn(`Failed to initialize WebCodecs audio decoder, falling back to WASM Opus decoder`,{codec:e.codec,error:r})}}if(!t)if(e.codec===`opus`){let{OpusDecoderContext:n}=yield Promise.resolve().then(()=>(AS(),DS));t=yield n.create(e.sampleRate||48e3,e.channels||2)}else{let t=s?r?`WebCodecs audio decoder initialization failed: ${r.message}`:i?`WebCodecs audio decoder could not be initialized.`:`WebCodecs AudioDecoder API is not supported in this environment.`:`WebCodecs audio decoding is disabled.`;throw ji(e.codec,t,r)}f.set(e.type,{buffer:[],decoderContext:t,decodeTime:new w(100),transportTime:new w(100),sampleDuration:40});break}case`video`:{let{VideoDecoderWorkerContext:t}=yield Promise.resolve().then(()=>(RS(),FS)),i=yield t.create(n.createContext(`VideoDecoderWorker`),r,o,s,c,l,()=>a.currentTime,u,d);m=i.isWebCodecs,g=i.usingOffscreenCanvas,f.set(e.type,{buffer:[],decoderContext:i,decodeTime:new w(100),transportTime:new w(100),sampleDuration:40,getRenderStatistics:i.getRenderStatistics});break}default:break}}return new e(t,n,f,a,m,h,g)})()}get videoTrack(){var e;if(this._offscreenCanvasInUse)return(e=this.trackContexts.get(`video`))==null?void 0:e.decoderContext.videoTrack}};H(),h(),R();var YS,XS=class{constructor(e){m(this,`emitter`,void 0),m(this,`isVisibleCount`,0),m(this,`isHiddenCount`,0),m(this,`isOnlineCount`,0),m(this,`isOfflineCount`,0),m(this,`isActive`,document.visibilityState===`visible`),m(this,`isBehindAnotherApp`,!1),m(this,`unload`,()=>{this.emitter.off(`fullscreen app switch`,this.onFullscreenAppSwitch),window.removeEventListener(`focus`,this.onVisibilityChanged),document.removeEventListener(`visibilitychange`,this.onVisibilityChanged),window.removeEventListener(`pageshow`,this.onPageShow),window.removeEventListener(`pagehide`,this.onPageHide),window.removeEventListener(`online`,this.onOnline),window.removeEventListener(`offline`,this.onOffline)}),m(this,`load`,()=>{this.emitter.on(`fullscreen app switch`,this.onFullscreenAppSwitch),window.addEventListener(`focus`,this.onVisibilityChanged),document.addEventListener(`visibilitychange`,this.onVisibilityChanged),window.addEventListener(`pageshow`,this.onPageShow),window.addEventListener(`pagehide`,this.onPageHide),window.addEventListener(`online`,this.onOnline),window.addEventListener(`offline`,this.onOffline)}),m(this,`unsuspend`,()=>{}),m(this,`getStatistics`,()=>L({isVisible:this.isVisible,isOnline:this.isOnline,isVisibleCount:this.isVisibleCount,isHiddenCount:this.isHiddenCount,isOnlineCount:this.isOnlineCount,isOfflineCount:this.isOfflineCount},Zt())),m(this,`onOnline`,()=>this.isOnlineCount++),m(this,`onOffline`,()=>this.isOfflineCount++),m(this,`onPageShow`,e=>{this.emitter.emit(`pageshow`,e),this.onVisibilityChanged()}),m(this,`onPageHide`,e=>this.emitter.emit(`pagehide`,e)),m(this,`onVisibilityChanged`,()=>{this.isBehindAnotherApp=!1,this.setIsActive(this.isVisible)}),m(this,`onFullscreenAppSwitch`,()=>{this.isBehindAnotherApp=!0,this.setIsActive(!1)}),m(this,`setIsActive`,e=>{e!==this.isActive&&(this.emitter.emit(`page active`,e),e?this.isVisibleCount++:this.isHiddenCount++),this.isActive=e}),this.emitter=e}get isOnline(){return navigator.onLine}get isVisible(){return document.visibilityState===`visible`&&!this.isBehindAnotherApp}};YS=XS,m(XS,`create`,e=>new YS(e)),H(),h(),R();var ZS,QS=e=>(t,n,r)=>t.timestamp<=n||t.timestampAdded<=r-e,$S=class e{constructor(t,n,r){m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`waitingEvents`,[]),m(this,`isTriggered`,QS(e.EVENT_TIMEOUT)),m(this,`timeSource`,void 0),m(this,`timers`,new cr),m(this,`load`,()=>{this.timers.setInterval(this.onBufferedStateChanged,e.EVENT_CHECK_INTERVAL),this.emitter.on(`add event`,this.addEvent)}),m(this,`unload`,()=>{this.timers.unload(),this.emitter.off(`add event`,this.addEvent)}),m(this,`addEvent`,e=>{this.logger.debug(`Adding event`,{event:e}),!this.waitingEvents.some(t=>t.id!==void 0&&t.id===e.id)&&this.waitingEvents.push(L(L({},e),{},{timestampAdded:performance.now()}))}),m(this,`extractEvent`,(e,t)=>{t.type===`video`&&e.channelId!==t.channelId&&this.addEvent({type:`channel switch`,channelId:t.channelId,timestamp:t.timestamp/t.timescale*1e3}),t.type===`audio`&&e.type===`audio`&&t.language!==void 0&&t.language!==e.language&&this.addEvent({type:`language switch`,language:t.language,timestamp:t.timestamp/t.timescale*1e3})}),m(this,`onBufferedStateChanged`,()=>{var e;let t=performance.now(),n=(e=this.timeSource.drift)==null?0:e,r=this.timeSource.serverCurrentTime-n;if(this.waitingEvents.length===0)return;let i=this.waitingEvents.filter(e=>this.isTriggered(e,r,t));this.waitingEvents=this.waitingEvents.filter(e=>!this.isTriggered(e,r,t)),i.forEach(e=>{this.logger.debug(`Emitting event`,{event:e}),this.emitter.emit(`event`,e)})}),this.logger=n,this.emitter=t,this.timeSource=r}};ZS=$S,m($S,`EVENT_TIMEOUT`,5e3),m($S,`EVENT_CHECK_INTERVAL`,20),m($S,`create`,(e,t,n)=>new ZS(e,t,n)),H(),h();var eC,tC=class e{constructor(t){m(this,`emitter`,void 0),m(this,`timers`,cr.create()),m(this,`bytesReceived`,new Map),m(this,`timeoutInterval`,void 0),m(this,`lastBytesUpdated`,performance.now()),m(this,`load`,()=>{this.emitter.on(`connection state`,this.onConnectionState),this.timers.setInterval(()=>this.bytesReceived.forEach(e=>e.tick()),100)}),m(this,`unload`,()=>{this.emitter.off(`connection state`,this.onConnectionState),this.timers.unload()}),m(this,`averageBitRate`,e=>{var t,n;return((t=(n=this.bytesReceived.get(e))==null?void 0:n.average)==null?0:t)*8}),m(this,`totalBytesReceived`,()=>{let e=0;return this.bytesReceived.forEach(t=>{e+=t.total}),e}),m(this,`add`,(t,n)=>{let r=this.bytesReceived.get(t);r||(r=new Kt(20),this.bytesReceived.set(t,r)),n>0&&(this.lastBytesUpdated=performance.now(),this.timeoutInterval||(this.timeoutInterval=this.timers.setInterval(this.checkTimeout,e.UPDATE_RECEIVED_BYTES_INTERVAL))),r.add(n)}),m(this,`getStatistics`,()=>({bytesReceived:this.totalBytesReceived(),videoBitRate:this.averageBitRate(`video`),audioBitRate:this.averageBitRate(`audio`)})),m(this,`onConnectionState`,t=>{this.clearTimeoutInterval(),t===`connected`&&(this.lastBytesUpdated=performance.now(),this.timeoutInterval=this.timers.setInterval(this.checkTimeout,e.UPDATE_RECEIVED_BYTES_INTERVAL))}),m(this,`checkTimeout`,()=>{let t=performance.now()-this.lastBytesUpdated;if(this.totalBytesReceived()===0&&t>e.NO_DATA_ERROR_TIMEOUT){this.emitter.emit(`error`,Wi()),this.emitter.emit(`reconnect`,`no incoming data`),this.clearTimeoutInterval();return}t>e.NO_DATA_TIMEOUT&&this.totalBytesReceived()>0&&(this.emitter.emit(`no data timeout`,this.totalBytesReceived()),this.clearTimeoutInterval())}),m(this,`clearTimeoutInterval`,()=>{this.timeoutInterval&&(this.timers.clearInterval(this.timeoutInterval),this.timeoutInterval=void 0)}),this.emitter=t}};eC=tC,m(tC,`NO_DATA_ERROR_TIMEOUT`,20*1e3),m(tC,`NO_DATA_TIMEOUT`,5*1e3),m(tC,`UPDATE_RECEIVED_BYTES_INTERVAL`,1e3),m(tC,`create`,e=>new eC(e)),H(),h();var nC=1e3,rC=50,iC=class e{constructor(e){m(this,`logger`,void 0),m(this,`trackingState`,new Map),m(this,`runningJitter`,new Map),m(this,`recentJitterSamples`,new Map),m(this,`load`,()=>{this.logger.debug(`JitterModule loaded`)}),m(this,`unload`,()=>{this.trackingState.clear(),this.runningJitter.clear(),this.recentJitterSamples.clear(),this.logger.debug(`JitterModule unloaded`)}),this.logger=e}static create(t){return new e(t)}getTrackingKey(e,t){return`${e}-${t}`}recordSample(e){var t;let n=this.getTrackingKey(e.type,e.renditionId),r=performance.now(),i=e.timestamp/e.timescale*1e3,a=this.trackingState.get(n);if(!a){this.trackingState.set(n,{lastArrivalTime:r,lastTimestampMs:i,jitterSamples:new w(nC),interArrivalTimes:new w(nC)}),this.runningJitter.set(n,0),this.recentJitterSamples.set(n,new w(rC));return}let o=i-a.lastTimestampMs;if(o<=0){a.lastArrivalTime=r,a.lastTimestampMs=i;return}let s=r-a.lastArrivalTime,c=Math.abs(s-o);a.jitterSamples.push(c),a.interArrivalTimes.push(s);let l=(t=this.runningJitter.get(n))==null?0:t,u=l+(c-l)/16;this.runningJitter.set(n,u);let d=this.recentJitterSamples.get(n);d||(d=new w(rC),this.recentJitterSamples.set(n,d)),d.push(c),a.lastArrivalTime=r,a.lastTimestampMs=i}getJitterForType(e){for(let[i,a]of this.trackingState)if(i.startsWith(e)){var t,n,r;if(a.jitterSamples.items().length<1)return;let e=(t=this.runningJitter.get(i))==null?0:t,{min:o,max:s,average:c}=Ut((n=(r=this.recentJitterSamples.get(i))==null?void 0:r.items())==null?[]:n);return{min:Math.round(o),max:Math.round(s),last:Math.round(c),average:Math.round(e)}}}getRunningJitter(e){for(let[t,n]of this.runningJitter)if(t.startsWith(e))return n}reset(e,t){if(e!==void 0&&t!==void 0){let n=this.getTrackingKey(e,t);this.trackingState.delete(n),this.runningJitter.delete(n),this.recentJitterSamples.delete(n)}else if(e!==void 0)for(let t of this.trackingState.keys())t.startsWith(e)&&(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`)}}};H(),h(),P();var aC=()=>window.AudioContext||window.webkitAudioContext,oC=class e extends tn{constructor(){var t;super(),t=this,m(this,`context`,new(aC())),m(this,`timers`,cr.create()),m(this,`previousCurrentTime`,0),m(this,`_isStuck`,!1),m(this,`mediaStreamDestination`,void 0),m(this,`unload`,()=>(this.timers.unload(),this.context.removeEventListener(`statechange`,this.onStateChange),this.context.state===`closed`?Promise.resolve():this.context.close())),m(this,`createGain`,()=>this.context.createGain()),m(this,`createBuffer`,(e,t,n)=>this.context.createBuffer(e,t,n)),m(this,`createBufferSource`,()=>this.context.createBufferSource()),m(this,`getMediaStreamDestination`,()=>(this.mediaStreamDestination||(this.mediaStreamDestination=this.context.createMediaStreamDestination()),this.mediaStreamDestination)),m(this,`getDefaultDestination`,()=>this.context.destination),m(this,`createSplitter`,()=>this.context.createChannelSplitter(2)),m(this,`resume`,N(function*(){let e=!0,n=t.context.resume();n.then(()=>{e=!1},()=>{e=!1});try{return yield Promise.race([n,Dr(1e3,Li())])}catch(n){throw!e&&t.context.state!==`running`&&t.suspend().catch(S),n}})),m(this,`suspend`,N(function*(){var e;yield(e=t.context.suspend())==null?Promise.resolve():e})),m(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},e.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}};m(oC,`CHECK_INTERVAL`,1e3),H(),h(),P(),R();var sC,cC=150,lC=400,uC=e=>e===void 0?5:e<=cC?1:e<=lC?2:5,dC=class extends tn{get isContextRunning(){var e;return((e=this.audio)==null?void 0:e.state)===`running`}get contextState(){var e,t;return(e=(t=this.audio)==null?void 0:t.state)==null?`none`:e}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)}get userMuted(){return this._userProvidedMuted}set muted(e){this._userProvidedMuted=e,this._muted=e,this.setGain(this._volume)}get isPaused(){return!1}get currentTime(){return!this.audio||!this.audio.isRunning||this.audio.isStuck||this.startTimeIsInvalidated?this.clockSource.currentTime:this.audio.currentTime*1e3+this.clockDelta}set currentTime(e){this.logger.debug(`setting current time to`,{currentTime:e}),this.startTimeIsInvalidated=!0}get bufferTime(){return this._bufferTime}set bufferTime(e){this._bufferTime=e,this.audioBufferMultiplier=uC(e)}get sinkPaused(){return this._sinkPaused}set sinkPaused(e){if(this._sinkPaused&&!e){let e=this.clockSource.currentTime;this.preInitSampleQueue.filterPop(({timestamp:t,timescale:n})=>t/n*1e3>e),this.startTimeIsInvalidated=!0}this._sinkPaused=e}get audioNode(){return this.splitter}constructor(e,t,{muted:n,reInitWhenStuck:r,bufferTime:i}){var a;super(),a=this,m(this,`logger`,void 0),m(this,`audio`,void 0),m(this,`gainNode`,void 0),m(this,`splitter`,void 0),m(this,`_volume`,1),m(this,`_userProvidedMuted`,!1),m(this,`_muted`,!1),m(this,`startTime`,0),m(this,`samples`,new Float32Array),m(this,`preInitSampleQueue`,new w(500)),m(this,`unplayedBufferSources`,new w(100)),m(this,`sampleRate`,48e3),m(this,`channels`,2),m(this,`index`,0),m(this,`clockSource`,void 0),m(this,`clockDelta`,0),m(this,`startTimeIsInvalidated`,!0),m(this,`lastSampleTimestamp`,0),m(this,`reInitWhenStuck`,void 0),m(this,`ignoreSuspendCalls`,!1),m(this,`_bufferTime`,void 0),m(this,`_sinkPaused`,!1),m(this,`audioBufferMultiplier`,void 0),m(this,`isActivated`,!1),m(this,`unload`,N(function*(){var e,t;(e=a.gainNode)==null||e.disconnect(),yield(t=a.audio)==null?void 0:t.unload(),a.reset(),a.audio=void 0,a.gainNode=void 0})),m(this,`suspend`,()=>{this.setGain(0)}),m(this,`unsuspend`,()=>{if(this.setGain(this._volume),!at()){this.resume().catch(this.onUnsuspendFailure);return}this.restartContext()}),m(this,`restartContext`,()=>{var e;this.ignoreSuspendCalls=!!this.audio,(e=this.audio)==null||e.suspend().then(N(function*(){yield a.resume(),a.ignoreSuspendCalls=!1})).catch(this.onUnsuspendFailure)}),m(this,`flush`,(e=this.samples.length)=>{if(!this.audio||!this.gainNode)throw new U(`AudioContext must be initialized to flush`,{isFatal:!1,code:`audiocontext_must_be_initialized`});let t=Math.floor(e/this.channels);if(t<=0)return;let n=this.audio.createBufferSource(),r=this.audio.createBuffer(this.channels,t,this.sampleRate);if(this.channels===2){let e=r.getChannelData(0),n=r.getChannelData(1);for(let r=0;r<t;r++){let t=r*2;e[r]=this.samples[t],n[r]=this.samples[t+1]}}else if(this.channels===1)r.getChannelData(0).set(this.samples.subarray(0,t));else{let e=0;for(let n=0;n<this.channels;n++){e=n;let i=r.getChannelData(n);for(let n=0;n<t;n++)i[n]=this.samples[e],e+=this.channels}}let i=Math.max(this.startTime,0);n.buffer=r,n.connect(this.gainNode),this.splitter&&n.connect(this.splitter),n.start(i),this.unplayedBufferSources.push([i,n]),this.startTime+=r.duration}),m(this,`onDecodedFrame`,e=>{var t;if(this._sinkPaused||!(this.gainNode&&(t=this.audio)!=null&&t.isRunning)){if(e.type===`audio`){this.preInitSampleQueue.push(L(L({},e),{},{data:e.data.slice(0,e.data.length)}));let t=this.clockSource.currentTime;this.preInitSampleQueue.filterPop(({timestamp:e,timescale:n})=>e/n*1e3>t)}return}for(;!this.preInitSampleQueue.isEmpty();){let e=this.preInitSampleQueue.items();this.preInitSampleQueue.clear(),e.forEach(this.onDecodedFrame)}if(this.unplayedBufferSources.filterPop(([e,t])=>{var n,r;return((n=(r=this.audio)==null?void 0:r.currentTime)==null?0:n)<e}),e.type===`audio`){let 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){let e=this.audio.currentTime*1e3,n=this.clockSource.currentTime,r=(e+t-n)/1e3;this.clockDelta=n-e,this.startTime=r,this.startTimeIsInvalidated=!1,this.unplayedBufferSources.items().forEach(([e,t])=>{r<=e&&t.stop()})}let n=e.data.length*this.audioBufferMultiplier;this.samples.length!==n&&(this.index>0&&this.flush(this.index),this.samples=new Float32Array(n),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)}}),m(this,`play`,N(function*(){a.audio=a.getAudioContext(),yield a.resume()})),m(this,`pause`,()=>{}),m(this,`flushBuffer`,()=>{var e,t;this.unplayedBufferSources.items().forEach(([e,t])=>{try{t.stop()}catch(e){}}),this.unplayedBufferSources.clear(),this.preInitSampleQueue.clear(),this.samples=new Float32Array,this.index=0,this.lastSampleTimestamp=0,this.startTime=(e=(t=this.audio)==null?void 0:t.currentTime)==null?0:e,this.startTimeIsInvalidated=!0}),m(this,`resume`,N(function*(){if(!a._userProvidedMuted)try{var e;yield(e=a.audio)==null?void 0:e.resume(),a._muted=a._userProvidedMuted,a.startTimeIsInvalidated=!0}catch(e){throw a._muted=!0,e}})),m(this,`onUnsuspendFailure`,()=>{this.ignoreSuspendCalls=!1,this.emit(`state change`,`suspended`)}),m(this,`getAudioContext`,()=>this.audio?this.audio:this.setupContext()),m(this,`setupContext`,()=>{var e,t,n;return(e=this.audio)==null||e.unload(),this.audio=new oC,this.audio.on(`state`,e=>{this.logger.info(`AudioContext state change`,{state:e}),e===`running`&&(this._muted=this._userProvidedMuted,this.setGain(this._volume)),!this.ignoreSuspendCalls&&this.emit(`state change`,e)}),this.audio.on(`stuck`,()=>{if(!this.reInitWhenStuck){this.restartContext();return}this.logger.info(`Re-init audio context`),this.setupContext(),this.resume().catch(S),this.emit(`stuck`)}),(t=this.gainNode)==null||t.disconnect(),this.gainNode=this.audio.createGain(),this.setGain(this._volume),this.startTime=this.audio.currentTime,(n=this.splitter)==null||n.disconnect(),this.splitter=this.audio.createSplitter(),this.audio}),m(this,`setGain`,e=>{this.gainNode&&(this.gainNode.gain.value=this._muted?0:e)}),this._muted=n,this._userProvidedMuted=n,this.logger=e,this.clockSource=t,this.reInitWhenStuck=r,this._bufferTime=i,this.audioBufferMultiplier=uC(i)}useMediaStreamDestination(){var e;let t=this.getAudioContext(),n=t.getMediaStreamDestination();return(e=this.gainNode)==null||e.connect(n),t.isRunning||t.resume().catch(()=>{}),n}useDefaultDestination(){var e;let t=this.getAudioContext().getDefaultDestination();return(e=this.gainNode)==null||e.connect(t),t}};sC=dC,m(dC,`create`,(e,t,n)=>new sC(e,t,n)),h();var fC,pC=class{constructor(e,t,n,r,i,a){m(this,`staleFrameThresholdMs`,400),m(this,`pool`,void 0),m(this,`logger`,void 0),m(this,`videoRenderer`,new ha),m(this,`videoFrameCanvas2DRenderer`,null),m(this,`renderQueue`,[]),m(this,`clockSource`,void 0),m(this,`isFirstFrame`,!0),m(this,`usingWebCodecs`,!1),m(this,`onCanvasChangeCallback`,void 0),m(this,`onRendererErrorCallback`,void 0),m(this,`animationFrameRequest`,void 0),m(this,`firstFrameAnimationFrameRequest`,void 0),m(this,`pendingFirstFrameSample`,void 0),m(this,`renderedFrameCount`,0),m(this,`rendererDroppedFrameCount`,0),m(this,`renderTargetSize`,void 0),m(this,`load`,()=>{this.videoRenderer.load(),this.subscribeToContextLost(this.videoRenderer)}),m(this,`unload`,()=>(this.stopRender(),this.clearRenderQueue(),this.unsubscribeFromContextLost(this.videoRenderer),this.videoRenderer.unload(),this.videoFrameCanvas2DRenderer&&(this.unsubscribeFromContextLost(this.videoFrameCanvas2DRenderer),this.videoFrameCanvas2DRenderer.unload()),Promise.resolve())),m(this,`suspend`,()=>{this.clearRenderQueue(),this.stopRender()}),m(this,`unsuspend`,()=>{this.animationFrameRequest===void 0&&(this.animationFrameRequest=requestAnimationFrame(this.render))}),m(this,`element`,()=>this.usingWebCodecs&&this.videoFrameCanvas2DRenderer?this.videoFrameCanvas2DRenderer.canvas:this.videoRenderer.canvas),m(this,`getStatistics`,()=>({renderedFrameCount:this.renderedFrameCount,rendererDroppedFrameCount:this.rendererDroppedFrameCount})),m(this,`resetSize`,()=>{this.videoRenderer.resetSize()}),m(this,`setActiveCues`,(e,t)=>{this.usingWebCodecs&&this.videoFrameCanvas2DRenderer?this.videoFrameCanvas2DRenderer.setActiveCues(e,t):this.usingWebCodecs||this.videoRenderer.getTextRenderer().setActiveCues(e,t)}),m(this,`onDecodedFrame`,e=>{if(e.type===`video`)if(this.isFirstFrame)this.isFirstFrame=!1,this.pendingFirstFrameSample=e,this.firstFrameAnimationFrameRequest=requestAnimationFrame(()=>{this.firstFrameAnimationFrameRequest=void 0;let e=this.pendingFirstFrameSample;this.pendingFirstFrameSample=void 0,e&&this.renderSample(e)});else{let t=(this.clockSource.currentTime-this.staleFrameThresholdMs)/1e3;this.renderQueue=this.renderQueue.filter(n=>{let r=this.samplePresentationTime(n),i=this.samplePresentationTime(e),a=r>t&&r<=i;return a||this.releaseSampleResources(n),a}),this.renderQueue.push(e)}}),m(this,`render`,()=>{let e=this.clockSource.currentTime,t=this.renderQueue[0],n,r=0;for(;t&&this.samplePresentationTime(t)*1e3<=e;)t=this.renderQueue.shift(),t&&(r++,n&&this.releaseSampleResources(n),n=t),t=this.renderQueue[0];n&&this.renderSample(n),this.rendererDroppedFrameCount+=Math.max(r-1,0),this.animationFrameRequest=requestAnimationFrame(this.render)}),m(this,`renderSample`,e=>{if(this.renderedFrameCount++,e.videoFrame){let n=this.videoFrameCanvas2DRenderer;if(!this.usingWebCodecs){var t;this.logger.info(`Switching to Canvas2D renderer for WebCodecs`),n||(n=new oi,n.load(),this.subscribeToContextLost(n),this.videoFrameCanvas2DRenderer=n);let e=this.videoRenderer.canvas,r=n.canvas;if(e.parentElement)try{e.parentElement.replaceChild(r,e)}catch(e){}this.usingWebCodecs=!0,(t=this.onCanvasChangeCallback)==null||t.call(this)}n?n.render(e,this.getSubtitlePadding()):this.videoRenderer.render(e,this.renderTargetSize),e.videoFrame.close()}else{if(this.usingWebCodecs){var n;this.logger.info(`Switching back to WebGL renderer for WASM`);let t=this.videoFrameCanvas2DRenderer;if(!t){this.usingWebCodecs=!1,this.videoRenderer.render(e,this.renderTargetSize),e.buffer.byteLength>0&&this.pool.reclaim(e.buffer);return}let r=t.canvas,i=this.videoRenderer.canvas;if(r.parentElement)try{r.parentElement.replaceChild(i,r)}catch(e){}this.usingWebCodecs=!1,(n=this.onCanvasChangeCallback)==null||n.call(this)}this.videoRenderer.render(e,this.renderTargetSize)}e.buffer.byteLength>0&&this.pool.reclaim(e.buffer)}),m(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)}),m(this,`clearRenderQueue`,()=>{this.renderQueue.forEach(e=>{this.releaseSampleResources(e)}),this.renderQueue=[]}),m(this,`onRendererContextLost`,e=>{var t;(t=this.onRendererErrorCallback)==null||t.call(this,e)}),m(this,`subscribeToContextLost`,e=>{let t=e;typeof t.on==`function`&&t.on(`context lost`,this.onRendererContextLost)}),m(this,`unsubscribeFromContextLost`,e=>{let t=e;typeof t.off==`function`&&t.off(`context lost`,this.onRendererContextLost)}),m(this,`getSubtitlePadding`,()=>{let e=this.renderTargetSize.style.getPropertyValue(`--vindral-subtitle-offset`)||this.renderTargetSize.style.getPropertyValue(`--vindral-control-bar-offset`),t=parseInt(e||`0`,10);return Number.isNaN(t)?0:-t}),m(this,`samplePresentationTime`,e=>(e.timestamp+(e.compositionTimeOffset||0))/e.timescale),m(this,`releaseSampleResources`,e=>{try{var t;(t=e.videoFrame)==null||t.close()}catch(e){}e.buffer.byteLength>0&&this.pool.reclaim(e.buffer)}),this.logger=e,this.clockSource=t,this.pool=n,this.renderTargetSize=r||this.videoRenderer.canvas,this.onCanvasChangeCallback=i,this.onRendererErrorCallback=a}};fC=pC,m(pC,`create`,(e,t,n,r,i,a)=>new fC(e,t,n,r,i,a)),E(),A(),M();var mC=new WeakMap,hC=class{constructor(){T(this,mC,[]),k(mC,this,[])}addTextTrack(e,t,n){let r=[],i={kind:e,label:t,language:n,mode:`disabled`,cues:r,addCue:e=>{r.push(e)},removeCue:e=>{let t=r.findIndex(t=>t===e);t!==-1&&r.splice(t,1)}};return j(mC,this).push(i),i}set language(e){j(mC,this).forEach(t=>{t.language===e?t.mode=`showing`:t.mode=`hidden`})}get language(){var e;return(e=j(mC,this).find(e=>e.mode===`showing`))==null?void 0:e.language}get tracks(){return j(mC,this)}get activeTrack(){return j(mC,this).find(e=>e.mode===`showing`)}getActiveCues(e){let t=j(mC,this).find(e=>e.mode===`showing`);return t?t.cues.filter(({startTime:t,endTime:n})=>e>=t&&e<n):[]}};H(),h();var gC=(e,t)=>{let n;for(n=t;e>1;e--)n+=t;return n},_C=class{constructor(){m(this,`audio`,void 0),m(this,`unmute`,()=>this.audio.play().catch(S));let e=document.createElement(`div`);e.innerHTML=`<audio x-webkit-airplay='deny'></audio>`;let t=e.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`+gC(23,`A`)+`WGluZwAAAA8AAAACAAACcQCA`+gC(16,`gICA`)+gC(66,`/`)+`8AAABhTEFNRTMuMTAwA8MAAAAAAAAAABQgJAUHQQAB9AAAAnGMHkkI`+gC(320,`A`)+`//sQxAADgnABGiAAQBCqgCRMAAgEAH`+gC(15,`/`)+`7+n/9FTuQsQH//////2NG0jWUGlio5gLQTOtIoeR2WX////X4s9Atb/JRVCbBUpeRUq`+gC(18,`/`)+`9RUi0f2jn/+xDECgPCjAEQAABN4AAANIAAAAQVTEFNRTMuMTAw`+gC(97,`V`)+`Q==`,this.audio.loop=!1,this.audio.load();else throw Error(`Failed to create audio tag`)}};H(),h(),R();var vC,yC=class{constructor(e,t,n,r,i,a,o,s){m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`audioPlayer`,void 0),m(this,`videoPlayer`,void 0),m(this,`pool`,void 0),m(this,`unmuter`,new _C),m(this,`_isPaused`,!1),m(this,`isDisconnected`,!1),m(this,`timers`,new cr),m(this,`isVideoRenderingEnabled`,!0),m(this,`isLoaded`,!1),m(this,`isSuspended`,!0),m(this,`isVideoPlayerLoaded`,!1),m(this,`volumeState`,void 0),m(this,`textTracks`,new hC),m(this,`playbackRate`,void 0),m(this,`emitVolumeState`,()=>{let e={volume:this.volume,isMuted:this.userMuted};$t(e,this.volumeState)||(this.volumeState=e,this.emitter.emit(`volume state`,e))}),m(this,`reset`,()=>{}),m(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())}),m(this,`unload`,()=>{this.emitter.off(`target buffer time`,this.onTargetBufferTime),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}),m(this,`suspend`,()=>{this.isSuspended=!0,this.isVideoRenderingEnabled&&this.videoPlayer.suspend(),this.audioPlayer.suspend()}),m(this,`unsuspend`,()=>{this.isSuspended=!1,this.isVideoRenderingEnabled&&this.videoPlayer.unsuspend(),this.audioPlayer.unsuspend()}),m(this,`setVideoRenderingEnabled`,e=>{if(e!==this.isVideoRenderingEnabled&&(this.isVideoRenderingEnabled=e,this.isLoaded)){if(!e){this.timers.unload(),this.videoPlayer.suspend();return}this.isVideoPlayerLoaded||(this.videoPlayer.load(),this.isVideoPlayerLoaded=!0),this.startTextTrackInterval(),this.isSuspended||this.videoPlayer.unsuspend()}}),m(this,`element`,()=>this.videoPlayer.element()),m(this,`getStatistics`,()=>L(L({},this.videoPlayer.getStatistics()),{},{audioContextState:this.audioPlayer.contextState})),m(this,`startTextTrackInterval`,()=>{this.timers.setInterval(()=>{if(!this.textTracks.language)return;let e=this.textTracks.getActiveCues(this.currentTime/1e3);this.videoPlayer.setActiveCues(e,{width:this.videoPlayer.element().clientWidth,height:this.videoPlayer.element().clientHeight})},100)}),m(this,`flushBuffers`,()=>{this.audioPlayer.flushBuffer()}),m(this,`onTargetBufferTime`,e=>{this.audioPlayer.bufferTime=e}),m(this,`activateAudioPlayer`,()=>(this.isDisconnected&&(this.isDisconnected=!1,this.audioPlayer.useDefaultDestination()),this._isPaused=!1,this.unmuter.unmute(),this.audioPlayer.play())),m(this,`onDecodedFrame`,e=>{try{this.audioPlayer.onDecodedFrame(e)}catch(e){e instanceof Error&&this.emitter.emit(`error`,Mi(!1,e))}this.isVideoRenderingEnabled&&this.videoPlayer.onDecodedFrame(e)}),this.logger=t,this.emitter=e,this.pool=n,this.emitter.on(`target buffer time`,this.onTargetBufferTime),this.audioPlayer=dC.create(this.logger.createContext(`AudioPlayerModule`),r,{muted:i,reInitWhenStuck:!0,bufferTime:s}),a!==void 0&&(this.audioPlayer.volume=a),this.audioPlayer.on(`stuck`,()=>{this.isDisconnected=!0}),this.audioPlayer.on(`state change`,this.emitVolumeState),this.videoPlayer=pC.create(this.logger.createContext(`VideoPlayerModule`),this.audioPlayer,this.pool,void 0,o)}get volume(){return this.audioPlayer.volume}set volume(e){this.audioPlayer.volume=e,this.emitVolumeState()}get muted(){return this.audioPlayer.muted}get userMuted(){return this.audioPlayer.userMuted}set muted(e){let t=this.muted;this.audioPlayer.muted=e,this.emitVolumeState(),!e&&t&&this.activateAudioPlayer().catch(S)}get currentTime(){return this.audioPlayer.currentTime}set currentTime(e){this.audioPlayer.currentTime=e}get isActivated(){return this.audioPlayer.isActivated}set isActivated(e){this.audioPlayer.isActivated=e}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`)}};vC=yC,m(yC,`create`,(e,t,n,r,i,a,o,s)=>new vC(e,t,n,r,i,a,o,s)),h(),R();var bC,xC=[`play`,`pause`,`stop`],SC,CC=new Set,wC=class e{constructor(t,n,r){m(this,`emitter`,void 0),m(this,`logger`,void 0),m(this,`options`,void 0),m(this,`isLoaded`,!1),m(this,`playbackState`,void 0),m(this,`pageMetadata`,null),m(this,`load`,()=>{this.isLoaded||!e.isSupported()||(this.isLoaded=!0,CC.add(this),this.emitter.on(`playback state`,this.onPlaybackState),this.emitter.on(`volume state`,this.update))}),m(this,`unload`,()=>{var e;this.isLoaded&&(this.isLoaded=!1,CC.delete(this),this.emitter.off(`playback state`,this.onPlaybackState),this.emitter.off(`volume state`,this.update),this.handOverOwnership(`on unload`),(e=this.options.decoy)==null||e.unload())}),m(this,`stop`,()=>{var e;this.playbackState=void 0,(e=this.options.decoy)==null||e.unload(),SC===this&&this.handOverOwnership(`on stop`)}),m(this,`getStatistics`,()=>{var t;return{mediaSessionSupported:e.isSupported(),mediaSessionOwner:SC===this,mediaSessionPlaybackState:SC===this?this.isPaused?`paused`:`playing`:`none`,decoyState:(t=this.options.decoy)==null?void 0:t.getStatistics().decoyState}}),m(this,`onPlaybackState`,e=>{this.playbackState=e,this.update()}),m(this,`refresh`,()=>{this.update()}),m(this,`update`,()=>{if(this.isLoaded){if(this.isEligibleToOwn&&SC!==this){this.claimOwnership();return}this.sync()}}),m(this,`handOverOwnership`,e=>{if(SC===this){this.logger.debug(`Handing over the media session ${e}`),this.releaseOwnership();for(let e of CC)if(e!==this&&e.isEligibleToOwn){e.claimOwnership();return}}}),m(this,`sync`,()=>{var e,t,n,r,i,a;if(SC!==this)return;if((e=(t=this.options).isSuppressed)!=null&&e.call(t)){var o;(o=this.options.decoy)==null||o.unload(),this.handOverOwnership(`as suppressed`);return}if(this.options.isMuted()&&this.options.pauseMeansMute!==!0){if(this.options.keepDecoyWhenMuted){var s;(s=this.options.decoy)==null||s.pause()}else{var c;(c=this.options.decoy)==null||c.unload()}this.handOverOwnership(`as muted`);return}if(this.isPaused&&(n=(r=this.options).releaseOnHiddenPause)!=null&&n.call(r)&&(i=(a=this.options).isHidden)!=null&&i.call(a)){var l;(l=this.options.decoy)==null||l.unload(),this.handOverOwnership(`as a hidden pause`);return}let u=this.isPaused?`paused`:`playing`;if(navigator.mediaSession.playbackState=u,u===`paused`){if(!this.options.holdDecoyWhilePaused){var d;(d=this.options.decoy)==null||d.pause()}}else{var f;(f=this.options.decoy)==null||f.play()}}),m(this,`claimOwnership`,()=>{SC==null||SC.releaseOwnership(),SC=this,this.pageMetadata=navigator.mediaSession.metadata,this.applyMetadata();for(let e of xC)this.safely(e,()=>navigator.mediaSession.setActionHandler(e,this.onAction[e]));this.safely(`position state`,()=>{var e,t;return(e=(t=navigator.mediaSession).setPositionState)==null?void 0:e.call(t,{duration:1/0,playbackRate:1,position:0})}),this.sync()}),m(this,`applyMetadata`,()=>{let e=this.options.metadata;e&&this.safely(`metadata`,()=>{navigator.mediaSession.metadata=new MediaMetadata(L({},e))})}),m(this,`releaseOwnership`,()=>{var e;if(SC===this){SC=void 0,(e=this.options.decoy)==null||e.pause();for(let e of xC)this.safely(e,()=>navigator.mediaSession.setActionHandler(e,null));this.options.metadata&&this.safely(`metadata restore`,()=>{navigator.mediaSession.metadata=this.pageMetadata}),this.safely(`release`,()=>{navigator.mediaSession.playbackState=`none`}),this.pageMetadata=null}}),m(this,`safely`,(e,t)=>{try{t()}catch(t){this.logger.debug(`Media session ${e} failed`,{error:t})}}),m(this,`onAction`,{play:()=>{this.emitter.emit(`media session: request play`)},pause:()=>{this.emitter.emit(`media session: request pause`)},stop:()=>{this.emitter.emit(`media session: request stop`)}}),this.emitter=t,this.logger=n,this.options=r}get isPaused(){var e,t;return this.playbackState===`paused`||((e=(t=this.options).isSinkPaused)==null?void 0:e.call(t))===!0||this.options.pauseMeansMute===!0&&this.options.isMuted()}get isEligibleToOwn(){var e,t;return this.playbackState!==void 0&&!this.isPaused&&!this.options.isMuted()&&((e=(t=this.options).isSuppressed)==null?void 0:e.call(t))!==!0}};bC=wC,m(wC,`create`,(e,t,n)=>new bC(e,t,n)),m(wC,`isSupported`,()=>typeof navigator<`u`&&`mediaSession`in navigator&&typeof MediaMetadata<`u`),H(),h(),R();var TC,EC=class{constructor(e,t,n,r,{muted:i,volume:a,type:o,poster:s,offscreenCanvas:c,bufferTime:l,backgroundPlaybackEnabled:u,splitAudio:d}){if(m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`mediaElement`,void 0),m(this,`sound`,void 0),m(this,`wantsPlay`,void 0),m(this,`audioPlayer`,void 0),m(this,`videoPlayer`,void 0),m(this,`pool`,void 0),m(this,`isDisconnected`,!0),m(this,`_userProvidedMuted`,!1),m(this,`timers`,new cr),m(this,`offscreenCanvas`,void 0),m(this,`videoTrack`,void 0),m(this,`canvasCaptureTracks`,[]),m(this,`backgroundPlaybackEnabled`,void 0),m(this,`nativeTracksByLanguage`,new Map),m(this,`nativeCuesByLanguage`,new Map),m(this,`lastCanvasCueTexts`,[]),m(this,`isIOSNativeFullscreen`,!1),m(this,`knownNativeLanguage`,void 0),m(this,`renderCanvasSubtitlesInNativeFullscreen`,(()=>{let e=ft().platform;return e.isIOS&&e.iosVersion<=16})()),m(this,`volumeState`,void 0),m(this,`textTracks`,new hC),m(this,`reset`,()=>{}),m(this,`load`,()=>{this.mediaElement.load(),this.sound&&(this.sound.load(),document.body.appendChild(this.sound.element),this.mediaElement.element.addEventListener(`pause`,this.onVideoPause),this.mediaElement.element.addEventListener(`play`,this.onVideoPlay),window.addEventListener(`focus`,this.onWindowFocus)),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.textTracks.addEventListener(`change`,this.onNativeTextTrackChange),this.element().element.addEventListener(`webkitendfullscreen`,this.onExitIOSHack),this.element().element.addEventListener(`webkitbeginfullscreen`,this.onEnterIOSHack),this.videoPlayer.load(),this.timers.setInterval(this.syncNativeTextTracks,100)}),m(this,`unload`,()=>{this.emitter.off(`target buffer time`,this.onTargetBufferTime),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.textTracks.removeEventListener(`change`,this.onNativeTextTrackChange),this.element().element.removeEventListener(`webkitendfullscreen`,this.onExitIOSHack),this.element().element.removeEventListener(`webkitbeginfullscreen`,this.onEnterIOSHack);for(let e of this.nativeTracksByLanguage.keys())this.clearNativeCues(e);this.nativeTracksByLanguage.clear(),this.nativeCuesByLanguage.clear(),this.sound&&(this.mediaElement.element.removeEventListener(`pause`,this.onVideoPause),this.mediaElement.element.removeEventListener(`play`,this.onVideoPlay),window.removeEventListener(`focus`,this.onWindowFocus),this.sound.pause(),this.sound.element.srcObject=null,this.sound.unload(),this.sound.element.remove()),this.mediaElement.unload(),this.timers.unload(),this.audioPlayer.unload(),this.videoPlayer.unload()}),m(this,`suspend`,()=>{this.videoPlayer.suspend(),this.audioPlayer.suspend()}),m(this,`unsuspend`,()=>{this.videoPlayer.unsuspend(),this.audioPlayer.unsuspend()}),m(this,`element`,()=>this.mediaElement),m(this,`elements`,()=>this.sound?[this.mediaElement,this.sound]:[this.mediaElement]),m(this,`getStatistics`,()=>L(L({},this.videoPlayer.getStatistics()),{},{audioContextState:this.audioPlayer.contextState})),m(this,`activateAudioPlayer`,()=>(this.isDisconnected&&this.connectStreams(),this.audioPlayer.play())),m(this,`flushBuffers`,()=>{this.audioPlayer.flushBuffer()}),m(this,`onTargetBufferTime`,e=>{this.audioPlayer.bufferTime=e}),m(this,`resetCanvasSize`,()=>{this.videoPlayer.resetSize()}),m(this,`onVideoPause`,()=>{this.mediaElement.element.paused&&(this.emitPlaybackState(),this.wantsPlay&&this.timers.setTimeout(this.isIOSNativeFullscreen?this.reportFullscreenPause:this.restartVideoIfWanted,400))}),m(this,`onVideoPlay`,()=>{if(!this.mediaElement.element.paused){if(!this.wantsPlay){this.isIOSNativeFullscreen?this.emitter.emit(`native control`,`play`):this.mediaElement.pause();return}this.emitPlaybackState()}}),m(this,`onEnterIOSHack`,()=>{this.isIOSNativeFullscreen=!0,this.mediaElement._iosHackEnterPiPMode()}),m(this,`onExitIOSHack`,()=>{this.isIOSNativeFullscreen=!1,this.clearCanvasCues(),this.mediaElement._iosHackExitPiPMode(),this.sound&&this.restartVideoIfWanted()}),m(this,`reportFullscreenPause`,()=>{!this.isIOSNativeFullscreen||!this.wantsPlay||!this.mediaElement.element.paused||(kt(this.mediaElement.element)===`picture-in-picture`||document.hasFocus()?this.emitter.emit(`native control`,`pause`):this.emitter.emit(`fullscreen app switch`))}),m(this,`onWindowFocus`,()=>{this.isIOSNativeFullscreen&&this.wantsPlay&&this.mediaElement.element.paused&&this.mediaElement.tryPlay()}),m(this,`lastPlaybackState`,void 0),m(this,`emitPlaybackState`,()=>{let e=this.isPaused?`paused`:`playing`;e!==this.lastPlaybackState&&(this.lastPlaybackState=e,this.emitter.emit(`media element state`,e))}),m(this,`restartVideoIfWanted`,()=>{this.wantsPlay&&this.mediaElement.element.paused&&!this.isIOSNativeFullscreen&&document.visibilityState===`visible`&&this.mediaElement.tryPlay()}),m(this,`onDecodedFrame`,e=>{try{this.audioPlayer.onDecodedFrame(e)}catch(e){e instanceof Error&&this.emitter.emit(`error`,Mi(!1,e))}this.offscreenCanvas||this.videoPlayer.onDecodedFrame(e)}),m(this,`onVideoPlayerError`,e=>{if(e instanceof U){this.emitter.emit(`error`,e);return}this.emitter.emit(`error`,Ai(!1,e,`video`))}),m(this,`connectStreams`,()=>{let e=this.offscreenCanvas||this.videoPlayer.element();this.logger.info(`Connecting streams using ${this.offscreenCanvas?`OffscreenCanvas`:`VideoPlayer`} canvas (${e.width}x${e.height})`);let t=this.videoTrack?[this.videoTrack]:e.captureStream().getTracks(),n=this.canvasCaptureTracks;this.canvasCaptureTracks=this.videoTrack?[]:t;let r=this.audioPlayer.useMediaStreamDestination().stream,i=this.sound?t:[...t,...r.getTracks()];this.logger.info(`Video tracks: ${t.length} (${this.videoTrack?`worker track`:`canvas capture`}), Audio tracks: ${r.getTracks().length}`);for(let e of n)e.stop();this.mediaElement.element.srcObject=new MediaStream(i),this.sound&&this.sound.element.srcObject!==r&&(this.sound.element.srcObject=r),this.isDisconnected=!1}),m(this,`setVideoTrack`,e=>{this.videoTrack!==e&&(this.videoTrack=e,this.reconnectCanvasStream())}),m(this,`setOffscreenCanvas`,e=>{this.offscreenCanvas!==e&&(this.offscreenCanvas=e,this.reconnectCanvasStream())}),m(this,`setBackgroundPlaybackEnabled`,e=>{this.backgroundPlaybackEnabled!==e&&(this.backgroundPlaybackEnabled=e,this.applyVisibilityMutePolicy())}),m(this,`reconnectCanvasStream`,()=>{if(!this.isDisconnected){let e=!this.mediaElement.element.paused;this.logger.info(`Reconnecting canvas stream after renderer change`,{wasPlaying:e}),this.connectStreams(),e&&this.mediaElement.tryPlay()}}),m(this,`ensureNativeTrack`,e=>{let t=this.nativeTracksByLanguage.get(e.language);if(t)return t;let n=this.mediaElement.element.addTextTrack(e.kind,e.label,e.language);return this.nativeTracksByLanguage.set(e.language,n),this.nativeCuesByLanguage.set(e.language,[]),n}),m(this,`getSelectedNativeTextTrack`,()=>{let e=this.mediaElement.element.textTracks;for(let t=0;t<e.length;t++){let n=e[t];if((n==null?void 0:n.mode)===`showing`)return n}}),m(this,`onNativeTextTrackChange`,()=>{let e=this.getSelectedNativeTextTrack();if((e==null?void 0:e.language)===this.knownNativeLanguage)return;if(this.knownNativeLanguage=e==null?void 0:e.language,!e){this.emitter.emit(`native text track selected`,void 0);return}let t=this.textTracks.tracks.find(t=>t.language===e.language);t&&this.emitter.emit(`native text track selected`,t.label)}),m(this,`clearNativeCues`,e=>{let t=this.nativeTracksByLanguage.get(e),n=this.nativeCuesByLanguage.get(e);if(!(!t||!n||n.length===0)){for(let e of n)try{t.removeCue(e)}catch(e){}this.nativeCuesByLanguage.set(e,[])}}),m(this,`setNativeCues`,(e,t)=>{let n=this.nativeTracksByLanguage.get(e),r=this.nativeCuesByLanguage.get(e);if(!n||!r||$t(t.map(e=>e.text),r.map(e=>e.text)))return;this.clearNativeCues(e);let i=[];for(let e of t){let t=new VTTCue(0,2**53-1,e.text);n.addCue(t),i.push(t)}this.nativeCuesByLanguage.set(e,i)}),m(this,`shouldRenderCanvasCues`,()=>this.canvasCuesEnabled&&this.isIOSNativeFullscreen),m(this,`setCanvasCues`,(e,t=!1)=>{let n=e.map(e=>e.text);!t&&$t(n,this.lastCanvasCueTexts)||(this.lastCanvasCueTexts=n,this.videoPlayer.setActiveCues(e,{width:this.mediaElement.element.clientWidth,height:this.mediaElement.element.clientHeight}))}),m(this,`clearCanvasCues`,()=>{this.canvasCuesEnabled&&this.setCanvasCues([],!0)}),m(this,`syncNativeTextTracks`,()=>{var e;for(let e of this.textTracks.tracks)this.ensureNativeTrack(e);let t=this.textTracks.activeTrack,n=t?this.textTracks.getActiveCues(this.currentTime/1e3):[];this.shouldRenderCanvasCues()&&this.setCanvasCues(n);for(let[e,r]of this.nativeTracksByLanguage)e===(t==null?void 0:t.language)?(r.mode!==`showing`&&(r.mode=`showing`),this.setNativeCues(e,n)):(r.mode!==`disabled`&&(r.mode=`disabled`),this.clearNativeCues(e));this.knownNativeLanguage=(e=this.getSelectedNativeTextTrack())==null?void 0:e.language}),m(this,`updateVolumeState`,()=>{let e={isMuted:this.userMuted,volume:this.volume};$t(e,this.volumeState)||(this.volumeState=e,this.emitter.emit(`volume state`,this.volumeState))}),m(this,`applyVisibilityMutePolicy`,()=>{if(!this.audioPlayer.isContextRunning)return;let e=document.visibilityState===`hidden`;this.soundElement.muted=this._userProvidedMuted||e&&!this.backgroundPlaybackEnabled}),this.logger=t,this.emitter=e,this.pool=n,this._userProvidedMuted=i,this.offscreenCanvas=c,this.backgroundPlaybackEnabled=u==null?!1:u,this.emitter.on(`target buffer time`,this.onTargetBufferTime),this.mediaElement=new tu({poster:s,type:o,muted:d?!0:i,volume:a,autoplay:!1,logger:this.logger.createContext(`MediaElement`)}),d&&(this.sound=new tu({type:`audio`,muted:i,volume:a,autoplay:!1,logger:this.logger.createContext(`SoundElement`)}),this.sound.element.style.display=`none`,this.sound.element.setAttribute(`aria-hidden`,`true`)),this.soundElement.on(`volume state`,e=>{this.updateVolumeState(),!e.isMuted&&!this.audioPlayer.isContextRunning&&this.activateAudioPlayer().catch(S),e.isMuted||(this._userProvidedMuted=!1)}),this.soundElement.on(`media element state`,e=>{e===`paused`&&this.audioPlayer.flushBuffer(),this.audioPlayer.sinkPaused=e===`paused`,this.emitPlaybackState()}),this.sound)for(let e of this.elements())e.on(`needs user input`,e=>this.emitter.emit(`needs user input`,e)),e.on(`error`,e=>this.emitter.emit(`error`,e));this.audioPlayer=dC.create(this.logger.createContext(`AudioPlayerModule`),r,{muted:!1,reInitWhenStuck:!1,bufferTime:l}),this.audioPlayer.on(`state change`,e=>{e===`suspended`||e===`interrupted`?this.soundElement.muted=!0:e===`running`&&this.applyVisibilityMutePolicy(),this.updateVolumeState()}),this.videoPlayer=pC.create(this.logger.createContext(`VideoPlayerModule`),this.audioPlayer,this.pool,this.mediaElement.element,()=>this.reconnectCanvasStream(),this.onVideoPlayerError)}get volume(){return this.soundElement.volume}set volume(e){this.soundElement.volume=e}get muted(){return this.soundElement.muted||this.audioPlayer.muted}get userMuted(){return this.audioPlayer.isContextRunning?this.soundElement.muted:this._userProvidedMuted}set muted(e){let t=this.muted;this._userProvidedMuted=e,this.soundElement.muted=e,!e&&t&&this.activateAudioPlayer().catch(S)}get currentTime(){return this.audioPlayer.currentTime}set currentTime(e){this.audioPlayer.currentTime=e}get isActivated(){return this.mediaElement.isActivated}set isActivated(e){this.mediaElement.isActivated=e}get seekTime(){return this.mediaElement.seekTime}get totalSeekTime(){return this.mediaElement.totalSeekTime}get isPaused(){return this.sound?this.wantsPlay===!1||this.sound.isPaused&&this.mediaElement.element.paused:this.mediaElement.isPaused}get isPlayingAsRequested(){let e=this.soundElement.element;return!this.wantsPlay||!e.paused&&e.muted===this._userProvidedMuted}get isSeeking(){return this.mediaElement.isSeeking}get audioNode(){return this.audioPlayer.audioNode}play(){var e;this.wantsPlay=!0;let t=this._userProvidedMuted;return this.activateAudioPlayer().catch(()=>{t||this.emitter.emit(`needs user input`,{forAudio:!0,forVideo:!1})}),(e=this.sound)==null||e.play(),this.mediaElement.play()}pause(){var e;this.wantsPlay=!1,(e=this.sound)==null||e.pause(),this.mediaElement.pause()}get soundElement(){var e;return(e=this.sound)==null?this.mediaElement:e}get canvasCuesEnabled(){return this.renderCanvasSubtitlesInNativeFullscreen&&!this.offscreenCanvas}};TC=EC,m(EC,`create`,(e,t,n,r,i)=>new TC(e,t,n,r,i)),H(),h(),R(),P();var DC,OC=class{constructor(){m(this,`initSegments`,new Map),m(this,`set`,(e,t,n)=>{var r;let i=(r=this.initSegments.get(e))==null?new Map:r;i.set(t,n),this.initSegments.set(e,i)}),m(this,`get`,(e,t)=>{var n;return(n=this.initSegments.get(e))==null?void 0:n.get(t)})}};function kC(e,{mediaSource:t,mimeType:n,codec:r}){return L(L({},e),{},{state:`initialized`,mimeType:n,sourceBufferMimeType:n,codec:r,sourceBuffer:t.addSourceBuffer(n),isWorkingOnPendingSamples:!1,sequenceNumber:0,lastBufferCleanupTime:performance.now()})}function AC({initSegments:e,pendingSamples:t}){return{state:`uninitialized`,initSegments:e==null?new OC:e,sequenceNumber:0,isWorkingOnPendingSamples:!1,hasFirstSync:t.some(e=>e.isSync),pendingSamples:t==null?[]:t,pendingSamplesOffset:0,consecutiveQuotaExceededErrorCount:0,successfulAppendCalls:0}}var jC=class{constructor(e,t,n){var r=this;m(this,`maxChunkSize`,20),m(this,`minConsecutiveErrorsBeforeEmit`,5),m(this,`maxSecondsInBuffer`,60),m(this,`logger`,void 0),m(this,`timers`,cr.create()),m(this,`emitter`,void 0),m(this,`mediaElement`,void 0),m(this,`mediaSource`,new zl),m(this,`trackContexts`,new Map),m(this,`autoRecoverFromMediaErrors`,!0),m(this,`quotaErrorCount`,0),m(this,`recoveredFromErrorCount`,0),m(this,`sourceOpenStartTime`,performance.now()),m(this,`sourceOpenEndTime`,performance.now()),m(this,`pendingTracksToAddSourceBuffers`,void 0),m(this,`hasAddedInitialPosterFrame`,!0),m(this,`videoKeyframeTimestamps`,[]),m(this,`isReopening`,!1),m(this,`pendingMediaError`,void 0),m(this,`isFlushDeferred`,!1),m(this,`hasRecoveredSinceShown`,!1),m(this,`playbackStallCount`,0),m(this,`hasStartedPlayback`,!1),m(this,`isPlaybackStalled`,!1),m(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),this.emitter.on(`page active`,this.onPageActive)}),m(this,`unload`,()=>{this.logger.debug(`Unloading module...`),this.pendingMediaError=void 0,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.emitter.off(`page active`,this.onPageActive),this.mediaSource.off(`source ended`,this.onSourceEnded),this.mediaSource.off(`source open`,this.onSourceOpen),this.mediaElement.removeEventListener(`error`,this.onMediaElementError),this.mediaElement.removeEventListener(`waiting`,this.onPlaybackStall),this.mediaElement.removeEventListener(`stalled`,this.onPlaybackStall),this.mediaElement.removeEventListener(`playing`,this.onPlaybackProgress),this.mediaElement.removeEventListener(`pause`,this.onPlaybackPauseOrSeek),this.mediaElement.removeEventListener(`play`,this.onPlay),this.mediaElement.removeEventListener(`seeking`,this.onPlaybackPauseOrSeek),this.mediaSource.detach(this.mediaElement),this.trackContexts.forEach(e=>{e.state===`initialized`&&e.sourceBuffer.dispose(),e.pendingSamples=[],e.pendingSamplesOffset=0}),this.videoKeyframeTimestamps=[],this.timers.unload(),this.logger.debug(`Unloaded module`)}),m(this,`getStatistics`,()=>{var e,t;let n={quotaErrorCount:this.quotaErrorCount,mediaSourceOpenTime:this.sourceOpenEndTime-this.sourceOpenStartTime,playbackStallCount:this.playbackStallCount,successfulAudioAppendsCalls:(e=this.trackContexts.get(`audio`))==null?void 0:e.successfulAppendCalls,successfulVideoAppendCalls:(t=this.trackContexts.get(`video`))==null?void 0:t.successfulAppendCalls,videoKeyframeIntervalMs:Vt(this.videoKeyframeTimestamps),videoRenderer:`MSE`,videoDecoder:`MSE`,audioRenderer:`MSE`,audioDecoder:`MSE`};if(this.mediaElement instanceof HTMLVideoElement){var r,i;let e=(r=(i=this.mediaElement).getVideoPlaybackQuality)==null?void 0:r.call(i);n.totalVideoFrames=e==null?void 0:e.totalVideoFrames,n.droppedVideoFrames=e==null?void 0:e.droppedVideoFrames}return n}),m(this,`flushBuffers`,()=>{if(document.visibilityState!==`visible`&&this.mediaElement.paused&&this.hasStartedPlayback){this.logger.info(`Deferring the buffer flush until the page is visible or playback resumes`),this.isFlushDeferred=!0;return}this.isFlushDeferred=!1,this.videoKeyframeTimestamps=[];let e=[];this.trackContexts.forEach(t=>{t.pendingSamples=[],t.pendingSamplesOffset=0,t.hasFirstSync=!1,t.state!==`uninitialized`&&this.mediaSource.isOpen()&&e.push(t.sourceBuffer.removeBuffer(0,1/0).catch(e=>{if(!(e instanceof Ll))throw e}))}),Promise.all(e).then(()=>this.emitter.emit(`buffers flushed`)).catch(e=>this.logger.error(`Failed to remove buffer`,e))}),m(this,`setTrackContexts`,(e=new Map)=>{this.logger.debug(`setTrackContexts`),[`audio`,`video`].forEach(t=>{var n,r,i;let a=e.get(t),o=(n=a==null?void 0:a.pendingSamples)==null?[]:n,s=a==null?void 0:a.initSegments,c=(r=a==null?void 0:a.pendingSamplesOffset)==null?0:r;for(;c<o.length&&!((i=o[c])!=null&&i.isSync);)c++;let l=AC({pendingSamples:o,initSegments:s});l.pendingSamplesOffset=c,this.trackContexts.set(t,l)})}),m(this,`resetRemovedTrackContexts`,e=>{let t=new Set(e.map(e=>e.type));this.trackContexts.forEach((e,n)=>{if(t.has(n))return;e.state===`initialized`&&this.mediaSource.isOpen()&&this.mediaSource.removeSourceBuffer(e.sourceBuffer);let r=AC({pendingSamples:[],initSegments:e.initSegments});this.trackContexts.set(n,r)})}),m(this,`isCurrentTrackContext`,(e,t)=>this.trackContexts.get(e)===t),m(this,`initializeSourceBuffer`,(e,t)=>{let n=kC(e,{mimeType:t.mimeType,mediaSource:this.mediaSource,codec:t.codec});n.sourceBuffer.setErrorCallback(this.onSourceBufferError(t.type)),this.trackContexts.set(t.type,n)}),m(this,`setSourceBuffers`,function(){var e=N(function*(e){if(!r.mediaSource.isOpen()){r.pendingTracksToAddSourceBuffers=e;return}r.resetRemovedTrackContexts(e);let t=!0;for(let n of e){let e=r.trackContexts.get(n.type);if(!e||e.state===`uninitialized`||e.sourceBufferMimeType!==n.mimeType){t=!1;break}}if(t){r.logger.debug(`Already setup with the correct mime types`);return}for(let t of e){let n=r.trackContexts.get(t.type);if(n||(n=AC({pendingSamples:[],initSegments:new OC}),r.trackContexts.set(t.type,n)),n.state===`initialized`){if(t.mimeType!==n.sourceBufferMimeType)try{yield n.sourceBuffer.changeType(t.mimeType),n.sourceBufferMimeType=t.mimeType}catch(i){if(i instanceof Ll)throw r.logger.debug(`Abandoning source buffer setup for a disposed buffer`,{type:t.type}),i;r.logger.warn(`changeType failed, recreating source buffer`,{from:n.sourceBufferMimeType,to:t.mimeType,error:i});try{r.mediaSource.removeSourceBuffer(n.sourceBuffer)}catch(t){r.logger.warn(`removeSourceBuffer failed`,{removeError:t}),r.reopenMediaSource(`changeType recovery failed`),r.pendingTracksToAddSourceBuffers=e;return}let a=AC({pendingSamples:n.pendingSamples,initSegments:n.initSegments});a.pendingSamplesOffset=n.pendingSamplesOffset,r.initializeSourceBuffer(a,t)}}else r.initializeSourceBuffer(n,t)}});return function(t){return e.apply(this,arguments)}}()),m(this,`getBuffer`,e=>{if(this.mediaSource.isClosed())return[];let t=this.trackContexts.get(e);return!t||t.state===`uninitialized`?[]:this.getBufferedRanges(t.sourceBuffer)}),m(this,`getBufferState`,e=>{let t=this.getCommonBufferedRangesForCurrentTracks();if(t)return{buffered:t,playbackState:this.getPlaybackStateForBufferedRanges(e,t)}}),m(this,`getNextBufferedRangeStart`,e=>{let t=this.getCommonBufferedRangesForCurrentTracks();if(t)return MC(e,t)}),m(this,`getBufferedEndAt`,e=>{var t;let n=this.getCommonBufferedRangesForCurrentTracks();if(n)return(t=n.find(t=>t.start<=e&&e<t.end))==null?void 0:t.end}),m(this,`getVideoKeyframeTimestamps`,()=>this.videoKeyframeTimestamps),m(this,`init`,({initSegment:e,mimeType:t})=>{this.logger.debug(`Added init segment`,{channel:e.channelId,renditionId:e.renditionId});let n=this.trackContexts.get(e.type);if(!n)throw Fi(e.type,e.renditionId);n.state===`initialized`&&(n.mimeType=t);let r=ml({codec:e.codec,timescale:e.timescale,initData:e.data,codecString:e.codecString,width:e.width,height:e.height});r&&n.initSegments.set(e.channelId,e.renditionId,new Uint8Array(r))}),m(this,`append`,function(){var e=N(function*(e,t){let n=e[0];if(!n)return;let i=r.trackContexts.get(n.type),a=i==null?void 0:i.initSegments.get(n.channelId,n.renditionId);if(r.mediaSource.isClosed())return;if(!a)throw Ni(n.renditionId,n.channelId);if(!i)throw Fi(n.type,n.renditionId);if(i.state===`uninitialized`)throw Ii(n.type,n.renditionId);if(t){var o;let e=(n.timestamp+((o=n.compositionTimeOffset)==null?0:o))/n.timescale;if(yield i.sourceBuffer.removeBuffer(e,1/0),i.mimeType!==i.sourceBufferMimeType&&i.sourceBuffer.changeType)try{yield i.sourceBuffer.changeType(i.mimeType),i.sourceBufferMimeType=i.mimeType}catch(e){if(e instanceof Ll)throw e;r.logger.warn(`changeType failed`,{from:i.sourceBufferMimeType,to:i.mimeType,error:e})}`fragmented`in n||(yield i.sourceBuffer.appendBuffer(a))}let s=Math.max(0,n.timestamp/n.timescale-r.maxSecondsInBuffer);s>0&&performance.now()-i.lastBufferCleanupTime>1e4&&(i.lastBufferCleanupTime=performance.now(),yield i.sourceBuffer.removeBuffer(0,s+10));try{let t=i.sequenceNumber;if(`fragmented`in n)for(let t of e)`initData`in t&&(yield i.sourceBuffer.appendBuffer(t.data,t.initData));else{let n=xl(e,t++);yield i.sourceBuffer.appendBuffer(n)}i.sequenceNumber=t,i.consecutiveQuotaExceededErrorCount=0,i.successfulAppendCalls++}catch(e){throw e instanceof DOMException&&e.code===DOMException.QUOTA_EXCEEDED_ERR&&(r.quotaErrorCount++,i.consecutiveQuotaExceededErrorCount++,r.logger.error(`quota exceeded error`,{error:e})),e}});return function(t,n){return e.apply(this,arguments)}}()),m(this,`onFragment`,({fragment:e,mimeType:t,codec:n,channelId:r,renditionId:i})=>{let a=e.mediaType(),o=e.rawBytes(),s=e.header().rawBytes(),c=e.baseMediaDecodeTime(),l=e.timescale(),u=e.duration(),d=a===`video`?e.startsWithKeyframe():!0,f=e.compositionTimeOffset(0);if(a===`text`){this.logger.warn(`Skipping unexpected text fragment`);return}if(!n){this.logger.warn(`Skipping fragment with no codec`);return}let p=this.trackContexts.get(a);if(!p)throw Fi(a);p.state===`initialized`&&t&&(p.mimeType=t,p.initSegments.set(r,i,s));let m={fragmented:!0,type:a,data:o,initData:s,timestamp:c,duration:u,timescale:l,channelId:r,renditionId:i,isSync:d,codec:n,fragment:e,compositionTimeOffset:f};this.onCodedSample(m)}),m(this,`onCodedSample`,e=>{if(e.duration===0)return;let t=this.trackContexts.get(e.type);if(!t)throw Fi(e.type,e.renditionId);if(!(!t.hasFirstSync&&!e.isSync)){if(this.hasAddedInitialPosterFrame&&e.isSync&&e.type===`video`){this.hasAddedInitialPosterFrame=!1;let n=L({},e);`fragment`in n?(n.fragment=n.fragment.clone(),n.fragment.updateBaseMediaDecodeTime(0),n.data=n.fragment.rawBytes()):n.timestamp=0,t.pendingSamples.push(n)}if(t.hasFirstSync=!0,t.pendingSamples.push(e),e.type===`video`&&e.isSync){var n;let t=(e.timestamp+((n=e.compositionTimeOffset)==null?0:n))/e.timescale*1e3,r=this.videoKeyframeTimestamps[this.videoKeyframeTimestamps.length-1];r!==void 0&&t<r&&(this.videoKeyframeTimestamps=[]),this.videoKeyframeTimestamps.push(t),this.videoKeyframeTimestamps.length>20&&(this.videoKeyframeTimestamps=this.videoKeyframeTimestamps.slice(-20))}t.state!==`uninitialized`&&(t.isWorkingOnPendingSamples||LC(t,this.append,this.maxChunkSize).catch(n=>{if(t.isWorkingOnPendingSamples=!1,!this.isReopening){if(!this.isCurrentTrackContext(e.type,t)){this.logger.debug(`Suppressing append error from stale track context`,{type:e.type});return}if(n instanceof Ll){this.logger.debug(`Suppressing append error from a disposed source buffer`,{type:e.type});return}if(n instanceof Error){if(this.mediaElement.error){this.onMediaElementError();return}if(this.logger.error(`append failed`,{message:n.message,name:n.name}),n instanceof DOMException&&n.code===DOMException.QUOTA_EXCEEDED_ERR){if(t.consecutiveQuotaExceededErrorCount>=this.minConsecutiveErrorsBeforeEmit){let r=Pi(!1,n,t.consecutiveQuotaExceededErrorCount,e.type);this.emitter.emit(`error`,r)}}else{let r=Pi(!1,n,t.consecutiveQuotaExceededErrorCount,e.type);this.emitter.emit(`error`,r)}}}}))}}),m(this,`onSourceBufferError`,e=>()=>{var t;this.logger.warn(`SourceBuffer error`,{trackType:e,mediaElementError:(t=this.mediaElement.error)==null?void 0:t.message})}),m(this,`onSourceOpen`,()=>{this.logger.debug(`source opened`),this.sourceOpenEndTime=performance.now(),this.isReopening=!1;let e=this.pendingTracksToAddSourceBuffers,t=this.pendingMediaError;this.pendingTracksToAddSourceBuffers=void 0,e&&this.setSourceBuffers(e).then(()=>{t&&this.pendingMediaError===t&&(this.pendingMediaError=void 0,this.hasRecoveredSinceShown=!0,this.emitter.emit(`recovered from media error`,{error:t,count:this.recoveredFromErrorCount}))}).catch(e=>{e instanceof Ll||(this.logger.error(`Failed to set source buffers after source open`,e),t&&this.pendingMediaError===t&&this.onRecoveryFailed(e))})}),m(this,`reopenMediaSource`,e=>{this.logger.info(`Re-opening MediaSource`,{reason:e}),this.isReopening=!0,this.recoveredFromErrorCount++;let t=!this.mediaElement.paused,n=[];this.trackContexts.forEach((e,t)=>{e.state===`initialized`&&n.push({type:t,mimeType:e.mimeType,codec:e.codec})}),this.sourceOpenStartTime=performance.now(),this.pendingTracksToAddSourceBuffers=n,this.mediaSource.detach(this.mediaElement),this.trackContexts.forEach(e=>{e.state===`initialized`&&e.sourceBuffer.dispose()}),this.setTrackContexts(this.trackContexts),this.mediaSource.attach(this.mediaElement),t&&this.mediaElement.play().catch(S)}),m(this,`onMediaElementError`,()=>{let{error:e}=this.mediaElement;if(!e||this.isReopening)return;let t=ki(/AUDIO_RENDERER/.test(e.message)||!this.autoRecoverFromMediaErrors,e);if(this.logger.error(`MediaElement error`,{error:t}),this.emitter.emit(`error`,t),!t.isFatal()){this.pendingMediaError=t;try{this.reopenMediaSource(`media element error recovery`)}catch(e){this.onRecoveryFailed(e)}}}),m(this,`onRecoveryFailed`,e=>{this.pendingMediaError=void 0,this.isReopening=!1,this.emitter.emit(`error`,new U(`MediaSource recovery failed`,{isFatal:!0,code:wi,source:e instanceof Error?e:Error(String(e))}))}),m(this,`onPlay`,()=>{this.isFlushDeferred&&!this.mediaElement.paused&&this.flushBuffers()}),m(this,`onPageActive`,e=>{if(e&&(this.isFlushDeferred&&this.flushBuffers(),this.hasRecoveredSinceShown)){var t;this.hasRecoveredSinceShown=!1,((t=this.trackContexts.get(`video`))==null?void 0:t.state)===`initialized`&&(this.mediaElement.currentTime+=.05)}}),m(this,`onSourceEnded`,()=>{this.mediaElement.error&&this.onMediaElementError(),this.logger.debug(`source ended`)}),m(this,`onPlaybackProgress`,()=>{this.hasStartedPlayback=!0,this.isPlaybackStalled=!1}),m(this,`onPlaybackPauseOrSeek`,()=>{this.isPlaybackStalled=!1}),m(this,`onPlaybackStall`,e=>{!this.hasStartedPlayback||this.mediaElement.paused||this.mediaElement.seeking||this.isPlaybackStalled||(this.playbackStallCount++,this.isPlaybackStalled=!0,this.logger.info(`Detected playback stall`,{event:e.type,currentTime:this.mediaElement.currentTime*1e3,playbackStallCount:this.playbackStallCount}))}),m(this,`getBufferedRanges`,e=>{let t=[];try{let n=e.buffered();if(!n)return[];for(let e=0;e<n.length;e++)t.push({start:n.start(e)*1e3,end:n.end(e)*1e3});return t}catch(e){return[]}}),m(this,`getInitializedTrackBuffers`,()=>{let e=[];return this.trackContexts.forEach(t=>{t.state!==`uninitialized`&&e.push(this.getBufferedRanges(t.sourceBuffer))}),e}),m(this,`getCommonBufferedRangesForCurrentTracks`,()=>{if(this.mediaSource.isClosed())return;let e=this.getInitializedTrackBuffers();if(e.length!==0)return this.getCommonBufferedRanges(e)}),m(this,`getCommonBufferedRanges`,e=>e.slice(1).reduce((e,t)=>FC(e,t),e[0]?Array.from(e[0]):[])),m(this,`getPlaybackStateForBufferedRanges`,(e,t)=>hr(t,e)?`playing`:`buffering`),this.logger=e,this.mediaElement=n,this.emitter=t}};DC=jC,m(jC,`create`,(e,t,n)=>{let r=new DC(e,t,n);return r.setTrackContexts(),r.mediaSource.on(`source ended`,r.onSourceEnded),r.mediaSource.on(`source open`,r.onSourceOpen),n.addEventListener(`error`,r.onMediaElementError),n.addEventListener(`waiting`,r.onPlaybackStall),n.addEventListener(`stalled`,r.onPlaybackStall),n.addEventListener(`playing`,r.onPlaybackProgress),n.addEventListener(`pause`,r.onPlaybackPauseOrSeek),n.addEventListener(`play`,r.onPlay),n.addEventListener(`seeking`,r.onPlaybackPauseOrSeek),r.mediaSource.attach(n),r});var MC=(e,t)=>{for(let r=0;r<t.length;r++){let i=t[r];if(i){if(e<i.start)return i.start;if(i.start<=e&&e<i.end){var n;return(n=t[r+1])==null?void 0:n.start}}}},NC=(e,t)=>{var n;let r=e.renditionId!==t.renditionId,i=e.channelId!==t.channelId,a=((n=e.timestamp)==null?0:n)>t.timestamp,o=e.type===`video`&&t.type===`video`&&`levelIdc`in e&&`levelIdc`in t&&e.levelIdc!==t.levelIdc,s=!1;return e.type===`video`&&t.type===`video`&&`width`in e&&`width`in t&&(s=t.width!==e.width||t.height!==e.height),i||r||a||s||o},PC=32,FC=(e,t)=>{let n=[],r=0,i=0;for(;r<e.length&&i<t.length;){let a=e[r],o=t[i];if(!a||!o)break;let s=Math.max(a.start,o.start),c=Math.min(a.end,o.end);s<c&&n.push({start:s,end:c}),a.end<=o.end?r++:i++}return n},IC=e=>{let t=e.pendingSamplesOffset;if(t!==0){if(t>=e.pendingSamples.length){e.pendingSamples=[],e.pendingSamplesOffset=0;return}t<PC||t*2<e.pendingSamples.length||(e.pendingSamples=e.pendingSamples.slice(t),e.pendingSamplesOffset=0)}},LC=function(){var e=N(function*(e,t,n){for(e.isWorkingOnPendingSamples=!0;e.pendingSamplesOffset<e.pendingSamples.length;){let r=[],i=e.pendingSamplesOffset;for(let t=e.pendingSamplesOffset;t<e.pendingSamples.length;t++){i=t;let a=e.pendingSamples[t],o=e.pendingSamples[t+1];if(a&&(r.push(a),o)){if(NC(a,o))break;let e=(a.timestamp+a.duration)/a.timescale;if(o.timestamp/o.timescale-e>.1)break}if(t-e.pendingSamplesOffset>=n-1)break}let a=r[0];if(!a)break;yield t(r,e.previousSample?NC(e.previousSample,a):!0),e.pendingSamplesOffset=i+1,e.previousSample=r[r.length-1],IC(e)}e.isWorkingOnPendingSamples=!1});return function(t,n,r){return e.apply(this,arguments)}}();H(),h(),P();var RC,zC=class{constructor(e,t){var n=this;m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`element`,void 0),m(this,`pictureInPictureWindow`,void 0),m(this,`unload`,()=>{this.emitter.off(`add picture in picture listener`,this.onEnablePictureInPicture),this.detachElementListeners()}),m(this,`onEnablePictureInPicture`,e=>{this.detachElementListeners(),this.element=e.element,e.element.addEventListener(`leavepictureinpicture`,this.onLeavePictureInPicture),e.element.addEventListener(`enterpictureinpicture`,this.onEnterPictureInPicture),Mt(e.element,!0)}),m(this,`getPictureInPictureSize`,()=>this.pictureInPictureWindow),m(this,`isPictureInPictureActive`,()=>this.isWebkitPresentationModeActive()||this.isStandardPictureInPictureActive()),m(this,`isPictureInPictureSupported`,()=>this.isWebkitPresentationModeSupported()||this.isStandardPictureInPictureSupported()),m(this,`requestPictureInPicture`,()=>(this.emitter.emit(`ios-hack: reset size`),this.isStandardPictureInPictureSupported()?this.requestStandardPictureInPicture():this.isWebkitPresentationModeSupported()?this.requestWebkitPresentationMode(`picture-in-picture`):Promise.reject(Error(`Picture in picture is not supported`)))),m(this,`exitPictureInPicture`,()=>this.isStandardPictureInPictureSupported()?this.exitStandardPictureInPicture():this.isWebkitPresentationModeSupported()?this.requestWebkitPresentationMode(`inline`):Promise.reject(Error(`Picture in picture is not supported`))),m(this,`getStatistics`,()=>({isPictureInPictureActive:this.isPictureInPictureActive()})),m(this,`detachElementListeners`,()=>{this.element&&(this.element.removeEventListener(`leavepictureinpicture`,this.onLeavePictureInPicture),this.element.removeEventListener(`enterpictureinpicture`,this.onEnterPictureInPicture),Mt(this.element,!1))}),m(this,`onLeavePictureInPicture`,()=>{this.pictureInPictureWindow=void 0,this.logger.debug(`Leave picture in picture`),this.emitter.emit(`exit picture in picture`)}),m(this,`onEnterPictureInPicture`,e=>{this.pictureInPictureWindow=Ot(e),this.logger.debug(`Enter picture in picture`),this.emitter.emit(`enter picture in picture`,this)}),m(this,`requestStandardPictureInPicture`,N(function*(){if(!n.element)throw Error(`Picture in picture is not supported`);let e=Ct(n.element);if(!e)throw Error(`Picture in picture is not supported`);yield e()})),m(this,`exitStandardPictureInPicture`,N(function*(){let e=wt();if(!e)throw Error(`Picture in picture is not supported`);yield e()})),m(this,`isStandardPictureInPictureSupported`,()=>!!this.element&&Dt(this.element)),m(this,`isStandardPictureInPictureActive`,()=>!!this.element&&Et()),m(this,`isWebkitPresentationModeActive`,()=>!!this.element&&kt(this.element)===`picture-in-picture`),m(this,`requestWebkitPresentationMode`,function(){var e=N(function*(e){return n.element&&At(n.element,e),Promise.resolve()});return function(t){return e.apply(this,arguments)}}()),m(this,`isWebkitPresentationModeSupported`,()=>!!this.element&&jt(this.element)),this.emitter=e,this.logger=t,this.emitter.on(`add picture in picture listener`,this.onEnablePictureInPicture)}};RC=zC,m(zC,`create`,(e,t)=>new RC(e,t)),H(),h();var BC,VC=class{constructor(e,t,n,r){m(this,`emitter`,void 0),m(this,`logger`,void 0),m(this,`clockSource`,void 0),m(this,`state`,`buffering`),m(this,`bufferFullness`,0),m(this,`targetBufferTime`,void 0),m(this,`lastBufferStateEvent`,`drained`),m(this,`firstFrameTime`,void 0),m(this,`currentTimeIsInRange`,!1),m(this,`needsInputForAudioCount`,0),m(this,`needsInputForVideoCount`,0),m(this,`unload`,()=>{this.emitter.off(`buffer state`,this.onBufferedStateChanged),this.emitter.off(`needs user input`,this.onNeedsUserInput)}),m(this,`setTargetBufferTime`,e=>{this.targetBufferTime=e,this.emitter.emit(`target buffer time`,e)}),m(this,`getTargetBufferTime`,()=>this.targetBufferTime),m(this,`getBufferFullness`,()=>this.bufferFullness),m(this,`getLastBufferStateEvent`,()=>this.lastBufferStateEvent),m(this,`getState`,()=>this.state),m(this,`getFirstFrameTime`,()=>this.firstFrameTime),m(this,`getStatistics`,()=>({bufferTime:this.targetBufferTime,needsInputForAudioCount:this.needsInputForAudioCount,needsInputForVideoCount:this.needsInputForVideoCount})),m(this,`onBufferedStateChanged`,({buffered:e,isPaused:t,playbackState:n})=>{let r=this.clockSource.currentTime,i=hr(e,r),a=e[e.length-1],o=a?a.end-a.start>=this.targetBufferTime:!1,s=a?Math.max(0,a.end-r)/this.targetBufferTime:0,c=t?`paused`:n,l=this.state;this.currentTimeIsInRange!==i&&!i?(this.lastBufferStateEvent=`drained`,this.emitter.emit(`buffer state event`,this.lastBufferStateEvent)):i&&o&&this.lastBufferStateEvent===`drained`&&(this.lastBufferStateEvent=`filled`,this.emitter.emit(`buffer state event`,this.lastBufferStateEvent)),c===`playing`&&this.firstFrameTime===void 0&&(this.firstFrameTime=performance.now()),this.currentTimeIsInRange=i,this.state=c,this.bufferFullness=i?s:0,l!==c&&this.emitter.emit(`playback state`,c),this.emitter.emit(`buffer fullness`,this.bufferFullness)}),m(this,`onNeedsUserInput`,({forAudio:e,forVideo:t})=>{e&&this.needsInputForAudioCount++,t&&this.needsInputForVideoCount++}),this.emitter=e,this.logger=t,this.clockSource=n,this.targetBufferTime=r,this.emitter.on(`buffer state`,this.onBufferedStateChanged),this.emitter.on(`needs user input`,this.onNeedsUserInput),this.emitter.emit(`target buffer time`,r)}};BC=VC,m(VC,`create`,(e,t,n,r)=>new BC(e,t,n,r)),H(),h();var HC,UC=()=>({upgradesFromLevel:[],downgradesFromLevel:[],bufferingRanges:[],activeRanges:[],decodeRate:2**53-1}),WC=()=>({levels:{},levelDowngrades:[],levelUpgrades:[],bufferFullness:0,general:UC()}),GC=class{constructor(e,t,n){m(this,`minBufferFullnessLengthForRegression`,6),m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`timers`,cr.create()),m(this,`metrics`,WC()),m(this,`bufferFullness`,new w(30)),m(this,`bufferFullnessRegression`,void 0),m(this,`currentLevel`,void 0),m(this,`isSuspended`,!1),m(this,`_fatalQosCount`,0),m(this,`targetBufferTime`,0),m(this,`renditionLevelSource`,void 0),m(this,`qualityIndexOrder`,[]),m(this,`hasPlayedInSession`,!1),m(this,`hasAsserted`,!1),m(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),this.emitter.on(`connection state`,this.onConnectionState)}),m(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.emitter.off(`connection state`,this.onConnectionState),this.suspend()}),m(this,`suspend`,()=>{this.isSuspended=!0,this.timers.unload(),this.stopBuffering(),this.unsetActive(),this.hasPlayedInSession=!1}),m(this,`unsuspend`,()=>{this.isSuspended=!1,this.currentLevel&&this.setActive()}),m(this,`fatalQosGraceTime`,()=>1e4*(this.fatalQosCount+1)),m(this,`incrementFatalQosCount`,()=>{this._fatalQosCount++}),m(this,`getMetrics`,()=>this.metrics),m(this,`getLevelStats`,e=>{var t,n,r,i;let a=((t=(n=e.video)==null?void 0:n.bitRate)==null?0:t)+((r=(i=e.audio)==null?void 0:i.bitRate)==null?0:r);return this.metrics.levels[a]}),m(this,`getBufferFullnessRegression`,()=>this.bufferFullnessRegression),m(this,`getTargetBufferTime`,()=>this.targetBufferTime),m(this,`activeRatios`,()=>{let e=new Map,t=fr(this.metrics.general.activeRanges);if(Object.entries(this.metrics.levels).forEach(([n,r])=>{var i;let a=parseInt(n,10),o=t?fr(r.activeRanges)/t:0,s=this.getQualityIndex(a).toString();e.set(s,((i=e.get(s))==null?0:i)+o)}),!this.hasAsserted){let t=e.size?Math.abs(Array.from(e.values()).reduce((e,t)=>e+t,0)-1)<=.02:!0;t||(this.hasAsserted=!0,console.assert(t,`Active ratios should be close to 1 - actual: ${Array.from(e.values()).reduce((e,t)=>e+t,0)}`))}return e}),m(this,`bufferingRatios`,()=>{let e=new Map,t=fr(this.metrics.general.bufferingRanges);if(Object.entries(this.metrics.levels).forEach(([n,r])=>{var i;let a=parseInt(n,10),o=t?fr(r.bufferingRanges)/t:0,s=this.getQualityIndex(a).toString();e.set(s,((i=e.get(s))==null?0:i)+o)}),!this.hasAsserted){let t=Array.from(e.values()).reduce((e,t)=>e+t,0)<=1;t||(this.hasAsserted=!0,console.assert(t,`Buffering ratios should be less than 1 - actual: ${Array.from(e.values()).reduce((e,t)=>e+t,0)}`))}return e}),m(this,`bufferingEventsLast`,e=>this.metrics.general.bufferingRanges.filter(t=>t.start>=performance.now()-e).length),m(this,`timeSpentBufferingLast`,e=>pr(this.metrics.general.bufferingRanges,e)),m(this,`timeSpentActiveLast`,e=>pr(this.metrics.general.activeRanges,e)),m(this,`timeSpentPlayingInAtLeastLevelRatio`,e=>{var t,n,r,i;let a=this.timeSpentBuffering(),o=this.timeActive(),s=this.bufferingRatios(),c=this.activeRatios(),l=((t=(n=e.video)==null?void 0:n.bitRate)==null?0:t)+((r=(i=e.audio)==null?void 0:i.bitRate)==null?0:r),u=a/o;return Object.keys(this.metrics.levels).map(e=>parseInt(e,10)).filter(e=>e>=l).reduce((e,t)=>{var n,r;let i=this.getQualityIndex(t).toString();return((n=c.get(i))==null?0:n)-((r=s.get(i))==null?0:r)*u+e},0)}),m(this,`timeSpentBuffering`,()=>fr(this.metrics.general.bufferingRanges)),m(this,`timeActive`,()=>fr(this.metrics.general.activeRanges)),m(this,`getStatistics`,()=>{let e=this.timeSpentBuffering(),t=this.timeActive(),n=this.metrics.general.bufferingRanges.length,r=this.activeRatios(),i=t/6e4,a=t>0?e/t:0,o=Math.max(i,1),s=i>0?n/o:0,c=[...r].reduce((e,[t,n])=>e+parseInt(t,10)*n,0),l=6e4,u=this.timeSpentActiveLast(l),d=this.timeSpentBufferingLast(l),f=u>0?d/u:0,p=this.metrics.general.upgradesFromLevel.length+this.metrics.general.downgradesFromLevel.length,m=i>0?p/o:0,h=n>0?e/n:0;return{timeSpentBuffering:e,bufferingEventsCount:n,timeSpentRatio:[...r].reduce((e,[t,n])=>(e[t]=n,e),{}),fatalQosCount:this.fatalQosCount,bufferingRatio:a,bufferingEventsPerMinute:s,averageRenditionIndex:c,bufferingRatioPerMinute:f,renditionChangesPerMinute:m,timePerBufferingEvent:h}}),m(this,`onRenditionLevelChanged`,e=>{var t,n,r,i,a,o,s,c;let l=((t=(n=e.from)==null||(n=n.video)==null?void 0:n.bitRate)==null?0:t)+((r=(i=e.from)==null||(i=i.audio)==null?void 0:i.bitRate)==null?0:r),u=((a=(o=e.to)==null||(o=o.video)==null?void 0:o.bitRate)==null?0:a)+((s=(c=e.to)==null||(c=c.audio)==null?void 0:c.bitRate)==null?0:s);this.logger.info(`rendition level changed`,{fromLevel:l,toLevel:u}),this.metrics.general.activeRanges.length===0&&this.setActive(),e.from&&e.to&&(l<u?this.metrics.general.upgradesFromLevel.push(performance.now()):this.metrics.general.downgradesFromLevel.push(performance.now()));let d=!1;if(e.from){var f;let e=(f=this.metrics.levels[l])==null?UC():f;l<u?e.upgradesFromLevel.push(performance.now()):e.downgradesFromLevel.push(performance.now()),ur(e.activeRanges);let t=e.bufferingRanges[e.bufferingRanges.length-1];d=!!t&&!t.end,ur(e.bufferingRanges),this.metrics.levels[l]=e}if(e.to){var p;let e=(p=this.metrics.levels[u])==null?UC():p;dr(e.activeRanges),d&&dr(e.bufferingRanges),this.metrics.levels[u]=e,this.currentLevel=u}}),m(this,`onBufferFullness`,e=>{this.bufferFullness.push(e),this.metrics.bufferFullness=e,this.bufferFullness.items().length>=this.minBufferFullnessLengthForRegression&&(this.bufferFullnessRegression=this.calculateLinearRegression())}),m(this,`onPlaybackState`,e=>{switch(this.logger.info(`Playback state`,{state:e,currentLevel:this.currentLevel}),e){case`playing`:this.hasPlayedInSession=!0,this.stopBuffering();break;case`buffering`:!this.isSuspended&&this.hasPlayedInSession&&this.startBuffering();break}}),m(this,`onConnectionState`,e=>{e!==`connected`&&this.isSuspended&&(this.hasPlayedInSession=!1)}),m(this,`onVideoDecodeRate`,e=>{var t;if(this.metrics.general.decodeRate=e,!this.currentLevel)return;let n=this.metrics.levels[(t=this.currentLevel)==null?0:t];n&&(n.decodeRate=e)}),m(this,`onTargetBufferTime`,e=>{this.targetBufferTime=e}),m(this,`calculateLinearRegression`,()=>Wt(this.bufferFullness.items().map((e,t)=>({x:t,y:e})))),m(this,`stopBuffering`,()=>{if(this.currentLevel){let e=this.metrics.levels[this.currentLevel];e&&ur(e.bufferingRanges)}ur(this.metrics.general.bufferingRanges)}),m(this,`startBuffering`,()=>{if(this.currentLevel){let e=this.metrics.levels[this.currentLevel];e&&dr(e.bufferingRanges)}dr(this.metrics.general.bufferingRanges)}),m(this,`unsetActive`,()=>{if(this.currentLevel){let e=this.metrics.levels[this.currentLevel];e&&ur(e.activeRanges)}ur(this.metrics.general.activeRanges)}),m(this,`getQualityIndex`,e=>{if(!this.qualityIndexOrder.length){var t,n;let e=((t=(n=this.renditionLevelSource)==null?void 0:n.getRenditionLevels())==null?[]:t).map(e=>{var t,n,r,i;return((t=(n=e.video)==null?void 0:n.bitRate)==null?0:t)+((r=(i=e.audio)==null?void 0:i.bitRate)==null?0:r)}).filter(e=>e>0);this.qualityIndexOrder=[...new Set(e)].sort((e,t)=>t-e)}let r=this.qualityIndexOrder.indexOf(e);return r===-1&&(this.qualityIndexOrder.push(e),this.qualityIndexOrder.sort((e,t)=>t-e),r=this.qualityIndexOrder.indexOf(e)),r}),this.logger=t,this.emitter=e,this.renditionLevelSource=n}get fatalQosCount(){return this._fatalQosCount}setActive(){if(this.currentLevel){let e=this.metrics.levels[this.currentLevel];e&&dr(e.activeRanges)}dr(this.metrics.general.activeRanges)}};HC=GC,m(GC,`create`,(e,t,n)=>new HC(e,t,n)),H(),h();var KC,qC=class{constructor(e,t){m(this,`renditions`,new Map),m(this,`renditionLevels`,[]),m(this,`languages`,[]),m(this,`emitter`,void 0),m(this,`subscriptionSource`,void 0),m(this,`renditionLevelChangeCount`,0),m(this,`unload`,()=>{this.emitter.off(`renditions`,this.onRenditions),this.emitter.off(`subscription changed`,this.onSubscriptionChanged)}),m(this,`getRenditionLevels`,e=>e?this.createRenditionLevels(e):this.renditionLevels),m(this,`getRenditionLevel`,e=>{var t;let n=e==null?this.getCurrentSubscription():e,r=e?this.createRenditionLevels(e):this.renditionLevels;if(!n.video)return r.length?r[0]:void 0;let i=n.video.bitRate||2**53-1,a=n.video.width||2**53-1,o=n.video.height||2**53-1;return(t=r.filter(e=>e.video&&n.video?e.video.bitRate<=i&&e.video.width<=a&&e.video.height<=o:!0).pop())==null?r[0]:t}),m(this,`setRenditions`,(e,t)=>{this.renditions.set(e,t)}),m(this,`getLanguages`,()=>this.languages),m(this,`getVideoRendition`,(e,t=this.getCurrentSubscription().channelId)=>{let n=this.getRendition(e,t);if(n&&Lr(n))return n}),m(this,`getAudioRenditions`,e=>{let t=this.renditions.get(e);return t==null?void 0:t.filter(e=>Rr(e))}),m(this,`getVideoRenditions`,e=>{let t=this.renditions.get(e);return t==null?void 0:t.filter(e=>Lr(e))}),m(this,`getAudioRendition`,(e,t=this.getCurrentSubscription().channelId)=>{let n=this.getRendition(e,t);if(n&&Rr(n))return n}),m(this,`getRendition`,(e,t=this.getCurrentSubscription().channelId)=>{var n;return(n=this.renditions.get(t))==null?void 0:n.find(t=>t.id===e)}),m(this,`getStatistics`,()=>{var e,t,n,r,i,a,o,s,c,l;let u=this.getRenditionLevel();return{videoCodec:u==null||(e=u.video)==null?void 0:e.codec,audioCodec:u==null||(t=u.audio)==null?void 0:t.codec,videoRenditionId:u==null||(n=u.video)==null?void 0:n.id,audioRenditionId:u==null||(r=u.audio)==null?void 0:r.id,videoWidth:u==null||(i=u.video)==null?void 0:i.width,videoHeight:u==null||(a=u.video)==null?void 0:a.height,expectedVideoBitRate:u==null||(o=u.video)==null?void 0:o.bitRate,expectedAudioBitRate:u==null||(s=u.audio)==null?void 0:s.bitRate,frameRate:u==null||(c=u.video)==null?void 0:c.frameRate,language:u==null||(l=u.audio)==null?void 0:l.language,renditionLevelChangeCount:this.renditionLevelChangeCount}}),m(this,`onRenditions`,e=>{let t=this.subscriptionSource.getCurrentSubscription();this.renditions.set(e.channelId,e.renditions),this.updateRenditionLevels({to:t,from:t})}),m(this,`onSubscriptionChanged`,e=>{this.updateRenditionLevels(e)}),m(this,`updateRenditionLevels`,({to:e,from:t})=>{var n;let{channelId:r,initiator:i}=e,a=this.getRenditionLevel(t),o=new Set;((n=this.renditions.get(r))==null?[]:n).filter(e=>e.codec!==`webvtt`).forEach(e=>e.language?o.add(e.language):void 0),this.languages=Array.from(o),this.renditionLevels=this.createRenditionLevels(e);let s=this.getRenditionLevel(e);$t(a,s)||(this.renditionLevelChangeCount++,this.emitter.emit(`rendition level changed`,{to:s,from:a,reason:i?`manual`:`abr`}))}),m(this,`createRenditionLevels`,e=>{var t;let{video:n,audio:r,channelId:i}=e,a=(t=this.renditions.get(i))==null?[]:t,o=a.filter(Lr).filter(e=>n&&e.codec===n.codec),s=a.filter(Rr).filter(e=>r&&e.codec===r.codec&&e.language===r.language),c=Math.max(o.length,s.length),l=[];for(let e=0;e<c;e++){let t=o[Math.min(o.length-1,e)],n=s[Math.min(s.length-1,e)];l.push({audio:n,video:t})}return l}),m(this,`getCurrentSubscription`,()=>this.subscriptionSource.getCurrentSubscription()),this.subscriptionSource=t,this.emitter=e,this.emitter.on(`renditions`,this.onRenditions),this.emitter.on(`subscription changed`,this.onSubscriptionChanged)}};KC=qC,m(qC,`create`,(e,t)=>new KC(e,t)),H(),h();var JC,YC=e=>JSON.parse(JSON.stringify(e)),XC=1e4,ZC=class{constructor(e,t,n){m(this,`logger`,void 0),m(this,`timers`,new cr),m(this,`emitter`,void 0),m(this,`targetSubscription`,void 0),m(this,`currentSubscription`,void 0),m(this,`_isSwitchingSubscription`,!1),m(this,`pendingSubscriptionTimeoutId`,void 0),m(this,`burstMs`,0),m(this,`unload`,()=>{this.logger.debug(`Unloading module...`),this.timers.unload(),this.emitter.off(`subscription changed`,this.onSubscriptionChanged),this.logger.debug(`Unloaded module`)}),m(this,`isSwitchingSubscription`,()=>this._isSwitchingSubscription),m(this,`getTargetSubscription`,()=>this.targetSubscription),m(this,`getCurrentSubscription`,()=>this.currentSubscription),m(this,`enableBurst`,e=>{this.burstMs=e}),m(this,`setSize`,e=>{this.targetSubscription.video.width=e.width,this.targetSubscription.video.height=e.height,this.scheduleSubscriptionChange()}),m(this,`setVideoConstraint`,e=>{this.targetSubscription.video=e,this.scheduleSubscriptionChange()}),m(this,`setAudioConstraint`,e=>{this.targetSubscription.audio=e,this.scheduleSubscriptionChange()}),m(this,`setVideoBitRate`,e=>{this.targetSubscription.video.bitRate=e,this.scheduleSubscriptionChange()}),m(this,`setAudioBitRate`,e=>{this.targetSubscription.audio.bitRate=e,this.scheduleSubscriptionChange()}),m(this,`setChannelId`,e=>{this.targetSubscription.channelId=e,this.scheduleSubscriptionChange()}),m(this,`setLanguage`,e=>{this.targetSubscription.audio.language=e,this.scheduleSubscriptionChange()}),m(this,`setVideoCodec`,e=>{this.targetSubscription.video.codec=e,this.scheduleSubscriptionChange()}),m(this,`setAudioCodec`,e=>{this.targetSubscription.audio.codec=e,this.scheduleSubscriptionChange()}),m(this,`setBurst`,e=>{e?this.targetSubscription.burstMs=e:delete this.targetSubscription.burstMs}),m(this,`isNewSubscription`,()=>{let e=[`burstMs`,`meta`,`initiator`,`channelGroupId`];return!$t($n(this.currentSubscription,e),$n(this.targetSubscription,e))}),m(this,`onSubscriptionChanged`,({to:e,reset:t})=>{this.logger.debug(`onSubscriptionChanged`,{to:e,reset:t}),t?this.targetSubscription=YC(this.currentSubscription):this.currentSubscription=YC(e),this._isSwitchingSubscription=this.isNewSubscription()}),m(this,`scheduleSubscriptionChange`,()=>{this.targetSubscription=YC(this.targetSubscription),this._isSwitchingSubscription=this.isNewSubscription();let e=this.currentSubscription.channelId,t=this.targetSubscription.channelId,n=e!==t;this._isSwitchingSubscription&&(n&&this.burstMs?this.setBurst(this.burstMs):this.setBurst(0),this.pendingSubscriptionTimeoutId&&(this.timers.clearTimeout(this.pendingSubscriptionTimeoutId),this.pendingSubscriptionTimeoutId=void 0),n&&this.timers.setTimeout(()=>{this.currentSubscription.channelId===e&&this.targetSubscription.channelId===t&&(this.logger.warn(`Channel switch timeout`,t),this.targetSubscription=YC(this.currentSubscription),this.emitter.emit(`channel switch timeout`,t))},XC),this.pendingSubscriptionTimeoutId=this.timers.setTimeout(()=>this.emitter.emit(`send signal`,{type:`subscribe`,subscription:this.getTargetSubscription()}),0))}),this.logger=e,this.targetSubscription=t,this.currentSubscription=YC(t),this.emitter=n,this.emitter.on(`subscription changed`,this.onSubscriptionChanged)}};JC=ZC,m(ZC,`create`,(e,t,n)=>new JC(e,n,t)),H(),h();var QC=class e{constructor(){m(this,`channelId`,void 0),m(this,`renditionId`,void 0),m(this,`anchorCts`,void 0),m(this,`hasBFramesValue`,!1),m(this,`isAwaitingAssessment`,!1),m(this,`zeroOffsetSamples`,0),m(this,`omittedBoundaryCrossings`,0),m(this,`hasSeenKeyframe`,!1),m(this,`hasObservedReordering`,!1),m(this,`rememberedRenditions`,new rn(e.MAX_REMEMBERED_RENDITIONS))}get hasBFrames(){return this.hasBFramesValue}get isAwaitingReorderAssessment(){return this.isAwaitingAssessment}update(e){var t;e.type===`video`&&(this.resetOnSwitch(e.channelId,e.renditionId),!this.hasObservedReordering&&(e.isSync&&this.noteKeyframe(),this.observeOffset((t=e.compositionTimeOffset)==null?0:t,e.isSync)))}updateFromFragment(e){var t;if(e.type!==`video`||(this.resetOnSwitch(e.channelId,e.renditionId),this.hasObservedReordering))return;if(e.startsWithKeyframe&&this.noteKeyframe(),e.compositionTimeOffsets.length===0){if(!e.startsWithKeyframe&&this.hasSeenKeyframe&&this.anchorCts!==void 0&&this.anchorCts!==0&&this.noteOmittedBoundaryCrossing())return;this.zeroOffsetSamples+=e.sampleCount,this.zeroOffsetSamples>=2&&(this.isAwaitingAssessment=!1),this.anchorCts=void 0;return}let n=this.zeroOffsetSamples>0;if(this.zeroOffsetSamples=0,!(this.hasSeenKeyframe&&n&&!e.startsWithKeyframe&&((t=e.compositionTimeOffsets[0])==null?0:t)!==0&&this.noteOmittedBoundaryCrossing()))for(let t=0;t<e.sampleCount;t++){var r;let n=(r=e.compositionTimeOffsets[t])==null?0:r;if(this.observeOffset(n,t===0&&e.startsWithKeyframe))return}}observeOffset(e,t){return t||this.anchorCts===void 0?(this.anchorCts!==void 0&&(this.isAwaitingAssessment=!1),this.anchorCts=e,!1):e===this.anchorCts?(this.isAwaitingAssessment=!1,!1):(this.latchBFrames(),!0)}reset(){this.channelId=void 0,this.renditionId=void 0,this.anchorCts=void 0,this.hasBFramesValue=!1,this.zeroOffsetSamples=0,this.omittedBoundaryCrossings=0,this.hasSeenKeyframe=!1,this.hasObservedReordering=!1,this.isAwaitingAssessment=!0}remember(e){this.channelId!==void 0&&this.rememberedRenditions.set(lS(this.channelId,this.renditionId),e)}latchBFrames(){this.hasBFramesValue=!0,this.hasObservedReordering=!0,this.isAwaitingAssessment=!1,this.remember(!0)}noteOmittedBoundaryCrossing(){return this.omittedBoundaryCrossings+=1,this.omittedBoundaryCrossings>=2?(this.latchBFrames(),!0):!1}noteKeyframe(){this.hasSeenKeyframe&&!this.hasObservedReordering&&(this.remember(!1),this.hasBFramesValue=!1),this.hasSeenKeyframe=!0,this.omittedBoundaryCrossings=0}resetOnSwitch(e,t){if(!uS(e,t,this.channelId,this.renditionId)){let n=this.channelId!==void 0;this.channelId=e,this.renditionId=t,this.anchorCts=void 0,this.zeroOffsetSamples=0,this.omittedBoundaryCrossings=0,this.hasSeenKeyframe=!1,this.hasObservedReordering=!1;let r=this.rememberedRenditions.get(lS(e,t));this.hasBFramesValue=r==null?!1:r,n&&(this.isAwaitingAssessment=r===void 0)}}};m(QC,`MAX_REMEMBERED_RENDITIONS`,32),H(),h(),R();var $C,ew=5e3,tw=()=>at()||nt(),nw=e=>e&&tw()?100:0,rw=e=>t=>t>e,iw=100,aw=1e3,ow=1e3,sw=1e3,cw=100,lw=50,uw={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}},dw=class{get driftSamplesToCollect(){return this._driftSamplesToCollect}set driftSamplesToCollect(e){this._driftSamplesToCollect=e,this.driftSamples=new w(e)}constructor(e,t,n,r,i,a=!0){m(this,`emitter`,void 0),m(this,`logger`,void 0),m(this,`playbackSource`,void 0),m(this,`bufferSource`,void 0),m(this,`keyframeTimestamps`,new w(10)),m(this,`lastSeekTime`,void 0),m(this,`needsMediaSourceRecovery`,!1),m(this,`lastAdjustmentTime`,performance.now()),m(this,`lastDecayCheckTime`,performance.now()),m(this,`syncInterval`,void 0),m(this,`currentSyncIntervalMs`,iw),m(this,`config`,void 0),m(this,`state`,void 0),m(this,`allowTimeshiftOnAudio`,!1),m(this,`syncInfoToleranceMaxMs`,150),m(this,`syncInfoToleranceStep`,20),m(this,`seekOvershoot`,void 0),m(this,`timers`,cr.create()),m(this,`rtt`,0),m(this,`channelSyncInfo`,new Map),m(this,`seekAdjustmentCount`,0),m(this,`timeshiftAdjustmentCount`,0),m(this,`syncInfoCorrectionCount`,0),m(this,`playbackRateAdjustmentCount`,0),m(this,`lastPlaybackRateChangeTime`,0),m(this,`seekAdjustmentTimestamps`,[]),m(this,`timeshiftAdjustmentTimestamps`,[]),m(this,`_driftSamplesToCollect`,5),m(this,`driftSamples`,new w(this._driftSamplesToCollect)),m(this,`timestampOffset`,void 0),m(this,`hasObservedBFrames`,!1),m(this,`bFrameDetector`,new QC),m(this,`currentChannelId`,void 0),m(this,`highestSeenTimestamps`,new Map),m(this,`isSuspended`,!1),m(this,`isSyncAdjustmentActivated`,!1),m(this,`queuedTimeshift`,!1),m(this,`playbackState`,void 0),m(this,`hasPerformedRecoverySeekInCurrentRecoveryState`,!1),m(this,`shouldSeekAfterBuffering`,!1),m(this,`shouldSeekWhileStuck`,!1),m(this,`hasPerformedStuckSeekInCurrentStillness`,!1),m(this,`positionSetBySeek`,void 0),m(this,`lastPlayheadPosition`,void 0),m(this,`lastPlayheadProgressAt`,performance.now()),m(this,`usesMse`,void 0),m(this,`load`,()=>{this.emitter.on(`page active`,this.onPageActive),this.emitter.on(`pageshow`,this.onPageShow),this.setSyncInterval(document.visibilityState===`hidden`?aw:iw)}),m(this,`unload`,()=>{this.logger.debug(`Unloading module...`),this.emitter.off(`rtt`,this.updateRtt),this.emitter.off(`playback state`,this.onPlaybackState),this.emitter.off(`page active`,this.onPageActive),this.emitter.off(`pageshow`,this.onPageShow),this.emitter.off(`buffers flushed`,this.clearBFrameLatch),this.emitter.off(`recovered from media error`,this.onMediaSourceRecovered),this.clearSyncInterval(),this.timers.unload(),this.logger.debug(`Unloaded module`)}),m(this,`suspend`,()=>{this.isSuspended=!0}),m(this,`unsuspend`,()=>{let e=this.playbackState;this.resetSyncState(),this.playbackState=e,this.isSuspended=!1,this.onSync()}),m(this,`deactivateSyncAdjustments`,()=>{this.isSyncAdjustmentActivated=!1}),m(this,`activateSyncAdjustments`,()=>{this.tryApplySyncInfo(0),this.isSyncAdjustmentActivated=!0}),m(this,`reset`,()=>{this.logger.info(`Reset sync state`),this.needsMediaSourceRecovery=!1,this.currentChannelId=void 0,this.timestampOffset=void 0,this.bFrameDetector.reset(),this.resetSyncState(),this.highestSeenTimestamps.clear()}),m(this,`getTimeshiftOffset`,()=>{var e;return(e=this.timestampOffset)==null?0:e}),m(this,`getCurrentChannelId`,()=>this.currentChannelId),m(this,`resetSyncState`,()=>{this.state.seekToleranceMultiplier=1,this.state.timeshiftToleranceMultiplier=1,this.seekAdjustmentTimestamps=[],this.timeshiftAdjustmentTimestamps=[],this.driftSamples.clear(),this.playbackState=void 0,this.hasPerformedRecoverySeekInCurrentRecoveryState=!1,this.hasPerformedStuckSeekInCurrentStillness=!1,this.clearRecoverySeekFlags()}),m(this,`getEffectiveSeekToleranceMs`,()=>this.config.timeshift.enabled?this.config.seek.toleranceMs*2:this.config.seek.toleranceMs),m(this,`isTimeshiftUnsafe`,()=>this.usesMse&&(this.hasObservedBFrames||this.bFrameDetector.isAwaitingReorderAssessment)),m(this,`clearBFrameLatch`,()=>{this.hasObservedBFrames=!1}),m(this,`latchBFramesIfDetected`,()=>{!this.hasObservedBFrames&&this.bFrameDetector.hasBFrames&&(this.hasObservedBFrames=!0,this.logger.info(this.usesMse?`B-frame stream detected; disabling timeshift drift correction`:`B-frame stream detected; timeshift drift correction stays enabled (no MSE buffer to splice)`))}),m(this,`getLiveEdgeTime`,e=>{let t=this.channelSyncInfo.get(e);if(!t)return;let n=performance.now()-t.localTimestamp;return t.timestamp+n}),m(this,`getLiveEdgeTimeLatencyAdjusted`,e=>{let t=this.getLiveEdgeTime(e);if(t)return t+this.rtt/2}),m(this,`getWallclockTime`,e=>{let t=this.channelSyncInfo.get(e);if(!t)return;let n=performance.now()-t.localTimestamp;return t.wallclockTime+n}),m(this,`getWallclockTimeLatencyAdjusted`,e=>{let t=this.getWallclockTime(e);if(t)return t+this.rtt/2}),m(this,`processSample`,e=>{var t;if(!e.channelId)throw Error(`Sample must be assigned to a channel`);this.currentChannelId||(this.currentChannelId=e.channelId),this.timestampOffset||(this.timestampOffset=e.timestamp/e.timescale*1e3-ew);let n=e.type===`video`&&e.isSync;if(this.bFrameDetector.update(e),this.latchBFramesIfDetected(),this.currentChannelId!==e.channelId){let t=2**53-1;console.assert(this.highestSeenTimestamps.size!==0,`no known timestamps`),this.highestSeenTimestamps.forEach(e=>{t=Math.min(t,e)});let n=e.timestamp/e.timescale*1e3;this.currentChannelId=e.channelId,this.timestampOffset=n-t}else (n||this.allowTimeshiftOnAudio)&&this.tryTimeshiftSync();let r=this.timestampOffset*e.timescale/1e3;return e.timestamp-=r,n&&this.keyframeTimestamps.push(e.timestamp/e.timescale*1e3),this.highestSeenTimestamps.set(e.type,Math.max((t=this.highestSeenTimestamps.get(e.type))==null?0:t,e.timestamp/e.timescale*1e3)),e}),m(this,`processFragment`,(e,t,n)=>{var r;this.currentChannelId||(this.currentChannelId=e);let i=t.mediaType();if(!i)throw Error(`Fragment must have a media type`);this.timestampOffset||(this.timestampOffset=t.baseMediaDecodeTime()/t.timescale()*1e3-ew);let a=i===`video`&&t.startsWithKeyframe();if(i===`video`&&(this.bFrameDetector.updateFromFragment({type:i,channelId:e,renditionId:n,startsWithKeyframe:a,sampleCount:t.samplesCount(),compositionTimeOffsets:t.sampleCompositionTimeOffsets()}),this.latchBFramesIfDetected()),this.currentChannelId!==e){let t=2**53-1;console.assert(this.highestSeenTimestamps.size!==0,`no known timestamps`),this.highestSeenTimestamps.forEach(e=>{t=Math.min(t,e)}),this.currentChannelId=e}else (a||this.allowTimeshiftOnAudio)&&this.tryTimeshiftSync();let o=this.timestampOffset*t.timescale()/1e3;return t.updateBaseMediaDecodeTime(t.baseMediaDecodeTime()-o),a&&this.keyframeTimestamps.push(t.baseMediaDecodeTime()/t.timescale()*1e3),this.highestSeenTimestamps.set(i,Math.max((r=this.highestSeenTimestamps.get(i))==null?0:r,t.baseMediaDecodeTime()/t.timescale()*1e3)),t}),m(this,`forceSeek`,()=>{this.logger.debug(`Forcing seek`,{amount:this.serverCurrentTime-this.playbackSource.currentTime}),this.clearRecoverySeekFlags(),this.playbackSource.currentTime=this.serverCurrentTime,this.positionSetBySeek=this.playbackSource.currentTime}),m(this,`forceTimeshift`,()=>{this.queuedTimeshift=!0}),m(this,`setPlaybackRateAdjustmentEnabled`,e=>{this.config.playbackRate.enabled=e}),m(this,`getStatistics`,()=>{let e=this.driftSamples.items(),t=e.length>0?Bt(e.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,videoHasBFrames:this.bFrameDetector.hasBFrames}}),m(this,`updateRtt`,e=>{this.rtt=e}),m(this,`isPlaybackSourceReadyToSeek`,()=>!this.isSeeking()&&this.isSeekCooldownExpired()&&this.isSyncAdjustmentActivated),m(this,`isPlaybackSourceReady`,()=>!this.isSeeking()&&this.isSyncAdjustmentActivated),m(this,`isSeeking`,()=>this.playbackSource.isSeeking?!this.isSeekTimeoutExpired():!1),m(this,`isAllowedToSync`,()=>this.isPlaybackSourceReadyToSeek()&&!!this.currentChannelId&&!this.isSuspended&&!this.playbackSource.isPaused),m(this,`isAllowedToSyncIgnoringCooldown`,()=>this.isPlaybackSourceReady()&&!!this.currentChannelId&&!this.isSuspended&&!this.playbackSource.isPaused),m(this,`isSeekCooldownExpired`,()=>this.lastSeekTime===void 0||performance.now()-this.lastSeekTime>this.config.seek.cooldownMs),m(this,`isSeekTimeoutExpired`,()=>this.lastSeekTime===void 0||performance.now()-this.lastSeekTime>this.config.seek.timeoutMs),m(this,`currentTimeshiftToleranceMs`,()=>Math.min(this.config.timeshift.toleranceMs*this.state.timeshiftToleranceMultiplier,this.config.timeshift.toleranceMaxMs)),m(this,`currentSeekToleranceMs`,()=>Math.min(this.state.seekToleranceMultiplier*this.getEffectiveSeekToleranceMs(),this.config.seek.toleranceMaxMs)),m(this,`currentEmergencySeekToleranceMs`,()=>Math.max(this.currentSeekToleranceMs()+this.getEffectiveSeekToleranceMs(),this.bufferSource.getTargetBufferTime())),m(this,`currentAheadToleranceMs`,()=>{let e=Math.max(this.config.seek.aheadToleranceMs*this.state.seekToleranceMultiplier,400),t=this.playbackSource.seekTime>500?e:this.config.seek.aheadToleranceMs;return Math.min(t,this.bufferSource.getTargetBufferTime()/2)}),m(this,`tryDecayMultipliers`,()=>{if(!this.config.backoff.decayEnabled)return;let e=performance.now();if(e-this.lastDecayCheckTime<this.config.backoff.decayCheckInterval)return;this.lastDecayCheckTime=e;let t=this.seekAdjustmentTimestamps.length>0?Math.max(...this.seekAdjustmentTimestamps):0,n=this.timeshiftAdjustmentTimestamps.length>0?Math.max(...this.timeshiftAdjustmentTimestamps):0,r=e-Math.max(t,n,this.lastAdjustmentTime),i=Math.max(this.state.seekToleranceMultiplier,this.state.timeshiftToleranceMultiplier),a=this.config.seek.timeoutMs*this.config.backoff.decayCooldownMultiplier*i;if(r<a)return;let o=!1;if(this.state.seekToleranceMultiplier>1){let 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:r,requiredStabilityMs:a}),this.state.seekToleranceMultiplier=e,o=!0)}if(this.state.timeshiftToleranceMultiplier>1){let 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:r,requiredStabilityMs:a}),this.state.timeshiftToleranceMultiplier=e,o=!0)}if(o){let t=e-a*2;this.seekAdjustmentTimestamps=this.seekAdjustmentTimestamps.filter(e=>e>t),this.timeshiftAdjustmentTimestamps=this.timeshiftAdjustmentTimestamps.filter(e=>e>t)}}),m(this,`applyBackoff`,()=>{if(this.config.backoff.enabled&&(this.lastAdjustmentTime=performance.now(),this.seekAdjustmentCount>0&&this.seekAdjustmentCount%this.config.seek.backoffEveryN===0)){let e=this.state.seekToleranceMultiplier,t=this.config.seek.toleranceMaxMs/this.getEffectiveSeekToleranceMs();this.state.seekToleranceMultiplier=Math.min(this.state.seekToleranceMultiplier+this.config.seek.toleranceMultiplierStep,t),e!==this.state.seekToleranceMultiplier&&this.logger.info(`Backoff: Increasing seek tolerance multiplier`,{from:e,to:this.state.seekToleranceMultiplier,currentSeekToleranceMs:this.currentSeekToleranceMs()})}}),m(this,`tryPlaybackRateSync`,e=>{if(!this.config.playbackRate.enabled)return!1;let t=this.playbackSource.playbackRate!==1,n=Math.abs(e),r=t&&n<this.config.playbackRate.stopDiff,i=!t&&n>=this.config.playbackRate.startDiff;if(n>this.config.playbackRate.maxDiff)return t&&(this.playbackSource.playbackRate=1,this.lastPlaybackRateChangeTime=performance.now()),!1;let a=performance.now(),o=a-this.lastPlaybackRateChangeTime>=this.config.playbackRate.cooldownMs;if(r&&o)return this.playbackSource.playbackRate=1,this.lastPlaybackRateChangeTime=a,this.logger.info(`Resetting playback rate to 1`,{drift:e}),!0;if(i&&o){let t=e>0?1+this.config.playbackRate.speed:1-this.config.playbackRate.speed;return this.playbackSource.playbackRate=t,this.lastPlaybackRateChangeTime=a,this.playbackRateAdjustmentCount++,this.logger.info(`Adjusting playback rate`,{drift:e,targetRate:t}),!0}if(t&&n>=this.config.playbackRate.stopDiff&&n<=this.config.playbackRate.maxDiff){let t=e>0?1+this.config.playbackRate.speed:1-this.config.playbackRate.speed;return this.playbackSource.playbackRate!==t&&o&&(this.playbackSource.playbackRate=t,this.lastPlaybackRateChangeTime=a,this.logger.info(`Changing playback rate direction`,{drift:e,targetRate:t})),!0}return!t&&n<this.config.playbackRate.startDiff?!0:t}),m(this,`tryTimeshiftSync`,()=>{var e;if(!this.config.timeshift.enabled)return;if(this.isTimeshiftUnsafe()){this.queuedTimeshift&&this.hasObservedBFrames&&(this.queuedTimeshift=!1,this.logger.info(`Dropping forced timeshift: suppressed for B-frame stream, use forceSeek to resync`));return}if(this.hasPendingRecoverySeek()||!this.isAllowedToSync()||this.playbackSource.playbackRate!==1)return;let t=(e=this.drift)==null?0:e;this.driftSamples.push(t);let n=Ht(this.driftSamples.items());if(this.queuedTimeshift&&n>0){this.queuedTimeshift=!1,this.applyTimeshift(n);return}if(n>=this.getEffectiveSeekToleranceMs()||n<this.currentTimeshiftToleranceMs())return;let r=performance.now()-this.config.seek.timeoutMs*this.state.timeshiftToleranceMultiplier,i=this.timeshiftAdjustmentTimestamps.filter(rw(r)).length;if(i&&this.state.timeshiftToleranceMultiplier>2){this.logger.debug(`Too many timeshifts within sliding window`,{timeshiftCooldownThreshold:r,recentTimeshiftCount:i});return}this.applyTimeshift(n)}),m(this,`clearRecoverySeekFlags`,()=>{this.shouldSeekAfterBuffering=!1,this.shouldSeekWhileStuck=!1}),m(this,`hasActiveRecoveryTrigger`,()=>this.playbackState===`buffering`),m(this,`hasPendingRecoverySeek`,()=>(this.refreshRecoverySeekState(),this.getRecoverySeekReason()!==void 0)),m(this,`refreshRecoverySeekState`,()=>{var e,t;if(this.observePlayheadProgress(),!this.hasActiveRecoveryTrigger()||!this.usesMse){this.clearRecoverySeekFlags();return}if(this.shouldSeekWhileStuck=!this.hasPerformedStuckSeekInCurrentStillness&&this.isPlayheadStuckInBuffer(),this.hasPerformedRecoverySeekInCurrentRecoveryState){this.shouldSeekAfterBuffering=!1;return}let n=(e=(t=this.bufferSource).getNextBufferedRangeStart)==null?void 0:e.call(t,this.playbackSource.currentTime);return this.shouldSeekAfterBuffering=n!==void 0,n}),m(this,`observePlayheadProgress`,()=>{let e=this.playbackSource.currentTime,t=e!==this.lastPlayheadPosition,n=t&&(this.positionSetBySeek===void 0||e-this.positionSetBySeek>lw);this.positionSetBySeek=void 0,(n||this.playbackSource.isPaused)&&(this.hasPerformedStuckSeekInCurrentStillness=!1),(t||this.playbackSource.isPaused||this.isSeeking())&&(this.lastPlayheadPosition=e,this.lastPlayheadProgressAt=performance.now())}),m(this,`isPlayheadStuckInBuffer`,()=>{var e,t;if(performance.now()-this.lastPlayheadProgressAt<ow)return!1;let n=this.playbackSource.currentTime,r=(e=(t=this.bufferSource).getBufferedEndAt)==null?void 0:e.call(t,n);return r!==void 0&&r-n>=sw}),m(this,`getRecoverySeekReason`,()=>{if(this.needsMediaSourceRecovery)return`media source reopen`;if(this.shouldSeekWhileStuck)return`stuck in buffer`;if(this.shouldSeekAfterBuffering)return`buffering`}),m(this,`shouldSkipNormalSeek`,e=>e<0&&-e<this.currentAheadToleranceMs()||e>0&&e<this.currentSeekToleranceMs()||Math.abs(e)<1?!0:!this.isAllowedToSync()),m(this,`shouldDeferRecoverySeek`,(e,t)=>t!==void 0&&t>e),m(this,`buildStuckInBufferSeekPlan`,()=>{var e,t;let n=this.playbackSource.currentTime,r=(e=(t=this.bufferSource).getBufferedEndAt)==null?void 0:e.call(t,n),i=n+Math.max(this.seekOvershoot,cw);if(r===void 0||i>=r)return;let a=this.findKeyframeCloseToTimestamp(i);return{closestKeyFrame:a,keyframeSearchTime:i,targetCurrentTime:a&&a>i&&a<r?a:i}}),m(this,`buildSeekPlan`,(e,t)=>{var n,r;if(t===`stuck in buffer`)return this.buildStuckInBufferSeekPlan();let i=this.playbackSource.currentTime+e,a=t?(n=(r=this.bufferSource).getNextBufferedRangeStart)==null?void 0:n.call(r,this.playbackSource.currentTime):void 0;if(t===`media source reopen`&&a===void 0)return;let o=i+this.seekOvershoot,s=this.playbackSource.currentTime+this.seekOvershoot,c=t?Math.max(o,s):o;if(t&&this.shouldDeferRecoverySeek(c,a)){this.logger.debug(`Deferring recovery seek until expected playhead reaches next buffered range start`,{currentTime:this.playbackSource.currentTime,desiredCurrentTime:c,nextBufferedRangeStart:a,recoverySeekReason:t});return}let l=t&&a?a:i,u=this.findKeyframeCloseToTimestamp(l);if(!(!t&&!u&&!this.keyframeTimestamps.isEmpty()))return{closestKeyFrame:u,keyframeSearchTime:l,nextBufferedRangeStart:a,targetCurrentTime:u&&u>c?a?Math.max(a,u):u:c}}),m(this,`applySeek`,(e,t)=>{let n=this.playbackSource.seekTime,r=this.buildSeekPlan(e,t);if(!r)return;this.logger.info(`Adjusting for drift using seek`,{drift:e,currentTime:this.playbackSource.currentTime,recoverySeekReason:t,keyframeSearchTime:r.keyframeSearchTime,closestKeyFrame:r.closestKeyFrame,nextBufferedRangeStart:r.nextBufferedRangeStart,targetCurrentTime:r.targetCurrentTime,seekTime:n,rtt:this.rtt,seekToleranceMultiplier:this.state.seekToleranceMultiplier}),this.needsMediaSourceRecovery=!1;let i=performance.now();this.lastSeekTime=i,t&&t!==`stuck in buffer`&&(this.hasPerformedRecoverySeekInCurrentRecoveryState=!0),this.clearRecoverySeekFlags(),this.driftSamples.clear(),this.seekAdjustmentTimestamps.push(i),this.seekAdjustmentCount++;let a=t===`stuck in buffer`?0:Math.min(n,this.bufferSource.getTargetBufferTime());this.playbackSource.currentTime=r.targetCurrentTime+a,this.positionSetBySeek=this.playbackSource.currentTime,t===`stuck in buffer`&&(this.hasPerformedStuckSeekInCurrentStillness=!0,this.lastPlayheadPosition=this.playbackSource.currentTime,this.positionSetBySeek=void 0),this.applyBackoff()}),m(this,`applyTimeshift`,e=>{var t;let n=(t=e==null?this.drift:e)==null?0:t;if(!this.timestampOffset)return;let r=n;this.logger.info(`Adjusting for drift using timeshift`,{drift:n,syncAmount:r,currentTime:this.playbackSource.currentTime,rtt:this.rtt,timeshiftToleranceMultiplier:this.state.timeshiftToleranceMultiplier}),this.timestampOffset+=r;let i=performance.now();if(this.lastSeekTime=i,this.lastAdjustmentTime=i,!this.playbackSource.isPaused&&(this.driftSamples.clear(),this.timeshiftAdjustmentTimestamps.push(i),this.timeshiftAdjustmentCount++,this.config.backoff.enabled&&this.timeshiftAdjustmentCount>0&&this.timeshiftAdjustmentCount%this.config.timeshift.backoffEveryN===0)){let e=this.state.timeshiftToleranceMultiplier,t=this.config.timeshift.toleranceMaxMs/this.config.timeshift.toleranceMs;this.state.timeshiftToleranceMultiplier=Math.min(this.state.timeshiftToleranceMultiplier+1,t),e!==this.state.timeshiftToleranceMultiplier&&this.logger.info(`Backoff: Increasing timeshift tolerance multiplier`,{from:e,to:this.state.timeshiftToleranceMultiplier,currentTimeshiftToleranceMs:this.currentTimeshiftToleranceMs()})}}),m(this,`onSync`,()=>{var e;this.tryDecayMultipliers(),this.refreshRecoverySeekState();let t=(e=this.drift)==null?0:e,n=this.getRecoverySeekReason(),r=n!==void 0;if(!r&&!this.isAllowedToSyncIgnoringCooldown()||r&&(this.isSeeking()||!this.currentChannelId||this.isSuspended||this.playbackSource.isPaused)||(this.driftSamples.push(t),!this.isSeekCooldownExpired())||!r&&this.driftSamples.items().length<this.driftSamplesToCollect&&Math.abs(t)<2e3)return;let i=r?t:Ht(this.driftSamples.items());if(!r&&this.tryPlaybackRateSync(i)||!r&&this.shouldSkipNormalSeek(i))return;let a=performance.now()-this.config.seek.timeoutMs*this.state.seekToleranceMultiplier,o=this.seekAdjustmentTimestamps.filter(rw(a)).length,s=this.currentEmergencySeekToleranceMs(),c=i>0&&i>=s;if(o&&this.state.seekToleranceMultiplier>2&&!r&&!c){this.logger.debug(`Too many seek adjustments within sliding window`,{seekCooldownThreshold:a,recentSeekCount:o});return}o&&(r||c)&&this.logger.debug(`Bypassing recent seek limit`,{drift:i,recoverySeekReason:n,emergencySeekToleranceMs:s,recentSeekCount:o,seekToleranceMultiplier:this.state.seekToleranceMultiplier}),this.applySeek(i,n)}),m(this,`onMediaSourceRecovered`,()=>{this.needsMediaSourceRecovery=!0,this.lastSeekTime=void 0,this.keyframeTimestamps.clear(),this.driftSamples.clear()}),m(this,`onPlaybackState`,e=>{e===`playing`&&(this.needsMediaSourceRecovery=!1);let t=this.playbackState===`buffering`;if(this.playbackState=e,e!==`buffering`){this.hasPerformedRecoverySeekInCurrentRecoveryState=!1,this.hasPerformedStuckSeekInCurrentStillness=!1,this.clearRecoverySeekFlags();return}if(t||(this.hasPerformedRecoverySeekInCurrentRecoveryState=!1),this.refreshRecoverySeekState()!==void 0||this.shouldSeekWhileStuck){this.onSync();return}}),m(this,`onPageActive`,e=>{this.setSyncInterval(e?iw:aw),e&&this.onSync()}),m(this,`onPageShow`,e=>{e.persisted&&(this.setSyncInterval(document.visibilityState===`hidden`?aw:iw),this.onSync())}),m(this,`setSyncInterval`,e=>{this.syncInterval!==void 0&&this.currentSyncIntervalMs===e||(this.clearSyncInterval(),this.currentSyncIntervalMs=e,this.syncInterval=this.timers.setInterval(this.onSync,e))}),m(this,`clearSyncInterval`,()=>{this.syncInterval!==void 0&&(this.timers.clearInterval(this.syncInterval),this.syncInterval=void 0)}),m(this,`findKeyframeCloseToTimestamp`,e=>{let t=this.keyframeTimestamps.items();for(let n of t){let t=n>=e-this.config.seek.keyframeSearchBeforeMs,r=n<=e+this.config.seek.keyframeSearchAfterMs;if(t&&r)return n}}),this.logger=t,this.emitter=e,this.playbackSource=n,this.bufferSource=r,this.usesMse=a,this.seekOvershoot=nw(a),this.config={seek:L({},uw.seek),timeshift:L({},uw.timeshift),playbackRate:L({},uw.playbackRate),backoff:L({},uw.backoff)},this.config.timeshift.enabled=i,a||(this.config.seek.toleranceMs=50,this.config.timeshift.toleranceMs=20,this.config.seek.aheadToleranceMs=40),this.state={seekToleranceMultiplier:1,timeshiftToleranceMultiplier:1},typeof window<`u`&&window.location.search.includes(`playbackRateAdjustmentEnabled`)&&(this.config.playbackRate.enabled=!0),this.emitter.on(`rtt`,this.updateRtt),this.emitter.on(`playback state`,this.onPlaybackState),this.emitter.on(`buffers flushed`,this.clearBFrameLatch),this.emitter.on(`recovered from media error`,this.onMediaSourceRecovered),this.logger.info(`SyncModule initialized`,{config:this.config})}updateChannelSyncInfo(e,t){let n=performance.now(),r=this.channelSyncInfo.get(e),i=this.getLiveEdgeTime(e);if(this.isSuspended)return;if(!r||!i){this.logger.info(`Initial timing info`,{syncInfo:t}),this.channelSyncInfo.set(e,L(L({},t),{},{localTimestamp:n,timeDifferences:new w(12)}));return}let a=t.wallclockTime-r.wallclockTime,o=t.timestamp-r.timestamp,s=n-r.localTimestamp,c=o-s;if(r.timeDifferences.push(c),this.logger.debug(`Timing info`,{rtt:this.rtt,channelId:e,syncInfo:t,localTimestamp:n,diffFromEstimated:c,timestampDelta:o,wallclockDelta:a,localTimestampDelta:s}),Math.abs(c)>=Math.max(this.bufferSource.getTargetBufferTime()*2,3e3)){this.logger.info(`Resetting sync info`,{diffFromEstimated:c}),this.channelSyncInfo.set(e,L(L({},t),{},{localTimestamp:n,timeDifferences:new w(r.timeDifferences.maxSize+1)})),this.currentChannelId&&this.currentChannelId===e&&(this.reset(),this.emitter.emit(`channel reset`));return}r.timeDifferences.items().length<3||this.tryApplySyncInfo(Math.min(this.syncInfoToleranceMaxMs,this.syncInfoCorrectionCount*this.syncInfoToleranceStep))}tryApplySyncInfo(e){let t=this.getCurrentChannelId();if(!t)return;let n=this.channelSyncInfo.get(t);if(!n)return;let r=n.timeDifferences.items();if(r.length===0)return;let i=Ht(r);Math.abs(i)>e&&(this.logger.info(`Adjusting sync info`,{medianDifference:i,tolerance:e,count:r.length}),n.timestamp+=i,this.syncInfoCorrectionCount++,n.timeDifferences.clear())}get serverCurrentTime(){return this.channelCurrentTime-this.getTimeshiftOffset()}get channelCurrentTime(){let e=this.getCurrentChannelId();if(!e)return 0;let t=this.getLiveEdgeTime(e);return t?t-this.bufferSource.getTargetBufferTime():0}get drift(){return this.serverCurrentTime-this.playbackSource.currentTime}};$C=dw,m(dw,`create`,(e,t,n,r,i,a=!0)=>new $C(e,t,n,r,i,a)),H(),R(),h(),P();var fw,pw={enabled:!0,interval:3e4,includeErrors:!0,includeEvents:!0,includeStats:!0,maxRetries:10,maxErrorReports:50,maxEvents:50},mw=(e,t)=>L(L({},t),{},{type:e,timestamp:new Date().toISOString(),discriminator:`web`}),hw=class{constructor(e,t,n,r){var i=this;m(this,`logger`,void 0),m(this,`timers`,new cr),m(this,`emitter`,void 0),m(this,`options`,void 0),m(this,`parentContext`,void 0),m(this,`unsentLines`,new w(100)),m(this,`retries`,0),m(this,`errorCount`,0),m(this,`eventCount`,0),m(this,`statsCount`,0),m(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`)}),m(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)}),m(this,`addStats`,({isFinal:e,initiator:t}={isFinal:!1,initiator:`interval`},n={})=>{if(!this.options.includeStats)return;let r=this.parentContext.getStatistics(),i=mw(`stats`,L(L(L({},n),r),{},{isFinal:e,initiator:t,count:this.statsCount++}));this.unsentLines.push(i)}),m(this,`addEvent`,e=>{if(!this.options.includeEvents||this.eventCount>this.options.maxEvents)return;let t=mw(`event`,L(L({},this.parentContext.getStatistics()),e));this.eventCount++,this.unsentLines.push(t)}),m(this,`getStatistics`,()=>({errorCount:this.errorCount})),m(this,`send`,function(){var e=N(function*(e){if(i.options.enabled&&!(i.retries>=i.options.maxRetries)&&!i.unsentLines.isEmpty()){i.logger.debug(`Sending telemetry`,{lines:i.unsentLines.items()});try{let t=i.unsentLines.items().map(e=>JSON.stringify(e)).reverse().join(`
1322
+ `);switch(e){case`beacon`:navigator.sendBeacon(i.options.url,t);break;default:i.parentContext.connectionState===`connected`?i.emitter.emit(`send signal`,{type:`telemetry`,body:t}):yield Mu(new URL(i.options.url),{body:t,headers:{"Content-Type":`text/plain`}});break}i.retries=0,i.unsentLines.clear()}catch(e){i.retries++}}});return function(t){return e.apply(this,arguments)}}()),m(this,`onVisibilityChange`,e=>{e===`hidden`&&(this.addStats({isFinal:!0,initiator:`visibilitychange`}),this.send(`beacon`))}),m(this,`onPageHide`,e=>{this.addStats({isFinal:!0,initiator:`pagehide`},{persisted:e.persisted}),this.send(`beacon`)}),m(this,`onRejection`,e=>this.addError(e.reason)),m(this,`onError`,e=>this.addError(e.error)),m(this,`addError`,e=>{let{includeErrors:t,maxErrorReports:n}=this.options;if(!(e instanceof U)||e.code()===`channel_not_live`||!t||(this.errorCount++,this.errorCount>n))return;let r=this.parentContext.getStatistics();this.unsentLines.push(mw(`error`,L(L({},r),e.toStringifiable())))}),this.logger=e,this.emitter=t,this.options=L(L({},pw),n),this.parentContext=r}};fw=hw,m(hw,`create`,(e,t,n,r)=>new fw(e,t,n,r)),H(),h();var gw,_w=class{constructor(e,t,n){m(this,`logger`,void 0),m(this,`elements`,void 0),m(this,`documentState`,void 0),m(this,`timers`,new cr),m(this,`unload`,()=>{this.timers.unload()}),m(this,`unpause`,()=>{if(!(!this.documentState.isVisible||!this.documentState.isOnline))for(let e of this.elements)e.userHasProvidedInput&&e.isPaused&&(this.logger.debug(`Unpause media element`),e.tryPlay())}),this.logger=e,this.elements=t,this.documentState=n,this.timers.setInterval(this.unpause,100)}};gw=_w,m(_w,`create`,(e,t,n)=>new gw(e,t,n)),h();var vw=[`minBufferTime`,`maxBufferTime`,`burstEnabled`,`sizeBasedResolutionCapEnabled`,`webcodecsHardwareAcceleration`,`offscreenCanvasEnabled`,`videoCodecs`];function yw(e){return vw.includes(e)}var bw=class{constructor(e){m(this,`options`,void 0),m(this,`overrides`,new Map),this.options=e}getOptions(){return this.options}addOverrides(e,t){this.overrides.set(e,t)}set(e,t){this.options[e]=t}get(e,t){if(t&&yw(e)){var n;let r=(n=this.overrides.get(t))==null?void 0:n[e];if(r!==void 0)return r}return this.options[e]}getOverride(e,t){var n;return(n=this.overrides.get(t))==null?void 0:n[e]}};R();var xw=6,Sw=e=>{let t=[e],n=0,r=0,i=!1,a=(e,t)=>{var i,a;if(e.flags&&Dl(e.flags)){var o;n=(o=e.compositionTimeOffset)==null?0:o}e.timestamp+=n,e.compositionTimeOffset=((i=e.compositionTimeOffset)==null?0:i)-n;let s=e.timestamp/e.timescale,c=t.flags&&Dl(t.flags)?(a=t.compositionTimeOffset)==null?0:a:n,l=(t.timestamp+c)/t.timescale,u=Math.max(0,Math.round((l-s)*e.timescale));return u>0&&(r=u),L(L({},e),{},{duration:u>0?u:r})};return(e,n=!1)=>{if(e.flags&&Dl(e.flags)&&n&&(i=!i),!(n&&t.length<xw&&i)&&t.length>0){i=!1;let n=e;for(let e=t.length-1;e>0;e--){let r=t[e];if(!r||!n)break;r.timestamp>=n.timestamp?t.splice(e,1):n=r}let r=t.map((n,r)=>a(n,t[r+1]||e));return t=[e],r}return t.push(e),[]}},Cw=[`mse`,`wasm`],ww=e=>e==null?Cw:e,Tw=e=>{if(!e)return!1;let t=e.headers&&Object.keys(e.headers).length>0,n=e.queryParams&&Object.keys(e.queryParams).length>0;return!!(t||n)},Ew=(e,t,n)=>{if(Tw(n))return`mse`;let r=ww(e);for(let e of r)switch(e){case`mse`:if(t)return`mse`;break;case`webcodecs`:if(typeof VideoDecoder<`u`)return`webcodecs`;break;case`wasm`:return`wasm`}return`wasm`};R();var Dw=(e,t,n)=>{if(Lr(t))return L(L({},e),{},{type:`video`,codec:t.codec,isSync:Dl(e.flags),data:e.payload,duration:0,width:t.width,height:t.height},n);if(t.codec===`webvtt`)throw Error(`WebVTT is not supported`);return L(L({},e),{},{type:`audio`,channels:t.channels,sampleRate:t.sampleRate,codec:t.codec,language:t.language,isSync:Dl(e.flags),data:e.payload,duration:0})};R();var Ow=({average:e,last:t,max:n,min:r})=>({average:Math.round(e),last:Math.round(t),max:Math.round(n),min:Math.round(r)}),kw=[`timeSpentBuffering`,`timePerBufferingEvent`,`drift`,`seekTime`,`totalSeekTime`,`currentSeekToleranceMs`,`currentAheadToleranceMs`,`averageDrift`,`videoKeyframeIntervalMs`,`timeToConnected`,`mediaSourceOpenTime`],Aw=[`videoDecodeTime`,`audioDecodeTime`,`videoTransportTime`,`rtt`],jw=e=>typeof e==`object`&&!!e&&`min`in e&&`max`in e&&`average`in e&&`last`in e,Mw=e=>{let t=L({},e);for(let e of kw){let n=t[e];typeof n==`number`&&(t[e]=Math.round(n))}for(let e of Aw){let n=t[e];jw(n)&&(t[e]=Ow(n))}return t};R();var Nw=(e,t)=>e&&typeof e==`object`&&t in e,Pw=e=>!(typeof e!=`object`||!Nw(e,`channelId`)||typeof e.channelId!=`string`||!Nw(e,`url`)||typeof e.url!=`string`||e.channelId.length===0||e.url.length===0),Fw=e=>{if(!Pw(e))throw new U(`Invalid options`,{isFatal:!0,code:`invalid_options`});let t=L({},e);return Object.keys(t).forEach(e=>{let n=t;n[e]===void 0&&delete n[e]}),t},Iw=e=>{if(typeof e!=`object`||!e)throw Error(`not an object`);if(!(`video`in e))throw Error(`missing video in subscription`);if(!(`audio`in e))throw Error(`missing audio in subscription`);if(!(`channelId`in e))throw Error(`missing channelId`);return!0};go(),Tl(),pS(),h(),P();var Lw=class{constructor(e){var t=this;m(this,`cache`,new Map),m(this,`inFlight`,new Map),m(this,`checkVideoSupport`,function(){var e=N(function*(e){var n;if(typeof VideoDecoder>`u`)return!1;let r=VideoDecoder.isConfigSupported;if(typeof r!=`function`)return!0;if(e.codec===`h265`&&!e.codecString)return t.logger.warn(`Missing HEVC codec string for WebCodecs support check. Falling back to optimistic support.`,{renditionId:e.id}),!0;let i=(n=e.codecString)==null?e.codec===`av1`?`av01.0.08M.08`:`avc1.42E01E`:n,a=`video|${i}|${e.width}x${e.height}`;return t.check(a,()=>r({codec:i,optimizeForLatency:!0,codedWidth:e.width,codedHeight:e.height}),!0,{message:`Failed to check WebCodecs rendition support. Falling back to optimistic support check.`,codec:i,renditionId:e.id})});return function(t){return e.apply(this,arguments)}}()),m(this,`checkAudioSupport`,function(){var e=N(function*(e){var n;if(typeof AudioDecoder>`u`)return!1;let r=AudioDecoder.isConfigSupported;if(typeof r!=`function`)return!0;let i=(n=e.codecString)==null?fS(e.codec):n,a=`audio|${i}|${e.sampleRate}|${e.channels}`,o=e.codec===`aac`?so(e.channels,e.sampleRate):e.codec===`opus`?Cl(e.channels,e.sampleRate):void 0;return t.check(a,()=>r({codec:i,sampleRate:e.sampleRate,numberOfChannels:e.channels,description:o}),!1,{message:`Failed to check WebCodecs audio rendition support. Treating rendition as unsupported.`,codec:i,renditionId:e.id})});return function(t){return e.apply(this,arguments)}}()),m(this,`check`,(e,t,n,r)=>{let i=this.cache.get(e);if(i!==void 0)return Promise.resolve(i);let a=this.inFlight.get(e);if(a)return a;let o=Promise.resolve().then(t).then(({supported:t})=>(this.cache.set(e,t),t)).catch(t=>(this.logger.warn(r.message,{codec:r.codec,renditionId:r.renditionId,error:t}),this.cache.set(e,n),n)).finally(()=>{this.inFlight.delete(e)});return this.inFlight.set(e,o),o}),this.logger=e}};H(),h(),E(),R(),P(),M(),A();var Rw=1e4,zw=1280*720,Bw=new WeakMap,Vw=new WeakMap,Hw=new WeakMap,Uw=class e extends tn{constructor(t){var n,r,i;super(),n=this,m(this,`pictureInPicture`,void 0),m(this,`drm`,void 0),m(this,`browser`,ft()),m(this,`options`,void 0),m(this,`element`,void 0),m(this,`playbackSource`,void 0),m(this,`emitter`,new tn),m(this,`logger`,void 0),m(this,`modules`,void 0),m(this,`clientIp`,void 0),m(this,`sessionId`,void 0),m(this,`clientId`,wr()),m(this,`_channels`,[]),m(this,`createdAt`,performance.now()),m(this,`offscreenCanvasElement`,void 0),m(this,`webCodecsRenditionSupport`,void 0),m(this,`hasCalledConnect`,!1),m(this,`hasRequestedAudioSession`,!1),m(this,`isUserPaused`,!1),m(this,`isMediaElementPaused`,!1),m(this,`latestEmittedLanguages`,[]),m(this,`wakeLock`,void 0),m(this,`pool`,new ie(e.MAX_POOL_SIZE)),m(this,`userAgentInformation`,new Sr),m(this,`encryptedMediaExtensions`,void 0),T(this,Bw,0),T(this,Vw,[]),m(this,`sampleProcessingSesssions`,new Map),m(this,`unbackedSamplesWarned`,new dS),m(this,`unextractableSamplesWarned`,new dS),m(this,`sizes`,new Map),m(this,`isSuspended`,!0),m(this,`inactivityDisconnectInterval`,void 0),m(this,`visiblePauseTimeout`,void 0),m(this,`offscreenSubtitleInterval`,void 0),T(this,Hw,void 0),m(this,`attach`,e=>{var t;(t=this.wakeLock)==null||t.attach(e),e.appendChild(this.element)}),m(this,`setElement`,e=>{this.element!==e&&(this.element=e,this.modules.constraintCap.setElement(e))}),m(this,`applyBurstEnabled`,e=>{this.modules.subscription.enableBurst(this.options.get(`burstEnabled`,e)?this.targetBufferTime:0)}),m(this,`getOptions`,()=>this.options.getOptions()),m(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;let t=window.devicePixelRatio||1,n=Math.round(window.innerWidth*t),r=Math.round(window.innerHeight*t),i=this.options.get(`authenticationToken`),a=i?`&auth.token=${i}`:``;return`${e}/api/thumbnail?channelId=${this.channelId}${a}&width=${n}&height=${r}`}),m(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})}),m(this,`connect`,()=>{this.hasCalledConnect||(this.play(),this._connect())}),m(this,`_connect`,()=>{if(!this.hasCalledConnect){if(this.hasCalledConnect=!0,Object.values(this.modules).forEach(e=>{e&&`load`in e&&e.load()}),this.playbackSource instanceof tu){var e,t;(e=(t=this.playbackSource).load)==null||e.call(t)}this.unsuspend()}}),m(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`),burstEnabled:this.options.get(`burstEnabled`)})),m(this,`onConnectInfo`,function(){var e=N(function*(e){var t;n.sessionId=wr();let r=n.modules.subscription.getTargetSubscription(),i=e.channels.find(e=>e.channelId===r.channelId);if(n.emitter.emit(`connect info`,e),`timeshift`in e&&e.timeshift?(e.timeshift,n._channels=e.channels.map(t=>L(L({},t),{},{timeshift:e.timeshift})),n.emit(`timeshift info`,e.timeshift)):n._channels=e.channels,n.updateTextTracks((t=i==null?void 0:i.renditions)==null?[]:t),!n.textTrack&&n.options.get(`textTrack`)&&(n.textTrack=n.options.get(`textTrack`)),yield Promise.all(e.channels.map(function(){var e=N(function*(e){e.overrides&&n.options.addOverrides(e.channelId,e.overrides),e.renditions=yield n.filterRenditions(e.renditions),n.modules.renditions.setRenditions(e.channelId,e.renditions)});return function(t){return e.apply(this,arguments)}}())),!i)throw Hi(`external`);let a=n.options.getOverride(`sizeBasedResolutionCapEnabled`,n.channelId);a!==void 0&&(n.modules.constraintCap.sizeBasedResolutionCapEnabled=a);let o=n.options.getOverride(`minBufferTime`,n.channelId),s=n.options.getOverride(`maxBufferTime`,n.channelId);if((o||s)&&(n.modules.bufferTime.updateConfig({minBufferTime:n.options.get(`minBufferTime`,n.channelId),maxBufferTime:n.options.get(`maxBufferTime`,n.channelId)}),n.targetBufferTime=n.options.get(`minBufferTime`,n.channelId)),n.applyBurstEnabled(n.channelId),n.emit(`is live`,i.isLive),!i.isLive)throw Ui();let c=n.modules.connection.estimatedBandwidth;n.patchSubscription(i,c),yield n.initializeDecodingModule(),n.resetModules(),n.emit(`rendition levels`,n.modules.renditions.getRenditionLevels()),n.emit(`channels`,n.channels),n.emitLanguagesIfChanged(),n.sampleProcessingSesssions.clear();let l=n.options.get(`burstEnabled`,n.channelId)&&n.burstFits(c);return{video:n.targetSubscription.video,audio:n.targetSubscription.audio,burstMs:l?n.targetBufferTime:void 0,sessionId:n.sessionId,clientId:n.clientId,channelId:n.channelId,channelGroupId:n.options.get(`channelGroupId`),authToken:n.options.get(`authenticationToken`),textTrack:n.textTrack}});return function(t){return e.apply(this,arguments)}}()),m(this,`emitLanguagesIfChanged`,()=>{let e=this.modules.renditions.getLanguages(),t=this.latestEmittedLanguages;e.length===t.length&&e.every(e=>t.includes(e))||(this.logger.debug(`Emitting new languages`,{currentLanguages:e}),this.latestEmittedLanguages=e,this.emit(`languages`,this.latestEmittedLanguages))}),m(this,`updateTextTracks`,e=>{let t=e.filter(e=>e.codec===`webvtt`);t.forEach(e=>{if(!j(Vw,this).find(t=>t.language===e.language)){if(this.modules.canvasModule){let t=this.modules.canvasModule.textTracks.addTextTrack(e.kind,e.label||e.language||``,e.language||``);j(Vw,this).push(t)}else if(this.mediaElement instanceof HTMLVideoElement){let t=this.mediaElement.addTextTrack(e.kind,e.label||e.language,e.language);j(Vw,this).push(t)}}});for(let e of j(Vw,this))t.find(t=>t.language===e.language)?e.mode===`disabled`&&(e.mode=`hidden`):e.mode=`disabled`;this.emit(`text tracks`,this.textTracks)}),m(this,`cleanupTextTracks`,(e=this.currentTime-2e4)=>{j(Vw,this).forEach(t=>{if(t.cues)for(let n of Array.from(t.cues))n.endTime*1e3<e-2e3&&t.removeCue(n)})}),m(this,`filterRenditions`,function(){var e=N(function*(e){let t=yield Promise.all(e.map(function(){var e=N(function*(e){if(Rr(e)){var t;return n.willUseMediaSource()&&!((t=qe())!=null&&t.isTypeSupported(zr(e)))?!1:n.willUseMediaSource()||e.codec===`opus`?!0:n.isWebCodecsAudioAvailable(n.channelId)?n.webCodecsRenditionSupport.checkAudioSupport(e):!1}if(!Lr(e)||!n.isSupportedVideoCodecProfile(e.codec,e.codecString))return!1;if(!n.willUseMediaSource())return n.isWebCodecsVideoAvailable(n.channelId)?n.webCodecsRenditionSupport.checkVideoSupport(e):!0;let r=yield nu(e);if(!r.supported)return!1;if(e.codec===`av1`&&!r.smooth&&!r.powerEfficient)return n.logger.debug(`discarding av1 rendition, neither smooth nor power efficient`,{codecString:e.codecString,width:e.width,height:e.height,bitRate:e.bitRate,capabilities:r}),!1;let i=n.options.getOverride(`maxVideoBitRate`,n.channelId);return i?i>=e.bitRate:!0});return function(t){return e.apply(this,arguments)}}())),r=e.filter((e,n)=>t[n]),i=e.filter((e,n)=>!t[n]);i.length>0&&n.logger.debug(`unsupported renditions filtered out`,{renditions:i.map(e=>L(L({codec:e.codec,codecString:e.codecString},Lr(e)?{width:e.width,height:e.height}:{}),{},{bitRate:e.bitRate}))});let a=r.filter(e=>e.codec===`h264`).reverse()[0],o=r.filter(e=>e.codec===`av1`).reverse()[0];return a&&o&&a.width>o.width&&a.height>o.height&&(n.logger.debug(`discarding av1 renditions, h264 ladder has higher resolution`,{bestH264:{width:a.width,height:a.height,bitRate:a.bitRate},bestAV1:{width:o.width,height:o.height,bitRate:o.bitRate}}),r=r.filter(e=>e.codec!==`av1`)),n.logger.debug(`supported renditions`,{renditions:r.map(e=>L(L({codec:e.codec,codecString:e.codecString},Lr(e)?{width:e.width,height:e.height}:{}),{},{bitRate:e.bitRate}))}),r});return function(t){return e.apply(this,arguments)}}()),m(this,`burstFits`,e=>{var t,n;let{video:r,audio:i,channelId:a}=this.modules.subscription.getTargetSubscription(),o=Ql(((t=this.modules.renditions.getVideoRenditions(a))==null?[]:t).filter(e=>e.codec===r.codec).map(e=>e.bitRate),r.bitRate),s=Ql(((n=this.modules.renditions.getAudioRenditions(a))==null?[]:n).filter(e=>e.codec===i.codec).filter(e=>!i.language||e.language===i.language).map(e=>e.bitRate),i.bitRate),c=$l(e,o+s);return c||this.logger.info(`Skipping the join burst: the starting rendition needs more than half the bandwidth`,{estimatedBandwidth:e,videoBitRate:o,audioBitRate:s}),c}),m(this,`patchSubscription`,(e,t)=>{var n;let r=this.options.get(`maxInitialBitRate`),i=Math.min(this.options.get(`maxVideoBitRate`),r,t,this.targetSubscription.video.bitRate),a=Math.min(this.options.get(`maxAudioBitRate`),r,t,this.targetSubscription.audio.bitRate),o=this.options.get(`media`)===`audio`?[]:this.options.get(`videoCodecs`,this.channelId),s=this.supportedAudioCodecs(),c=e.renditions.filter(Rr),l=e.renditions.filter(Lr),u=s.find(e=>c.find(t=>t.codec===e)!==void 0),d=o.find(e=>l.find(t=>t.codec===e)!==void 0),f=c.map(e=>e.language);this.logger.debug(`supported and selected codecs`,{audioCodecs:s,videoCodecs:o,audioCodec:u,videoCodec:d});let p=(n=this.modules.subscription.getTargetSubscription().audio.language)==null?this.options.get(`language`):n;if(d&&this.abrEnabled&&this.options.get(`burstEnabled`,this.channelId)){let e=c.filter(e=>e.codec===u),n=e.filter(e=>e.language===p),r=Zl(t,l.filter(e=>e.codec===d).map(e=>e.bitRate),(n.length?n:e).map(e=>e.bitRate));i=Math.min(i,r)}if(d){let e=this.options.get(`maxSize`);this.modules.subscription.setVideoConstraint(L({codec:d,bitRate:this.abrEnabled?i:this.options.get(`maxVideoBitRate`)},e))}u&&(this.modules.subscription.setAudioConstraint({codec:u,bitRate:this.abrEnabled?a:this.options.get(`maxAudioBitRate`),language:p}),(p===void 0||!f.includes(p))&&this.modules.subscription.setLanguage(f[0])),this.alignSizeAndBitRate(this.targetSubscription);let m=this.modules.subscription.getTargetSubscription();this.emitter.emit(`subscription changed`,{to:m,from:this.modules.subscription.getCurrentSubscription()})}),m(this,`isSupportedVideoCodecProfile`,(e,t)=>{if(this.willUseMediaSource()){let n=qe();return n?n.isTypeSupported(zr({codec:e,codecString:t})):!0}if(this.isWebCodecsVideoAvailable(this.channelId)&&(e===`h264`||e===`h265`||e===`av1`))return!0;if(e===`h264`){let e=!!(t!=null&&t.startsWith(`avc1.42`)),n=!!(t!=null&&t.startsWith(`avc1.66.`));return e||n}return!(e===`h265`||e===`av1`)}),m(this,`supportedAudioCodecs`,()=>{if(this.options.get(`media`)===`video`)return[];let 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}),m(this,`initializeDecodingModule`,N(function*(){var e;let t=n.currentRenditionLevel,r=[];if(!t)throw new U(`No currentRenditionLevel`,{code:`no_current_rendition_level`,isFatal:!1});if(t!=null&&t.video&&r.push({type:`video`,mimeType:zr(t.video),codec:t.video.codec}),t!=null&&t.audio&&r.push({type:`audio`,codec:t.audio.codec,mimeType:zr(t.audio),channels:t.audio.channels,sampleRate:t.audio.sampleRate}),r.length===0)throw new U(`Can't initialize decoding module without tracks`,{code:`no_tracks`,isFatal:!1});if(n.willUseMediaSource()&&n.element instanceof HTMLMediaElement){n.emitter.emit(`flush buffers`);try{var i;yield(i=n.modules.mseModule)==null?void 0:i.setSourceBuffers(r)}catch(e){throw e instanceof Ll?(n.logger.debug(`Abandoning decoding module setup for a disposed source buffer`),new U(`Source buffer setup was superseded`,{code:`start_failed`,isFatal:!1,type:`internal`,source:e})):e}return}let a=n.shouldUseWebCodecs(n.channelId),o=n.options.get(`webcodecsHardwareAcceleration`,n.channelId),s=n.shouldUseOffscreenCanvas(n.channelId)&&a,c=typeof OffscreenCanvas<`u`&&typeof HTMLCanvasElement<`u`&&typeof HTMLCanvasElement.prototype.transferControlToOffscreen==`function`,l=s&&c&&typeof VideoDecoder<`u`,u,d;if(l)try{d=document.createElement(`canvas`),Kr(d),u=d.transferControlToOffscreen()}catch(e){u=void 0,d=void 0,n.logger.warn(`Failed to enable OffscreenCanvas; falling back to main thread rendering`,{error:e})}else s&&n.logger.warn(`OffscreenCanvas requested but not supported; falling back to main thread rendering`);let f=n.capturesCanvasOnWebKit(u),p=yield JS.create(n.emitter,n.logger.createContext(`DecoderModule`),n.options.get(`logLevel`),r,n.playbackSource,n.pool,a,o,u,f),{videoRenderer:m}=p.getStatistics(),h=n.modules.canvasModule;if(h instanceof yC)if(m===`OffscreenCanvas`&&d){h.setVideoRenderingEnabled(!1);let e=n.element;e.parentElement?e.parentElement.replaceChild(d,e):n.logger.warn(`OffscreenCanvas rendering is active but the current element is not attached to the DOM. Updating internal element reference only.`),n.offscreenCanvasElement=d,n.setElement(d)}else{h.setVideoRenderingEnabled(!0),n.offscreenCanvasElement=void 0;let e=h.element();if(e!==n.element){let t=n.element;t.parentElement&&t.parentElement.replaceChild(e,t),n.setElement(e)}}else h instanceof EC&&(h.setBackgroundPlaybackEnabled(n.isBackgroundPlayEnabled(n.channelId)),m===`OffscreenCanvas`&&d?(h.setOffscreenCanvas(d),n.offscreenCanvasElement=d,f&&n.connectWebKitVideoOutput(p,h)):(h.setVideoTrack(void 0),h.setOffscreenCanvas(void 0),n.offscreenCanvasElement=void 0));(e=n.modules.decoder)==null||e.unload(),n.modules.decoder=p,n.isHiddenWithBackgroundPlayback()&&n.modules.decoder.enableBackgroundTimers(),n.modules.decoder.setVideoRenderingEnabled(n.isVideoOnScreen()),n.modules.decoder.load(),n.setupOffscreenSubtitleRouting()})),m(this,`capturesCanvasOnWebKit`,e=>!!e&&this.browser.platform.isWebKit&&this.modules.canvasModule instanceof EC),m(this,`connectWebKitVideoOutput`,(e,t)=>{let n=()=>{t.setVideoTrack(void 0),this.browser.platform.isIOS&&e.setMaxVideoCanvasPixels(zw)};e.onVideoTrackLost(e=>{this.logger.warn(`Worker video track lost, falling back to canvas capture`,{error:e}),n()});let r=e.videoTrack;r?t.setVideoTrack(r):n()}),m(this,`setupOffscreenSubtitleRouting`,()=>{if(this.offscreenSubtitleInterval!==void 0&&(clearInterval(this.offscreenSubtitleInterval),this.offscreenSubtitleInterval=void 0),!this.offscreenCanvasElement||!this.modules.decoder||this.modules.canvasModule instanceof EC)return;let e=this.modules.decoder,t=this.modules.canvasModule;if(!t)return;let n=!1;this.offscreenSubtitleInterval=setInterval(()=>{var r,i,a,o;if(!t.textTracks.language){n&&(e.setSubtitleCues([],0,0,1,0),n=!1);return}n=!0;let s=t.textTracks.getActiveCues(this.currentTime/1e3).map(e=>({text:e.text})),c=((r=this.element)==null?void 0:r.clientWidth)||0,l=((i=this.element)==null?void 0:i.clientHeight)||0,u=((a=this.element)==null?void 0:a.style.getPropertyValue(`--vindral-subtitle-offset`))||((o=this.element)==null?void 0:o.style.getPropertyValue(`--vindral-control-bar-offset`)),d=parseInt(u||`0`,10)||0;e.setSubtitleCues(s,c,l,globalThis.devicePixelRatio||1,-d)},100)}),m(this,`unload`,N(function*(){var t,r,i;n.logger.debug(`Unloading modules...`),n.offscreenSubtitleInterval!==void 0&&(clearInterval(n.offscreenSubtitleInterval),n.offscreenSubtitleInterval=void 0),yield Promise.all(Object.values(n.modules).map(e=>e==null?void 0:e.unload())),(t=n.wakeLock)==null||t.unload(),n.pool=new ie(e.MAX_POOL_SIZE),(r=(i=n.playbackSource).unload)==null||r.call(i),n.element.remove(),n.emitter.reset(),n.encryptedMediaExtensions.unload(),n.reset(),n.logger.debug(`Unloaded modules`)})),m(this,`userInput`,()=>{this.play()}),m(this,`pause`,()=>{if(this.options.get(`pauseSupportEnabled`)&&(this.isUserPaused=!0,this.playbackState!==`paused`&&this.playbackSource.pause(),this.hasCalledConnect)){let e=!this.modules.documentState.isVisible;this.suspend(e),e&&this.disconnectForInactivePage(`Background playback paused`)}}),m(this,`yieldToInterruption`,()=>{if(!this.browser.platform.isWebKit&&(this.logger.info(`Yielding playback after an interruption`),this.options.get(`pauseSupportEnabled`)?this.pause():this.muted=!0,!this.modules.documentState.isVisible)){var e;(e=this.modules.mediaSession)==null||e.stop()}}),m(this,`fromNativeControls`,e=>{if(this.options.get(`pauseSupportEnabled`)){e===`pause`?this.pause():this.play();return}this.muted=e===`pause`,e===`play`&&this.play()}),m(this,`registerDebugInstance`,()=>{eu(this)}),m(this,`play`,()=>{var t;this.clearVisiblePauseDisconnect(),this.isUserPaused=!1,this.requestAudioSessionOnce(),this.hasCalledConnect?this.unsuspend():this.playbackState!==`playing`&&(this._connect(),self.addEventListener(`__vindral_register_debug__`,this.registerDebugInstance),this.modules.timer.setInterval(()=>this.cleanupTextTracks(),e.REMOVE_CUE_THRESHOLD)),(t=this.wakeLock)==null||t.enable(),this.playbackState===`paused`&&this.playbackSource.isActivated&&(this.resetModules(),this.emitter.emit(`flush buffers`),this.cleanupTextTracks(2**53-1)),this.playbackSource.play(),this.isHiddenWithBackgroundPlayback()&&this.scheduleInactivityDisconnect()}),m(this,`getStatistics`,()=>{let e=Object.values(this.modules).reduce((e,t)=>t&&`getStatistics`in t?L(L({},e),t.getStatistics()):e,this.getRuntimeInfo()),t=Math.round(this.timeActive>0?(e.bytesReceived||0)*8/(this.timeActive/1e3):0),n=this.uptime/36e5,r=Math.max(0,(e.connectCount||0)-1),i=n>0?r/n:0,a=this.timeActive/6e4,o=Math.max(a,1),s=a>0?(e.seekAdjustmentCount||0)/o:0,c=a>0?(e.timeshiftAdjustmentCount||0)/o:0;return Mw(L(L({},e),{},{averageBitRate:t,reconnectsPerHour:i,seekAdjustmentsPerMinute:s,timeshiftAdjustmentsPerMinute:c}))}),m(this,`resetModules`,()=>{Object.values(this.modules).forEach(e=>{e&&`reset`in e&&e.reset()}),this.playbackSource instanceof tu&&this.modules.adaptivity.reset(Rw),this.sampleProcessingSesssions.clear(),this.cleanupTextTracks(1/0),this.playbackSource.currentTime=0,this.playbackSource.isActivated=!1}),m(this,`disconnectForInactivePage`,e=>{if(this.clearInactivityDisconnect(),this.emitter.emit(`flush buffers`),!this.isBackgroundPlayEnabled(this.channelId)){var t;(t=this.modules.mediaSession)==null||t.stop()}this.connectionState!==`disconnected`&&this.modules.connection.disconnect(e)}),m(this,`scheduleInactivityDisconnect`,()=>{this.clearInactivityDisconnect(),this.inactivityDisconnectInterval=this.modules.timer.setInterval(()=>{let e=this.modules.pictureInPicture.isPictureInPictureActive(),t=this.playbackState===`paused`||this.muted&&!e;this.connectionState===`connected`&&t&&(this.emitter.emit(`flush buffers`),this.modules.connection.disconnect(`Background playback inactive timeout`),this.suspend(!0),this.clearInactivityDisconnect())},e.BACKGROUND_INACTIVITY_DISCONNECT_TIMEOUT)}),m(this,`onVisiblePause`,()=>{if(!this.browser.platform.isIOS){this.disconnectForVisiblePause();return}this.clearVisiblePauseDisconnect(),this.visiblePauseTimeout=this.modules.timer.setTimeout(()=>{this.visiblePauseTimeout=void 0,this.disconnectForVisiblePause()},e.VISIBLE_PAUSE_DISCONNECT_DELAY)}),m(this,`disconnectForVisiblePause`,()=>{this.isUserPaused=!0,this.suspend(),this.modules.connection.disconnect()}),m(this,`clearVisiblePauseDisconnect`,()=>{this.visiblePauseTimeout!==void 0&&(this.modules.timer.clearTimeout(this.visiblePauseTimeout),this.visiblePauseTimeout=void 0)}),m(this,`clearInactivityDisconnect`,()=>{this.inactivityDisconnectInterval!==void 0&&(this.modules.timer.clearInterval(this.inactivityDisconnectInterval),this.inactivityDisconnectInterval=void 0)}),m(this,`isHiddenWithBackgroundPlayback`,()=>!this.modules.documentState.isVisible&&this.shouldAllowBackgroundPlayback(this.channelId)),m(this,`isVideoOnScreen`,(e=this.modules.documentState.isVisible)=>e||this.modules.pictureInPicture.isPictureInPictureActive()),m(this,`isHiddenWithBackgroundPlayDisabled`,()=>!this.modules.documentState.isVisible&&!this.isBackgroundPlayEnabled(this.channelId)),m(this,`resumeModules`,()=>{Object.values(this.modules).forEach(e=>{e&&`unsuspend`in e&&e.unsuspend()})}),m(this,`getRuntimeInfo`,()=>{let e=this.modules.canvasModule instanceof EC?!0:void 0;return L({uptime:this.uptime,version:`4.7.1`,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,mediaElementPaused:this.element&&`paused`in this.element?this.element.paused:void 0},this.userAgentInformation.getUserAgentInformation())}),m(this,`getPlaybackBufferState`,(e,t)=>{let n=t==null?void 0:t.getBufferState(e.currentTime);if(!n)return e;let r=e.playbackState===`buffering`||n.playbackState===`buffering`?`buffering`:e.playbackState===`paused`?`paused`:`playing`;return L(L({},e),{},{buffered:n.buffered,playbackState:r})}),m(this,`onMediaElementBufferState`,(e,t)=>{this.emitter.emit(`buffer state`,this.getPlaybackBufferState(e,t))}),m(this,`onMediaElementState`,e=>{var t;if(this.logger.info(`media element state`,{state:e}),this.isMediaElementPaused=e===`paused`,(t=this.modules.mediaSession)==null||t.refresh(),this.options.get(`pauseSupportEnabled`))if(e===`paused`)this.modules.documentState.isVisible&&this.onVisiblePause();else{if(this.clearVisiblePauseDisconnect(),this.isUserPaused=!1,this.isHiddenWithBackgroundPlayDisabled())return;this.unsuspend(),this.modules.connection.getState()===`disconnected`&&this.modules.connection.unsuspend()}}),m(this,`onBufferEvent`,e=>{this.emit(`buffer state event`,e);let t=!this.playbackSource.isActivated||this.playbackSource.isPaused;if(e===`filled`&&t){var n,r,i,a;let e=Math.max(this.currentTime,(n=(r=this.videoBufferedRanges[0])==null?void 0:r.start)==null?0:n,(i=(a=this.audioBufferedRanges[0])==null?void 0:a.start)==null?0:i);this.logger.info(`Buffer filled - starting playback`,{currentTime:e}),this.playbackSource.currentTime=e,this.modules.sync.activateSyncAdjustments(),this.playbackSource.isActivated=!0}else e===`drained`&&this.playbackSource.isPaused&&(this.playbackSource.isActivated=!1,this.modules.sync.deactivateSyncAdjustments())}),m(this,`timeToFirstFrame`,()=>{let e=this.modules.playback.getFirstFrameTime(),t=this.modules.connection.firstConnectStartTime;if(t!==void 0&&e!==void 0)return Math.round(e-t)}),m(this,`hiddenPauseIsStop`,()=>{var e;if(this.browser.platform.isWebKit||!this.browser.isMobile)return!1;let t=(e=this.modules)==null?void 0:e.decoder;return t?t.audioWebCodecsInUse:this.isWebCodecsAudioAvailable(this.channelId)}),this.options=new bw(L(L({},Ur),Fw(t))),t.telemetryEnabled===void 0&&[`localhost`,`127.0.0.1`].includes(location.hostname)&&this.options.set(`telemetryEnabled`,!1);let a={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}},o=xn.get();o.setLevel(this.options.get(`logLevel`)),o.setDebug(!1),this.logger=o,this.webCodecsRenditionSupport=new Lw(o),t.iosMediaElementEnabled!==void 0&&this.logger.warn(`Option iosMediaElementEnabled is deprecated and will be removed in a future release. Use streamToMediaElementEnabled instead.`);let s=(r=t.streamToMediaElementEnabled)==null?t.iosMediaElementEnabled:r;s!==void 0&&(this.options.set(`streamToMediaElementEnabled`,s),this.options.set(`iosMediaElementEnabled`,s)),t.iosBackgroundPlayEnabled!==void 0&&this.logger.warn(`Option iosBackgroundPlayEnabled is deprecated and will be removed in a future release. Use backgroundPlayEnabled instead.`);let c=(i=t.backgroundPlayEnabled)==null?t.iosBackgroundPlayEnabled:i;c!==void 0&&(this.options.set(`backgroundPlayEnabled`,c),this.options.set(`iosBackgroundPlayEnabled`,c));let l=t.mseEnabled!==void 0,u=t.decoders!==void 0;l&&this.logger.warn(`Option mseEnabled is deprecated and will be removed in a future release. Use decoders instead (e.g. decoders: ["wasm"]).`),l&&!u&&t.mseEnabled===!1&&this.options.set(`decoders`,[`wasm`]);let d=zC.create(this.emitter,this.logger.createContext(`PictureInPictureModule`)),f=this.options.get(`mediaSessionEnabled`)?wC.create(this.emitter,this.logger.createContext(`MediaSessionModule`),{metadata:this.options.get(`mediaSessionMetadata`),decoy:this.willUseMediaSource()||this.usesSplitCanvasAudio()?void 0:vu.create(this.logger.createContext(`AudioFocusDecoy`),this.yieldToInterruption),isMuted:()=>this.playbackSource.userMuted,isHidden:()=>!this.modules.documentState.isVisible,isSinkPaused:()=>this.isMediaElementPaused,releaseOnHiddenPause:this.hiddenPauseIsStop,isSuppressed:this.isHiddenWithBackgroundPlayDisabled,holdDecoyWhilePaused:this.holdsDecoyWhilePaused(),keepDecoyWhenMuted:this.isWebKitCanvasPath(),pauseMeansMute:!this.options.get(`pauseSupportEnabled`)}):void 0,p=cr.create(),h=rS.create(this.emitter,this.logger.createContext(`ConnectionModule`),{reconnectHandler:this.options.get(`reconnectHandler`),options:this.options,onConnectInfo:this.onConnectInfo}),g=ZC.create(this.logger.createContext(`SubscriptionModule`),this.emitter,a),_=qC.create(this.emitter,g),v=GC.create(this.emitter,this.logger.createContext(`QualityOfServiceModule`),_),y=VC.create(this.emitter,this.logger.createContext(`PlaybackModule`),this,this.options.get(`minBufferTime`));this.encryptedMediaExtensions=new Za(this.emitter,this.logger.createContext(`EncryptedMediaExtensions`),t.drm),this.drm={setHeaders:e=>{this.encryptedMediaExtensions.headers=e},setQueryParams:e=>{this.encryptedMediaExtensions.queryParams=e}};let b=XS.create(this.emitter),ee=this.options.get(`poster`),te=ee===!0?this.getThumbnailUrl():ee||void 0,x,ne,re;if(this.willUseMediaSource()){let e=new tu({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:te});e.on(`buffer state`,e=>this.onMediaElementBufferState(e,x)),e.on(`needs user input`,e=>this.emitter.emit(`needs user input`,e)),e.on(`volume state`,e=>this.emitter.emit(`volume state`,e)),e.on(`media element state`,e=>this.onMediaElementState(e)),this.element=e.element,this.playbackSource=e,Za.isSupported()&&this.encryptedMediaExtensions.attach(e.element),x=jC.create(this.logger.createContext(`MseModule`),this.emitter,this.element),this.options.get(`pauseSupportEnabled`)||(ne=_w.create(this.logger.createContext(`UnpauseModule`),[e],b)),this.options.get(`pictureInPictureEnabled`)&&this.emitter.emit(`add picture in picture listener`,{element:e.element})}else if(this.streamsToMediaElement()){let e=EC.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:te,offscreenCanvas:this.offscreenCanvasElement,bufferTime:this.options.get(`minBufferTime`),backgroundPlaybackEnabled:this.isBackgroundPlayEnabled(this.channelId),splitAudio:this.usesSplitCanvasAudio()});this.element=e.element().element,this.playbackSource=e,re=e;let t=this.browser.platform.isIOS&&this.browser.platform.iosVersion<=15;this.options.get(`pictureInPictureEnabled`)&&!t&&this.emitter.emit(`add picture in picture listener`,{element:this.element}),this.options.get(`pauseSupportEnabled`)||(ne=_w.create(this.logger.createContext(`UnpauseModule`),e.elements(),b))}else{let e;e=yC.create(this.emitter,this.logger.createContext(`LegacyCanvasModule`),this.pool,this,this.options.get(`muted`)||this.options.get(`media`)===`video`,this.options.get(`volume`),()=>{this.setElement(e.element())},this.options.get(`minBufferTime`)),this.element=e.element(),this.playbackSource=e,re=e,this.options.get(`iosWakeLockEnabled`)&&(this.wakeLock=new Hl)}this.emitter.on(`channel reset`,this.resetModules),this.emitter.on(`no data timeout`,this.resetModules),this.emitter.on(`media element state`,e=>this.onMediaElementState(e)),this.emitter.on(`volume state`,e=>this.emit(`volume state`,e)),this.options.get(`pauseSupportEnabled`)||this.emitter.on(`exit picture in picture`,()=>p.setTimeout(()=>this.play(),0)),this.emitter.on(`constraint cap changed`,e=>{this.logger.info(`new cap set`,{cap:e}),this.alignSizeAndBitRate(this.targetSubscription)}),this.pictureInPicture={enter:()=>d.requestPictureInPicture(),exit:()=>d.exitPictureInPicture(),isActive:()=>d.isPictureInPictureActive(),isSupported:()=>d.isPictureInPictureSupported()},this.emitter.on(`error`,e=>{if(e.type()===`external`&&this.emit(`error`,e),e.isFatal())return()=>void this.unload()});let ae=this.willUseMediaSource(),S=ae?!this.browser.platform.isWebKit:!0,oe={getTargetBufferTime:()=>y.getTargetBufferTime(),getNextBufferedRangeStart:x?e=>x.getNextBufferedRangeStart(e):void 0,getBufferedEndAt:x?e=>x.getBufferedEndAt(e):void 0},C=dw.create(this.emitter,this.logger.createContext(`SyncModule`),this.playbackSource,oe,S,ae),se=iC.create(this.logger.createContext(`JitterModule`)),w=(this.options.get(`edgeUrl`)||this.options.get(`url`)).replace(`wss://`,`https://`).replace(`ws://`,`http://`).replace(`//lb.`,`//errors.`),ce=new URL(`/telemetry`,w).toString();this.modules={telemetry:hw.create(this.logger.createContext(`TelemetryModule`),this.emitter,{url:ce,enabled:this.options.get(`telemetryEnabled`),includeStats:!1,interval:5e3},this),bufferTime:Su.create(this.emitter,this.logger.createContext(`BufferTimeModule`),v,this,{maxBufferTime:this.options.get(`maxBufferTime`),minBufferTime:this.options.get(`minBufferTime`)}),incomingData:tC.create(this.emitter),adaptivity:fu.create(this.emitter,this.logger.createContext(`AdaptivityModule`),v,{cooldownTime:Math.max(this.options.get(`minBufferTime`),2e3)}),constraintCap:cS.create(this.emitter,this.element,_,this.options.get(`abrEnabled`)?this.options.get(`sizeBasedResolutionCapEnabled`):!1),event:$S.create(this.emitter,this.logger.createContext(`EventModule`),C),sync:C,jitter:se,documentState:b,connection:h,playback:y,pictureInPicture:d,mediaSession:f,timer:p,subscription:g,renditions:_,qualityOfService:v,mseModule:x,unpause:ne,canvasModule:re},this.modules.adaptivity.isEnabled=this.options.get(`abrEnabled`),this.emitter.on(`enter picture in picture`,()=>{var e;return(e=this.modules.decoder)==null?void 0:e.setVideoRenderingEnabled(!0)}),this.emitter.on(`exit picture in picture`,()=>{var e;return(e=this.modules.decoder)==null?void 0:e.setVideoRenderingEnabled(this.modules.documentState.isVisible)}),this.emitter.on(`media session: request play`,()=>this.fromNativeControls(`play`)),this.emitter.on(`media session: request pause`,()=>this.fromNativeControls(`pause`)),this.emitter.on(`media session: request stop`,()=>this.fromNativeControls(`pause`)),this.emitter.on(`native control`,e=>{this.options.get(`pauseSupportEnabled`)&&this.fromNativeControls(e)}),this.emitter.on(`page active`,e=>{var t,n;if((t=this.modules.decoder)==null||t.setVideoRenderingEnabled(this.isVideoOnScreen(e)),e)this.clearInactivityDisconnect(),this.isUserPaused||(this.logger.debug(`Unsuspending`),this.unsuspend(),this.usesSplitCanvasAudio()&&this.playbackSource.isPlayingAsRequested===!1&&(this.logger.debug(`Playing again after show`),this.play()));else if(this.clearVisiblePauseDisconnect(),this.logger.debug(`Suspending`),this.suspend(),this.shouldAllowBackgroundPlayback(this.channelId)){var r,i,a;(r=this.modules.decoder)==null||r.enableBackgroundTimers(),this.modules.connection.unsuspend(),this.modules.sync.unsuspend(),(i=this.modules.decoder)==null||i.unsuspend(),(a=this.modules.canvasModule)==null||a.unsuspend(),this.scheduleInactivityDisconnect()}else this.disconnectForInactivePage(this.isUserPaused?`Background playback paused`:`Background playback disabled`);(n=this.modules.mediaSession)==null||n.refresh()}),this.emitter.on(`pageshow`,e=>{if(!e.persisted||this.isUserPaused)return;let t=this.shouldAllowBackgroundPlayback(this.channelId),n=document.visibilityState===`visible`;if(!n&&!t){this.logger.debug(`Ignoring pageshow while hidden`);return}if(this.logger.debug(`Resuming after pageshow`),!n){var r;(r=this.modules.decoder)==null||r.enableBackgroundTimers()}this.resumeModules(),this.isSuspended=!1,this.isHiddenWithBackgroundPlayback()&&this.scheduleInactivityDisconnect()});let le;this.emitter.on(`context switch complete`,()=>{le||(le=window.setTimeout(()=>{window.clearTimeout(le),le=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`,e=>this.emit(`needs user input`,e)),this.emitter.on(`event`,e=>{switch(e.type){case`metadata`:this.emit(`metadata`,e);break;case`channel switch`:this.emit(`channel switch`,{channelId:e.channelId});break;case`language switch`:this.emit(`language switch`,{language:e.language});break}}),this.emitter.on(`buffer state event`,this.onBufferEvent),this.emitter.on(`playback state`,e=>this.emit(`playback state`,e)),this.emitter.on(`rendition level changed`,({to:e})=>{e&&this.emit(`rendition level`,e)}),this.emitter.on(`connection state`,e=>{this.emit(`connection state`,e)}),this.emitter.on(`recovered from media error`,()=>{this.modules.adaptivity.reset(this.targetBufferTime*2),!this.isUserPaused&&this.visiblePauseTimeout===void 0&&this.playbackSource.play()}),this.emitter.once(`connect info`,e=>{var t,n;let r=((t=(n=e.telemetry)==null?void 0:n.probability)==null?1:t)>=Math.random();if(e.telemetry){var i;(i=this.modules.telemetry)==null||i.unload(),this.modules.telemetry=hw.create(this.logger.createContext(`TelemetryModule`),this.emitter,L(L({},e.telemetry),{},{enabled:this.options.get(`telemetryEnabled`)&&r}),this),this.modules.telemetry.load()}}),this.emitter.on(`adapt level`,e=>{let t=this.modules.renditions.getRenditionLevels(),n=this.modules.renditions.getRenditionLevel(),r=t.findIndex(e=>e===n),i=t.length-1,a=r;switch(e){case`upgrade`:{var o,s,c,l,u;let e=Math.min(r+1,i),n=t[e],d=(o=this.modules.connection.estimatedBandwidth)==null?Br():o,f=((s=n==null||(c=n.audio)==null?void 0:c.bitRate)==null?0:s)+((l=n==null||(u=n.video)==null?void 0:u.bitRate)==null?0:l),p=d*2>f;n&&p&&this.modules.adaptivity.isQoSOk(n)&&(a=e)}break;case`downgrade`:a=Math.max(r-1,0);break;case`double downgrade`:a=Math.max(r-2,0);break;case`reconnect`:if(r===0||this.modules.qualityOfService.timeSpentBufferingLast(6e3)>5e3){if(this.modules.connection.lastConnectionTime===void 0||performance.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 a=0}if(a===r)return;let d=t[a];this.alignSizeAndBitRate(L(L({},this.targetSubscription),{},{video:L(L({},this.targetSubscription.video),d==null?void 0:d.video),audio:L(L({},this.targetSubscription.audio),d==null?void 0:d.audio)})),this.emitter.emit(`adapted level`)}),this.emitter.on(`text track data`,e=>{let t=j(Vw,this).find(t=>t.language===e.language),n=this.modules.sync.getTimeshiftOffset()/1e3,r=n-j(Bw,this);if(k(Bw,this,n),t){if(t.cues)for(let e of t.cues)e.startTime-=r,e.endTime-=r;for(let r of e.cues){let e=new VTTCue(r.startTime-n,r.endTime-n,r.text);t.addCue(e)}}}),this.emitter.on(`native text track selected`,e=>{this.textTrack=e}),this.emitter.on(`received signal`,e=>{let t=e,n=this.modules.subscription.getCurrentSubscription();switch(this.logger.debug(`received`,L({},t)),t.type){case`client ip`:this.clientIp=t.ip;break;case`renditions`:this.updateTextTracks(t.renditions),k(Hw,this,this.filterRenditions(t.renditions).then(e=>{this.emitter.emit(`renditions`,{renditions:e,channelId:this.currentSubscription.channelId}),this.emit(`rendition levels`,this.modules.renditions.getRenditionLevels()),this.emitLanguagesIfChanged()}).finally(()=>{k(Hw,this,void 0)}));break;case`subscription changed`:var r;try{Iw(t.subscription)}catch(e){this.emitter.emit(`error`,new U(`Subscription failed validation`,{source:e instanceof Error?e:void 0,isFatal:!1,code:`subscription_failed_validation`}))}this.emitter.emit(`subscription changed`,{reset:t.reset,to:t.subscription,from:this.modules.subscription.getCurrentSubscription()}),t.reset&&n.channelId!==t.subscription.channelId&&(this.emit(`error`,Yi(t.subscription.channelId)),this.emit(`channel switch failed`,{channelId:n.channelId})),this.modules.sync.allowTimeshiftOnAudio=!((r=t.subscription.video)!=null&&r.codec),this.modules.adaptivity.reset();break;case`timing info`:this.modules.sync.updateChannelSyncInfo(t.timingInfo.channelId,t.timingInfo),this.emit(`server wallclock time`,t.timingInfo.wallclockTime);break}}),this.emitter.on(`channel switch timeout`,e=>{this.emit(`error`,Yi(e)),this.emit(`channel switch failed`,{channelId:this.currentSubscription.channelId})}),this.emitter.on(`received data`,e=>{let t=this.modules.subscription.getCurrentSubscription(),n=Ml(e);if(!t){this.logger.warn(`Received unwanted message`,L({},n));return}E(L(L({},n),{},{channelId:t.channelId}))}),this.emitter.on(`received moq data`,e=>{let t=e.payload.mediaType(),n=e.channelId,r=e.renditionId,i=this.modules.sync.processFragment(n,e.payload,r),a=i.unbackedSamplesCount();if(a>0&&this.unbackedSamplesWarned.shouldNotify(n,r)&&this.logger.warn(`Fragment declares more samples than its payload holds`,{unbackedSamples:a,samplesCount:i.samplesCount(),channelId:n,renditionId:r}),t!==`text`&&this.modules.jitter.recordSample({type:t,renditionId:r,timestamp:i.baseMediaDecodeTime(),timescale:i.timescale()}),e.switchInfo.channelId&&(e.switchInfo.drmTransition&&this.emitter.emit(`error`,Xi(`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:e.switchInfo.channelId,timestamp:i.baseMediaDecodeTime()/i.timescale()*1e3})),e.switchInfo.language&&this.modules.event.addEvent({type:`language switch`,language:e.switchInfo.language,timestamp:i.baseMediaDecodeTime()/i.timescale()*1e3}),this.modules.incomingData.add(t,e.payload.rawBytes().byteLength),(t===`video`||t===`audio`)&&this.hasListeners(`cmaf fragment`)&&this.emit(`cmaf fragment`,{mediaType:t,initSegment:i.header().rawBytes().slice(),fragment:i.rawBytes().slice(),isKeyframe:i.startsWithKeyframe()}),i.fragment().emsgs.forEach(e=>{if(!e.presentationTime)return;let t=ko(e.data);t&&this.modules.event.addEvent({id:e.id,timestamp:e.presentationTime/e.timescale*1e3-this.modules.sync.getTimeshiftOffset(),content:t.txx.value,type:`metadata`})}),this.modules.decoder){var o,s;let a=(o=i.header().init().moov.traks[0])==null?void 0:o.mdia.minf.stbl.stsd,m=(s=a==null?void 0:a.codec)==null?`h264`:s,h;if(m===`h264`){var c;h=a==null||(c=a.avc1)==null?void 0:c.avcC.bytes}else if(m===`h265`){var l,u,d;let e=(l=a==null||(u=a.hvc1)==null?void 0:u.data())==null?a==null||(d=a.hev1)==null?void 0:d.data():l;e&&(h=Do(e))}else if(m===`av1`&&a!=null&&a.av01)h=Jc(a.av01.data());else if(m===`aac`){var f;h=a==null||(f=a.mp4a)==null||(f=f.esds)==null?void 0:f.decoderConfig}else if(m===`opus`){var p;h=Sl(a==null||(p=a.opus)==null?void 0:p.dops)}if(h){let i=h.buffer.slice(h.byteOffset,h.byteOffset+h.byteLength);if(t===`text`)throw Error(`Subtitles are not supported`);this.emitter.emit(`init segment`,{initSegment:{channelId:n,renditionId:r,data:i,timescale:1e3,type:t,codec:m,codecString:e.codecString},mimeType:t})}else m&&this.logger.warn(`Failed to extract init data for codec`,{codec:m,channelId:n,renditionId:r});let g=0;for(let e=0;e<i.samplesCount();e++){let t=i.sample(e);if(!t){g++;continue}this.emitter.emit(`coded sample`,L(L({},t),{},{renditionId:r,channelId:n,data:t.data.buffer.slice(t.data.byteOffset,t.data.byteOffset+t.data.byteLength)}))}g>0&&this.unextractableSamplesWarned.shouldNotify(n,r)&&this.logger.warn(`Dropped samples the demuxer could not extract`,{droppedSamples:g,samplesCount:i.samplesCount(),channelId:n,renditionId:r})}else this.emitter.emit(`fragment`,{mimeType:e.mimeType,codec:e.codec,fragment:i,channelId:n,renditionId:r})});let ue=this.options.get(`container`);ue&&this.attach(ue),this.logger.info(`Created Vindral instance`,{options:this.options});let E=function(){var e=N(function*(e){let t=e.channelId;j(Hw,n)&&(yield j(Hw,n));let r=n.modules.renditions.getRendition(e.renditionId,t);if(!kl(e.flags)){if(Al(e.flags)){let t=new TextDecoder().decode(e.payload),r=n.modules.sync.getTimeshiftOffset();if(e.renditionId!==0){let e=yr(t);if(e&&e.language!==void 0){let t=new Jl,i=[];try{i=t.parse(e.content||``)}catch(e){n.logger.warn(`failed to parse WebVTT segment, dropping it`,e)}let a=r/1e3,o=j(Vw,n).find(t=>t.language===e.language),s=a-j(Bw,n);if(k(Bw,n,a),o){if(o.cues)for(let e of o.cues)e.startTime-=s,e.endTime-=s;for(let e of i){let t=new VTTCue(e.startTime-a,e.endTime-a,e.text);o.addCue(t)}}}}else n.modules.event.addEvent({timestamp:e.timestamp/e.timescale*1e3-n.modules.sync.getTimeshiftOffset(),content:t,type:`metadata`})}else if(r!=null&&r.codec){let i=Nr(r.codec);if(i===`text`)throw Error(`Subtitles are not supported`);if(n.modules.incomingData.add(i,e.payload.byteLength),Ol(e.flags)){let a=L(L({type:i,data:e.payload,codec:r.codec,codecString:r.codecString},e),{},{channelId:t},Lr(r)?{width:r.width,height:r.height}:{}),o=hl(a.codec,a.payload);o&&n.sizes.set(a.renditionId,o);let s=zr({codec:r.codec,codecString:r.codecString});n.emitter.emit(`init segment`,{initSegment:a,mimeType:s}),n.emit(`initialized media`)}else{let t=Dw(e,r,n.sizes.get(e.renditionId));n.modules.jitter.recordSample(t);let a=n.sampleProcessingSesssions.get(i);if(!a)a=Sw(n.modules.sync.processSample(t)),n.sampleProcessingSesssions.set(i,a);else{let e=n.willUseMediaSource()&&n.isSwitchingRenditionLevel&&t.type===`video`,r=a(n.modules.sync.processSample(t),e),i=t;r.forEach(e=>{n.modules.event.extractEvent(e,i),n.emitter.emit(`coded sample`,e),i=e})}}}}});return function(t){return e.apply(this,arguments)}}();this.options.get(`maxVideoBitRate`)!==2**53-1&&(this.maxVideoBitRate=this.options.get(`maxVideoBitRate`)),this.options.get(`maxAudioBitRate`)!==2**53-1&&(this.maxAudioBitRate=this.options.get(`maxAudioBitRate`)),$t(this.options.get(`maxSize`),Vr())||(this.maxSize=this.options.get(`maxSize`)),this.options.get(`burstEnabled`)&&g.enableBurst(this.targetBufferTime)}set volume(e){this.playbackSource.volume=e}get volume(){return this.playbackSource.volume}set muted(e){let t=this.playbackSource.muted;e===this.playbackSource.userMuted&&(e||!t)||(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.applyBurstEnabled(this.channelId))}updateBufferTimeConfig(e){this.modules.bufferTime.updateConfig(e)}get playbackLatency(){var e;if(this.playbackSource.currentTime!==0)return this.targetBufferTime+((e=this.modules.sync.drift)==null?0:e)+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;let 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&&(j(Vw,this).forEach(t=>{if(t.label===e)t.mode=`showing`;else{if(t.mode===`showing`&&t.cues)for(let e of[...t.cues])t.removeCue(e);t.mode=`hidden`}}),this.emitter.emit(`text track`,e))}get textTracks(){return j(Vw,this).filter(e=>e.mode!==`disabled`).map(e=>e.label)}get textTrack(){var e;return(e=j(Vw,this).find(e=>e.mode===`showing`))==null?void 0:e.label}get channelId(){var e,t;return(e=(t=this.modules)==null?void 0:t.subscription.getTargetSubscription().channelId)==null?this.options.get(`channelId`):e}set channelId(e){if(e===this.channelId)return;this.applyBurstEnabled(e),this.modules.subscription.setChannelId(e);let t=this.options.get(`media`)===`audio`?[]:this.options.get(`videoCodecs`),n=this.modules.renditions.getAudioRenditions(e),r=this.modules.renditions.getVideoRenditions(e),i=this.targetSubscription.audio.language,a=n==null?void 0:n.some(e=>e.language===i),o=t.find(e=>(r==null?void 0:r.find(t=>t.codec===e))!==void 0);o&&this.modules.subscription.setVideoCodec(o),this.logger.debug(`Channel switch - started`,{audioRenditions:n,targetSubscriptionLanguage:i,targetHasCurrentLanguage:a}),this.alignSizeAndBitRate(this.targetSubscription)}get maxSize(){var e,t;let{width:n,height:r}=(e=(t=this.modules.constraintCap.getCurrentConstraintCap())==null?void 0:t.video)==null?Vr():e;return{width:n,height:r}}set maxSize(e){this.modules.constraintCap.setUserSpecifiedCap({video:{width:e.width,height:e.height}}),this.alignSizeAndBitRate(this.targetSubscription)}get maxVideoBitRate(){var e,t;return(e=(t=this.modules.constraintCap.getCurrentConstraintCap())==null?void 0:t.video.bitRate)==null?Br():e}set maxVideoBitRate(e){this.modules.constraintCap.setUserSpecifiedCap({video:{bitRate:e}}),this.alignSizeAndBitRate(this.targetSubscription)}get maxAudioBitRate(){var e,t;return(e=(t=this.modules.constraintCap.getCurrentConstraintCap())==null?void 0:t.audio.bitRate)==null?Br():e}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,n,r;return(e=(t=(n=this.modules.mseModule)==null?void 0:n.getBuffer(`video`))==null?(r=this.modules.decoder)==null?void 0:r.getBuffer(`video`):t)==null?[]:e}get audioBufferedRanges(){var e,t,n,r;return(e=(t=(n=this.modules.mseModule)==null?void 0:n.getBuffer(`audio`))==null?(r=this.modules.decoder)==null?void 0:r.getBuffer(`audio`):t)==null?[]:e}get videoKeyframeTimestamps(){var e,t,n,r;return(e=(t=(n=this.modules.mseModule)==null?void 0:n.getVideoKeyframeTimestamps())==null?(r=this.modules.decoder)==null?void 0:r.getVideoKeyframeTimestamps():t)==null?[]:e}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 Math.round(this.modules.qualityOfService.timeSpentBuffering())}get timeActive(){return Math.round(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 Math.round(performance.now()-this.createdAt)}suspend(e=!1){this.isSuspended&&!e||(Object.values(this.modules).forEach(e=>{e&&`suspend`in e&&e.suspend()}),this.isSuspended=!0)}unsuspend(){if(this.isSuspended){if(this.isHiddenWithBackgroundPlayDisabled()){this.logger.debug(`Deferring resume until the page is visible`);return}this.resumeModules(),this.isSuspended=!1}}alignSizeAndBitRate(e){let t=this.modules.constraintCap.constrainSubscription(L(L({},e),{},{video:L({},e.video),audio:L({},e.audio)})),n=this.modules.constraintCap.getUserSpecifiedCap();!this.abrEnabled&&n&&(t.audio.bitRate=n.audio.bitRate,t.video.bitRate=n.video.bitRate,t.video.width=n.video.width,t.video.height=n.video.height);let r=this.modules.renditions.getRenditionLevel(t);if(r){if(r.video&&(this.modules.subscription.setVideoBitRate(r.video.bitRate),this.modules.subscription.setSize(r.video)),r.audio)this.modules.subscription.setAudioBitRate(r.audio.bitRate),this.modules.subscription.setLanguage(r.audio.language);else if(t.audio.language){let e=this.modules.renditions.getAudioRenditions(t.channelId);!this.abrEnabled&&n&&(e=e==null?void 0:e.filter(e=>e.bitRate<n.audio.bitRate));let r=t.audio.language,i=e==null?void 0:e.some(e=>e.language===r),a=e==null?void 0:e.find(e=>e.language),o=(e==null?void 0:e.length)&&e[0]||void 0;i||(a?(this.logger.debug(`Randomizing language since target did not have current language`),this.modules.subscription.setAudioBitRate(a.bitRate),this.modules.subscription.setLanguage(a.language)):(this.logger.debug(`Randomizing audio rendition since target did not have current language`),o!=null&&o.bitRate&&this.modules.subscription.setAudioBitRate(o.bitRate),this.modules.subscription.setLanguage(o==null?void 0:o.language)))}}}get currentSubscription(){return this.modules.subscription.getCurrentSubscription()}get targetSubscription(){return this.modules.subscription.getTargetSubscription()}resolvedDecoder(e){return Ew(this.options.get(`decoders`,e),this.browser.supportsMediaSource,this.options.get(`drm`))}usesSplitCanvasAudio(){return!this.willUseMediaSource()&&this.options.get(`streamToMediaElementEnabled`)&&It(this.browser)&&this.options.get(`media`)!==`audio`&&this.options.get(`media`)!==`video`&&this.browser.platform.isIOS}isWebKitCanvasPath(){return!this.willUseMediaSource()&&this.browser.platform.isWebKit}holdsDecoyWhilePaused(){return!(!this.isWebKitCanvasPath()||this.browser.platform.isIOS&&this.streamsToMediaElement()&&ut(this.browser,26))}streamsToMediaElement(){return this.options.get(`streamToMediaElementEnabled`)===!0&&It(this.browser)}requestAudioSessionOnce(){this.hasRequestedAudioSession||!this.options.get(`mediaSessionEnabled`)||!this.isWebKitCanvasPath()||!this.isBackgroundPlayEnabled(this.channelId)||(this.hasRequestedAudioSession=!0,this.logger.info(`Requested playback audio session`,{playback:Oe()}))}willUseMediaSource(){return this.resolvedDecoder()===`mse`}shouldUseWebCodecs(e){return this.resolvedDecoder(e)===`webcodecs`}isWebCodecsVideoAvailable(e){return this.shouldUseWebCodecs(e)&&typeof VideoDecoder<`u`}isWebCodecsAudioAvailable(e){return this.shouldUseWebCodecs(e)&&typeof AudioDecoder<`u`}shouldUseOffscreenCanvas(e){let t=this.options.get(`offscreenCanvasEnabled`,e);return t===void 0?this.shouldUseWebCodecs(e):t}isBackgroundPlayEnabled(e){return this.options.get(`backgroundPlayEnabled`,e)}shouldAllowBackgroundPlayback(e){return this.hasCalledConnect&&this.isBackgroundPlayEnabled(e)&&!this.isUserPaused}};m(Uw,`MAX_POOL_SIZE`,10),m(Uw,`REMOVE_CUE_THRESHOLD`,1e3*10),m(Uw,`BACKGROUND_INACTIVITY_DISCONNECT_TIMEOUT`,1e3*15),m(Uw,`VISIBLE_PAUSE_DISCONNECT_DELAY`,1e3);var Ww={bar:`_bar_qm7bl_1`,hidden:`_hidden_qm7bl_47`},Gw=`_withThumbnails_suenn_19`,Kw={"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:Gw,"hide-on-small":`_hide-on-small_suenn_27`},qw={"icon-button":`_icon-button_5fg7v_1`},Jw={viewBox:`-10 -10 44 44`,content:`<g fill="none" stroke="white">
1323
1323
  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5.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" clip-rule="evenodd" />
1324
1324
  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2" />
1325
- </g>`},HC={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"/>`},UC={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"/>`},WC={viewBox:`-10 -10 44 44`,content:`<g fill="none" stroke="white">
1325
+ </g>`},Yw={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"/>`},Xw={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"/>`},Zw={viewBox:`-10 -10 44 44`,content:`<g fill="none" stroke="white">
1326
1326
  <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" />
1327
- </svg>`},GC={viewBox:`-10 -10 44 44`,content:`
1328
- <path stroke="white" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" />`},KC={viewBox:`-12 -12 38 38`,content:`<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(-5.000000, -5.000000)">
1327
+ </svg>`},Qw={viewBox:`-10 -10 44 44`,content:`
1328
+ <path stroke="white" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" />`},$w={viewBox:`-12 -12 38 38`,content:`<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(-5.000000, -5.000000)">
1329
1329
  <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>
1330
- </g>`},qC={viewBox:`-12 -12 38 38`,content:`<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(-5.000000, -5.000000)">
1330
+ </g>`},eT={viewBox:`-12 -12 38 38`,content:`<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(-5.000000, -5.000000)">
1331
1331
  <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>
1332
- </g>`},JC={viewBox:`-10 -10 44 44`,content:`<path fill="white" d="M19 7h-8v6h8V7zm2-4H3c-1.1 0-2 .9-2 2v14c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98V5c0-1.1-.9-2-2-2zm0 16.01H3V4.98h18v14.03z"/>`},YC={viewBox:`-10 -10 45 45`,content:`<path fill="white" d="M20 8H4V6h16v2zm-2-6H6v2h12V2zm4 10v8c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2zm-6 4l-6-3.27v6.53L16 16z"/>`},XC={viewBox:`-8 -8 40 40`,content:`<path fill="white" d="M19 4H5c-1.11 0-2 .9-2 2v12c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 11H9.5v-2h-2v2H6V9h1.5v2.5h2V9H11v6zm7-1c0 .55-.45 1-1 1h-.75v1.5h-1.5V15H14c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v4zm-3.5-.5h2v-3h-2v3z"/>`},ZC={viewBox:`-8 -8 40 40`,content:`<path fill="white" d="M14.4 6L14 4H5v17h2v-7h5.6l.4 2h7V6z"/>`},QC={viewBox:`-8 -8 40 40`,content:`<path fill="white" d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM4 12h4v2H4v-2zm10 6H4v-2h10v2zm6 0h-4v-2h4v2zm0-4H10v-2h10v2z"></path>`},$C={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"/>`};h();var ew,tw={enter:KC,exit:qC,pip:JC,channels:YC,languages:ZC,textTracks:QC,levels:XC,oneToOne:GC,mute:VC,unmute:WC,pause:HC,play:UC,airPlay:$C},nw=(ew=BC[`icon-button`])==null?``:ew,rw=class extends g{constructor(e,t,n){super(document.createElement(`div`)),m(this,`iconElement`,void 0),m(this,`setIcon`,e=>{this.iconElement.setAttribute(`viewBox`,tw[e].viewBox),this.iconElement.innerHTML=tw[e].content}),m(this,`isHidden`,()=>this.element.style.display===`none`),m(this,`setHidden`,e=>e?this.hide():this.show()),m(this,`show`,()=>void(this.element.style.display=`block`)),m(this,`hide`,()=>void(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`,nw),this.setIcon(t),this.element.addEventListener(`click`,n),this.element.appendChild(this.iconElement)}},iw=`_list_1vkum_1`,aw=`_hidden_1vkum_20`,ow={list:iw,"list-item":`_list-item_1vkum_12`,"list-item-disabled":`_list-item-disabled_1vkum_16`,hidden:aw};h();var sw,cw,lw,uw,dw=(sw=ow.hidden)==null?``:sw,fw=(cw=ow.list)==null?``:cw,pw=(lw=ow[`list-item`])==null?``:lw,mw=(uw=ow[`list-item-disabled`])==null?``:uw,hw=class extends g{constructor({items:e,onItemClick:t,classNames:n=[],maxHeight:r}){super(document.createElement(`div`)),m(this,`onItemClick`,void 0),m(this,`updateItems`,e=>{for(;this.element.firstChild;){var t;(t=this.element.lastChild)==null||t.remove()}e.forEach(e=>{let t=document.createElement(`div`);e.disabled||t.addEventListener(`click`,()=>this.onItemClick(e)),t.className=[pw,e.disabled?mw:``].join(` `),t.appendChild(e.element()),this.element.appendChild(t)})}),m(this,`hide`,()=>this.element.classList.add(dw)),m(this,`show`,()=>this.element.classList.remove(dw)),this.element.className=[fw,...n].join(` `),this.onItemClick=t,this.updateItems(e),r&&(this.element.style.maxHeight=r)}},gw={container:`_container_13xnz_1`,hidden:`_hidden_13xnz_6`,list:`_list_13xnz_10`};h();var _w,vw,yw,bw=(_w=gw.list)==null?``:_w,xw=(vw=gw.hidden)==null?``:vw,Sw=(yw=gw.container)==null?``:yw,Cw=class extends g{constructor({label:e,items:t,onItemClick:n,iconButtonType:r,onToggle:i}){super(document.createElement(`div`)),m(this,`iconButton`,void 0),m(this,`onItemClick`,void 0),m(this,`onToggle`,void 0),m(this,`maxHeight`,void 0),m(this,`items`,void 0),m(this,`list`,void 0),m(this,`onButtonClick`,()=>{this.toggleShowChannels(),this.onToggle(this)}),m(this,`toggleShowChannels`,()=>{this.list?this.hideList():this.showList()}),m(this,`handleItemClick`,e=>{this.toggleShowChannels(),this.onItemClick(e)}),m(this,`showList`,()=>{this.list=new hw({items:this.items,onItemClick:this.handleItemClick,classNames:[bw],maxHeight:this.maxHeight}),this.list.attach(this.element)}),m(this,`hideList`,()=>{var e;(e=this.list)==null||e.detach(),this.list=void 0}),m(this,`updateItems`,e=>{var t;this.items=e,(t=this.list)==null||t.updateItems(e)}),m(this,`isListVisible`,()=>this.list!==void 0),m(this,`hide`,()=>{xw&&this.element.classList.add(xw)}),m(this,`show`,()=>{xw&&this.element.classList.remove(xw)}),this.element.className=Sw,this.onItemClick=n,this.onToggle=i,this.items=t,this.iconButton=new rw(e,r,this.onButtonClick),this.iconButton.attach(this.element)}};U();var ww,Tw,Ew,Dw,Ow,kw=(ww=zC[`hide-on-small`])==null?``:ww,Aw=(Tw=zC[`channel-selection-item`])==null?``:Tw,jw=(Ew=zC[`channel-selection-item-selected`])==null?``:Ew,Mw=(Dw=zC[`channel-selection-item-image`])==null?``:Dw,Nw=(Ow=zC.withThumbnails)==null?``:Ow,Pw=class extends Cw{constructor({vindral:e,enabled:t,thumbnailsEnabled:n,thumbnailModule:r}){e.on(`channels`,()=>{let i=e.channels.map(t=>({channel:t,disabled:!t.isLive,element:()=>{let i=document.createElement(`div`);if(i.className=[Aw,t.channelId===e.channelId?jw:``].join(` `),r&&n){i.classList.add(Nw);let e=document.createElement(`p`);e.innerHTML=t.name,i.appendChild(e);let n=r.getImageUrl(t),a=document.createElement(`img`);n&&(a.className=Mw,a.src=n,i.style.backgroundImage=`url(${n})`)}else i.innerHTML=t.name;return i}}));this.maxHeight=`calc(${Math.max(110,e.mediaElement.clientHeight)}px - 46px)`,this.updateItems(i),i.length>1&&t!==!1?this.show():this.hide()}),super({label:`Channel List`,items:[],onItemClick:t=>e.channelId=t.channel.channelId,onToggle:C,iconButtonType:`channels`}),this.element.classList.add(kw),this.hide()}},Fw={"language-button-item":`_language-button-item_1dov5_1`,"language-button-item-selected":`_language-button-item-selected_1dov5_6`};U();var Iw,Lw,Rw=(Iw=Fw[`language-button-item`])==null?``:Iw,zw=(Lw=Fw[`language-button-item-selected`])==null?``:Lw,Bw=class extends Cw{constructor({vindral:e}){e.on(`languages`,()=>{let t=e.languages.map(t=>({language:t,disabled:!1,element:()=>{let n=document.createElement(`div`);return n.className=[Rw,t===e.language?zw:``].join(` `),n.innerHTML=t,n}}));this.maxHeight=`calc(${Math.max(110,e.mediaElement.clientHeight)}px - 46px)`,this.updateItems(t),t.length>0?this.show():this.hide()}),super({label:`Language`,items:[],onItemClick:t=>e.language=t.language,onToggle:C,iconButtonType:`languages`}),this.hide()}};h();var Vw=class extends g{constructor({vindral:e}){super(document.createElement(`div`)),m(this,`vindral`,void 0),m(this,`playButton`,void 0),m(this,`updateState`,()=>{this.playButton.setIcon(this.playIcon())}),m(this,`onPlayClick`,()=>{this.vindral.playbackState===`paused`?this.vindral.play():this.vindral.pause(),this.playButton.setIcon(this.playIcon())}),m(this,`playIcon`,()=>this.vindral.playbackState===`paused`?`play`:`pause`),this.element.style.cursor=`pointer`,this.vindral=e,this.playButton=new rw(`Play`,this.playIcon(),this.onPlayClick),this.playButton.attach(this.element)}},Hw=`_item_5vhyo_1`,Uw=`_title_5vhyo_10`,Ww={item:Hw,"item-selected":`_item-selected_5vhyo_6`,title:Uw,"sub-title":`_sub-title_5vhyo_14`,"hide-on-small":`_hide-on-small_5vhyo_21`};U();var Gw,Kw,qw,Jw,Yw,Xw=(Gw=Ww[`hide-on-small`])==null?``:Gw,Zw=(Kw=Ww.item)==null?``:Kw,Qw=(qw=Ww[`item-selected`])==null?``:qw,$w=(Jw=Ww.title)==null?``:Jw,eT=(Yw=Ww[`sub-title`])==null?``:Yw,tT=class extends Cw{constructor({vindral:e}){let t=()=>{let t=e.renditionLevels.map(t=>({rendition:t,disabled:!1,element:()=>{var n,r,i;let a=document.createElement(`div`);a.className=[Zw,t===e.currentRenditionLevel?Qw:``].join(` `);let o=document.createElement(`span`),s=document.createElement(`span`),{audio:c,video:l}=t,u=l?un(l):void 0,d=c?dn(c.sampleRate):void 0,f=ln(((n=l==null?void 0:l.bitRate)==null?0:n)+((r=c==null?void 0:c.bitRate)==null?0:r));if(l){let e=l.frameRate[0]/l.frameRate[1],t=l.frameRate[0]%l.frameRate[1]===0?`${e}p`:`${e.toFixed(2)}p`;f+=`, ${t}`}return o.innerHTML=(i=u==null?d:u)==null?``:i,o.className=$w,s.innerHTML=f,s.className=eT,a.appendChild(o),a.appendChild(s),a}}));this.maxHeight=`calc(${Math.max(110,e.mediaElement.clientHeight)}px - 46px)`,this.updateItems(t)};e.on(`rendition level`,t),e.on(`rendition levels`,t),super({label:`Rendition Levels`,items:[],onItemClick:({rendition:t})=>{t.audio&&(e.maxAudioBitRate=t.audio.bitRate),t.video&&(e.maxVideoBitRate=t.video.bitRate,e.maxSize=t.video)},onToggle:C,iconButtonType:`levels`}),this.element.classList.add(Xw)}},nT=class extends g{constructor(){super(document.createElement(`div`)),this.element.style.flexGrow=`1`}},rT={"text-track-button-item":`_text-track-button-item_1ry10_1`,"text-track-button-item-selected":`_text-track-button-item-selected_1ry10_6`};U();var iT,aT,oT=(iT=rT[`text-track-button-item`])==null?``:iT,sT=(aT=rT[`text-track-button-item-selected`])==null?``:aT,cT=class extends Cw{constructor({vindral:e}){e.on(`text tracks`,()=>{let t=e.textTracks.map(t=>({textTrack:t,disabled:!1,element:()=>{let n=document.createElement(`div`);return n.className=[oT,t===e.textTrack?sT:``].join(` `),n.innerHTML=t,n}}));t.length>0?(t.push({textTrack:void 0,disabled:!1,element:()=>{let t=document.createElement(`div`);return t.className=[oT,e.textTrack===void 0?sT:``].join(` `),t.innerHTML=`Off`,t}}),this.show()):this.hide(),this.maxHeight=`calc(${Math.max(110,e.mediaElement.clientHeight)}px - 46px)`,this.updateItems(t)}),super({label:`Text Tracks`,items:[],onItemClick:t=>e.textTrack=t.textTrack,onToggle:C,iconButtonType:`textTracks`}),this.hide()}};h();var lT=class extends g{constructor({vindral:e}){super(document.createElement(`div`)),m(this,`vindral`,void 0),m(this,`muteButton`,void 0),m(this,`updateState`,()=>{this.muteButton.setIcon(this.muteIcon())}),m(this,`onMuteClick`,()=>{this.vindral.muted=!this.vindral.muted,this.muteButton.setIcon(this.muteIcon())}),m(this,`muteIcon`,()=>this.vindral.muted?`mute`:`unmute`),this.element.style.cursor=`pointer`,this.vindral=e,this.muteButton=new rw(`Mute`,this.muteIcon(),this.onMuteClick),this.muteButton.attach(this.element)}};h();var uT,dT,fT=(uT=LC.hidden)==null?``:uT,pT=(dT=LC.bar)==null?``:dT,mT=class extends g{constructor({vindral:e,onFullscreenClicked:t,onOneToOneClicked:n,onPipClicked:r,onAirPlayClicked:i,pauseButtonEnabled:a,fullscreenButtonEnabled:o,pipButtonEnabled:s,channelSelectionEnabled:c,channelSelectionThumbnails:l,renditionLevelsEnabled:u,languagesButtonEnabled:d,textTracksButtonEnabled:f,oneToOneButtonEnabled:p,thumbnailModule:h}){super(document.createElement(`div`)),m(this,`items`,[]),m(this,`isMouseInElement`,!1),m(this,`volumeControls`,void 0),m(this,`playControls`,void 0),m(this,`oneToOneButton`,void 0),m(this,`fullscreenButton`,void 0),m(this,`airPlayButton`,void 0),m(this,`containerElement`,void 0),m(this,`hideLists`,()=>{this.items.forEach(e=>`hideList`in e&&e.hideList())}),m(this,`listButtons`,()=>this.items),m(this,`isAnyListOpen`,()=>this.items.filter(e=>`isListVisible`in e&&e.isListVisible()).length>0),m(this,`hasFocus`,()=>this.isMouseInElement||this.isAnyListOpen()),m(this,`isHidden`,()=>this.element.classList.contains(fT)),m(this,`hide`,()=>{this.containerElement.style.setProperty(`--vindral-control-bar-offset`,`0px`),this.element.classList.add(fT)}),m(this,`show`,()=>{this.containerElement.style.setProperty(`--vindral-control-bar-offset`,`-96px`),this.element.classList.remove(fT)}),m(this,`addCastButton`,()=>{let e=document.createElement(`google-cast-launcher`);this.element.insertBefore(e,this.element.lastChild)}),m(this,`addAirPlayButton`,()=>{this.airPlayButton.attachBefore(this.element,this.element.lastChild)}),m(this,`updateState`,()=>{this.playControls.updateState(),this.volumeControls.updateState()}),m(this,`onToggle`,e=>{this.listButtons().filter(t=>e!==t).forEach(e=>`hideList`in e&&e.hideList())}),this.element.className=[pT,fT].join(` `);let g=new nT;this.oneToOneButton=new rw(`One to One`,`oneToOne`,n),this.fullscreenButton=new rw(`Fullscreen`,`enter`,t),this.airPlayButton=new rw(`AirPlay`,`airPlay`,i);let _=new rw(`Picture in Picture`,`pip`,r),v=new Pw({vindral:e,enabled:c,thumbnailsEnabled:l,thumbnailModule:l?h:void 0}),y=new tT({vindral:e});this.volumeControls=new lT({vindral:e}),this.playControls=new Vw({vindral:e}),this.containerElement=e.mediaElement,a&&e.getOptions().pauseSupportEnabled&&this.playControls.attach(this.element),e.getOptions().media!==`video`&&this.volumeControls.attach(this.element),g.attach(this.element);let b=[];if(d){let t=new Bw({vindral:e});t.attach(this.element),b.push(t)}if(f){let t=new cT({vindral:e});t.attach(this.element),b.push(t)}y.attach(this.element),v.attach(this.element),_.attach(this.element),this.oneToOneButton.attach(this.element),this.fullscreenButton.attach(this.element),this.items.push(g,...b,y,v,_,this.fullscreenButton),this.items.forEach(e=>`onToggle`in e&&(e.onToggle=this.onToggle)),p||this.oneToOneButton.hide(),o||this.fullscreenButton.hide(),s||_.hide(),c||v.hide(),u||y.hide(),navigator.maxTouchPoints<1&&(this.element.addEventListener(`mouseenter`,()=>this.isMouseInElement=!0),this.element.addEventListener(`mouseleave`,()=>this.isMouseInElement=!1))}},hT={castoverlay:`_castoverlay_1n91l_1`,hidden:`_hidden_1n91l_20`};h();var gT,_T,vT=(gT=hT.hidden)==null?``:gT,yT=(_T=hT.castoverlay)==null?``:_T,bT=class extends g{constructor(){super(document.createElement(`div`)),m(this,`onClick`,void 0),m(this,`setText`,e=>{this.element.innerText=e}),m(this,`hide`,()=>this.element.classList.add(vT)),m(this,`show`,()=>this.element.classList.remove(vT)),this.element.classList.add(yT),this.element.classList.add(vT),this.element.innerText=`device`}},xT=`_button_4ybkq_21`,ST=`_image_4ybkq_98`,CT=`_overlay_4ybkq_118`,wT=`_selected_4ybkq_136`,TT=`_hidden_4ybkq_141`,ET=`_disabled_4ybkq_145`,DT={button:xT,"show-and-scaleup":`_show-and-scaleup_4ybkq_1`,image:ST,overlay:CT,selected:wT,hidden:TT,disabled:ET};h();var OT,kT,AT,jT,MT,NT=(OT=DT.button)==null?``:OT,PT=(kT=DT.hidden)==null?``:kT,FT=(AT=DT.overlay)==null?``:AT,IT=(jT=DT.image)==null?``:jT,LT=(MT=DT.selected)==null?``:MT,RT=class extends g{constructor({title:e,onClick:t,imageUrl:n,selected:r}){super(document.createElement(`button`)),m(this,`overlay`,void 0),m(this,`imageHolder1`,void 0),m(this,`imageHolder2`,void 0),m(this,`isImageHolder1Active`,!1),m(this,`loadingOverlay`,void 0),m(this,`transition`,(e,t,n)=>{t.style.backgroundImage=`url(${n})`,t.style.opacity=`1`,e.style.opacity=`0`}),m(this,`setSelected`,e=>{e?this.element.classList.add(LT):this.element.classList.remove(LT)}),m(this,`setAnimationDelay`,e=>{this.element.style.animationDelay=e}),m(this,`hideLoading`,()=>{this.loadingOverlay.hide()}),m(this,`isHidden`,()=>this.element.classList.contains(PT)),m(this,`setHidden`,e=>e?this.hide():this.show()),m(this,`hide`,()=>this.element.classList.add(PT)),m(this,`show`,()=>this.element.classList.remove(PT)),this.element.className=NT,r&&this.setSelected(r),this.element.onclick=()=>{this.loadingOverlay.show(),t()},this.imageHolder1=document.createElement(`div`),this.imageHolder1.className=IT,this.imageHolder1.style.animationFillMode=`forwards`,this.imageHolder2=document.createElement(`div`),this.imageHolder2.className=IT,this.imageHolder2.style.animationFillMode=`forwards`,n&&(this.imageHolder1.style.backgroundImage=`url(${n})`,this.isImageHolder1Active=!0),this.loadingOverlay=new ne,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=FT,this.element.appendChild(this.overlay);let i=document.createElement(`span`);i.innerHTML=e,this.element.appendChild(i),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}}},zT=`_container_btpgd_13`,BT=`_hidden_btpgd_37`,VT=`_disabled_btpgd_41`,HT={"channel-selection-overlay":`_channel-selection-overlay_btpgd_1`,container:zT,hidden:BT,disabled:VT};h();var UT,WT,GT=(UT=HT.hidden)==null?``:UT,KT=(WT=HT.container)==null?``:WT,qT=class extends g{constructor({vindral:e,thumbnailModule:t}){var n;super(document.createElement(`div`)),m(this,`thumbnailModule`,void 0),m(this,`list`,void 0),m(this,`vindral`,void 0),m(this,`setSelected`,e=>{this.list.forEach((t,n)=>{t.setSelected(n.channelId===e.channelId)}),e.channelId!==this.vindral.channelId&&(this.vindral.channelId=e.channelId)}),m(this,`isHidden`,()=>this.element.classList.contains(GT)),m(this,`setHidden`,e=>e?this.hide():this.show()),m(this,`hide`,()=>this.element.classList.add(GT)),m(this,`show`,()=>this.element.classList.remove(GT)),this.thumbnailModule=t,this.list=new Map,this.vindral=e,this.vindral.on(`context switch`,e=>{if(e===`completed`){this.list.forEach(e=>e.hideLoading());let e=this.vindral.channelId;this.vindral.channels.forEach(t=>{var n;(n=this.list.get(t))==null||n.setSelected(t.channelId===e)})}}),this.vindral.on(`channels`,()=>{this.list.forEach(e=>e.detach()),this.list.clear();let e=this.vindral.channelId;this.vindral.channels.forEach((t,n)=>{var r;if(!t.isLive)return;let i=new RT({title:t.name,onClick:()=>{this.setSelected(t)},imageUrl:(r=this.thumbnailModule)==null?void 0:r.getImageUrl(t),selected:t.channelId===e});i.setAnimationDelay(`${n*.05}s`),this.list.set(t,i)}),this.list.forEach(e=>e.attach(this.element))}),(n=this.thumbnailModule)==null||n.on(`updatedImages`,()=>{this.list.forEach((e,t)=>{var n;e.setImageUrl((n=this.thumbnailModule)==null?void 0:n.getImageUrl(t))})}),this.element.className=KT,this.show()}},JT={fullscreen:`_fullscreen_1v9d8_1`};U(),V(),h(),k();var YT,XT=(YT=JT.fullscreen)==null?``:YT,ZT=new WeakSet,QT=class e extends en{constructor(t){super(),B(this,ZT),m(this,`container`,void 0),m(this,`unload`,()=>{document.removeEventListener(`webkitfullscreenchange`,this.onChange),document.removeEventListener(`mozfullscreenchange`,this.onChange),document.removeEventListener(`fullscreenchange`,this.onChange),this.container.removeEventListener(`webkitendfullscreen`,this.onChange)}),m(this,`request`,()=>O(ZT,this,$T).call(this).catch(e=>{throw this.onChange(),e})),m(this,`exit`,()=>O(ZT,this,eE).call(this).catch(e=>{throw this.onChange(),e})),m(this,`onChange`,()=>this.emit(`on fullscreen change`,this.isFullscreen())),m(this,`isFullscreen`,()=>!!(vt()||this.container.classList.contains(XT))),m(this,`isSupported`,()=>e.isFullscreenApiSupported(this.container)||!this.isInIframe()),m(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)}};function $T(){let e=yt(this.container);return e?e():(this.container.classList.add(XT),Promise.resolve())}function eE(){let e=bt(this.container);return e?e():(this.container.classList.remove(XT),Promise.resolve())}m(QT,`isFullscreenApiSupported`,e=>xt(e));var tE={player:`_player_1vdos_1`,"one-to-one":`_one-to-one_1vdos_19`,"audio-only":`_audio-only_1vdos_28`},nE={playoverlay:`_playoverlay_1niji_1`,hidden:`_hidden_1niji_17`,"playoverlay-indicator":`_playoverlay-indicator_1niji_23`};h();var rE,iE,aE,oE=(rE=nE.hidden)==null?``:rE,sE=(iE=nE.playoverlay)==null?``:iE,cE=(aE=nE[`playoverlay-indicator`])==null?``:aE,lE=class extends g{constructor(){super(document.createElement(`div`)),m(this,`onClick`,void 0),m(this,`indicator`,document.createElement(`div`)),m(this,`isHidden`,()=>this.element.classList.contains(oE)),m(this,`setHidden`,e=>e?this.hide():this.show()),m(this,`hide`,()=>this.element.classList.add(oE)),m(this,`show`,()=>this.element.classList.remove(oE)),this.element.classList.add(sE),this.element.classList.add(oE),this.indicator.className=cE,this.element.appendChild(this.indicator),this.element.onclick=()=>{this.onClick&&this.onClick()}}};U(),h(),F();var uE=class extends en{constructor({vindral:e,refreshEveryMs:t}){super(),m(this,`thumbnails`,new Map),m(this,`interval`,void 0),m(this,`channels`,void 0),m(this,`refreshEveryMs`,void 0),m(this,`isFetching`,!1),m(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(){var e=this;return P(function*(){if(!e.isFetching){e.isFetching=!0;try{let t=e.channels.map(function(){var t=P(function*(t){let n=t.thumbnailUrls.length<2?0:Math.ceil(t.thumbnailUrls.length/2),r=t.thumbnailUrls[n];if(r){let n=yield fetch(r);if(n.ok){let r=yield n.blob(),i=URL.createObjectURL(r),a=e.thumbnails.get(t.channelId);a!=null&&a.startsWith(`blob:`)&&URL.revokeObjectURL(a),e.thumbnails.set(t.channelId,i)}}});return function(e){return t.apply(this,arguments)}}());yield Promise.all(t),e.emit(`updatedImages`)}catch(e){console.warn(`Error fetching thumbnails`,e)}e.isFetching=!1,e.hasFetched=!0}})()}};U(),h(),F(),z();var dE,fE,pE,mE=(dE=tE.player)==null?``:dE,hE=(fE=tE[`one-to-one`])==null?``:fE,gE=(pE=tE[`audio-only`])==null?``:pE,_E={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},vE=e=>!DC(e),yE=class{constructor(e,t){var n=this,r,i,a,o;m(this,`core`,void 0),m(this,`castSender`,void 0),m(this,`airPlaySender`,void 0),m(this,`options`,void 0),m(this,`state`,void 0),m(this,`playerElement`,document.createElement(`div`)),m(this,`bufferingOverlay`,void 0),m(this,`playOverlay`,void 0),m(this,`castOverlay`,new bT),m(this,`channelSelectionList`,void 0),m(this,`bar`,void 0),m(this,`stateInterval`,void 0),m(this,`thumbnailModule`,void 0),m(this,`browser`,dt()),m(this,`unload`,()=>{var e,t;this.stateInterval&&window.clearInterval(this.stateInterval),this.core.unload(),this.playerElement.remove(),(e=this.thumbnailModule)==null||e.stop(),(t=this.airPlaySender)==null||t.unload()}),m(this,`attach`,e=>{this.stateInterval&&window.clearInterval(this.stateInterval),this.stateInterval=window.setInterval(this.checkState,100),this.playerElement.remove(),e.appendChild(this.playerElement)}),m(this,`setupCastSender`,P(function*(){if(n.options.castEnabled){try{yield n.castSender.init()}catch(e){return}n.castSender.on(`connected`,()=>{n.state.fullscreen.isFullscreen()&&n.exitFullscreen(),n.core.pause(),n.castOverlay.setText(`Casting to ${n.castSender.getReceiverName()||`device`}`),n.castOverlay.show()}),n.castSender.on(`disconnected`,()=>{document.hidden||n.core.play(),n.castOverlay.hide()}),n.bar.addCastButton()}})),m(this,`setupAirPlaySender`,e=>{e.once(`available`,()=>{this.bar.addAirPlayButton()}),e.on(`connected`,()=>{this.core.mediaElement.style.display=`hidden`,this.core.pause()}),e.on(`disconnected`,()=>{this.core.mediaElement.style.display=`block`,document.hidden||this.core.play()})}),m(this,`onMouseMove`,()=>{this.options.controlsEnabled&&(this.bumpInteractTime(),this.bar.isHidden()&&this.bar.show())}),m(this,`onClick`,e=>{let t=e.detail===2&&(e.target instanceof HTMLVideoElement||e.target instanceof HTMLCanvasElement),n=this.options.fullscreenButtonEnabled!==!1&&this.options.controlsEnabled!==!1;t&&n&&this.toggleFullscreen().catch(e=>{console.error(`error`,e)})}),m(this,`togglePip`,()=>this.core.pictureInPicture.isActive()?this.core.pictureInPicture.exit():(this.triggerUserInput(),this.core.pictureInPicture.enter())),m(this,`toggleFullscreen`,P(function*(){return n.isInFullscreen()?n.exitFullscreen():n.enterFullscreen()})),m(this,`triggerUserInput`,()=>{if(this.browser.platform.isIOS){let e=this.core.muted;this.core.muted=!e,this.core.muted=e}}),m(this,`toggleOneToOne`,()=>{this.playerElement.classList.contains(hE)?this.playerElement.classList.remove(hE):this.playerElement.classList.add(hE)}),m(this,`isInFullscreen`,()=>this.state.fullscreen.isFullscreen()),m(this,`enterFullscreen`,P(function*(){n.triggerUserInput(),n.iosHackResetSize(),n.bar.fullscreenButton.setIcon(`exit`),yield n.state.fullscreen.request(),n.lockOrientation()})),m(this,`exitFullscreen`,()=>(this.bar.fullscreenButton.setIcon(`enter`),this.unlockOrientation(),this.state.fullscreen.exit())),m(this,`showAirPlayPicker`,()=>{var e;(e=this.airPlaySender)==null||e.showPlaybackTargetPicker()}),m(this,`lockOrientation`,()=>{let e=this.core.currentRenditionLevel;if(!(e!=null&&e.video))return;let t=Nt(e.video.width>e.video.height?`landscape-primary`:`portrait-primary`);t&&t.catch(()=>{})}),m(this,`unlockOrientation`,()=>{Pt()}),m(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()}),m(this,`needsThumbnails`,()=>{var e,t,n;return!((e=this.options.channelSelectionOptions)==null||(e=e.barButton)==null)&&e.enabled&&!((t=this.options.channelSelectionOptions)==null||(t=t.barButton)==null)&&t.thumbnails?!0:!!(!((n=this.options.channelSelectionOptions)==null||(n=n.list)==null)&&n.enabled)}),m(this,`bumpInteractTime`,()=>void(this.state.lastInteractionTime=Date.now()));let s=R(R({},_E),t);this.options=s,this.playerElement.className=mE,vE(e)?this.core=e:this.core=new IC(e),this.state={isBuffering:!1,fullscreen:new QT(!QT.isFullscreenApiSupported(this.playerElement)&&QT.isFullscreenApiSupported(this.core.mediaElement)?this.core.mediaElement:this.playerElement),lastInteractionTime:0},this.needsThumbnails()&&(this.thumbnailModule=new uE({vindral:this.core,refreshEveryMs:t==null?void 0:t.thumbnailUpdateInterval}),this.thumbnailModule.start()),!((r=this.options.channelSelectionOptions)==null||(r=r.list)==null)&&r.enabled&&(this.channelSelectionList=new qT({vindral:this.core,thumbnailModule:this.thumbnailModule}));let c=(t==null?void 0:t.channelSelectionEnabled)||(t==null||(i=t.channelSelectionOptions)==null||(i=i.barButton)==null?void 0:i.enabled),l=t==null||(a=t.channelSelectionOptions)==null||(a=a.barButton)==null?void 0:a.thumbnails;this.bar=new mT(R(R({vindral:this.core,thumbnailModule:this.thumbnailModule},s),{},{channelSelectionEnabled:c,channelSelectionThumbnails:l,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:()=>void this.toggleFullscreen().catch(e=>console.error(`error`,e)),onOneToOneClicked:()=>this.toggleOneToOne(),onPipClicked:()=>void this.togglePip().catch(e=>console.error(`error`,e)),onAirPlayClicked:()=>this.showAirPlayPicker()})),this.core.media===`audio`&&(this.playerElement.classList.add(gE),this.options.controlsEnabled&&this.bar.show());let u=this.core.getCastOptions();this.castSender=new jr({background:this.options.castBackground,receiverApplicationId:this.options.castReceiverApplicationId,options:u}),this.setupCastSender(),this.options.airPlayButtonEnabled&&Or.isAirPlaySupported()&&(this.airPlaySender=new Or({url:u.url,channelId:u.channelId,authenticationToken:u.authenticationToken,container:this.playerElement}),this.setupAirPlaySender(this.airPlaySender)),this.core.on(`needs user input`,e=>{if(this.bar.updateState(),e.forVideo&&this.core.media!==`audio`||!this.options.controlsEnabled){var t;(t=this.playOverlay)==null||t.show();return}e.forAudio&&this.options.controlsEnabled&&(this.state.lastInteractionTime=0,this.bar.show())}),this.core.on(`volume state`,()=>{this.bar.updateState()}),this.core.on(`playback state`,e=>{switch(this.bar.updateState(),e){case`paused`:var t;if(this.bumpInteractTime(),(t=this.bufferingOverlay)==null||t.hide(),this.options.controlsEnabled&&this.bar.show(),this.core.media!==`audio`||!this.options.controlsEnabled){var n;(n=this.playOverlay)==null||n.show()}break;case`playing`:var r;if(this.options.controlsEnabled){var i;(i=this.playOverlay)==null||i.hide()}(r=this.bufferingOverlay)==null||r.hide(),this.castOverlay.hide();break;case`buffering`:{var a,o;(a=this.bufferingOverlay)==null||a.show();let e=this.core.videoBufferedRanges[this.core.videoBufferedRanges.length-1],t=!e||e.start>this.core.currentTime;(o=this.bufferingOverlay)==null||o.fullscreen(t);break}}}),this.core.attach(this.playerElement),this.castOverlay.attach(this.playerElement),this.options.bufferingOverlayEnabled&&(this.bufferingOverlay=new ne,this.bufferingOverlay.attach(this.playerElement)),this.options.playOverlayEnabled&&(this.playOverlay=new lE,this.playOverlay.attach(this.playerElement),this.playOverlay.onClick=()=>{var e;this.core.userInput(),(e=this.playOverlay)==null||e.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`,e=>{e?this.bar.fullscreenButton.setIcon(`exit`):this.bar.fullscreenButton.setIcon(`enter`)}),(o=this.bufferingOverlay)==null||o.fullscreen(!0)}iosHackResetSize(){this.core.emitter.emit(`ios-hack: reset size`)}};e.AUTHENTICATION_EXPIRED_CODE=di,e.AUTHENTICATION_FAILED_CODE=ui,e.ApiClient=Pu,e.CHANNEL_NOT_FOUND_CODE=fi,e.CHANNEL_NOT_LIVE_CODE=pi,e.CONNECTION_FAILED_AFTER_RETRIES_CODE=li,e.CONNECTION_FAILED_CODE=ci,e.CastSender=jr,e.DISCONNECTED_BY_EDGE=yi,e.INACTIVITY_CODE=hi,e.NO_INCOMING_DATA=mi,e.Player=yE,e.Vindral=IC,e.VindralError=W});
1332
+ </g>`},tT={viewBox:`-10 -10 44 44`,content:`<path fill="white" d="M19 7h-8v6h8V7zm2-4H3c-1.1 0-2 .9-2 2v14c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98V5c0-1.1-.9-2-2-2zm0 16.01H3V4.98h18v14.03z"/>`},nT={viewBox:`-10 -10 45 45`,content:`<path fill="white" d="M20 8H4V6h16v2zm-2-6H6v2h12V2zm4 10v8c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2zm-6 4l-6-3.27v6.53L16 16z"/>`},rT={viewBox:`-8 -8 40 40`,content:`<path fill="white" d="M19 4H5c-1.11 0-2 .9-2 2v12c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 11H9.5v-2h-2v2H6V9h1.5v2.5h2V9H11v6zm7-1c0 .55-.45 1-1 1h-.75v1.5h-1.5V15H14c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v4zm-3.5-.5h2v-3h-2v3z"/>`},iT={viewBox:`-8 -8 40 40`,content:`<path fill="white" d="M14.4 6L14 4H5v17h2v-7h5.6l.4 2h7V6z"/>`},aT={viewBox:`-8 -8 40 40`,content:`<path fill="white" d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM4 12h4v2H4v-2zm10 6H4v-2h10v2zm6 0h-4v-2h4v2zm0-4H10v-2h10v2z"></path>`},oT={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"/>`};h();var sT,cT={enter:$w,exit:eT,pip:tT,channels:nT,languages:iT,textTracks:aT,levels:rT,oneToOne:Qw,mute:Jw,unmute:Zw,pause:Yw,play:Xw,airPlay:oT},lT=(sT=qw[`icon-button`])==null?``:sT,uT=class extends g{constructor(e,t,n){super(document.createElement(`div`)),m(this,`iconElement`,void 0),m(this,`setIcon`,e=>{this.iconElement.setAttribute(`viewBox`,cT[e].viewBox),this.iconElement.innerHTML=cT[e].content}),m(this,`isHidden`,()=>this.element.style.display===`none`),m(this,`setHidden`,e=>e?this.hide():this.show()),m(this,`show`,()=>void(this.element.style.display=`block`)),m(this,`hide`,()=>void(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`,lT),this.setIcon(t),this.element.addEventListener(`click`,n),this.element.appendChild(this.iconElement)}},dT=`_list_1vkum_1`,fT=`_hidden_1vkum_20`,pT={list:dT,"list-item":`_list-item_1vkum_12`,"list-item-disabled":`_list-item-disabled_1vkum_16`,hidden:fT};h();var mT,hT,gT,_T,vT=(mT=pT.hidden)==null?``:mT,yT=(hT=pT.list)==null?``:hT,bT=(gT=pT[`list-item`])==null?``:gT,xT=(_T=pT[`list-item-disabled`])==null?``:_T,ST=class extends g{constructor({items:e,onItemClick:t,classNames:n=[],maxHeight:r}){super(document.createElement(`div`)),m(this,`onItemClick`,void 0),m(this,`updateItems`,e=>{for(;this.element.firstChild;){var t;(t=this.element.lastChild)==null||t.remove()}e.forEach(e=>{let t=document.createElement(`div`);e.disabled||t.addEventListener(`click`,()=>this.onItemClick(e)),t.className=[bT,e.disabled?xT:``].join(` `),t.appendChild(e.element()),this.element.appendChild(t)})}),m(this,`hide`,()=>this.element.classList.add(vT)),m(this,`show`,()=>this.element.classList.remove(vT)),this.element.className=[yT,...n].join(` `),this.onItemClick=t,this.updateItems(e),r&&(this.element.style.maxHeight=r)}},CT={container:`_container_13xnz_1`,hidden:`_hidden_13xnz_6`,list:`_list_13xnz_10`};h();var wT,TT,ET,DT=(wT=CT.list)==null?``:wT,OT=(TT=CT.hidden)==null?``:TT,kT=(ET=CT.container)==null?``:ET,AT=class extends g{constructor({label:e,items:t,onItemClick:n,iconButtonType:r,onToggle:i}){super(document.createElement(`div`)),m(this,`iconButton`,void 0),m(this,`onItemClick`,void 0),m(this,`onToggle`,void 0),m(this,`maxHeight`,void 0),m(this,`items`,void 0),m(this,`list`,void 0),m(this,`onButtonClick`,()=>{this.toggleShowChannels(),this.onToggle(this)}),m(this,`toggleShowChannels`,()=>{this.list?this.hideList():this.showList()}),m(this,`handleItemClick`,e=>{this.toggleShowChannels(),this.onItemClick(e)}),m(this,`showList`,()=>{this.list=new ST({items:this.items,onItemClick:this.handleItemClick,classNames:[DT],maxHeight:this.maxHeight}),this.list.attach(this.element)}),m(this,`hideList`,()=>{var e;(e=this.list)==null||e.detach(),this.list=void 0}),m(this,`updateItems`,e=>{var t;this.items=e,(t=this.list)==null||t.updateItems(e)}),m(this,`isListVisible`,()=>this.list!==void 0),m(this,`hide`,()=>{OT&&this.element.classList.add(OT)}),m(this,`show`,()=>{OT&&this.element.classList.remove(OT)}),this.element.className=kT,this.onItemClick=n,this.onToggle=i,this.items=t,this.iconButton=new uT(e,r,this.onButtonClick),this.iconButton.attach(this.element)}};H();var jT,MT,NT,PT,FT,IT=(jT=Kw[`hide-on-small`])==null?``:jT,LT=(MT=Kw[`channel-selection-item`])==null?``:MT,RT=(NT=Kw[`channel-selection-item-selected`])==null?``:NT,zT=(PT=Kw[`channel-selection-item-image`])==null?``:PT,BT=(FT=Kw.withThumbnails)==null?``:FT,VT=class extends AT{constructor({vindral:e,enabled:t,thumbnailsEnabled:n,thumbnailModule:r}){e.on(`channels`,()=>{let i=e.channels.map(t=>({channel:t,disabled:!t.isLive,element:()=>{let i=document.createElement(`div`);if(i.className=[LT,t.channelId===e.channelId?RT:``].join(` `),r&&n){i.classList.add(BT);let e=document.createElement(`p`);e.innerHTML=t.name,i.appendChild(e);let n=r.getImageUrl(t),a=document.createElement(`img`);n&&(a.className=zT,a.src=n,i.style.backgroundImage=`url(${n})`)}else i.innerHTML=t.name;return i}}));this.maxHeight=`calc(${Math.max(110,e.mediaElement.clientHeight)}px - 46px)`,this.updateItems(i),i.length>1&&t!==!1?this.show():this.hide()}),super({label:`Channel List`,items:[],onItemClick:t=>e.channelId=t.channel.channelId,onToggle:S,iconButtonType:`channels`}),this.element.classList.add(IT),this.hide()}},HT={"language-button-item":`_language-button-item_1dov5_1`,"language-button-item-selected":`_language-button-item-selected_1dov5_6`};H();var UT,WT,GT=(UT=HT[`language-button-item`])==null?``:UT,KT=(WT=HT[`language-button-item-selected`])==null?``:WT,qT=class extends AT{constructor({vindral:e}){e.on(`languages`,()=>{let t=e.languages.map(t=>({language:t,disabled:!1,element:()=>{let n=document.createElement(`div`);return n.className=[GT,t===e.language?KT:``].join(` `),n.innerHTML=t,n}}));this.maxHeight=`calc(${Math.max(110,e.mediaElement.clientHeight)}px - 46px)`,this.updateItems(t),t.length>0?this.show():this.hide()}),super({label:`Language`,items:[],onItemClick:t=>e.language=t.language,onToggle:S,iconButtonType:`languages`}),this.hide()}};h();var JT=class extends g{constructor({vindral:e}){super(document.createElement(`div`)),m(this,`vindral`,void 0),m(this,`playButton`,void 0),m(this,`updateState`,()=>{this.playButton.setIcon(this.playIcon())}),m(this,`onPlayClick`,()=>{this.vindral.playbackState===`paused`?this.vindral.play():this.vindral.pause(),this.playButton.setIcon(this.playIcon())}),m(this,`playIcon`,()=>this.vindral.playbackState===`paused`?`play`:`pause`),this.element.style.cursor=`pointer`,this.vindral=e,this.playButton=new uT(`Play`,this.playIcon(),this.onPlayClick),this.playButton.attach(this.element)}},YT=`_item_5vhyo_1`,XT=`_title_5vhyo_10`,ZT={item:YT,"item-selected":`_item-selected_5vhyo_6`,title:XT,"sub-title":`_sub-title_5vhyo_14`,"hide-on-small":`_hide-on-small_5vhyo_21`};H();var QT,$T,eE,tE,nE,rE=(QT=ZT[`hide-on-small`])==null?``:QT,iE=($T=ZT.item)==null?``:$T,aE=(eE=ZT[`item-selected`])==null?``:eE,oE=(tE=ZT.title)==null?``:tE,sE=(nE=ZT[`sub-title`])==null?``:nE,cE=class extends AT{constructor({vindral:e}){let t=()=>{let t=e.renditionLevels.map(t=>({rendition:t,disabled:!1,element:()=>{var n,r,i;let a=document.createElement(`div`);a.className=[iE,t===e.currentRenditionLevel?aE:``].join(` `);let o=document.createElement(`span`),s=document.createElement(`span`),{audio:c,video:l}=t,u=l?dn(l):void 0,d=c?fn(c.sampleRate):void 0,f=un(((n=l==null?void 0:l.bitRate)==null?0:n)+((r=c==null?void 0:c.bitRate)==null?0:r));if(l){let e=l.frameRate[0]/l.frameRate[1],t=l.frameRate[0]%l.frameRate[1]===0?`${e}p`:`${e.toFixed(2)}p`;f+=`, ${t}`}return o.innerHTML=(i=u==null?d:u)==null?``:i,o.className=oE,s.innerHTML=f,s.className=sE,a.appendChild(o),a.appendChild(s),a}}));this.maxHeight=`calc(${Math.max(110,e.mediaElement.clientHeight)}px - 46px)`,this.updateItems(t)};e.on(`rendition level`,t),e.on(`rendition levels`,t),super({label:`Rendition Levels`,items:[],onItemClick:({rendition:t})=>{t.audio&&(e.maxAudioBitRate=t.audio.bitRate),t.video&&(e.maxVideoBitRate=t.video.bitRate,e.maxSize=t.video)},onToggle:S,iconButtonType:`levels`}),this.element.classList.add(rE)}},lE=class extends g{constructor(){super(document.createElement(`div`)),this.element.style.flexGrow=`1`}},uE={"text-track-button-item":`_text-track-button-item_1ry10_1`,"text-track-button-item-selected":`_text-track-button-item-selected_1ry10_6`};H();var dE,fE,pE=(dE=uE[`text-track-button-item`])==null?``:dE,mE=(fE=uE[`text-track-button-item-selected`])==null?``:fE,hE=class extends AT{constructor({vindral:e}){e.on(`text tracks`,()=>{let t=e.textTracks.map(t=>({textTrack:t,disabled:!1,element:()=>{let n=document.createElement(`div`);return n.className=[pE,t===e.textTrack?mE:``].join(` `),n.innerHTML=t,n}}));t.length>0?(t.push({textTrack:void 0,disabled:!1,element:()=>{let t=document.createElement(`div`);return t.className=[pE,e.textTrack===void 0?mE:``].join(` `),t.innerHTML=`Off`,t}}),this.show()):this.hide(),this.maxHeight=`calc(${Math.max(110,e.mediaElement.clientHeight)}px - 46px)`,this.updateItems(t)}),super({label:`Text Tracks`,items:[],onItemClick:t=>e.textTrack=t.textTrack,onToggle:S,iconButtonType:`textTracks`}),this.hide()}};h();var gE=class extends g{constructor({vindral:e}){super(document.createElement(`div`)),m(this,`vindral`,void 0),m(this,`muteButton`,void 0),m(this,`updateState`,()=>{this.muteButton.setIcon(this.muteIcon())}),m(this,`onMuteClick`,()=>{this.vindral.muted=!this.vindral.muted,this.muteButton.setIcon(this.muteIcon())}),m(this,`muteIcon`,()=>this.vindral.muted?`mute`:`unmute`),this.element.style.cursor=`pointer`,this.vindral=e,this.muteButton=new uT(`Mute`,this.muteIcon(),this.onMuteClick),this.muteButton.attach(this.element)}};h();var _E,vE,yE=(_E=Ww.hidden)==null?``:_E,bE=(vE=Ww.bar)==null?``:vE,xE=class extends g{constructor({vindral:e,onFullscreenClicked:t,onOneToOneClicked:n,onPipClicked:r,onAirPlayClicked:i,pauseButtonEnabled:a,fullscreenButtonEnabled:o,pipButtonEnabled:s,channelSelectionEnabled:c,channelSelectionThumbnails:l,renditionLevelsEnabled:u,languagesButtonEnabled:d,textTracksButtonEnabled:f,oneToOneButtonEnabled:p,thumbnailModule:h}){super(document.createElement(`div`)),m(this,`items`,[]),m(this,`isMouseInElement`,!1),m(this,`volumeControls`,void 0),m(this,`playControls`,void 0),m(this,`oneToOneButton`,void 0),m(this,`fullscreenButton`,void 0),m(this,`airPlayButton`,void 0),m(this,`containerElement`,void 0),m(this,`hideLists`,()=>{this.items.forEach(e=>`hideList`in e&&e.hideList())}),m(this,`listButtons`,()=>this.items),m(this,`isAnyListOpen`,()=>this.items.filter(e=>`isListVisible`in e&&e.isListVisible()).length>0),m(this,`hasFocus`,()=>this.isMouseInElement||this.isAnyListOpen()),m(this,`isHidden`,()=>this.element.classList.contains(yE)),m(this,`hide`,()=>{this.containerElement.style.setProperty(`--vindral-control-bar-offset`,`0px`),this.element.classList.add(yE)}),m(this,`show`,()=>{this.containerElement.style.setProperty(`--vindral-control-bar-offset`,`-96px`),this.element.classList.remove(yE)}),m(this,`addCastButton`,()=>{let e=document.createElement(`google-cast-launcher`);this.element.insertBefore(e,this.element.lastChild)}),m(this,`addAirPlayButton`,()=>{this.airPlayButton.attachBefore(this.element,this.element.lastChild)}),m(this,`updateState`,()=>{this.playControls.updateState(),this.volumeControls.updateState()}),m(this,`onToggle`,e=>{this.listButtons().filter(t=>e!==t).forEach(e=>`hideList`in e&&e.hideList())}),this.element.className=[bE,yE].join(` `);let g=new lE;this.oneToOneButton=new uT(`One to One`,`oneToOne`,n),this.fullscreenButton=new uT(`Fullscreen`,`enter`,t),this.airPlayButton=new uT(`AirPlay`,`airPlay`,i);let _=new uT(`Picture in Picture`,`pip`,r),v=new VT({vindral:e,enabled:c,thumbnailsEnabled:l,thumbnailModule:l?h:void 0}),y=new cE({vindral:e});this.volumeControls=new gE({vindral:e}),this.playControls=new JT({vindral:e}),this.containerElement=e.mediaElement,a&&e.getOptions().pauseSupportEnabled&&this.playControls.attach(this.element),e.getOptions().media!==`video`&&this.volumeControls.attach(this.element),g.attach(this.element);let b=[];if(d){let t=new qT({vindral:e});t.attach(this.element),b.push(t)}if(f){let t=new hE({vindral:e});t.attach(this.element),b.push(t)}y.attach(this.element),v.attach(this.element),_.attach(this.element),this.oneToOneButton.attach(this.element),this.fullscreenButton.attach(this.element),this.items.push(g,...b,y,v,_,this.fullscreenButton),this.items.forEach(e=>`onToggle`in e&&(e.onToggle=this.onToggle)),p||this.oneToOneButton.hide(),o||this.fullscreenButton.hide(),s||_.hide(),c||v.hide(),u||y.hide(),navigator.maxTouchPoints<1&&(this.element.addEventListener(`mouseenter`,()=>this.isMouseInElement=!0),this.element.addEventListener(`mouseleave`,()=>this.isMouseInElement=!1))}},SE={castoverlay:`_castoverlay_1n91l_1`,hidden:`_hidden_1n91l_20`};h();var CE,wE,TE=(CE=SE.hidden)==null?``:CE,EE=(wE=SE.castoverlay)==null?``:wE,DE=class extends g{constructor(){super(document.createElement(`div`)),m(this,`onClick`,void 0),m(this,`setText`,e=>{this.element.innerText=e}),m(this,`hide`,()=>this.element.classList.add(TE)),m(this,`show`,()=>this.element.classList.remove(TE)),this.element.classList.add(EE),this.element.classList.add(TE),this.element.innerText=`device`}},OE=`_button_4ybkq_21`,kE=`_image_4ybkq_98`,AE=`_overlay_4ybkq_118`,jE=`_selected_4ybkq_136`,ME=`_hidden_4ybkq_141`,NE=`_disabled_4ybkq_145`,PE={button:OE,"show-and-scaleup":`_show-and-scaleup_4ybkq_1`,image:kE,overlay:AE,selected:jE,hidden:ME,disabled:NE};h();var FE,IE,LE,RE,zE,BE=(FE=PE.button)==null?``:FE,VE=(IE=PE.hidden)==null?``:IE,HE=(LE=PE.overlay)==null?``:LE,UE=(RE=PE.image)==null?``:RE,WE=(zE=PE.selected)==null?``:zE,GE=class extends g{constructor({title:e,onClick:t,imageUrl:n,selected:r}){super(document.createElement(`button`)),m(this,`overlay`,void 0),m(this,`imageHolder1`,void 0),m(this,`imageHolder2`,void 0),m(this,`isImageHolder1Active`,!1),m(this,`loadingOverlay`,void 0),m(this,`transition`,(e,t,n)=>{t.style.backgroundImage=`url(${n})`,t.style.opacity=`1`,e.style.opacity=`0`}),m(this,`setSelected`,e=>{e?this.element.classList.add(WE):this.element.classList.remove(WE)}),m(this,`setAnimationDelay`,e=>{this.element.style.animationDelay=e}),m(this,`hideLoading`,()=>{this.loadingOverlay.hide()}),m(this,`isHidden`,()=>this.element.classList.contains(VE)),m(this,`setHidden`,e=>e?this.hide():this.show()),m(this,`hide`,()=>this.element.classList.add(VE)),m(this,`show`,()=>this.element.classList.remove(VE)),this.element.className=BE,r&&this.setSelected(r),this.element.onclick=()=>{this.loadingOverlay.show(),t()},this.imageHolder1=document.createElement(`div`),this.imageHolder1.className=UE,this.imageHolder1.style.animationFillMode=`forwards`,this.imageHolder2=document.createElement(`div`),this.imageHolder2.className=UE,this.imageHolder2.style.animationFillMode=`forwards`,n&&(this.imageHolder1.style.backgroundImage=`url(${n})`,this.isImageHolder1Active=!0),this.loadingOverlay=new re,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=HE,this.element.appendChild(this.overlay);let i=document.createElement(`span`);i.innerHTML=e,this.element.appendChild(i),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}}},KE=`_container_btpgd_13`,qE=`_hidden_btpgd_37`,JE=`_disabled_btpgd_41`,YE={"channel-selection-overlay":`_channel-selection-overlay_btpgd_1`,container:KE,hidden:qE,disabled:JE};h();var XE,ZE,QE=(XE=YE.hidden)==null?``:XE,$E=(ZE=YE.container)==null?``:ZE,eD=class extends g{constructor({vindral:e,thumbnailModule:t}){var n;super(document.createElement(`div`)),m(this,`thumbnailModule`,void 0),m(this,`list`,void 0),m(this,`vindral`,void 0),m(this,`setSelected`,e=>{this.list.forEach((t,n)=>{t.setSelected(n.channelId===e.channelId)}),e.channelId!==this.vindral.channelId&&(this.vindral.channelId=e.channelId)}),m(this,`isHidden`,()=>this.element.classList.contains(QE)),m(this,`setHidden`,e=>e?this.hide():this.show()),m(this,`hide`,()=>this.element.classList.add(QE)),m(this,`show`,()=>this.element.classList.remove(QE)),this.thumbnailModule=t,this.list=new Map,this.vindral=e,this.vindral.on(`context switch`,e=>{if(e===`completed`){this.list.forEach(e=>e.hideLoading());let e=this.vindral.channelId;this.vindral.channels.forEach(t=>{var n;(n=this.list.get(t))==null||n.setSelected(t.channelId===e)})}}),this.vindral.on(`channels`,()=>{this.list.forEach(e=>e.detach()),this.list.clear();let e=this.vindral.channelId;this.vindral.channels.forEach((t,n)=>{var r;if(!t.isLive)return;let i=new GE({title:t.name,onClick:()=>{this.setSelected(t)},imageUrl:(r=this.thumbnailModule)==null?void 0:r.getImageUrl(t),selected:t.channelId===e});i.setAnimationDelay(`${n*.05}s`),this.list.set(t,i)}),this.list.forEach(e=>e.attach(this.element))}),(n=this.thumbnailModule)==null||n.on(`updatedImages`,()=>{this.list.forEach((e,t)=>{var n;e.setImageUrl((n=this.thumbnailModule)==null?void 0:n.getImageUrl(t))})}),this.element.className=$E,this.show()}},tD={fullscreen:`_fullscreen_1v9d8_1`};H(),B(),h(),O();var nD,rD=(nD=tD.fullscreen)==null?``:nD,iD=new WeakSet,aD=class e extends tn{constructor(t){super(),z(this,iD),m(this,`container`,void 0),m(this,`unload`,()=>{document.removeEventListener(`webkitfullscreenchange`,this.onChange),document.removeEventListener(`mozfullscreenchange`,this.onChange),document.removeEventListener(`fullscreenchange`,this.onChange),this.container.removeEventListener(`webkitendfullscreen`,this.onChange)}),m(this,`request`,()=>D(iD,this,oD).call(this).catch(e=>{throw this.onChange(),e})),m(this,`exit`,()=>D(iD,this,sD).call(this).catch(e=>{throw this.onChange(),e})),m(this,`onChange`,()=>this.emit(`on fullscreen change`,this.isFullscreen())),m(this,`isFullscreen`,()=>!!(yt()||this.container.classList.contains(rD))),m(this,`isSupported`,()=>e.isFullscreenApiSupported(this.container)||!this.isInIframe()),m(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)}};function oD(){let e=bt(this.container);return e?e():(this.container.classList.add(rD),Promise.resolve())}function sD(){let e=xt(this.container);return e?e():(this.container.classList.remove(rD),Promise.resolve())}m(aD,`isFullscreenApiSupported`,e=>St(e));var cD={player:`_player_1vdos_1`,"one-to-one":`_one-to-one_1vdos_19`,"audio-only":`_audio-only_1vdos_28`},lD={playoverlay:`_playoverlay_1niji_1`,hidden:`_hidden_1niji_17`,"playoverlay-indicator":`_playoverlay-indicator_1niji_23`};h();var uD,dD,fD,pD=(uD=lD.hidden)==null?``:uD,mD=(dD=lD.playoverlay)==null?``:dD,hD=(fD=lD[`playoverlay-indicator`])==null?``:fD,gD=class extends g{constructor(){super(document.createElement(`div`)),m(this,`onClick`,void 0),m(this,`indicator`,document.createElement(`div`)),m(this,`isHidden`,()=>this.element.classList.contains(pD)),m(this,`setHidden`,e=>e?this.hide():this.show()),m(this,`hide`,()=>this.element.classList.add(pD)),m(this,`show`,()=>this.element.classList.remove(pD)),this.element.classList.add(mD),this.element.classList.add(pD),this.indicator.className=hD,this.element.appendChild(this.indicator),this.element.onclick=()=>{this.onClick&&this.onClick()}}};H(),h(),P();var _D=class extends tn{constructor({vindral:e,refreshEveryMs:t}){super(),m(this,`thumbnails`,new Map),m(this,`interval`,void 0),m(this,`channels`,void 0),m(this,`refreshEveryMs`,void 0),m(this,`isFetching`,!1),m(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(){var e=this;return N(function*(){if(!e.isFetching){e.isFetching=!0;try{let t=e.channels.map(function(){var t=N(function*(t){let n=t.thumbnailUrls.length<2?0:Math.ceil(t.thumbnailUrls.length/2),r=t.thumbnailUrls[n];if(r){let n=yield fetch(r);if(n.ok){let r=yield n.blob(),i=URL.createObjectURL(r),a=e.thumbnails.get(t.channelId);a!=null&&a.startsWith(`blob:`)&&URL.revokeObjectURL(a),e.thumbnails.set(t.channelId,i)}}});return function(e){return t.apply(this,arguments)}}());yield Promise.all(t),e.emit(`updatedImages`)}catch(e){console.warn(`Error fetching thumbnails`,e)}e.isFetching=!1,e.hasFetched=!0}})()}};H(),h(),P(),R();var vD,yD,bD,xD=(vD=cD.player)==null?``:vD,SD=(yD=cD[`one-to-one`])==null?``:yD,CD=(bD=cD[`audio-only`])==null?``:bD,wD={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},TD=e=>!Pw(e),ED=class{constructor(e,t){var n=this,r,i,a,o;m(this,`core`,void 0),m(this,`castSender`,void 0),m(this,`airPlaySender`,void 0),m(this,`options`,void 0),m(this,`state`,void 0),m(this,`playerElement`,document.createElement(`div`)),m(this,`bufferingOverlay`,void 0),m(this,`playOverlay`,void 0),m(this,`castOverlay`,new DE),m(this,`channelSelectionList`,void 0),m(this,`bar`,void 0),m(this,`stateInterval`,void 0),m(this,`thumbnailModule`,void 0),m(this,`browser`,ft()),m(this,`unload`,()=>{var e,t;this.stateInterval&&window.clearInterval(this.stateInterval),this.core.unload(),this.playerElement.remove(),(e=this.thumbnailModule)==null||e.stop(),(t=this.airPlaySender)==null||t.unload()}),m(this,`attach`,e=>{this.stateInterval&&window.clearInterval(this.stateInterval),this.stateInterval=window.setInterval(this.checkState,100),this.playerElement.remove(),e.appendChild(this.playerElement)}),m(this,`setupCastSender`,N(function*(){if(n.options.castEnabled){try{yield n.castSender.init()}catch(e){return}n.castSender.on(`connected`,()=>{n.state.fullscreen.isFullscreen()&&n.exitFullscreen(),n.core.pause(),n.castOverlay.setText(`Casting to ${n.castSender.getReceiverName()||`device`}`),n.castOverlay.show()}),n.castSender.on(`disconnected`,()=>{document.hidden||n.core.play(),n.castOverlay.hide()}),n.bar.addCastButton()}})),m(this,`setupAirPlaySender`,e=>{e.once(`available`,()=>{this.bar.addAirPlayButton()}),e.on(`connected`,()=>{this.core.mediaElement.style.display=`hidden`,this.core.pause()}),e.on(`disconnected`,()=>{this.core.mediaElement.style.display=`block`,document.hidden||this.core.play()})}),m(this,`onMouseMove`,()=>{this.options.controlsEnabled&&(this.bumpInteractTime(),this.bar.isHidden()&&this.bar.show())}),m(this,`onClick`,e=>{let t=e.detail===2&&(e.target instanceof HTMLVideoElement||e.target instanceof HTMLCanvasElement),n=this.options.fullscreenButtonEnabled!==!1&&this.options.controlsEnabled!==!1;t&&n&&this.toggleFullscreen().catch(e=>{console.error(`error`,e)})}),m(this,`togglePip`,()=>this.core.pictureInPicture.isActive()?this.core.pictureInPicture.exit():(this.triggerUserInput(),this.core.pictureInPicture.enter())),m(this,`toggleFullscreen`,N(function*(){return n.isInFullscreen()?n.exitFullscreen():n.enterFullscreen()})),m(this,`triggerUserInput`,()=>{if(this.browser.platform.isIOS){let e=this.core.muted;this.core.muted=!e,this.core.muted=e}}),m(this,`toggleOneToOne`,()=>{this.playerElement.classList.contains(SD)?this.playerElement.classList.remove(SD):this.playerElement.classList.add(SD)}),m(this,`isInFullscreen`,()=>this.state.fullscreen.isFullscreen()),m(this,`enterFullscreen`,N(function*(){n.triggerUserInput(),n.iosHackResetSize(),n.bar.fullscreenButton.setIcon(`exit`),yield n.state.fullscreen.request(),n.lockOrientation()})),m(this,`exitFullscreen`,()=>(this.bar.fullscreenButton.setIcon(`enter`),this.unlockOrientation(),this.state.fullscreen.exit())),m(this,`showAirPlayPicker`,()=>{var e;(e=this.airPlaySender)==null||e.showPlaybackTargetPicker()}),m(this,`lockOrientation`,()=>{let e=this.core.currentRenditionLevel;if(!(e!=null&&e.video))return;let t=Pt(e.video.width>e.video.height?`landscape-primary`:`portrait-primary`);t&&t.catch(()=>{})}),m(this,`unlockOrientation`,()=>{Ft()}),m(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()}),m(this,`needsThumbnails`,()=>{var e,t,n;return!((e=this.options.channelSelectionOptions)==null||(e=e.barButton)==null)&&e.enabled&&!((t=this.options.channelSelectionOptions)==null||(t=t.barButton)==null)&&t.thumbnails?!0:!!(!((n=this.options.channelSelectionOptions)==null||(n=n.list)==null)&&n.enabled)}),m(this,`bumpInteractTime`,()=>void(this.state.lastInteractionTime=Date.now()));let s=L(L({},wD),t);this.options=s,this.playerElement.className=xD,TD(e)?this.core=e:this.core=new Uw(e),this.state={isBuffering:!1,fullscreen:new aD(!aD.isFullscreenApiSupported(this.playerElement)&&aD.isFullscreenApiSupported(this.core.mediaElement)?this.core.mediaElement:this.playerElement),lastInteractionTime:0},this.needsThumbnails()&&(this.thumbnailModule=new _D({vindral:this.core,refreshEveryMs:t==null?void 0:t.thumbnailUpdateInterval}),this.thumbnailModule.start()),!((r=this.options.channelSelectionOptions)==null||(r=r.list)==null)&&r.enabled&&(this.channelSelectionList=new eD({vindral:this.core,thumbnailModule:this.thumbnailModule}));let c=(t==null?void 0:t.channelSelectionEnabled)||(t==null||(i=t.channelSelectionOptions)==null||(i=i.barButton)==null?void 0:i.enabled),l=t==null||(a=t.channelSelectionOptions)==null||(a=a.barButton)==null?void 0:a.thumbnails;this.bar=new xE(L(L({vindral:this.core,thumbnailModule:this.thumbnailModule},s),{},{channelSelectionEnabled:c,channelSelectionThumbnails:l,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:()=>void this.toggleFullscreen().catch(e=>console.error(`error`,e)),onOneToOneClicked:()=>this.toggleOneToOne(),onPipClicked:()=>void this.togglePip().catch(e=>console.error(`error`,e)),onAirPlayClicked:()=>this.showAirPlayPicker()})),this.core.media===`audio`&&(this.playerElement.classList.add(CD),this.options.controlsEnabled&&this.bar.show());let u=this.core.getCastOptions();this.castSender=new Mr({background:this.options.castBackground,receiverApplicationId:this.options.castReceiverApplicationId,options:u}),this.setupCastSender(),this.options.airPlayButtonEnabled&&kr.isAirPlaySupported()&&(this.airPlaySender=new kr({url:u.url,channelId:u.channelId,authenticationToken:u.authenticationToken,container:this.playerElement}),this.setupAirPlaySender(this.airPlaySender)),this.core.on(`needs user input`,e=>{if(this.bar.updateState(),e.forVideo&&this.core.media!==`audio`||!this.options.controlsEnabled){var t;(t=this.playOverlay)==null||t.show();return}e.forAudio&&this.options.controlsEnabled&&(this.state.lastInteractionTime=0,this.bar.show())}),this.core.on(`volume state`,()=>{this.bar.updateState()}),this.core.on(`playback state`,e=>{switch(this.bar.updateState(),e){case`paused`:var t;if(this.bumpInteractTime(),(t=this.bufferingOverlay)==null||t.hide(),this.options.controlsEnabled&&this.bar.show(),this.core.media!==`audio`||!this.options.controlsEnabled){var n;(n=this.playOverlay)==null||n.show()}break;case`playing`:var r;if(this.options.controlsEnabled){var i;(i=this.playOverlay)==null||i.hide()}(r=this.bufferingOverlay)==null||r.hide(),this.castOverlay.hide();break;case`buffering`:{var a,o;(a=this.bufferingOverlay)==null||a.show();let e=this.core.videoBufferedRanges[this.core.videoBufferedRanges.length-1],t=!e||e.start>this.core.currentTime;(o=this.bufferingOverlay)==null||o.fullscreen(t);break}}}),this.core.attach(this.playerElement),this.castOverlay.attach(this.playerElement),this.options.bufferingOverlayEnabled&&(this.bufferingOverlay=new re,this.bufferingOverlay.attach(this.playerElement)),this.options.playOverlayEnabled&&(this.playOverlay=new gD,this.playOverlay.attach(this.playerElement),this.playOverlay.onClick=()=>{var e;this.core.userInput(),(e=this.playOverlay)==null||e.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`,e=>{e?this.bar.fullscreenButton.setIcon(`exit`):this.bar.fullscreenButton.setIcon(`enter`)}),(o=this.bufferingOverlay)==null||o.fullscreen(!0)}iosHackResetSize(){this.core.emitter.emit(`ios-hack: reset size`)}};e.AUTHENTICATION_EXPIRED_CODE=fi,e.AUTHENTICATION_FAILED_CODE=di,e.ApiClient=Fu,e.CHANNEL_NOT_FOUND_CODE=pi,e.CHANNEL_NOT_LIVE_CODE=mi,e.CONNECTION_FAILED_AFTER_RETRIES_CODE=ui,e.CONNECTION_FAILED_CODE=li,e.CastSender=Mr,e.DISCONNECTED_BY_EDGE=bi,e.INACTIVITY_CODE=gi,e.NO_INCOMING_DATA=hi,e.Player=ED,e.Vindral=Uw,e.VindralError=U});