@vindral/web-sdk 4.2.1-9-gb6e43bd0 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/legacy.umd.js CHANGED
@@ -1,5 +1,5 @@
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,ee,y,b=(_=s.hidden)==null?``:_,te=(v=s.buffering)==null?``:v,ne=(ee=s[`buffering-fullscreen`])==null?``:ee,re=(y=s[`buffering-indicator`])==null?``:y,ie=class extends g{constructor(){super(document.createElement(`div`)),m(this,`indicator`,document.createElement(`div`)),m(this,`isHidden`,()=>this.element.classList.contains(b)),m(this,`setHidden`,e=>e?this.hide():this.show()),m(this,`hide`,()=>this.element.classList.add(b)),m(this,`show`,()=>this.element.classList.remove(b)),m(this,`fullscreen`,e=>{e?this.element.classList.add(ne):this.element.classList.remove(ne)}),this.element.className=te,this.indicator.className=re,this.element.appendChild(this.indicator)}},ae,oe=n((()=>{h(),ae=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}}})),x,se=n((()=>{x=()=>{}})),S,ce=n((()=>{se(),h(),S=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(x)}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}}})),C,le=n((()=>{h(),C=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 ue(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}var de=n((()=>{}));function w(e,t,n){ue(e,t),t.set(e,n)}var T=n((()=>{de()}));function E(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 D=n((()=>{}));function O(e,t,n){return e.set(E(e,t),n),n}var k=n((()=>{D()}));function A(e,t){return e.get(E(e,t))}var j=n((()=>{D()}));function fe(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 M(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var a=e.apply(t,n);function o(e){fe(a,r,i,o,s,`next`,e)}function s(e){fe(a,r,i,o,s,`throw`,e)}o(void 0)})}}var N=n((()=>{}));function pe(e){let t=new ye(e);return[t,t]}var me,he,ge,_e,ve,ye,be=n((()=>{ce(),le(),se(),T(),k(),j(),N(),he=new WeakMap,ge=new WeakMap,_e=new WeakMap,ve=new WeakMap,me=Symbol.asyncIterator,ye=class{constructor(e){w(this,he,void 0),w(this,ge,new S),w(this,_e,void 0),w(this,ve,!1),O(he,this,new C(e))}isFull(){return A(he,this).isFull()}close(){var e;(e=A(_e,this))==null||e.resolve(),O(ve,this,!0)}abort(e){var t,n;(t=A(_e,this))==null||t.promise.catch(x),(n=A(_e,this))==null||n.reject(e)}push(e){var t=this;return M(function*(){var n;A(he,t).isFull()&&(yield A(ge,t).promise),A(he,t).push(e),(n=A(_e,t))==null||n.resolve(),O(_e,t,new S)})()}pop(){var e=this;return M(function*(){for(;!(A(ve,e)&&A(he,e).isEmpty());){var t;let n=A(he,e).pop();if(n)return A(ge,e).resolve(),O(ge,e,new S),n;A(_e,e)||O(_e,e,new S),yield(t=A(_e,e))==null?void 0:t.promise}})()}start(e){}pull(e){var t=this;return M(function*(){let n=yield t.pop();n?e.enqueue(n):e.close()})()}cancel(e){this.abort(Error(e))}next(){var e=this;return M(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})}[me](){return this}}}));function xe(e,t){if(!e)throw Error(t)}var Se=n((()=>{}));function P(e){return Ce?BigInt(e):typeof BigInt==`function`&&typeof e==`bigint`?Number(e):e}var Ce,we=n((()=>{Ce=typeof DataView.prototype.getBigUint64==`function`})),Te,Ee,De,Oe,ke=n((()=>{T(),h(),j(),k(),Te=new WeakMap,Ee=new WeakMap,De=new WeakMap,Oe=class{constructor(e,t=0){w(this,Te,void 0),w(this,Ee,void 0),w(this,De,void 0),m(this,`position`,()=>A(De,this)),m(this,`peekBit`,()=>this.getBit(A(Ee,this),A(De,this))),m(this,`readBit`,()=>{var e;let t=this.peekBit();return O(De,this,(e=A(De,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(A(Ee,this),(O(De,this,(n=A(De,this),r=n++,n)),r))?1:0)}return t}),m(this,`remainingBits`,()=>A(Ee,this).byteLength*8-A(De,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(A(Ee,this),(O(De,this,(e=A(De,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(A(Ee,this),(O(De,this,(i=A(De,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}),O(Te,this,e),O(Ee,this,new Uint8Array(A(Te,this))),O(De,this,t)}bytes(){return A(Ee,this)}}})),Ae,je=n((()=>{Ae=(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}})),F,Me,Ne,Pe,Fe=n((()=>{je(),T(),k(),j(),F=new WeakMap,Me=new WeakMap,Ne=new WeakMap,Pe=class{constructor(e){w(this,F,void 0),w(this,Me,void 0),w(this,Ne,void 0),O(Me,this,e),O(Ne,this,new DataView(e.buffer,e.byteOffset,e.byteLength)),O(F,this,0)}position(){return A(F,this)}byteOffset(){return A(Me,this).byteOffset+A(F,this)}buffer(){return A(Me,this)}remaining(){return A(Me,this).length-A(F,this)}readUint8(){let e=A(Ne,this).getUint8(A(F,this));return O(F,this,A(F,this)+1),e}readUint24(){let e=A(Ne,this).getUint32(A(F,this))>>8&16777215;return O(F,this,A(F,this)+3),e}readUint16(){let e=A(Ne,this).getUint16(A(F,this));return O(F,this,A(F,this)+2),e}readUint32(){let e=A(Ne,this).getUint32(A(F,this));return O(F,this,A(F,this)+4),e}readUint64(){let e=Ae(A(Me,this),A(F,this),A(F,this)+7);return O(F,this,A(F,this)+8),e}readBytes(e){let t=A(Me,this).subarray(A(F,this),A(F,this)+e);return O(F,this,A(F,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))}}})),Ie,Le=n((()=>{h(),Ie=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 Re(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 ze=n((()=>{}));function Be(){let e=self.MediaSource,t=self.ManagedMediaSource;return e==null?t:e}var Ve=n((()=>{}));function He(){if(/(iPhone|iPod|iPad)/i.test(Ge)){var e;return Ge==null||(e=Ge.match(/OS [\d_]+/i))==null||(e=e[0])==null?void 0:e.substring(3).split(`_`).map(e=>parseInt(e,10))[0]}}function Ue(){if(/^((?!chrome|android).)*safari/i.test(Ge)){var e;return(e=Ge.match(/version\/([\d.]+)/))==null||(e=e[1])==null?void 0:e.split(`.`).map(e=>parseInt(e,10))[0]}}var We,Ge,Ke,qe,Je,Ye,Xe,Ze,Qe,$e,et,tt,nt,rt,it=n((()=>{Ve(),We=/(android|bbd+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up.(browser|link)|vodafone|wap|windows ce|xda|xiino\/i.test(a)||\/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-\//i,Ge=navigator.userAgent.toLowerCase(),Ke=We.test(Ge),qe=()=>{let e=document.createElement(`video`);return e.canPlayType(`application/vnd.apple.mpegURL`)!==``||e.canPlayType(`audio/mpegurl`)!==``},Je=()=>{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},Ye=()=>Ge.indexOf(`CrKey`)!==-1,Xe=()=>navigator.platform===`MacIntel`&&navigator.maxTouchPoints===0,Ze=()=>navigator.platform===`MacIntel`&&navigator.maxTouchPoints>1,Qe=()=>$e()||Ze()?!0:/AppleWebKit/i.test(navigator.userAgent)&&!/Chrome|Chromium|Edg|OPR|Opera/i.test(navigator.userAgent),$e=()=>Ge.indexOf(`iphone`)>=0&&Ge.indexOf(`like iphone`)<0||Ge.indexOf(`ipad`)>=0&&Ge.indexOf(`like ipad`)<0||Ge.indexOf(`ipod`)>=0&&Ge.indexOf(`like ipod`)<0||Ze(),et=()=>{var e,t;return Ze()||(e=(t=Be())==null?void 0:t.isTypeSupported(`audio/mp4; codecs="opus"`))==null?!1:e},tt=()=>/^(?!.*chrome).*safari/i.test(Ge),nt=()=>typeof HTMLCanvasElement<`u`&&typeof HTMLCanvasElement.prototype.captureStream==`function`,rt=()=>{var e,t;let n=!!Be(),r=!1;return n&&(r=et()),{isMobile:Ke,supportsMp4Opus:r,supportsMediaSource:n,supportsHls:qe(),supportsWebAssembly:Je(),supportsCanvasCaptureStream:nt(),platform:{iosVersion:(e=He())==null?2**53-1:e,safariVersion:(t=Ue())==null?2**53-1:t,isIpadOS:Ze(),isMacOS:Xe(),isIOS:$e(),isWebKit:Qe()}}}})),at,ot,st,ct,lt,ut,dt,ft,pt,mt,ht,gt,_t,vt,yt,bt,xt,St,Ct,wt,Tt,Et,Dt,Ot=n((()=>{at=e=>e,ot=e=>e,st=e=>e,ct=e=>e,lt=e=>`orientation`in e?e.orientation:void 0,ut=(e=document)=>{let t=at(e);return!!(e.fullscreenElement||e.fullscreen||t.mozFullScreen||t.webkitIsFullScreen)},dt=e=>{var t,n,r,i;let a=ot(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))},ft=(e,t=document)=>{var n,r;let i=at(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=ot(e).webkitExitFullscreen)==null?void 0:r.bind(e):void 0)},pt=e=>!!dt(e),mt=e=>{var t;let n=ct(e);return(t=n.requestPictureInPicture)==null?void 0:t.bind(n)},ht=(e=document)=>{var t;return(t=st(e).exitPictureInPicture)==null?void 0:t.bind(e)},gt=(e=document)=>!!st(e).pictureInPictureEnabled,_t=(e=document)=>!!st(e).pictureInPictureElement,vt=(e,t=document)=>!!mt(e)&&gt(t),yt=e=>e.pictureInPictureWindow,bt=e=>ct(e).webkitPresentationMode,xt=(e,t)=>{var n,r;(n=(r=ct(e)).webkitSetPresentationMode)==null||n.call(r,t)},St=e=>!!ct(e).webkitSetPresentationMode,Ct=(e,t)=>{if(t){e.setAttribute(`autopictureinpicture`,``);return}e.removeAttribute(`autopictureinpicture`)},wt=(e=screen)=>{var t;let n=lt(e);return n==null||(t=n.lock)==null?void 0:t.bind(n)},Tt=(e,t=screen)=>{var n;return(n=wt(t))==null?void 0:n(e)},Et=(e=screen)=>{var t,n;(t=lt(e))==null||(n=t.unlock)==null||n.call(t)},Dt=e=>{if(!e.supportsCanvasCaptureStream)return!1;if(!e.platform.isIOS)return!0;let{iosVersion:t,safariVersion:n,isIpadOS:r}=e.platform;return Number.isFinite(t)&&t!==2**53-1?t>=15:r&&Number.isFinite(n)&&n!==2**53-1?n>=15:typeof VideoDecoder<`u`}})),kt,At=n((()=>{h(),kt=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)}}}})),jt,Mt,Nt,Pt,Ft,It=n((()=>{jt=e=>e.reduce((e,t)=>e+t,0)/e.length,Mt=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)},Nt=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]},Pt=e=>({last:e[e.length-1]||0,average:e.length===0?0:jt(e),max:e.length===0?0:Math.max(...e),min:e.length===0?0:Math.min(...e)}),Ft=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}}})),Lt,Rt=n((()=>{le(),It(),h(),Lt=class{constructor(e=10){m(this,`rates`,void 0),m(this,`_total`,0),m(this,`accumulatedValues`,0),m(this,`lastTickTime`,Date.now()),m(this,`add`,e=>{this.accumulatedValues+=e,this._total+=e}),m(this,`tick`,()=>{let e=this.accumulatedValues/((Date.now()-this.lastTickTime)/1e3);this.rates.push(e),this.accumulatedValues=0,this.lastTickTime=Date.now()}),this.rates=new C(e)}get total(){return this._total}get average(){return this.rates.isEmpty()?0:jt(this.rates.items())}get minMaxAverage(){return Pt(this.rates.items())}}})),zt=n((()=>{})),Bt,Vt=n((()=>{Bt=(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)||!Bt(e[n],t[n]))return!1;return n===r}})),Ht,Ut=n((()=>{h(),Ht=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]}}})),Wt=n((()=>{})),Gt,Kt,qt,Jt,Yt,Xt,Zt,Qt=n((()=>{Gt=1e3,Kt=Gt*1e3,qt=Kt*1e3,Jt=(e,t,n)=>e%t===0?e/t:(e/t).toFixed(n),Yt=(e,t=1)=>e>=qt?`${Jt(e,qt,t)} Gbit/s`:e>=Kt?`${Jt(e,Kt,t)} Mbit/s`:e>=Gt?`${Jt(e,Gt,t)} Kbit/s`:`${e} bit/s`,Xt=({width:e,height:t})=>`${e}x${t}`,Zt=e=>e%1e3==0?`${e/1e3} kHz`:e>1e3?`${(e/1e3).toFixed(1)} kHz`:`${e} Hz`})),$t=n((()=>{})),en,tn,nn,rn,an,on,sn,cn,ln=n((()=>{T(),h(),k(),j(),en=[`off`,`error`,`warn`,`info`,`debug`,`trace`],tn={ERROR:`error`,WARN:`warn`,INFO:`info`,DEBUG:`debug`,TRACE:`trace`,OFF:`off`},nn=new WeakMap,rn=new WeakMap,an=new WeakMap,on=new WeakMap,sn=class e{constructor({context:e,logLevel:t,debug:n}){w(this,nn,new Map),w(this,rn,``),w(this,an,!1),w(this,on,`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)=>{}),O(rn,this,e),O(on,this,t),O(an,this,n||!1),this.setLevel(t),this.setDebug(A(an,this))}setDebug(e){O(an,this,e);for(let[t,n]of A(nn,this))n.setDebug(e);e?(this.table=console.table.bind(console),this.count=console.count.bind(console)):(this.table=()=>{},this.count=()=>{})}setLevel(e){O(on,this,e);for(let[t,n]of A(nn,this))n.setLevel(e);let t=en.indexOf(e);for(let[e,n]of en.entries())n!==`off`&&(e<=t?this[n]=console[n].bind(console,`%c%s %c%s`,`font-weight:bold;`,n.toUpperCase(),`font-weight:normal;`,A(rn,this)):this[n]=()=>{})}createContext(t){let n=A(nn,this).get(t);if(!n){let n=new e({context:`${t}`,logLevel:A(on,this),debug:A(an,this)});return A(nn,this).set(t,n),n}return n}static get(){return cn._||(cn._=new e({context:`Vindral`,logLevel:`off`})),cn._}},cn={_:void 0}}));function un(){return typeof Symbol.asyncDispose!=`symbol`&&Object.defineProperty(Symbol,`asyncDispose`,{value:Symbol.for(`asyncDispose`)}),Symbol.asyncDispose}function dn(){return typeof Symbol.dispose!=`symbol`&&Object.defineProperty(Symbol,`dispose`,{value:Symbol.for(`dispose`)}),Symbol.dispose}var fn=n((()=>{}));function I(e,t){ue(e,t),t.add(e)}var L=n((()=>{de()}));function pn(){this.unlocker.resolve(this.value)}var mn,hn,gn,_n,vn,yn,bn,xn=n((()=>{ce(),se(),fn(),L(),h(),D(),T(),j(),k(),N(),gn=new WeakSet,mn=dn(),hn=Symbol.dispose,_n=class{constructor(e,t){I(this,gn),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}[mn](){E(gn,this,pn).call(this)}[hn](){E(gn,this,pn).call(this)}},vn=new WeakMap,yn=new WeakMap,bn=class{unsafeValue(){return A(vn,this)}constructor(e){w(this,vn,void 0),w(this,yn,new S),O(vn,this,e),A(yn,this).resolve(e)}isLocked(){return A(yn,this).pending}lock(){var e=this;return M(function*(){let t=new S;t.promise.then(t=>{O(vn,e,t)}).catch(x);let n=A(yn,e).promise.then(()=>t);return O(yn,e,t),yield n,new _n(A(vn,e),t)})()}}}));function Sn(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?Sn(Object(n),!0).forEach(function(t){m(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Sn(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var z=n((()=>{h()})),Cn=n((()=>{})),wn=n((()=>{})),Tn=n((()=>{}));function En(e,t){this.v=e,this.k=t}var Dn=n((()=>{}));function B(e){return new En(e,0)}var On=n((()=>{Dn()}));function kn(e){return function(){return new An(e.apply(this,arguments))}}function An(e){var t,n;function r(t,n){try{var a=e[t](n),o=a.value,s=o instanceof En;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 jn=n((()=>{Dn(),An.prototype[typeof Symbol==`function`&&Symbol.asyncIterator||`@@asyncIterator`]=function(){return this},An.prototype.next=function(e){return this._invoke(`next`,e)},An.prototype.throw=function(e){return this._invoke(`throw`,e)},An.prototype.return=function(e){return this._invoke(`return`,e)}})),Mn,Nn,Pn,Fn,In=n((()=>{ce(),T(),k(),j(),N(),On(),jn(),Nn=new WeakMap,Pn=new WeakMap,Mn=Symbol.asyncIterator,Fn=class{constructor(e){w(this,Nn,void 0),w(this,Pn,void 0),O(Nn,this,e),O(Pn,this,new S)}isClosed(){var e;return!((e=A(Pn,this))!=null&&e.pending)}current(){return A(Nn,this)}value(){var e;return[A(Nn,this),(e=A(Pn,this))==null?void 0:e.promise]}update(e){var t;if(!((t=A(Pn,this))!=null&&t.pending))throw Error(`ObservableValue is closed`);O(Nn,this,e instanceof Function?e(A(Nn,this)):e),A(Pn,this).resolve(A(Nn,this)),O(Pn,this,new S)}close(){var e;(e=A(Pn,this))==null||e.resolve(A(Nn,this)),O(Pn,this,void 0)}waitFor(e){var t=this;return M(function*(){if(e(A(Nn,t)))return A(Nn,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}})()}[Mn](){var e=this;return kn(function*(){for(;;){let[t,n]=e.value();if(yield t,!n)return;yield B(n)}})()}}})),Ln,Rn=n((()=>{z(),Ln=(e,t)=>{let n=R({},e);return typeof n==`object`&&t.forEach(e=>{delete n[e]}),n}})),zn=n((()=>{})),Bn,Vn,Hn=n((()=>{h(),Vn=class{constructor(){m(this,`pendingTimeouts`,new Set),m(this,`pendingIntervals`,new Set),m(this,`clearTimeout`,e=>{this.pendingTimeouts.delete(e)&&window.clearTimeout(e)}),m(this,`clearInterval`,e=>{this.pendingIntervals.delete(e)&&window.clearInterval(e)}),m(this,`setTimeout`,(e,t,...n)=>{let r=window.setTimeout(()=>{e(...n),this.clearTimeout(r)},t);return this.pendingTimeouts.add(r),r}),m(this,`setInterval`,(e,t,...n)=>{let r=window.setInterval(()=>{e(...n)},t);return this.pendingIntervals.add(r),r}),m(this,`unload`,()=>{this.pendingIntervals.forEach(this.clearInterval),this.pendingTimeouts.forEach(this.clearTimeout)})}},Bn=Vn,m(Vn,`create`,()=>new Bn)})),Un,Wn,Gn,Kn,qn=n((()=>{Un=(e,t=Date.now())=>{let n=e.length;if(n>0){let r=e[n-1];r.end||(r.end=t)}},Wn=(e,t=Date.now())=>{Un(e),e.push({start:t})},Gn=e=>e.reduce((e,t)=>{var n;return e+(((n=t.end)==null?Date.now():n)-t.start)},0),Kn=(e,t,n=Date.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)}));function Jn(e){try{return e()}catch(e){return e}}var Yn=n((()=>{})),Xn,Zn=n((()=>{Xn=e=>{try{return JSON.parse(e)}catch(e){return}}})),Qn=n((()=>{})),$n,er=n((()=>{se(),h(),z(),$n=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(x)}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)}}})),tr,nr=n((()=>{tr=()=>{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(``)}})),rr,ir,ar=n((()=>{N(),rr=function(){var e=M(function*(e){return new Promise(t=>setTimeout(t,e))});return function(t){return e.apply(this,arguments)}}(),ir=function(){var e=M(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=M(function*(e,t){throw yield e,Error(t)});return function(t,n){return e.apply(this,arguments)}}()})),V=n((()=>{oe(),be(),Se(),we(),ke(),Fe(),Le(),ze(),it(),it(),Ot(),je(),At(),Rt(),ce(),zt(),Vt(),Ut(),le(),Wt(),Qt(),$t(),Ve(),ln(),xn(),Cn(),wn(),Tn(),se(),In(),Rn(),zn(),It(),fn(),Hn(),qn(),Yn(),Zn(),Qn(),er(),nr(),ar()}));V(),h(),N();var or=class extends Ht{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(x)):(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(x),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 M(function*(){try{return(yield fetch(e,{method:`HEAD`})).ok}catch(e){return!1}})()}};V(),h(),N();var sr=class extends Ht{constructor(e){var t;super(),t=this,m(this,`state`,`not casting`),m(this,`config`,void 0),m(this,`unloaded`,!1),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)}),m(this,`init`,M(function*(){return new Promise((e,n)=>{let r=!1,i=setTimeout(()=>{r=!0,n()},1e4);window.__onGCastApiAvailable=a=>{if(r){r=!1;return}if(clearTimeout(i),!a)return n();setTimeout(()=>{try{t.onGCastApiAvailable(),e()}catch(e){n()}},1e3)},t.castLibrariesAdded()&&window.cast?window.__onGCastApiAvailable(!0):t.verifyCastLibraries()})})),m(this,`start`,M(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),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,`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}))}},cr=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 lr(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`}V();function ur(e){return!(typeof e.edges[0]==`string`||e.channels[0]&&!(`catalog`in e.channels[0]))}function dr(e){return e.tracks.filter(e=>!!e.codec).filter(e=>lr(e.codec||``)).map((e,t)=>{let n=e.codec,r=e.bitrate;xe(n,`codec is required`),xe(r!==void 0,`bitrate is required`);let i=lr(n);if(xe(i,`codec is required`),cr(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 cr(i)===`text`?{track:e,id:t,bitRate:0,codec:i,kind:`subtitles`,codecString:n,label:e.label,language:e.language}:(xe(e.width,`width is required`),xe(e.height,`width is required`),xe(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 fr=e=>`width`in e&&typeof e.width==`number`,pr=e=>`sampleRate`in e&&typeof e.sampleRate==`number`,mr=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`}},hr=()=>2**53-1,gr=()=>({width:2**53-1,height:2**53-1}),_r=e=>!(typeof e!=`object`||!e||!(`type`in e));V();var vr={sizeBasedResolutionCapEnabled:!0,pictureInPictureEnabled:!0,abrEnabled:!0,burstEnabled:!1,mseEnabled:!0,mseOpusEnabled:!0,muted:!1,volume:1,minBufferTime:1500,maxBufferTime:1500,logLevel:tn.OFF,maxSize:gr(),maxVideoBitRate:hr(),maxAudioBitRate:hr(),maxInitialBitRate:2.5*1e3*1e3,tags:[],media:`audio+video`,poster:!0,reconnectHandler:e=>e.reconnectRetries<30,iosWakeLockEnabled:!1,telemetryEnabled:!0,streamToMediaElementEnabled:!1,iosMediaElementEnabled:!1,pauseSupportEnabled:!0,webcodecsHardwareAcceleration:`no-preference`,offscreenCanvasEnabled:void 0,advanced:{},videoCodecs:[`av1`,`h264`,`h265`],webtransportEnabled:!0},yr=e=>{e.width=320,e.height=180,e.style.width=`100%`,e.style.position=`relative`,e.style.backgroundColor=`#000`};L(),T(),h(),z(),j(),k(),D();var br={backgroundColor:`rgba(0,0,0,0.6)`,textPadding:8,fontSize:`28px`,lineGap:16},xr=new WeakMap,Sr=new WeakMap,Cr=new WeakMap,wr=new WeakMap,Tr=new WeakSet,Er=class{constructor(){I(this,Tr),w(this,xr,[]),w(this,Sr,document.createElement(`canvas`)),w(this,Cr,void 0),w(this,wr,window.devicePixelRatio||1),m(this,`config`,R({},br));let e=A(Sr,this).getContext(`2d`,{alpha:!0});if(!e)throw Error(`Failed to create 2d context`);O(Cr,this,e),E(Tr,this,Or).call(this)}get canvas(){return A(Sr,this)}setActiveCues(e){O(xr,this,e)}render(e,t=!1){let n=A(xr,this).flatMap(t=>t.text.split(`
2
- `).flatMap(t=>E(Tr,this,kr).call(this,t,e.width)).map(e=>{E(Tr,this,Or).call(this);let t=A(Cr,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}}})),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;E(Tr,this,Dr).call(this,r,i),A(Cr,this).clearRect(0,0,A(Sr,this).width,A(Sr,this).height);for(let{size:e,text:t}of n)E(Tr,this,Or).call(this),A(Cr,this).fillStyle=this.config.backgroundColor,A(Cr,this).fillRect(0,a,e.width,e.height),E(Tr,this,Or).call(this),A(Cr,this).fillText(t,this.config.textPadding,a+this.config.textPadding),a+=e.height+this.config.lineGap;t&&(A(Cr,this).strokeStyle=`red`,A(Cr,this).strokeRect(0,0,e.width,A(Sr,this).height))}};function Dr(e,t){A(Sr,this).width=e*A(wr,this),A(Sr,this).height=t*A(wr,this),A(Cr,this).setTransform(A(wr,this),0,0,A(wr,this),0,0),this.canvas.style.width=`${e}px`,this.canvas.style.height=`${t}px`}function Or(){A(Cr,this).fillStyle=`white`,A(Cr,this).textAlign=`left`,A(Cr,this).textBaseline=`top`,A(Cr,this).font=`${this.config.fontSize} sans-serif`}function kr(e,t){let n=[],r=e.split(` `),i=``;for(;r.length>0;){E(Tr,this,Or).call(this);let e=0;for(;A(Cr,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 Ar(e,t){let n=t*.05,r=e*.035;return`${Math.max(Math.round(Math.min(n,r)),16)}px`}function jr(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 Mr(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}}V(),h();var Nr={width:256,height:144},Pr=class extends Ht{constructor(){super(),m(this,`canvas`,document.createElement(`canvas`)),m(this,`context`,null),m(this,`size`,Nr),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(Nr)}),m(this,`unload`,()=>{this.context=null,this.subtitleRenderer=null,this.hasActiveSubtitles=!1,this.setSize(Nr)}),m(this,`setActiveCues`,(e,t)=>{this.subtitleRenderer||(this.subtitleRenderer=new Er),this.subtitleRenderer.config.fontSize=Ar(t.width,t.height),this.subtitleRenderer.setActiveCues(e),this.subtitleRenderer.render(t),this.hasActiveSubtitles=e.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=jr({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)))}),yr(this.canvas)}},Fr=`
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,ee,y,b=(_=s.hidden)==null?``:_,te=(v=s.buffering)==null?``:v,ne=(ee=s[`buffering-fullscreen`])==null?``:ee,re=(y=s[`buffering-indicator`])==null?``:y,ie=class extends g{constructor(){super(document.createElement(`div`)),m(this,`indicator`,document.createElement(`div`)),m(this,`isHidden`,()=>this.element.classList.contains(b)),m(this,`setHidden`,e=>e?this.hide():this.show()),m(this,`hide`,()=>this.element.classList.add(b)),m(this,`show`,()=>this.element.classList.remove(b)),m(this,`fullscreen`,e=>{e?this.element.classList.add(ne):this.element.classList.remove(ne)}),this.element.className=te,this.indicator.className=re,this.element.appendChild(this.indicator)}},ae,oe=n((()=>{h(),ae=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}}})),x,se=n((()=>{x=()=>{}})),S,ce=n((()=>{se(),h(),S=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(x)}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}}})),C,le=n((()=>{h(),C=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 ue(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}var de=n((()=>{}));function w(e,t,n){ue(e,t),t.set(e,n)}var T=n((()=>{de()}));function E(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 D=n((()=>{}));function O(e,t,n){return e.set(E(e,t),n),n}var k=n((()=>{D()}));function A(e,t){return e.get(E(e,t))}var j=n((()=>{D()}));function fe(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 M(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var a=e.apply(t,n);function o(e){fe(a,r,i,o,s,`next`,e)}function s(e){fe(a,r,i,o,s,`throw`,e)}o(void 0)})}}var N=n((()=>{}));function pe(e){let t=new ye(e);return[t,t]}var me,he,ge,_e,ve,ye,be=n((()=>{ce(),le(),se(),T(),k(),j(),N(),he=new WeakMap,ge=new WeakMap,_e=new WeakMap,ve=new WeakMap,me=Symbol.asyncIterator,ye=class{constructor(e){w(this,he,void 0),w(this,ge,new S),w(this,_e,void 0),w(this,ve,!1),O(he,this,new C(e))}isFull(){return A(he,this).isFull()}close(){var e;(e=A(_e,this))==null||e.resolve(),O(ve,this,!0)}abort(e){var t,n;(t=A(_e,this))==null||t.promise.catch(x),(n=A(_e,this))==null||n.reject(e)}push(e){var t=this;return M(function*(){var n;A(he,t).isFull()&&(yield A(ge,t).promise),A(he,t).push(e),(n=A(_e,t))==null||n.resolve(),O(_e,t,new S)})()}pop(){var e=this;return M(function*(){for(;!(A(ve,e)&&A(he,e).isEmpty());){var t;let n=A(he,e).pop();if(n)return A(ge,e).resolve(),O(ge,e,new S),n;A(_e,e)||O(_e,e,new S),yield(t=A(_e,e))==null?void 0:t.promise}})()}start(e){}pull(e){var t=this;return M(function*(){let n=yield t.pop();n?e.enqueue(n):e.close()})()}cancel(e){this.abort(Error(e))}next(){var e=this;return M(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})}[me](){return this}}}));function xe(e,t){if(!e)throw Error(t)}var Se=n((()=>{}));function P(e){return Ce?BigInt(e):typeof BigInt==`function`&&typeof e==`bigint`?Number(e):e}var Ce,we=n((()=>{Ce=typeof DataView.prototype.getBigUint64==`function`})),Te,Ee,De,Oe,ke=n((()=>{T(),h(),j(),k(),Te=new WeakMap,Ee=new WeakMap,De=new WeakMap,Oe=class{constructor(e,t=0){w(this,Te,void 0),w(this,Ee,void 0),w(this,De,void 0),m(this,`position`,()=>A(De,this)),m(this,`peekBit`,()=>this.getBit(A(Ee,this),A(De,this))),m(this,`readBit`,()=>{var e;let t=this.peekBit();return O(De,this,(e=A(De,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(A(Ee,this),(O(De,this,(n=A(De,this),r=n++,n)),r))?1:0)}return t}),m(this,`remainingBits`,()=>A(Ee,this).byteLength*8-A(De,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(A(Ee,this),(O(De,this,(e=A(De,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(A(Ee,this),(O(De,this,(i=A(De,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}),O(Te,this,e),O(Ee,this,new Uint8Array(A(Te,this))),O(De,this,t)}bytes(){return A(Ee,this)}}})),Ae,je=n((()=>{Ae=(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}})),F,Me,Ne,Pe,Fe=n((()=>{je(),T(),k(),j(),F=new WeakMap,Me=new WeakMap,Ne=new WeakMap,Pe=class{constructor(e){w(this,F,void 0),w(this,Me,void 0),w(this,Ne,void 0),O(Me,this,e),O(Ne,this,new DataView(e.buffer,e.byteOffset,e.byteLength)),O(F,this,0)}position(){return A(F,this)}byteOffset(){return A(Me,this).byteOffset+A(F,this)}buffer(){return A(Me,this)}remaining(){return A(Me,this).length-A(F,this)}readUint8(){let e=A(Ne,this).getUint8(A(F,this));return O(F,this,A(F,this)+1),e}readUint24(){let e=A(Ne,this).getUint32(A(F,this))>>8&16777215;return O(F,this,A(F,this)+3),e}readUint16(){let e=A(Ne,this).getUint16(A(F,this));return O(F,this,A(F,this)+2),e}readUint32(){let e=A(Ne,this).getUint32(A(F,this));return O(F,this,A(F,this)+4),e}readUint64(){let e=Ae(A(Me,this),A(F,this),A(F,this)+7);return O(F,this,A(F,this)+8),e}readBytes(e){let t=A(Me,this).subarray(A(F,this),A(F,this)+e);return O(F,this,A(F,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))}}})),Ie,Le=n((()=>{h(),Ie=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 Re(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 ze=n((()=>{}));function Be(){let e=self.MediaSource,t=self.ManagedMediaSource;return e==null?t:e}var Ve=n((()=>{}));function He(){if(/(iPhone|iPod|iPad)/i.test(Ge)){var e;return Ge==null||(e=Ge.match(/OS [\d_]+/i))==null||(e=e[0])==null?void 0:e.substring(3).split(`_`).map(e=>parseInt(e,10))[0]}}function Ue(){if(/^((?!chrome|android).)*safari/i.test(Ge)){var e;return(e=Ge.match(/version\/([\d.]+)/))==null||(e=e[1])==null?void 0:e.split(`.`).map(e=>parseInt(e,10))[0]}}var We,Ge,Ke,qe,Je,Ye,Xe,Ze,Qe,$e,et,tt,nt,rt,it=n((()=>{Ve(),We=/(android|bbd+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up.(browser|link)|vodafone|wap|windows ce|xda|xiino\/i.test(a)||\/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-\//i,Ge=navigator.userAgent.toLowerCase(),Ke=We.test(Ge),qe=()=>{let e=document.createElement(`video`);return e.canPlayType(`application/vnd.apple.mpegURL`)!==``||e.canPlayType(`audio/mpegurl`)!==``},Je=()=>{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},Ye=()=>Ge.indexOf(`CrKey`)!==-1,Xe=()=>navigator.platform===`MacIntel`&&navigator.maxTouchPoints===0,Ze=()=>navigator.platform===`MacIntel`&&navigator.maxTouchPoints>1,Qe=()=>$e()||Ze()?!0:/AppleWebKit/i.test(navigator.userAgent)&&!/Chrome|Chromium|Edg|OPR|Opera/i.test(navigator.userAgent),$e=()=>Ge.indexOf(`iphone`)>=0&&Ge.indexOf(`like iphone`)<0||Ge.indexOf(`ipad`)>=0&&Ge.indexOf(`like ipad`)<0||Ge.indexOf(`ipod`)>=0&&Ge.indexOf(`like ipod`)<0||Ze(),et=()=>{var e,t;return Ze()||(e=(t=Be())==null?void 0:t.isTypeSupported(`audio/mp4; codecs="opus"`))==null?!1:e},tt=()=>/^(?!.*chrome).*safari/i.test(Ge),nt=()=>typeof HTMLCanvasElement<`u`&&typeof HTMLCanvasElement.prototype.captureStream==`function`,rt=()=>{var e,t;let n=!!Be(),r=!1;return n&&(r=et()),{isMobile:Ke,supportsMp4Opus:r,supportsMediaSource:n,supportsHls:qe(),supportsWebAssembly:Je(),supportsCanvasCaptureStream:nt(),platform:{iosVersion:(e=He())==null?2**53-1:e,safariVersion:(t=Ue())==null?2**53-1:t,isIpadOS:Ze(),isMacOS:Xe(),isIOS:$e(),isWebKit:Qe()}}}})),at,ot,st,ct,lt,ut,dt,ft,pt,mt,ht,gt,_t,vt,yt,bt,xt,St,Ct,wt,Tt,Et,Dt,Ot=n((()=>{at=e=>e,ot=e=>e,st=e=>e,ct=e=>e,lt=e=>`orientation`in e?e.orientation:void 0,ut=(e=document)=>{let t=at(e);return!!(e.fullscreenElement||e.fullscreen||t.mozFullScreen||t.webkitIsFullScreen)},dt=e=>{var t,n,r,i;let a=ot(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))},ft=(e,t=document)=>{var n,r;let i=at(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=ot(e).webkitExitFullscreen)==null?void 0:r.bind(e):void 0)},pt=e=>!!dt(e),mt=e=>{var t;let n=ct(e);return(t=n.requestPictureInPicture)==null?void 0:t.bind(n)},ht=(e=document)=>{var t;return(t=st(e).exitPictureInPicture)==null?void 0:t.bind(e)},gt=(e=document)=>!!st(e).pictureInPictureEnabled,_t=(e=document)=>!!st(e).pictureInPictureElement,vt=(e,t=document)=>!!mt(e)&&gt(t),yt=e=>e.pictureInPictureWindow,bt=e=>ct(e).webkitPresentationMode,xt=(e,t)=>{var n,r;(n=(r=ct(e)).webkitSetPresentationMode)==null||n.call(r,t)},St=e=>!!ct(e).webkitSetPresentationMode,Ct=(e,t)=>{if(t){e.setAttribute(`autopictureinpicture`,``);return}e.removeAttribute(`autopictureinpicture`)},wt=(e=screen)=>{var t;let n=lt(e);return n==null||(t=n.lock)==null?void 0:t.bind(n)},Tt=(e,t=screen)=>{var n;return(n=wt(t))==null?void 0:n(e)},Et=(e=screen)=>{var t,n;(t=lt(e))==null||(n=t.unlock)==null||n.call(t)},Dt=e=>{if(!e.supportsCanvasCaptureStream)return!1;if(!e.platform.isIOS)return!0;let{iosVersion:t,safariVersion:n,isIpadOS:r}=e.platform;return Number.isFinite(t)&&t!==2**53-1?t>=15:r&&Number.isFinite(n)&&n!==2**53-1?n>=15:typeof VideoDecoder<`u`}})),kt,At=n((()=>{h(),kt=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)}}}})),jt,Mt,Nt,Pt,Ft,It=n((()=>{jt=e=>e.reduce((e,t)=>e+t,0)/e.length,Mt=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)},Nt=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]},Pt=e=>({last:e[e.length-1]||0,average:e.length===0?0:jt(e),max:e.length===0?0:Math.max(...e),min:e.length===0?0:Math.min(...e)}),Ft=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}}})),Lt,Rt=n((()=>{le(),It(),h(),Lt=class{constructor(e=10){m(this,`rates`,void 0),m(this,`_total`,0),m(this,`accumulatedValues`,0),m(this,`lastTickTime`,Date.now()),m(this,`add`,e=>{this.accumulatedValues+=e,this._total+=e}),m(this,`tick`,()=>{let e=this.accumulatedValues/((Date.now()-this.lastTickTime)/1e3);this.rates.push(e),this.accumulatedValues=0,this.lastTickTime=Date.now()}),this.rates=new C(e)}get total(){return this._total}get average(){return this.rates.isEmpty()?0:jt(this.rates.items())}get minMaxAverage(){return Pt(this.rates.items())}}})),zt=n((()=>{})),Bt,Vt=n((()=>{Bt=(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)||!Bt(e[n],t[n]))return!1;return n===r}})),Ht,Ut=n((()=>{h(),Ht=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]}}})),Wt=n((()=>{})),Gt,Kt,qt,Jt,Yt,Xt,Zt,Qt=n((()=>{Gt=1e3,Kt=Gt*1e3,qt=Kt*1e3,Jt=(e,t,n)=>e%t===0?e/t:(e/t).toFixed(n),Yt=(e,t=1)=>e>=qt?`${Jt(e,qt,t)} Gbit/s`:e>=Kt?`${Jt(e,Kt,t)} Mbit/s`:e>=Gt?`${Jt(e,Gt,t)} Kbit/s`:`${e} bit/s`,Xt=({width:e,height:t})=>`${e}x${t}`,Zt=e=>e%1e3==0?`${e/1e3} kHz`:e>1e3?`${(e/1e3).toFixed(1)} kHz`:`${e} Hz`})),$t=n((()=>{})),en,tn,nn,rn,an,on,sn,cn,ln=n((()=>{T(),h(),k(),j(),en=[`off`,`error`,`warn`,`info`,`debug`,`trace`],tn={ERROR:`error`,WARN:`warn`,INFO:`info`,DEBUG:`debug`,TRACE:`trace`,OFF:`off`},nn=new WeakMap,rn=new WeakMap,an=new WeakMap,on=new WeakMap,sn=class e{constructor({context:e,logLevel:t,debug:n}){w(this,nn,new Map),w(this,rn,``),w(this,an,!1),w(this,on,`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)=>{}),O(rn,this,e),O(on,this,t),O(an,this,n||!1),this.setLevel(t),this.setDebug(A(an,this))}setDebug(e){O(an,this,e);for(let[t,n]of A(nn,this))n.setDebug(e);e?(this.table=console.table.bind(console),this.count=console.count.bind(console)):(this.table=()=>{},this.count=()=>{})}setLevel(e){O(on,this,e);for(let[t,n]of A(nn,this))n.setLevel(e);let t=en.indexOf(e);for(let[e,n]of en.entries())n!==`off`&&(e<=t?this[n]=console[n].bind(console,`%c%s %c%s`,`font-weight:bold;`,n.toUpperCase(),`font-weight:normal;`,A(rn,this)):this[n]=()=>{})}createContext(t){let n=A(nn,this).get(t);if(!n){let n=new e({context:`${t}`,logLevel:A(on,this),debug:A(an,this)});return A(nn,this).set(t,n),n}return n}static get(){return cn._||(cn._=new e({context:`Vindral`,logLevel:`off`})),cn._}},cn={_:void 0}}));function un(){return typeof Symbol.asyncDispose!=`symbol`&&Object.defineProperty(Symbol,`asyncDispose`,{value:Symbol.for(`asyncDispose`)}),Symbol.asyncDispose}function dn(){return typeof Symbol.dispose!=`symbol`&&Object.defineProperty(Symbol,`dispose`,{value:Symbol.for(`dispose`)}),Symbol.dispose}var fn=n((()=>{}));function I(e,t){ue(e,t),t.add(e)}var L=n((()=>{de()}));function pn(){this.unlocker.resolve(this.value)}var mn,hn,gn,_n,vn,yn,bn,xn=n((()=>{ce(),se(),fn(),L(),h(),D(),T(),j(),k(),N(),gn=new WeakSet,mn=dn(),hn=Symbol.dispose,_n=class{constructor(e,t){I(this,gn),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}[mn](){E(gn,this,pn).call(this)}[hn](){E(gn,this,pn).call(this)}},vn=new WeakMap,yn=new WeakMap,bn=class{unsafeValue(){return A(vn,this)}constructor(e){w(this,vn,void 0),w(this,yn,new S),O(vn,this,e),A(yn,this).resolve(e)}isLocked(){return A(yn,this).pending}lock(){var e=this;return M(function*(){let t=new S;t.promise.then(t=>{O(vn,e,t)}).catch(x);let n=A(yn,e).promise.then(()=>t);return O(yn,e,t),yield n,new _n(A(vn,e),t)})()}}}));function Sn(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?Sn(Object(n),!0).forEach(function(t){m(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Sn(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var z=n((()=>{h()})),Cn=n((()=>{})),wn=n((()=>{})),Tn=n((()=>{}));function En(e,t){this.v=e,this.k=t}var Dn=n((()=>{}));function B(e){return new En(e,0)}var On=n((()=>{Dn()}));function kn(e){return function(){return new An(e.apply(this,arguments))}}function An(e){var t,n;function r(t,n){try{var a=e[t](n),o=a.value,s=o instanceof En;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 jn=n((()=>{Dn(),An.prototype[typeof Symbol==`function`&&Symbol.asyncIterator||`@@asyncIterator`]=function(){return this},An.prototype.next=function(e){return this._invoke(`next`,e)},An.prototype.throw=function(e){return this._invoke(`throw`,e)},An.prototype.return=function(e){return this._invoke(`return`,e)}})),Mn,Nn,Pn,Fn,In=n((()=>{ce(),T(),k(),j(),N(),On(),jn(),Nn=new WeakMap,Pn=new WeakMap,Mn=Symbol.asyncIterator,Fn=class{constructor(e){w(this,Nn,void 0),w(this,Pn,void 0),O(Nn,this,e),O(Pn,this,new S)}isClosed(){var e;return!((e=A(Pn,this))!=null&&e.pending)}current(){return A(Nn,this)}value(){var e;return[A(Nn,this),(e=A(Pn,this))==null?void 0:e.promise]}update(e){var t;if(!((t=A(Pn,this))!=null&&t.pending))throw Error(`ObservableValue is closed`);O(Nn,this,e instanceof Function?e(A(Nn,this)):e),A(Pn,this).resolve(A(Nn,this)),O(Pn,this,new S)}close(){var e;(e=A(Pn,this))==null||e.resolve(A(Nn,this)),O(Pn,this,void 0)}waitFor(e){var t=this;return M(function*(){if(e(A(Nn,t)))return A(Nn,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}})()}[Mn](){var e=this;return kn(function*(){for(;;){let[t,n]=e.value();if(yield t,!n)return;yield B(n)}})()}}})),Ln,Rn=n((()=>{z(),Ln=(e,t)=>{let n=R({},e);return typeof n==`object`&&t.forEach(e=>{delete n[e]}),n}})),zn=n((()=>{})),Bn,Vn,Hn=n((()=>{h(),Vn=class{constructor(){m(this,`pendingTimeouts`,new Set),m(this,`pendingIntervals`,new Set),m(this,`clearTimeout`,e=>{this.pendingTimeouts.delete(e)&&window.clearTimeout(e)}),m(this,`clearInterval`,e=>{this.pendingIntervals.delete(e)&&window.clearInterval(e)}),m(this,`setTimeout`,(e,t,...n)=>{let r=window.setTimeout(()=>{e(...n),this.clearTimeout(r)},t);return this.pendingTimeouts.add(r),r}),m(this,`setInterval`,(e,t,...n)=>{let r=window.setInterval(()=>{e(...n)},t);return this.pendingIntervals.add(r),r}),m(this,`unload`,()=>{this.pendingIntervals.forEach(this.clearInterval),this.pendingTimeouts.forEach(this.clearTimeout)})}},Bn=Vn,m(Vn,`create`,()=>new Bn)})),Un,Wn,Gn,Kn,qn=n((()=>{Un=(e,t=Date.now())=>{let n=e.length;if(n>0){let r=e[n-1];r.end||(r.end=t)}},Wn=(e,t=Date.now())=>{Un(e),e.push({start:t})},Gn=e=>e.reduce((e,t)=>{var n;return e+(((n=t.end)==null?Date.now():n)-t.start)},0),Kn=(e,t,n=Date.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)}));function Jn(e){try{return e()}catch(e){return e}}var Yn=n((()=>{})),Xn,Zn=n((()=>{Xn=e=>{try{return JSON.parse(e)}catch(e){return}}})),Qn=n((()=>{})),$n,er=n((()=>{se(),h(),z(),$n=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(x)}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)}}})),tr,nr=n((()=>{tr=()=>{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(``)}})),rr,ir,ar=n((()=>{N(),rr=function(){var e=M(function*(e){return new Promise(t=>setTimeout(t,e))});return function(t){return e.apply(this,arguments)}}(),ir=function(){var e=M(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=M(function*(e,t){throw yield e,Error(t)});return function(t,n){return e.apply(this,arguments)}}()})),V=n((()=>{oe(),be(),Se(),we(),ke(),Fe(),Le(),ze(),it(),it(),Ot(),je(),At(),Rt(),ce(),zt(),Vt(),Ut(),le(),Wt(),Qt(),$t(),Ve(),ln(),xn(),Cn(),wn(),Tn(),se(),In(),Rn(),zn(),It(),fn(),Hn(),qn(),Yn(),Zn(),Qn(),er(),nr(),ar()}));V(),h(),N();var or=class extends Ht{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(x)):(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(x),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 M(function*(){try{return(yield fetch(e,{method:`HEAD`})).ok}catch(e){return!1}})()}};V(),h(),N();var sr=class extends Ht{constructor(e){var t;super(),t=this,m(this,`state`,`not casting`),m(this,`config`,void 0),m(this,`unloaded`,!1),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)}),m(this,`init`,M(function*(){return new Promise((e,n)=>{let r=!1,i=setTimeout(()=>{r=!0,n()},1e4);window.__onGCastApiAvailable=a=>{if(r){r=!1;return}if(clearTimeout(i),!a)return n();setTimeout(()=>{try{t.onGCastApiAvailable(),e()}catch(e){n()}},1e3)},t.castLibrariesAdded()&&window.cast?window.__onGCastApiAvailable(!0):t.verifyCastLibraries()})})),m(this,`start`,M(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)||void 0;t.setOptions({receiverApplicationId:r,autoJoinPolicy:chrome.cast.AutoJoinPolicy.TAB_AND_ORIGIN_SCOPED,resumeSavedSession:!0}),t.addEventListener(cast.framework.CastContextEventType.SESSION_STATE_CHANGED,this.onSessionStateChanged),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,`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}))}},cr=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 lr(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`}V();function ur(e){return!(typeof e.edges[0]==`string`||e.channels[0]&&!(`catalog`in e.channels[0]))}function dr(e){return e.tracks.filter(e=>!!e.codec).filter(e=>lr(e.codec||``)).map((e,t)=>{let n=e.codec,r=e.bitrate;xe(n,`codec is required`),xe(r!==void 0,`bitrate is required`);let i=lr(n);if(xe(i,`codec is required`),cr(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 cr(i)===`text`?{track:e,id:t,bitRate:0,codec:i,kind:`subtitles`,codecString:n,label:e.label,language:e.language}:(xe(e.width,`width is required`),xe(e.height,`width is required`),xe(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 fr=e=>`width`in e&&typeof e.width==`number`,pr=e=>`sampleRate`in e&&typeof e.sampleRate==`number`,mr=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`}},hr=()=>2**53-1,gr=()=>({width:2**53-1,height:2**53-1}),_r=e=>!(typeof e!=`object`||!e||!(`type`in e));V();var vr={sizeBasedResolutionCapEnabled:!0,pictureInPictureEnabled:!0,abrEnabled:!0,burstEnabled:!1,mseEnabled:!0,mseOpusEnabled:!0,muted:!1,volume:1,minBufferTime:1500,maxBufferTime:1500,logLevel:tn.OFF,maxSize:gr(),maxVideoBitRate:hr(),maxAudioBitRate:hr(),maxInitialBitRate:2.5*1e3*1e3,tags:[],media:`audio+video`,poster:!0,reconnectHandler:e=>e.reconnectRetries<30,iosWakeLockEnabled:!1,telemetryEnabled:!0,streamToMediaElementEnabled:!1,iosMediaElementEnabled:!1,pauseSupportEnabled:!0,webcodecsHardwareAcceleration:`no-preference`,offscreenCanvasEnabled:void 0,advanced:{},videoCodecs:[`av1`,`h264`,`h265`],webtransportEnabled:!0};function yr(e){return typeof e==`function`?this.then(t=>Promise.resolve(e()).then(()=>t),t=>Promise.resolve(e()).then(()=>{throw t})):this.then()}function br(e=Promise){return typeof e.prototype.finally!=`function`&&Object.defineProperty(e.prototype,`finally`,{configurable:!0,enumerable:!1,value:yr,writable:!0}),e.prototype.finally}br();var xr=e=>{e.width=320,e.height=180,e.style.width=`100%`,e.style.position=`relative`,e.style.backgroundColor=`#000`};L(),T(),h(),z(),j(),k(),D();var Sr={backgroundColor:`rgba(0,0,0,0.6)`,textPadding:8,fontSize:`28px`,lineGap:16},Cr=new WeakMap,wr=new WeakMap,Tr=new WeakMap,Er=new WeakMap,Dr=new WeakSet,Or=class{constructor(){I(this,Dr),w(this,Cr,[]),w(this,wr,document.createElement(`canvas`)),w(this,Tr,void 0),w(this,Er,window.devicePixelRatio||1),m(this,`config`,R({},Sr));let e=A(wr,this).getContext(`2d`,{alpha:!0});if(!e)throw Error(`Failed to create 2d context`);O(Tr,this,e),E(Dr,this,Ar).call(this)}get canvas(){return A(wr,this)}setActiveCues(e){O(Cr,this,e)}render(e,t=!1){let n=A(Cr,this).flatMap(t=>t.text.split(`
2
+ `).flatMap(t=>E(Dr,this,jr).call(this,t,e.width)).map(e=>{E(Dr,this,Ar).call(this);let t=A(Tr,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}}})),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;E(Dr,this,kr).call(this,r,i),A(Tr,this).clearRect(0,0,A(wr,this).width,A(wr,this).height);for(let{size:e,text:t}of n)E(Dr,this,Ar).call(this),A(Tr,this).fillStyle=this.config.backgroundColor,A(Tr,this).fillRect(0,a,e.width,e.height),E(Dr,this,Ar).call(this),A(Tr,this).fillText(t,this.config.textPadding,a+this.config.textPadding),a+=e.height+this.config.lineGap;t&&(A(Tr,this).strokeStyle=`red`,A(Tr,this).strokeRect(0,0,e.width,A(wr,this).height))}};function kr(e,t){A(wr,this).width=e*A(Er,this),A(wr,this).height=t*A(Er,this),A(Tr,this).setTransform(A(Er,this),0,0,A(Er,this),0,0),this.canvas.style.width=`${e}px`,this.canvas.style.height=`${t}px`}function Ar(){A(Tr,this).fillStyle=`white`,A(Tr,this).textAlign=`left`,A(Tr,this).textBaseline=`top`,A(Tr,this).font=`${this.config.fontSize} sans-serif`}function jr(e,t){let n=[],r=e.split(` `),i=``;for(;r.length>0;){E(Dr,this,Ar).call(this);let e=0;for(;A(Tr,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 Mr(e,t){let n=t*.05,r=e*.035;return`${Math.max(Math.round(Math.min(n,r)),16)}px`}function Nr(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 Pr(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}}V(),h();var Fr={width:256,height:144},Ir=class extends Ht{constructor(){super(),m(this,`canvas`,document.createElement(`canvas`)),m(this,`context`,null),m(this,`size`,Fr),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(Fr)}),m(this,`unload`,()=>{this.context=null,this.subtitleRenderer=null,this.hasActiveSubtitles=!1,this.setSize(Fr)}),m(this,`setActiveCues`,(e,t)=>{this.subtitleRenderer||(this.subtitleRenderer=new Or),this.subtitleRenderer.config.fontSize=Mr(t.width,t.height),this.subtitleRenderer.setActiveCues(e),this.subtitleRenderer.render(t),this.hasActiveSubtitles=e.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=Nr({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)))}),xr(this.canvas)}},Lr=`
3
3
  precision mediump float;
4
4
  uniform sampler2D texture;
5
5
 
@@ -11,7 +11,7 @@ void main() {
11
11
 
12
12
  gl_FragColor = vec4(y, y, y, a);
13
13
  }
14
- `,Ir=`
14
+ `,Rr=`
15
15
  attribute vec2 position;
16
16
  varying vec2 texture_coordinate;
17
17
  uniform mat4 model;
@@ -20,7 +20,7 @@ void main() {
20
20
  texture_coordinate = position;
21
21
  gl_Position = model * vec4(position, 0.0, 1.0);
22
22
  }
23
- `,Lr,Rr,zr,Br,Vr,Hr,Ur,Wr,Gr,Kr,qr,Jr,Yr,Xr,Zr,Qr,$r,ei,ti,H,ni,ri,ii,ai,oi,si,ci,li,ui,di,fi,pi,mi,hi,gi,_i,vi,yi,bi,xi,Si,Ci=n((()=>{h(),z(),Lr=`connection_failed`,Rr=`connection_failed_will_not_attempt_again`,zr=`authentication_error`,Br=`authentication_expired`,Vr=`channel_not_found`,Hr=`no_incoming_data_error`,Ur=`connection_inactivity`,Wr=`missing_init_segment`,Gr=`no_track_context`,Kr=`invalid_track_context_state`,qr=`disconnected_by_edge`,Jr=`decoder_error`,Yr=`audio_player_error`,Xr=`unsupported_audio_codec`,Zr=`media_source_error`,Qr=`webgl_context_lost_error`,$r=`access_forbidden`,ei=`channel_switch_failed`,ti=`drm_error`,H=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)}},ni=(e,t)=>new H(`MediaElement Error`,{isFatal:e,code:`media_element_error`,source:t},{mediaErrorCode:t.code}),ri=(e,t)=>new H(`Decoder Error`,{isFatal:e,code:Jr,source:t,type:`internal`}),ii=(e,t,n)=>new H(`No decoder available for audio codec "${e}" in non-MSE playback. ${t}`,{isFatal:!0,code:Xr,source:n,type:`external`},{codec:e,reason:t}),ai=(e,t)=>new H(`Audio Player Error`,{isFatal:e,code:Yr,source:t,type:`internal`}),oi=(e,t)=>new H(`No init segment for rendition id ${e} for channel ${t}`,{isFatal:!1,code:Wr,type:`internal`}),si=(e,t,n,r)=>new H(`MediaSource Error`,{isFatal:e,code:Zr,source:t,type:`internal`},{type:r,consecutiveErrorsCount:n}),ci=(e,t)=>new H(`No track context for ${e}${t?`, rendition id ${t}`:``}`,{isFatal:!1,code:Gr,type:`internal`}),li=(e,t)=>new H(`Track context is in an invalid state for ${e}${t?`, rendition id ${t}`:``}`,{isFatal:!1,code:Kr,type:`internal`}),ui=()=>new H(`Web Audio Context resume timeout`,{isFatal:!1,code:`web_audio_context_resume_timeout`}),di=e=>new H(`Disconnected From Edge Server`,{type:`external`,source:e,isFatal:!1,code:qr}),fi=e=>new H(`Authentication Failed`,{isFatal:!0,code:zr,source:e}),pi=e=>new H(`Authentication Expired`,{isFatal:!0,code:Br,source:e}),mi=(e,t)=>new H(`Connection closed due to inactivity`,{isFatal:!1,code:Ur,source:t,type:e}),hi=(e,t)=>new H(`Channel not found`,{isFatal:!1,code:Vr,source:t,type:e}),gi=e=>new H(`No Incoming Data`,{isFatal:!1,code:Hr,source:e}),_i=e=>new H(`Connection attempt failed`,{isFatal:!1,code:Lr,source:e}),vi=()=>new H(`Connection failed - no more reconnect attempts`,{isFatal:!0,code:Rr}),yi=e=>new H(`WebGL Context Lost`,{isFatal:!1,code:Qr,source:e,type:`internal`}),bi=e=>new H(e,{isFatal:!0,code:$r}),xi=e=>new H(`Channel switch to '${e}' failed`,{isFatal:!1,code:ei}),Si=(e,t=!1,n)=>new H(e,{isFatal:t,code:ti,source:n})}));Ci();var wi=(e,t)=>{let n=e.getContext(`webgl`,t);if(n||(n=e.getContext(`experimental-webgl`,t)),!n)throw new H(`Failed to create webgl context`,{isFatal:!0,code:`failed_to_create_web_gl_context`});return n},Ti=(e,t,n)=>{let r=e.createShader(t);if(!r)throw new H(`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 H(`Failed to compile shader: ${t==null?``:t}`,{isFatal:!0,code:`failed_to_compile_shader`})}return r},Ei=e=>{let t=e.createTexture();if(!t)throw new H(`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},Di=(e,t)=>{let n=e.createBuffer();if(!n)throw new H(`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},Oi=(e,t,n)=>{let r=e.createProgram();if(!r)throw new H(`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 H(`Failed to link program: ${t==null?``:t}`,{isFatal:!0,code:`failed_to_link_program`})}return r};L(),T(),h(),k(),j(),D();var U=new WeakMap,ki=new WeakMap,Ai=new WeakMap,ji=new WeakMap,Mi=new WeakMap,Ni=new WeakSet,Pi=new WeakMap,Fi=class{constructor(e){I(this,Ni),w(this,U,void 0),w(this,ki,void 0),w(this,Ai,void 0),w(this,ji,void 0),w(this,Mi,void 0),m(this,`subtitleRenderer`,new Er),w(this,Pi,(e,t,n,r)=>[e,0,0,0,0,-t,0,0,0,0,1,0,n,r,0,1]),O(U,this,e),O(ki,this,Ei(e)),O(Ai,this,Ti(e,e.FRAGMENT_SHADER,Fr)),O(ji,this,Ti(e,e.VERTEX_SHADER,Ir)),O(Mi,this,Oi(e,A(ji,this),A(Ai,this)))}setActiveCues(e,t){this.subtitleRenderer.config.fontSize=Ar(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=Mr(jr({subtitleWidth:t.width/n,subtitleHeight:t.height/n,canvasWidth:e.canvasWidth,canvasHeight:e.canvasHeight,containerWidth:e.containerWidth,bottomPadding:e.bottomPadding}),e.canvasWidth,e.canvasHeight);A(U,this).useProgram(A(Mi,this)),E(Ni,this,Ii).call(this),E(Ni,this,Li).call(this,r.scaleX,r.scaleY,r.translateX,r.translateY),A(U,this).uniform1i(A(U,this).getUniformLocation(A(Mi,this),`texture`),4),A(U,this).activeTexture(A(U,this).TEXTURE4),A(U,this).bindTexture(A(U,this).TEXTURE_2D,A(ki,this)),A(U,this).enable(A(U,this).BLEND),A(U,this).blendFunc(A(U,this).SRC_ALPHA,A(U,this).ONE_MINUS_SRC_ALPHA),A(U,this).texImage2D(A(U,this).TEXTURE_2D,0,A(U,this).RGBA,A(U,this).RGBA,A(U,this).UNSIGNED_BYTE,t),A(U,this).texParameteri(A(U,this).TEXTURE_2D,A(U,this).TEXTURE_MAG_FILTER,A(U,this).LINEAR),A(U,this).drawArrays(A(U,this).TRIANGLE_STRIP,0,4)}};function Ii(){let e=A(U,this).getAttribLocation(A(Mi,this),`position`);A(U,this).enableVertexAttribArray(e),A(U,this).vertexAttribPointer(e,2,A(U,this).FLOAT,!1,0,0)}function Li(e,t,n,r){let i=A(U,this).getUniformLocation(A(Mi,this),`model`);A(U,this).uniformMatrix4fv(i,!1,A(Pi,this).call(this,e,t,n,r))}var Ri=`
23
+ `,zr,Br,Vr,Hr,Ur,Wr,Gr,Kr,qr,Jr,Yr,Xr,Zr,Qr,$r,ei,ti,ni,ri,H,ii,ai,oi,si,ci,li,ui,di,fi,pi,mi,hi,gi,_i,vi,yi,bi,xi,Si,Ci,wi,Ti=n((()=>{h(),z(),zr=`connection_failed`,Br=`connection_failed_will_not_attempt_again`,Vr=`authentication_error`,Hr=`authentication_expired`,Ur=`channel_not_found`,Wr=`no_incoming_data_error`,Gr=`connection_inactivity`,Kr=`missing_init_segment`,qr=`no_track_context`,Jr=`invalid_track_context_state`,Yr=`disconnected_by_edge`,Xr=`decoder_error`,Zr=`audio_player_error`,Qr=`unsupported_audio_codec`,$r=`media_source_error`,ei=`webgl_context_lost_error`,ti=`access_forbidden`,ni=`channel_switch_failed`,ri=`drm_error`,H=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)}},ii=(e,t)=>new H(`MediaElement Error`,{isFatal:e,code:`media_element_error`,source:t},{mediaErrorCode:t.code}),ai=(e,t)=>new H(`Decoder Error`,{isFatal:e,code:Xr,source:t,type:`internal`}),oi=(e,t,n)=>new H(`No decoder available for audio codec "${e}" in non-MSE playback. ${t}`,{isFatal:!0,code:Qr,source:n,type:`external`},{codec:e,reason:t}),si=(e,t)=>new H(`Audio Player Error`,{isFatal:e,code:Zr,source:t,type:`internal`}),ci=(e,t)=>new H(`No init segment for rendition id ${e} for channel ${t}`,{isFatal:!1,code:Kr,type:`internal`}),li=(e,t,n,r)=>new H(`MediaSource Error`,{isFatal:e,code:$r,source:t,type:`internal`},{type:r,consecutiveErrorsCount:n}),ui=(e,t)=>new H(`No track context for ${e}${t?`, rendition id ${t}`:``}`,{isFatal:!1,code:qr,type:`internal`}),di=(e,t)=>new H(`Track context is in an invalid state for ${e}${t?`, rendition id ${t}`:``}`,{isFatal:!1,code:Jr,type:`internal`}),fi=()=>new H(`Web Audio Context resume timeout`,{isFatal:!1,code:`web_audio_context_resume_timeout`}),pi=e=>new H(`Disconnected From Edge Server`,{type:`external`,source:e,isFatal:!1,code:Yr}),mi=e=>new H(`Authentication Failed`,{isFatal:!0,code:Vr,source:e}),hi=e=>new H(`Authentication Expired`,{isFatal:!0,code:Hr,source:e}),gi=(e,t)=>new H(`Connection closed due to inactivity`,{isFatal:!1,code:Gr,source:t,type:e}),_i=(e,t)=>new H(`Channel not found`,{isFatal:!1,code:Ur,source:t,type:e}),vi=e=>new H(`No Incoming Data`,{isFatal:!1,code:Wr,source:e}),yi=e=>new H(`Connection attempt failed`,{isFatal:!1,code:zr,source:e}),bi=()=>new H(`Connection failed - no more reconnect attempts`,{isFatal:!0,code:Br}),xi=e=>new H(`WebGL Context Lost`,{isFatal:!1,code:ei,source:e,type:`internal`}),Si=e=>new H(e,{isFatal:!0,code:ti}),Ci=e=>new H(`Channel switch to '${e}' failed`,{isFatal:!1,code:ni}),wi=(e,t=!1,n)=>new H(e,{isFatal:t,code:ri,source:n})}));Ti();var Ei=(e,t)=>{let n=e.getContext(`webgl`,t);if(n||(n=e.getContext(`experimental-webgl`,t)),!n)throw new H(`Failed to create webgl context`,{isFatal:!0,code:`failed_to_create_web_gl_context`});return n},Di=(e,t,n)=>{let r=e.createShader(t);if(!r)throw new H(`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 H(`Failed to compile shader: ${t==null?``:t}`,{isFatal:!0,code:`failed_to_compile_shader`})}return r},Oi=e=>{let t=e.createTexture();if(!t)throw new H(`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},ki=(e,t)=>{let n=e.createBuffer();if(!n)throw new H(`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},Ai=(e,t,n)=>{let r=e.createProgram();if(!r)throw new H(`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 H(`Failed to link program: ${t==null?``:t}`,{isFatal:!0,code:`failed_to_link_program`})}return r};L(),T(),h(),k(),j(),D();var U=new WeakMap,ji=new WeakMap,Mi=new WeakMap,Ni=new WeakMap,Pi=new WeakMap,Fi=new WeakSet,Ii=new WeakMap,Li=class{constructor(e){I(this,Fi),w(this,U,void 0),w(this,ji,void 0),w(this,Mi,void 0),w(this,Ni,void 0),w(this,Pi,void 0),m(this,`subtitleRenderer`,new Or),w(this,Ii,(e,t,n,r)=>[e,0,0,0,0,-t,0,0,0,0,1,0,n,r,0,1]),O(U,this,e),O(ji,this,Oi(e)),O(Mi,this,Di(e,e.FRAGMENT_SHADER,Lr)),O(Ni,this,Di(e,e.VERTEX_SHADER,Rr)),O(Pi,this,Ai(e,A(Ni,this),A(Mi,this)))}setActiveCues(e,t){this.subtitleRenderer.config.fontSize=Mr(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=Pr(Nr({subtitleWidth:t.width/n,subtitleHeight:t.height/n,canvasWidth:e.canvasWidth,canvasHeight:e.canvasHeight,containerWidth:e.containerWidth,bottomPadding:e.bottomPadding}),e.canvasWidth,e.canvasHeight);A(U,this).useProgram(A(Pi,this)),E(Fi,this,Ri).call(this),E(Fi,this,zi).call(this,r.scaleX,r.scaleY,r.translateX,r.translateY),A(U,this).uniform1i(A(U,this).getUniformLocation(A(Pi,this),`texture`),4),A(U,this).activeTexture(A(U,this).TEXTURE4),A(U,this).bindTexture(A(U,this).TEXTURE_2D,A(ji,this)),A(U,this).enable(A(U,this).BLEND),A(U,this).blendFunc(A(U,this).SRC_ALPHA,A(U,this).ONE_MINUS_SRC_ALPHA),A(U,this).texImage2D(A(U,this).TEXTURE_2D,0,A(U,this).RGBA,A(U,this).RGBA,A(U,this).UNSIGNED_BYTE,t),A(U,this).texParameteri(A(U,this).TEXTURE_2D,A(U,this).TEXTURE_MAG_FILTER,A(U,this).LINEAR),A(U,this).drawArrays(A(U,this).TRIANGLE_STRIP,0,4)}};function Ri(){let e=A(U,this).getAttribLocation(A(Pi,this),`position`);A(U,this).enableVertexAttribArray(e),A(U,this).vertexAttribPointer(e,2,A(U,this).FLOAT,!1,0,0)}function zi(e,t,n,r){let i=A(U,this).getUniformLocation(A(Pi,this),`model`);A(U,this).uniformMatrix4fv(i,!1,A(Ii,this).call(this,e,t,n,r))}var Bi=`
24
24
  precision mediump float;
25
25
  uniform sampler2D y_texture;
26
26
  uniform sampler2D u_texture;
@@ -36,7 +36,7 @@ void main() {
36
36
 
37
37
  gl_FragColor = vec4(y, u, v, 1) * conversion;
38
38
  }
39
- `,zi=`
39
+ `,Vi=`
40
40
  attribute vec2 position;
41
41
  varying vec2 texture_coordinate;
42
42
  uniform mat4 model;
@@ -45,8 +45,8 @@ void main() {
45
45
  texture_coordinate = position;
46
46
  gl_Position = model * vec4(position, 0.0, 1.0);
47
47
  }
48
- `;Ci(),V(),h();var Bi={width:256,codedWidth:256,height:144,codedHeight:144},Vi={preserveDrawingBuffer:!1,alpha:!1,depth:!1,stencil:!1,antialias:!1,premultipliedAlpha:!1},Hi=class e extends Ht{constructor(){super(),m(this,`canvas`,document.createElement(`canvas`)),m(this,`context`,wi(this.canvas,Vi)),m(this,`pixelShader`,Ti(this.context,this.context.FRAGMENT_SHADER,Ri)),m(this,`vertexShader`,Ti(this.context,this.context.VERTEX_SHADER,zi)),m(this,`buffer`,Di(this.context,e.SQUARE_VERTICES)),m(this,`program`,Oi(this.context,this.vertexShader,this.pixelShader)),m(this,`textures`,{y:Ei(this.context),u:Ei(this.context),v:Ei(this.context)}),m(this,`textRenderer`,void 0),m(this,`size`,Bi),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`,yi(t)),e.preventDefault()}),m(this,`onContextRestored`,()=>{this.emit(`context restored`),this.context=wi(this.canvas,Vi),this.pixelShader=Ti(this.context,this.context.FRAGMENT_SHADER,Ri),this.vertexShader=Ti(this.context,this.context.VERTEX_SHADER,zi),this.buffer=Di(this.context,e.SQUARE_VERTICES),this.program=Oi(this.context,this.vertexShader,this.pixelShader),this.textures={y:Ei(this.context),u:Ei(this.context),v:Ei(this.context)},this.load()}),m(this,`load`,()=>{this.context.useProgram(this.program),this.setupPositionVertexAttributes(),this.texturesNeedRealloc=!0,this.setSize(Bi),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),yr(this.canvas)}getTextRenderer(){return this.textRenderer||(this.textRenderer=new Fi(this.context)),this.textRenderer}};m(Hi,`SQUARE_VERTICES`,new Float32Array([0,0,0,1,1,0,1,1])),m(Hi,`REC709`,[1.16438,0,1.79274,-.97295,1.16438,-.21325,-.53291,.30148,1.16438,2.1124,0,-1.1334,0,0,0,1]),m(Hi,`REC601`,[1.16438,0,1.59603,-.87079,1.16438,-.39176,-.81297,.52959,1.16438,2.01723,0,-1.08139,0,0,0,1]),h(),T(),k(),j(),N(),z();var Ui=new WeakMap,Wi=new WeakMap,Gi=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`,{}),w(this,Ui,void 0),w(this,Wi,void 0),O(Ui,this,t),this.keySystem=e,this.licenseServerUrl=n,this.certificate=r}get statistics(){return{keySystem:A(Ui,this).keySystem,licenseServerUrl:this.licenseServerUrl,mediaKeySystemConfiguration:A(Ui,this).getConfiguration()}}getMediaKeys(){var e=this;return M(function*(){return A(Wi,e)||O(Wi,e,yield A(Ui,e).createMediaKeys()),A(Wi,e)})()}requestLicense(e){var t=this;return M(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 Ki(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 qi(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 Ji(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}T(),k(),j();var Yi=new WeakMap,Xi=class extends Gi{constructor(e,t){super(`clearkey`,e,``),w(this,Yi,void 0),O(Yi,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=Ki(t).toLowerCase(),n=A(Yi,this)[e];n&&i.push({kty:`oct`,alg:`A128KW`,kid:t,k:qi(n)})}}let a=JSON.stringify({keys:i,type:r.type});return new TextEncoder().encode(a)}};N(),z();var Zi={playready:[`150`,`2000`,`3000`],widevine:[`SW_SECURE_CRYPTO`,`SW_SECURE_DECODE`,`HW_SECURE_CRYPTO`,`HW_SECURE_DECODE`,`HW_SECURE_ALL`],fairplay:[``],clearkey:[``]},Qi={initDataTypes:[`cenc`],audioCapabilities:[{contentType:`audio/mp4; codecs="mp4a.40.2"`}],videoCapabilities:[{contentType:`video/mp4; codecs="avc1.42c01f"`}]},$i={fairplay:{keySystem:`com.apple.fps`,supportedConfig:{initDataTypes:[`sinf`],videoCapabilities:[{contentType:`video/mp4; codecs="avc1.42c01f"`}]}},playready:{keySystem:`com.microsoft.playready`,supportedConfig:Qi},widevine:{keySystem:`com.widevine.alpha`,supportedConfig:Qi},clearkey:{keySystem:`org.w3.clearkey`,supportedConfig:Qi}},ea=function(){var e=M(function*(e,t){return navigator.requestMediaKeySystemAccess(e,[t]).catch(()=>void 0)});return function(t,n){return e.apply(this,arguments)}}(),ta=function(){var e=M(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)}}(),na=function(){var e=M(function*(e,t,n,r){let{keySystem:i,supportedConfig:a}=$i[e],{initDataTypes:o,videoCapabilities:s,audioCapabilities:c}=a,l=r==null?void 0:r[e],u=(l==null?void 0:l.videoRobustness)||Zi[e],d=(l==null?void 0:l.audioRobustness)||Zi[e],[f,p]=yield Promise.all([ta(i,o,s,u,`videoCapabilities`,t),ta(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)}}(),ra=function(){var e=M(function*(e,t,n,r){let i;for(let a of e)if(i=yield na(a,t,n,r),i)return{keySystem:a,mediaKeySystemAccess:i}});return function(t,n,r,i){return e.apply(this,arguments)}}(),ia=class extends Gi{constructor(e,t,n){super(`fairplay`,e,t,n)}};V(),z(),N();var aa=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}},oa=class extends Gi{constructor(e,t){super(`playready`,e,t)}requestLicense(e){var t=this;return M(function*(){xe(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=aa(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()})()}},sa=class extends Gi{constructor(e,t){super(`widevine`,e,t)}};Ci(),V(),L(),T(),j(),D(),N(),k(),z();var ca=5e3,W=new WeakMap,la=new WeakMap,ua=new WeakMap,da=new WeakMap,fa=new WeakMap,pa=new WeakMap,ma=new WeakMap,ha=new WeakMap,ga=new WeakMap,_a=new WeakMap,va=new WeakMap,ya=new WeakMap,ba=new WeakSet,xa=new WeakMap,Sa=new WeakMap,Ca=new WeakMap,wa=class{constructor(e,t,n={}){var r=this;I(this,ba),w(this,W,void 0),w(this,la,void 0),w(this,ua,void 0),w(this,da,new S),w(this,fa,void 0),w(this,pa,void 0),w(this,ma,new Map),w(this,ha,void 0),w(this,ga,rt()),w(this,_a,void 0),w(this,va,e=>{if(A(W,this).info(`Received DRM data`,{drmData:e}),window.clearTimeout(A(_a,this)),A(pa,this)){let t=E(ba,this,Ma).call(this,e)[A(pa,this).keySystem];t&&(A(pa,this).licenseServerUrl=t)}A(da,this).resolve(e)}),w(this,ya,e=>{A(W,this).info(`Encrypted event received`,{event:e}),E(ba,this,Ta).call(this,e)}),w(this,xa,e=>{var t,n;A(W,this).debug(`Session message received`,{event:e});let r=e.target,i=e.message;if(!A(ma,this).get(r)){A(W,this).error(`No active session found for event`,{event:e});return}A(W,this).debug(`Requesting license for session`,{sessionId:r.sessionId,licenseServerUrl:(t=A(pa,this))==null?void 0:t.licenseServerUrl}),(n=A(pa,this))==null||n.requestLicense(i).then(e=>{A(W,this).debug(`License received for session`,{sessionId:r.sessionId}),r.update(e).catch(e=>{E(ba,this,Aa).call(this,{message:`Failed to update session with license`,isFatal:!1,error:e})})}).catch(e=>{E(ba,this,Aa).call(this,{message:`Failed to request license`,isFatal:!1,error:e})})}),w(this,Sa,e=>{let t=e.target;A(W,this).debug(`Key status changed for session`,{sessionId:t.sessionId}),t.keyStatuses.forEach((e,t)=>{let n=Ki(window.btoa(String.fromCharCode(...new Uint8Array(t))));A(W,this).debug(`Key status`,{base64kid:n,status:e})})}),w(this,Ca,function(){var e=M(function*(e){let t=E(ba,r,ja).call(r,e);A(W,r).debug(`Prioritized key system list`,{keySystemList:t});let n=yield ra(t,e.videoCodec,e.audioCodec,{widevine:A(fa,r).widevine,playready:A(fa,r).playready});if(!n)return A(W,r).warn(`No supported key system found`),null;A(W,r).debug(`Supported key system found`,n.mediaKeySystemAccess.getConfiguration());let{keySystem:i,mediaKeySystemAccess:a}=n,o=null;return i===`clearkey`?(xe(e.clearkeys,`No clearkeys found`),o=new Xi(a,e.clearkeys)):i===`playready`?(xe(e.playreadyLicenseUrl,`No playreadyLicenseUrl found`),o=new oa(a,e.playreadyLicenseUrl)):i===`widevine`?(xe(e.widevineLicenseUrl,`No widevineLicenseUrl found`),o=new sa(a,e.widevineLicenseUrl)):i===`fairplay`&&(xe(e.fairplayLicenseUrl,`No fairplayLicenseUrl found`),xe(e.fairplayCertificate,`No fairplayCertificate found`),o=new ia(a,e.fairplayLicenseUrl,e.fairplayCertificate)),o&&(o.headers=A(fa,r).headers||{},o.queryParams=A(fa,r).queryParams||{}),o});return function(t){return e.apply(this,arguments)}}()),O(la,this,e),O(W,this,t),O(fa,this,n),A(la,this).on(`received drm data`,A(va,this))}static isSupported(){return!!navigator.requestMediaKeySystemAccess}attach(e){O(ua,this,e),A(W,this).info(`Media element attached`),A(ua,this).addEventListener(`encrypted`,A(ya,this))}getStatistics(){var e,t;return!A(da,this).resolved&&!((e=A(pa,this))!=null&&e.statistics)?null:R(R({},A(da,this).resolved),(t=A(pa,this))==null?void 0:t.statistics)}unload(){var e;A(W,this).info(`Unloading EncryptedMediaExtensions`),A(la,this).off(`received drm data`,A(va,this)),(e=A(ua,this))==null||e.removeEventListener(`encrypted`,A(ya,this)),A(ma,this).forEach((e,t)=>{t.close()}),A(ma,this).clear(),O(ha,this,void 0),O(pa,this,void 0)}set headers(e){A(fa,this).headers=e,A(pa,this)&&(A(pa,this).headers=e)}set queryParams(e){A(fa,this).queryParams=e,A(pa,this)&&(A(pa,this).queryParams=e)}onChannelSwitch(){if(!A(da,this).resolved){A(W,this).debug(`DRM is not used, skipping channel switch handling`);return}tt()&&A(ga,this).platform.safariVersion<18&&E(ba,this,Aa).call(this,{message:`DRM channel switch not supported on Safari < 18`,isFatal:!0}),window.clearTimeout(A(_a,this));let e=A(da,this).resolved;O(da,this,new S),O(_a,this,window.setTimeout(()=>{A(da,this).resolve(e)},ca))}};function Ta(e){var t=this;return M(function*(){try{yield E(ba,t,Ea).call(t),A(W,t).debug(`Media keys initialization completed`),yield E(ba,t,Da).call(t,e.initData,e.initDataType)}catch(e){E(ba,t,Aa).call(t,{message:`Failed to handle encrypted event`,isFatal:!0,error:e})}})()}function Ea(){var e=this;return M(function*(){var t;A(W,e).debug(`Initializing media keys`);let n=yield A(da,e).promise;if((t=A(ua,e))!=null&&t.mediaKeys){A(W,e).debug(`Media keys already set on media element`);return}if(A(ha,e)){A(W,e).debug(`Media keys initialization already in progress, waiting for completion`),yield A(ha,e);return}O(ha,e,M(function*(){let t=yield A(Ca,e).call(e,n);A(W,e).debug(`CDM obtained`,{cdm:t}),xe(A(ua,e),`No media element found`),xe(t,`No CDM found`);let r=yield t.getMediaKeys();t.certificate&&(yield E(ba,e,ka).call(e,r,t.certificate)),A(W,e).debug(`Setting media keys on media element`),yield A(ua,e).setMediaKeys(r),O(pa,e,t)})()),yield A(ha,e)})()}function Da(e,t){var n=this;return M(function*(){xe(A(pa,n),`No CDM manager found`);let r=yield A(pa,n).getMediaKeys();if(!e||!E(ba,n,Oa).call(n,e)){A(W,n).debug(`Duplicate initData, no need to create new session`,{initData:e});return}let i=r.createSession();A(W,n).debug(`Creating new session`,{session:i}),i.addEventListener(`keystatuseschange`,A(Sa,n)),i.closed.then(e=>{A(W,n).info(`Session is closed`,{reason:e})}),i.addEventListener(`message`,A(xa,n)),A(ma,n).set(i,e),A(W,n).debug(`Generating request for session`,{session:i,initDataType:t,initData:e}),yield i.generateRequest(t,e)})()}function Oa(e){for(let[t,n]of A(ma,this))if(Ji(e,n))return!1;return!0}function ka(e,t){var n=this;return M(function*(){try{A(W,n).debug(`Setting server certificate`,{certificate:t}),(yield e.setServerCertificate(t))||A(W,n).warn(`Server certificates are not supported by the CDM.`)}catch(e){A(W,n).error(`Failed to set server certificate`,{error:e})}})()}function Aa(e){let{message:t,isFatal:n,error:r}=e;A(W,this).error(t,{error:r}),A(la,this).emit(`error`,Si(t,n,r))}function ja(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 Ma(e){return{fairplay:e.fairplayLicenseUrl,playready:e.playreadyLicenseUrl,widevine:e.widevineLicenseUrl,clearkey:void 0}}var Na,Pa,Fa=n((()=>{Na=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],Pa=(e,t)=>{let n=Na.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}}));V();var Ia=7,La=8,Ra=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},za=e=>Ra(new DataView(e,0))!==0,Ba=(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}}},Va=e=>e&31,Ha=(e,t)=>{let n=new DataView(e,0),r=Ba(n);for(;r;){let{position:i,nalPrefixSize:a}=r,o=Ba(n,i+4),s=o?o.position-i-a:void 0;if(!t(new DataView(e,i+a,s),a))return;r=o}},Ua=e=>{let t=[],n=[];if(!za(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 Ha(e,e=>{let r=e.byteOffset+e.byteLength;switch(Va(e.getUint8(0))){case La:n.push(e.buffer.slice(e.byteOffset,r));break;case Ia:t.push(e.buffer.slice(e.byteOffset,r));break}return!0}),{sequenceParameterSets:t,pictureParameterSets:n}},Wa=e=>{let t=new DataView(e),n=t.getUint8(1),r=t.getUint8(2),i=t.getUint8(3),a=new Oe(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=Ga[a.readBits(8)])==null?{numerator:0,denumerator:0}:m}return{width:d,height:f,pixelAspectRatio:p,profileIdc:n,constraintFlags:r,levelIdc:i}},Ga=[{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}],Ka=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}};V();var qa=184549376;function Ja(e){let t=new Pe(e),n=Ya(t);(n.flags&qa)!==0&&Xa(t);let r=Za(t);if(String.fromCharCode(...r.frameId)===`TXXX`)return{header:n,txx:Qa(new Pe(t.readBytes(r.size)))}}function Ya(e){return{id:e.readBytes(3),majorVersion:e.readUint8(),minorVersion:e.readUint8(),flags:e.readUint8(),size:e.readUint32()}}function Xa(e){let t=e.readUint32();return e.readBytes(t-4),{}}function Za(e){return{frameId:e.readBytes(4),size:e.readUint32(),flags:e.readUint16()}}function Qa(e){return{encoding:e.readUint8(),description:e.readUtf8String(),value:e.readUtf8String()}}V();function $a(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 eo(e,t){let n=$a(t),r=new Pe(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 to(e){return{version:e.readUint8(),flags:e.readUint24()}}h();var no=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}=to(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(no,`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 io=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=to(t),r=t.byteOffset(),i=0;return i=n.version===1?t.readUint64():t.readUint32(),new e(n,r,i)}};m(io,`type`,`tfdt`),h();var ao=1,oo=2,so=8,co=16,lo=32,uo=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=to(t),r,i,a;return t.readUint32(),(n.flags&ao)>0&&t.readUint64(),(n.flags&oo)>0&&t.readUint32(),(n.flags&so)>0&&(r=t.readUint32()),(n.flags&co)>0&&(i=t.readUint32()),(n.flags&lo)>0&&(a=t.readUint32()),new e(n,r,i,a)}};m(uo,`type`,`tfhd`),h();var fo=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{flags:n}=to(t),r=t.readUint32(),i,a;n&e.TRUN_DATA_OFFSET&&(i=t.readUint32()),n&e.TRUN_FIRST_SAMPLE_FLAGS&&(a=t.readUint32());let o=new e(r,i,a);for(let i=0;i<r;i++)n&e.SAMPLE_DURATION&&o.sampleDurations.push(t.readUint32()),n&e.SAMPLE_SIZE&&o.sampleSizes.push(t.readUint32()),n&e.SAMPLE_FLAGS&&o.sampleFlags.push(t.readUint32()),n&e.SAMPLE_CTS&&o.sampleCts.push(t.readUint32());return o}};m(fo,`TRUN_DATA_OFFSET`,1),m(fo,`TRUN_FIRST_SAMPLE_FLAGS`,4),m(fo,`SAMPLE_DURATION`,256),m(fo,`SAMPLE_SIZE`,512),m(fo,`SAMPLE_FLAGS`,1024),m(fo,`SAMPLE_CTS`,2048),m(fo,`FLAG_SAMPLE_FLAG_IS_NON_SYNC`,65536),m(fo,`FLAG_SAMPLE_DEPENDS_NO`,33554432),m(fo,`FLAG_SAMPLE_DEPENDS_YES`,16777216),m(fo,`type`,`trun`),h();var po=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=Lo(t);e instanceof uo&&(n=e),e instanceof io&&(r=e),e instanceof fo&&(i=e)}return new e(n,r,i)}};m(po,`type`,`traf`),h();var mo=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=Lo(t);e instanceof po&&(n=e)}if(!n)throw Error(`No traf found`);return new e(n)}};m(mo,`type`,`moof`),h();var ho=class e{constructor(){m(this,`type`,e.type)}static decodeData(t){return new e}};m(ho,`type`,`mvhd`),h();var go=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 to(t),t.readUint32(),new e(String.fromCharCode(...t.readBytes(4)))}};m(go,`type`,`hdlr`),h();var _o=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}=to(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(_o,`type`,`mdhd`),h();var vo=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){to(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=Lo(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(vo,`type`,`stsd`),h();var yo=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=Lo(t);e instanceof vo&&(n=e)}if(!n)throw Error(`No stsd found`);return new e(n)}};m(yo,`type`,`stbl`),h();var bo=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=Lo(t);e instanceof yo&&(n=e)}if(!n)throw Error(`No stbl found`);return new e(n)}};m(bo,`type`,`minf`),h();var xo=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=Lo(t);e instanceof go&&(n=e),e instanceof bo&&(r=e),e instanceof _o&&(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(xo,`type`,`mdia`),h();var So=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=to(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(So,`type`,`tkhd`),h();var Co=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=Lo(t);e instanceof So&&(n=e),e instanceof xo&&(r=e)}if(!n)throw Error(`No tkhd found`);if(!r)throw Error(`No mdia found`);return new e(n,r)}};m(Co,`type`,`trak`),h();var wo=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=Lo(t);e instanceof Co&&r.push(e),e instanceof ho&&(n=e)}if(!n)throw Error(`No mvhd found`);return new e(n,r)}};m(wo,`type`,`moov`),h();var To=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(To,`type`,`avcC`);var Eo=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=Lo(t);switch(e.type){case`avcC`:o=e;break}}if(!o)throw Error(`no avcC`);return new e(o,n,r,i,a)}};m(Eo,`type`,`avc1`),h();var Do=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)}},Oo=class e{constructor(t){m(this,`type`,e.type),m(this,`decoderConfig`,void 0),this.decoderConfig=t}static decodeData(t){var n;return to(t),new e((n=Do(t.readRemaining()))==null?new Uint8Array:n)}};m(Oo,`type`,`esds`);var ko=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=Lo(t);e.type===`esds`&&(a=e)}return new e(r,i,a)}};m(ko,`type`,`mp4a`),h();var Ao=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(Ao,`type`,`dOps`);var jo=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(eo(Ao,t),r,i)}};m(jo,`type`,`Opus`),h();var Mo=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}=to(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(Mo,`type`,`prft`),T(),k(),j();var No=new WeakMap,Po=new WeakMap,Fo=class{constructor(e,t){w(this,No,void 0),w(this,Po,void 0),O(No,this,e),O(Po,this,t.readBytes(e.size))}data(){return A(Po,this)}get type(){return A(No,this).type}};V();var Io={moov:wo,trak:Co,tkhd:So,mvhd:ho,moof:mo,traf:po,tfhd:uo,tfdt:io,trun:fo,mdat:ro,mdia:xo,hdlr:go,minf:bo,stbl:yo,mdhd:_o,stsd:vo,prft:Mo,avc1:Eo,avcC:To,esds:Oo,mp4a:ko,Opus:jo,emsg:no};function Lo(e){let t=$a(e),n=Io[t.type],r=new Pe(e.readBytes(t.size));if(!n){let e=new Fo(t,r);return r.readRemaining(),e}let i=n.decodeData(r);return r.readRemaining(),i}V();function Ro(e){if(e.byteLength<8)throw Error(`Buffer too small`);let t=new Pe(e),n=new Map;for(;t.remaining()>0;){let e=Lo(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 wo))throw Error(`moov atom not found`);return{ftyp:r,moov:i}}function zo(e){if(e.byteLength<8)throw Error(`Buffer too small`);let t=new Pe(e),n=new Map,r=[];for(;t.remaining()>0;){let e=Lo(t);e instanceof no&&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 mo))throw Error(`moof atom not found`);if(!a||!(a instanceof ro))throw Error(`mdat atom not found`);if(o&&!(o instanceof Mo))throw Error(`invalid prft found`);return{moof:i,mdat:a,prft:o,emsgs:r}}T(),k(),j();var Bo=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},Vo=new WeakMap,Ho=new WeakMap,Uo=class{constructor(e){w(this,Vo,void 0),w(this,Ho,void 0),O(Vo,this,e),O(Ho,this,Ro(e))}rawBytes(){return A(Vo,this)}init(){return A(Ho,this)}},Wo=new WeakMap,Go=new WeakMap,G=new WeakMap,Ko=new WeakMap,qo=new WeakMap,Jo=new WeakMap,Yo=class e{clone(){return new e(A(Go,this),new Uint8Array(A(Wo,this).buffer.slice(A(Wo,this).byteOffset,A(Wo,this).byteOffset+A(Wo,this).byteLength)))}constructor(e,t){w(this,Wo,void 0),w(this,Go,void 0),w(this,G,void 0),w(this,Ko,void 0),w(this,qo,void 0),w(this,Jo,void 0),O(Wo,this,t),O(Go,this,e),O(G,this,zo(t)),O(Ko,this,A(Go,this).init().moov.traks[0]);let n=A(G,this).moof.traf.trun;O(qo,this,Bo(n==null?void 0:n.sampleSizes)),O(Jo,this,Bo(n==null?void 0:n.sampleDurations))}updateBaseMediaDecodeTime(e){let t=new DataView(A(Wo,this).buffer,A(Wo,this).byteOffset,A(Wo,this).byteLength);if(A(G,this).moof.traf.tfdt)if(A(G,this).moof.traf.tfdt.baseMediaDecodeTime=e,A(G,this).moof.traf.tfdt.extra.version===1){let n=Math.floor(e/4294967296),r=(e&4294967295)>>>0;t.setUint32(A(G,this).moof.traf.tfdt.byteOffset-A(Wo,this).byteOffset,n),t.setUint32(A(G,this).moof.traf.tfdt.byteOffset-A(Wo,this).byteOffset+4,r)}else t.setUint32(A(G,this).moof.traf.tfdt.byteOffset-A(Wo,this).byteOffset,e)}producerReferenceTime(){if(A(G,this).prft)return A(G,this).prft.date()}duration(){let e=A(G,this).moof.traf.trun,t=A(G,this).moof.traf.tfhd;if((e==null?void 0:e.sampleDurations.length)===0){let n=(e==null?void 0:e.samplesCount)||1;if(t!=null&&t.defaultSampleDuration)return(t==null?void 0:t.defaultSampleDuration)*n}return(e==null?void 0:e.sampleDurations.reduce((e,t)=>e+t,0))||0}baseMediaDecodeTime(){var e;let t=(e=A(G,this).moof.traf.tfdt)==null?void 0:e.baseMediaDecodeTime;if(!t)throw Error(`no baseMediaDecodeTime`);return t}startsWithKeyframe(){var e;let t=A(G,this).moof.traf.trun,n=(t==null?void 0:t.firstSampleFlags)||(t==null?void 0:t.sampleFlags[0])||((e=A(G,this).moof.traf.tfhd)==null?void 0:e.defaultSampleFlags);return n?(n&fo.FLAG_SAMPLE_DEPENDS_NO)!==0:!1}compositionTimeOffset(e){var t;return(t=A(G,this).moof.traf.trun)==null?void 0:t.sampleCts[e]}timescale(){let e=A(Ko,this);if(!e)throw Error(`no tracks`);return e.mdia.mdhd.timescale}mediaType(){var e;let t=(e=A(Ko,this))==null?void 0:e.mdia.hdlr.mediaType();if(!t)throw Error(`no media type`);return t}header(){return A(Go,this)}fragment(){return A(G,this)}samplesCount(){var e;return((e=A(G,this).moof.traf.trun)==null?void 0:e.samplesCount)||0}sample(e){var t,n,r,i,a,o,s;let c=A(G,this).moof.traf.trun,l=A(Ko,this),u=(c==null?void 0:c.samplesCount)||0,d=(t=A(G,this).moof.traf.tfdt)==null?void 0:t.baseMediaDecodeTime;if(e>=u||d===void 0||!l)return;let f=l.mdia.minf.stbl.stsd,p=f.codec;if(!p)return;let m=c==null?void 0:c.sampleCts[e],h=(c==null?void 0:c.sampleDurations[e])||0,g=d+(((n=A(Jo,this))==null?void 0:n[e])||0),_=l.mdia.mdhd.timescale||1e3,v=(c==null?void 0:c.sampleSizes[e])||A(G,this).mdat.data.byteLength,ee=((r=A(qo,this))==null?void 0:r[e])||0,y=A(G,this).mdat.data.subarray(ee,ee+v),b=(c==null?void 0:c.is_sync_sample(e))||!1;return l.mdia.hdlr.mediaType()===`video`?{type:`video`,codec:p,width:l.tkhd.width||0,height:l.tkhd.height||0,duration:h,isSync:b,timescale:_,timestamp:g,compositionTimeOffset:m,data:y}:{type:`audio`,codec:p,channels:(f==null||(i=f.opus)==null?void 0:i.channelCount)||(f==null||(a=f.mp4a)==null?void 0:a.channelCount)||0,sampleRate:(f==null||(o=f.opus)==null?void 0:o.sampleRate)||(f==null||(s=f.mp4a)==null?void 0:s.sampleRate)||0,duration:h,isSync:b,timestamp:g,compositionTimeOffset:m,data:y,timescale:_}}rawBytes(){return A(Wo,this)}},Xo=new WeakMap,Zo=class{constructor(e){w(this,Xo,void 0),O(Xo,this,new Uo(e))}header(){return A(Xo,this)}createFragment(e){return new Yo(A(Xo,this),e)}};function K(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 q={ftyp:K(`ftyp`),mvhd:K(`mvhd`),moov:K(`moov`),trak:K(`trak`),tkhd:K(`tkhd`),mdia:K(`mdia`),mdhd:K(`mdhd`),hdlr:K(`hdlr`),minf:K(`minf`),vmhd:K(`vmhd`),smhd:K(`smhd`),dinf:K(`dinf`),dref:K(`dref`),stbl:K(`stbl`),stsd:K(`stsd`),avc1:K(`avc1`),hvc1:K(`hvc1`),hev1:K(`hev1`),av01:K(`av01`),av1C:K(`av1C`),avcC:K(`avcC`),hvcC:K(`hvcC`),esds:K(`esds`),colr:K(`colr`),nclx:K(`nclx`),mvex:K(`mvex`),trex:K(`trex`),udta:K(`udta`),meta:K(`meta`),ilst:K(`ilst`),moof:K(`moof`),mfhd:K(`mfhd`),traf:K(`traf`),tfhd:K(`tfhd`),tfdt:K(`tfdt`),trun:K(`trun`),mdat:K(`mdat`),mp4a:K(`mp4a`),Opus:K(`Opus`),prft:K(`prft`),dOps:K(`dOps`),emsg:K(`emsg`)};V(),h();var Qo=1e3,$o={vide:K(`vide`),soun:K(`soun`),videoHandler:K(`VideoHandler\0`),soundHandler:K(`SoundHandler\0`),url:K(`url `),pasp:K(`pasp`),btrt:K(`btrt`),stts:K(`stts`),stsc:K(`stsc`),stsz:K(`stsz`),stco:K(`stco`),data:K(`data`),mdir:K(`mdir`),appl:K(`appl`)},es=K(`iso6`),ts=new Uint8Array([0,0,2,0]),ns=[es,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([97,118,99,49]),new Uint8Array([109,112,52,49])],rs=[es,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([104,118,99,49]),new Uint8Array([109,112,52,49])],is=[es,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([97,118,48,49]),new Uint8Array([109,112,52,49])],as=[es,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([109,112,52,49])],os=class{constructor(e){m(this,`writer`,void 0),m(this,`moofOffset`,0),this.writer=new Ie(e)}},J=(e,t,n)=>{e.writer.writeUint32(n+8),e.writer.writeBytes(t)},Y=(e,t,n,r,i)=>{J(e,t,n+4),e.writer.writeUint8(r),e.writer.writeUint24(i)},ss=(e,t)=>{J(e,q.ftyp,es.byteLength+ts.byteLength+t.reduce((e,t)=>e+t.byteLength,0)),e.writer.writeBytes(es),e.writer.writeBytes(ts),t.forEach(t=>e.writer.writeBytes(t))},cs=2**32,ls=2208988800,us=(e,t,n,r)=>{Y(e,q.prft,20,1,0);let i=n/1e3,a=Math.floor(i),o=(i-a)*1e3*1e3*cs/1e6;e.writer.writeUint32(t),e.writer.writeUint32(a+ls),e.writer.writeUint32(o),e.writer.writeUint64(r)},ds=(e,t,n)=>{Y(e,q.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)},fs=e=>`sequenceParameterSets`in e,ps=e=>`sequenceHeader`in e,ms=e=>`hvcC`in e,hs=e=>e.type===`video`,gs=e=>e.type===`audio`,_s=(e,t,n)=>{let r=e.writer.position();Y(e,q.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(gs(t)?1:0),e.writer.writeUint16(gs(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])),hs(t)?(e.writer.writeUint32(t.width*65536),e.writer.writeUint32(t.height*65536)):gs(t)&&(e.writer.writeUint32(0),e.writer.writeUint32(0)),e.writer.writeUint32At(r,e.writer.position()-r)},vs=(e,t)=>{Y(e,q.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)},ys=(e,t)=>{let n=e.writer.position();Y(e,q.hdlr,0,0,0),e.writer.writeUint32(0),e.writer.writeBytes(hs(t)?$o.vide:$o.soun),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeBytes(hs(t)?$o.videoHandler:$o.soundHandler),e.writer.writeUint32At(n,e.writer.position()-n)},bs=e=>{let t=e.writer.position();J(e,q.dinf,0),Y(e,q.dref,16,0,0),e.writer.writeUint32(1),Y(e,$o.url,0,0,1),e.writer.writeUint32At(t,e.writer.position()-t)},xs=(e,t)=>{let n=e.writer.position();J(e,q.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)},Ss=(e,t)=>{var n,r;let i=e.writer.position();J(e,q.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)},Cs=(e,t)=>{let n=e.writer.position();J(e,q.hvcC,0),e.writer.writeBytes(t.hvcC),e.writer.writeUint32At(n,e.writer.position()-n)},ws=(e,t)=>{let n=e.writer.position();J(e,ps(t)?q.av01:ms(t)?q.hvc1:q.avc1,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),fs(t)?xs(e,t):ps(t)?(Ss(e,t),t.parsedSequenceHeader.colorConfig&&(J(e,q.colr,11),e.writer.writeBytes(q.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))):ms(t)&&Cs(e,t),t.pixelAspectRatio&&(J(e,$o.pasp,8),e.writer.writeUint32(t.pixelAspectRatio.numerator),e.writer.writeUint32(t.pixelAspectRatio.denumerator)),t.bitrate&&(J(e,$o.btrt,12),e.writer.writeUint32(0),e.writer.writeUint32(t.bitrate),e.writer.writeUint32(t.bitrate)),e.writer.writeUint32At(n,e.writer.position()-n)},Ts=(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)},Es=(e,t)=>{let n=t.decoderConfig.byteLength>0?t.decoderConfig.byteLength+5:0,r=e.writer.position();Y(e,q.esds,0,0,0),Ts(e,3,21+n+5+1),e.writer.writeUint16(t.trackId),e.writer.writeUint8(0),Ts(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&&(Ts(e,5,t.decoderConfig.byteLength),e.writer.writeBytes(t.decoderConfig)),Ts(e,6,1),e.writer.writeUint8(2),e.writer.writeUint32At(r,e.writer.position()-r)},Ds=e=>{switch(e){case`aac`:case`mp3`:return q.mp4a;case`opus`:return q.Opus}},Os=(e,t)=>{let n=e.writer.position();J(e,q.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)},ks=(e,t)=>{let n=e.writer.position();switch(J(e,Ds(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`:Es(e,t);break;case`opus`:Os(e,t);break}t.bitrate&&(J(e,$o.btrt,12),e.writer.writeUint32(0),e.writer.writeUint32(t.bitrate),e.writer.writeUint32(t.bitrate)),e.writer.writeUint32At(n,e.writer.position()-n)},As=(e,t)=>{let n=e.writer.position();J(e,q.stbl,0);let r=e.writer.position();Y(e,q.stsd,0,0,0),e.writer.writeUint32(1),hs(t)?ws(e,t):gs(t)&&ks(e,t),e.writer.writeUint32At(r,e.writer.position()-r),Y(e,$o.stts,4,0,0),e.writer.writeUint32(0),Y(e,$o.stsc,4,0,0),e.writer.writeUint32(0),Y(e,$o.stsz,8,0,0),e.writer.writeUint32(0),e.writer.writeUint32(0),Y(e,$o.stco,4,0,0),e.writer.writeUint32(0),e.writer.writeUint32At(n,e.writer.position()-n)},js=(e,t)=>{let n=e.writer.position();J(e,q.minf,0),hs(t)?(Y(e,q.vmhd,8,0,1),e.writer.writeUint32(0),e.writer.writeUint32(0)):gs(t)&&(Y(e,q.smhd,4,0,0),e.writer.writeUint16(0),e.writer.writeUint16(0)),bs(e),As(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},Ms=(e,t)=>{let n=e.writer.position();J(e,q.mdia,0),vs(e,t),ys(e,t),js(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},Ns=(e,t,n)=>{let r=e.writer.position();J(e,q.trak,0),_s(e,t,n),Ms(e,t),e.writer.writeUint32At(r,e.writer.position()-r)},Ps=(e,t)=>{Y(e,q.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)},Fs=(e,t)=>{let n=e.writer.position();J(e,q.mvex,0),t.forEach(t=>Ps(e,t)),e.writer.writeUint32At(n,e.writer.position()-n)},Is=(e,t,n)=>{let r=e.writer.position();J(e,K(t),0),J(e,$o.data,0),e.writer.writeUint32(1),e.writer.writeUint32(0),e.writer.writeBytes(K(n)),e.writer.writeUint32At(r,e.writer.position()-r),e.writer.writeUint32At(r+8,e.writer.position()-r-8)},Ls=(e,t)=>{let n=e.writer.position();Y(e,q.meta,0,0,0);let r=e.writer.position();J(e,q.hdlr,25),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeBytes($o.mdir),e.writer.writeBytes($o.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();J(e,q.ilst,0),t==null||t.forEach((t,n)=>Is(e,n,t)),e.writer.writeUint32At(i,e.writer.position()-i),e.writer.writeUint32At(n,e.writer.position()-n)},Rs=(e,t)=>{let n=e.writer.position();J(e,q.udta,0),Ls(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},zs=(e,t,n,r)=>{let i=e.writer.position();J(e,q.moov,0),ds(e,0,n),t.forEach(t=>Ns(e,t,n)),Fs(e,t),r&&Rs(e,r),e.writer.writeUint32At(i,e.writer.position()-i)},Bs=(e,t)=>{let n=e.writer.position();Y(e,q.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)},Vs=(e,t)=>{let n=e.writer.position();Y(e,q.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)},Hs=(e,t)=>{if(!t.samples[0])throw Error(`At least one sample must be provided`);let n=t.samples.some(e=>!!e.compositionTimeOffset),r=Us(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();Y(e,q.trun,16,1,a),e.writer.writeUint32(t.samples.length);let s=e.writer.position();e.writer.writeUint32(0),r&&e.writer.writeUint32(Us(t.samples[0]));for(let r of t.samples)i&&(e.writer.writeUint32(r.duration),e.writer.writeUint32(r.data.byteLength),e.writer.writeUint32(Us(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)},Us=e=>e.isSync?33554432:16842752,Ws=(e,t)=>{let n=e.writer.position();J(e,q.traf,0),Bs(e,t),Vs(e,t),Hs(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},Gs=(e,t)=>{Y(e,q.mfhd,4,0,0),e.writer.writeUint32(t)},Ks=(e,t)=>{let n=e.writer.position();J(e,q.moof,0),Gs(e,t.sequenceNumber),Ws(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},qs=(e,t,n)=>{J(e,q.mdat,n);for(let n of t.samples){let t=n.data instanceof ArrayBuffer?new Uint8Array(n.data):n.data;e.writer.writeBytes(t)}},Js=(e,t)=>{let n=new os,r=e.filter(e=>hs(e)&&fs(e)).length>0,i=e.filter(e=>hs(e)&&ms(e)).length>0;return e.filter(e=>hs(e)&&ps(e)).length>0?ss(n,is):i?ss(n,rs):r?ss(n,ns):ss(n,as),zs(n,e,Qo,t),n.writer.buffer()},Ys=e=>{var t;let n=0;for(let t of e.samples)n+=t.data.byteLength;let r=new os(n+256);return((t=e.samples[0])==null?void 0:t.producerReferenceTime)!==void 0&&us(r,e.trackId,e.samples[0].producerReferenceTime,e.timestamp),r.moofOffset=r.writer.position(),Ks(r,e),qs(r,e,n),r.writer.bufferExact()},Xs=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return Ys({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:33554432,defaultDuration:n.duration,samples:e})},Zs=(e,t,n,r)=>Js([{type:`audio`,codec:`aac`,decoderConfig:e,channelCount:t,sampleRate:n,timescale:r,duration:0,trackId:1}]),Qs=e=>{let{sequenceParameterSets:t,pictureParameterSets:n}=Ua(e),r=t[0],i=n[0];if(!r||!i)throw Error(`No sps or pps provided`);return Wa(r)},$s=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return Ys({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:n.isSync?33554432:16842752,defaultDuration:n.duration,samples:e})},ec=(e,t)=>{let{sequenceParameterSets:n,pictureParameterSets:r}=Ua(e),i=Qs(e);return Js([{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}])},tc=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return Ys({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:n.isSync?33554432:16842752,defaultDuration:n.duration,samples:e})},nc=(e,t,n,r)=>Js([{type:`video`,hvcC:new Uint8Array(e),width:n,height:r,timescale:t,duration:0,trackId:1}]),rc=(e,t,n)=>Js([{type:`audio`,trackId:1,channelCount:t,timescale:n,codec:`opus`,decoderConfig:e,duration:0,sampleRate:48e3}]),ic=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return Ys({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:33554432,defaultDuration:n.duration,samples:e})};V(),T(),k(),j();var ac=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 oc=e=>{let t=new Oe(e);return t.peekBit()===1&&t.readBits(32),lc(t),bc(t)},sc=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]},cc=e=>{let t=0;for(;t<100&&e.readBit()===0;)t++;return t>=32?0:e.readBits(t)+(1<<t)-1},lc=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?sc(e):[0,t];return{headerLength:1+i+o,type:r,obuSize:s}},uc=e=>{let t=e.readBits(32),n=e.readBits(32),r=e.readBit()!==0,i=0;return r&&(i=cc(e)+1),{timescale:n,equalPictureInterval:r,numUnitsInDisplayTick:t,numTicksPerPicture:i}},dc=2,fc=2,pc=1,mc=2,hc=2,gc=13,_c=0,vc=2,yc=0,bc=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=uc(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,ee=e.readBit()!==0,y=!1,b=!1,te=!1,ne=!1,re=!1,ie=!1,ae=!1,oe=dc,x=fc,se=0;i||(y=e.readBit()!==0,b=e.readBit()!==0,te=e.readBit()!==0,ne=e.readBit()!==0,re=e.readBit()!==0,re&&(ie=e.readBit()!==0,ae=e.readBit()!==0),oe=e.readBit()===0?e.readBit():dc,x=oe>0?e.readBit()>0?fc:e.readBit():fc,se=re?e.readBits(3):0);let S=e.readBit()!==0,ce=e.readBit()!==0,C=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:ee,enableInterintraCompound:y,enableMaskedCompound:b,enableWarpedMotion:te,enableDualFilter:ne,enableOrderHint:re,enableJntComp:ie,enableRefFrameMvs:ae,seqForceScreenContentTools:oe,seqForceIntegerMv:x,orderHintBits:se,enableSuperres:S,enableCdef:ce,enableRestoration:C,colorConfig:xc(e,n),filmGrainParamsPresent:e.readBit()!==0}},xc=(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=mc,c=hc,l=vc,u=!1,d=0,f=0,p=yc,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=yc,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===pc&&c===gc&&l===_c?(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})},Sc=e=>{let t=oc(e);if(t)return{width:t.maxFrameWidth,height:t.maxFrameHeight}},Cc=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return Ys({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:n.isSync?33554432:16842752,defaultDuration:n.duration,samples:e})},wc=(e,t)=>{let n=oc(e);if(!n)throw Error(`Failed to parse sequence header`);return Js([{type:`video`,parsedSequenceHeader:n,sequenceHeader:new Uint8Array(e),width:n.maxFrameWidth,height:n.maxFrameHeight,timescale:t,duration:0,trackId:1}])},Tc=e=>{let{codec:t,initData:n,timescale:r}=e;switch(t){case`h264`:return Dc(n,r);case`h265`:return kc(n,r,e.width,e.height);case`av1`:return Oc(n,r);case`opus`:return Ac(n,r,e.channelCount||2);case`aac`:return jc(n,r,e.channelCount||2);default:throw Error(`Failed to initialize ${t} segment`)}},Ec=(e,t)=>{switch(e){case`h264`:return Qs(t);case`av1`:return Sc(t)}},Dc=(e,t)=>ec(e,t),Oc=(e,t)=>wc(e,t),kc=(e,t,n,r)=>{if(!n||!r)throw Error(`HEVC init segment requires width and height`);return nc(e,t,n,r)},Ac=(e,t,n)=>rc(new Uint8Array(e),n,t),jc=(e,t,n)=>Zs(new Uint8Array(e),n,t,t),Mc=(e,t)=>{if(!e[0])throw Error(`At least one sample must be provided`);switch(e[0].codec){case`h264`:return $s(e,t);case`h265`:return tc(e,t);case`opus`:return ic(e,t);case`aac`:return Xs(e,t);case`av1`:return Cc(e,t);default:throw Error(`Unsupported codec ${e[0].codec}`)}},Nc,Pc,Fc=n((()=>{Nc=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},Pc=(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}})),Ic=n((()=>{Fc()}));V();var Lc=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}({}),Rc=e=>!!(e&Lc.SYNC),zc=e=>!!(e&Lc.INIT),Bc=e=>!!(e&Lc.RENDITIONS),Vc=e=>!!(e&Lc.TIMED_METADATA),Hc=e=>!!(e&Lc.HAS_COMPOSITION_TIME),Uc=e=>{let t=new DataView(e,0),n=t.getUint8(0),r=t.getUint16(1),i=t.getUint8(3),a=t.getUint8(4),o=Ae(new Uint8Array(e),5,12),s=t.getUint32(13),c=Hc(i)?t.getInt16(17):void 0;return{version:n,renditionId:a,flags:i,timestamp:o,timescale:s,payload:e.slice(r),compositionTimeOffset:c}},Wc=`data:video/mp4;base64,AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAAAGF21kYXTeBAAAbGliZmFhYyAxLjI4AABCAJMgBDIARwAAArEGBf//rdxF6b3m2Ui3lizYINkj7u94MjY0IC0gY29yZSAxNDIgcjIgOTU2YzhkOCAtIEguMjY0L01QRUctNCBBVkMgY29kZWMgLSBDb3B5bGVmdCAyMDAzLTIwMTQgLSBodHRwOi8vd3d3LnZpZGVvbGFuLm9yZy94MjY0Lmh0bWwgLSBvcHRpb25zOiBjYWJhYz0wIHJlZj0zIGRlYmxvY2s9MTowOjAgYW5hbHlzZT0weDE6MHgxMTEgbWU9aGV4IHN1Ym1lPTcgcHN5PTEgcHN5X3JkPTEuMDA6MC4wMCBtaXhlZF9yZWY9MSBtZV9yYW5nZT0xNiBjaHJvbWFfbWU9MSB0cmVsbGlzPTEgOHg4ZGN0PTAgY3FtPTAgZGVhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCB2YnZfbWF4cmF0ZT03NjggdmJ2X2J1ZnNpemU9MzAwMCBjcmZfbWF4PTAuMCBuYWxfaHJkPW5vbmUgZmlsbGVyPTAgaXBfcmF0aW89MS40MCBhcT0xOjEuMDAAgAAAAFZliIQL8mKAAKvMnJycnJycnJycnXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXiEASZACGQAjgCEASZACGQAjgAAAAAdBmjgX4GSAIQBJkAIZACOAAAAAB0GaVAX4GSAhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGagC/AySEASZACGQAjgAAAAAZBmqAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZrAL8DJIQBJkAIZACOAAAAABkGa4C/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmwAvwMkhAEmQAhkAI4AAAAAGQZsgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGbQC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm2AvwMkhAEmQAhkAI4AAAAAGQZuAL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGboC/AySEASZACGQAjgAAAAAZBm8AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZvgL8DJIQBJkAIZACOAAAAABkGaAC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmiAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpAL8DJIQBJkAIZACOAAAAABkGaYC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmoAvwMkhAEmQAhkAI4AAAAAGQZqgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGawC/AySEASZACGQAjgAAAAAZBmuAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZsAL8DJIQBJkAIZACOAAAAABkGbIC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm0AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZtgL8DJIQBJkAIZACOAAAAABkGbgCvAySEASZACGQAjgCEASZACGQAjgAAAAAZBm6AnwMkhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AAAAhubW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAABDcAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAzB0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAA+kAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAALAAAACQAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAPpAAAAAAABAAAAAAKobWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAB1MAAAdU5VxAAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABWaWRlb0hhbmRsZXIAAAACU21pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAhNzdGJsAAAAr3N0c2QAAAAAAAAAAQAAAJ9hdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAALAAkABIAAAASAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAALWF2Y0MBQsAN/+EAFWdCwA3ZAsTsBEAAAPpAADqYA8UKkgEABWjLg8sgAAAAHHV1aWRraEDyXyRPxbo5pRvPAyPzAAAAAAAAABhzdHRzAAAAAAAAAAEAAAAeAAAD6QAAABRzdHNzAAAAAAAAAAEAAAABAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAAIxzdHN6AAAAAAAAAAAAAAAeAAADDwAAAAsAAAALAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAAiHN0Y28AAAAAAAAAHgAAAEYAAANnAAADewAAA5gAAAO0AAADxwAAA+MAAAP2AAAEEgAABCUAAARBAAAEXQAABHAAAASMAAAEnwAABLsAAATOAAAE6gAABQYAAAUZAAAFNQAABUgAAAVkAAAFdwAABZMAAAWmAAAFwgAABd4AAAXxAAAGDQAABGh0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAACAAAAAAAABDcAAAAAAAAAAAAAAAEBAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAQkAAADcAABAAAAAAPgbWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAC7gAAAykBVxAAAAAAALWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABTb3VuZEhhbmRsZXIAAAADi21pbmYAAAAQc21oZAAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAADT3N0YmwAAABnc3RzZAAAAAAAAAABAAAAV21wNGEAAAAAAAAAAQAAAAAAAAAAAAIAEAAAAAC7gAAAAAAAM2VzZHMAAAAAA4CAgCIAAgAEgICAFEAVBbjYAAu4AAAADcoFgICAAhGQBoCAgAECAAAAIHN0dHMAAAAAAAAAAgAAADIAAAQAAAAAAQAAAkAAAAFUc3RzYwAAAAAAAAAbAAAAAQAAAAEAAAABAAAAAgAAAAIAAAABAAAAAwAAAAEAAAABAAAABAAAAAIAAAABAAAABgAAAAEAAAABAAAABwAAAAIAAAABAAAACAAAAAEAAAABAAAACQAAAAIAAAABAAAACgAAAAEAAAABAAAACwAAAAIAAAABAAAADQAAAAEAAAABAAAADgAAAAIAAAABAAAADwAAAAEAAAABAAAAEAAAAAIAAAABAAAAEQAAAAEAAAABAAAAEgAAAAIAAAABAAAAFAAAAAEAAAABAAAAFQAAAAIAAAABAAAAFgAAAAEAAAABAAAAFwAAAAIAAAABAAAAGAAAAAEAAAABAAAAGQAAAAIAAAABAAAAGgAAAAEAAAABAAAAGwAAAAIAAAABAAAAHQAAAAEAAAABAAAAHgAAAAIAAAABAAAAHwAAAAQAAAABAAAA4HN0c3oAAAAAAAAAAAAAADMAAAAaAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAACMc3RjbwAAAAAAAAAfAAAALAAAA1UAAANyAAADhgAAA6IAAAO+AAAD0QAAA+0AAAQAAAAEHAAABC8AAARLAAAEZwAABHoAAASWAAAEqQAABMUAAATYAAAE9AAABRAAAAUjAAAFPwAABVIAAAVuAAAFgQAABZ0AAAWwAAAFzAAABegAAAX7AAAGFwAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTUuMzMuMTAw`;h(),N();var Gc=()=>`wakeLock`in navigator&&window.navigator.userAgent.indexOf(`Samsung`)===-1,Kc=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()}),Gc()&&(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(!Gc()){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`,Wc),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 M(function*(){if(Gc())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(Gc())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()}};T(),k(),j(),L(),D();var qc=/\r\n|\r|\n/,Jc=new WeakMap,Yc=new WeakMap,Xc=class{constructor(e){w(this,Jc,void 0),w(this,Yc,void 0),O(Jc,this,e),O(Yc,this,0)}skipEmptyLines(){let e=0;for(;A(Jc,this)[A(Yc,this)]===``;){var t;O(Yc,this,(t=A(Yc,this),t++,t)),e++}return e}readLine(){var e,t;return A(Jc,this)[O(Yc,this,(e=A(Yc,this),t=e++,e)),t]}takeUntilEmptyLine(){let e=[];for(;A(Jc,this)[A(Yc,this)]!==``;){let t=this.readLine();if(t===void 0)break;e.push(t)}return e}linesLeft(){return A(Jc,this).length-A(Yc,this)}},Zc=new WeakSet,Qc=class{constructor(){I(this,Zc)}parse(e){let t=[],n=new Xc(e.split(qc)),r=n.readLine();if(!r||!r.startsWith(`WEBVTT`))throw Error(`missing 'WEBVTT' signature`);for(;n.readLine()!==``;);for(;n.linesLeft()>0;){let e=E(Zc,this,$c).call(this,n);e&&t.push(e),n.skipEmptyLines()}return t}};function $c(e){e.skipEmptyLines();let t=new Xc(e.takeUntilEmptyLine()),n=t.readLine(),r;if(n!=null&&n.startsWith(`NOTE`))return;if(n!=null&&n.includes(`-->`)||(r=n,n=t.readLine()),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=t.readLine();if(!c)throw Error(`missing text`);let l=E(Zc,this,el).call(this,i),u=E(Zc,this,el).call(this,o);return{id:r,startTime:l,endTime:u,text:c}}function el(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 tl=e=>{let t=window;t.vindralInstances=t.vindralInstances||{},t.vindralInstances[e.getStatistics().clientId.substring(0,8)]=e};Ci(),V(),h(),N();var nl=class extends Ht{constructor({type:e,autoplay:t,muted:n,volume:r,logger:i,poster:a}){var o;super(),o=this,m(this,`element`,void 0),m(this,`logger`,void 0),m(this,`seekTimes`,new C(10)),m(this,`seekStartTime`,void 0),m(this,`_totalSeekTime`,0),m(this,`_userProvidedMuted`,void 0),m(this,`timers`,new Vn),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.timers.setTimeout(()=>{this.timers.setInterval(this.onBufferStateChange,500)},1e4)}),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?`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(x)}),m(this,`play`,()=>{this.element.muted=this._userProvidedMuted,this._play().catch(e=>{if(e instanceof Error){let t=new H(`Media Play Error`,{source:e,isFatal:!1,code:`media_play_error`});this.emit(`error`,t)}})}),m(this,`_play`,M(function*(){try{yield o.element.play(),o._userHasProvidedInput=!o.muted||o._userProvidedMuted}catch(e){if(e instanceof Error&&e.name===`NotAllowedError`)if(o._userHasProvidedInput=!1,o.element.muted)o.emit(`needs user input`,{forAudio:!0,forVideo:!0});else return o.element.muted=!0,o.emit(`needs user input`,{forAudio:!0,forVideo:!1}),o._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`,()=>({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=Date.now()}),m(this,`onSeekEnd`,()=>{if(!this.seekStartTime)return;let e=Date.now()-this.seekStartTime;this.seekTimes.push(e),this._totalSeekTime+=e,this.seekStartTime=void 0}),this.logger=i,this._userProvidedMuted=n,this.element=document.createElement(e),this.element instanceof HTMLVideoElement&&(this.element.playsInline=!0),this.element.controls=!1,this.element.autoplay=t,this.element.muted=n,r!==void 0&&(this.element.volume=r),this.element.style.display=`block`,this.element.style.width=`100%`,this.element.disableRemotePlayback=!0,this.element.setAttribute(`poster`,`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAJCAQAAACRI2S5AAAAEElEQVR42mNkIAAYRxWAAQAG9gAKqv6+AwAAAABJRU5ErkJggg==`),this.onPlayPause(),setTimeout(()=>{!this.element||!a||this.element.setAttribute(`poster`,a)},0),this.addEventListeners()}get seekTime(){return this.seekTimes.isEmpty()?0:jt(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}set muted(e){this._userProvidedMuted=e,this.element.muted=e}get userHasProvidedInput(){return this._userHasProvidedInput}get isPaused(){return this._isPaused}},rl=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=pr(e)?{type:`media-source`,audio:{contentType:mr(e),bitrate:e.bitRate,channels:e.channels.toString(),samplerate:e.sampleRate}}:{type:`media-source`,video:{contentType:mr(e),bitrate:e.bitRate,width:e.width,height:e.height,framerate:e.frameRate[0]/e.frameRate[1]}},navigator.mediaCapabilities.decodingInfo(t)};h(),z();var il,al=.15,ol=.2,sl=.4,cl=.5,ll=.6,ul=15,dl={cooldownTime:3e3,maxBufferingEvents:{last10Seconds:0},maxBufferingRatio:{last10Seconds:0},maxRecentDowngradesCount:3,maxDowngradeLookbackMs:60*1e3,minTimeSpentPlaying:{factor:.5,ratio:.1},maxCooldownRatio:2},fl=e=>t=>t>e,pl=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`,Date.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=Date.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=Date.now()-this.config.maxDowngradeLookbackMs,a=r.filter(fl(i)).length,o=n.filter(fl(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=Date.now()-this.config.maxDowngradeLookbackMs*l,d=r.filter(fl(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>Date.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(ul),c=o<0,l=r.predict(ul)<sl&&r.slope<0,u=r.predict(ul)>ll,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>cl&&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<al)&&c&&t<sl&&s<ol&&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({},dl),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.timeSpentBufferingLast(e)>this.config.maxBufferingEvents.last10Seconds}};il=pl,m(pl,`create`,(e,t,n,r={})=>new il(e,t,n,r)),h(),z();var ml,hl={minBufferTime:1500,maxBufferTime:1500,cooldownTime:3e4,maxBufferingEvents:{last30Seconds:3},maxBufferingRatio:{last30Seconds:.15}},gl=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`,Date.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=Date.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>Date.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({},hl),a),this.emitter=t,this.logger=n}updateConfig(e){this.config=R(R({},this.config),e)}};ml=gl,m(gl,`BUFFER_TIME_STEP_SIZE`,500),m(gl,`BUFFER_TIME_MAX_STEPS`,3),m(gl,`create`,(e,t,n,r,i={})=>new ml(e,t,n,r,i));var _l=e=>e?{Authorization:`Bearer ${e}`}:void 0,vl=(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){}};V(),h(),z(),N();var yl=e=>typeof e==`object`&&!!e&&`message`in e,bl=class extends Error{constructor({status:e,url:t,body:n}){let r=Xn(n),i=yl(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)}},xl=e=>typeof e.status==`number`,Sl=()=>{if(!(typeof window>`u`||typeof document>`u`))return vl(window.location,document)},Cl=e=>{let t=Sl();if(!t||e.searchParams.has(`parentOrigin`))return e;let n=new URL(e.toString());return n.searchParams.append(`parentOrigin`,t),n},wl=function(){var e=M(function*(e,t){let n=Cl(e),r=yield fetch(n.toString(),R({mode:`cors`},t));if(!r.ok)throw new bl({status:r.status,url:n,body:yield r.text()});return r});return function(t,n){return e.apply(this,arguments)}}(),Tl=function(){var e=M(function*(e,t){return yield(yield wl(e,R({},t))).json()});return function(t,n){return e.apply(this,arguments)}}();(function(){var e=M(function*(e){return wl(e)});return function(t){return e.apply(this,arguments)}})();var El=function(){var e=M(function*(e,t){return wl(e,R({method:`POST`},t))});return function(t,n){return e.apply(this,arguments)}}();function Dl(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(),N();var Ol={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`},kl=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 M(function*(){let{channelId:n,channelGroupId:r}=e,i={channelId:n,channelGroupId:r},a=new URL(Ol.lbConnect(e),t.baseUrl),o=t.getAuthToken(i),s=yield Tl(a,{headers:t.getHeaders(o)});if(Dl(s)){let e=s.channels.map(e=>{let n=t.toChannel(e,i),r=dr(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 M(function*(){let n={channelId:e},r=new URL(`channel/${e}`,t.baseUrl),i=t.getAuthToken(n),a=yield Tl(r,{headers:t.getHeaders(i)});return t.toChannel(a,n,i)})()}getChannels(e){var t=this;return M(function*(){let n={channelGroupId:e},r=new URL(`channels/${e}`,t.baseUrl),i=t.getAuthToken(n),a=yield Tl(r,{headers:t.getHeaders(i)}),o=Array.isArray(a)?a:a.channels;return t.toChannels(o,n,i)})()}getHeaders(e){var t;return(t=_l(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(Ol.thumbnails(t,n),this.baseUrl),o=i.map(r=>new URL(`?channelId=${e.channelId}&width=${r.width}&height=${r.height}${Al(t,n)}`,a).toString());return{channelId:e.channelId,name:e.name,isLive:e.isLive,thumbnailUrls:o}}},Al=(e,t)=>t?e.channelGroupId?`&channelGroupId=${e.channelGroupId}&auth.token=${t}&auth.type=jwt`:`&auth.token=${t}&auth.type=jwt`:``,jl=function(e){return e[e.StreamHeaderGroup=4]=`StreamHeaderGroup`,e[e.FetchHeader=5]=`FetchHeader`,e[e.StreamHeaderTrack=60]=`StreamHeaderTrack`,e}({});V(),T(),j(),k(),N(),L(),On(),jn(),D();var Ml,Nl,Pl,Fl,Il,Ll,Rl,zl,Bl,Vl={Normal:0,ObjectDoesNotExist:1,GroupDoesNotExist:2,EndOfGroup:3,EndOfTrackAndGroup:4};function Hl(e){switch(e){case Vl.Normal:case Vl.ObjectDoesNotExist:case Vl.GroupDoesNotExist:case Vl.EndOfGroup:case Vl.EndOfTrackAndGroup:return}throw Error(`Unknown object status ${e}`)}var Ul=new WeakMap,Wl=new WeakMap,Gl=new WeakMap,Kl=new WeakMap,ql=new WeakMap,Jl=new WeakMap,Yl=new WeakMap,Xl=new WeakMap;Ml=Symbol.asyncIterator,Nl=un(),Pl=Symbol.asyncDispose;var Zl=class{endStatus(){return A(Jl,this).promise}constructor(e,t,n,r,i,a){w(this,Ul,void 0),w(this,Wl,void 0),w(this,Gl,void 0),w(this,Kl,void 0),w(this,ql,void 0),w(this,Jl,new S),w(this,Yl,0),w(this,Xl,void 0),O(Ul,this,e),O(Wl,this,t),O(Gl,this,n),O(Kl,this,r),O(ql,this,i),O(Xl,this,a)}groupId(){return A(Wl,this)}subscribeId(){return A(Gl,this)}next(){var e=this;return M(function*(){var t;if(!A(Jl,e).pending||(yield A(Ul,e).isDone()))return{done:!0,value:void 0};let n=A(Yl,e)===0?A(Wl,e):yield A(Ul,e).readBigVarInt(),r=yield A(Ul,e).readBigVarInt(),i=yield A(Ul,e).readVarInt(),a=0,o=new Uint8Array;return i>0?o=yield A(Ul,e).read(i):a=yield A(Ul,e).readVarInt(),Hl(a),(a===Vl.EndOfTrackAndGroup||a===Vl.EndOfGroup)&&A(Jl,e).resolve(a),O(Yl,e,(t=A(Yl,e),t++,t)),{done:!1,value:{subscribeId:A(Gl,e),trackAlias:A(Kl,e),groupId:n,subGroupId:P(0),objectId:r,subscriberPriority:A(ql,e),streamId:A(Xl,e),objectStatus:a,payload:o}}})()}return(){var e=this;return M(function*(){for(;!(yield e.next()).done;);return{done:!0,value:void 0}})()}[Ml](){return this}[Nl](){return Promise.resolve()}[Pl](){return Promise.resolve()}},Ql=new WeakMap,$l=new WeakMap,eu=new WeakMap,tu=new WeakMap,nu=new WeakMap,ru=new WeakSet;Fl=Symbol.asyncIterator,Il=un(),Ll=Symbol.asyncDispose;var iu=class{constructor(e,t,n,r,i){I(this,ru),w(this,Ql,void 0),w(this,$l,void 0),w(this,eu,void 0),w(this,tu,void 0),w(this,nu,void 0),O(Ql,this,e),O($l,this,t),O(eu,this,n),O(tu,this,r),O(nu,this,i)}streamId(){return A(nu,this)}groups(){return E(ru,this,au).call(this)}subscribeId(){return A($l,this)}return(){var e=this;return M(function*(){return yield A(Ql,e).close(),{done:!0,value:void 0}})()}[Fl](){return this}[Il](){return E(ru,this,ou).call(this)}[Ll](){return E(ru,this,ou).call(this)}};function au(){var e=this;return kn(function*(){for(;!(yield B(A(Ql,e).isDone()));){let t=yield B(A(Ql,e).readBigVarInt()),n=new Zl(A(Ql,e),t,A($l,e),A(eu,e),A(tu,e),A(nu,e));if(yield n,(yield B(Promise.race([n.endStatus(),A(Ql,e).closed()])))===Vl.EndOfTrackAndGroup)return}})()}function ou(){return A(Ql,this).close().catch(()=>{})}var su=new WeakMap,cu=new WeakMap,lu=new WeakMap,uu=new WeakMap,du=new WeakMap,fu=new WeakMap,pu=new WeakMap,mu=new WeakMap,hu=new WeakMap,gu=new WeakSet;Rl=Symbol.asyncIterator,zl=un(),Bl=Symbol.asyncDispose;var _u=class{constructor(e,t,n,r,i,a,o){I(this,gu),w(this,su,void 0),w(this,cu,void 0),w(this,lu,void 0),w(this,uu,void 0),w(this,du,void 0),w(this,fu,void 0),w(this,pu,!1),w(this,mu,void 0),w(this,hu,sn.get().createContext(`GroupReader`)),O(su,this,e),O(cu,this,t),O(lu,this,n),O(uu,this,r),O(du,this,i),O(fu,this,a),O(mu,this,o)}streamId(){return A(mu,this)}groupId(){return A(uu,this)}subscribeId(){return A(cu,this)}next(){var e=this;return M(function*(){try{if((yield A(su,e).isDone())||A(pu,e))return{done:!0,value:void 0};let t=yield A(su,e).readBigVarInt(),n=yield A(su,e).readVarInt(),r=0,i=new Uint8Array;return n>0?i=yield A(su,e).read(n):r=yield A(su,e).readVarInt(),Hl(r),r===Vl.EndOfGroup&&O(pu,e,!0),{done:!1,value:{subscribeId:A(cu,e),trackAlias:A(lu,e),groupId:A(uu,e),subGroupId:A(du,e),subscriberPriority:A(fu,e),streamId:A(mu,e),objectId:t,objectStatus:r,payload:i}}}catch(t){return A(hu,e).warn(`Error reading object`,{error:t}),{done:!0,value:void 0}}})()}return(){var e=this;return M(function*(){return yield A(su,e).close().catch(()=>{}),{done:!0,value:void 0}})()}groups(){return E(gu,this,vu).call(this)}[Rl](){return this}[zl](){return E(gu,this,yu).call(this)}[Bl](){return E(gu,this,yu).call(this)}};function vu(){var e=this;return kn(function*(){yield e})()}function yu(){return A(su,this).close().catch(()=>{})}function bu(e,t){return xu.apply(this,arguments)}function xu(){return xu=M(function*(e,t){let n=yield e.readVarInt();switch(n){case jl.StreamHeaderGroup:return new _u(e,yield e.readBigVarInt(),yield e.readBigVarInt(),yield e.readBigVarInt(),yield e.readBigVarInt(),yield e.readUnsigned8(),t);case jl.StreamHeaderTrack:return new iu(e,yield e.readBigVarInt(),yield e.readBigVarInt(),yield e.readUnsigned8(),t);default:throw Error(`Unexpected message type ${n}`)}}),xu.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 Su(t.call(e));n=`@@asyncIterator`,r=`@@iterator`}throw TypeError(`Object is not async iterable`)}function Su(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 Su=function(e){this.s=e,this.n=e.next},Su.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 Su(e)}V(),T(),k(),j();var Cu=new WeakMap,wu=new WeakMap,Tu=class{constructor(e,t){w(this,Cu,void 0),w(this,wu,void 0),O(Cu,this,e),O(wu,this,t)}start(e){A(Cu,this).addEventListener(`message`,t=>{if(typeof t.data==`object`&&t.data instanceof ArrayBuffer){let n=new Uint8Array(t.data);n[0]===A(wu,this)&&e.enqueue(n.subarray(1))}}),A(Cu,this).addEventListener(`error`,()=>e.error(Error(`WebSocket error`))),A(Cu,this).addEventListener(`close`,()=>Jn(()=>e.close()))}cancel(e){A(Cu,this).close(void 0,e)}},Eu=new WeakMap,Du=new WeakMap,Ou=new WeakMap,ku=new WeakMap,Au=class{constructor(e){w(this,Eu,void 0),w(this,Du,null),w(this,Ou,null),w(this,ku,null),O(Eu,this,e)}start(e){O(Du,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])}}}),O(Ou,this,()=>Jn(()=>e.close())),O(ku,this,()=>e.error(Error(`WebSocket error`))),A(Eu,this).addEventListener(`message`,A(Du,this)),A(Eu,this).addEventListener(`error`,A(ku,this)),A(Eu,this).addEventListener(`close`,A(Ou,this))}cancel(e){A(Du,this)&&A(Eu,this).removeEventListener(`message`,A(Du,this)),A(ku,this)&&A(Eu,this).removeEventListener(`error`,A(ku,this)),A(Ou,this)&&A(Eu,this).removeEventListener(`close`,A(Ou,this))}};V(),L(),T(),k(),j(),D(),N();function ju(e,t){return e[t]<<8|e[t+1]}function Mu(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}var Nu=new WeakMap,Pu=new WeakMap,Fu=new WeakMap,Z=new WeakMap,Iu=new WeakMap,Lu=new WeakSet,Ru=class{constructor(e,t){I(this,Lu),w(this,Nu,void 0),w(this,Pu,void 0),w(this,Fu,void 0),w(this,Z,0),w(this,Iu,new TextDecoder),O(Nu,this,e),O(Pu,this,t),O(Fu,this,t.getReader())}readUnsigned8(){var e=this;return M(function*(){var t,n;return yield E(Lu,e,Vu).call(e,1),A(Nu,e)[O(Z,e,(t=A(Z,e),n=t++,t)),n]})()}readString(){var e=this;return M(function*(){let t=yield e.readVarInt(),n=yield e.read(t);return A(Iu,e).decode(n)})()}readVarInt(){var e=this;return M(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 M(function*(){yield E(Lu,e,Vu).call(e,1);let t=A(Nu,e)[A(Z,e)],n=(t&192)>>6;switch(A(Nu,e)[A(Z,e)]=t&63,n){case 0:var r,i;return P(A(Nu,e)[O(Z,e,(r=A(Z,e),i=r++,r)),i]);case 1:{yield E(Lu,e,Vu).call(e,2);let t=A(Z,e);return O(Z,e,A(Z,e)+2),P(ju(A(Nu,e),t))}case 2:{yield E(Lu,e,Vu).call(e,4);let t=A(Z,e);return O(Z,e,A(Z,e)+4),P(Mu(A(Nu,e),t))}case 3:{yield E(Lu,e,Vu).call(e,8);let t=A(Z,e);O(Z,e,A(Z,e)+8);let n=new DataView(A(Nu,e).buffer,A(Nu,e).byteOffset+t,8);return P(Ce?n.getBigUint64(0):n.getUint32(0)*4294967296+n.getUint32(4))}default:throw Error(`Invalid VarInt size`)}})()}read(e){var t=this;return M(function*(){return yield E(Lu,t,Vu).call(t,e),E(Lu,t,Uu).call(t,e)})()}readAll(){var e=this;return M(function*(){for(;yield E(Lu,e,Bu).call(e););return E(Lu,e,Uu).call(e,E(Lu,e,zu).call(e))})()}isDone(){var e=this;return M(function*(){return E(Lu,e,zu).call(e)>0?!1:(yield E(Lu,e,Bu).call(e))===0})()}closed(){var e=this;return M(function*(){return A(Fu,e).closed})()}close(){var e=this;return M(function*(){return A(Fu,e).releaseLock(),A(Pu,e).cancel()})()}};function zu(){return A(Nu,this).length-A(Z,this)}function Bu(){var e=this;return M(function*(){let{value:t,done:n}=yield A(Fu,e).read();if(n)return Promise.resolve(0);if(E(Lu,e,zu).call(e)===0)O(Nu,e,t);else{let n=A(Nu,e).subarray(A(Z,e)),r=new Uint8Array(n.length+t.length);r.set(n),r.set(t,n.byteLength),O(Nu,e,r)}return O(Z,e,0),Promise.resolve(t.length)})()}function Vu(e){var t=this;return M(function*(){for(;E(Lu,t,zu).call(t)<e;)if((yield E(Lu,t,Bu).call(t))===0)throw Error(`Read failed`)})()}function Hu(e){return A(Nu,this).subarray(A(Z,this),A(Z,this)+e)}function Uu(e){let t=E(Lu,this,Hu).call(this,e);return O(Z,this,A(Z,this)+t.length),t}L(),T(),j(),k(),N(),D(),h();var Wu=new WeakMap,Gu=new WeakMap,Ku=new WeakMap,qu=new WeakMap,Ju=new WeakMap,Yu=new WeakMap,Xu=new WeakMap,Zu=new WeakMap,Qu=new WeakSet,$u=class{constructor(e){I(this,Qu),w(this,Wu,new Uint8Array(8)),w(this,Gu,A(Wu,this).subarray(0,1)),w(this,Ku,A(Wu,this).subarray(0,2)),w(this,qu,A(Wu,this).subarray(0,4)),w(this,Ju,A(Wu,this).subarray(0,8)),w(this,Yu,void 0),w(this,Xu,void 0),w(this,Zu,new TextEncoder),O(Yu,this,e),O(Xu,this,A(Yu,this).getWriter())}writeString(e){var t=this;return M(function*(){let n=A(Zu,t).encode(e);return yield t.writeVarInt(n.length),t.write(n)})()}write(e){return A(Xu,this).write(e)}writeUnsigned8(e){return A(Wu,this)[0]=e,A(Xu,this).write(A(Gu,this))}writeVarInt(e){if(e<0)throw Error(`VarInt can not be negative: ${e}`);return A(Xu,this).write(E(Qu,this,ed).call(this,pd(e,A(Wu,this),0)))}writeBigVarInt(e){if(e<0)throw Error(`VarInt can not be negative: ${e}`);return A(Xu,this).write(E(Qu,this,ed).call(this,md(e,A(Wu,this),0)))}flush(){return M(function*(){})()}close(){var e=this;return M(function*(){A(Xu,e).releaseLock(),yield A(Yu,e).close()})()}};function ed(e){switch(e){case 1:return A(Gu,this);case 2:return A(Ku,this);case 4:return A(qu,this);default:return A(Ju,this)}}var td={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},nd=new WeakMap,rd=new WeakMap,id=new WeakMap,ad=new WeakMap,od=class e{constructor(t){w(this,nd,0),w(this,rd,new Uint8Array(e.DEFAULT_BUFFER_SIZE)),w(this,id,void 0),w(this,ad,new TextEncoder),O(id,this,t)}writeString(e){var t=this;return M(function*(){let n=A(ad,t).encode(e);return yield t.writeVarInt(n.length),t.write(n)})()}ensureBufferSpace(e){if(A(rd,this).length-A(nd,this)>=e)return;let t=new Uint8Array(A(rd,this).length+e);t.set(A(rd,this)),O(rd,this,t)}write(e){return this.ensureBufferSpace(e.length),A(rd,this).set(e,A(nd,this)),O(nd,this,A(nd,this)+e.byteLength),Promise.resolve()}writeUnsigned8(e){return this.ensureBufferSpace(1),A(rd,this)[A(nd,this)]=e,O(nd,this,A(nd,this)+1),Promise.resolve()}writeVarInt(e){if(e<0)throw Error(`VarInt can not be negative: ${e}`);return this.ensureBufferSpace(8),O(nd,this,A(nd,this)+pd(e,A(rd,this),A(nd,this))),Promise.resolve()}writeBigVarInt(e){if(e<0)throw Error(`VarInt can not be negative: ${e}`);return this.ensureBufferSpace(8),O(nd,this,A(nd,this)+md(e,A(rd,this),A(nd,this))),Promise.resolve()}flush(){if(A(id,this).readyState!==td.OPEN)throw Error(`Writer is not open`);return A(id,this).send(A(rd,this).subarray(0,A(nd,this))),O(nd,this,0),Promise.resolve()}close(){return A(id,this).close(),Promise.resolve()}};m(od,`DEFAULT_BUFFER_SIZE`,1024);var sd=2**6-1,cd=2**14-1,ld=2**30-1,ud=2**53-1;function dd(e,t,n){t[n]=e>>8&255,t[n+1]=e&255}function fd(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 pd(e,t,n){if(e<=sd)return t[n]=e,1;if(e<=cd)return dd(e|16384,t,n),2;if(e<=ld)return fd(e|2147483648,t,n),4;if(e<=ud)return hd(e,t,n),8;throw Error(`overflow, value larger than 53-bits: ${e}`)}function md(e,t,n){if(e<=sd)return t[n]=Number(e),1;if(e<=cd)return dd(Number(e)|16384,t,n),2;if(e<=ld)return fd(Number(e)|2147483648,t,n),4;if(e<=ud)return hd(Number(e),t,n),8;throw Error(`overflow, value larger than 53-bits: ${e}`)}function hd(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}({});N();function gd(e){return _d.apply(this,arguments)}function _d(){return _d=M(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}),_d.apply(this,arguments)}function vd(e,t){return yd.apply(this,arguments)}function yd(){return yd=M(function*(e,t){yield e.writeVarInt(t.length);for(let n of t)yield e.writeString(n)}),yd.apply(this,arguments)}V(),N();var bd=P(2);function xd(e){return Sd.apply(this,arguments)}function Sd(){return Sd=M(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}),Sd.apply(this,arguments)}function Cd(e,t){return wd.apply(this,arguments)}function wd(){return wd=M(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)}),wd.apply(this,arguments)}N();function Td(e){return Ed.apply(this,arguments)}function Ed(){return Ed=M(function*(e){return{type:Q.Announce,namespace:yield gd(e),params:yield xd(e)}}),Ed.apply(this,arguments)}function Dd(e,t){return Od.apply(this,arguments)}function Od(){return Od=M(function*(e,t){yield vd(e,t.namespace),yield Cd(e,t.params)}),Od.apply(this,arguments)}N();function kd(e){return Ad.apply(this,arguments)}function Ad(){return Ad=M(function*(e){return{type:Q.AnnounceOk,namespace:yield gd(e)}}),Ad.apply(this,arguments)}function jd(e,t){return Md.apply(this,arguments)}function Md(){return Md=M(function*(e,t){yield vd(e,t.namespace)}),Md.apply(this,arguments)}N();var Nd={"latest-group":1,"latest-object":2,"absolute-start":3,"absolute-range":4};function Pd(e){return Fd.apply(this,arguments)}function Fd(){return Fd=M(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}`)}}),Fd.apply(this,arguments)}function Id(e,t){return Ld.apply(this,arguments)}function Ld(){return Ld=M(function*(e,t){let n=Nd[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}`)}}),Ld.apply(this,arguments)}function Rd(e){return zd.apply(this,arguments)}function zd(){return zd=M(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}`)}}),zd.apply(this,arguments)}function Bd(e,t){return Vd.apply(this,arguments)}function Vd(){return Vd=M(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}}),Vd.apply(this,arguments)}function Hd(e){return Ud.apply(this,arguments)}function Ud(){return Ud=M(function*(e){let t=yield e.readBigVarInt(),n=yield e.readBigVarInt(),r=yield gd(e),i=yield e.readString(),a=yield e.readUnsigned8(),o=yield Rd(e),s=yield Pd(e),c=yield xd(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}}),Ud.apply(this,arguments)}function Wd(e,t){return Gd.apply(this,arguments)}function Gd(){return Gd=M(function*(e,t){yield e.writeBigVarInt(t.id),yield e.writeBigVarInt(t.trackAlias),yield vd(e,t.namespace),yield e.writeString(t.name),yield e.writeUnsigned8(t.subscriberPriority),yield Bd(e,t.groupOrder),yield Id(e,t.filterType),yield Cd(e,t.params)}),Gd.apply(this,arguments)}N();var Kd={Unsubscribed:0,InternalError:1,Unauthorized:2,TrackEnded:3,SubscriptionEnded:4,GoingAway:5,Expired:6};function qd(e){return Jd.apply(this,arguments)}function Jd(){return Jd=M(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}}),Jd.apply(this,arguments)}function Yd(e,t){return Xd.apply(this,arguments)}function Xd(){return Xd=M(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))}),Xd.apply(this,arguments)}N();function Zd(e){return Qd.apply(this,arguments)}function Qd(){return Qd=M(function*(e){return{type:Q.SubscribeError,id:yield e.readBigVarInt(),errorCode:yield e.readBigVarInt(),reason:yield e.readString(),trackAlias:yield e.readBigVarInt()}}),Qd.apply(this,arguments)}function $d(e,t){return ef.apply(this,arguments)}function ef(){return ef=M(function*(e,t){yield e.writeBigVarInt(t.id),yield e.writeBigVarInt(t.errorCode),yield e.writeString(t.reason),yield e.writeBigVarInt(t.trackAlias)}),ef.apply(this,arguments)}N();function tf(e){return nf.apply(this,arguments)}function nf(){return nf=M(function*(e){let t=yield e.readBigVarInt(),n=yield e.readBigVarInt(),r=yield Rd(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 xd(e);return{type:Q.SubscribeOk,id:t,groupOrder:r,expires:n,largestInfo:a,params:o}}),nf.apply(this,arguments)}function rf(e,t){return af.apply(this,arguments)}function af(){return af=M(function*(e,t){yield e.writeBigVarInt(t.id),yield e.writeBigVarInt(t.expires),yield Bd(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 Cd(e,t.params)}),af.apply(this,arguments)}N();function of(e){return sf.apply(this,arguments)}function sf(){return sf=M(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 xd(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}}),sf.apply(this,arguments)}function cf(e,t){return lf.apply(this,arguments)}function lf(){return lf=M(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 Cd(e,t.params)}),lf.apply(this,arguments)}V();var uf={Publisher:1,Subscriber:2,Both:3},df={Role:P(0)};N();var ff={Draft07:4278190087};function pf(e){return mf.apply(this,arguments)}function mf(){return mf=M(function*(e){let t=yield e.readVarInt();switch(t){case ff.Draft07:return{type:`known`,value:t};default:return{type:`unknown`,value:t}}}),mf.apply(this,arguments)}N();function hf(e,t){return gf.apply(this,arguments)}function gf(){return gf=M(function*(e,t){yield e.writeVarInt(t.supportedVersions.length);for(let n of t.supportedVersions)yield e.writeVarInt(n.value);yield Cd(e,t.parameters)}),gf.apply(this,arguments)}function _f(e){return vf.apply(this,arguments)}function vf(){return vf=M(function*(e){let t=[],n=yield e.readVarInt();for(let r=0;r<n;r++)t.push(yield pf(e));let r=yield xd(e);if(!r.has(df.Role))throw Error(`Role parameter is required`);return{type:Q.ClientSetup,supportedVersions:t,parameters:r}}),vf.apply(this,arguments)}N();function yf(e,t){return bf.apply(this,arguments)}function bf(){return bf=M(function*(e,t){yield e.writeVarInt(t.selectedVersion.value),yield Cd(e,t.parameters)}),bf.apply(this,arguments)}function xf(e){return Sf.apply(this,arguments)}function Sf(){return Sf=M(function*(e){let t=yield pf(e);if(t.type!==`known`)throw Error(`Expected known version`);let n=yield xd(e);if(!n.has(df.Role))throw Error(`Role parameter is required`);return{type:Q.ServerSetup,selectedVersion:t,parameters:n}}),Sf.apply(this,arguments)}N();function Cf(e){return wf.apply(this,arguments)}function wf(){return wf=M(function*(e){return{type:Q.Unsubscribe,id:yield e.readBigVarInt()}}),wf.apply(this,arguments)}function Tf(e,t){return Ef.apply(this,arguments)}function Ef(){return Ef=M(function*(e,t){yield e.writeBigVarInt(t.id)}),Ef.apply(this,arguments)}L(),T(),k(),j(),D(),N();var Df=new WeakMap,Of=new WeakMap,kf=new WeakSet,Af=class{constructor(e){I(this,kf),w(this,Df,void 0),w(this,Of,new Uint8Array),O(Df,this,e)}write(e){var t=this;return M(function*(){yield A(Df,t).writeVarInt(e.type);let n=new od({close:()=>{},readyState:td.OPEN,send:e=>{O(Of,t,new Uint8Array(e))}});switch(e.type){case Q.Subscribe:yield E(kf,t,Nf).call(t,n,e);break;case Q.Announce:yield E(kf,t,zf).call(t,n,e);break;case Q.SubscribeOk:yield E(kf,t,Pf).call(t,n,e);break;case Q.SubscribeUpdate:yield E(kf,t,If).call(t,n,e);break;case Q.SubscribeError:yield E(kf,t,Ff).call(t,n,e);break;case Q.SubscribeDone:yield E(kf,t,Lf).call(t,n,e);break;case Q.Unsubscribe:yield E(kf,t,Rf).call(t,n,e);break;case Q.ClientSetup:yield E(kf,t,jf).call(t,n,e);break;case Q.ServerSetup:yield E(kf,t,Mf).call(t,n,e);break;case Q.AnnounceOk:yield E(kf,t,Bf).call(t,n,e);break;default:throw Error(`Unknown message type: ${e.type}`)}yield n.flush(),yield A(Df,t).writeVarInt(A(Of,t).byteLength),yield A(Df,t).write(A(Of,t)),yield A(Df,t).flush()})()}close(){var e=this;return M(function*(){return A(Df,e).close()})()}};function jf(e,t){return M(function*(){yield hf(e,t)})()}function Mf(e,t){return M(function*(){yield yf(e,t)})()}function Nf(e,t){return M(function*(){yield Wd(e,t)})()}function Pf(e,t){return M(function*(){yield rf(e,t)})()}function Ff(e,t){return M(function*(){yield $d(e,t)})()}function If(e,t){return M(function*(){yield cf(e,t)})()}function Lf(e,t){return M(function*(){yield Yd(e,t)})()}function Rf(e,t){return M(function*(){yield Tf(e,t)})()}function zf(e,t){return M(function*(){yield Dd(e,t)})()}function Bf(e,t){return M(function*(){yield jd(e,t)})()}T(),k(),j(),N();var Vf=new WeakMap,Hf=new WeakMap,Uf=new WeakMap,Wf=class{constructor(e,t){w(this,Vf,void 0),w(this,Hf,void 0),w(this,Uf,void 0),O(Vf,this,e),O(Hf,this,new Af(e)),O(Uf,this,t)}write(e){var t=this;return M(function*(){yield A(Vf,t).write(A(Uf,t)),yield A(Hf,t).write(e)})()}close(){return A(Vf,this).close()}};V(),N(),P(1025),P(1027),P(1033),P(2048);var Gf=class extends Error{constructor(e,t){super(e),this.errorCode=t}};function Kf(e){return qf.apply(this,arguments)}function qf(){return qf=M(function*(e){return{type:Q.AnnounceError,namespace:yield gd(e),errorCode:yield e.readBigVarInt(),reason:yield e.readString()}}),qf.apply(this,arguments)}N();function Jf(e,t,n){return Yf.apply(this,arguments)}function Yf(){return Yf=M(function*(e,t,n){return{type:Q.Unknown,messageType:t,payload:yield e.read(n)}}),Yf.apply(this,arguments)}V(),T(),k(),j(),N();var Xf=new WeakMap,Zf=class{constructor(e){w(this,Xf,void 0),O(Xf,this,e)}cancel(){return A(Xf,this).close()}read(){var e=this;return M(function*(){let t=yield A(Xf,e).readVarInt(),n=yield A(Xf,e).readVarInt();switch(t){case Q.ServerSetup:return xf(A(Xf,e));case Q.ClientSetup:return _f(A(Xf,e));case Q.Subscribe:return Hd(A(Xf,e));case Q.SubscribeOk:return tf(A(Xf,e));case Q.SubscribeDone:return qd(A(Xf,e));case Q.SubscribeError:return Zd(A(Xf,e));case Q.SubscribeUpdate:return of(A(Xf,e));case Q.Unsubscribe:return Cf(A(Xf,e));case Q.Announce:return Td(A(Xf,e));case Q.AnnounceOk:return kd(A(Xf,e));case Q.AnnounceError:return Kf(A(Xf,e))}return Jf(A(Xf,e),P(t),n)})()}};V(),L(),T(),k(),j(),D(),N();var Qf=new WeakMap,$f=new WeakMap,ep=new WeakMap,tp=new WeakMap,np=new WeakSet,rp=class e{constructor(e,t){I(this,np),w(this,Qf,void 0),w(this,$f,void 0),w(this,ep,new S),w(this,tp,new S),O(Qf,this,e),O($f,this,t),A(ep,this).resolve()}write(e){var t=this;return M(function*(){let n=yield E(np,t,ip).call(t);try{yield A(Qf,t).write(e)}finally{n.resolve()}})()}markPostHandshake(){A(tp,this).resolve()}postHandshake(){return A(tp,this).promise}read(){var e=this;return M(function*(){return A($f,e).read()})()}cancel(){return A($f,this).cancel()}static wrapWebsocket(t){let n=new ReadableStream(new Tu(t,ap._)),r=new Zf(new Ru(new Uint8Array([]),n));return new e(new Wf(new od(t),new Uint8Array([0])),r)}static wrapWebTransport(t){let n=t.writable,r=t.readable;return new e(new Af(new $u(n)),new Zf(new Ru(new Uint8Array,r)))}};function ip(){let e=new S,t=A(ep,this).promise.then(()=>e);return O(ep,this,e),t}var ap={_:0};N();function op(e,t){return sp.apply(this,arguments)}function sp(){return sp=M(function*(e,t){yield e.write({type:Q.ClientSetup,supportedVersions:[{type:`known`,value:ff.Draft07}],parameters:new Map([[df.Role,{type:df.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`)}),sp.apply(this,arguments)}V(),h(),T(),j();var cp=new WeakMap,lp=class{constructor(e){m(this,`announce`,void 0),w(this,cp,new S),this.announce=e}onOk(e){A(cp,this).resolve(e)}onError(e){let t=new Gf(e.reason,e.errorCode);return A(cp,this).reject(t),t}ok(){return A(cp,this).promise}};h();function up(e){return new dp(new lp(e))}var dp=class{constructor(e){m(this,`state`,void 0),this.state=e}};V(),h(),T(),k(),j();var fp=new WeakMap,pp=new WeakMap,mp=new WeakMap,hp=new WeakMap,gp=new WeakMap,_p=new WeakMap,vp=class e{constructor(e){switch(m(this,`subscribe`,void 0),w(this,fp,new S),w(this,pp,new S),w(this,mp,new S),w(this,hp,Date.now()),w(this,gp,new S),w(this,_p,void 0),this.subscribe=e,e.filterType.type){case`absolute-start`:O(_p,this,{startGroup:e.filterType.start.group});break;case`absolute-range`:O(_p,this,{startGroup:e.filterType.start.group,endGroup:e.filterType.end.group});break}}onUpdate(e){O(_p,this,{startGroup:e.start.group}),e.end.group>P(0)&&(A(_p,this).endGroup=e.end.group-P(1))}onError(e){let t=Error(e.reason);return A(fp,this).reject(t),A(pp,this).reject(t),t}onDone(e){e.finalInfo&&(A(_p,this)||O(_p,this,{startGroup:P(0)}),A(_p,this).endGroup=e.finalInfo.group),A(pp,this).resolve(e)}onUnsubscribe(e){A(mp,this).resolve(e)}onOk(t){let n=Math.max(0,Date.now()-A(hp,this)),r=Number(t.expires);if(r>0){let t=Math.max(e.minGraceTime,Math.min(r/10,e.maxGraceTime));Promise.race([rr(r-t-n),this.done().catch(x)]).then(()=>A(gp,this).resolve(this.expiryState())).catch(x)}A(fp,this).resolve(t)}done(){return A(pp,this).promise}ok(){return A(fp,this).promise}range(){return A(_p,this)}close(){A(gp,this).promise.catch(x),A(gp,this).reject(Error(`Subscription closed`))}expiryState(){return A(pp,this).resolved&&A(pp,this).resolved.errorCode!==Kd.Expired?`done`:A(mp,this).pending?`active`:`unsubscribed`}unsubscribed(){return A(mp,this).promise}isUnsubscribed(){return A(mp,this).resolved}expiryNotification(){return A(gp,this).promise}};m(vp,`maxGraceTime`,15e3),m(vp,`minGraceTime`,3e3),T(),k(),j(),N();var yp=new WeakMap,bp=new WeakMap,xp=class{constructor(e){w(this,yp,void 0),w(this,bp,!1),O(yp,this,e)}write(e){var t=this;return M(function*(){A(bp,t)||(yield A(yp,t).writeVarInt(jl.StreamHeaderGroup),yield A(yp,t).writeBigVarInt(e.subscribeId),yield A(yp,t).writeBigVarInt(e.trackAlias),yield A(yp,t).writeBigVarInt(e.groupId),yield A(yp,t).writeBigVarInt(e.subGroupId),yield A(yp,t).writeUnsigned8(e.subscriberPriority),O(bp,t,!0)),yield A(yp,t).writeBigVarInt(e.objectId),yield A(yp,t).writeVarInt(e.payload.length),e.payload.length>0?yield A(yp,t).write(e.payload):yield A(yp,t).writeVarInt(e.objectStatus),yield A(yp,t).flush()})()}close(){var e=this;return M(function*(){yield A(yp,e).close()})()}};function Sp(){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()}}}V(),L(),T(),k(),j(),D(),N();var Cp,wp,Tp,Ep,Dp=new WeakMap,Op=new WeakMap,kp=new WeakMap,Ap=new WeakMap,jp=new WeakMap,Mp=new WeakMap,Np=new WeakSet;Cp=un(),wp=Symbol.asyncDispose;var Pp=class{constructor(e,t,n,r){I(this,Np),w(this,Dp,void 0),w(this,Op,void 0),w(this,kp,void 0),w(this,Ap,void 0),w(this,jp,void 0),w(this,Mp,void 0),O(Dp,this,t),O(Op,this,e),O(kp,this,n),O(Ap,this,r),O(Mp,this,sn.get().createContext(`SubscriptionWriter:${e.subscribe.name}`))}finalInfo(){return A(jp,this)}run(){var e=this;return M(function*(){yield Promise.race([E(Np,e,Fp).call(e).catch(t=>A(Mp,e).error(`error writing subscription`,t)),A(Op,e).unsubscribed(),A(Op,e).done(),A(Op,e).expiryNotification().catch(x)])})()}done(e,t){var n=this;return M(function*(){if(A(Op,n).isUnsubscribed())return;let r={type:Q.SubscribeDone,id:A(Op,n).subscribe.id,errorCode:e,reason:t,finalInfo:A(jp,n)};A(Op,n).onDone(r),yield A(Ap,n).push(r)})()}[Cp](){return this.done(Kd.TrackEnded,`Track ended`)}[wp](){return this.done(Kd.TrackEnded,`Track ended`)}};function Fp(){var e=this;return M(function*(){var t=!1,n=!1,r;try{for(var i=X(A(Dp,e)),a;t=!(a=yield i.next()).done;t=!1){let t=a.value;try{var o=Sp();let n=A(Op,e).range();if(n&&(n.startGroup>t.id||n.endGroup&&n.endGroup<t.id))break;let r=new xp(yield A(kp,e).openSendStream()),i=o.a(new Vp(r,t.consume(),A(Op,e)));yield i.run(),O(jp,e,i.finalGroup())}catch(e){o.e=e}finally{yield o.d()}}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield i.return())}finally{if(n)throw r}}})()}var Ip=new WeakMap,Lp=new WeakMap,Rp=new WeakMap,zp=new WeakMap,Bp=new WeakMap;Tp=un(),Ep=Symbol.asyncDispose;var Vp=class{constructor(e,t,n){w(this,Ip,void 0),w(this,Lp,void 0),w(this,Rp,void 0),w(this,zp,void 0),w(this,Bp,void 0),O(Ip,this,e),O(Lp,this,t),O(Rp,this,n),O(Bp,this,sn.get().createContext(`GroupSubscriptionWriter:${n.subscribe.name}`))}finalGroup(){return A(zp,this)}run(){var e=this;return M(function*(){A(Bp,e).debug(`write group`);var t=!1,n=!1,r;try{for(var i=X(A(Lp,e)),a;t=!(a=yield i.next()).done;t=!1){let t=a.value;yield A(Ip,e).write({subscribeId:A(Rp,e).subscribe.id,trackAlias:A(Rp,e).subscribe.trackAlias,subGroupId:P(0),subscriberPriority:0,groupId:t.groupId,objectId:t.objectId,objectStatus:t.objectStatus,payload:t.payload}),O(zp,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}}A(Bp,e).debug(`write group done`)})()}[Tp](){return A(Ip,this).close().catch(x)}[Ep](){return A(Ip,this).close().catch(x)}};V(),L(),h(),T(),k(),j(),N(),D();var Hp,Up,Wp=new WeakMap,Gp=new WeakMap,Kp=new WeakSet;Hp=un(),Up=Symbol.asyncDispose;var qp=class{constructor(e,t,n){I(this,Kp),m(this,`state`,void 0),w(this,Wp,void 0),w(this,Gp,void 0),this.state=e,O(Wp,this,t),O(Gp,this,n)}ok(e){var t=this;return M(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?P(0):r,l=e.consume(a==null?s:a),u={type:Q.SubscribeOk,id:t.state.subscribe.id,expires:P(0),groupOrder:`ascending`,params:new Map,largestInfo:s?{group:s,object:c}:void 0};return yield A(Gp,t).push(u),new Pp(t.state,l,A(Wp,t),A(Gp,t))})()}invalidRange(){return E(Kp,this,Jp).call(this,P(1),`Invalid range`)}retryTrackAlias(){return E(Kp,this,Jp).call(this,P(2),`Retry track alias`)}trackDoesNotExist(){return E(Kp,this,Jp).call(this,P(3),`Track does not exist`)}unauthorized(){return E(Kp,this,Jp).call(this,P(4),`Unauthorized`)}timeout(){return E(Kp,this,Jp).call(this,P(5),`Timeout`)}[Hp](){return this.trackDoesNotExist()}[Up](){return this.trackDoesNotExist()}};function Jp(e,t){let n={type:Q.SubscribeError,id:this.state.subscribe.id,errorCode:e,reason:t,trackAlias:this.state.subscribe.trackAlias};return A(Gp,this).push(n)}V(),T(),k(),j(),N();var Yp=new WeakMap,Xp=new WeakMap,Zp=new WeakMap,Qp=new WeakMap,$p=new WeakMap,em=new WeakMap,tm=new WeakMap,nm=class{constructor(e,t,n){w(this,Yp,void 0),w(this,Xp,void 0),w(this,Zp,void 0),w(this,Qp,sn.get().createContext(`Publisher`)),w(this,$p,new Fn(new Map)),w(this,em,new Fn(new Map)),w(this,tm,new ye(10)),O(Yp,this,e),O(Xp,this,t),O(Zp,this,n)}announce(e){var t=this;return M(function*(){A(Qp,t).info(`Enter 'announce'`,{namespace:e});try{if(A($p,t).current().has(e.join(`/`)))throw Error(`Duplicate announcement`);let n=new Map,r=A(Yp,t).authToken();r&&n.set(bd,{type:bd,payload:new TextEncoder().encode(r)});let i={type:Q.Announce,namespace:e,params:n},a=up(i);if(A($p,t).update(e=>e.set(i.namespace.join(`/`),a)),yield A(Zp,t).push(i),!(yield Promise.race([a.state.ok(),A(Yp,t).closed()])))throw Error(`Session closed`)}catch(e){throw A(Qp,t).error(`Error 'announce'`,e),e}})()}close(){A(em,this).current().forEach(e=>e.close()),A(em,this).close(),A($p,this).close(),A(tm,this).close()}incomingSubscriptions(){return A(tm,this)}onMessage(e){var t=this;return M(function*(){switch(e.type){case Q.Subscribe:{let n=new vp(e);if(A(em,t).update(t=>(t.set(e.id,n),t)),A(tm,t).isFull()){let e=yield A(tm,t).pop();yield e==null?void 0:e.timeout()}yield A(tm,t).push(new qp(n,A(Xp,t),A(Zp,t)))}break;case Q.SubscribeUpdate:{let n=A(em,t).current().get(e.id);n||A(Qp,t).debug(`No subscription found`,e),n==null||n.onUpdate(e)}break;case Q.Unsubscribe:{let n=A(em,t).current().get(e.id);n||A(Qp,t).debug(`No subscription found`,e),n==null||n.onUnsubscribe(e)}break;case Q.AnnounceOk:{let n=A($p,t).current().get(e.namespace.join(`/`));n||A(Qp,t).warn(`No announcement found`,e),n==null||n.state.onOk(e)}break;case Q.AnnounceError:{let n=A($p,t).current().get(e.namespace.join(`/`));n||A(Qp,t).warn(`No announcement found`,e),n==null||n.state.onError(e)}break;default:break}})()}};V(),h(),T(),k(),j(),L(),N(),On(),jn(),D();var rm,im,am;function om(e,t){let n=new vp(t),[r,i]=pe(100);return[new cm(n,r),new hm(e,n,i)]}var sm=new WeakMap,cm=class{constructor(e,t){m(this,`state`,void 0),w(this,sm,void 0),this.state=e,O(sm,this,t)}onDone(e){this.state.onDone(e)}onData(e){return A(sm,this).push(e)}onError(e){let t=this.state.onError(e);A(sm,this).abort(t)}close(){this.state.close(),A(sm,this).close()}},lm=new WeakMap,um=new WeakMap,dm=new WeakMap,fm=new WeakMap,pm=new WeakMap,mm=new WeakSet;rm=Symbol.asyncIterator,im=un(),am=Symbol.asyncDispose;var hm=class{constructor(e,t,n){I(this,mm),w(this,lm,void 0),w(this,um,void 0),w(this,dm,void 0),w(this,fm,new S),w(this,pm,sn.get().createContext(`SubscriptionConsumer`)),O(lm,this,e),O(um,this,t),O(dm,this,n)}get id(){return A(um,this).subscribe.id}get trackAlias(){return A(um,this).subscribe.trackAlias}get name(){return A(um,this).subscribe.name}range(){return A(um,this).range()}expiryNotification(){return A(um,this).expiryNotification()}update(e,t){var n=this;return M(function*(){let r={type:Q.SubscribeUpdate,id:A(um,n).subscribe.id,start:{group:e,object:P(0)},end:{group:t+P(1),object:P(0)},params:new Map,subscriberPriority:0};A(um,n).onUpdate(r),yield A(lm,n).push(r)})()}unsubscribe(){var e=this;return M(function*(){let t={type:Q.Unsubscribe,id:A(um,e).subscribe.id};A(um,e).onUnsubscribe(t),yield A(lm,e).push(t)})()}close(){var e,t;return A(fm,this).resolve(),(e=(t=A(dm,this)).return)==null?void 0:e.call(t)}closed(){return A(fm,this).promise}done(){return A(um,this).done()}expiryState(){return A(um,this).expiryState()}unsubscribed(){return A(um,this).isUnsubscribed()}return(){var e=this;return M(function*(){return A(fm,e).resolve(),yield e.unsubscribe(),{done:!0,value:void 0}})()}groups(){var e=this;return kn(function*(){var t=!1,n=!1,r;try{for(var i=X(A(dm,e)),a;t=!(a=yield B(i.next())).done;t=!1)try{var o=Sp();let t=o.a(a.value);var s=!1,c=!1,l;try{for(var u=X(t.groups()),d;s=!(d=yield B(u.next())).done;s=!1){let t=d.value;{var f,p;let n=(f=A(um,e).range())==null?void 0:f.startGroup,r=(p=A(um,e).range())==null?void 0:p.endGroup;if(n&&t.groupId()<n||r&&t.groupId()>r)return{done:!0,value:void 0};yield t}}}catch(e){c=!0,l=e}finally{try{s&&u.return!=null&&(yield B(u.return()))}finally{if(c)throw l}}}catch(e){o.e=e}finally{yield B(o.d())}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield B(i.return()))}finally{if(n)throw r}}})()}[rm](){return this.groups()}objects(){var e=this;return kn(function*(){var t=!1,n=!1,r;try{for(var i=X(e.groups()),a;t=!(a=yield B(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 B(l.next())).done;o=!1)yield u.value}catch(e){s=!0,c=e}finally{try{o&&l.return!=null&&(yield B(l.return()))}finally{if(s)throw c}}}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield B(i.return()))}finally{if(n)throw r}}})()}[im](){return E(mm,this,gm).call(this)}[am](){return E(mm,this,gm).call(this)}};function gm(){var e=this;return M(function*(){return A(pm,e).info(`Enter 'dispose'`),yield e.close(),e.unsubscribe()})()}V(),L(),T(),h(),k(),D(),j(),N();var _m=2e3,vm=new WeakMap,ym=new WeakMap,bm=new WeakMap,xm=new WeakMap,Sm=new WeakSet,Cm=class{constructor(e,t){I(this,Sm),w(this,vm,void 0),m(this,`nextSubscribeId`,P(0)),w(this,ym,new Fn(new Map)),w(this,bm,void 0),w(this,xm,sn.get().createContext(`Subscriber`)),O(vm,this,e),O(bm,this,t),E(Sm,this,wm).call(this).catch(x)}subscribe(e,t){var n=this;return M(function*(e,t,r=new Map){A(xm,n).info(`Enter 'subscribe'`,{namespace:e,track:t});try{let i=n.nextSubscribeId++,a=A(vm,n).authToken();a&&r.set(bd,{type:bd,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]=om(A(bm,n),o);if(A(ym,n).update(e=>e.set(i,s)),yield A(bm,n).push(o),!(yield Promise.race([s.state.ok(),A(vm,n).closed()])))throw Error(`Session closed`);return c.closed().then(()=>Promise.race([rr(_m),n.closed()])).then(()=>E(Sm,n,Tm).call(n,c.id)).catch(()=>E(Sm,n,Tm).call(n,c.id)),c}catch(e){throw A(xm,n).error(`Error 'subscribe'`,e),e}}).apply(this,arguments)}closed(){return A(vm,this).closed()}transportType(){return A(vm,this).transportType()}url(){return A(vm,this).url()}onMessage(e){var t=this;return M(function*(){switch(e.type){case Q.Announce:yield A(bm,t).push({type:Q.AnnounceOk,namespace:e.namespace});break;case Q.SubscribeOk:{let n=A(ym,t).current().get(e.id);n&&n.state.onOk(e)}break;case Q.SubscribeError:{let n=A(ym,t).current().get(e.id);n||A(xm,t).warn(`No subscription found`,e),n==null||n.onError(e),E(Sm,t,Tm).call(t,e.id)}break;case Q.SubscribeDone:{let n=A(ym,t).current().get(e.id);n||A(xm,t).debug(`No subscription found`,e),n==null||n.onDone(e)}break;default:break}})()}onObjectReader(e){var t=this;return M(function*(){let n=A(ym,t).current().get(e.subscribeId());if(!n){A(xm,t).warn(`No subscription found`,e.subscribeId());return}yield n.onData(e)})()}close(){A(xm,this).debug(`Enter 'close'`),A(ym,this).current().forEach(e=>e.close()),A(ym,this).close()}};function wm(){var e=this;return M(function*(){var t=!1,n=!1,r;try{for(var i=X(A(ym,e)),a;t=!(a=yield i.next()).done;t=!1){let t=a.value;{let n=[...t.values()].map(e=>e.state.subscribe);A(xm,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}}A(xm,e).debug(`Return 'observeChanges'`)})()}function Tm(e){A(xm,this).debug(`Enter 'deleteSubscription'`),!A(ym,this).isClosed()&&A(ym,this).update(t=>(t.delete(e),t))}V(),L(),T(),h(),k(),D(),j(),N();var Em,Dm,Om=new WeakMap,km=new WeakMap,Am=new WeakMap,jm=new WeakMap,Mm=new WeakMap,Nm=new WeakMap,Pm=new WeakSet;Em=dn(),Dm=Symbol.dispose;var Fm=class{constructor(e,t){I(this,Pm),w(this,Om,void 0),w(this,km,void 0),w(this,Am,new S),w(this,jm,void 0),w(this,Mm,sn.get().createContext(`Session`)),m(this,`subscriber`,void 0),m(this,`publisher`,void 0),w(this,Nm,void 0);let[n,r]=pe(100);O(Om,this,e),O(jm,this,r),this.subscriber=new Cm(this,n),this.publisher=new nm(this,e,n),O(km,this,E(Pm,this,Lm).call(this)),O(Nm,this,new Fn(t)),this.closed().then(()=>this.close()).catch(x)}updateAuthToken(e){A(Nm,this).update(e)}authToken(){return A(Nm,this).current()}transportType(){return A(Om,this).transportType()}url(){return A(Om,this).url()}closed(){return Promise.race([A(km,this),A(Am,this).promise])}fail(e){A(Am,this).pending&&A(Am,this).resolve(e)}close(){try{this.subscriber.close(),this.publisher.close(),A(jm,this).cancel(`closing`),A(Om,this).close()}catch(e){A(Mm,this).warn(`Error closing session`,e)}}[Em](){E(Pm,this,Vm).call(this)}[Dm](){E(Pm,this,Vm).call(this)}};function Im(e){var t=this;return M(function*(){var n,r;switch(A(Mm,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:A(Mm,t).info(`received GoAway`,e);break;default:break}})()}function Lm(){var e=this;return M(function*(){return(yield Promise.all([E(Pm,e,zm).call(e),E(Pm,e,Bm).call(e),E(Pm,e,Rm).call(e)])).find(e=>e instanceof Error)})()}function Rm(){var e=this;return M(function*(){try{var t=!1,n=!1,r;try{for(var i=X(A(jm,e)),a;t=!(a=yield i.next()).done;t=!1){let t=a.value;A(Mm,e).debug(`sending message`,t),yield A(Om,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 A(Mm,e).error(`Error 'runOutgoingMessages'`,t),t}A(Mm,e).info(`Return 'runOutgoingMessages'`)})()}function zm(){var e=this;return M(function*(){try{for(yield A(Om,e).afterHandshake();;){let t=yield A(Om,e).readMessage().catch(()=>void 0);if(!t)break;yield E(Pm,e,Im).call(e,t)}}catch(t){return A(Mm,e).error(`Error 'runControl'`,t),t}finally{A(jm,e).cancel(`closing`)}A(Mm,e).info(`Return 'runControl'`)})()}function Bm(){var e=this;return M(function*(){try{for(;;){var t;let n=yield A(Om,e).objectStream();if(!n)break;yield(t=e.subscriber)==null?void 0:t.onObjectReader(n)}}catch(t){return A(Mm,e).error(`Error 'runObjects'`,t),t}A(Mm,e).info(`Return 'runObjects'`)})()}function Vm(){A(Mm,this).debug(`Enter 'dispose'`),this.close()}L(),T(),k(),j(),D(),N();var Hm=128,Um=new WeakMap,Wm=new WeakMap,Gm=new WeakMap,Km=new WeakMap,qm=new WeakMap,Jm=new WeakSet,Ym=class{constructor(e,t,n){I(this,Jm),w(this,Um,void 0),w(this,Wm,void 0),w(this,Gm,!0),w(this,Km,!1),w(this,qm,void 0),O(Um,this,e),O(Wm,this,t),O(qm,this,n)}writeUnsigned8(e){var t=this;return M(function*(){return E(Jm,t,Xm).call(t),yield E(Jm,t,Zm).call(t),A(Um,t).writeUnsigned8(e)})()}writeVarInt(e){var t=this;return M(function*(){return E(Jm,t,Xm).call(t),yield E(Jm,t,Zm).call(t),A(Um,t).writeVarInt(e)})()}writeBigVarInt(e){var t=this;return M(function*(){return E(Jm,t,Xm).call(t),yield E(Jm,t,Zm).call(t),A(Um,t).writeBigVarInt(e)})()}write(e){var t=this;return M(function*(){return E(Jm,t,Xm).call(t),yield E(Jm,t,Zm).call(t),A(Um,t).write(e)})()}writeString(e){var t=this;return M(function*(){return E(Jm,t,Xm).call(t),yield E(Jm,t,Zm).call(t),A(Um,t).writeString(e)})()}flush(){var e=this;return M(function*(){E(Jm,e,Xm).call(e),O(Gm,e,!0),yield A(Um,e).flush()})()}close(){var e=this;return M(function*(){A(Km,e)||(O(Gm,e,!0),yield E(Jm,e,Zm).call(e,!1),yield A(Um,e).flush(),O(Km,e,!0),A(qm,e).call(e))})()}};function Xm(){if(A(Km,this))throw Error(`Stream is closed`)}function Zm(e=!0){if(A(Gm,this))return O(Gm,this,!1),A(Um,this).writeUnsigned8(A(Wm,this)|(e?Hm:0))}V(),L(),T(),k(),j(),D(),N();var Qm=new WeakMap,$m=new WeakMap,eh=new WeakMap,th=new WeakMap,nh=new WeakMap,rh=new WeakMap,ih=new WeakMap,ah=new WeakSet,oh=class{constructor(e,t){I(this,ah),w(this,Qm,void 0),w(this,$m,void 0),w(this,eh,void 0),w(this,th,void 0),w(this,nh,new Map),w(this,rh,sn.get().createContext(`WebSocketConnection`)),w(this,ih,new Set(Array(128).fill(0).map((e,t)=>t+1))),O(Qm,this,e),O($m,this,t),O(eh,this,new ReadableStream(new Au(e))),A(Qm,this).addEventListener(`close`,e=>{A(rh,this).info(`WebSocket closed`,{code:e.code,reason:e.reason,wasClean:e.wasClean}),A($m,this).markPostHandshake(),A(nh,this).forEach(e=>e.close())})}openSendStream(){let e=A(ih,this).values().next().value;if(!e)throw Error(`No stream IDs available`);return A(ih,this).delete(e),Promise.resolve(new Ym(new od(A(Qm,this)),e,()=>E(ah,this,sh).call(this,e)))}transportType(){return`websocket`}url(){return A(Qm,this).url}afterHandshake(){return A($m,this).postHandshake()}objectStream(){var e=this;return M(function*(){for(;;){O(th,e,A(eh,e).getReader());try{let{value:t,done:n}=yield A(th,e).read();if(n)return;let[r,i,a]=t;if(A(nh,e).has(P(i))){let t=A(nh,e).get(P(i));if(!t)throw Error(`Stream not found`);a.length>0&&(yield t.push(a)),r||(A(rh,e).debug(`Closing stream`,{streamId:i}),t.close(),A(nh,e).delete(P(i)))}else{A(rh,e).debug(`Creating new stream`,{streamId:i});let[t,n]=pe(1e3),o=new ReadableStream({pull(e){return M(function*(){let t=yield n.pop();t?e.enqueue(t):e.close()})()}});if(A(nh,e).set(P(i),t),r||(A(rh,e).debug(`Closing new stream`,{streamId:i}),yield o.cancel(),A(nh,e).delete(P(i))),a.length>0)return yield bu(new Ru(a,o),i)}}finally{var t;(t=A(th,e))==null||t.releaseLock()}}})()}close(){var e;return A($m,this).cancel().catch(x),A(eh,this).cancel(`closing`).catch(x),(e=A(th,this))==null||e.cancel(`closing`).catch(x),A(Qm,this).close()}closed(){return Promise.resolve()}writeMessage(e){var t=this;return M(function*(){yield A($m,t).write(e)})()}readMessage(){var e=this;return M(function*(){return A($m,e).read()})()}};function sh(e){A(ih,this).add(e)}V(),L(),T(),k(),D(),j(),N();var ch=new WeakMap,lh=new WeakMap,uh=new WeakMap,dh=new WeakMap,fh=new WeakMap,ph=new WeakMap,mh=new WeakSet,hh=class{constructor(e,t,n){I(this,mh),w(this,ch,void 0),w(this,lh,void 0),w(this,uh,new ye(100)),w(this,dh,void 0),w(this,fh,0),w(this,ph,sn.get().createContext(`WebTransportConnection`)),O(dh,this,n),O(ch,this,e),O(lh,this,t),E(mh,this,gh).call(this).catch(e=>{A(ph,this).warn(`Incoming streams handling ended with error`,e),A(lh,this).markPostHandshake(),A(uh,this).close()}),A(ch,this).closed.then(()=>{A(lh,this).markPostHandshake(),A(uh,this).close()})}openSendStream(){var e=this;return M(function*(){return new $u(yield A(ch,e).createUnidirectionalStream())})()}transportType(){return`webtransport`}url(){return A(dh,this)}afterHandshake(){return A(lh,this).postHandshake()}closed(){var e=this;return M(function*(){yield A(ch,e).closed})()}close(){A(ch,this).close()}writeMessage(e){var t=this;return M(function*(){yield A(lh,t).write(e)})()}readMessage(){var e=this;return M(function*(){return A(lh,e).read()})()}objectStream(){var e=this;return M(function*(){return A(uh,e).pop()})()}};function gh(){var e=this;return M(function*(){let t=A(ch,e).incomingUnidirectionalStreams.getReader();for(;;){var n;let{value:r,done:i}=yield t.read();if(i){A(uh,e).close();return}let a=new Ru(new Uint8Array,r);yield A(uh,e).push(bu(a,A(fh,e))),O(fh,e,(n=A(fh,e),n++,n))}})()}V(),N();var _h=sn.get().createContext(`MoqClient`);function vh(e){return yh.apply(this,arguments)}function yh(){return yh=M(function*(e){let t=new WebSocket(e.wsUrl||e.url);t.binaryType=`arraybuffer`,yield new Promise((e,n)=>{t.addEventListener(`error`,()=>n(Error(`WebSocket error`)),{once:!0}),t.addEventListener(`open`,e,{once:!0})});let n=rp.wrapWebsocket(t),r=op(n,e.role).catch(e=>{throw _h.warn(`MoQ handshake failed, closing WebSocket`,{error:e}),t.close(),e});e.handshakePipelining||(yield r);let i=new Fm(new oh(t,n),e.authToken);return _h.info(`connected`,{url:e.wsUrl||e.url,transport:`websocket`}),e.handshakePipelining&&r.catch(e=>{i.fail(e)}),i}),yh.apply(this,arguments)}function bh(e){return xh.apply(this,arguments)}function xh(){return xh=M(function*(e){let t=new Uint8Array(64/2);for(let e=0;e<t.length;e+=1)t[e]=parseInt(`60b82e8021689e163c1041b4475ef9c86e7565bc45d1a0aa43f5148769f461c7`.slice(2*e,2*e+2),16);let n=new WebTransport(e.url,{congestionControl:`low-latency`}),r=()=>{n.close()};typeof window<`u`&&typeof window.addEventListener==`function`&&(window.addEventListener(`beforeunload`,r),n.closed.finally(()=>{window.removeEventListener(`beforeunload`,r)}).catch(()=>{})),yield Promise.race([n.ready,n.closed.then(()=>Promise.reject(Error(`WebTransport closed`)))]);let i=yield n.createBidirectionalStream(),a=rp.wrapWebTransport(i),o=op(a,e.role).catch(()=>{n.close()});e.handshakePipelining||(yield o);let s=new Fm(new hh(n,a,e.url.toString()),e.authToken);return _h.info(`connected`,{url:e.url,transport:`webtransport`}),s}),xh.apply(this,arguments)}function Sh(e){return Ch.apply(this,arguments)}function Ch(){return Ch=M(function*(e){if(self.WebTransport&&(e==null?void 0:e.preferredTransport)!==`websocket`&&e.url.protocol.startsWith(`https`)){if(!e.websocketFallbackTimeoutMs)return{session:yield bh(e),transportSelectionReason:void 0};let t=bh(e).catch(()=>vh(e)),n=yield Promise.race([t,rr(e.websocketFallbackTimeoutMs)]);return n?{session:n,transportSelectionReason:n.transportType()===`websocket`?`fallback`:void 0}:{session:yield vh(e),transportSelectionReason:`fallback`}}let t;return t=(e==null?void 0:e.preferredTransport)===`websocket`?`disabled`:self.WebTransport?`unavailable`:`unsupported`,{session:yield vh(e),transportSelectionReason:t}}),Ch.apply(this,arguments)}V(),T(),j();var wh=new WeakMap,Th=class{constructor(){w(this,wh,{name:``,priority:0,groupOrder:`ascending`,filterType:{type:`latest-group`}})}name(e){return A(wh,this).name=e,this}priority(e){return A(wh,this).priority=e,this}groupOrder(e){return A(wh,this).groupOrder=e,this}startGroup(e){return A(wh,this).filterType={type:`absolute-start`,start:{group:e,object:P(0)}},this}range(e,t){return A(wh,this).filterType={type:`absolute-range`,start:{group:e,object:P(0)},end:{group:t,object:P(0)}},this}build(){return A(wh,this)}};T(),k(),j();var Eh=new WeakMap,Dh=new WeakMap,Oh=class{constructor(e,t){w(this,Eh,void 0),w(this,Dh,void 0),O(Eh,this,e),O(Dh,this,t)}subscribe(e,t=new Map){return A(Eh,this).subscribe(this.namespace(),e,t)}closed(){return A(Eh,this).closed()}namespace(){return A(Dh,this).namespace}};function kh(e,t){return t?[`com.vindral.moq`,e,t]:[`com.vindral.moq`,e]}function Ah(e){let t=e[1];if(!t)throw Error(`namespace must contain a channel ID`);return t}function jh(e){return`tracks`in e}function Mh(e){let t=new TextDecoder().decode(e);return JSON.parse(t)}V(),L(),T(),j(),k(),D(),N();var Nh,Ph=new WeakMap,Fh=new WeakMap,Ih=new WeakMap,Lh=new WeakMap,Rh=new WeakMap,zh=new WeakMap,Bh=new WeakSet;Nh=Symbol.asyncIterator;var Vh=class e{constructor(e,t){var n=this;I(this,Bh),w(this,Ph,void 0),w(this,Fh,void 0),w(this,Ih,new C(100)),w(this,Lh,void 0),w(this,Rh,void 0),w(this,zh,function(){var e=M(function*(e){if(!e)return A(Ph,n).close();if(A(Lh,n))return;let t=A(Ih,n).items().reduce((e,t)=>e<t?e:t,e);O(Lh,n,E(Bh,n,Hh).call(n,t,e)),A(Lh,n).size===0&&(yield A(Ph,n).close())});return function(t){return e.apply(this,arguments)}}()),O(Ph,this,e),O(Fh,this,t),e.done().then(function(){var e=M(function*(e){var t;return A(zh,n).call(n,(t=e.finalInfo)==null?void 0:t.group)});return function(t){return e.apply(this,arguments)}}()).catch(x),O(Rh,this,e.groups())}static subscribe(t,n){return M(function*(){return new e(yield t.subscribe(n),void 0)})()}subscribeId(){return A(Ph,this).id}name(){return A(Ph,this).name}largestGroupId(){return A(Fh,this)}needsRenewal(){return A(Ph,this).expiryState()===`active`&&A(Lh,this)===void 0}endOfTrack(e){let t=A(Ih,this).items().reduce((e,t)=>e<t?e:t,e);return this.update(t,e)}update(e,t){var n=this;return M(function*(){return O(Lh,n,E(Bh,n,Hh).call(n,e,t)),A(Lh,n).size===0&&(yield A(Ph,n).close()),A(Ph,n).update(e,t)})()}unsubscribe(){return A(Ph,this).unsubscribe()}next(){var e=this;return M(function*(){var t;if(A(Lh,e)&&A(Lh,e).size===0)return{done:!0,value:void 0};let n=yield A(Rh,e).next();if(n.done)return n;let r=n.value.groupId();return(t=A(Lh,e))==null||t.delete(r),A(Ih,e).push(r),A(Fh,e)||O(Fh,e,r),O(Fh,e,A(Fh,e)<r?r:A(Fh,e)),n})()}return(){return A(Ph,this).return()}[Nh](){return this}};function Hh(e,t){let n=new Set;for(let r=e;r<=t;r++)n==null||n.add(r);return A(Ih,this).items().forEach(e=>{n==null||n.delete(e)}),n}Dn();function Uh(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 En(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}V(),L(),T(),j(),D(),N(),k(),On(),jn();var Wh,Gh=new WeakMap,Kh=new WeakMap,qh=new WeakMap,Jh=new WeakMap,Yh=new WeakSet,Xh=new WeakMap;Wh=Symbol.asyncIterator;var Zh=class e{constructor(e){var t=this;I(this,Yh),w(this,Gh,void 0),w(this,Kh,void 0),w(this,qh,new ye(10)),w(this,Jh,void 0),w(this,Xh,function(){var e=M(function*(e,n){try{var r=Sp();let i=r.u(yield A(Gh,t).lock()),a={subscribeId:i.value.subscribeId()};if(!i.value.needsRenewal()){A(Jh,t).debug(`Subscription does not need renewal`,a);return}let o=i.value.largestGroupId(),s=o!==void 0,c=new Th().name(n.name).priority(n.priority).groupOrder(n.groupOrder);switch(a.largestGroupId=o,A(Jh,t).debug(`Renewing subscription`,a),n.filterType.type){case`absolute-range`:A(Jh,t).debug(`Absolute range is not renewed`,a);return;case`absolute-start`:case`latest-group`:case`latest-object`:s&&c.startGroup(o+P(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(Yh,t,Qh).call(t,u)).catch(x),u.expiryNotification().then(()=>A(Xh,t).call(t,e,l)).catch(x);let d=new Vh(u,o);i.value=d,yield A(qh,t).push(d),A(Jh,t).info(`Subscription renewed`,a)}catch(e){r.e=e}finally{r.d()}});return function(t,n){return e.apply(this,arguments)}}()),O(Gh,this,new bn(e)),O(Kh,this,e),O(Jh,this,sn.get().createContext(`Renewable '${e.name()}'`))}static subscribe(t,n,r){return M(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 Vh(o,a));return o.done().then(()=>E(Yh,s,Qh).call(s,o)).catch(x),o.expiryNotification().then(()=>A(Xh,s).call(s,t,n)).catch(x),s})()}largestGroupId(){return A(Gh,this).unsafeValue().largestGroupId()}update(e,t){var n=this;return M(function*(){try{var r=Sp();let i=r.u(yield A(Gh,n).lock());return A(qh,n).close(),i.value.update(e,t)}catch(e){r.e=e}finally{r.d()}})()}endOfTrack(e){var t=this;return M(function*(){try{var n=Sp();let r=n.u(yield A(Gh,t).lock());return A(qh,t).close(),r.value.endOfTrack(e)}catch(e){n.e=e}finally{n.d()}})()}unsubscribe(){var e=this;return M(function*(){try{var t=Sp();let n=t.u(yield A(Gh,e).lock());return A(qh,e).close(),n.value.unsubscribe()}catch(e){t.e=e}finally{t.d()}})()}return(){var e=this;return M(function*(){try{var t=Sp();let n=t.u(yield A(Gh,e).lock());return A(qh,e).close(),n.value.return()}catch(e){t.e=e}finally{t.d()}})()}next(){var e=this;return M(function*(){let t=yield A(Kh,e).next();if(t.done){var n,r;yield(n=(r=A(Kh,e)).return)==null?void 0:n.call(r);let t=yield A(qh,e).pop();if(t)return O(Kh,e,t),e.next()}return t})()}[Wh](){return this}objects(){var e=this;return kn(function*(){var t=!1,n=!1,r;try{for(var i=X(e),a;t=!(a=yield B(i.next())).done;t=!1)try{var o=Sp();yield*Uh(X(o.a(a.value)))}catch(e){o.e=e}finally{yield B(o.d())}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield B(i.return()))}finally{if(n)throw r}}})()}};function Qh(e){var t=this;return M(function*(){var n;if(e.unsubscribed()||(n=e.range())!=null&&n.endGroup){A(Jh,t).info(`Server initiated subscribe done but the subscription is already closing`);return}if(A(Gh,t).unsafeValue().subscribeId()!==e.id){A(Jh,t).info(`subscribeId mismatch - the subscription already has been renewed`);return}return t.return()})()}V(),L(),T(),k(),D(),j(),N();var $h=`catalog`;function eg(e){let t=Mh(e.payload);if(!jh(t))throw Error(`unexpected catalog type`);return t}var tg=new WeakMap,ng=new WeakMap,rg=new WeakMap,ig=new WeakMap,ag=new WeakSet,og=class e{constructor(e,t,n){I(this,ag),w(this,tg,void 0),w(this,ng,void 0),w(this,rg,void 0),w(this,ig,void 0),O(ng,this,e),O(tg,this,t),O(rg,this,n),O(ig,this,E(ag,this,sg).call(this)),this.closed().finally(()=>A(tg,this).close()).catch(x)}catalog(){return A(tg,this)}closed(){return A(ig,this)}close(){var e=this;return M(function*(){return A(tg,e).close(),(yield A(ng,e).promise).unsubscribe()})()}static start(t,n){return M(function*(){let r=S.fromPromise(Zh.subscribe(t,new Th().name(n.catalogName||$h).groupOrder(`ascending`).build())),i=S.fromPromise(r.promise.then(e=>e.objects()));if(n.catalog)return new e(r,new Fn(n.catalog),i);let a=yield(yield i.promise).next();if(!a.value)throw Error(`No catalog found`);return new e(r,new Fn(eg(a.value)),i)})()}};function sg(){var e=this;return M(function*(){let t=yield A(rg,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!==Vl.Normal)continue;let n=eg(t);A(tg,e).update(n)}}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield a.return())}finally{if(r)throw i}}})()}V(),L(),T(),k(),j(),D(),h(),On(),z(),jn(),N();var cg,lg,ug,dg,fg,pg,mg,hg,gg=new WeakMap,_g=new WeakMap,vg=new WeakMap,yg=new WeakMap,bg=new WeakMap,xg=new WeakMap,Sg=new WeakMap,Cg=new WeakMap,wg=new WeakSet;cg=dn(),lg=Symbol.dispose;var Tg=class{constructor(e,t){I(this,wg),w(this,gg,void 0),w(this,_g,void 0),w(this,vg,void 0),w(this,yg,void 0),w(this,bg,void 0),w(this,xg,void 0),w(this,Sg,void 0),w(this,Cg,0),O(gg,this,e),O(_g,this,t)}onFragment(e,t,n,r,i){var a;A(vg,this)===void 0&&(O(vg,this,e),O(yg,this,t),O(bg,this,n),O(xg,this,r),A(gg,this).debug(`group start`,{name:A(_g,this).name,groupId:e,startTimeMs:r,endTimeMs:i,subscribeId:t,mediaType:n,namespace:A(_g,this).namespace})),O(Cg,this,(a=A(Cg,this),a++,a)),O(Sg,this,i)}[cg](){E(wg,this,Eg).call(this)}[lg](){E(wg,this,Eg).call(this)}};function Eg(){A(vg,this)!==void 0&&A(xg,this)!==void 0&&A(Sg,this)!==void 0&&A(gg,this).debug(`group end`,{name:A(_g,this).name,groupId:A(vg,this),startTimeMs:A(xg,this),endTimeMs:A(Sg,this),durationMs:A(Sg,this)-A(xg,this),fragmentCount:A(Cg,this),subscribeId:A(yg,this),mediaType:A(bg,this),namespace:A(_g,this).namespace})}var Dg=new WeakMap,Og=new WeakMap,kg=new WeakMap,Ag=new WeakMap,jg=new WeakSet;ug=Symbol.asyncIterator,dg=un(),fg=Symbol.asyncDispose;var Mg=class{constructor(e,t,n,r){I(this,jg),w(this,Dg,void 0),w(this,Og,void 0),w(this,kg,void 0),m(this,`track`,void 0),w(this,Ag,sn.get().createContext(`CmafGroup`)),this.track=r,O(Dg,this,n),O(Og,this,e),O(kg,this,t)}[ug](){var e=this;return kn(function*(){try{var t=Sp();let s={name:e.track.trackObject.name,namespace:e.track.namespace},c=t.u(new Tg(A(Ag,e),s));var n=!1,r=!1,i;try{for(var a=X(A(Og,e)),o;n=!(o=yield B(a.next())).done;n=!1){let t=o.value;{if(t.objectStatus===Vl.EndOfTrackAndGroup&&(yield B(e.track.endOfTrack(t.groupId))),t.objectStatus!==Vl.Normal)continue;let n=A(kg,e).createFragment(t.payload),r=n.timescale(),i=n.baseMediaDecodeTime()/r*1e3,a=i+n.duration()/r*1e3,o=A(Dg,e)/1e3*r;n.updateBaseMediaDecodeTime(n.baseMediaDecodeTime()-o);let l=e.track.timestampRange();if(l&&i>=l[1])break;A(Ag,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 B(a.return()))}finally{if(r)throw i}}}catch(e){t.e=e}finally{t.d()}})()}[dg](){return E(jg,this,Ng).call(this)}[fg](){return E(jg,this,Ng).call(this)}};function Ng(){var e=this;return M(function*(){var t,n;return yield(t=(n=A(Og,e)).return)==null?void 0:t.call(n),Promise.resolve()})()}var Pg=new WeakMap,Fg=new WeakMap,Ig=new WeakMap,Lg=new WeakMap;pg=Symbol.asyncIterator,mg=un(),hg=Symbol.asyncDispose;var Rg=class e{constructor(e,t,n,r,i){w(this,Pg,void 0),w(this,Fg,void 0),w(this,Ig,void 0),w(this,Lg,void 0),m(this,`trackObject`,void 0),m(this,`namespace`,void 0),this.trackObject=e,this.namespace=t,O(Fg,this,n),O(Pg,this,r),O(Ig,this,i)}static subscribe(t,n,{timestampOffsetMs:r,startGroup:i,params:a}){return M(function*(){if(n.format!==`cmaf`)throw Error(`format must be cmaf`);let o=new Th().name(n.name);i&&o.startGroup(i);let s=o.build();if(n.initTrack){let o=new Th().name(n.initTrack).build(),[c,l]=yield Promise.all([zg.call(e,t,o),Zh.subscribe(t,s,{params:a,largestGroupId:i?i-P(1):void 0})]),u=new Zo(c);return new e(n,t.namespace(),l,u,r)}xe(n.initData,`no init data found on track`);let c=Re(n.initData),l=new Zo(new Uint8Array(c)),u=yield Zh.subscribe(t,s,{params:a,largestGroupId:i?i-P(1):void 0});return new e(n,t.namespace(),u,l,r)})()}largestGroupId(){return A(Fg,this).largestGroupId()}stopAfterTimestampReached(e){O(Lg,this,[0,e])}timestampRange(){return A(Lg,this)}endOfTrack(e){return A(Fg,this).endOfTrack(e)}update(e,t){return A(Fg,this).update(e,t)}unsubscribe(){var e=this;return M(function*(){return A(Fg,e).unsubscribe()})()}next(){var e=this;return M(function*(){let t=yield A(Fg,e).next();return t.done?t:{done:!1,value:new Mg(t.value,A(Pg,e),A(Ig,e),e)}})()}return(){var e=this;return M(function*(){return yield A(Fg,e).return(),{done:!0,value:void 0}})()}[pg](){return this}[mg](){return this.unsubscribe()}[hg](){var e=this;return M(function*(){return e.unsubscribe()})()}};function zg(e,t){return M(function*(){try{var n=Sp();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()}})()}V(),L(),T(),k(),D(),j(),N();var Bg=1e4,Vg=3e4,Hg=new WeakMap,Ug=new WeakMap,Wg=new WeakMap,Gg=new WeakMap,Kg=new WeakMap,qg=new WeakMap,Jg=new WeakSet,Yg=class e{constructor(e,t,n){I(this,Jg),w(this,Hg,sn.get().createContext(`Timeline`)),w(this,Ug,new Fn([])),w(this,Wg,void 0),w(this,Gg,void 0),w(this,Kg,void 0),w(this,qg,void 0),O(Gg,this,e),O(Kg,this,n),O(Wg,this,t),O(qg,this,E(Jg,this,Xg).call(this,A(Wg,this))),this.closed().finally(()=>A(Ug,this).close()).catch(x)}closed(){return A(qg,this)}close(){var e=this;return M(function*(){return(yield A(Wg,e).promise).unsubscribe()})()}timeline(){let[e,t]=A(Ug,this).value();return e}timestampWallclockOffset(){return jt(this.timeline().map(e=>e.mediaPts-e.wallclock))}static start(t,n){return new e(t,S.fromPromise(Zh.subscribe(t,new Th().name(n).groupOrder(`ascending`).build())),n)}waitForWallclockTime(e){var t=this;return M(function*(){return yield A(Ug,t).waitFor(t=>!!t.find(t=>t.wallclock>=e)),t.timeline()})()}waitForTimelineToHaveMinDuration(){var e=this;return M(function*(){return yield A(Ug,e).waitFor(e=>{let t=e[0],n=e[e.length-1];return!t||!n?!1:n.wallclock-t.wallclock>Bg}),e.timeline()})()}};function Xg(e){var t=this;return M(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=Sp();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!==Vl.Normal)continue;let r=Qg(e.payload);A(Ug,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>Vg;)e.shift();return e}),n===A(Wg,t).resolved&&e.groupId>P(0)&&e.objectId===P(0)&&E(Jg,t,Zg).call(t,e.groupId).catch(e=>{A(Hg,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 Zg(e){var t=this;return M(function*(){let n=e-P(1),r=t.timeline(),i=r[0],a=r[r.length-1];if(!i||!a||a.wallclock-i.wallclock>Bg)return;A(Hg,t).debug(`backfilling timeline`,{currentGroupId:e,backfillGroupId:n});let o=S.fromPromise(Zh.subscribe(A(Gg,t),new Th().name(A(Kg,t)).groupOrder(`ascending`).range(n,n).build()));return E(Jg,t,Xg).call(t,o)})()}function Qg(e){var t;let n=new TextDecoder(`utf-8`).decode(e).split(`
49
- `);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}})}V(),T(),h(),k(),N(),j();var $g,e_,t_;function n_(e){return typeof e.language==`string`}var r_=new WeakMap,i_=new WeakMap,a_=new WeakMap,o_=new WeakMap;$g=Symbol.asyncIterator,e_=un(),t_=Symbol.asyncDispose;var s_=class e{constructor(e,t,n,r,i){w(this,r_,new Qc),w(this,i_,void 0),w(this,a_,void 0),w(this,o_,0),m(this,`trackObject`,void 0),m(this,`namespace`,void 0),O(a_,this,e),O(i_,this,t),this.trackObject=n,this.namespace=r,O(o_,this,i)}static subscribe(t,n,r){return M(function*(){if(!n_(n))throw Error(`track object language is required`);let i=new Th().name(n.name).build(),a=yield Zh.subscribe(t,i);return new e(a,a.objects(),n,t.namespace(),r)})()}largestGroupId(){return A(a_,this).largestGroupId()}update(e,t){return A(a_,this).update(e,t)}unsubscribe(){return A(a_,this).unsubscribe()}next(){var e=this;return M(function*(){for(;;){let t=yield A(i_,e).next();if(t.done)return t;if(t.value.objectStatus!==Vl.Normal)continue;let n=new TextDecoder().decode(t.value.payload),r=A(r_,e).parse(n).map(t=>(t.startTime-=A(o_,e)/1e3,t.endTime-=A(o_,e)/1e3,t));return{done:!1,value:{language:e.trackObject.language,cues:r}}}})()}return(){var e=this;return M(function*(){return yield A(a_,e).return(),{done:!0,value:void 0}})()}[$g](){return this}[e_](){return this.unsubscribe()}[t_](){return this.unsubscribe()}};V(),L(),h(),T(),k(),N(),j(),D();var c_=new WeakMap,l_=new WeakMap,u_=new WeakMap,d_=new WeakMap,f_=new WeakSet,p_=class e{constructor(e,t,n,r,i){I(this,f_),m(this,`namespace`,void 0),w(this,c_,void 0),w(this,l_,void 0),w(this,u_,void 0),w(this,d_,void 0),this.namespace=r,O(c_,this,e),O(l_,this,t),O(u_,this,n),O(d_,this,i)}static start(t,n){return M(function*(){h_._.info(`Enter 'start'`,{config:n});let r=new Oh(t,{namespace:n.namespace}),[i,a]=yield Promise.all([Yg.start(r,`timeline`),og.start(r,{catalog:n.catalog,namespace:n.namespace})]);return new e(r,i,a,n.namespace,0)})()}closed(){return A(u_,this).closed()}catalog(){return A(u_,this).catalog()}timestampWallclockOffset(){return A(l_,this).timestampWallclockOffset()}timestampOffsetMs(){return A(d_,this)}setTimestampOffsetMs(e){O(d_,this,e)}waitForWallclockTime(e){return A(l_,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 E(f_,this,m_).call(this,()=>Rg.subscribe(A(c_,this),a==null?e:a,{timestampOffsetMs:A(d_,this),startGroup:n,params:r}))}subscribeWebVttTrack(e){return E(f_,this,m_).call(this,()=>s_.subscribe(A(c_,this),e,A(d_,this)))}subscribeTrack(e){return E(f_,this,m_).call(this,()=>A(c_,this).subscribe(e))}close(){return Promise.all([A(u_,this).close(),A(l_,this).close()])}};function m_(e){var t=this;return M(function*(){let[n,r]=t.catalog().value();try{return yield e()}catch(i){if(n===t.catalog().current()&&r&&(yield Promise.race([r,rr(500)])),n!==t.catalog().current())return e();throw i}})()}var h_={_:sn.get().createContext(`Channel`)};V();var g_=P(8);function __(e){if(e<0||e>65535)throw RangeError(`burstMs must be between 0 and 65535 inclusive`);return{type:g_,payload:new Uint8Array([e>>8&255,e&255])}}L(),T(),k(),D(),j(),N();var v_=new WeakMap,y_=new WeakMap,b_=new WeakSet,x_=class e{constructor(e){I(this,b_),w(this,v_,void 0),w(this,y_,void 0);let[t,n]=e.value.value();O(v_,this,{createdAt:new Date,wallclock:new Date(t.ntpTimestamp),rtt:t.rtt}),O(y_,this,E(b_,this,S_).call(this,e))}wallclock(){let e=Date.now()-A(v_,this).createdAt.getTime();return A(v_,this).wallclock.getTime()+e}closed(){return A(y_,this)}static start(t){return new e(t)}};function S_(e){var t=this;return M(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;O(v_,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 C_(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 w_(e,t){if(e==null)return{};var n,r,i=C_(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}V(),z(),h(),N();var T_=[`fairplayCertificate`];function E_(e){return typeof e==`string`||e==null}function D_(e){return`provider`in e&&typeof e.provider==`string`&&(!(`widevineLicenseUrl`in e)||E_(e.widevineLicenseUrl))&&(!(`playreadyLicenseUrl`in e)||E_(e.playreadyLicenseUrl))&&(!(`fairplayLicenseUrl`in e)||E_(e.fairplayLicenseUrl))&&(!(`fairplayCertificate`in e)||E_(e.fairplayCertificate))}function O_(e){try{return Re(e)}catch(e){throw Error(`Failed to convert fairplayCertificate`)}}function k_(e){let t=new TextDecoder().decode(e),n=JSON.parse(t);if(!D_(n))throw Error(`Invalid drm object`);let{fairplayCertificate:r}=n;return R(R({},w_(n,T_)),{},{fairplayCertificate:r?O_(r):void 0})}var A_=class e{constructor(e){m(this,`value`,void 0),this.value=e}static create(t,n,r){return M(function*(){try{var i=Sp();let a=yield i.a(yield t.subscribeTrack(new Th().name(`drm`).build())).objects().next();if(a.done)throw Error(`No drm object received`);return new e(R(R({},k_(a.value.payload)),{},{videoCodec:n,audioCodec:r}))}catch(e){i.e=e}finally{yield i.d()}})()}};V(),L(),h(),T(),k(),D(),j(),N();function j_(e){return`rtt`in e&&typeof e.rtt==`number`&&`ntpTimestamp`in e&&typeof e.ntpTimestamp==`number`&&`estimatedBandwidth`in e&&typeof e.estimatedBandwidth==`number`}function M_(e){let t=new TextDecoder().decode(e),n=JSON.parse(t);if(!j_(n))throw Error(`Invalid stats object`);return n}var N_=1e4,P_=new WeakMap,F_=new WeakSet,I_=class e{constructor(e,t,n){I(this,F_),m(this,`ip`,void 0),m(this,`value`,void 0),w(this,P_,void 0),this.ip=n,this.value=new Fn(t),O(P_,this,E(F_,this,L_).call(this,e))}closed(){return A(P_,this)}idleTimeout(){var e=this;return M(function*(){for(;;){let[t,n]=e.value.value();try{yield Promise.race([ir(N_,Error(`Idle timeout`)),n])}catch(e){return e}}})()}static start(t){return M(function*(){let n=(yield t.subscribe(new Th().name(`stats`).groupOrder(`ascending`).build())).objects(),r=yield n.next();if(r.done)throw Error(`No stats object received`);let i=M_(r.value.payload);if(!i.ip)throw Error(`Expected IP in initial stats object`);return new e(n,i,i.ip)})()}};function L_(e){var t=this;return M(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!==Vl.Normal)continue;let n=M_(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}}})()}V(),T(),k(),j(),N();var R_=new WeakMap,z_=new WeakMap,B_=class{constructor(e){w(this,R_,sn.get().createContext(`UpstreamWatcher`)),w(this,z_,void 0),O(z_,this,new Fn(S.fromPromise(e.closed())))}update(e){A(z_,this).update(S.fromPromise(e.closed()))}closed(){var e=this;return M(function*(){try{for(;;){let[t,n]=A(z_,e).value(),r=!1;yield Promise.race([n==null?void 0:n.then(()=>r=!0),t.promise.then(()=>{if(!r)throw A(R_,e).warn(`Upstream closed`),Error(`Upstream closed`)})])}}catch(e){return e}})()}};V(),T(),k(),j(),On(),z(),jn(),L(),h(),D(),N();var V_,H_=new WeakMap,U_=new WeakMap,W_=new WeakMap;V_=Symbol.asyncIterator;var G_=class{constructor(e,t){w(this,H_,sn.get().createContext(`TracksIterator`)),w(this,U_,void 0),w(this,W_,void 0),O(U_,this,e),O(W_,this,t)}[V_](){var e=this;return kn(function*(){let t=A(W_,e);var n=!1,r=!1,i;try{for(var a=X(A(U_,e)),o;n=!(o=yield B(a.next())).done;n=!1){let n=o.value;{if(!n)continue;let r={name:n.trackObject.name,namespace:n.namespace};A(H_,e).debug(`track start`,R({mediaType:t},r)),yield*Uh(X(n)),A(H_,e).debug(`track end`,R({mediaType:t},r))}}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield B(a.return()))}finally{if(r)throw i}}A(H_,e).debug(`tracks ended`,{mediaType:t})})()}},K_=new WeakMap,q_=new WeakMap,J_=new WeakMap,Y_=new WeakMap,X_=new WeakMap,Z_=new WeakMap,Q_=new WeakMap,$_=new WeakMap,ev=new WeakMap,tv=new WeakMap,nv=new WeakSet,rv=class e{constructor(e,t,n){I(this,nv),w(this,K_,void 0),w(this,q_,void 0),w(this,J_,void 0),w(this,Y_,sn.get().createContext(`Player`)),w(this,X_,void 0),w(this,Z_,new Fn(void 0)),w(this,Q_,new Fn(void 0)),w(this,$_,new Fn(void 0)),w(this,ev,void 0),w(this,tv,void 0),m(this,`subtitles`,new G_(A($_,this),`subtitles`)),m(this,`video`,new G_(A(Q_,this),`video`)),m(this,`audio`,new G_(A(Z_,this),`audio`)),O(K_,this,e),O(q_,this,x_.start(n)),O(J_,this,n),O(X_,this,new Fn(t)),O(ev,this,new B_(t)),O(tv,this,Promise.race([n.idleTimeout(),E(nv,this,ov).call(this),A(ev,this).closed()])),A(K_,this).closed().then(()=>this.close()).catch(x)}closed(){return A(tv,this)}static start(t,n){return M(function*(){let r=new Map;if(n.burstMs!==void 0){let e=__(n.burstMs);r.set(e.type,e)}let i=new Oh(t,{namespace:kh(`auxiliary`)}),[[a,o,s],c]=yield Promise.all([p_.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])),I_.start(i)]),l=new e(t,a,c);return s&&A(Z_,l).update(s),o&&A(Q_,l).update(o),l})()}connectionInfo(){let e=A(J_,this).value.current();return{ip:A(J_,this).ip,rtt:e.rtt,estimatedBandwidth:e.estimatedBandwidth}}stats(){return A(J_,this).value}catalog(){return A(X_,this).current().catalog()}namespace(){return A(X_,this).current().namespace}videoTrack(){var e;return(e=A(Q_,this).current())==null?void 0:e.trackObject}audioTrack(){var e;return(e=A(Z_,this).current())==null?void 0:e.trackObject}referenceClock(){return A(q_,this)}drm(){var e=this;return M(function*(){var t,n;if(e.catalog().current().tracks.find(({name:e})=>e===`drm`))return A_.create(A(X_,e).current(),(t=e.videoTrack())==null?void 0:t.codec,(n=e.audioTrack())==null?void 0:n.codec)})()}close(){return A(Y_,this).info(`Enter 'close'`),Promise.all([A(X_,this).current().close(),A(X_,this).close(),E(nv,this,iv).call(this,A(Z_,this)),E(nv,this,iv).call(this,A(Q_,this)),E(nv,this,iv).call(this,A($_,this))])}zap(e,t){var n=this;return M(function*(){A(Y_,n).info(`Enter 'zap'`,{config:e,zapOffsetMs:t});let r=yield p_.start(A(K_,n),e),i=A(q_,n).wallclock()-t,a=A(X_,n).current(),o=a.timestampWallclockOffset(),s=yield r.waitForWallclockTime(i);A(ev,n).update(r),yield A(X_,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&&c.groupId?P(c.groupId):void 0;if(l){var f,p;(f=A(Q_,n).current())==null||f.stopAfterTimestampReached(l),(p=A(Z_,n).current())==null||p.stopAfterTimestampReached(l)}A(X_,n).update(r),yield Promise.all([e.videoTrack?n.setVideoTrack(e.videoTrack,d):void 0,e.audioTrack?n.setAudioTrack(e.audioTrack,d):void 0]),A(Y_,n).info(`Return 'zap'`)})()}setSubtitleTrack(e){var t=this;return M(function*(){var n;if(!e){var r;yield(r=A($_,t).current())==null?void 0:r.unsubscribe();return}let[i]=yield Promise.all([A(X_,t).current().subscribeWebVttTrack(e),(n=A($_,t).current())==null?void 0:n.unsubscribe()]);A($_,t).update(i)})()}setVideoTrack(e,t){var n=this;return M(function*(){let r=yield E(nv,n,av).call(n,A(X_,n).current(),e,A(Q_,n).current(),t);A(Q_,n).update(r)})()}setAudioTrack(e,t){var n=this;return M(function*(){let r=yield E(nv,n,av).call(n,A(X_,n).current(),e,A(Z_,n).current(),t);A(Z_,n).update(r)})()}};function iv(e){let t=e.current(),n=t==null?void 0:t.largestGroupId();return e.isClosed()||e.update(void 0),e.close(),n?t==null?void 0:t.update(n,n):t==null?void 0:t.unsubscribe()}function av(e,t,n,r){var i=this;return M(function*(){A(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||(a?a+P(1):void 0)}),a?n==null?void 0:n.update(a,a):n==null?void 0:n.unsubscribe()]);return o})()}function ov(){var e=this;return M(function*(){var t=!1,n=!1,r;try{for(var i=X(A(X_,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([E(nv,e,sv).call(e,t,A(Q_,e)),E(nv,e,sv).call(e,t,A(Z_,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 sv(e,t){var n=this;return M(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 A(X_,n).current().subscribeCmafTrack(s))}})()}V(),L(),T(),h(),j(),k(),D(),N();function cv(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}var lv=1e4,uv=new WeakMap,dv=new WeakMap,fv=new WeakMap,pv=new WeakMap,$=new WeakMap,mv=new WeakMap,hv=new WeakMap,gv=new WeakMap,_v=new WeakMap,vv=new WeakMap,yv=new WeakMap,bv=new WeakSet,xv=new WeakMap,Sv=new WeakMap,Cv=new WeakMap,wv=class e{get estimatedBandwidth(){return A(_v,this)}unload(){A(uv,this).off(`send signal`,A(Sv,this)),A(uv,this).off(`disconnect`,this.disconnect),A(uv,this).off(`text track`,A(xv,this)),this.disconnect()}suspend(){}unsuspend(){}getStatistics(){let e=A(fv,this).transportType()===`webtransport`?`moq`:`moq_ws`;return{edgeUrl:A(fv,this).url(),connectionProtocol:e,transportSelectionReason:A(vv,this)}}constructor(e,t,n,r,i,a,o,s){I(this,bv),w(this,uv,void 0),w(this,dv,void 0),w(this,fv,void 0),w(this,pv,`disconnected`),w(this,$,void 0),w(this,mv,new Map),w(this,hv,void 0),w(this,gv,void 0),w(this,_v,void 0),w(this,vv,void 0),w(this,yv,new Map),w(this,xv,e=>{if(!e){A($,this).setSubtitleTrack(void 0).catch(x);return}let t=A(mv,this).get(Ah(A($,this).namespace())),n=t==null?void 0:t.getTextTrack(e);n&&A($,this).setSubtitleTrack(n).catch(x)}),w(this,Sv,e=>{switch(e.type){case`subscribe`:if(A(Cv,this)){A(dv,this).info(`Ignoring - we are already switching`);return}O(Cv,this,!0),E(bv,this,Dv).call(this,e.subscription).catch(t=>{A(dv,this).error(`error handling subscription`,t),A(uv,this).emit(`received signal`,{type:`subscription changed`,subscription:e.subscription,reset:!0})}).finally(()=>O(Cv,this,!1));break;case`telemetry`:El(new URL(`/api/telemetry`,A(fv,this).url().replace(`wss://`,`https://`)),{body:e.body,headers:{"Content-Type":`text/plain`}}).catch(x);break;case`refresh auth`:A(fv,this).updateAuthToken(e.token);break}}),w(this,Cv,!1),m(this,`disconnect`,(e=`Disconnect Requested`)=>{A(dv,this).info(`Disconnecting`,e),A(fv,this).close(),A($,this).close().catch(x),O(yv,this,new Map),E(bv,this,Ov).call(this,`disconnected`)}),O(uv,this,e),O(dv,this,t),O(fv,this,n),O($,this,r),O(mv,this,i),O(hv,this,a),O(gv,this,o),O(vv,this,s),A(uv,this).on(`send signal`,A(Sv,this)),A(uv,this).on(`disconnect`,this.disconnect),A(uv,this).on(`text track`,A(xv,this)),E(bv,this,Tv).call(this).catch(x),E(bv,this,kv).call(this).catch(x)}static start(t,n,r,i,a){return M(function*(){var o,s,c;let l=new Map(i.connectInfo.channels.map(e=>[Ah(e.catalog.namespace),new Iv(new Fn(e.catalog))])),u=yield i.onConnectInfo(i.connectInfo),d=i.options.get(`authenticationToken`),f,p;switch(typeof i.edgeUrl){case`string`:f=cv(i.edgeUrl,u,d);break;default:f=cv(i.edgeUrl.moqUrl||i.edgeUrl.moqWsUrl,u,d),p=cv(i.edgeUrl.moqWsUrl,u,d);break}let m=(o=i.connectInfo.channels.find(e=>e.channelId===u.channelId))==null?void 0:o.catalog;n.debug(`Resolved edge url`,{edgeUrl:f,edgeWsUrl:p}),xe(m,`no catalog found`);let h=(s=l.get(Ah(m.namespace)))==null?void 0:s.getVideoTrack(u.video),g=(c=l.get(Ah(m.namespace)))==null?void 0:c.getAudioTrack(u.audio),{session:_,transportSelectionReason:v}=yield Sh({url:f,wsUrl:p,handshakePipelining:!0,authToken:i.options.get(`authenticationToken`),preferredTransport:i.options.get(`webtransportEnabled`)?`webtransport`:`websocket`,role:uf.Subscriber,websocketFallbackTimeoutMs:2e3}),ee=_.closed().then(e=>{throw e instanceof Error?e:Error(e?`Session closed before player started: ${String(e)}`:`Session closed before player started`)}),y=yield Promise.race([rv.start(_.subscriber,{namespace:m.namespace,catalog:m,videoTrack:h==null?void 0:h.track,audioTrack:g==null?void 0:g.track,burstMs:u.burstMs||0}),ir(lv,Error(`Timeout waiting for player to start`)),ee]),b=new Iv(y.catalog());l.set(Ah(m.namespace),b),t.emit(`received signal`,{type:`client ip`,ip:y.connectionInfo().ip}),y.drm().then(e=>{e&&t.emit(`received drm data`,e.value)}).catch(e=>{n.error(`Error getting DRM data`,e)});let te=new e(t,n,_,y,l,r,a,v);return u.textTrack&&A(xv,te).call(te,u.textTrack),te})()}getState(){return A(pv,this)}close(){A(fv,this).close()}closed(){return Promise.race([A(fv,this).closed(),A($,this).closed()])}};function Tv(){var e=this;return M(function*(){A(fv,e).transportType()===`websocket`&&(yield rr(5e3));var t=!1,n=!1,r;try{for(var i=X(A($,e).stats()),a;t=!(a=yield i.next()).done;t=!1){let{rtt:t,estimatedBandwidth:n}=a.value;O(_v,e,n),A(gv,e).push(t),A(uv,e).emit(`rtt`,jt(A(gv,e).items()))}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield i.return())}finally{if(n)throw r}}})()}function Ev(e){var t=this;return M(function*(){var n;let r=yield A(hv,t).connect({channelId:e});if(!ur(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 Dv(e){var t=this;return M(function*(){var n,r;A(dv,t).info(`handle subscription`,e);let i=A($,t),a=A(mv,t).get(e.channelId);if(a||(a=new Iv(new Fn(yield E(bv,t,Ev).call(t,e.channelId))),A(mv,t).set(e.channelId,a)),i.namespace().join(`/`)!==a.namespace().join(`/`)){var o;A(dv,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&&A(uv,t).emit(`received drm data`,e.value)}).catch(e=>{A(dv,t).error(`Error getting DRM data`,e)}),A(dv,t).info(`switched channel`,e.channelId),(o=A(mv,t).get(Ah(i.namespace())))==null||o.updateCatalog(i.catalog()),A(uv,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=A($,t).videoTrack())==null?void 0:n.name)?A($,t).setVideoTrack(s.track):void 0,c&&c.track.name!==((r=A($,t).audioTrack())==null?void 0:r.name)?A($,t).setAudioTrack(c.track):void 0]),A(uv,t).emit(`received signal`,{type:`subscription changed`,subscription:e})})()}function Ov(e){O(pv,this,e),A(uv,this).emit(`connection state`,e)}function kv(){var e=this;return M(function*(){try{E(bv,e,Ov).call(e,`connecting`),A(dv,e).info(`Connecting...`),E(bv,e,Ov).call(e,`connected`),yield Promise.all([E(bv,e,jv).call(e,A($,e).referenceClock(),A($,e).audio),E(bv,e,jv).call(e,A($,e).referenceClock(),A($,e).video),E(bv,e,Av).call(e,A($,e).subtitles)]),yield A($,e).closed(),A(fv,e).close(),A(dv,e).info(`Session closed`)}catch(t){A(dv,e).warn(`Session error`,t)}finally{E(bv,e,Ov).call(e,`disconnected`)}})()}function Av(e){var t=this;return M(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;A(uv,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 jv(e,t){var n=this;return M(function*(){let r=``,i=``,a,o=A($,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=Ah(t.track.namespace),c=t.track.trackObject.language,l=lr((f=t.track.trackObject.codec)==null?``:f),u=t.track.trackObject.codec,d=l?mr({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=A(yv,n).get(t.track.namespace)||0;if(h&&Date.now()-g>1e3){A(yv,n).set(t.track.namespace,Date.now());let r=e.wallclock()-h.getTime();A(dv,n).debug(`timing-info`,{mediaType:p.mediaType(),referenceClock:e,delta:r,groupId:f,timestamp:p.baseMediaDecodeTime()/p.timescale()*1e3+r,wallclockTime:h.getTime()}),A(uv,n).emit(`received signal`,{type:`timing info`,timingInfo:{channelId:s,timestamp:p.baseMediaDecodeTime()/p.timescale()*1e3+r,wallclockTime:h.getTime()}})}A(uv,n).emit(`received moq data`,{payload:p,channelId:s,groupId:f,mimeType:d,codec:l,codecString:u,switchInfo:m,renditionId:Mv(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 Mv(e){return e.split(``).reduce((e,t)=>e=t.charCodeAt(0)+(e<<6)+(e<<16)-e,0)}var Nv=new WeakMap,Pv=new WeakMap,Fv=new WeakSet,Iv=class{constructor(e){I(this,Fv),w(this,Nv,void 0),w(this,Pv,void 0),O(Nv,this,e),O(Pv,this,E(Fv,this,Lv).call(this))}catalog(){return A(Nv,this).current()}namespace(){return A(Nv,this).current().namespace}updateCatalog(e){O(Nv,this,e)}getTextTrack(e){return A(Nv,this).current().tracks.find(t=>t.label===e)}getAudioTrack(e){if(!e.codec)return;let t=A(Pv,this).filter(t=>!(!pr(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=A(Pv,this).filter(t=>!(!fr(t)||t.bitRate>e.bitRate||e.codec&&t.codec!==e.codec));return t[t.length-1]}renditions(){return A(Pv,this)}};function Lv(){let[e,t]=A(Nv,this).value();return dr(e)}var Rv=(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.expectAdditionalConnection&&i.searchParams.append(`expectAdditionalConnection`,t.expectAdditionalConnection.toString()),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()};Ci(),V(),h(),z(),N();var zv=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}({}),Bv=class extends Ht{constructor(e,t){var n;super(),n=this,m(this,`options`,void 0),m(this,`websockets`,[]),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,`shouldContinueConnecting`,!1),m(this,`_isConnectInProgress`,!1),m(this,`readyState`,()=>{if(this.websockets.length===0)return WebSocket.CLOSED;let e=this.websockets.map(e=>e.readyState);for(let t of e)switch(t){case WebSocket.OPEN:continue;default:return t}return WebSocket.OPEN}),m(this,`url`,()=>{var e;return(e=this.websockets[0])==null?void 0:e.url}),m(this,`send`,e=>{if(this.websockets.length){var t;(t=this.websockets[0])==null||t.send(e)}}),m(this,`close`,e=>{var t;let n=!1;return(t=this.websockets)==null||t.forEach(t=>{t.onmessage=x,t.removeEventListener(`error`,this.onError),t.removeEventListener(`close`,this.onClose),t.removeEventListener(`open`,this.onOpen),t.close(1e3,e),n=!0}),this.websockets=[],this.shouldContinueConnecting=!1,this._isConnectInProgress=!1,this.logger.info(`Closed websocket`,{reason:e}),n}),m(this,`suspend`,()=>{this.isSuspended=!0}),m(this,`unsuspend`,()=>{this.isSuspended=!1,this.readyState()!==WebSocket.OPEN&&!this.isConnectInProgress&&this.connect()}),m(this,`onMessage`,(e,t)=>{this.websockets.length!==0&&this.options.onMessage(e,t.data)}),m(this,`onError`,()=>{this.logger.warn(`On error`,R({},this.options)),this.close(`one websocket had an error`),this.emit(`error`,new H(`WebSocket error`,{code:`websocket_error`,isFatal:!1}))}),m(this,`onClose`,e=>{switch(this.logger.info(`Closed`,R(R({},this.options),{},{reason:e.reason,code:e.code,isSuspended:this.isSuspended})),this.close(`one websocket was closed`),e.code){case zv.AuthenticationFailed:this.emit(`error`,fi(di()));break;case zv.AuthenticationRefreshFailed:this.emit(`error`,fi(di()));break;case zv.AuthenticationExpired:this.emit(`error`,pi(di()));break;case zv.ChannelNotFound:this.emit(`error`,hi(`internal`,di()));break;case zv.Inactivity:this.emit(`error`,mi(`internal`,di()));break;default:}this.emit(`close`,this)}),m(this,`onOpen`,()=>{this.logger.info(`Opened`,R({},this.options)),this.readyState()===WebSocket.OPEN&&(this._connectTime=Date.now()-this.connectStartTime,this.reconnectState.reconnectRetries=0,this._isConnectInProgress=!1,this.emit(`open`,this))}),m(this,`connect`,M(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 rr(n.options.reconnectDelay);let e=yield n.options.reconnectHandler(n.reconnectState);if(n.reconnectState.reconnectRetries++,!e)return n._isConnectInProgress=!1,n.emit(`error`,vi()),!1}n._connectionAttemptCount++;try{if(!n.shouldContinueConnecting)return n._isConnectInProgress=!1,n.logger.info(`Connection aborted`),!1;let{url:e,connectionCount:t}=yield n.options.connectHandler();if(n.connectStartTime=Date.now(),!n.shouldContinueConnecting)return n._isConnectInProgress=!1,n.logger.info(`Connection aborted`),!1;n.logger.info(`Connecting websockets`,R(R({},n.options),{},{url:e}));for(let r=0;r<t;r++){let t=new WebSocket(e);t.binaryType=`arraybuffer`,t.onmessage=e=>n.onMessage(r,e),t.addEventListener(`error`,n.onError),t.addEventListener(`close`,n.onClose),t.addEventListener(`open`,n.onOpen),n.websockets.push(t)}return!0}catch(e){return n._isConnectInProgress=!1,e instanceof H&&(n.logger.error(`Failed to connect`,e.toStringifiable()),e.isFatal())?!1:n.shouldContinueConnecting?(n.logger.info(`Connection aborted`,{error:e}),n.emit(`error`,new H(`Failed to connect`,{code:`failed_to_connect`,isFatal:!1,source:e,type:`internal`})),!1):!1}})),this.options=e,this.logger=t}get isConnectInProgress(){return this._isConnectInProgress}get connectionCount(){return this.websockets.length}get connectionAttemptCount(){return this._connectionAttemptCount}get connectTime(){return this._connectTime}};V(),h(),N();var Vv,Hv=65536*8,Uv=.9,Wv=40,Gv=e=>{let t=e||Wv;return Hv*Uv*1e3/t},Kv=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`,Date.now()),m(this,`isPingInFlight`,!1),m(this,`connectCount`,0),m(this,`missedPings`,0),m(this,`contextSwitchesInProgress`,new Set),m(this,`contextSwitchesCompleted`,new Set),m(this,`buffer`,[]),m(this,`disconnected`,new S),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`,()=>{var e;return{edgeUrl:(e=this.transport)==null?void 0:e.url(),connectionProtocol:`vindral_ws`,transportSelectionReason:void 0}}),m(this,`onMessage`,(e,t)=>{var n;if(this.pingCooldownExpired()&&this.sendPing(),this.contextSwitchesCompleted.size===((n=this.transport)==null?void 0:n.connectionCount)){this.logger.info(`Completing context switch`),this.contextSwitchesInProgress.clear(),this.contextSwitchesCompleted.clear();let e=this.buffer.filter(([e,t])=>!(t instanceof ArrayBuffer)),t=this.buffer.filter(([e,t])=>t instanceof ArrayBuffer);e.map(e=>this.handleMessage(e[0],e[1])),t.map(e=>this.handleMessage(e[0],e[1])),this.buffer=[]}if(this.contextSwitchesInProgress.has(e)){if(!(t instanceof ArrayBuffer)){let n=JSON.parse(t);if(_r(n)&&n.type===`context switch complete`){this.logger.info(`context switch completed`,{socketId:e}),this.emitter.emit(`context switch complete`),this.contextSwitchesCompleted.add(e);return}}this.buffer.push([e,t]);return}this.handleMessage(e,t)}),m(this,`resolveEdgeUrl`,M(function*(){let e=a.config.connectInfo,t=yield a.config.onConnectInfo(e),n=a.config.options.getOverride(`separateVideoSocketEnabled`,t.channelId),r=a.config.options.get(`media`)===`audio+video`,i=1;r&&(i=n===!1?1:2);let o=Rv(a.config.edgeUrl,{video:t.video,audio:t.audio,burstMs:t.burstMs,sessionId:t.sessionId,clientId:t.clientId,channelId:t.channelId,channelGroupId:t.channelGroupId,expectAdditionalConnection:i>1,authToken:a.config.options.get(`authenticationToken`)});return a.logger.debug(`Resolved edge url`,{edgeUrl:o}),{url:o,connectionCount:i}})),m(this,`handleMessage`,(e,t)=>{if(t instanceof ArrayBuffer)this.emitter.emit(`received data`,t);else{let n=JSON.parse(t);if(!_r(n))return;switch(n.type){case`pong`:this.lastPingSentTime&&(this.rtts.push(Date.now()-this.lastPingSentTime),this.isPingInFlight=!1,this.emitter.emit(`rtt`,jt(this.rtts.items())));break;case`context switch`:this.logger.info(`Starting context switch`,{socketId:e}),this.emitter.emit(`context switch started`),this.contextSwitchesInProgress.add(e);break;default:this.emitter.emit(`received signal`,n);break}}}),m(this,`connectWebSocketTransport`,()=>{let e=new Bv({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`)=>{var t;this.contextSwitchesCompleted.clear(),this.contextSwitchesInProgress.clear(),this.buffer=[],this.resetPingState(),this.disconnected.resolve(),(t=this.transport)==null||t.close(e)}),m(this,`onTransportChange`,()=>{switch(this.getState()){case`connected`:var t;(t=this.transport)!=null&&t.connectTime&&(this.rtts.push(this.transport.connectTime/e.TLS_ROUNDTRIPS/(this.transport.connectionCount||1)),this.emitter.emit(`rtt`,jt(this.rtts.items()))),this.connectCount++,this.resetPingState();break;default:this.contextSwitchesCompleted.clear(),this.contextSwitchesInProgress.clear(),this.buffer=[],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`,()=>Date.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=Date.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(x),this.transport=this.connectWebSocketTransport()}closed(){return this.disconnected.promise}};Vv=Kv,m(Kv,`PING_INTERVAL`,5e3),m(Kv,`MAX_MISSED_PINGS`,4),m(Kv,`TLS_ROUNDTRIPS`,3),m(Kv,`start`,(e,t,n,r)=>new Promise((i,a)=>{let o=new Vv(e,t,n,r);o.transport.once(`error`,e=>a(e)),o.transport.once(`open`,()=>i(o))})),T(),k(),j();var qv=new WeakMap,Jv=new WeakMap,Yv=new WeakMap,Xv=class{constructor(e){w(this,qv,void 0),w(this,Jv,[]),w(this,Yv,void 0),O(qv,this,e)}select(e){if(A(qv,this).edgeUrl)return A(qv,this).edgeUrl;A(Jv,this).length===0&&O(Jv,this,A(Jv,this).concat(e));let t=A(Jv,this).shift();if(O(Yv,this,t),t)return t}shiftedEdge(){return A(Yv,this)}reset(){O(Yv,this,void 0),O(Jv,this,[])}};Ci(),V(),L(),h(),T(),k(),j(),z(),D(),N();var Zv,Qv=new WeakMap,$v=new WeakMap,ey=new WeakMap,ty=new WeakMap,ny=new WeakMap,ry=new WeakMap,iy=new WeakMap,ay=new WeakMap,oy=new WeakMap,sy=new WeakMap,cy=new WeakSet,ly=class e{constructor(t,n,r){var i=this;I(this,cy),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),w(this,Qv,new C(10)),w(this,$v,!0),w(this,ey,void 0),w(this,ty,0),w(this,ny,0),w(this,ry,0),w(this,iy,void 0),w(this,ay,void 0),m(this,`unload`,()=>{var e;this.logger.debug(`Unloading module...`),this.disconnect(`Unloading`),(e=this.connectionImpl)==null||e.unload(),this.logger.debug(`Unloaded module`)}),m(this,`suspend`,()=>{var e;O($v,this,!1),(e=this.connectionImpl)==null||e.suspend()}),m(this,`unsuspend`,()=>{var e;O($v,this,!0),(e=this.connectionImpl)==null||e.unsuspend(),this.connect()}),m(this,`getState`,()=>this.connectionImpl?this.connectionImpl.getState():`disconnected`),m(this,`getStatistics`,()=>{let e=A(ny,this)>0?A(ry,this)/A(ny,this):0;return this.connectionImpl?R(R({},this.connectionImpl.getStatistics()),{},{rtt:Pt(A(Qv,this).items()),estimatedBandwidth:this.estimatedBandwidth,connectCount:A(ry,this),connectionAttemptCount:A(ny,this),connectionSuccessRatio:e}):{rtt:{min:0,max:0,average:0,last:0},estimatedBandwidth:0,connectCount:A(ry,this),connectionAttemptCount:A(ny,this),connectionSuccessRatio:e,connectionProtocol:void 0,transportSelectionReason:void 0}}),m(this,`connect`,()=>{O($v,this,!0),!A(ey,this)&&O(ey,this,E(cy,this,uy).call(this))}),m(this,`disconnect`,(e=`Disconnect Requested`)=>{var t;O($v,this,!1),(t=this.connectionImpl)==null||t.close(e)}),m(this,`reconnect`,e=>{this.disconnect(e),this.connect()}),w(this,oy,M(function*(){try{return yield i.apiClient.connect(i.config.options.getOptions())}catch(e){if(xl(e))switch(e.status){case 401:throw i.emitter.emit(`error`,fi(e)),fi(e);case 403:throw i.emitter.emit(`error`,bi(e.message)),bi(e.message);default:break}throw i.emitter.emit(`error`,_i(e instanceof Error?e:void 0)),e}})),w(this,sy,M(function*(){let t=Date.now(),n=()=>Date.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)}})),this.logger=n,this.emitter=t,this.config=r,this.apiClient=new kl({publicEndpoint:this.config.options.get(`url`).toString(),tokenFactory:()=>this.config.options.get(`authenticationToken`)})}get rtt(){return A(Qv,this).items().length>0?jt(A(Qv,this).items()):0}get estimatedBandwidth(){return this.connectionImpl&&`estimatedBandwidth`in this.connectionImpl&&this.connectionImpl.estimatedBandwidth?this.connectionImpl.estimatedBandwidth:Gv(this.rtt)}get firstConnectionTime(){return A(iy,this)}get lastConnectionTime(){return A(ay,this)}};Zv=ly;function uy(){var e=this;return M(function*(){let t=new Xv({edgeUrl:e.config.options.get(`edgeUrl`)});for(O(ty,e,0);;){var n,r,i;O(ty,e,(n=A(ty,e),n++,n)),O(ny,e,(r=A(ny,e),r++,r));let o=!1;try{var a;let[n,r]=yield Promise.all([A(oy,e).call(e),A(sy,e).call(e)]);if(A(Qv,e).clear(),r!==void 0&&A(Qv,e).push(r/2),!A($v,e))break;let i=t.select(n.edges);if(!i)throw new H(`Failed to resolve edge url`,{isFatal:!0,code:`failed_to_resolve_edge_url`});ur(n)?e.connectionImpl=yield wv.start(e.emitter,e.logger,e.apiClient,R(R({},e.config),{},{connectInfo:n,edgeUrl:i}),A(Qv,e)):(xe(typeof i==`string`,`Edge URL is expected to be a string`),e.connectionImpl=yield Kv.start(e.emitter,e.logger,R(R({},e.config),{},{connectInfo:n,edgeUrl:i}),A(Qv,e))),t.reset(),O(ry,e,(a=A(ry,e),a++,a)),O(ty,e,0),O(ay,e,Date.now()),A(iy,e)||O(iy,e,A(ay,e)),yield e.connectionImpl.closed(),e.logger.info(`Connection closed`)}catch(n){e.logger.warn(`Failed to connect`,n);let r=t.shiftedEdge();r&&e.emitter.emit(`telemetry event`,{code:`shifted_edge`,edgeUrl:typeof r==`string`?r:r.moqUrl||r.moqWsUrl}),n instanceof H?(e.emitter.emit(`error`,n),o=n.isFatal()):n instanceof Error&&e.emitter.emit(`error`,new H(n.message,{code:`start_failed`,isFatal:!1}))}if((i=e.connectionImpl)==null||i.unload(),e.connectionImpl=void 0,o){O($v,e,!1);break}if(!A($v,e))break;if(!(yield e.config.reconnectHandler({reconnectRetries:A(ty,e)}))){e.emitter.emit(`error`,vi());break}if(yield rr(1e3),!A($v,e))break}O(ey,e,void 0)})()}m(ly,`PING_TIMEOUT`,1e3),m(ly,`create`,(e,t,n)=>new Zv(e,t,n)),V(),z(),h();var dy,fy=()=>({video:R(R({},gr()),{},{bitRate:hr()}),audio:{bitRate:hr()}}),py=()=>({width:window.innerWidth,height:window.innerHeight,bitRate:hr()}),my=class e{constructor(t,n,r,i){m(this,`emitter`,void 0),m(this,`timers`,new Vn),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?fy():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({},fy()),{},{video:py()}):fy();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,Bt(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()}};dy=my,m(my,`CHECK_SIZE_INTERVAL`,1e3),m(my,`create`,(e,t,n,r)=>new dy(e,t,n,r));var hy,gy=n((()=>{hy=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}`)}}}})),_y,vy=n((()=>{V(),h(),_y=class{constructor(){m(this,`map`,new Map)}enqueue(e,t){let n=this.map.get(e);if(n)n.push(t);else{let n=new C(1/0);n.push(t),this.map.set(e,n)}}dequeue(e){let t=this.map.get(e);if(!t)return;let n=t.pop();return t.isEmpty()&&this.map.delete(e),n}dequeueWithFallback(e){let t=this.dequeue(e);if(t!==void 0)return t;for(let[e,t]of this.map){let n=t.pop();if(t.isEmpty()&&this.map.delete(e),n!==void 0)return n}}removeLast(e){let t=this.map.get(e);t&&(t.popLast(),t.isEmpty()&&this.map.delete(e))}clear(){this.map.clear()}}})),yy=r({WebCodecsAudioDecoderContext:()=>Sy}),by,xy,Sy,Cy=n((()=>{Fa(),Ic(),V(),gy(),vy(),h(),z(),N(),xy=globalThis,Sy=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 _y),m(this,`errors`,new C(10)),m(this,`resetDecoderState`,()=>{this.pendingSamples.clear(),this.previousSample=void 0,this.previousCodec=void 0}),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.dequeueWithFallback(e.timestamp);if(!t){e.close();return}let{sample:n,decodeStartTime:r}=t;try{let t=e.numberOfFrames,i=e.numberOfChannels,a=e.sampleRate,o=e.timestamp,s=e.duration,c=new Float32Array(t*i);e.copyTo(c,{planeIndex:0,format:`f32`});let l=Math.round(o*n.timescale/1e6),u=typeof s==`number`&&Number.isFinite(s)?Math.max(0,Math.round(s*n.timescale/1e6)):n.duration,d=R(R({},n),{},{timestamp:l,duration:u,type:`audio`,format:`f32`,data:c,sampleRate:a,channels:i,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`,hy),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 Pc(t.channels,t.sampleRate);if(e===`aac`)return Pa(t.channels,t.sampleRate)}),m(this,`unload`,()=>{this.decodedSamples=[],this.resetDecoderState(),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){this.previousSample&&r.state===`configured`&&r.flush().catch(e=>{this.logger.warn(`Failed to flush before reconfiguration:`,e)});let t=this.buildCodecString(i),n=this.getDescription(i,e),a={codec:t,sampleRate:e.sampleRate,numberOfChannels:e.channels,description:n};try{r.configure(a),this.previousCodec=i}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}`)),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);try{let t=new EncodedAudioChunk({type:`key`,timestamp:c,duration:l>0?l:void 0,data:e.data});this.pendingSamples.enqueue(c,{sample:e,decodeStartTime:performance.now()}),r.decode(t)}catch(e){this.logger.error(`Failed to decode chunk:`,e),this.pendingSamples.removeLast(c),r.state===`closed`&&(this.resetDecoderState(),this.ensureDecoder())}}),m(this,`flush`,M(function*(){if(t.decoder&&t.decoder.state===`configured`)try{yield t.decoder.flush()}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()}},by=Sy,m(Sy,`isSupported`,()=>xy.AudioDecoder!==void 0),m(Sy,`create`,function(){var e=M(function*(e){if(!by.isSupported())throw Error(`WebCodecs AudioDecoder is not supported in this environment`);return new by(e)});return function(t){return e.apply(this,arguments)}}())})),wy,Ty=n((()=>{wy=(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`&&re(`no native wasm support detected`);var d,f=!1,p=typeof TextDecoder<`u`?new TextDecoder(`utf8`):void 0,m,h,g,_=[],v=[],ee=[];function y(){var e=n.preRun.shift();_.unshift(e)}var b=0,te=null,ne=null;n.preloadedImages={},n.preloadedAudios={};function re(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 ie(e){return e.startsWith(`data:application/octet-stream;base64,`)}var ae=`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(!ie(ae)){var oe=ae;ae=n.locateFile?n.locateFile(oe,s):s+oe}function x(){var e=ae;try{if(e==ae&&u)return new Uint8Array(u);if(ie(e))try{var t=C(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){re(e)}}function se(){return u||typeof fetch!=`function`?Promise.resolve().then(function(){return x()}):fetch(ae,{credentials:`same-origin`}).then(function(e){if(!e.ok)throw`failed to load wasm binary file at '`+ae+`'`;return e.arrayBuffer()}).catch(function(){return x()})}function S(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 ce=[null,[],[]],C=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},le={d:function(){re()},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=ce[e];if(d===0||d===10){d=e===1?c:l;for(var g=f,_=0,v=_+NaN,ee=_;g[ee]&&!(ee>=v);)++ee;if(16<ee-_&&g.subarray&&p)g=p.decode(g.subarray(_,ee));else{for(v=``;_<ee;){var y=g[_++];if(y&128){var b=g[_++]&63;if((y&224)==192)v+=String.fromCharCode((y&31)<<6|b);else{var te=g[_++]&63;y=(y&240)==224?(y&15)<<12|b<<6|te:(y&7)<<18|b<<12|te<<6|g[_++]&63,65536>y?v+=String.fromCharCode(y):(y-=65536,v+=String.fromCharCode(55296|y>>10,56320|y&1023))}}else v+=String.fromCharCode(y)}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),b--,n.monitorRunDependencies&&n.monitorRunDependencies(b),b==0&&(te!==null&&(clearInterval(te),te=null),ne&&(e=ne,ne=null,e()))}function t(t){e(t.instance)}function r(e){return se().then(function(e){return WebAssembly.instantiate(e,a)}).then(e,function(e){l(`failed to asynchronously prepare wasm: `+e),re(e)})}var a={a:le};if(b++,n.monitorRunDependencies&&n.monitorRunDependencies(b),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`||ie(ae)||typeof fetch!=`function`?r(t):fetch(ae,{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 ue;ne=function e(){ue||de(),ue||(ne=e)};function de(){function e(){if(!ue&&(ue=!0,n.calledRun=!0,!f)){if(S(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();ee.unshift(e)}S(ee)}}if(!(0<b)){if(n.preRun)for(typeof n.preRun==`function`&&(n.preRun=[n.preRun]);n.preRun.length;)y();S(_),0<b||(n.setStatus?(n.setStatus(`Running...`),setTimeout(function(){setTimeout(function(){n.setStatus(``)},1),e()},1)):e())}}if(n.run=de,n.preInit)for(typeof n.preInit==`function`&&(n.preInit=[n.preInit]);0<n.preInit.length;)n.preInit.pop()();return de(),t.ready})})()})),Ey,Dy,Oy,ky=n((()=>{Ty(),h(),N(),Dy=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}(Dy||{}),Oy=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(`${Dy[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())}},Ey=Oy,m(Oy,`MAX_OPUS_BUFFER`,16384),m(Oy,`MAX_SAMPLES`,6*960),m(Oy,`create`,function(){var e=M(function*(e,t){return new Ey(yield wy(),e,t)});return function(t,n){return e.apply(this,arguments)}}())})),Ay=n((()=>{ky()})),jy=r({OpusDecoderContext:()=>Ny}),My,Ny,Py=n((()=>{Ci(),V(),Ay(),h(),z(),N(),Ny=class{constructor(e){m(this,`decodedSamples`,[]),m(this,`decoder`,void 0),m(this,`errors`,new C(10)),m(this,`unload`,()=>{this.decoder.unload()}),m(this,`enqueue`,e=>{try{let t=Date.now(),n=this.decoder.decode(new Uint8Array(e.data));this.decodedSamples.push(R(R({},e),{},{type:`audio`,format:`f32`,data:n,statistics:{decodeTime:Date.now()-t,transportTimeFromWorker:0,transportTimeToWorker:0,samplesInBatch:1}}))}catch(e){e instanceof Error&&this.errors.push(ri(!1,e))}}),m(this,`initSegment`,x),m(this,`take`,()=>this.decodedSamples.shift()),this.decoder=e}error(){return this.errors.pop()}},My=Ny,m(Ny,`create`,function(){var e=M(function*(e,t){return new My(yield Oy.create(e,t))});return function(t,n){return e.apply(this,arguments)}}())}));function Fy(e){let t;try{if(t=Ly&&(self.URL||self.webkitURL).createObjectURL(Ly),!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(Iy),{name:e==null?void 0:e.name})}}var Iy,Ly,Ry=n((()=>{Iy=`var __defProp = Object.defineProperty;
48
+ `;Ti(),V(),h();var Hi={width:256,codedWidth:256,height:144,codedHeight:144},Ui={preserveDrawingBuffer:!1,alpha:!1,depth:!1,stencil:!1,antialias:!1,premultipliedAlpha:!1},Wi=class e extends Ht{constructor(){super(),m(this,`canvas`,document.createElement(`canvas`)),m(this,`context`,Ei(this.canvas,Ui)),m(this,`pixelShader`,Di(this.context,this.context.FRAGMENT_SHADER,Bi)),m(this,`vertexShader`,Di(this.context,this.context.VERTEX_SHADER,Vi)),m(this,`buffer`,ki(this.context,e.SQUARE_VERTICES)),m(this,`program`,Ai(this.context,this.vertexShader,this.pixelShader)),m(this,`textures`,{y:Oi(this.context),u:Oi(this.context),v:Oi(this.context)}),m(this,`textRenderer`,void 0),m(this,`size`,Hi),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`,xi(t)),e.preventDefault()}),m(this,`onContextRestored`,()=>{this.emit(`context restored`),this.context=Ei(this.canvas,Ui),this.pixelShader=Di(this.context,this.context.FRAGMENT_SHADER,Bi),this.vertexShader=Di(this.context,this.context.VERTEX_SHADER,Vi),this.buffer=ki(this.context,e.SQUARE_VERTICES),this.program=Ai(this.context,this.vertexShader,this.pixelShader),this.textures={y:Oi(this.context),u:Oi(this.context),v:Oi(this.context)},this.load()}),m(this,`load`,()=>{this.context.useProgram(this.program),this.setupPositionVertexAttributes(),this.texturesNeedRealloc=!0,this.setSize(Hi),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),xr(this.canvas)}getTextRenderer(){return this.textRenderer||(this.textRenderer=new Li(this.context)),this.textRenderer}};m(Wi,`SQUARE_VERTICES`,new Float32Array([0,0,0,1,1,0,1,1])),m(Wi,`REC709`,[1.16438,0,1.79274,-.97295,1.16438,-.21325,-.53291,.30148,1.16438,2.1124,0,-1.1334,0,0,0,1]),m(Wi,`REC601`,[1.16438,0,1.59603,-.87079,1.16438,-.39176,-.81297,.52959,1.16438,2.01723,0,-1.08139,0,0,0,1]),h(),T(),k(),j(),N(),z();var Gi=new WeakMap,Ki=new WeakMap,qi=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`,{}),w(this,Gi,void 0),w(this,Ki,void 0),O(Gi,this,t),this.keySystem=e,this.licenseServerUrl=n,this.certificate=r}get statistics(){return{keySystem:A(Gi,this).keySystem,licenseServerUrl:this.licenseServerUrl,mediaKeySystemConfiguration:A(Gi,this).getConfiguration()}}getMediaKeys(){var e=this;return M(function*(){return A(Ki,e)||O(Ki,e,yield A(Gi,e).createMediaKeys()),A(Ki,e)})()}requestLicense(e){var t=this;return M(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 Ji(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 Yi(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 Xi(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}T(),k(),j();var Zi=new WeakMap,Qi=class extends qi{constructor(e,t){super(`clearkey`,e,``),w(this,Zi,void 0),O(Zi,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=Ji(t).toLowerCase(),n=A(Zi,this)[e];n&&i.push({kty:`oct`,alg:`A128KW`,kid:t,k:Yi(n)})}}let a=JSON.stringify({keys:i,type:r.type});return new TextEncoder().encode(a)}};N(),z();var $i={playready:[`150`,`2000`,`3000`],widevine:[`SW_SECURE_CRYPTO`,`SW_SECURE_DECODE`,`HW_SECURE_CRYPTO`,`HW_SECURE_DECODE`,`HW_SECURE_ALL`],fairplay:[``],clearkey:[``]},ea={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:ea},widevine:{keySystem:`com.widevine.alpha`,supportedConfig:ea},clearkey:{keySystem:`org.w3.clearkey`,supportedConfig:ea}},na=function(){var e=M(function*(e,t){return navigator.requestMediaKeySystemAccess(e,[t]).catch(()=>void 0)});return function(t,n){return e.apply(this,arguments)}}(),ra=function(){var e=M(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 na(e,{initDataTypes:t,[i]:r})))break;o=r}return o});return function(t,n,r,i,a,o){return e.apply(this,arguments)}}(),ia=function(){var e=M(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)||$i[e],d=(l==null?void 0:l.audioRobustness)||$i[e],[f,p]=yield Promise.all([ra(i,o,s,u,`videoCapabilities`,t),ra(i,o,c,d,`audioCapabilities`,n)]);if(!(!f&&!p))return yield na(i,{initDataTypes:o,videoCapabilities:f,audioCapabilities:p})});return function(t,n,r,i){return e.apply(this,arguments)}}(),aa=function(){var e=M(function*(e,t,n,r){let i;for(let a of e)if(i=yield ia(a,t,n,r),i)return{keySystem:a,mediaKeySystemAccess:i}});return function(t,n,r,i){return e.apply(this,arguments)}}(),oa=class extends qi{constructor(e,t,n){super(`fairplay`,e,t,n)}};V(),z(),N();var sa=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}},ca=class extends qi{constructor(e,t){super(`playready`,e,t)}requestLicense(e){var t=this;return M(function*(){xe(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=sa(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()})()}},la=class extends qi{constructor(e,t){super(`widevine`,e,t)}};Ti(),V(),L(),T(),j(),D(),N(),k(),z();var ua=5e3,W=new WeakMap,da=new WeakMap,fa=new WeakMap,pa=new WeakMap,ma=new WeakMap,ha=new WeakMap,ga=new WeakMap,_a=new WeakMap,va=new WeakMap,ya=new WeakMap,ba=new WeakMap,xa=new WeakMap,Sa=new WeakSet,Ca=new WeakMap,wa=new WeakMap,Ta=new WeakMap,Ea=class{constructor(e,t,n={}){var r=this;I(this,Sa),w(this,W,void 0),w(this,da,void 0),w(this,fa,void 0),w(this,pa,new S),w(this,ma,void 0),w(this,ha,void 0),w(this,ga,new Map),w(this,_a,void 0),w(this,va,rt()),w(this,ya,void 0),w(this,ba,e=>{if(A(W,this).info(`Received DRM data`,{drmData:e}),window.clearTimeout(A(ya,this)),A(ha,this)){let t=E(Sa,this,Pa).call(this,e)[A(ha,this).keySystem];t&&(A(ha,this).licenseServerUrl=t)}A(pa,this).resolve(e)}),w(this,xa,e=>{A(W,this).info(`Encrypted event received`,{event:e}),E(Sa,this,Da).call(this,e)}),w(this,Ca,e=>{var t,n;A(W,this).debug(`Session message received`,{event:e});let r=e.target,i=e.message;if(!A(ga,this).get(r)){A(W,this).error(`No active session found for event`,{event:e});return}A(W,this).debug(`Requesting license for session`,{sessionId:r.sessionId,licenseServerUrl:(t=A(ha,this))==null?void 0:t.licenseServerUrl}),(n=A(ha,this))==null||n.requestLicense(i).then(e=>{A(W,this).debug(`License received for session`,{sessionId:r.sessionId}),r.update(e).catch(e=>{E(Sa,this,Ma).call(this,{message:`Failed to update session with license`,isFatal:!1,error:e})})}).catch(e=>{E(Sa,this,Ma).call(this,{message:`Failed to request license`,isFatal:!1,error:e})})}),w(this,wa,e=>{let t=e.target;A(W,this).debug(`Key status changed for session`,{sessionId:t.sessionId}),t.keyStatuses.forEach((e,t)=>{let n=Ji(window.btoa(String.fromCharCode(...new Uint8Array(t))));A(W,this).debug(`Key status`,{base64kid:n,status:e})})}),w(this,Ta,function(){var e=M(function*(e){let t=E(Sa,r,Na).call(r,e);A(W,r).debug(`Prioritized key system list`,{keySystemList:t});let n=yield aa(t,e.videoCodec,e.audioCodec,{widevine:A(ma,r).widevine,playready:A(ma,r).playready});if(!n)return A(W,r).warn(`No supported key system found`),null;A(W,r).debug(`Supported key system found`,n.mediaKeySystemAccess.getConfiguration());let{keySystem:i,mediaKeySystemAccess:a}=n,o=null;return i===`clearkey`?(xe(e.clearkeys,`No clearkeys found`),o=new Qi(a,e.clearkeys)):i===`playready`?(xe(e.playreadyLicenseUrl,`No playreadyLicenseUrl found`),o=new ca(a,e.playreadyLicenseUrl)):i===`widevine`?(xe(e.widevineLicenseUrl,`No widevineLicenseUrl found`),o=new la(a,e.widevineLicenseUrl)):i===`fairplay`&&(xe(e.fairplayLicenseUrl,`No fairplayLicenseUrl found`),xe(e.fairplayCertificate,`No fairplayCertificate found`),o=new oa(a,e.fairplayLicenseUrl,e.fairplayCertificate)),o&&(o.headers=A(ma,r).headers||{},o.queryParams=A(ma,r).queryParams||{}),o});return function(t){return e.apply(this,arguments)}}()),O(da,this,e),O(W,this,t),O(ma,this,n),A(da,this).on(`received drm data`,A(ba,this))}static isSupported(){return!!navigator.requestMediaKeySystemAccess}attach(e){O(fa,this,e),A(W,this).info(`Media element attached`),A(fa,this).addEventListener(`encrypted`,A(xa,this))}getStatistics(){var e,t;return!A(pa,this).resolved&&!((e=A(ha,this))!=null&&e.statistics)?null:R(R({},A(pa,this).resolved),(t=A(ha,this))==null?void 0:t.statistics)}unload(){var e;A(W,this).info(`Unloading EncryptedMediaExtensions`),A(da,this).off(`received drm data`,A(ba,this)),(e=A(fa,this))==null||e.removeEventListener(`encrypted`,A(xa,this)),A(ga,this).forEach((e,t)=>{t.close()}),A(ga,this).clear(),O(_a,this,void 0),O(ha,this,void 0)}set headers(e){A(ma,this).headers=e,A(ha,this)&&(A(ha,this).headers=e)}set queryParams(e){A(ma,this).queryParams=e,A(ha,this)&&(A(ha,this).queryParams=e)}onChannelSwitch(){if(!A(pa,this).resolved){A(W,this).debug(`DRM is not used, skipping channel switch handling`);return}tt()&&A(va,this).platform.safariVersion<18&&E(Sa,this,Ma).call(this,{message:`DRM channel switch not supported on Safari < 18`,isFatal:!0}),window.clearTimeout(A(ya,this));let e=A(pa,this).resolved;O(pa,this,new S),O(ya,this,window.setTimeout(()=>{A(pa,this).resolve(e)},ua))}};function Da(e){var t=this;return M(function*(){try{yield E(Sa,t,Oa).call(t),A(W,t).debug(`Media keys initialization completed`),yield E(Sa,t,ka).call(t,e.initData,e.initDataType)}catch(e){E(Sa,t,Ma).call(t,{message:`Failed to handle encrypted event`,isFatal:!0,error:e})}})()}function Oa(){var e=this;return M(function*(){var t;A(W,e).debug(`Initializing media keys`);let n=yield A(pa,e).promise;if((t=A(fa,e))!=null&&t.mediaKeys){A(W,e).debug(`Media keys already set on media element`);return}if(A(_a,e)){A(W,e).debug(`Media keys initialization already in progress, waiting for completion`),yield A(_a,e);return}O(_a,e,M(function*(){let t=yield A(Ta,e).call(e,n);A(W,e).debug(`CDM obtained`,{cdm:t}),xe(A(fa,e),`No media element found`),xe(t,`No CDM found`);let r=yield t.getMediaKeys();t.certificate&&(yield E(Sa,e,ja).call(e,r,t.certificate)),A(W,e).debug(`Setting media keys on media element`),yield A(fa,e).setMediaKeys(r),O(ha,e,t)})()),yield A(_a,e)})()}function ka(e,t){var n=this;return M(function*(){xe(A(ha,n),`No CDM manager found`);let r=yield A(ha,n).getMediaKeys();if(!e||!E(Sa,n,Aa).call(n,e)){A(W,n).debug(`Duplicate initData, no need to create new session`,{initData:e});return}let i=r.createSession();A(W,n).debug(`Creating new session`,{session:i}),i.addEventListener(`keystatuseschange`,A(wa,n)),i.closed.then(e=>{A(W,n).info(`Session is closed`,{reason:e})}),i.addEventListener(`message`,A(Ca,n)),A(ga,n).set(i,e),A(W,n).debug(`Generating request for session`,{session:i,initDataType:t,initData:e}),yield i.generateRequest(t,e)})()}function Aa(e){for(let[t,n]of A(ga,this))if(Xi(e,n))return!1;return!0}function ja(e,t){var n=this;return M(function*(){try{A(W,n).debug(`Setting server certificate`,{certificate:t}),(yield e.setServerCertificate(t))||A(W,n).warn(`Server certificates are not supported by the CDM.`)}catch(e){A(W,n).error(`Failed to set server certificate`,{error:e})}})()}function Ma(e){let{message:t,isFatal:n,error:r}=e;A(W,this).error(t,{error:r}),A(da,this).emit(`error`,wi(t,n,r))}function Na(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 Pa(e){return{fairplay:e.fairplayLicenseUrl,playready:e.playreadyLicenseUrl,widevine:e.widevineLicenseUrl,clearkey:void 0}}var Fa,Ia,La=n((()=>{Fa=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],Ia=(e,t)=>{let n=Fa.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}}));V();var Ra=7,za=8,Ba=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},Va=e=>Ba(new DataView(e,0))!==0,Ha=(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}}},Ua=e=>e&31,Wa=(e,t)=>{let n=new DataView(e,0),r=Ha(n);for(;r;){let{position:i,nalPrefixSize:a}=r,o=Ha(n,i+4),s=o?o.position-i-a:void 0;if(!t(new DataView(e,i+a,s),a))return;r=o}},Ga=e=>{let t=[],n=[];if(!Va(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 Wa(e,e=>{let r=e.byteOffset+e.byteLength;switch(Ua(e.getUint8(0))){case za:n.push(e.buffer.slice(e.byteOffset,r));break;case Ra:t.push(e.buffer.slice(e.byteOffset,r));break}return!0}),{sequenceParameterSets:t,pictureParameterSets:n}},Ka=e=>{let t=new DataView(e),n=t.getUint8(1),r=t.getUint8(2),i=t.getUint8(3),a=new Oe(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=qa[a.readBits(8)])==null?{numerator:0,denumerator:0}:m}return{width:d,height:f,pixelAspectRatio:p,profileIdc:n,constraintFlags:r,levelIdc:i}},qa=[{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}],Ja=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}};V();var Ya=184549376;function Xa(e){let t=new Pe(e),n=Za(t);(n.flags&Ya)!==0&&Qa(t);let r=$a(t);if(String.fromCharCode(...r.frameId)===`TXXX`)return{header:n,txx:eo(new Pe(t.readBytes(r.size)))}}function Za(e){return{id:e.readBytes(3),majorVersion:e.readUint8(),minorVersion:e.readUint8(),flags:e.readUint8(),size:e.readUint32()}}function Qa(e){let t=e.readUint32();return e.readBytes(t-4),{}}function $a(e){return{frameId:e.readBytes(4),size:e.readUint32(),flags:e.readUint16()}}function eo(e){return{encoding:e.readUint8(),description:e.readUtf8String(),value:e.readUtf8String()}}V();function to(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 no(e,t){let n=to(t),r=new Pe(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 ro(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}=ro(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 ao=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(ao,`type`,`mdat`),h();var oo=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=ro(t),r=t.byteOffset(),i=0;return i=n.version===1?t.readUint64():t.readUint32(),new e(n,r,i)}};m(oo,`type`,`tfdt`),h();var so=1,co=2,lo=8,uo=16,fo=32,po=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=ro(t),r,i,a;return t.readUint32(),(n.flags&so)>0&&t.readUint64(),(n.flags&co)>0&&t.readUint32(),(n.flags&lo)>0&&(r=t.readUint32()),(n.flags&uo)>0&&(i=t.readUint32()),(n.flags&fo)>0&&(a=t.readUint32()),new e(n,r,i,a)}};m(po,`type`,`tfhd`),h();var mo=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{flags:n}=ro(t),r=t.readUint32(),i,a;n&e.TRUN_DATA_OFFSET&&(i=t.readUint32()),n&e.TRUN_FIRST_SAMPLE_FLAGS&&(a=t.readUint32());let o=new e(r,i,a);for(let i=0;i<r;i++)n&e.SAMPLE_DURATION&&o.sampleDurations.push(t.readUint32()),n&e.SAMPLE_SIZE&&o.sampleSizes.push(t.readUint32()),n&e.SAMPLE_FLAGS&&o.sampleFlags.push(t.readUint32()),n&e.SAMPLE_CTS&&o.sampleCts.push(t.readUint32());return o}};m(mo,`TRUN_DATA_OFFSET`,1),m(mo,`TRUN_FIRST_SAMPLE_FLAGS`,4),m(mo,`SAMPLE_DURATION`,256),m(mo,`SAMPLE_SIZE`,512),m(mo,`SAMPLE_FLAGS`,1024),m(mo,`SAMPLE_CTS`,2048),m(mo,`FLAG_SAMPLE_FLAG_IS_NON_SYNC`,65536),m(mo,`FLAG_SAMPLE_DEPENDS_NO`,33554432),m(mo,`FLAG_SAMPLE_DEPENDS_YES`,16777216),m(mo,`type`,`trun`),h();var ho=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=zo(t);e instanceof po&&(n=e),e instanceof oo&&(r=e),e instanceof mo&&(i=e)}return new e(n,r,i)}};m(ho,`type`,`traf`),h();var go=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=zo(t);e instanceof ho&&(n=e)}if(!n)throw Error(`No traf found`);return new e(n)}};m(go,`type`,`moof`),h();var _o=class e{constructor(){m(this,`type`,e.type)}static decodeData(t){return new e}};m(_o,`type`,`mvhd`),h();var vo=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 ro(t),t.readUint32(),new e(String.fromCharCode(...t.readBytes(4)))}};m(vo,`type`,`hdlr`),h();var yo=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}=ro(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(yo,`type`,`mdhd`),h();var bo=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){ro(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=zo(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(bo,`type`,`stsd`),h();var xo=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=zo(t);e instanceof bo&&(n=e)}if(!n)throw Error(`No stsd found`);return new e(n)}};m(xo,`type`,`stbl`),h();var So=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=zo(t);e instanceof xo&&(n=e)}if(!n)throw Error(`No stbl found`);return new e(n)}};m(So,`type`,`minf`),h();var Co=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=zo(t);e instanceof vo&&(n=e),e instanceof So&&(r=e),e instanceof yo&&(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(Co,`type`,`mdia`),h();var wo=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=ro(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(wo,`type`,`tkhd`),h();var To=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=zo(t);e instanceof wo&&(n=e),e instanceof Co&&(r=e)}if(!n)throw Error(`No tkhd found`);if(!r)throw Error(`No mdia found`);return new e(n,r)}};m(To,`type`,`trak`),h();var Eo=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=zo(t);e instanceof To&&r.push(e),e instanceof _o&&(n=e)}if(!n)throw Error(`No mvhd found`);return new e(n,r)}};m(Eo,`type`,`moov`),h();var Do=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(Do,`type`,`avcC`);var Oo=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=zo(t);switch(e.type){case`avcC`:o=e;break}}if(!o)throw Error(`no avcC`);return new e(o,n,r,i,a)}};m(Oo,`type`,`avc1`),h();var ko=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)}},Ao=class e{constructor(t){m(this,`type`,e.type),m(this,`decoderConfig`,void 0),this.decoderConfig=t}static decodeData(t){var n;return ro(t),new e((n=ko(t.readRemaining()))==null?new Uint8Array:n)}};m(Ao,`type`,`esds`);var jo=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=zo(t);e.type===`esds`&&(a=e)}return new e(r,i,a)}};m(jo,`type`,`mp4a`),h();var Mo=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(Mo,`type`,`dOps`);var No=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(no(Mo,t),r,i)}};m(No,`type`,`Opus`),h();var Po=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}=ro(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(Po,`type`,`prft`),T(),k(),j();var Fo=new WeakMap,Io=new WeakMap,Lo=class{constructor(e,t){w(this,Fo,void 0),w(this,Io,void 0),O(Fo,this,e),O(Io,this,t.readBytes(e.size))}data(){return A(Io,this)}get type(){return A(Fo,this).type}};V();var Ro={moov:Eo,trak:To,tkhd:wo,mvhd:_o,moof:go,traf:ho,tfhd:po,tfdt:oo,trun:mo,mdat:ao,mdia:Co,hdlr:vo,minf:So,stbl:xo,mdhd:yo,stsd:bo,prft:Po,avc1:Oo,avcC:Do,esds:Ao,mp4a:jo,Opus:No,emsg:io};function zo(e){let t=to(e),n=Ro[t.type],r=new Pe(e.readBytes(t.size));if(!n){let e=new Lo(t,r);return r.readRemaining(),e}let i=n.decodeData(r);return r.readRemaining(),i}V();function Bo(e){if(e.byteLength<8)throw Error(`Buffer too small`);let t=new Pe(e),n=new Map;for(;t.remaining()>0;){let e=zo(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 Eo))throw Error(`moov atom not found`);return{ftyp:r,moov:i}}function Vo(e){if(e.byteLength<8)throw Error(`Buffer too small`);let t=new Pe(e),n=new Map,r=[];for(;t.remaining()>0;){let e=zo(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 go))throw Error(`moof atom not found`);if(!a||!(a instanceof ao))throw Error(`mdat atom not found`);if(o&&!(o instanceof Po))throw Error(`invalid prft found`);return{moof:i,mdat:a,prft:o,emsgs:r}}T(),k(),j();var Ho=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},Uo=new WeakMap,Wo=new WeakMap,Go=class{constructor(e){w(this,Uo,void 0),w(this,Wo,void 0),O(Uo,this,e),O(Wo,this,Bo(e))}rawBytes(){return A(Uo,this)}init(){return A(Wo,this)}},Ko=new WeakMap,qo=new WeakMap,G=new WeakMap,Jo=new WeakMap,Yo=new WeakMap,Xo=new WeakMap,Zo=class e{clone(){return new e(A(qo,this),new Uint8Array(A(Ko,this).buffer.slice(A(Ko,this).byteOffset,A(Ko,this).byteOffset+A(Ko,this).byteLength)))}constructor(e,t){w(this,Ko,void 0),w(this,qo,void 0),w(this,G,void 0),w(this,Jo,void 0),w(this,Yo,void 0),w(this,Xo,void 0),O(Ko,this,t),O(qo,this,e),O(G,this,Vo(t)),O(Jo,this,A(qo,this).init().moov.traks[0]);let n=A(G,this).moof.traf.trun;O(Yo,this,Ho(n==null?void 0:n.sampleSizes)),O(Xo,this,Ho(n==null?void 0:n.sampleDurations))}updateBaseMediaDecodeTime(e){let t=new DataView(A(Ko,this).buffer,A(Ko,this).byteOffset,A(Ko,this).byteLength);if(A(G,this).moof.traf.tfdt)if(A(G,this).moof.traf.tfdt.baseMediaDecodeTime=e,A(G,this).moof.traf.tfdt.extra.version===1){let n=Math.floor(e/4294967296),r=(e&4294967295)>>>0;t.setUint32(A(G,this).moof.traf.tfdt.byteOffset-A(Ko,this).byteOffset,n),t.setUint32(A(G,this).moof.traf.tfdt.byteOffset-A(Ko,this).byteOffset+4,r)}else t.setUint32(A(G,this).moof.traf.tfdt.byteOffset-A(Ko,this).byteOffset,e)}producerReferenceTime(){if(A(G,this).prft)return A(G,this).prft.date()}duration(){let e=A(G,this).moof.traf.trun,t=A(G,this).moof.traf.tfhd;if((e==null?void 0:e.sampleDurations.length)===0){let n=(e==null?void 0:e.samplesCount)||1;if(t!=null&&t.defaultSampleDuration)return(t==null?void 0:t.defaultSampleDuration)*n}return(e==null?void 0:e.sampleDurations.reduce((e,t)=>e+t,0))||0}baseMediaDecodeTime(){var e;let t=(e=A(G,this).moof.traf.tfdt)==null?void 0:e.baseMediaDecodeTime;if(!t)throw Error(`no baseMediaDecodeTime`);return t}startsWithKeyframe(){var e;let t=A(G,this).moof.traf.trun,n=(t==null?void 0:t.firstSampleFlags)||(t==null?void 0:t.sampleFlags[0])||((e=A(G,this).moof.traf.tfhd)==null?void 0:e.defaultSampleFlags);return n?(n&mo.FLAG_SAMPLE_DEPENDS_NO)!==0:!1}compositionTimeOffset(e){var t;return(t=A(G,this).moof.traf.trun)==null?void 0:t.sampleCts[e]}timescale(){let e=A(Jo,this);if(!e)throw Error(`no tracks`);return e.mdia.mdhd.timescale}mediaType(){var e;let t=(e=A(Jo,this))==null?void 0:e.mdia.hdlr.mediaType();if(!t)throw Error(`no media type`);return t}header(){return A(qo,this)}fragment(){return A(G,this)}samplesCount(){var e;return((e=A(G,this).moof.traf.trun)==null?void 0:e.samplesCount)||0}sample(e){var t,n,r,i,a,o,s;let c=A(G,this).moof.traf.trun,l=A(Jo,this),u=(c==null?void 0:c.samplesCount)||0,d=(t=A(G,this).moof.traf.tfdt)==null?void 0:t.baseMediaDecodeTime;if(e>=u||d===void 0||!l)return;let f=l.mdia.minf.stbl.stsd,p=f.codec;if(!p)return;let m=c==null?void 0:c.sampleCts[e],h=(c==null?void 0:c.sampleDurations[e])||0,g=d+(((n=A(Xo,this))==null?void 0:n[e])||0),_=l.mdia.mdhd.timescale||1e3,v=(c==null?void 0:c.sampleSizes[e])||A(G,this).mdat.data.byteLength,ee=((r=A(Yo,this))==null?void 0:r[e])||0,y=A(G,this).mdat.data.subarray(ee,ee+v),b=(c==null?void 0:c.is_sync_sample(e))||!1;return l.mdia.hdlr.mediaType()===`video`?{type:`video`,codec:p,width:l.tkhd.width||0,height:l.tkhd.height||0,duration:h,isSync:b,timescale:_,timestamp:g,compositionTimeOffset:m,data:y}:{type:`audio`,codec:p,channels:(f==null||(i=f.opus)==null?void 0:i.channelCount)||(f==null||(a=f.mp4a)==null?void 0:a.channelCount)||0,sampleRate:(f==null||(o=f.opus)==null?void 0:o.sampleRate)||(f==null||(s=f.mp4a)==null?void 0:s.sampleRate)||0,duration:h,isSync:b,timestamp:g,compositionTimeOffset:m,data:y,timescale:_}}rawBytes(){return A(Ko,this)}},Qo=new WeakMap,$o=class{constructor(e){w(this,Qo,void 0),O(Qo,this,new Go(e))}header(){return A(Qo,this)}createFragment(e){return new Zo(A(Qo,this),e)}};function K(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 q={ftyp:K(`ftyp`),mvhd:K(`mvhd`),moov:K(`moov`),trak:K(`trak`),tkhd:K(`tkhd`),mdia:K(`mdia`),mdhd:K(`mdhd`),hdlr:K(`hdlr`),minf:K(`minf`),vmhd:K(`vmhd`),smhd:K(`smhd`),dinf:K(`dinf`),dref:K(`dref`),stbl:K(`stbl`),stsd:K(`stsd`),avc1:K(`avc1`),hvc1:K(`hvc1`),hev1:K(`hev1`),av01:K(`av01`),av1C:K(`av1C`),avcC:K(`avcC`),hvcC:K(`hvcC`),esds:K(`esds`),colr:K(`colr`),nclx:K(`nclx`),mvex:K(`mvex`),trex:K(`trex`),udta:K(`udta`),meta:K(`meta`),ilst:K(`ilst`),moof:K(`moof`),mfhd:K(`mfhd`),traf:K(`traf`),tfhd:K(`tfhd`),tfdt:K(`tfdt`),trun:K(`trun`),mdat:K(`mdat`),mp4a:K(`mp4a`),Opus:K(`Opus`),prft:K(`prft`),dOps:K(`dOps`),emsg:K(`emsg`)};V(),h();var es=1e3,ts={vide:K(`vide`),soun:K(`soun`),videoHandler:K(`VideoHandler\0`),soundHandler:K(`SoundHandler\0`),url:K(`url `),pasp:K(`pasp`),btrt:K(`btrt`),stts:K(`stts`),stsc:K(`stsc`),stsz:K(`stsz`),stco:K(`stco`),data:K(`data`),mdir:K(`mdir`),appl:K(`appl`)},ns=K(`iso6`),rs=new Uint8Array([0,0,2,0]),is=[ns,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([97,118,99,49]),new Uint8Array([109,112,52,49])],as=[ns,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([104,118,99,49]),new Uint8Array([109,112,52,49])],os=[ns,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([97,118,48,49]),new Uint8Array([109,112,52,49])],ss=[ns,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([109,112,52,49])],cs=class{constructor(e){m(this,`writer`,void 0),m(this,`moofOffset`,0),this.writer=new Ie(e)}},J=(e,t,n)=>{e.writer.writeUint32(n+8),e.writer.writeBytes(t)},Y=(e,t,n,r,i)=>{J(e,t,n+4),e.writer.writeUint8(r),e.writer.writeUint24(i)},ls=(e,t)=>{J(e,q.ftyp,ns.byteLength+rs.byteLength+t.reduce((e,t)=>e+t.byteLength,0)),e.writer.writeBytes(ns),e.writer.writeBytes(rs),t.forEach(t=>e.writer.writeBytes(t))},us=2**32,ds=2208988800,fs=(e,t,n,r)=>{Y(e,q.prft,20,1,0);let i=n/1e3,a=Math.floor(i),o=(i-a)*1e3*1e3*us/1e6;e.writer.writeUint32(t),e.writer.writeUint32(a+ds),e.writer.writeUint32(o),e.writer.writeUint64(r)},ps=(e,t,n)=>{Y(e,q.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)},ms=e=>`sequenceParameterSets`in e,hs=e=>`sequenceHeader`in e,gs=e=>`hvcC`in e,_s=e=>e.type===`video`,vs=e=>e.type===`audio`,ys=(e,t,n)=>{let r=e.writer.position();Y(e,q.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(vs(t)?1:0),e.writer.writeUint16(vs(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])),_s(t)?(e.writer.writeUint32(t.width*65536),e.writer.writeUint32(t.height*65536)):vs(t)&&(e.writer.writeUint32(0),e.writer.writeUint32(0)),e.writer.writeUint32At(r,e.writer.position()-r)},bs=(e,t)=>{Y(e,q.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)},xs=(e,t)=>{let n=e.writer.position();Y(e,q.hdlr,0,0,0),e.writer.writeUint32(0),e.writer.writeBytes(_s(t)?ts.vide:ts.soun),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeBytes(_s(t)?ts.videoHandler:ts.soundHandler),e.writer.writeUint32At(n,e.writer.position()-n)},Ss=e=>{let t=e.writer.position();J(e,q.dinf,0),Y(e,q.dref,16,0,0),e.writer.writeUint32(1),Y(e,ts.url,0,0,1),e.writer.writeUint32At(t,e.writer.position()-t)},Cs=(e,t)=>{let n=e.writer.position();J(e,q.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)},ws=(e,t)=>{var n,r;let i=e.writer.position();J(e,q.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)},Ts=(e,t)=>{let n=e.writer.position();J(e,q.hvcC,0),e.writer.writeBytes(t.hvcC),e.writer.writeUint32At(n,e.writer.position()-n)},Es=(e,t)=>{let n=e.writer.position();J(e,hs(t)?q.av01:gs(t)?q.hvc1:q.avc1,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),ms(t)?Cs(e,t):hs(t)?(ws(e,t),t.parsedSequenceHeader.colorConfig&&(J(e,q.colr,11),e.writer.writeBytes(q.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))):gs(t)&&Ts(e,t),t.pixelAspectRatio&&(J(e,ts.pasp,8),e.writer.writeUint32(t.pixelAspectRatio.numerator),e.writer.writeUint32(t.pixelAspectRatio.denumerator)),t.bitrate&&(J(e,ts.btrt,12),e.writer.writeUint32(0),e.writer.writeUint32(t.bitrate),e.writer.writeUint32(t.bitrate)),e.writer.writeUint32At(n,e.writer.position()-n)},Ds=(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)},Os=(e,t)=>{let n=t.decoderConfig.byteLength>0?t.decoderConfig.byteLength+5:0,r=e.writer.position();Y(e,q.esds,0,0,0),Ds(e,3,21+n+5+1),e.writer.writeUint16(t.trackId),e.writer.writeUint8(0),Ds(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&&(Ds(e,5,t.decoderConfig.byteLength),e.writer.writeBytes(t.decoderConfig)),Ds(e,6,1),e.writer.writeUint8(2),e.writer.writeUint32At(r,e.writer.position()-r)},ks=e=>{switch(e){case`aac`:case`mp3`:return q.mp4a;case`opus`:return q.Opus}},As=(e,t)=>{let n=e.writer.position();J(e,q.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)},js=(e,t)=>{let n=e.writer.position();switch(J(e,ks(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`:Os(e,t);break;case`opus`:As(e,t);break}t.bitrate&&(J(e,ts.btrt,12),e.writer.writeUint32(0),e.writer.writeUint32(t.bitrate),e.writer.writeUint32(t.bitrate)),e.writer.writeUint32At(n,e.writer.position()-n)},Ms=(e,t)=>{let n=e.writer.position();J(e,q.stbl,0);let r=e.writer.position();Y(e,q.stsd,0,0,0),e.writer.writeUint32(1),_s(t)?Es(e,t):vs(t)&&js(e,t),e.writer.writeUint32At(r,e.writer.position()-r),Y(e,ts.stts,4,0,0),e.writer.writeUint32(0),Y(e,ts.stsc,4,0,0),e.writer.writeUint32(0),Y(e,ts.stsz,8,0,0),e.writer.writeUint32(0),e.writer.writeUint32(0),Y(e,ts.stco,4,0,0),e.writer.writeUint32(0),e.writer.writeUint32At(n,e.writer.position()-n)},Ns=(e,t)=>{let n=e.writer.position();J(e,q.minf,0),_s(t)?(Y(e,q.vmhd,8,0,1),e.writer.writeUint32(0),e.writer.writeUint32(0)):vs(t)&&(Y(e,q.smhd,4,0,0),e.writer.writeUint16(0),e.writer.writeUint16(0)),Ss(e),Ms(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},Ps=(e,t)=>{let n=e.writer.position();J(e,q.mdia,0),bs(e,t),xs(e,t),Ns(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},Fs=(e,t,n)=>{let r=e.writer.position();J(e,q.trak,0),ys(e,t,n),Ps(e,t),e.writer.writeUint32At(r,e.writer.position()-r)},Is=(e,t)=>{Y(e,q.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)},Ls=(e,t)=>{let n=e.writer.position();J(e,q.mvex,0),t.forEach(t=>Is(e,t)),e.writer.writeUint32At(n,e.writer.position()-n)},Rs=(e,t,n)=>{let r=e.writer.position();J(e,K(t),0),J(e,ts.data,0),e.writer.writeUint32(1),e.writer.writeUint32(0),e.writer.writeBytes(K(n)),e.writer.writeUint32At(r,e.writer.position()-r),e.writer.writeUint32At(r+8,e.writer.position()-r-8)},zs=(e,t)=>{let n=e.writer.position();Y(e,q.meta,0,0,0);let r=e.writer.position();J(e,q.hdlr,25),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeBytes(ts.mdir),e.writer.writeBytes(ts.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();J(e,q.ilst,0),t==null||t.forEach((t,n)=>Rs(e,n,t)),e.writer.writeUint32At(i,e.writer.position()-i),e.writer.writeUint32At(n,e.writer.position()-n)},Bs=(e,t)=>{let n=e.writer.position();J(e,q.udta,0),zs(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},Vs=(e,t,n,r)=>{let i=e.writer.position();J(e,q.moov,0),ps(e,0,n),t.forEach(t=>Fs(e,t,n)),Ls(e,t),r&&Bs(e,r),e.writer.writeUint32At(i,e.writer.position()-i)},Hs=(e,t)=>{let n=e.writer.position();Y(e,q.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)},Us=(e,t)=>{let n=e.writer.position();Y(e,q.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)},Ws=(e,t)=>{if(!t.samples[0])throw Error(`At least one sample must be provided`);let n=t.samples.some(e=>!!e.compositionTimeOffset),r=Gs(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();Y(e,q.trun,16,1,a),e.writer.writeUint32(t.samples.length);let s=e.writer.position();e.writer.writeUint32(0),r&&e.writer.writeUint32(Gs(t.samples[0]));for(let r of t.samples)i&&(e.writer.writeUint32(r.duration),e.writer.writeUint32(r.data.byteLength),e.writer.writeUint32(Gs(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)},Gs=e=>e.isSync?33554432:16842752,Ks=(e,t)=>{let n=e.writer.position();J(e,q.traf,0),Hs(e,t),Us(e,t),Ws(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},qs=(e,t)=>{Y(e,q.mfhd,4,0,0),e.writer.writeUint32(t)},Js=(e,t)=>{let n=e.writer.position();J(e,q.moof,0),qs(e,t.sequenceNumber),Ks(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},Ys=(e,t,n)=>{J(e,q.mdat,n);for(let n of t.samples){let t=n.data instanceof ArrayBuffer?new Uint8Array(n.data):n.data;e.writer.writeBytes(t)}},Xs=(e,t)=>{let n=new cs,r=e.filter(e=>_s(e)&&ms(e)).length>0,i=e.filter(e=>_s(e)&&gs(e)).length>0;return e.filter(e=>_s(e)&&hs(e)).length>0?ls(n,os):i?ls(n,as):r?ls(n,is):ls(n,ss),Vs(n,e,es,t),n.writer.buffer()},Zs=e=>{var t;let n=0;for(let t of e.samples)n+=t.data.byteLength;let r=new cs(n+256);return((t=e.samples[0])==null?void 0:t.producerReferenceTime)!==void 0&&fs(r,e.trackId,e.samples[0].producerReferenceTime,e.timestamp),r.moofOffset=r.writer.position(),Js(r,e),Ys(r,e,n),r.writer.bufferExact()},Qs=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return Zs({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:33554432,defaultDuration:n.duration,samples:e})},$s=(e,t,n,r)=>Xs([{type:`audio`,codec:`aac`,decoderConfig:e,channelCount:t,sampleRate:n,timescale:r,duration:0,trackId:1}]),ec=e=>{let{sequenceParameterSets:t,pictureParameterSets:n}=Ga(e),r=t[0],i=n[0];if(!r||!i)throw Error(`No sps or pps provided`);return Ka(r)},tc=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return Zs({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:n.isSync?33554432:16842752,defaultDuration:n.duration,samples:e})},nc=(e,t)=>{let{sequenceParameterSets:n,pictureParameterSets:r}=Ga(e),i=ec(e);return Xs([{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}])},rc=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return Zs({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:n.isSync?33554432:16842752,defaultDuration:n.duration,samples:e})},ic=(e,t,n,r)=>Xs([{type:`video`,hvcC:new Uint8Array(e),width:n,height:r,timescale:t,duration:0,trackId:1}]),ac=(e,t,n)=>Xs([{type:`audio`,trackId:1,channelCount:t,timescale:n,codec:`opus`,decoderConfig:e,duration:0,sampleRate:48e3}]),oc=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return Zs({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:33554432,defaultDuration:n.duration,samples:e})};V(),T(),k(),j();var sc=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 cc=e=>{let t=new Oe(e);return t.peekBit()===1&&t.readBits(32),dc(t),Sc(t)},lc=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]},uc=e=>{let t=0;for(;t<100&&e.readBit()===0;)t++;return t>=32?0:e.readBits(t)+(1<<t)-1},dc=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?lc(e):[0,t];return{headerLength:1+i+o,type:r,obuSize:s}},fc=e=>{let t=e.readBits(32),n=e.readBits(32),r=e.readBit()!==0,i=0;return r&&(i=uc(e)+1),{timescale:n,equalPictureInterval:r,numUnitsInDisplayTick:t,numTicksPerPicture:i}},pc=2,mc=2,hc=1,gc=2,_c=2,vc=13,yc=0,bc=2,xc=0,Sc=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=fc(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,ee=e.readBit()!==0,y=!1,b=!1,te=!1,ne=!1,re=!1,ie=!1,ae=!1,oe=pc,x=mc,se=0;i||(y=e.readBit()!==0,b=e.readBit()!==0,te=e.readBit()!==0,ne=e.readBit()!==0,re=e.readBit()!==0,re&&(ie=e.readBit()!==0,ae=e.readBit()!==0),oe=e.readBit()===0?e.readBit():pc,x=oe>0?e.readBit()>0?mc:e.readBit():mc,se=re?e.readBits(3):0);let S=e.readBit()!==0,ce=e.readBit()!==0,C=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:ee,enableInterintraCompound:y,enableMaskedCompound:b,enableWarpedMotion:te,enableDualFilter:ne,enableOrderHint:re,enableJntComp:ie,enableRefFrameMvs:ae,seqForceScreenContentTools:oe,seqForceIntegerMv:x,orderHintBits:se,enableSuperres:S,enableCdef:ce,enableRestoration:C,colorConfig:Cc(e,n),filmGrainParamsPresent:e.readBit()!==0}},Cc=(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=gc,c=_c,l=bc,u=!1,d=0,f=0,p=xc,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=xc,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===hc&&c===vc&&l===yc?(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})},wc=e=>{let t=cc(e);if(t)return{width:t.maxFrameWidth,height:t.maxFrameHeight}},Tc=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return Zs({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:n.isSync?33554432:16842752,defaultDuration:n.duration,samples:e})},Ec=(e,t)=>{let n=cc(e);if(!n)throw Error(`Failed to parse sequence header`);return Xs([{type:`video`,parsedSequenceHeader:n,sequenceHeader:new Uint8Array(e),width:n.maxFrameWidth,height:n.maxFrameHeight,timescale:t,duration:0,trackId:1}])},Dc=e=>{let{codec:t,initData:n,timescale:r}=e;switch(t){case`h264`:return kc(n,r);case`h265`:return jc(n,r,e.width,e.height);case`av1`:return Ac(n,r);case`opus`:return Mc(n,r,e.channelCount||2);case`aac`:return Nc(n,r,e.channelCount||2);default:throw Error(`Failed to initialize ${t} segment`)}},Oc=(e,t)=>{switch(e){case`h264`:return ec(t);case`av1`:return wc(t)}},kc=(e,t)=>nc(e,t),Ac=(e,t)=>Ec(e,t),jc=(e,t,n,r)=>{if(!n||!r)throw Error(`HEVC init segment requires width and height`);return ic(e,t,n,r)},Mc=(e,t,n)=>ac(new Uint8Array(e),n,t),Nc=(e,t,n)=>$s(new Uint8Array(e),n,t,t),Pc=(e,t)=>{if(!e[0])throw Error(`At least one sample must be provided`);switch(e[0].codec){case`h264`:return tc(e,t);case`h265`:return rc(e,t);case`opus`:return oc(e,t);case`aac`:return Qs(e,t);case`av1`:return Tc(e,t);default:throw Error(`Unsupported codec ${e[0].codec}`)}},Fc,Ic,Lc=n((()=>{Fc=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},Ic=(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}})),Rc=n((()=>{Lc()}));V();var zc=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}({}),Bc=e=>!!(e&zc.SYNC),Vc=e=>!!(e&zc.INIT),Hc=e=>!!(e&zc.RENDITIONS),Uc=e=>!!(e&zc.TIMED_METADATA),Wc=e=>!!(e&zc.HAS_COMPOSITION_TIME),Gc=e=>{let t=new DataView(e,0),n=t.getUint8(0),r=t.getUint16(1),i=t.getUint8(3),a=t.getUint8(4),o=Ae(new Uint8Array(e),5,12),s=t.getUint32(13),c=Wc(i)?t.getInt16(17):void 0;return{version:n,renditionId:a,flags:i,timestamp:o,timescale:s,payload:e.slice(r),compositionTimeOffset:c}},Kc=`data:video/mp4;base64,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`;h(),N();var qc=()=>`wakeLock`in navigator&&window.navigator.userAgent.indexOf(`Samsung`)===-1,Jc=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()}),qc()&&(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(!qc()){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`,Kc),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 M(function*(){if(qc())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(qc())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()}};T(),k(),j(),L(),D();var Yc=/\r\n|\r|\n/,Xc=new WeakMap,Zc=new WeakMap,Qc=class{constructor(e){w(this,Xc,void 0),w(this,Zc,void 0),O(Xc,this,e),O(Zc,this,0)}skipEmptyLines(){let e=0;for(;A(Xc,this)[A(Zc,this)]===``;){var t;O(Zc,this,(t=A(Zc,this),t++,t)),e++}return e}readLine(){var e,t;return A(Xc,this)[O(Zc,this,(e=A(Zc,this),t=e++,e)),t]}takeUntilEmptyLine(){let e=[];for(;A(Xc,this)[A(Zc,this)]!==``;){let t=this.readLine();if(t===void 0)break;e.push(t)}return e}linesLeft(){return A(Xc,this).length-A(Zc,this)}},$c=new WeakSet,el=class{constructor(){I(this,$c)}parse(e){let t=[],n=new Qc(e.split(Yc)),r=n.readLine();if(!r||!r.startsWith(`WEBVTT`))throw Error(`missing 'WEBVTT' signature`);for(;n.readLine()!==``;);for(;n.linesLeft()>0;){let e=E($c,this,tl).call(this,n);e&&t.push(e),n.skipEmptyLines()}return t}};function tl(e){e.skipEmptyLines();let t=new Qc(e.takeUntilEmptyLine()),n=t.readLine(),r;if(n!=null&&n.startsWith(`NOTE`))return;if(n!=null&&n.includes(`-->`)||(r=n,n=t.readLine()),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=t.readLine();if(!c)throw Error(`missing text`);let l=E($c,this,nl).call(this,i),u=E($c,this,nl).call(this,o);return{id:r,startTime:l,endTime:u,text:c}}function nl(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 rl=e=>{let t=window;t.vindralInstances=t.vindralInstances||{},t.vindralInstances[e.getStatistics().clientId.substring(0,8)]=e};Ti(),V(),h(),N();var il=class extends Ht{constructor({type:e,autoplay:t,muted:n,volume:r,logger:i,poster:a}){var o;super(),o=this,m(this,`element`,void 0),m(this,`logger`,void 0),m(this,`seekTimes`,new C(10)),m(this,`seekStartTime`,void 0),m(this,`_totalSeekTime`,0),m(this,`_userProvidedMuted`,void 0),m(this,`timers`,new Vn),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.timers.setTimeout(()=>{this.timers.setInterval(this.onBufferStateChange,500)},1e4)}),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?`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(x)}),m(this,`play`,()=>{this.element.muted=this._userProvidedMuted,this._play().catch(e=>{if(e instanceof Error){let t=new H(`Media Play Error`,{source:e,isFatal:!1,code:`media_play_error`});this.emit(`error`,t)}})}),m(this,`_play`,M(function*(){try{yield o.element.play(),o._userHasProvidedInput=!o.muted||o._userProvidedMuted}catch(e){if(e instanceof Error&&e.name===`NotAllowedError`)if(o._userHasProvidedInput=!1,o.element.muted)o.emit(`needs user input`,{forAudio:!0,forVideo:!0});else return o.element.muted=!0,o.emit(`needs user input`,{forAudio:!0,forVideo:!1}),o._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`,()=>({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=Date.now()}),m(this,`onSeekEnd`,()=>{if(!this.seekStartTime)return;let e=Date.now()-this.seekStartTime;this.seekTimes.push(e),this._totalSeekTime+=e,this.seekStartTime=void 0}),this.logger=i,this._userProvidedMuted=n,this.element=document.createElement(e),this.element instanceof HTMLVideoElement&&(this.element.playsInline=!0),this.element.controls=!1,this.element.autoplay=t,this.element.muted=n,r!==void 0&&(this.element.volume=r),this.element.style.display=`block`,this.element.style.width=`100%`,this.element.disableRemotePlayback=!0,this.element.setAttribute(`poster`,`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAJCAQAAACRI2S5AAAAEElEQVR42mNkIAAYRxWAAQAG9gAKqv6+AwAAAABJRU5ErkJggg==`),this.onPlayPause(),setTimeout(()=>{!this.element||!a||this.element.setAttribute(`poster`,a)},0),this.addEventListeners()}get seekTime(){return this.seekTimes.isEmpty()?0:jt(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}set muted(e){this._userProvidedMuted=e,this.element.muted=e}get userHasProvidedInput(){return this._userHasProvidedInput}get isPaused(){return this._isPaused}},al=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=pr(e)?{type:`media-source`,audio:{contentType:mr(e),bitrate:e.bitRate,channels:e.channels.toString(),samplerate:e.sampleRate}}:{type:`media-source`,video:{contentType:mr(e),bitrate:e.bitRate,width:e.width,height:e.height,framerate:e.frameRate[0]/e.frameRate[1]}},navigator.mediaCapabilities.decodingInfo(t)};h(),z();var ol,sl=.15,cl=.2,ll=.4,ul=.5,dl=.6,fl=15,pl={cooldownTime:3e3,maxBufferingEvents:{last10Seconds:0},maxBufferingRatio:{last10Seconds:0},maxRecentDowngradesCount:3,maxDowngradeLookbackMs:60*1e3,minTimeSpentPlaying:{factor:.5,ratio:.1},maxCooldownRatio:2},ml=e=>t=>t>e,hl=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`,Date.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=Date.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=Date.now()-this.config.maxDowngradeLookbackMs,a=r.filter(ml(i)).length,o=n.filter(ml(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=Date.now()-this.config.maxDowngradeLookbackMs*l,d=r.filter(ml(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>Date.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(fl),c=o<0,l=r.predict(fl)<ll&&r.slope<0,u=r.predict(fl)>dl,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>ul&&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<sl)&&c&&t<ll&&s<cl&&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({},pl),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.timeSpentBufferingLast(e)>this.config.maxBufferingEvents.last10Seconds}};ol=hl,m(hl,`create`,(e,t,n,r={})=>new ol(e,t,n,r)),h(),z();var gl,_l={minBufferTime:1500,maxBufferTime:1500,cooldownTime:3e4,maxBufferingEvents:{last30Seconds:3},maxBufferingRatio:{last30Seconds:.15}},vl=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`,Date.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=Date.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>Date.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({},_l),a),this.emitter=t,this.logger=n}updateConfig(e){this.config=R(R({},this.config),e)}};gl=vl,m(vl,`BUFFER_TIME_STEP_SIZE`,500),m(vl,`BUFFER_TIME_MAX_STEPS`,3),m(vl,`create`,(e,t,n,r,i={})=>new gl(e,t,n,r,i));var yl=e=>e?{Authorization:`Bearer ${e}`}:void 0,bl=(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){}};V(),h(),z(),N();var xl=e=>typeof e==`object`&&!!e&&`message`in e,Sl=class extends Error{constructor({status:e,url:t,body:n}){let r=Xn(n),i=xl(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)}},Cl=e=>typeof e.status==`number`,wl=()=>{if(!(typeof window>`u`||typeof document>`u`))return bl(window.location,document)},Tl=e=>{let t=wl();if(!t||e.searchParams.has(`parentOrigin`))return e;let n=new URL(e.toString());return n.searchParams.append(`parentOrigin`,t),n},El=function(){var e=M(function*(e,t){let n=Tl(e),r=yield fetch(n.toString(),R({mode:`cors`},t));if(!r.ok)throw new Sl({status:r.status,url:n,body:yield r.text()});return r});return function(t,n){return e.apply(this,arguments)}}(),Dl=function(){var e=M(function*(e,t){return yield(yield El(e,R({},t))).json()});return function(t,n){return e.apply(this,arguments)}}();(function(){var e=M(function*(e){return El(e)});return function(t){return e.apply(this,arguments)}})();var Ol=function(){var e=M(function*(e,t){return El(e,R({method:`POST`},t))});return function(t,n){return e.apply(this,arguments)}}();function kl(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(),N();var Al={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`},jl=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 M(function*(){let{channelId:n,channelGroupId:r}=e,i={channelId:n,channelGroupId:r},a=new URL(Al.lbConnect(e),t.baseUrl),o=t.getAuthToken(i),s=yield Dl(a,{headers:t.getHeaders(o)});if(kl(s)){let e=s.channels.map(e=>{let n=t.toChannel(e,i),r=dr(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 M(function*(){let n={channelId:e},r=new URL(`channel/${e}`,t.baseUrl),i=t.getAuthToken(n),a=yield Dl(r,{headers:t.getHeaders(i)});return t.toChannel(a,n,i)})()}getChannels(e){var t=this;return M(function*(){let n={channelGroupId:e},r=new URL(`channels/${e}`,t.baseUrl),i=t.getAuthToken(n),a=yield Dl(r,{headers:t.getHeaders(i)}),o=Array.isArray(a)?a:a.channels;return t.toChannels(o,n,i)})()}getHeaders(e){var t;return(t=yl(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(Al.thumbnails(t,n),this.baseUrl),o=i.map(r=>new URL(`?channelId=${e.channelId}&width=${r.width}&height=${r.height}${Ml(t,n)}`,a).toString());return{channelId:e.channelId,name:e.name,isLive:e.isLive,thumbnailUrls:o}}},Ml=(e,t)=>t?e.channelGroupId?`&channelGroupId=${e.channelGroupId}&auth.token=${t}&auth.type=jwt`:`&auth.token=${t}&auth.type=jwt`:``,Nl=function(e){return e[e.StreamHeaderGroup=4]=`StreamHeaderGroup`,e[e.FetchHeader=5]=`FetchHeader`,e[e.StreamHeaderTrack=60]=`StreamHeaderTrack`,e}({});V(),T(),j(),k(),N(),L(),On(),jn(),D();var Pl,Fl,Il,Ll,Rl,zl,Bl,Vl,Hl,Ul={Normal:0,ObjectDoesNotExist:1,GroupDoesNotExist:2,EndOfGroup:3,EndOfTrackAndGroup:4};function Wl(e){switch(e){case Ul.Normal:case Ul.ObjectDoesNotExist:case Ul.GroupDoesNotExist:case Ul.EndOfGroup:case Ul.EndOfTrackAndGroup:return}throw Error(`Unknown object status ${e}`)}var Gl=new WeakMap,Kl=new WeakMap,ql=new WeakMap,Jl=new WeakMap,Yl=new WeakMap,Xl=new WeakMap,Zl=new WeakMap,Ql=new WeakMap;Pl=Symbol.asyncIterator,Fl=un(),Il=Symbol.asyncDispose;var $l=class{endStatus(){return A(Xl,this).promise}constructor(e,t,n,r,i,a){w(this,Gl,void 0),w(this,Kl,void 0),w(this,ql,void 0),w(this,Jl,void 0),w(this,Yl,void 0),w(this,Xl,new S),w(this,Zl,0),w(this,Ql,void 0),O(Gl,this,e),O(Kl,this,t),O(ql,this,n),O(Jl,this,r),O(Yl,this,i),O(Ql,this,a)}groupId(){return A(Kl,this)}subscribeId(){return A(ql,this)}next(){var e=this;return M(function*(){var t;if(!A(Xl,e).pending||(yield A(Gl,e).isDone()))return{done:!0,value:void 0};let n=A(Zl,e)===0?A(Kl,e):yield A(Gl,e).readBigVarInt(),r=yield A(Gl,e).readBigVarInt(),i=yield A(Gl,e).readVarInt(),a=0,o=new Uint8Array;return i>0?o=yield A(Gl,e).read(i):a=yield A(Gl,e).readVarInt(),Wl(a),(a===Ul.EndOfTrackAndGroup||a===Ul.EndOfGroup)&&A(Xl,e).resolve(a),O(Zl,e,(t=A(Zl,e),t++,t)),{done:!1,value:{subscribeId:A(ql,e),trackAlias:A(Jl,e),groupId:n,subGroupId:P(0),objectId:r,subscriberPriority:A(Yl,e),streamId:A(Ql,e),objectStatus:a,payload:o}}})()}return(){var e=this;return M(function*(){for(;!(yield e.next()).done;);return{done:!0,value:void 0}})()}[Pl](){return this}[Fl](){return Promise.resolve()}[Il](){return Promise.resolve()}},eu=new WeakMap,tu=new WeakMap,nu=new WeakMap,ru=new WeakMap,iu=new WeakMap,au=new WeakSet;Ll=Symbol.asyncIterator,Rl=un(),zl=Symbol.asyncDispose;var ou=class{constructor(e,t,n,r,i){I(this,au),w(this,eu,void 0),w(this,tu,void 0),w(this,nu,void 0),w(this,ru,void 0),w(this,iu,void 0),O(eu,this,e),O(tu,this,t),O(nu,this,n),O(ru,this,r),O(iu,this,i)}streamId(){return A(iu,this)}groups(){return E(au,this,su).call(this)}subscribeId(){return A(tu,this)}return(){var e=this;return M(function*(){return yield A(eu,e).close(),{done:!0,value:void 0}})()}[Ll](){return this}[Rl](){return E(au,this,cu).call(this)}[zl](){return E(au,this,cu).call(this)}};function su(){var e=this;return kn(function*(){for(;!(yield B(A(eu,e).isDone()));){let t=yield B(A(eu,e).readBigVarInt()),n=new $l(A(eu,e),t,A(tu,e),A(nu,e),A(ru,e),A(iu,e));if(yield n,(yield B(Promise.race([n.endStatus(),A(eu,e).closed()])))===Ul.EndOfTrackAndGroup)return}})()}function cu(){return A(eu,this).close().catch(()=>{})}var lu=new WeakMap,uu=new WeakMap,du=new WeakMap,fu=new WeakMap,pu=new WeakMap,mu=new WeakMap,hu=new WeakMap,gu=new WeakMap,_u=new WeakMap,vu=new WeakSet;Bl=Symbol.asyncIterator,Vl=un(),Hl=Symbol.asyncDispose;var yu=class{constructor(e,t,n,r,i,a,o){I(this,vu),w(this,lu,void 0),w(this,uu,void 0),w(this,du,void 0),w(this,fu,void 0),w(this,pu,void 0),w(this,mu,void 0),w(this,hu,!1),w(this,gu,void 0),w(this,_u,sn.get().createContext(`GroupReader`)),O(lu,this,e),O(uu,this,t),O(du,this,n),O(fu,this,r),O(pu,this,i),O(mu,this,a),O(gu,this,o)}streamId(){return A(gu,this)}groupId(){return A(fu,this)}subscribeId(){return A(uu,this)}next(){var e=this;return M(function*(){try{if((yield A(lu,e).isDone())||A(hu,e))return{done:!0,value:void 0};let t=yield A(lu,e).readBigVarInt(),n=yield A(lu,e).readVarInt(),r=0,i=new Uint8Array;return n>0?i=yield A(lu,e).read(n):r=yield A(lu,e).readVarInt(),Wl(r),r===Ul.EndOfGroup&&O(hu,e,!0),{done:!1,value:{subscribeId:A(uu,e),trackAlias:A(du,e),groupId:A(fu,e),subGroupId:A(pu,e),subscriberPriority:A(mu,e),streamId:A(gu,e),objectId:t,objectStatus:r,payload:i}}}catch(t){return A(_u,e).warn(`Error reading object`,{error:t}),{done:!0,value:void 0}}})()}return(){var e=this;return M(function*(){return yield A(lu,e).close().catch(()=>{}),{done:!0,value:void 0}})()}groups(){return E(vu,this,bu).call(this)}[Bl](){return this}[Vl](){return E(vu,this,xu).call(this)}[Hl](){return E(vu,this,xu).call(this)}};function bu(){var e=this;return kn(function*(){yield e})()}function xu(){return A(lu,this).close().catch(()=>{})}function Su(e,t){return Cu.apply(this,arguments)}function Cu(){return Cu=M(function*(e,t){let n=yield e.readVarInt();switch(n){case Nl.StreamHeaderGroup:return new yu(e,yield e.readBigVarInt(),yield e.readBigVarInt(),yield e.readBigVarInt(),yield e.readBigVarInt(),yield e.readUnsigned8(),t);case Nl.StreamHeaderTrack:return new ou(e,yield e.readBigVarInt(),yield e.readBigVarInt(),yield e.readUnsigned8(),t);default:throw Error(`Unexpected message type ${n}`)}}),Cu.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 wu(t.call(e));n=`@@asyncIterator`,r=`@@iterator`}throw TypeError(`Object is not async iterable`)}function wu(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 wu=function(e){this.s=e,this.n=e.next},wu.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 wu(e)}V(),T(),k(),j();var Tu=new WeakMap,Eu=new WeakMap,Du=class{constructor(e,t){w(this,Tu,void 0),w(this,Eu,void 0),O(Tu,this,e),O(Eu,this,t)}start(e){A(Tu,this).addEventListener(`message`,t=>{if(typeof t.data==`object`&&t.data instanceof ArrayBuffer){let n=new Uint8Array(t.data);n[0]===A(Eu,this)&&e.enqueue(n.subarray(1))}}),A(Tu,this).addEventListener(`error`,()=>e.error(Error(`WebSocket error`))),A(Tu,this).addEventListener(`close`,()=>Jn(()=>e.close()))}cancel(e){A(Tu,this).close(void 0,e)}},Ou=new WeakMap,ku=new WeakMap,Au=new WeakMap,ju=new WeakMap,Mu=class{constructor(e){w(this,Ou,void 0),w(this,ku,null),w(this,Au,null),w(this,ju,null),O(Ou,this,e)}start(e){O(ku,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])}}}),O(Au,this,()=>Jn(()=>e.close())),O(ju,this,()=>e.error(Error(`WebSocket error`))),A(Ou,this).addEventListener(`message`,A(ku,this)),A(Ou,this).addEventListener(`error`,A(ju,this)),A(Ou,this).addEventListener(`close`,A(Au,this))}cancel(e){A(ku,this)&&A(Ou,this).removeEventListener(`message`,A(ku,this)),A(ju,this)&&A(Ou,this).removeEventListener(`error`,A(ju,this)),A(Au,this)&&A(Ou,this).removeEventListener(`close`,A(Au,this))}};V(),L(),T(),k(),j(),D(),N();function Nu(e,t){return e[t]<<8|e[t+1]}function Pu(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}var Fu=new WeakMap,Iu=new WeakMap,Lu=new WeakMap,Z=new WeakMap,Ru=new WeakMap,zu=new WeakSet,Bu=class{constructor(e,t){I(this,zu),w(this,Fu,void 0),w(this,Iu,void 0),w(this,Lu,void 0),w(this,Z,0),w(this,Ru,new TextDecoder),O(Fu,this,e),O(Iu,this,t),O(Lu,this,t.getReader())}readUnsigned8(){var e=this;return M(function*(){var t,n;return yield E(zu,e,Uu).call(e,1),A(Fu,e)[O(Z,e,(t=A(Z,e),n=t++,t)),n]})()}readString(){var e=this;return M(function*(){let t=yield e.readVarInt(),n=yield e.read(t);return A(Ru,e).decode(n)})()}readVarInt(){var e=this;return M(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 M(function*(){yield E(zu,e,Uu).call(e,1);let t=A(Fu,e)[A(Z,e)],n=(t&192)>>6;switch(A(Fu,e)[A(Z,e)]=t&63,n){case 0:var r,i;return P(A(Fu,e)[O(Z,e,(r=A(Z,e),i=r++,r)),i]);case 1:{yield E(zu,e,Uu).call(e,2);let t=A(Z,e);return O(Z,e,A(Z,e)+2),P(Nu(A(Fu,e),t))}case 2:{yield E(zu,e,Uu).call(e,4);let t=A(Z,e);return O(Z,e,A(Z,e)+4),P(Pu(A(Fu,e),t))}case 3:{yield E(zu,e,Uu).call(e,8);let t=A(Z,e);O(Z,e,A(Z,e)+8);let n=new DataView(A(Fu,e).buffer,A(Fu,e).byteOffset+t,8);return P(Ce?n.getBigUint64(0):n.getUint32(0)*4294967296+n.getUint32(4))}default:throw Error(`Invalid VarInt size`)}})()}read(e){var t=this;return M(function*(){return yield E(zu,t,Uu).call(t,e),E(zu,t,Gu).call(t,e)})()}readAll(){var e=this;return M(function*(){for(;yield E(zu,e,Hu).call(e););return E(zu,e,Gu).call(e,E(zu,e,Vu).call(e))})()}isDone(){var e=this;return M(function*(){return E(zu,e,Vu).call(e)>0?!1:(yield E(zu,e,Hu).call(e))===0})()}closed(){var e=this;return M(function*(){return A(Lu,e).closed})()}close(){var e=this;return M(function*(){return A(Lu,e).releaseLock(),A(Iu,e).cancel()})()}};function Vu(){return A(Fu,this).length-A(Z,this)}function Hu(){var e=this;return M(function*(){let{value:t,done:n}=yield A(Lu,e).read();if(n)return Promise.resolve(0);if(E(zu,e,Vu).call(e)===0)O(Fu,e,t);else{let n=A(Fu,e).subarray(A(Z,e)),r=new Uint8Array(n.length+t.length);r.set(n),r.set(t,n.byteLength),O(Fu,e,r)}return O(Z,e,0),Promise.resolve(t.length)})()}function Uu(e){var t=this;return M(function*(){for(;E(zu,t,Vu).call(t)<e;)if((yield E(zu,t,Hu).call(t))===0)throw Error(`Read failed`)})()}function Wu(e){return A(Fu,this).subarray(A(Z,this),A(Z,this)+e)}function Gu(e){let t=E(zu,this,Wu).call(this,e);return O(Z,this,A(Z,this)+t.length),t}L(),T(),j(),k(),N(),D(),h();var Ku=new WeakMap,qu=new WeakMap,Ju=new WeakMap,Yu=new WeakMap,Xu=new WeakMap,Zu=new WeakMap,Qu=new WeakMap,$u=new WeakMap,ed=new WeakSet,td=class{constructor(e){I(this,ed),w(this,Ku,new Uint8Array(8)),w(this,qu,A(Ku,this).subarray(0,1)),w(this,Ju,A(Ku,this).subarray(0,2)),w(this,Yu,A(Ku,this).subarray(0,4)),w(this,Xu,A(Ku,this).subarray(0,8)),w(this,Zu,void 0),w(this,Qu,void 0),w(this,$u,new TextEncoder),O(Zu,this,e),O(Qu,this,A(Zu,this).getWriter())}writeString(e){var t=this;return M(function*(){let n=A($u,t).encode(e);return yield t.writeVarInt(n.length),t.write(n)})()}write(e){return A(Qu,this).write(e)}writeUnsigned8(e){return A(Ku,this)[0]=e,A(Qu,this).write(A(qu,this))}writeVarInt(e){if(e<0)throw Error(`VarInt can not be negative: ${e}`);return A(Qu,this).write(E(ed,this,nd).call(this,hd(e,A(Ku,this),0)))}writeBigVarInt(e){if(e<0)throw Error(`VarInt can not be negative: ${e}`);return A(Qu,this).write(E(ed,this,nd).call(this,gd(e,A(Ku,this),0)))}flush(){return M(function*(){})()}close(){var e=this;return M(function*(){A(Qu,e).releaseLock(),yield A(Zu,e).close()})()}};function nd(e){switch(e){case 1:return A(qu,this);case 2:return A(Ju,this);case 4:return A(Yu,this);default:return A(Xu,this)}}var rd={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},id=new WeakMap,ad=new WeakMap,od=new WeakMap,sd=new WeakMap,cd=class e{constructor(t){w(this,id,0),w(this,ad,new Uint8Array(e.DEFAULT_BUFFER_SIZE)),w(this,od,void 0),w(this,sd,new TextEncoder),O(od,this,t)}writeString(e){var t=this;return M(function*(){let n=A(sd,t).encode(e);return yield t.writeVarInt(n.length),t.write(n)})()}ensureBufferSpace(e){if(A(ad,this).length-A(id,this)>=e)return;let t=new Uint8Array(A(ad,this).length+e);t.set(A(ad,this)),O(ad,this,t)}write(e){return this.ensureBufferSpace(e.length),A(ad,this).set(e,A(id,this)),O(id,this,A(id,this)+e.byteLength),Promise.resolve()}writeUnsigned8(e){return this.ensureBufferSpace(1),A(ad,this)[A(id,this)]=e,O(id,this,A(id,this)+1),Promise.resolve()}writeVarInt(e){if(e<0)throw Error(`VarInt can not be negative: ${e}`);return this.ensureBufferSpace(8),O(id,this,A(id,this)+hd(e,A(ad,this),A(id,this))),Promise.resolve()}writeBigVarInt(e){if(e<0)throw Error(`VarInt can not be negative: ${e}`);return this.ensureBufferSpace(8),O(id,this,A(id,this)+gd(e,A(ad,this),A(id,this))),Promise.resolve()}flush(){if(A(od,this).readyState!==rd.OPEN)throw Error(`Writer is not open`);return A(od,this).send(A(ad,this).subarray(0,A(id,this))),O(id,this,0),Promise.resolve()}close(){return A(od,this).close(),Promise.resolve()}};m(cd,`DEFAULT_BUFFER_SIZE`,1024);var ld=2**6-1,ud=2**14-1,dd=2**30-1,fd=2**53-1;function pd(e,t,n){t[n]=e>>8&255,t[n+1]=e&255}function md(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 hd(e,t,n){if(e<=ld)return t[n]=e,1;if(e<=ud)return pd(e|16384,t,n),2;if(e<=dd)return md(e|2147483648,t,n),4;if(e<=fd)return _d(e,t,n),8;throw Error(`overflow, value larger than 53-bits: ${e}`)}function gd(e,t,n){if(e<=ld)return t[n]=Number(e),1;if(e<=ud)return pd(Number(e)|16384,t,n),2;if(e<=dd)return md(Number(e)|2147483648,t,n),4;if(e<=fd)return _d(Number(e),t,n),8;throw Error(`overflow, value larger than 53-bits: ${e}`)}function _d(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}({});N();function vd(e){return yd.apply(this,arguments)}function yd(){return yd=M(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}),yd.apply(this,arguments)}function bd(e,t){return xd.apply(this,arguments)}function xd(){return xd=M(function*(e,t){yield e.writeVarInt(t.length);for(let n of t)yield e.writeString(n)}),xd.apply(this,arguments)}V(),N();var Sd=P(2);function Cd(e){return wd.apply(this,arguments)}function wd(){return wd=M(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}),wd.apply(this,arguments)}function Td(e,t){return Ed.apply(this,arguments)}function Ed(){return Ed=M(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)}),Ed.apply(this,arguments)}N();function Dd(e){return Od.apply(this,arguments)}function Od(){return Od=M(function*(e){return{type:Q.Announce,namespace:yield vd(e),params:yield Cd(e)}}),Od.apply(this,arguments)}function kd(e,t){return Ad.apply(this,arguments)}function Ad(){return Ad=M(function*(e,t){yield bd(e,t.namespace),yield Td(e,t.params)}),Ad.apply(this,arguments)}N();function jd(e){return Md.apply(this,arguments)}function Md(){return Md=M(function*(e){return{type:Q.AnnounceOk,namespace:yield vd(e)}}),Md.apply(this,arguments)}function Nd(e,t){return Pd.apply(this,arguments)}function Pd(){return Pd=M(function*(e,t){yield bd(e,t.namespace)}),Pd.apply(this,arguments)}N();var Fd={"latest-group":1,"latest-object":2,"absolute-start":3,"absolute-range":4};function Id(e){return Ld.apply(this,arguments)}function Ld(){return Ld=M(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}`)}}),Ld.apply(this,arguments)}function Rd(e,t){return zd.apply(this,arguments)}function zd(){return zd=M(function*(e,t){let n=Fd[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}`)}}),zd.apply(this,arguments)}function Bd(e){return Vd.apply(this,arguments)}function Vd(){return Vd=M(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}`)}}),Vd.apply(this,arguments)}function Hd(e,t){return Ud.apply(this,arguments)}function Ud(){return Ud=M(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}}),Ud.apply(this,arguments)}function Wd(e){return Gd.apply(this,arguments)}function Gd(){return Gd=M(function*(e){let t=yield e.readBigVarInt(),n=yield e.readBigVarInt(),r=yield vd(e),i=yield e.readString(),a=yield e.readUnsigned8(),o=yield Bd(e),s=yield Id(e),c=yield Cd(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}}),Gd.apply(this,arguments)}function Kd(e,t){return qd.apply(this,arguments)}function qd(){return qd=M(function*(e,t){yield e.writeBigVarInt(t.id),yield e.writeBigVarInt(t.trackAlias),yield bd(e,t.namespace),yield e.writeString(t.name),yield e.writeUnsigned8(t.subscriberPriority),yield Hd(e,t.groupOrder),yield Rd(e,t.filterType),yield Td(e,t.params)}),qd.apply(this,arguments)}N();var Jd={Unsubscribed:0,InternalError:1,Unauthorized:2,TrackEnded:3,SubscriptionEnded:4,GoingAway:5,Expired:6};function Yd(e){return Xd.apply(this,arguments)}function Xd(){return Xd=M(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}}),Xd.apply(this,arguments)}function Zd(e,t){return Qd.apply(this,arguments)}function Qd(){return Qd=M(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))}),Qd.apply(this,arguments)}N();function $d(e){return ef.apply(this,arguments)}function ef(){return ef=M(function*(e){return{type:Q.SubscribeError,id:yield e.readBigVarInt(),errorCode:yield e.readBigVarInt(),reason:yield e.readString(),trackAlias:yield e.readBigVarInt()}}),ef.apply(this,arguments)}function tf(e,t){return nf.apply(this,arguments)}function nf(){return nf=M(function*(e,t){yield e.writeBigVarInt(t.id),yield e.writeBigVarInt(t.errorCode),yield e.writeString(t.reason),yield e.writeBigVarInt(t.trackAlias)}),nf.apply(this,arguments)}N();function rf(e){return af.apply(this,arguments)}function af(){return af=M(function*(e){let t=yield e.readBigVarInt(),n=yield e.readBigVarInt(),r=yield Bd(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 Cd(e);return{type:Q.SubscribeOk,id:t,groupOrder:r,expires:n,largestInfo:a,params:o}}),af.apply(this,arguments)}function of(e,t){return sf.apply(this,arguments)}function sf(){return sf=M(function*(e,t){yield e.writeBigVarInt(t.id),yield e.writeBigVarInt(t.expires),yield Hd(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 Td(e,t.params)}),sf.apply(this,arguments)}N();function cf(e){return lf.apply(this,arguments)}function lf(){return lf=M(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 Cd(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}}),lf.apply(this,arguments)}function uf(e,t){return df.apply(this,arguments)}function df(){return df=M(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 Td(e,t.params)}),df.apply(this,arguments)}V();var ff={Publisher:1,Subscriber:2,Both:3},pf={Role:P(0)};N();var mf={Draft07:4278190087};function hf(e){return gf.apply(this,arguments)}function gf(){return gf=M(function*(e){let t=yield e.readVarInt();switch(t){case mf.Draft07:return{type:`known`,value:t};default:return{type:`unknown`,value:t}}}),gf.apply(this,arguments)}N();function _f(e,t){return vf.apply(this,arguments)}function vf(){return vf=M(function*(e,t){yield e.writeVarInt(t.supportedVersions.length);for(let n of t.supportedVersions)yield e.writeVarInt(n.value);yield Td(e,t.parameters)}),vf.apply(this,arguments)}function yf(e){return bf.apply(this,arguments)}function bf(){return bf=M(function*(e){let t=[],n=yield e.readVarInt();for(let r=0;r<n;r++)t.push(yield hf(e));let r=yield Cd(e);if(!r.has(pf.Role))throw Error(`Role parameter is required`);return{type:Q.ClientSetup,supportedVersions:t,parameters:r}}),bf.apply(this,arguments)}N();function xf(e,t){return Sf.apply(this,arguments)}function Sf(){return Sf=M(function*(e,t){yield e.writeVarInt(t.selectedVersion.value),yield Td(e,t.parameters)}),Sf.apply(this,arguments)}function Cf(e){return wf.apply(this,arguments)}function wf(){return wf=M(function*(e){let t=yield hf(e);if(t.type!==`known`)throw Error(`Expected known version`);let n=yield Cd(e);if(!n.has(pf.Role))throw Error(`Role parameter is required`);return{type:Q.ServerSetup,selectedVersion:t,parameters:n}}),wf.apply(this,arguments)}N();function Tf(e){return Ef.apply(this,arguments)}function Ef(){return Ef=M(function*(e){return{type:Q.Unsubscribe,id:yield e.readBigVarInt()}}),Ef.apply(this,arguments)}function Df(e,t){return Of.apply(this,arguments)}function Of(){return Of=M(function*(e,t){yield e.writeBigVarInt(t.id)}),Of.apply(this,arguments)}L(),T(),k(),j(),D(),N();var kf=new WeakMap,Af=new WeakMap,jf=new WeakSet,Mf=class{constructor(e){I(this,jf),w(this,kf,void 0),w(this,Af,new Uint8Array),O(kf,this,e)}write(e){var t=this;return M(function*(){yield A(kf,t).writeVarInt(e.type);let n=new cd({close:()=>{},readyState:rd.OPEN,send:e=>{O(Af,t,new Uint8Array(e))}});switch(e.type){case Q.Subscribe:yield E(jf,t,Ff).call(t,n,e);break;case Q.Announce:yield E(jf,t,Vf).call(t,n,e);break;case Q.SubscribeOk:yield E(jf,t,If).call(t,n,e);break;case Q.SubscribeUpdate:yield E(jf,t,Rf).call(t,n,e);break;case Q.SubscribeError:yield E(jf,t,Lf).call(t,n,e);break;case Q.SubscribeDone:yield E(jf,t,zf).call(t,n,e);break;case Q.Unsubscribe:yield E(jf,t,Bf).call(t,n,e);break;case Q.ClientSetup:yield E(jf,t,Nf).call(t,n,e);break;case Q.ServerSetup:yield E(jf,t,Pf).call(t,n,e);break;case Q.AnnounceOk:yield E(jf,t,Hf).call(t,n,e);break;default:throw Error(`Unknown message type: ${e.type}`)}yield n.flush(),yield A(kf,t).writeVarInt(A(Af,t).byteLength),yield A(kf,t).write(A(Af,t)),yield A(kf,t).flush()})()}close(){var e=this;return M(function*(){return A(kf,e).close()})()}};function Nf(e,t){return M(function*(){yield _f(e,t)})()}function Pf(e,t){return M(function*(){yield xf(e,t)})()}function Ff(e,t){return M(function*(){yield Kd(e,t)})()}function If(e,t){return M(function*(){yield of(e,t)})()}function Lf(e,t){return M(function*(){yield tf(e,t)})()}function Rf(e,t){return M(function*(){yield uf(e,t)})()}function zf(e,t){return M(function*(){yield Zd(e,t)})()}function Bf(e,t){return M(function*(){yield Df(e,t)})()}function Vf(e,t){return M(function*(){yield kd(e,t)})()}function Hf(e,t){return M(function*(){yield Nd(e,t)})()}T(),k(),j(),N();var Uf=new WeakMap,Wf=new WeakMap,Gf=new WeakMap,Kf=class{constructor(e,t){w(this,Uf,void 0),w(this,Wf,void 0),w(this,Gf,void 0),O(Uf,this,e),O(Wf,this,new Mf(e)),O(Gf,this,t)}write(e){var t=this;return M(function*(){yield A(Uf,t).write(A(Gf,t)),yield A(Wf,t).write(e)})()}close(){return A(Uf,this).close()}};V(),N(),P(1025),P(1027),P(1033),P(2048);var qf=class extends Error{constructor(e,t){super(e),this.errorCode=t}};function Jf(e){return Yf.apply(this,arguments)}function Yf(){return Yf=M(function*(e){return{type:Q.AnnounceError,namespace:yield vd(e),errorCode:yield e.readBigVarInt(),reason:yield e.readString()}}),Yf.apply(this,arguments)}N();function Xf(e,t,n){return Zf.apply(this,arguments)}function Zf(){return Zf=M(function*(e,t,n){return{type:Q.Unknown,messageType:t,payload:yield e.read(n)}}),Zf.apply(this,arguments)}V(),T(),k(),j(),N();var Qf=new WeakMap,$f=class{constructor(e){w(this,Qf,void 0),O(Qf,this,e)}cancel(){return A(Qf,this).close()}read(){var e=this;return M(function*(){let t=yield A(Qf,e).readVarInt(),n=yield A(Qf,e).readVarInt();switch(t){case Q.ServerSetup:return Cf(A(Qf,e));case Q.ClientSetup:return yf(A(Qf,e));case Q.Subscribe:return Wd(A(Qf,e));case Q.SubscribeOk:return rf(A(Qf,e));case Q.SubscribeDone:return Yd(A(Qf,e));case Q.SubscribeError:return $d(A(Qf,e));case Q.SubscribeUpdate:return cf(A(Qf,e));case Q.Unsubscribe:return Tf(A(Qf,e));case Q.Announce:return Dd(A(Qf,e));case Q.AnnounceOk:return jd(A(Qf,e));case Q.AnnounceError:return Jf(A(Qf,e))}return Xf(A(Qf,e),P(t),n)})()}};V(),L(),T(),k(),j(),D(),N();var ep=new WeakMap,tp=new WeakMap,np=new WeakMap,rp=new WeakMap,ip=new WeakSet,ap=class e{constructor(e,t){I(this,ip),w(this,ep,void 0),w(this,tp,void 0),w(this,np,new S),w(this,rp,new S),O(ep,this,e),O(tp,this,t),A(np,this).resolve()}write(e){var t=this;return M(function*(){let n=yield E(ip,t,op).call(t);try{yield A(ep,t).write(e)}finally{n.resolve()}})()}markPostHandshake(){A(rp,this).resolve()}postHandshake(){return A(rp,this).promise}read(){var e=this;return M(function*(){return A(tp,e).read()})()}cancel(){return A(tp,this).cancel()}static wrapWebsocket(t){let n=new ReadableStream(new Du(t,sp._)),r=new $f(new Bu(new Uint8Array([]),n));return new e(new Kf(new cd(t),new Uint8Array([0])),r)}static wrapWebTransport(t){let n=t.writable,r=t.readable;return new e(new Mf(new td(n)),new $f(new Bu(new Uint8Array,r)))}};function op(){let e=new S,t=A(np,this).promise.then(()=>e);return O(np,this,e),t}var sp={_:0};N();function cp(e,t){return lp.apply(this,arguments)}function lp(){return lp=M(function*(e,t){yield e.write({type:Q.ClientSetup,supportedVersions:[{type:`known`,value:mf.Draft07}],parameters:new Map([[pf.Role,{type:pf.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`)}),lp.apply(this,arguments)}V(),h(),T(),j();var up=new WeakMap,dp=class{constructor(e){m(this,`announce`,void 0),w(this,up,new S),this.announce=e}onOk(e){A(up,this).resolve(e)}onError(e){let t=new qf(e.reason,e.errorCode);return A(up,this).reject(t),t}ok(){return A(up,this).promise}};h();function fp(e){return new pp(new dp(e))}var pp=class{constructor(e){m(this,`state`,void 0),this.state=e}};V(),h(),T(),k(),j();var mp=new WeakMap,hp=new WeakMap,gp=new WeakMap,_p=new WeakMap,vp=new WeakMap,yp=new WeakMap,bp=class e{constructor(e){switch(m(this,`subscribe`,void 0),w(this,mp,new S),w(this,hp,new S),w(this,gp,new S),w(this,_p,Date.now()),w(this,vp,new S),w(this,yp,void 0),this.subscribe=e,e.filterType.type){case`absolute-start`:O(yp,this,{startGroup:e.filterType.start.group});break;case`absolute-range`:O(yp,this,{startGroup:e.filterType.start.group,endGroup:e.filterType.end.group});break}}onUpdate(e){O(yp,this,{startGroup:e.start.group}),e.end.group>P(0)&&(A(yp,this).endGroup=e.end.group-P(1))}onError(e){let t=Error(e.reason);return A(mp,this).reject(t),A(hp,this).reject(t),t}onDone(e){e.finalInfo&&(A(yp,this)||O(yp,this,{startGroup:P(0)}),A(yp,this).endGroup=e.finalInfo.group),A(hp,this).resolve(e)}onUnsubscribe(e){A(gp,this).resolve(e)}onOk(t){let n=Math.max(0,Date.now()-A(_p,this)),r=Number(t.expires);if(r>0){let t=Math.max(e.minGraceTime,Math.min(r/10,e.maxGraceTime));Promise.race([rr(r-t-n),this.done().catch(x)]).then(()=>A(vp,this).resolve(this.expiryState())).catch(x)}A(mp,this).resolve(t)}done(){return A(hp,this).promise}ok(){return A(mp,this).promise}range(){return A(yp,this)}close(){A(vp,this).promise.catch(x),A(vp,this).reject(Error(`Subscription closed`))}expiryState(){return A(hp,this).resolved&&A(hp,this).resolved.errorCode!==Jd.Expired?`done`:A(gp,this).pending?`active`:`unsubscribed`}unsubscribed(){return A(gp,this).promise}isUnsubscribed(){return A(gp,this).resolved}expiryNotification(){return A(vp,this).promise}};m(bp,`maxGraceTime`,15e3),m(bp,`minGraceTime`,3e3),T(),k(),j(),N();var xp=new WeakMap,Sp=new WeakMap,Cp=class{constructor(e){w(this,xp,void 0),w(this,Sp,!1),O(xp,this,e)}write(e){var t=this;return M(function*(){A(Sp,t)||(yield A(xp,t).writeVarInt(Nl.StreamHeaderGroup),yield A(xp,t).writeBigVarInt(e.subscribeId),yield A(xp,t).writeBigVarInt(e.trackAlias),yield A(xp,t).writeBigVarInt(e.groupId),yield A(xp,t).writeBigVarInt(e.subGroupId),yield A(xp,t).writeUnsigned8(e.subscriberPriority),O(Sp,t,!0)),yield A(xp,t).writeBigVarInt(e.objectId),yield A(xp,t).writeVarInt(e.payload.length),e.payload.length>0?yield A(xp,t).write(e.payload):yield A(xp,t).writeVarInt(e.objectStatus),yield A(xp,t).flush()})()}close(){var e=this;return M(function*(){yield A(xp,e).close()})()}};function wp(){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()}}}V(),L(),T(),k(),j(),D(),N();var Tp,Ep,Dp,Op,kp=new WeakMap,Ap=new WeakMap,jp=new WeakMap,Mp=new WeakMap,Np=new WeakMap,Pp=new WeakMap,Fp=new WeakSet;Tp=un(),Ep=Symbol.asyncDispose;var Ip=class{constructor(e,t,n,r){I(this,Fp),w(this,kp,void 0),w(this,Ap,void 0),w(this,jp,void 0),w(this,Mp,void 0),w(this,Np,void 0),w(this,Pp,void 0),O(kp,this,t),O(Ap,this,e),O(jp,this,n),O(Mp,this,r),O(Pp,this,sn.get().createContext(`SubscriptionWriter:${e.subscribe.name}`))}finalInfo(){return A(Np,this)}run(){var e=this;return M(function*(){yield Promise.race([E(Fp,e,Lp).call(e).catch(t=>A(Pp,e).error(`error writing subscription`,t)),A(Ap,e).unsubscribed(),A(Ap,e).done(),A(Ap,e).expiryNotification().catch(x)])})()}done(e,t){var n=this;return M(function*(){if(A(Ap,n).isUnsubscribed())return;let r={type:Q.SubscribeDone,id:A(Ap,n).subscribe.id,errorCode:e,reason:t,finalInfo:A(Np,n)};A(Ap,n).onDone(r),yield A(Mp,n).push(r)})()}[Tp](){return this.done(Jd.TrackEnded,`Track ended`)}[Ep](){return this.done(Jd.TrackEnded,`Track ended`)}};function Lp(){var e=this;return M(function*(){var t=!1,n=!1,r;try{for(var i=X(A(kp,e)),a;t=!(a=yield i.next()).done;t=!1){let t=a.value;try{var o=wp();let n=A(Ap,e).range();if(n&&(n.startGroup>t.id||n.endGroup&&n.endGroup<t.id))break;let r=new Cp(yield A(jp,e).openSendStream()),i=o.a(new Up(r,t.consume(),A(Ap,e)));yield i.run(),O(Np,e,i.finalGroup())}catch(e){o.e=e}finally{yield o.d()}}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield i.return())}finally{if(n)throw r}}})()}var Rp=new WeakMap,zp=new WeakMap,Bp=new WeakMap,Vp=new WeakMap,Hp=new WeakMap;Dp=un(),Op=Symbol.asyncDispose;var Up=class{constructor(e,t,n){w(this,Rp,void 0),w(this,zp,void 0),w(this,Bp,void 0),w(this,Vp,void 0),w(this,Hp,void 0),O(Rp,this,e),O(zp,this,t),O(Bp,this,n),O(Hp,this,sn.get().createContext(`GroupSubscriptionWriter:${n.subscribe.name}`))}finalGroup(){return A(Vp,this)}run(){var e=this;return M(function*(){A(Hp,e).debug(`write group`);var t=!1,n=!1,r;try{for(var i=X(A(zp,e)),a;t=!(a=yield i.next()).done;t=!1){let t=a.value;yield A(Rp,e).write({subscribeId:A(Bp,e).subscribe.id,trackAlias:A(Bp,e).subscribe.trackAlias,subGroupId:P(0),subscriberPriority:0,groupId:t.groupId,objectId:t.objectId,objectStatus:t.objectStatus,payload:t.payload}),O(Vp,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}}A(Hp,e).debug(`write group done`)})()}[Dp](){return A(Rp,this).close().catch(x)}[Op](){return A(Rp,this).close().catch(x)}};V(),L(),h(),T(),k(),j(),N(),D();var Wp,Gp,Kp=new WeakMap,qp=new WeakMap,Jp=new WeakSet;Wp=un(),Gp=Symbol.asyncDispose;var Yp=class{constructor(e,t,n){I(this,Jp),m(this,`state`,void 0),w(this,Kp,void 0),w(this,qp,void 0),this.state=e,O(Kp,this,t),O(qp,this,n)}ok(e){var t=this;return M(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?P(0):r,l=e.consume(a==null?s:a),u={type:Q.SubscribeOk,id:t.state.subscribe.id,expires:P(0),groupOrder:`ascending`,params:new Map,largestInfo:s?{group:s,object:c}:void 0};return yield A(qp,t).push(u),new Ip(t.state,l,A(Kp,t),A(qp,t))})()}invalidRange(){return E(Jp,this,Xp).call(this,P(1),`Invalid range`)}retryTrackAlias(){return E(Jp,this,Xp).call(this,P(2),`Retry track alias`)}trackDoesNotExist(){return E(Jp,this,Xp).call(this,P(3),`Track does not exist`)}unauthorized(){return E(Jp,this,Xp).call(this,P(4),`Unauthorized`)}timeout(){return E(Jp,this,Xp).call(this,P(5),`Timeout`)}[Wp](){return this.trackDoesNotExist()}[Gp](){return this.trackDoesNotExist()}};function Xp(e,t){let n={type:Q.SubscribeError,id:this.state.subscribe.id,errorCode:e,reason:t,trackAlias:this.state.subscribe.trackAlias};return A(qp,this).push(n)}V(),T(),k(),j(),N();var Zp=new WeakMap,Qp=new WeakMap,$p=new WeakMap,em=new WeakMap,tm=new WeakMap,nm=new WeakMap,rm=new WeakMap,im=class{constructor(e,t,n){w(this,Zp,void 0),w(this,Qp,void 0),w(this,$p,void 0),w(this,em,sn.get().createContext(`Publisher`)),w(this,tm,new Fn(new Map)),w(this,nm,new Fn(new Map)),w(this,rm,new ye(10)),O(Zp,this,e),O(Qp,this,t),O($p,this,n)}announce(e){var t=this;return M(function*(){A(em,t).info(`Enter 'announce'`,{namespace:e});try{if(A(tm,t).current().has(e.join(`/`)))throw Error(`Duplicate announcement`);let n=new Map,r=A(Zp,t).authToken();r&&n.set(Sd,{type:Sd,payload:new TextEncoder().encode(r)});let i={type:Q.Announce,namespace:e,params:n},a=fp(i);if(A(tm,t).update(e=>e.set(i.namespace.join(`/`),a)),yield A($p,t).push(i),!(yield Promise.race([a.state.ok(),A(Zp,t).closed()])))throw Error(`Session closed`)}catch(e){throw A(em,t).error(`Error 'announce'`,e),e}})()}close(){A(nm,this).current().forEach(e=>e.close()),A(nm,this).close(),A(tm,this).close(),A(rm,this).close()}incomingSubscriptions(){return A(rm,this)}onMessage(e){var t=this;return M(function*(){switch(e.type){case Q.Subscribe:{let n=new bp(e);if(A(nm,t).update(t=>(t.set(e.id,n),t)),A(rm,t).isFull()){let e=yield A(rm,t).pop();yield e==null?void 0:e.timeout()}yield A(rm,t).push(new Yp(n,A(Qp,t),A($p,t)))}break;case Q.SubscribeUpdate:{let n=A(nm,t).current().get(e.id);n||A(em,t).debug(`No subscription found`,e),n==null||n.onUpdate(e)}break;case Q.Unsubscribe:{let n=A(nm,t).current().get(e.id);n||A(em,t).debug(`No subscription found`,e),n==null||n.onUnsubscribe(e)}break;case Q.AnnounceOk:{let n=A(tm,t).current().get(e.namespace.join(`/`));n||A(em,t).warn(`No announcement found`,e),n==null||n.state.onOk(e)}break;case Q.AnnounceError:{let n=A(tm,t).current().get(e.namespace.join(`/`));n||A(em,t).warn(`No announcement found`,e),n==null||n.state.onError(e)}break;default:break}})()}};V(),h(),T(),k(),j(),L(),N(),On(),jn(),D();var am,om,sm;function cm(e,t){let n=new bp(t),[r,i]=pe(100);return[new um(n,r),new _m(e,n,i)]}var lm=new WeakMap,um=class{constructor(e,t){m(this,`state`,void 0),w(this,lm,void 0),this.state=e,O(lm,this,t)}onDone(e){this.state.onDone(e)}onData(e){return A(lm,this).push(e)}onError(e){let t=this.state.onError(e);A(lm,this).abort(t)}close(){this.state.close(),A(lm,this).close()}},dm=new WeakMap,fm=new WeakMap,pm=new WeakMap,mm=new WeakMap,hm=new WeakMap,gm=new WeakSet;am=Symbol.asyncIterator,om=un(),sm=Symbol.asyncDispose;var _m=class{constructor(e,t,n){I(this,gm),w(this,dm,void 0),w(this,fm,void 0),w(this,pm,void 0),w(this,mm,new S),w(this,hm,sn.get().createContext(`SubscriptionConsumer`)),O(dm,this,e),O(fm,this,t),O(pm,this,n)}get id(){return A(fm,this).subscribe.id}get trackAlias(){return A(fm,this).subscribe.trackAlias}get name(){return A(fm,this).subscribe.name}range(){return A(fm,this).range()}expiryNotification(){return A(fm,this).expiryNotification()}update(e,t){var n=this;return M(function*(){let r={type:Q.SubscribeUpdate,id:A(fm,n).subscribe.id,start:{group:e,object:P(0)},end:{group:t+P(1),object:P(0)},params:new Map,subscriberPriority:0};A(fm,n).onUpdate(r),yield A(dm,n).push(r)})()}unsubscribe(){var e=this;return M(function*(){let t={type:Q.Unsubscribe,id:A(fm,e).subscribe.id};A(fm,e).onUnsubscribe(t),yield A(dm,e).push(t)})()}close(){var e,t;return A(mm,this).resolve(),(e=(t=A(pm,this)).return)==null?void 0:e.call(t)}closed(){return A(mm,this).promise}done(){return A(fm,this).done()}expiryState(){return A(fm,this).expiryState()}unsubscribed(){return A(fm,this).isUnsubscribed()}return(){var e=this;return M(function*(){return A(mm,e).resolve(),yield e.unsubscribe(),{done:!0,value:void 0}})()}groups(){var e=this;return kn(function*(){var t=!1,n=!1,r;try{for(var i=X(A(pm,e)),a;t=!(a=yield B(i.next())).done;t=!1)try{var o=wp();let t=o.a(a.value);var s=!1,c=!1,l;try{for(var u=X(t.groups()),d;s=!(d=yield B(u.next())).done;s=!1){let t=d.value;{var f,p;let n=(f=A(fm,e).range())==null?void 0:f.startGroup,r=(p=A(fm,e).range())==null?void 0:p.endGroup;if(n&&t.groupId()<n||r&&t.groupId()>r)return{done:!0,value:void 0};yield t}}}catch(e){c=!0,l=e}finally{try{s&&u.return!=null&&(yield B(u.return()))}finally{if(c)throw l}}}catch(e){o.e=e}finally{yield B(o.d())}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield B(i.return()))}finally{if(n)throw r}}})()}[am](){return this.groups()}objects(){var e=this;return kn(function*(){var t=!1,n=!1,r;try{for(var i=X(e.groups()),a;t=!(a=yield B(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 B(l.next())).done;o=!1)yield u.value}catch(e){s=!0,c=e}finally{try{o&&l.return!=null&&(yield B(l.return()))}finally{if(s)throw c}}}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield B(i.return()))}finally{if(n)throw r}}})()}[om](){return E(gm,this,vm).call(this)}[sm](){return E(gm,this,vm).call(this)}};function vm(){var e=this;return M(function*(){return A(hm,e).info(`Enter 'dispose'`),yield e.close(),e.unsubscribe()})()}V(),L(),T(),h(),k(),D(),j(),N();var ym=2e3,bm=new WeakMap,xm=new WeakMap,Sm=new WeakMap,Cm=new WeakMap,wm=new WeakSet,Tm=class{constructor(e,t){I(this,wm),w(this,bm,void 0),m(this,`nextSubscribeId`,P(0)),w(this,xm,new Fn(new Map)),w(this,Sm,void 0),w(this,Cm,sn.get().createContext(`Subscriber`)),O(bm,this,e),O(Sm,this,t),E(wm,this,Em).call(this).catch(x)}subscribe(e,t){var n=this;return M(function*(e,t,r=new Map){A(Cm,n).info(`Enter 'subscribe'`,{namespace:e,track:t});try{let i=n.nextSubscribeId++,a=A(bm,n).authToken();a&&r.set(Sd,{type:Sd,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]=cm(A(Sm,n),o);if(A(xm,n).update(e=>e.set(i,s)),yield A(Sm,n).push(o),!(yield Promise.race([s.state.ok(),A(bm,n).closed()])))throw Error(`Session closed`);return c.closed().then(()=>Promise.race([rr(ym),n.closed()])).then(()=>E(wm,n,Dm).call(n,c.id)).catch(()=>E(wm,n,Dm).call(n,c.id)),c}catch(e){throw A(Cm,n).error(`Error 'subscribe'`,e),e}}).apply(this,arguments)}closed(){return A(bm,this).closed()}transportType(){return A(bm,this).transportType()}url(){return A(bm,this).url()}onMessage(e){var t=this;return M(function*(){switch(e.type){case Q.Announce:yield A(Sm,t).push({type:Q.AnnounceOk,namespace:e.namespace});break;case Q.SubscribeOk:{let n=A(xm,t).current().get(e.id);n&&n.state.onOk(e)}break;case Q.SubscribeError:{let n=A(xm,t).current().get(e.id);n||A(Cm,t).warn(`No subscription found`,e),n==null||n.onError(e),E(wm,t,Dm).call(t,e.id)}break;case Q.SubscribeDone:{let n=A(xm,t).current().get(e.id);n||A(Cm,t).debug(`No subscription found`,e),n==null||n.onDone(e)}break;default:break}})()}onObjectReader(e){var t=this;return M(function*(){let n=A(xm,t).current().get(e.subscribeId());if(!n){A(Cm,t).warn(`No subscription found`,e.subscribeId());return}yield n.onData(e)})()}close(){A(Cm,this).debug(`Enter 'close'`),A(xm,this).current().forEach(e=>e.close()),A(xm,this).close()}};function Em(){var e=this;return M(function*(){var t=!1,n=!1,r;try{for(var i=X(A(xm,e)),a;t=!(a=yield i.next()).done;t=!1){let t=a.value;{let n=[...t.values()].map(e=>e.state.subscribe);A(Cm,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}}A(Cm,e).debug(`Return 'observeChanges'`)})()}function Dm(e){A(Cm,this).debug(`Enter 'deleteSubscription'`),!A(xm,this).isClosed()&&A(xm,this).update(t=>(t.delete(e),t))}V(),L(),T(),h(),k(),D(),j(),N();var Om,km,Am=new WeakMap,jm=new WeakMap,Mm=new WeakMap,Nm=new WeakMap,Pm=new WeakMap,Fm=new WeakMap,Im=new WeakSet;Om=dn(),km=Symbol.dispose;var Lm=class{constructor(e,t){I(this,Im),w(this,Am,void 0),w(this,jm,void 0),w(this,Mm,new S),w(this,Nm,void 0),w(this,Pm,sn.get().createContext(`Session`)),m(this,`subscriber`,void 0),m(this,`publisher`,void 0),w(this,Fm,void 0);let[n,r]=pe(100);O(Am,this,e),O(Nm,this,r),this.subscriber=new Tm(this,n),this.publisher=new im(this,e,n),O(jm,this,E(Im,this,zm).call(this)),O(Fm,this,new Fn(t)),this.closed().then(()=>this.close()).catch(x)}updateAuthToken(e){A(Fm,this).update(e)}authToken(){return A(Fm,this).current()}transportType(){return A(Am,this).transportType()}url(){return A(Am,this).url()}closed(){return Promise.race([A(jm,this),A(Mm,this).promise])}fail(e){A(Mm,this).pending&&A(Mm,this).resolve(e)}close(){try{this.subscriber.close(),this.publisher.close(),A(Nm,this).cancel(`closing`),A(Am,this).close()}catch(e){A(Pm,this).warn(`Error closing session`,e)}}[Om](){E(Im,this,Um).call(this)}[km](){E(Im,this,Um).call(this)}};function Rm(e){var t=this;return M(function*(){var n,r;switch(A(Pm,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:A(Pm,t).info(`received GoAway`,e);break;default:break}})()}function zm(){var e=this;return M(function*(){return(yield Promise.all([E(Im,e,Vm).call(e),E(Im,e,Hm).call(e),E(Im,e,Bm).call(e)])).find(e=>e instanceof Error)})()}function Bm(){var e=this;return M(function*(){try{var t=!1,n=!1,r;try{for(var i=X(A(Nm,e)),a;t=!(a=yield i.next()).done;t=!1){let t=a.value;A(Pm,e).debug(`sending message`,t),yield A(Am,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 A(Pm,e).error(`Error 'runOutgoingMessages'`,t),t}A(Pm,e).info(`Return 'runOutgoingMessages'`)})()}function Vm(){var e=this;return M(function*(){try{for(yield A(Am,e).afterHandshake();;){let t=yield A(Am,e).readMessage().catch(()=>void 0);if(!t)break;yield E(Im,e,Rm).call(e,t)}}catch(t){return A(Pm,e).error(`Error 'runControl'`,t),t}finally{A(Nm,e).cancel(`closing`)}A(Pm,e).info(`Return 'runControl'`)})()}function Hm(){var e=this;return M(function*(){try{for(;;){var t;let n=yield A(Am,e).objectStream();if(!n)break;yield(t=e.subscriber)==null?void 0:t.onObjectReader(n)}}catch(t){return A(Pm,e).error(`Error 'runObjects'`,t),t}A(Pm,e).info(`Return 'runObjects'`)})()}function Um(){A(Pm,this).debug(`Enter 'dispose'`),this.close()}L(),T(),k(),j(),D(),N();var Wm=128,Gm=new WeakMap,Km=new WeakMap,qm=new WeakMap,Jm=new WeakMap,Ym=new WeakMap,Xm=new WeakSet,Zm=class{constructor(e,t,n){I(this,Xm),w(this,Gm,void 0),w(this,Km,void 0),w(this,qm,!0),w(this,Jm,!1),w(this,Ym,void 0),O(Gm,this,e),O(Km,this,t),O(Ym,this,n)}writeUnsigned8(e){var t=this;return M(function*(){return E(Xm,t,Qm).call(t),yield E(Xm,t,$m).call(t),A(Gm,t).writeUnsigned8(e)})()}writeVarInt(e){var t=this;return M(function*(){return E(Xm,t,Qm).call(t),yield E(Xm,t,$m).call(t),A(Gm,t).writeVarInt(e)})()}writeBigVarInt(e){var t=this;return M(function*(){return E(Xm,t,Qm).call(t),yield E(Xm,t,$m).call(t),A(Gm,t).writeBigVarInt(e)})()}write(e){var t=this;return M(function*(){return E(Xm,t,Qm).call(t),yield E(Xm,t,$m).call(t),A(Gm,t).write(e)})()}writeString(e){var t=this;return M(function*(){return E(Xm,t,Qm).call(t),yield E(Xm,t,$m).call(t),A(Gm,t).writeString(e)})()}flush(){var e=this;return M(function*(){E(Xm,e,Qm).call(e),O(qm,e,!0),yield A(Gm,e).flush()})()}close(){var e=this;return M(function*(){A(Jm,e)||(O(qm,e,!0),yield E(Xm,e,$m).call(e,!1),yield A(Gm,e).flush(),O(Jm,e,!0),A(Ym,e).call(e))})()}};function Qm(){if(A(Jm,this))throw Error(`Stream is closed`)}function $m(e=!0){if(A(qm,this))return O(qm,this,!1),A(Gm,this).writeUnsigned8(A(Km,this)|(e?Wm:0))}V(),L(),T(),k(),j(),D(),N();var eh=new WeakMap,th=new WeakMap,nh=new WeakMap,rh=new WeakMap,ih=new WeakMap,ah=new WeakMap,oh=new WeakMap,sh=new WeakSet,ch=class{constructor(e,t){I(this,sh),w(this,eh,void 0),w(this,th,void 0),w(this,nh,void 0),w(this,rh,void 0),w(this,ih,new Map),w(this,ah,sn.get().createContext(`WebSocketConnection`)),w(this,oh,new Set(Array(128).fill(0).map((e,t)=>t+1))),O(eh,this,e),O(th,this,t),O(nh,this,new ReadableStream(new Mu(e))),A(eh,this).addEventListener(`close`,e=>{A(ah,this).info(`WebSocket closed`,{code:e.code,reason:e.reason,wasClean:e.wasClean}),A(th,this).markPostHandshake(),A(ih,this).forEach(e=>e.close())})}openSendStream(){let e=A(oh,this).values().next().value;if(!e)throw Error(`No stream IDs available`);return A(oh,this).delete(e),Promise.resolve(new Zm(new cd(A(eh,this)),e,()=>E(sh,this,lh).call(this,e)))}transportType(){return`websocket`}url(){return A(eh,this).url}afterHandshake(){return A(th,this).postHandshake()}objectStream(){var e=this;return M(function*(){for(;;){O(rh,e,A(nh,e).getReader());try{let{value:t,done:n}=yield A(rh,e).read();if(n)return;let[r,i,a]=t;if(A(ih,e).has(P(i))){let t=A(ih,e).get(P(i));if(!t)throw Error(`Stream not found`);a.length>0&&(yield t.push(a)),r||(A(ah,e).debug(`Closing stream`,{streamId:i}),t.close(),A(ih,e).delete(P(i)))}else{A(ah,e).debug(`Creating new stream`,{streamId:i});let[t,n]=pe(1e3),o=new ReadableStream({pull(e){return M(function*(){let t=yield n.pop();t?e.enqueue(t):e.close()})()}});if(A(ih,e).set(P(i),t),r||(A(ah,e).debug(`Closing new stream`,{streamId:i}),yield o.cancel(),A(ih,e).delete(P(i))),a.length>0)return yield Su(new Bu(a,o),i)}}finally{var t;(t=A(rh,e))==null||t.releaseLock()}}})()}close(){var e;return A(th,this).cancel().catch(x),A(nh,this).cancel(`closing`).catch(x),(e=A(rh,this))==null||e.cancel(`closing`).catch(x),A(eh,this).close()}closed(){return Promise.resolve()}writeMessage(e){var t=this;return M(function*(){yield A(th,t).write(e)})()}readMessage(){var e=this;return M(function*(){return A(th,e).read()})()}};function lh(e){A(oh,this).add(e)}V(),L(),T(),k(),D(),j(),N();var uh=new WeakMap,dh=new WeakMap,fh=new WeakMap,ph=new WeakMap,mh=new WeakMap,hh=new WeakMap,gh=new WeakSet,_h=class{constructor(e,t,n){I(this,gh),w(this,uh,void 0),w(this,dh,void 0),w(this,fh,new ye(100)),w(this,ph,void 0),w(this,mh,0),w(this,hh,sn.get().createContext(`WebTransportConnection`)),O(ph,this,n),O(uh,this,e),O(dh,this,t),E(gh,this,vh).call(this).catch(e=>{A(hh,this).warn(`Incoming streams handling ended with error`,e),A(dh,this).markPostHandshake(),A(fh,this).close()}),A(uh,this).closed.then(()=>{A(dh,this).markPostHandshake(),A(fh,this).close()})}openSendStream(){var e=this;return M(function*(){return new td(yield A(uh,e).createUnidirectionalStream())})()}transportType(){return`webtransport`}url(){return A(ph,this)}afterHandshake(){return A(dh,this).postHandshake()}closed(){var e=this;return M(function*(){yield A(uh,e).closed})()}close(){A(uh,this).close()}writeMessage(e){var t=this;return M(function*(){yield A(dh,t).write(e)})()}readMessage(){var e=this;return M(function*(){return A(dh,e).read()})()}objectStream(){var e=this;return M(function*(){return A(fh,e).pop()})()}};function vh(){var e=this;return M(function*(){let t=A(uh,e).incomingUnidirectionalStreams.getReader();for(;;){var n;let{value:r,done:i}=yield t.read();if(i){A(fh,e).close();return}let a=new Bu(new Uint8Array,r);yield A(fh,e).push(Su(a,A(mh,e))),O(mh,e,(n=A(mh,e),n++,n))}})()}V(),N();var yh=sn.get().createContext(`MoqClient`);function bh(e){return xh.apply(this,arguments)}function xh(){return xh=M(function*(e){let t=new WebSocket(e.wsUrl||e.url);t.binaryType=`arraybuffer`,yield new Promise((e,n)=>{t.addEventListener(`error`,()=>n(Error(`WebSocket error`)),{once:!0}),t.addEventListener(`open`,e,{once:!0})});let n=ap.wrapWebsocket(t),r=cp(n,e.role).catch(e=>{throw yh.warn(`MoQ handshake failed, closing WebSocket`,{error:e}),t.close(),e});e.handshakePipelining||(yield r);let i=new Lm(new ch(t,n),e.authToken);return yh.info(`connected`,{url:e.wsUrl||e.url,transport:`websocket`}),e.handshakePipelining&&r.catch(e=>{i.fail(e)}),i}),xh.apply(this,arguments)}function Sh(e){return Ch.apply(this,arguments)}function Ch(){return Ch=M(function*(e){let t=new Uint8Array(64/2);for(let e=0;e<t.length;e+=1)t[e]=parseInt(`60b82e8021689e163c1041b4475ef9c86e7565bc45d1a0aa43f5148769f461c7`.slice(2*e,2*e+2),16);let n=new WebTransport(e.url,{congestionControl:`low-latency`}),r=()=>{n.close()};typeof window<`u`&&typeof window.addEventListener==`function`&&(window.addEventListener(`beforeunload`,r),n.closed.finally(()=>{window.removeEventListener(`beforeunload`,r)}).catch(()=>{})),yield Promise.race([n.ready,n.closed.then(()=>Promise.reject(Error(`WebTransport closed`)))]);let i=yield n.createBidirectionalStream(),a=ap.wrapWebTransport(i),o=cp(a,e.role).catch(()=>{n.close()});e.handshakePipelining||(yield o);let s=new Lm(new _h(n,a,e.url.toString()),e.authToken);return yh.info(`connected`,{url:e.url,transport:`webtransport`}),s}),Ch.apply(this,arguments)}function wh(e){return Th.apply(this,arguments)}function Th(){return Th=M(function*(e){if(self.WebTransport&&(e==null?void 0:e.preferredTransport)!==`websocket`&&e.url.protocol.startsWith(`https`)){if(!e.websocketFallbackTimeoutMs)return{session:yield Sh(e),transportSelectionReason:void 0};let t=Sh(e).catch(()=>bh(e)),n=yield Promise.race([t,rr(e.websocketFallbackTimeoutMs)]);return n?{session:n,transportSelectionReason:n.transportType()===`websocket`?`fallback`:void 0}:{session:yield bh(e),transportSelectionReason:`fallback`}}let t;return t=(e==null?void 0:e.preferredTransport)===`websocket`?`disabled`:self.WebTransport?`unavailable`:`unsupported`,{session:yield bh(e),transportSelectionReason:t}}),Th.apply(this,arguments)}V(),T(),j();var Eh=new WeakMap,Dh=class{constructor(){w(this,Eh,{name:``,priority:0,groupOrder:`ascending`,filterType:{type:`latest-group`}})}name(e){return A(Eh,this).name=e,this}priority(e){return A(Eh,this).priority=e,this}groupOrder(e){return A(Eh,this).groupOrder=e,this}startGroup(e){return A(Eh,this).filterType={type:`absolute-start`,start:{group:e,object:P(0)}},this}range(e,t){return A(Eh,this).filterType={type:`absolute-range`,start:{group:e,object:P(0)},end:{group:t,object:P(0)}},this}build(){return A(Eh,this)}};T(),k(),j();var Oh=new WeakMap,kh=new WeakMap,Ah=class{constructor(e,t){w(this,Oh,void 0),w(this,kh,void 0),O(Oh,this,e),O(kh,this,t)}subscribe(e,t=new Map){return A(Oh,this).subscribe(this.namespace(),e,t)}closed(){return A(Oh,this).closed()}namespace(){return A(kh,this).namespace}};function jh(e,t){return t?[`com.vindral.moq`,e,t]:[`com.vindral.moq`,e]}function Mh(e){let t=e[1];if(!t)throw Error(`namespace must contain a channel ID`);return t}function Nh(e){return`tracks`in e}function Ph(e){let t=new TextDecoder().decode(e);return JSON.parse(t)}V(),L(),T(),j(),k(),D(),N();var Fh,Ih=new WeakMap,Lh=new WeakMap,Rh=new WeakMap,zh=new WeakMap,Bh=new WeakMap,Vh=new WeakMap,Hh=new WeakSet;Fh=Symbol.asyncIterator;var Uh=class e{constructor(e,t){var n=this;I(this,Hh),w(this,Ih,void 0),w(this,Lh,void 0),w(this,Rh,new C(100)),w(this,zh,void 0),w(this,Bh,void 0),w(this,Vh,function(){var e=M(function*(e){if(!e)return A(Ih,n).close();if(A(zh,n))return;let t=A(Rh,n).items().reduce((e,t)=>e<t?e:t,e);O(zh,n,E(Hh,n,Wh).call(n,t,e)),A(zh,n).size===0&&(yield A(Ih,n).close())});return function(t){return e.apply(this,arguments)}}()),O(Ih,this,e),O(Lh,this,t),e.done().then(function(){var e=M(function*(e){var t;return A(Vh,n).call(n,(t=e.finalInfo)==null?void 0:t.group)});return function(t){return e.apply(this,arguments)}}()).catch(x),O(Bh,this,e.groups())}static subscribe(t,n){return M(function*(){return new e(yield t.subscribe(n),void 0)})()}subscribeId(){return A(Ih,this).id}name(){return A(Ih,this).name}largestGroupId(){return A(Lh,this)}needsRenewal(){return A(Ih,this).expiryState()===`active`&&A(zh,this)===void 0}endOfTrack(e){let t=A(Rh,this).items().reduce((e,t)=>e<t?e:t,e);return this.update(t,e)}update(e,t){var n=this;return M(function*(){return O(zh,n,E(Hh,n,Wh).call(n,e,t)),A(zh,n).size===0&&(yield A(Ih,n).close()),A(Ih,n).update(e,t)})()}unsubscribe(){return A(Ih,this).unsubscribe()}next(){var e=this;return M(function*(){var t;if(A(zh,e)&&A(zh,e).size===0)return{done:!0,value:void 0};let n=yield A(Bh,e).next();if(n.done)return n;let r=n.value.groupId();return(t=A(zh,e))==null||t.delete(r),A(Rh,e).push(r),A(Lh,e)||O(Lh,e,r),O(Lh,e,A(Lh,e)<r?r:A(Lh,e)),n})()}return(){return A(Ih,this).return()}[Fh](){return this}};function Wh(e,t){let n=new Set;for(let r=e;r<=t;r++)n==null||n.add(r);return A(Rh,this).items().forEach(e=>{n==null||n.delete(e)}),n}Dn();function Gh(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 En(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}V(),L(),T(),j(),D(),N(),k(),On(),jn();var Kh,qh=new WeakMap,Jh=new WeakMap,Yh=new WeakMap,Xh=new WeakMap,Zh=new WeakSet,Qh=new WeakMap;Kh=Symbol.asyncIterator;var $h=class e{constructor(e){var t=this;I(this,Zh),w(this,qh,void 0),w(this,Jh,void 0),w(this,Yh,new ye(10)),w(this,Xh,void 0),w(this,Qh,function(){var e=M(function*(e,n){try{var r=wp();let i=r.u(yield A(qh,t).lock()),a={subscribeId:i.value.subscribeId()};if(!i.value.needsRenewal()){A(Xh,t).debug(`Subscription does not need renewal`,a);return}let o=i.value.largestGroupId(),s=o!==void 0,c=new Dh().name(n.name).priority(n.priority).groupOrder(n.groupOrder);switch(a.largestGroupId=o,A(Xh,t).debug(`Renewing subscription`,a),n.filterType.type){case`absolute-range`:A(Xh,t).debug(`Absolute range is not renewed`,a);return;case`absolute-start`:case`latest-group`:case`latest-object`:s&&c.startGroup(o+P(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(Zh,t,eg).call(t,u)).catch(x),u.expiryNotification().then(()=>A(Qh,t).call(t,e,l)).catch(x);let d=new Uh(u,o);i.value=d,yield A(Yh,t).push(d),A(Xh,t).info(`Subscription renewed`,a)}catch(e){r.e=e}finally{r.d()}});return function(t,n){return e.apply(this,arguments)}}()),O(qh,this,new bn(e)),O(Jh,this,e),O(Xh,this,sn.get().createContext(`Renewable '${e.name()}'`))}static subscribe(t,n,r){return M(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 Uh(o,a));return o.done().then(()=>E(Zh,s,eg).call(s,o)).catch(x),o.expiryNotification().then(()=>A(Qh,s).call(s,t,n)).catch(x),s})()}largestGroupId(){return A(qh,this).unsafeValue().largestGroupId()}update(e,t){var n=this;return M(function*(){try{var r=wp();let i=r.u(yield A(qh,n).lock());return A(Yh,n).close(),i.value.update(e,t)}catch(e){r.e=e}finally{r.d()}})()}endOfTrack(e){var t=this;return M(function*(){try{var n=wp();let r=n.u(yield A(qh,t).lock());return A(Yh,t).close(),r.value.endOfTrack(e)}catch(e){n.e=e}finally{n.d()}})()}unsubscribe(){var e=this;return M(function*(){try{var t=wp();let n=t.u(yield A(qh,e).lock());return A(Yh,e).close(),n.value.unsubscribe()}catch(e){t.e=e}finally{t.d()}})()}return(){var e=this;return M(function*(){try{var t=wp();let n=t.u(yield A(qh,e).lock());return A(Yh,e).close(),n.value.return()}catch(e){t.e=e}finally{t.d()}})()}next(){var e=this;return M(function*(){let t=yield A(Jh,e).next();if(t.done){var n,r;yield(n=(r=A(Jh,e)).return)==null?void 0:n.call(r);let t=yield A(Yh,e).pop();if(t)return O(Jh,e,t),e.next()}return t})()}[Kh](){return this}objects(){var e=this;return kn(function*(){var t=!1,n=!1,r;try{for(var i=X(e),a;t=!(a=yield B(i.next())).done;t=!1)try{var o=wp();yield*Gh(X(o.a(a.value)))}catch(e){o.e=e}finally{yield B(o.d())}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield B(i.return()))}finally{if(n)throw r}}})()}};function eg(e){var t=this;return M(function*(){var n;if(e.unsubscribed()||(n=e.range())!=null&&n.endGroup){A(Xh,t).info(`Server initiated subscribe done but the subscription is already closing`);return}if(A(qh,t).unsafeValue().subscribeId()!==e.id){A(Xh,t).info(`subscribeId mismatch - the subscription already has been renewed`);return}return t.return()})()}V(),L(),T(),k(),D(),j(),N();var tg=`catalog`;function ng(e){let t=Ph(e.payload);if(!Nh(t))throw Error(`unexpected catalog type`);return t}var rg=new WeakMap,ig=new WeakMap,ag=new WeakMap,og=new WeakMap,sg=new WeakSet,cg=class e{constructor(e,t,n){I(this,sg),w(this,rg,void 0),w(this,ig,void 0),w(this,ag,void 0),w(this,og,void 0),O(ig,this,e),O(rg,this,t),O(ag,this,n),O(og,this,E(sg,this,lg).call(this)),this.closed().finally(()=>A(rg,this).close()).catch(x)}catalog(){return A(rg,this)}closed(){return A(og,this)}close(){var e=this;return M(function*(){return A(rg,e).close(),(yield A(ig,e).promise).unsubscribe()})()}static start(t,n){return M(function*(){let r=S.fromPromise($h.subscribe(t,new Dh().name(n.catalogName||tg).groupOrder(`ascending`).build())),i=S.fromPromise(r.promise.then(e=>e.objects()));if(n.catalog)return new e(r,new Fn(n.catalog),i);let a=yield(yield i.promise).next();if(!a.value)throw Error(`No catalog found`);return new e(r,new Fn(ng(a.value)),i)})()}};function lg(){var e=this;return M(function*(){let t=yield A(ag,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!==Ul.Normal)continue;let n=ng(t);A(rg,e).update(n)}}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield a.return())}finally{if(r)throw i}}})()}V(),L(),T(),k(),j(),D(),h(),On(),z(),jn(),N();var ug,dg,fg,pg,mg,hg,gg,_g,vg=new WeakMap,yg=new WeakMap,bg=new WeakMap,xg=new WeakMap,Sg=new WeakMap,Cg=new WeakMap,wg=new WeakMap,Tg=new WeakMap,Eg=new WeakSet;ug=dn(),dg=Symbol.dispose;var Dg=class{constructor(e,t){I(this,Eg),w(this,vg,void 0),w(this,yg,void 0),w(this,bg,void 0),w(this,xg,void 0),w(this,Sg,void 0),w(this,Cg,void 0),w(this,wg,void 0),w(this,Tg,0),O(vg,this,e),O(yg,this,t)}onFragment(e,t,n,r,i){var a;A(bg,this)===void 0&&(O(bg,this,e),O(xg,this,t),O(Sg,this,n),O(Cg,this,r),A(vg,this).debug(`group start`,{name:A(yg,this).name,groupId:e,startTimeMs:r,endTimeMs:i,subscribeId:t,mediaType:n,namespace:A(yg,this).namespace})),O(Tg,this,(a=A(Tg,this),a++,a)),O(wg,this,i)}[ug](){E(Eg,this,Og).call(this)}[dg](){E(Eg,this,Og).call(this)}};function Og(){A(bg,this)!==void 0&&A(Cg,this)!==void 0&&A(wg,this)!==void 0&&A(vg,this).debug(`group end`,{name:A(yg,this).name,groupId:A(bg,this),startTimeMs:A(Cg,this),endTimeMs:A(wg,this),durationMs:A(wg,this)-A(Cg,this),fragmentCount:A(Tg,this),subscribeId:A(xg,this),mediaType:A(Sg,this),namespace:A(yg,this).namespace})}var kg=new WeakMap,Ag=new WeakMap,jg=new WeakMap,Mg=new WeakMap,Ng=new WeakSet;fg=Symbol.asyncIterator,pg=un(),mg=Symbol.asyncDispose;var Pg=class{constructor(e,t,n,r){I(this,Ng),w(this,kg,void 0),w(this,Ag,void 0),w(this,jg,void 0),m(this,`track`,void 0),w(this,Mg,sn.get().createContext(`CmafGroup`)),this.track=r,O(kg,this,n),O(Ag,this,e),O(jg,this,t)}[fg](){var e=this;return kn(function*(){try{var t=wp();let s={name:e.track.trackObject.name,namespace:e.track.namespace},c=t.u(new Dg(A(Mg,e),s));var n=!1,r=!1,i;try{for(var a=X(A(Ag,e)),o;n=!(o=yield B(a.next())).done;n=!1){let t=o.value;{if(t.objectStatus===Ul.EndOfTrackAndGroup&&(yield B(e.track.endOfTrack(t.groupId))),t.objectStatus!==Ul.Normal)continue;let n=A(jg,e).createFragment(t.payload),r=n.timescale(),i=n.baseMediaDecodeTime()/r*1e3,a=i+n.duration()/r*1e3,o=A(kg,e)/1e3*r;n.updateBaseMediaDecodeTime(n.baseMediaDecodeTime()-o);let l=e.track.timestampRange();if(l&&i>=l[1])break;A(Mg,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 B(a.return()))}finally{if(r)throw i}}}catch(e){t.e=e}finally{t.d()}})()}[pg](){return E(Ng,this,Fg).call(this)}[mg](){return E(Ng,this,Fg).call(this)}};function Fg(){var e=this;return M(function*(){var t,n;return yield(t=(n=A(Ag,e)).return)==null?void 0:t.call(n),Promise.resolve()})()}var Ig=new WeakMap,Lg=new WeakMap,Rg=new WeakMap,zg=new WeakMap;hg=Symbol.asyncIterator,gg=un(),_g=Symbol.asyncDispose;var Bg=class e{constructor(e,t,n,r,i){w(this,Ig,void 0),w(this,Lg,void 0),w(this,Rg,void 0),w(this,zg,void 0),m(this,`trackObject`,void 0),m(this,`namespace`,void 0),this.trackObject=e,this.namespace=t,O(Lg,this,n),O(Ig,this,r),O(Rg,this,i)}static subscribe(t,n,{timestampOffsetMs:r,startGroup:i,params:a}){return M(function*(){if(n.format!==`cmaf`)throw Error(`format must be cmaf`);let o=new Dh().name(n.name);i&&o.startGroup(i);let s=o.build();if(n.initTrack){let o=new Dh().name(n.initTrack).build(),[c,l]=yield Promise.all([Vg.call(e,t,o),$h.subscribe(t,s,{params:a,largestGroupId:i?i-P(1):void 0})]),u=new $o(c);return new e(n,t.namespace(),l,u,r)}xe(n.initData,`no init data found on track`);let c=Re(n.initData),l=new $o(new Uint8Array(c)),u=yield $h.subscribe(t,s,{params:a,largestGroupId:i?i-P(1):void 0});return new e(n,t.namespace(),u,l,r)})()}largestGroupId(){return A(Lg,this).largestGroupId()}stopAfterTimestampReached(e){O(zg,this,[0,e])}timestampRange(){return A(zg,this)}endOfTrack(e){return A(Lg,this).endOfTrack(e)}update(e,t){return A(Lg,this).update(e,t)}unsubscribe(){var e=this;return M(function*(){return A(Lg,e).unsubscribe()})()}next(){var e=this;return M(function*(){let t=yield A(Lg,e).next();return t.done?t:{done:!1,value:new Pg(t.value,A(Ig,e),A(Rg,e),e)}})()}return(){var e=this;return M(function*(){return yield A(Lg,e).return(),{done:!0,value:void 0}})()}[hg](){return this}[gg](){return this.unsubscribe()}[_g](){var e=this;return M(function*(){return e.unsubscribe()})()}};function Vg(e,t){return M(function*(){try{var n=wp();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()}})()}V(),L(),T(),k(),D(),j(),N();var Hg=1e4,Ug=3e4,Wg=new WeakMap,Gg=new WeakMap,Kg=new WeakMap,qg=new WeakMap,Jg=new WeakMap,Yg=new WeakMap,Xg=new WeakSet,Zg=class e{constructor(e,t,n){I(this,Xg),w(this,Wg,sn.get().createContext(`Timeline`)),w(this,Gg,new Fn([])),w(this,Kg,void 0),w(this,qg,void 0),w(this,Jg,void 0),w(this,Yg,void 0),O(qg,this,e),O(Jg,this,n),O(Kg,this,t),O(Yg,this,E(Xg,this,Qg).call(this,A(Kg,this))),this.closed().finally(()=>A(Gg,this).close()).catch(x)}closed(){return A(Yg,this)}close(){var e=this;return M(function*(){return(yield A(Kg,e).promise).unsubscribe()})()}timeline(){let[e,t]=A(Gg,this).value();return e}timestampWallclockOffset(){return jt(this.timeline().map(e=>e.mediaPts-e.wallclock))}static start(t,n){return new e(t,S.fromPromise($h.subscribe(t,new Dh().name(n).groupOrder(`ascending`).build())),n)}waitForWallclockTime(e){var t=this;return M(function*(){return yield A(Gg,t).waitFor(t=>!!t.find(t=>t.wallclock>=e)),t.timeline()})()}waitForTimelineToHaveMinDuration(){var e=this;return M(function*(){return yield A(Gg,e).waitFor(e=>{let t=e[0],n=e[e.length-1];return!t||!n?!1:n.wallclock-t.wallclock>Hg}),e.timeline()})()}};function Qg(e){var t=this;return M(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=wp();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!==Ul.Normal)continue;let r=e_(e.payload);A(Gg,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>Ug;)e.shift();return e}),n===A(Kg,t).resolved&&e.groupId>P(0)&&e.objectId===P(0)&&E(Xg,t,$g).call(t,e.groupId).catch(e=>{A(Wg,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 $g(e){var t=this;return M(function*(){let n=e-P(1),r=t.timeline(),i=r[0],a=r[r.length-1];if(!i||!a||a.wallclock-i.wallclock>Hg)return;A(Wg,t).debug(`backfilling timeline`,{currentGroupId:e,backfillGroupId:n});let o=S.fromPromise($h.subscribe(A(qg,t),new Dh().name(A(Jg,t)).groupOrder(`ascending`).range(n,n).build()));return E(Xg,t,Qg).call(t,o)})()}function e_(e){var t;let n=new TextDecoder(`utf-8`).decode(e).split(`
49
+ `);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}})}V(),T(),h(),k(),N(),j();var t_,n_,r_;function i_(e){return typeof e.language==`string`}var a_=new WeakMap,o_=new WeakMap,s_=new WeakMap,c_=new WeakMap;t_=Symbol.asyncIterator,n_=un(),r_=Symbol.asyncDispose;var l_=class e{constructor(e,t,n,r,i){w(this,a_,new el),w(this,o_,void 0),w(this,s_,void 0),w(this,c_,0),m(this,`trackObject`,void 0),m(this,`namespace`,void 0),O(s_,this,e),O(o_,this,t),this.trackObject=n,this.namespace=r,O(c_,this,i)}static subscribe(t,n,r){return M(function*(){if(!i_(n))throw Error(`track object language is required`);let i=new Dh().name(n.name).build(),a=yield $h.subscribe(t,i);return new e(a,a.objects(),n,t.namespace(),r)})()}largestGroupId(){return A(s_,this).largestGroupId()}update(e,t){return A(s_,this).update(e,t)}unsubscribe(){return A(s_,this).unsubscribe()}next(){var e=this;return M(function*(){for(;;){let t=yield A(o_,e).next();if(t.done)return t;if(t.value.objectStatus!==Ul.Normal)continue;let n=new TextDecoder().decode(t.value.payload),r=A(a_,e).parse(n).map(t=>(t.startTime-=A(c_,e)/1e3,t.endTime-=A(c_,e)/1e3,t));return{done:!1,value:{language:e.trackObject.language,cues:r}}}})()}return(){var e=this;return M(function*(){return yield A(s_,e).return(),{done:!0,value:void 0}})()}[t_](){return this}[n_](){return this.unsubscribe()}[r_](){return this.unsubscribe()}};V(),L(),h(),T(),k(),N(),j(),D();var u_=new WeakMap,d_=new WeakMap,f_=new WeakMap,p_=new WeakMap,m_=new WeakSet,h_=class e{constructor(e,t,n,r,i){I(this,m_),m(this,`namespace`,void 0),w(this,u_,void 0),w(this,d_,void 0),w(this,f_,void 0),w(this,p_,void 0),this.namespace=r,O(u_,this,e),O(d_,this,t),O(f_,this,n),O(p_,this,i)}static start(t,n){return M(function*(){__._.info(`Enter 'start'`,{config:n});let r=new Ah(t,{namespace:n.namespace}),[i,a]=yield Promise.all([Zg.start(r,`timeline`),cg.start(r,{catalog:n.catalog,namespace:n.namespace})]);return new e(r,i,a,n.namespace,0)})()}closed(){return A(f_,this).closed()}catalog(){return A(f_,this).catalog()}timestampWallclockOffset(){return A(d_,this).timestampWallclockOffset()}timestampOffsetMs(){return A(p_,this)}setTimestampOffsetMs(e){O(p_,this,e)}waitForWallclockTime(e){return A(d_,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 E(m_,this,g_).call(this,()=>Bg.subscribe(A(u_,this),a==null?e:a,{timestampOffsetMs:A(p_,this),startGroup:n,params:r}))}subscribeWebVttTrack(e){return E(m_,this,g_).call(this,()=>l_.subscribe(A(u_,this),e,A(p_,this)))}subscribeTrack(e){return E(m_,this,g_).call(this,()=>A(u_,this).subscribe(e))}close(){return Promise.all([A(f_,this).close(),A(d_,this).close()])}};function g_(e){var t=this;return M(function*(){let[n,r]=t.catalog().value();try{return yield e()}catch(i){if(n===t.catalog().current()&&r&&(yield Promise.race([r,rr(500)])),n!==t.catalog().current())return e();throw i}})()}var __={_:sn.get().createContext(`Channel`)};V();var v_=P(8);function y_(e){if(e<0||e>65535)throw RangeError(`burstMs must be between 0 and 65535 inclusive`);return{type:v_,payload:new Uint8Array([e>>8&255,e&255])}}L(),T(),k(),D(),j(),N();var b_=new WeakMap,x_=new WeakMap,S_=new WeakSet,C_=class e{constructor(e){I(this,S_),w(this,b_,void 0),w(this,x_,void 0);let[t,n]=e.value.value();O(b_,this,{createdAt:new Date,wallclock:new Date(t.ntpTimestamp),rtt:t.rtt}),O(x_,this,E(S_,this,w_).call(this,e))}wallclock(){let e=Date.now()-A(b_,this).createdAt.getTime();return A(b_,this).wallclock.getTime()+e}closed(){return A(x_,this)}static start(t){return new e(t)}};function w_(e){var t=this;return M(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;O(b_,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 T_(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 E_(e,t){if(e==null)return{};var n,r,i=T_(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}V(),z(),h(),N();var D_=[`fairplayCertificate`];function O_(e){return typeof e==`string`||e==null}function k_(e){return`provider`in e&&typeof e.provider==`string`&&(!(`widevineLicenseUrl`in e)||O_(e.widevineLicenseUrl))&&(!(`playreadyLicenseUrl`in e)||O_(e.playreadyLicenseUrl))&&(!(`fairplayLicenseUrl`in e)||O_(e.fairplayLicenseUrl))&&(!(`fairplayCertificate`in e)||O_(e.fairplayCertificate))}function A_(e){try{return Re(e)}catch(e){throw Error(`Failed to convert fairplayCertificate`)}}function j_(e){let t=new TextDecoder().decode(e),n=JSON.parse(t);if(!k_(n))throw Error(`Invalid drm object`);let{fairplayCertificate:r}=n;return R(R({},E_(n,D_)),{},{fairplayCertificate:r?A_(r):void 0})}var M_=class e{constructor(e){m(this,`value`,void 0),this.value=e}static create(t,n,r){return M(function*(){try{var i=wp();let a=yield i.a(yield t.subscribeTrack(new Dh().name(`drm`).build())).objects().next();if(a.done)throw Error(`No drm object received`);return new e(R(R({},j_(a.value.payload)),{},{videoCodec:n,audioCodec:r}))}catch(e){i.e=e}finally{yield i.d()}})()}};V(),L(),h(),T(),k(),D(),j(),N();function N_(e){return`rtt`in e&&typeof e.rtt==`number`&&`ntpTimestamp`in e&&typeof e.ntpTimestamp==`number`&&`estimatedBandwidth`in e&&typeof e.estimatedBandwidth==`number`}function P_(e){let t=new TextDecoder().decode(e),n=JSON.parse(t);if(!N_(n))throw Error(`Invalid stats object`);return n}var F_=1e4,I_=new WeakMap,L_=new WeakSet,R_=class e{constructor(e,t,n){I(this,L_),m(this,`ip`,void 0),m(this,`value`,void 0),w(this,I_,void 0),this.ip=n,this.value=new Fn(t),O(I_,this,E(L_,this,z_).call(this,e))}closed(){return A(I_,this)}idleTimeout(){var e=this;return M(function*(){for(;;){let[t,n]=e.value.value();try{yield Promise.race([ir(F_,Error(`Idle timeout`)),n])}catch(e){return e}}})()}static start(t){return M(function*(){let n=(yield t.subscribe(new Dh().name(`stats`).groupOrder(`ascending`).build())).objects(),r=yield n.next();if(r.done)throw Error(`No stats object received`);let i=P_(r.value.payload);if(!i.ip)throw Error(`Expected IP in initial stats object`);return new e(n,i,i.ip)})()}};function z_(e){var t=this;return M(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!==Ul.Normal)continue;let n=P_(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}}})()}V(),T(),k(),j(),N();var B_=new WeakMap,V_=new WeakMap,H_=class{constructor(e){w(this,B_,sn.get().createContext(`UpstreamWatcher`)),w(this,V_,void 0),O(V_,this,new Fn(S.fromPromise(e.closed())))}update(e){A(V_,this).update(S.fromPromise(e.closed()))}closed(){var e=this;return M(function*(){try{for(;;){let[t,n]=A(V_,e).value(),r=!1;yield Promise.race([n==null?void 0:n.then(()=>r=!0),t.promise.then(()=>{if(!r)throw A(B_,e).warn(`Upstream closed`),Error(`Upstream closed`)})])}}catch(e){return e}})()}};V(),T(),k(),j(),On(),z(),jn(),L(),h(),D(),N();var U_,W_=new WeakMap,G_=new WeakMap,K_=new WeakMap;U_=Symbol.asyncIterator;var q_=class{constructor(e,t){w(this,W_,sn.get().createContext(`TracksIterator`)),w(this,G_,void 0),w(this,K_,void 0),O(G_,this,e),O(K_,this,t)}[U_](){var e=this;return kn(function*(){let t=A(K_,e);var n=!1,r=!1,i;try{for(var a=X(A(G_,e)),o;n=!(o=yield B(a.next())).done;n=!1){let n=o.value;{if(!n)continue;let r={name:n.trackObject.name,namespace:n.namespace};A(W_,e).debug(`track start`,R({mediaType:t},r)),yield*Gh(X(n)),A(W_,e).debug(`track end`,R({mediaType:t},r))}}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield B(a.return()))}finally{if(r)throw i}}A(W_,e).debug(`tracks ended`,{mediaType:t})})()}},J_=new WeakMap,Y_=new WeakMap,X_=new WeakMap,Z_=new WeakMap,Q_=new WeakMap,$_=new WeakMap,ev=new WeakMap,tv=new WeakMap,nv=new WeakMap,rv=new WeakMap,iv=new WeakSet,av=class e{constructor(e,t,n){I(this,iv),w(this,J_,void 0),w(this,Y_,void 0),w(this,X_,void 0),w(this,Z_,sn.get().createContext(`Player`)),w(this,Q_,void 0),w(this,$_,new Fn(void 0)),w(this,ev,new Fn(void 0)),w(this,tv,new Fn(void 0)),w(this,nv,void 0),w(this,rv,void 0),m(this,`subtitles`,new q_(A(tv,this),`subtitles`)),m(this,`video`,new q_(A(ev,this),`video`)),m(this,`audio`,new q_(A($_,this),`audio`)),O(J_,this,e),O(Y_,this,C_.start(n)),O(X_,this,n),O(Q_,this,new Fn(t)),O(nv,this,new H_(t)),O(rv,this,Promise.race([n.idleTimeout(),E(iv,this,cv).call(this),A(nv,this).closed()])),A(J_,this).closed().then(()=>this.close()).catch(x)}closed(){return A(rv,this)}static start(t,n){return M(function*(){let r=new Map;if(n.burstMs!==void 0){let e=y_(n.burstMs);r.set(e.type,e)}let i=new Ah(t,{namespace:jh(`auxiliary`)}),[[a,o,s],c]=yield Promise.all([h_.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])),R_.start(i)]),l=new e(t,a,c);return s&&A($_,l).update(s),o&&A(ev,l).update(o),l})()}connectionInfo(){let e=A(X_,this).value.current();return{ip:A(X_,this).ip,rtt:e.rtt,estimatedBandwidth:e.estimatedBandwidth}}stats(){return A(X_,this).value}catalog(){return A(Q_,this).current().catalog()}namespace(){return A(Q_,this).current().namespace}videoTrack(){var e;return(e=A(ev,this).current())==null?void 0:e.trackObject}audioTrack(){var e;return(e=A($_,this).current())==null?void 0:e.trackObject}referenceClock(){return A(Y_,this)}drm(){var e=this;return M(function*(){var t,n;if(e.catalog().current().tracks.find(({name:e})=>e===`drm`))return M_.create(A(Q_,e).current(),(t=e.videoTrack())==null?void 0:t.codec,(n=e.audioTrack())==null?void 0:n.codec)})()}close(){return A(Z_,this).info(`Enter 'close'`),Promise.all([A(Q_,this).current().close(),A(Q_,this).close(),E(iv,this,ov).call(this,A($_,this)),E(iv,this,ov).call(this,A(ev,this)),E(iv,this,ov).call(this,A(tv,this))])}zap(e,t){var n=this;return M(function*(){A(Z_,n).info(`Enter 'zap'`,{config:e,zapOffsetMs:t});let r=yield h_.start(A(J_,n),e),i=A(Y_,n).wallclock()-t,a=A(Q_,n).current(),o=a.timestampWallclockOffset(),s=yield r.waitForWallclockTime(i);A(nv,n).update(r),yield A(Q_,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&&c.groupId?P(c.groupId):void 0;if(l){var f,p;(f=A(ev,n).current())==null||f.stopAfterTimestampReached(l),(p=A($_,n).current())==null||p.stopAfterTimestampReached(l)}A(Q_,n).update(r),yield Promise.all([e.videoTrack?n.setVideoTrack(e.videoTrack,d):void 0,e.audioTrack?n.setAudioTrack(e.audioTrack,d):void 0]),A(Z_,n).info(`Return 'zap'`)})()}setSubtitleTrack(e){var t=this;return M(function*(){var n;if(!e){var r;yield(r=A(tv,t).current())==null?void 0:r.unsubscribe();return}let[i]=yield Promise.all([A(Q_,t).current().subscribeWebVttTrack(e),(n=A(tv,t).current())==null?void 0:n.unsubscribe()]);A(tv,t).update(i)})()}setVideoTrack(e,t){var n=this;return M(function*(){let r=yield E(iv,n,sv).call(n,A(Q_,n).current(),e,A(ev,n).current(),t);A(ev,n).update(r)})()}setAudioTrack(e,t){var n=this;return M(function*(){let r=yield E(iv,n,sv).call(n,A(Q_,n).current(),e,A($_,n).current(),t);A($_,n).update(r)})()}};function ov(e){let t=e.current(),n=t==null?void 0:t.largestGroupId();return e.isClosed()||e.update(void 0),e.close(),n?t==null?void 0:t.update(n,n):t==null?void 0:t.unsubscribe()}function sv(e,t,n,r){var i=this;return M(function*(){A(Z_,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||(a?a+P(1):void 0)}),a?n==null?void 0:n.update(a,a):n==null?void 0:n.unsubscribe()]);return o})()}function cv(){var e=this;return M(function*(){var t=!1,n=!1,r;try{for(var i=X(A(Q_,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([E(iv,e,lv).call(e,t,A(ev,e)),E(iv,e,lv).call(e,t,A($_,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 lv(e,t){var n=this;return M(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 A(Q_,n).current().subscribeCmafTrack(s))}})()}V(),L(),T(),h(),j(),k(),D(),N();function uv(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}var dv=1e4,fv=new WeakMap,pv=new WeakMap,mv=new WeakMap,hv=new WeakMap,$=new WeakMap,gv=new WeakMap,_v=new WeakMap,vv=new WeakMap,yv=new WeakMap,bv=new WeakMap,xv=new WeakMap,Sv=new WeakSet,Cv=new WeakMap,wv=new WeakMap,Tv=new WeakMap,Ev=class e{get estimatedBandwidth(){return A(yv,this)}unload(){A(fv,this).off(`send signal`,A(wv,this)),A(fv,this).off(`disconnect`,this.disconnect),A(fv,this).off(`text track`,A(Cv,this)),this.disconnect()}suspend(){}unsuspend(){}getStatistics(){let e=A(mv,this).transportType()===`webtransport`?`moq`:`moq_ws`;return{edgeUrl:A(mv,this).url(),connectionProtocol:e,transportSelectionReason:A(bv,this)}}constructor(e,t,n,r,i,a,o,s){I(this,Sv),w(this,fv,void 0),w(this,pv,void 0),w(this,mv,void 0),w(this,hv,`disconnected`),w(this,$,void 0),w(this,gv,new Map),w(this,_v,void 0),w(this,vv,void 0),w(this,yv,void 0),w(this,bv,void 0),w(this,xv,new Map),w(this,Cv,e=>{if(!e){A($,this).setSubtitleTrack(void 0).catch(x);return}let t=A(gv,this).get(Mh(A($,this).namespace())),n=t==null?void 0:t.getTextTrack(e);n&&A($,this).setSubtitleTrack(n).catch(x)}),w(this,wv,e=>{switch(e.type){case`subscribe`:if(A(Tv,this)){A(pv,this).info(`Ignoring - we are already switching`);return}O(Tv,this,!0),E(Sv,this,kv).call(this,e.subscription).catch(t=>{A(pv,this).error(`error handling subscription`,t),A(fv,this).emit(`received signal`,{type:`subscription changed`,subscription:e.subscription,reset:!0})}).finally(()=>O(Tv,this,!1));break;case`telemetry`:Ol(new URL(`/api/telemetry`,A(mv,this).url().replace(`wss://`,`https://`)),{body:e.body,headers:{"Content-Type":`text/plain`}}).catch(x);break;case`refresh auth`:A(mv,this).updateAuthToken(e.token);break}}),w(this,Tv,!1),m(this,`disconnect`,(e=`Disconnect Requested`)=>{A(pv,this).info(`Disconnecting`,e),A(mv,this).close(),A($,this).close().catch(x),O(xv,this,new Map),E(Sv,this,Av).call(this,`disconnected`)}),O(fv,this,e),O(pv,this,t),O(mv,this,n),O($,this,r),O(gv,this,i),O(_v,this,a),O(vv,this,o),O(bv,this,s),A(fv,this).on(`send signal`,A(wv,this)),A(fv,this).on(`disconnect`,this.disconnect),A(fv,this).on(`text track`,A(Cv,this)),E(Sv,this,Dv).call(this).catch(x),E(Sv,this,jv).call(this).catch(x)}static start(t,n,r,i,a){return M(function*(){var o,s,c;let l=new Map(i.connectInfo.channels.map(e=>[Mh(e.catalog.namespace),new Rv(new Fn(e.catalog))])),u=yield i.onConnectInfo(i.connectInfo),d=i.options.get(`authenticationToken`),f,p;switch(typeof i.edgeUrl){case`string`:f=uv(i.edgeUrl,u,d);break;default:f=uv(i.edgeUrl.moqUrl||i.edgeUrl.moqWsUrl,u,d),p=uv(i.edgeUrl.moqWsUrl,u,d);break}let m=(o=i.connectInfo.channels.find(e=>e.channelId===u.channelId))==null?void 0:o.catalog;n.debug(`Resolved edge url`,{edgeUrl:f,edgeWsUrl:p}),xe(m,`no catalog found`);let h=(s=l.get(Mh(m.namespace)))==null?void 0:s.getVideoTrack(u.video),g=(c=l.get(Mh(m.namespace)))==null?void 0:c.getAudioTrack(u.audio),{session:_,transportSelectionReason:v}=yield wh({url:f,wsUrl:p,handshakePipelining:!0,authToken:i.options.get(`authenticationToken`),preferredTransport:i.options.get(`webtransportEnabled`)?`webtransport`:`websocket`,role:ff.Subscriber,websocketFallbackTimeoutMs:2e3}),ee=_.closed().then(e=>{throw e instanceof Error?e:Error(e?`Session closed before player started: ${String(e)}`:`Session closed before player started`)}),y=yield Promise.race([av.start(_.subscriber,{namespace:m.namespace,catalog:m,videoTrack:h==null?void 0:h.track,audioTrack:g==null?void 0:g.track,burstMs:u.burstMs||0}),ir(dv,Error(`Timeout waiting for player to start`)),ee]),b=new Rv(y.catalog());l.set(Mh(m.namespace),b),t.emit(`received signal`,{type:`client ip`,ip:y.connectionInfo().ip}),y.drm().then(e=>{e&&t.emit(`received drm data`,e.value)}).catch(e=>{n.error(`Error getting DRM data`,e)});let te=new e(t,n,_,y,l,r,a,v);return u.textTrack&&A(Cv,te).call(te,u.textTrack),te})()}getState(){return A(hv,this)}close(){A(mv,this).close()}closed(){return Promise.race([A(mv,this).closed(),A($,this).closed()])}};function Dv(){var e=this;return M(function*(){A(mv,e).transportType()===`websocket`&&(yield rr(5e3));var t=!1,n=!1,r;try{for(var i=X(A($,e).stats()),a;t=!(a=yield i.next()).done;t=!1){let{rtt:t,estimatedBandwidth:n}=a.value;O(yv,e,n),A(vv,e).push(t),A(fv,e).emit(`rtt`,jt(A(vv,e).items()))}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield i.return())}finally{if(n)throw r}}})()}function Ov(e){var t=this;return M(function*(){var n;let r=yield A(_v,t).connect({channelId:e});if(!ur(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 kv(e){var t=this;return M(function*(){var n,r;A(pv,t).info(`handle subscription`,e);let i=A($,t),a=A(gv,t).get(e.channelId);if(a||(a=new Rv(new Fn(yield E(Sv,t,Ov).call(t,e.channelId))),A(gv,t).set(e.channelId,a)),i.namespace().join(`/`)!==a.namespace().join(`/`)){var o;A(pv,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&&A(fv,t).emit(`received drm data`,e.value)}).catch(e=>{A(pv,t).error(`Error getting DRM data`,e)}),A(pv,t).info(`switched channel`,e.channelId),(o=A(gv,t).get(Mh(i.namespace())))==null||o.updateCatalog(i.catalog()),A(fv,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=A($,t).videoTrack())==null?void 0:n.name)?A($,t).setVideoTrack(s.track):void 0,c&&c.track.name!==((r=A($,t).audioTrack())==null?void 0:r.name)?A($,t).setAudioTrack(c.track):void 0]),A(fv,t).emit(`received signal`,{type:`subscription changed`,subscription:e})})()}function Av(e){O(hv,this,e),A(fv,this).emit(`connection state`,e)}function jv(){var e=this;return M(function*(){try{E(Sv,e,Av).call(e,`connecting`),A(pv,e).info(`Connecting...`),E(Sv,e,Av).call(e,`connected`),yield Promise.all([E(Sv,e,Nv).call(e,A($,e).referenceClock(),A($,e).audio),E(Sv,e,Nv).call(e,A($,e).referenceClock(),A($,e).video),E(Sv,e,Mv).call(e,A($,e).subtitles)]),yield A($,e).closed(),A(mv,e).close(),A(pv,e).info(`Session closed`)}catch(t){A(pv,e).warn(`Session error`,t)}finally{E(Sv,e,Av).call(e,`disconnected`)}})()}function Mv(e){var t=this;return M(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;A(fv,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 Nv(e,t){var n=this;return M(function*(){let r=``,i=``,a,o=A($,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=Mh(t.track.namespace),c=t.track.trackObject.language,l=lr((f=t.track.trackObject.codec)==null?``:f),u=t.track.trackObject.codec,d=l?mr({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=A(xv,n).get(t.track.namespace)||0;if(h&&Date.now()-g>1e3){A(xv,n).set(t.track.namespace,Date.now());let r=e.wallclock()-h.getTime();A(pv,n).debug(`timing-info`,{mediaType:p.mediaType(),referenceClock:e,delta:r,groupId:f,timestamp:p.baseMediaDecodeTime()/p.timescale()*1e3+r,wallclockTime:h.getTime()}),A(fv,n).emit(`received signal`,{type:`timing info`,timingInfo:{channelId:s,timestamp:p.baseMediaDecodeTime()/p.timescale()*1e3+r,wallclockTime:h.getTime()}})}A(fv,n).emit(`received moq data`,{payload:p,channelId:s,groupId:f,mimeType:d,codec:l,codecString:u,switchInfo:m,renditionId:Pv(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 Pv(e){return e.split(``).reduce((e,t)=>e=t.charCodeAt(0)+(e<<6)+(e<<16)-e,0)}var Fv=new WeakMap,Iv=new WeakMap,Lv=new WeakSet,Rv=class{constructor(e){I(this,Lv),w(this,Fv,void 0),w(this,Iv,void 0),O(Fv,this,e),O(Iv,this,E(Lv,this,zv).call(this))}catalog(){return A(Fv,this).current()}namespace(){return A(Fv,this).current().namespace}updateCatalog(e){O(Fv,this,e)}getTextTrack(e){return A(Fv,this).current().tracks.find(t=>t.label===e)}getAudioTrack(e){if(!e.codec)return;let t=A(Iv,this).filter(t=>!(!pr(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=A(Iv,this).filter(t=>!(!fr(t)||t.bitRate>e.bitRate||e.codec&&t.codec!==e.codec));return t[t.length-1]}renditions(){return A(Iv,this)}};function zv(){let[e,t]=A(Fv,this).value();return dr(e)}var Bv=(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.expectAdditionalConnection&&i.searchParams.append(`expectAdditionalConnection`,t.expectAdditionalConnection.toString()),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()};Ti(),V(),h(),z(),N();var Vv=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}({}),Hv=class extends Ht{constructor(e,t){var n;super(),n=this,m(this,`options`,void 0),m(this,`websockets`,[]),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,`shouldContinueConnecting`,!1),m(this,`_isConnectInProgress`,!1),m(this,`readyState`,()=>{if(this.websockets.length===0)return WebSocket.CLOSED;let e=this.websockets.map(e=>e.readyState);for(let t of e)switch(t){case WebSocket.OPEN:continue;default:return t}return WebSocket.OPEN}),m(this,`url`,()=>{var e;return(e=this.websockets[0])==null?void 0:e.url}),m(this,`send`,e=>{if(this.websockets.length){var t;(t=this.websockets[0])==null||t.send(e)}}),m(this,`close`,e=>{var t;let n=!1;return(t=this.websockets)==null||t.forEach(t=>{t.onmessage=x,t.removeEventListener(`error`,this.onError),t.removeEventListener(`close`,this.onClose),t.removeEventListener(`open`,this.onOpen),t.close(1e3,e),n=!0}),this.websockets=[],this.shouldContinueConnecting=!1,this._isConnectInProgress=!1,this.logger.info(`Closed websocket`,{reason:e}),n}),m(this,`suspend`,()=>{this.isSuspended=!0}),m(this,`unsuspend`,()=>{this.isSuspended=!1,this.readyState()!==WebSocket.OPEN&&!this.isConnectInProgress&&this.connect()}),m(this,`onMessage`,(e,t)=>{this.websockets.length!==0&&this.options.onMessage(e,t.data)}),m(this,`onError`,()=>{this.logger.warn(`On error`,R({},this.options)),this.close(`one websocket had an error`),this.emit(`error`,new H(`WebSocket error`,{code:`websocket_error`,isFatal:!1}))}),m(this,`onClose`,e=>{switch(this.logger.info(`Closed`,R(R({},this.options),{},{reason:e.reason,code:e.code,isSuspended:this.isSuspended})),this.close(`one websocket was closed`),e.code){case Vv.AuthenticationFailed:this.emit(`error`,mi(pi()));break;case Vv.AuthenticationRefreshFailed:this.emit(`error`,mi(pi()));break;case Vv.AuthenticationExpired:this.emit(`error`,hi(pi()));break;case Vv.ChannelNotFound:this.emit(`error`,_i(`internal`,pi()));break;case Vv.Inactivity:this.emit(`error`,gi(`internal`,pi()));break;default:}this.emit(`close`,this)}),m(this,`onOpen`,()=>{this.logger.info(`Opened`,R({},this.options)),this.readyState()===WebSocket.OPEN&&(this._connectTime=Date.now()-this.connectStartTime,this.reconnectState.reconnectRetries=0,this._isConnectInProgress=!1,this.emit(`open`,this))}),m(this,`connect`,M(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 rr(n.options.reconnectDelay);let e=yield n.options.reconnectHandler(n.reconnectState);if(n.reconnectState.reconnectRetries++,!e)return n._isConnectInProgress=!1,n.emit(`error`,bi()),!1}n._connectionAttemptCount++;try{if(!n.shouldContinueConnecting)return n._isConnectInProgress=!1,n.logger.info(`Connection aborted`),!1;let{url:e,connectionCount:t}=yield n.options.connectHandler();if(n.connectStartTime=Date.now(),!n.shouldContinueConnecting)return n._isConnectInProgress=!1,n.logger.info(`Connection aborted`),!1;n.logger.info(`Connecting websockets`,R(R({},n.options),{},{url:e}));for(let r=0;r<t;r++){let t=new WebSocket(e);t.binaryType=`arraybuffer`,t.onmessage=e=>n.onMessage(r,e),t.addEventListener(`error`,n.onError),t.addEventListener(`close`,n.onClose),t.addEventListener(`open`,n.onOpen),n.websockets.push(t)}return!0}catch(e){return n._isConnectInProgress=!1,e instanceof H&&(n.logger.error(`Failed to connect`,e.toStringifiable()),e.isFatal())?!1:n.shouldContinueConnecting?(n.logger.info(`Connection aborted`,{error:e}),n.emit(`error`,new H(`Failed to connect`,{code:`failed_to_connect`,isFatal:!1,source:e,type:`internal`})),!1):!1}})),this.options=e,this.logger=t}get isConnectInProgress(){return this._isConnectInProgress}get connectionCount(){return this.websockets.length}get connectionAttemptCount(){return this._connectionAttemptCount}get connectTime(){return this._connectTime}};V(),h(),N();var Uv,Wv=65536*8,Gv=.9,Kv=40,qv=e=>{let t=e||Kv;return Wv*Gv*1e3/t},Jv=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`,Date.now()),m(this,`isPingInFlight`,!1),m(this,`connectCount`,0),m(this,`missedPings`,0),m(this,`contextSwitchesInProgress`,new Set),m(this,`contextSwitchesCompleted`,new Set),m(this,`buffer`,[]),m(this,`disconnected`,new S),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`,()=>{var e;return{edgeUrl:(e=this.transport)==null?void 0:e.url(),connectionProtocol:`vindral_ws`,transportSelectionReason:void 0}}),m(this,`onMessage`,(e,t)=>{var n;if(this.pingCooldownExpired()&&this.sendPing(),this.contextSwitchesCompleted.size===((n=this.transport)==null?void 0:n.connectionCount)){this.logger.info(`Completing context switch`),this.contextSwitchesInProgress.clear(),this.contextSwitchesCompleted.clear();let e=this.buffer.filter(([e,t])=>!(t instanceof ArrayBuffer)),t=this.buffer.filter(([e,t])=>t instanceof ArrayBuffer);e.map(e=>this.handleMessage(e[0],e[1])),t.map(e=>this.handleMessage(e[0],e[1])),this.buffer=[]}if(this.contextSwitchesInProgress.has(e)){if(!(t instanceof ArrayBuffer)){let n=JSON.parse(t);if(_r(n)&&n.type===`context switch complete`){this.logger.info(`context switch completed`,{socketId:e}),this.emitter.emit(`context switch complete`),this.contextSwitchesCompleted.add(e);return}}this.buffer.push([e,t]);return}this.handleMessage(e,t)}),m(this,`resolveEdgeUrl`,M(function*(){let e=a.config.connectInfo,t=yield a.config.onConnectInfo(e),n=a.config.options.getOverride(`separateVideoSocketEnabled`,t.channelId),r=a.config.options.get(`media`)===`audio+video`,i=1;r&&(i=n===!1?1:2);let o=Bv(a.config.edgeUrl,{video:t.video,audio:t.audio,burstMs:t.burstMs,sessionId:t.sessionId,clientId:t.clientId,channelId:t.channelId,channelGroupId:t.channelGroupId,expectAdditionalConnection:i>1,authToken:a.config.options.get(`authenticationToken`)});return a.logger.debug(`Resolved edge url`,{edgeUrl:o}),{url:o,connectionCount:i}})),m(this,`handleMessage`,(e,t)=>{if(t instanceof ArrayBuffer)this.emitter.emit(`received data`,t);else{let n=JSON.parse(t);if(!_r(n))return;switch(n.type){case`pong`:this.lastPingSentTime&&(this.rtts.push(Date.now()-this.lastPingSentTime),this.isPingInFlight=!1,this.emitter.emit(`rtt`,jt(this.rtts.items())));break;case`context switch`:this.logger.info(`Starting context switch`,{socketId:e}),this.emitter.emit(`context switch started`),this.contextSwitchesInProgress.add(e);break;default:this.emitter.emit(`received signal`,n);break}}}),m(this,`connectWebSocketTransport`,()=>{let e=new Hv({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`)=>{var t;this.contextSwitchesCompleted.clear(),this.contextSwitchesInProgress.clear(),this.buffer=[],this.resetPingState(),this.disconnected.resolve(),(t=this.transport)==null||t.close(e)}),m(this,`onTransportChange`,()=>{switch(this.getState()){case`connected`:var t;(t=this.transport)!=null&&t.connectTime&&(this.rtts.push(this.transport.connectTime/e.TLS_ROUNDTRIPS/(this.transport.connectionCount||1)),this.emitter.emit(`rtt`,jt(this.rtts.items()))),this.connectCount++,this.resetPingState();break;default:this.contextSwitchesCompleted.clear(),this.contextSwitchesInProgress.clear(),this.buffer=[],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`,()=>Date.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=Date.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(x),this.transport=this.connectWebSocketTransport()}closed(){return this.disconnected.promise}};Uv=Jv,m(Jv,`PING_INTERVAL`,5e3),m(Jv,`MAX_MISSED_PINGS`,4),m(Jv,`TLS_ROUNDTRIPS`,3),m(Jv,`start`,(e,t,n,r)=>new Promise((i,a)=>{let o=new Uv(e,t,n,r);o.transport.once(`error`,e=>a(e)),o.transport.once(`open`,()=>i(o))})),T(),k(),j();var Yv=new WeakMap,Xv=new WeakMap,Zv=new WeakMap,Qv=class{constructor(e){w(this,Yv,void 0),w(this,Xv,[]),w(this,Zv,void 0),O(Yv,this,e)}select(e){if(A(Yv,this).edgeUrl)return A(Yv,this).edgeUrl;A(Xv,this).length===0&&O(Xv,this,A(Xv,this).concat(e));let t=A(Xv,this).shift();if(O(Zv,this,t),t)return t}shiftedEdge(){return A(Zv,this)}reset(){O(Zv,this,void 0),O(Xv,this,[])}};Ti(),V(),L(),h(),T(),k(),j(),z(),D(),N();var $v,ey=new WeakMap,ty=new WeakMap,ny=new WeakMap,ry=new WeakMap,iy=new WeakMap,ay=new WeakMap,oy=new WeakMap,sy=new WeakMap,cy=new WeakMap,ly=new WeakMap,uy=new WeakSet,dy=class e{constructor(t,n,r){var i=this;I(this,uy),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),w(this,ey,new C(10)),w(this,ty,!0),w(this,ny,void 0),w(this,ry,0),w(this,iy,0),w(this,ay,0),w(this,oy,void 0),w(this,sy,void 0),m(this,`unload`,()=>{var e;this.logger.debug(`Unloading module...`),this.disconnect(`Unloading`),(e=this.connectionImpl)==null||e.unload(),this.logger.debug(`Unloaded module`)}),m(this,`suspend`,()=>{var e;O(ty,this,!1),(e=this.connectionImpl)==null||e.suspend()}),m(this,`unsuspend`,()=>{var e;O(ty,this,!0),(e=this.connectionImpl)==null||e.unsuspend(),this.connect()}),m(this,`getState`,()=>this.connectionImpl?this.connectionImpl.getState():`disconnected`),m(this,`getStatistics`,()=>{let e=A(iy,this)>0?A(ay,this)/A(iy,this):0;return this.connectionImpl?R(R({},this.connectionImpl.getStatistics()),{},{rtt:Pt(A(ey,this).items()),estimatedBandwidth:this.estimatedBandwidth,connectCount:A(ay,this),connectionAttemptCount:A(iy,this),connectionSuccessRatio:e}):{rtt:{min:0,max:0,average:0,last:0},estimatedBandwidth:0,connectCount:A(ay,this),connectionAttemptCount:A(iy,this),connectionSuccessRatio:e,connectionProtocol:void 0,transportSelectionReason:void 0}}),m(this,`connect`,()=>{O(ty,this,!0),!A(ny,this)&&O(ny,this,E(uy,this,fy).call(this))}),m(this,`disconnect`,(e=`Disconnect Requested`)=>{var t;O(ty,this,!1),(t=this.connectionImpl)==null||t.close(e)}),m(this,`reconnect`,e=>{this.disconnect(e),this.connect()}),w(this,cy,M(function*(){try{return yield i.apiClient.connect(i.config.options.getOptions())}catch(e){if(Cl(e))switch(e.status){case 401:throw i.emitter.emit(`error`,mi(e)),mi(e);case 403:throw i.emitter.emit(`error`,Si(e.message)),Si(e.message);default:break}throw i.emitter.emit(`error`,yi(e instanceof Error?e:void 0)),e}})),w(this,ly,M(function*(){let t=Date.now(),n=()=>Date.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)}})),this.logger=n,this.emitter=t,this.config=r,this.apiClient=new jl({publicEndpoint:this.config.options.get(`url`).toString(),tokenFactory:()=>this.config.options.get(`authenticationToken`)})}get rtt(){return A(ey,this).items().length>0?jt(A(ey,this).items()):0}get estimatedBandwidth(){return this.connectionImpl&&`estimatedBandwidth`in this.connectionImpl&&this.connectionImpl.estimatedBandwidth?this.connectionImpl.estimatedBandwidth:qv(this.rtt)}get firstConnectionTime(){return A(oy,this)}get lastConnectionTime(){return A(sy,this)}};$v=dy;function fy(){var e=this;return M(function*(){let t=new Qv({edgeUrl:e.config.options.get(`edgeUrl`)});for(O(ry,e,0);;){var n,r,i;O(ry,e,(n=A(ry,e),n++,n)),O(iy,e,(r=A(iy,e),r++,r));let o=!1;try{var a;let[n,r]=yield Promise.all([A(cy,e).call(e),A(ly,e).call(e)]);if(A(ey,e).clear(),r!==void 0&&A(ey,e).push(r/2),!A(ty,e))break;let i=t.select(n.edges);if(!i)throw new H(`Failed to resolve edge url`,{isFatal:!0,code:`failed_to_resolve_edge_url`});ur(n)?e.connectionImpl=yield Ev.start(e.emitter,e.logger,e.apiClient,R(R({},e.config),{},{connectInfo:n,edgeUrl:i}),A(ey,e)):(xe(typeof i==`string`,`Edge URL is expected to be a string`),e.connectionImpl=yield Jv.start(e.emitter,e.logger,R(R({},e.config),{},{connectInfo:n,edgeUrl:i}),A(ey,e))),t.reset(),O(ay,e,(a=A(ay,e),a++,a)),O(ry,e,0),O(sy,e,Date.now()),A(oy,e)||O(oy,e,A(sy,e)),yield e.connectionImpl.closed(),e.logger.info(`Connection closed`)}catch(n){e.logger.warn(`Failed to connect`,n);let r=t.shiftedEdge();r&&e.emitter.emit(`telemetry event`,{code:`shifted_edge`,edgeUrl:typeof r==`string`?r:r.moqUrl||r.moqWsUrl}),n instanceof H?(e.emitter.emit(`error`,n),o=n.isFatal()):n instanceof Error&&e.emitter.emit(`error`,new H(n.message,{code:`start_failed`,isFatal:!1}))}if((i=e.connectionImpl)==null||i.unload(),e.connectionImpl=void 0,o){O(ty,e,!1);break}if(!A(ty,e))break;if(!(yield e.config.reconnectHandler({reconnectRetries:A(ry,e)}))){e.emitter.emit(`error`,bi());break}if(yield rr(1e3),!A(ty,e))break}O(ny,e,void 0)})()}m(dy,`PING_TIMEOUT`,1e3),m(dy,`create`,(e,t,n)=>new $v(e,t,n)),V(),z(),h();var py,my=()=>({video:R(R({},gr()),{},{bitRate:hr()}),audio:{bitRate:hr()}}),hy=()=>({width:window.innerWidth,height:window.innerHeight,bitRate:hr()}),gy=class e{constructor(t,n,r,i){m(this,`emitter`,void 0),m(this,`timers`,new Vn),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?my():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({},my()),{},{video:hy()}):my();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,Bt(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()}};py=gy,m(gy,`CHECK_SIZE_INTERVAL`,1e3),m(gy,`create`,(e,t,n,r)=>new py(e,t,n,r));var _y,vy=n((()=>{_y=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}`)}}}})),yy,by=n((()=>{V(),h(),yy=class{constructor(){m(this,`map`,new Map)}enqueue(e,t){let n=this.map.get(e);if(n)n.push(t);else{let n=new C(1/0);n.push(t),this.map.set(e,n)}}dequeue(e){let t=this.map.get(e);if(!t)return;let n=t.pop();return t.isEmpty()&&this.map.delete(e),n}dequeueWithFallback(e){let t=this.dequeue(e);if(t!==void 0)return t;for(let[e,t]of this.map){let n=t.pop();if(t.isEmpty()&&this.map.delete(e),n!==void 0)return n}}removeLast(e){let t=this.map.get(e);t&&(t.popLast(),t.isEmpty()&&this.map.delete(e))}clear(){this.map.clear()}}})),xy=r({WebCodecsAudioDecoderContext:()=>wy}),Sy,Cy,wy,Ty=n((()=>{La(),Rc(),V(),vy(),by(),h(),z(),N(),Cy=globalThis,wy=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 yy),m(this,`errors`,new C(10)),m(this,`resetDecoderState`,()=>{this.pendingSamples.clear(),this.previousSample=void 0,this.previousCodec=void 0}),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.dequeueWithFallback(e.timestamp);if(!t){e.close();return}let{sample:n,decodeStartTime:r}=t;try{let t=e.numberOfFrames,i=e.numberOfChannels,a=e.sampleRate,o=e.timestamp,s=e.duration,c=new Float32Array(t*i);e.copyTo(c,{planeIndex:0,format:`f32`});let l=Math.round(o*n.timescale/1e6),u=typeof s==`number`&&Number.isFinite(s)?Math.max(0,Math.round(s*n.timescale/1e6)):n.duration,d=R(R({},n),{},{timestamp:l,duration:u,type:`audio`,format:`f32`,data:c,sampleRate:a,channels:i,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`,_y),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 Ic(t.channels,t.sampleRate);if(e===`aac`)return Ia(t.channels,t.sampleRate)}),m(this,`unload`,()=>{this.decodedSamples=[],this.resetDecoderState(),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){this.previousSample&&r.state===`configured`&&r.flush().catch(e=>{this.logger.warn(`Failed to flush before reconfiguration:`,e)});let t=this.buildCodecString(i),n=this.getDescription(i,e),a={codec:t,sampleRate:e.sampleRate,numberOfChannels:e.channels,description:n};try{r.configure(a),this.previousCodec=i}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}`)),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);try{let t=new EncodedAudioChunk({type:`key`,timestamp:c,duration:l>0?l:void 0,data:e.data});this.pendingSamples.enqueue(c,{sample:e,decodeStartTime:performance.now()}),r.decode(t)}catch(e){this.logger.error(`Failed to decode chunk:`,e),this.pendingSamples.removeLast(c),r.state===`closed`&&(this.resetDecoderState(),this.ensureDecoder())}}),m(this,`flush`,M(function*(){if(t.decoder&&t.decoder.state===`configured`)try{yield t.decoder.flush()}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()}},Sy=wy,m(wy,`isSupported`,()=>Cy.AudioDecoder!==void 0),m(wy,`create`,function(){var e=M(function*(e){if(!Sy.isSupported())throw Error(`WebCodecs AudioDecoder is not supported in this environment`);return new Sy(e)});return function(t){return e.apply(this,arguments)}}())})),Ey,Dy=n((()=>{Ey=(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`&&re(`no native wasm support detected`);var d,f=!1,p=typeof TextDecoder<`u`?new TextDecoder(`utf8`):void 0,m,h,g,_=[],v=[],ee=[];function y(){var e=n.preRun.shift();_.unshift(e)}var b=0,te=null,ne=null;n.preloadedImages={},n.preloadedAudios={};function re(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 ie(e){return e.startsWith(`data:application/octet-stream;base64,`)}var ae=`data:application/octet-stream;base64,AGFzbQEAAAAB6wEbYAR/f39/AGADf39/AX9gAX8Bf2ADf39/AGACf38Bf2ACf38AYAV/f39/fwBgBn9/f39/fwF/YAR/f39/AX9gAABgAX8AYAZ/f39/f38AYAd/f39/f39/AGAJf39/f39/f39/AGABfAF8YAJ8fAF8YAt/f39/f39/f39/fwBgDX9/f39/f39/f39/f38AYAx/f39/f319f39/f38AYAR/f31/AGAFf39/f38Bf2AHf39/f39/fwF/YAt/f39/f39/f31/fwF/YAl/f39/f39/fX8Bf2AGf3x/f39/AX9gA39+fwF+YAJ8fwF8AiUGAWEBYQAIAWEBYgAUAWEBYwACAWEBZAAJAWEBZQACAWEBZgABA09OAwEBAQQBAQQWAgcCBgMXGgQHDA0OBQAACBUKEwsPBQACAwAEEgkEAhEMBQYLAwMQAAIODw0CBwYDBgAFBAMIAAAAAAAGAwMCCgcBGQECBAUBcAEEBAUGAQGAAoACBgkBfwFBsKvCAgsHIQgBZwIAAWgAKwFpAFABagBPAWsATgFsAC0BbQAgAW4BAAkJAQBBAQsDU1JRCvajBk79AgEDfyMAQRBrIgMkACADIAA2AgggAyACNgIEIAMgATYCAEGACCgCACEAIwBBEGsiAiQAIAIgAzYCDCMAQdABayIBJAAgASADNgLMASABQaABakEAQSgQCRogASABKALMATYCyAECQEEAIAFByAFqIAFB0ABqIAFBoAFqEB5BAEgNACAAKAJMQQBOIQQgACgCACEDIAAsAEpBAEwEQCAAIANBX3E2AgALIANBIHEhBQJ/IAAoAjAEQCAAIAFByAFqIAFB0ABqIAFBoAFqEB4MAQsgAEHQADYCMCAAIAFB0ABqNgIQIAAgATYCHCAAIAE2AhQgACgCLCEDIAAgATYCLCAAIAFByAFqIAFB0ABqIAFBoAFqEB4gA0UNABogAEEAQQAgACgCJBEBABogAEEANgIwIAAgAzYCLCAAQQA2AhwgAEEANgIQIAAoAhQaIABBADYCFEEACxogACAAKAIAIAVyNgIAIARFDQALIAFB0AFqJAAgAkEQaiQAEAMAC4cCAQh/IAAoAhwiBCACdiEIIAAoAiAhBUEAIQIDQCAFIAggASACai0AAGwiA09FBEAgAkEBaiECIAMhBAwBCwsgACAEIANrIgE2AhwgACAFIANrIgQ2AiAgAUGAgIAETQRAIAAoAhghBiAAKAIoIQUgACgCFCEJIAAoAgQhCgNAIAAgAUEIdCIINgIcIAAgCUEIaiIJNgIUQQAhByAGIApJBEAgACAGQQFqIgM2AhggACgCACAGai0AACEHIAMhBgsgACAHNgIoIAAgBEEIdEGA/v//B3EgByAFQQh0ckEBdkH/AXFyQf8BcyIENgIgIAFBgYACSSEDIAchBSAIIQEgAw0ACwsgAguDBAEDfyACQYAETwRAIAAgASACEAUaIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAEEDcUUEQCAAIQIMAQsgAkEBSARAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAkEDcUUNASACIANJDQALCwJAIANBfHEiBEHAAEkNACACIARBQGoiBUsNAANAIAIgASgCADYCACACIAEoAgQ2AgQgAiABKAIINgIIIAIgASgCDDYCDCACIAEoAhA2AhAgAiABKAIUNgIUIAIgASgCGDYCGCACIAEoAhw2AhwgAiABKAIgNgIgIAIgASgCJDYCJCACIAEoAig2AiggAiABKAIsNgIsIAIgASgCMDYCMCACIAEoAjQ2AjQgAiABKAI4NgI4IAIgASgCPDYCPCABQUBrIQEgAkFAayICIAVNDQALCyACIARPDQEDQCACIAEoAgA2AgAgAUEEaiEBIAJBBGoiAiAESQ0ACwwBCyADQQRJBEAgACECDAELIAAgA0EEayIESwRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAiABLQABOgABIAIgAS0AAjoAAiACIAEtAAM6AAMgAUEEaiEBIAJBBGoiAiAETQ0ACwsgAiADSQRAA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgIgA0cNAAsLIAAL8gICAn8BfgJAIAJFDQAgACACaiIDQQFrIAE6AAAgACABOgAAIAJBA0kNACADQQJrIAE6AAAgACABOgABIANBA2sgAToAACAAIAE6AAIgAkEHSQ0AIANBBGsgAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBBGsgATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQQhrIAE2AgAgAkEMayABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkEQayABNgIAIAJBFGsgATYCACACQRhrIAE2AgAgAkEcayABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa1CgYCAgBB+IQUgAyAEaiEBA0AgASAFNwMYIAEgBTcDECABIAU3AwggASAFNwMAIAFBIGohASACQSBrIgJBH0sNAAsLIAAL6wEBCX8gACgCICIEIAAoAhwiAiABdiIBSSIGRQRAIAAgBCABayIENgIgCyAAIAEgAiABayAGGyIFNgIcIAVBgICABE0EQCAAKAIYIQMgACgCKCEHIAAoAhQhCCAAKAIEIQkDQCAAIAVBCHQiCjYCHCAAIAhBCGoiCDYCFEEAIQEgAyAJSQRAIAAgA0EBaiICNgIYIAAoAgAgA2otAAAhASACIQMLIAAgATYCKCAAIARBCHRBgP7//wdxIAEgB0EIdHJBAXZB/wFxckH/AXMiBDYCICAFQYGAAkkhAiABIQcgCiEFIAINAAsLIAYL6AIBAn8CQCAAIAFGDQAgASAAIAJqIgRrQQAgAkEBdGtNBEAgACABIAIQCA8LIAAgAXNBA3EhAwJAAkAgACABSQRAIAMEQCAAIQMMAwsgAEEDcUUEQCAAIQMMAgsgACEDA0AgAkUNBCADIAEtAAA6AAAgAUEBaiEBIAJBAWshAiADQQFqIgNBA3ENAAsMAQsCQCADDQAgBEEDcQRAA0AgAkUNBSAAIAJBAWsiAmoiAyABIAJqLQAAOgAAIANBA3ENAAsLIAJBA00NAANAIAAgAkEEayICaiABIAJqKAIANgIAIAJBA0sNAAsLIAJFDQIDQCAAIAJBAWsiAmogASACai0AADoAACACDQALDAILIAJBA00NAANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIAJBBGsiAkEDSw0ACwsgAkUNAANAIAMgAS0AADoAACADQQFqIQMgAUEBaiEBIAJBAWsiAg0ACwsgAAvsBwEHfyMAQRBrIgMkACADIAI2AgxBeyECAkACQAJAAkACQAJAAkACQAJAAkACQCABQbsfaw4VAQIKCgYKAwoKCgoKCgoKCgoKCgcIAAsCQAJAAkACQCABQZfOAGsOCgMCDQANAQ0NBwgNCyADIAMoAgwiAUEEajYCDEF/IQIgASgCACIBQQBIDQwgASAAKAIAKAIITg0MIAAgATYCFAwLCyADIAMoAgwiAUEEajYCDEF/IQIgASgCACIBQQFIDQsgASAAKAIAKAIISg0LIAAgATYCGAwKCyADIAMoAgwiAUEEajYCDEF/IQIgASgCACIBQQFrQQFLDQogACABNgIMDAkLIAMgAygCDCIBQQRqNgIMIAEoAgAiAUUEQEF/IQIMCgsgASAAKAIsNgIAQQAhAiAAQQA2AiwMCQsgAyADKAIMIgFBBGo2AgwgASgCACIBRQRAQX8hAgwJCyABIAAoAgQgACgCEG02AgAMBwsgACgCBCEGQQAhAiAAQShqQQAgACgCACIEKAIIIgFBBXQgACgCCCIFIAQoAgRBAnRB4MAAamxqQTRqEAkaAkAgAUEBSA0AIAFBA3QiBCAAIAZBgBBqIAVsQQJ0aiAFQeAAbGpqQdwAaiIFIARqIQYgAUEBdCIBQQEgAUEBShsiBEEDcSEHQQAhASAEQQFrQQNPBEAgBEH8////B3EhCQNAIAYgAUECdCIEakGAgICPfDYCACAEIAVqQYCAgI98NgIAIAYgBEEEciIIakGAgICPfDYCACAFIAhqQYCAgI98NgIAIAYgBEEIciIIakGAgICPfDYCACAFIAhqQYCAgI98NgIAIAYgBEEMciIEakGAgICPfDYCACAEIAVqQYCAgI98NgIAIAFBBGohASAJQQRrIgkNAAsLIAdFDQADQCAGIAFBAnQiBGpBgICAj3w2AgAgBCAFakGAgICPfDYCACABQQFqIQEgB0EBayIHDQALCyAAQQE2AjgMBwsgAyADKAIMIgFBBGo2AgwgASgCACIBRQRAQX8hAgwHCyABIAAoAjw2AgAMBQsgAyADKAIMIgFBBGo2AgwgASgCACIBRQRAQX8hAgwGCyABIAAoAgA2AgAMBAsgAyADKAIMIgFBBGo2AgwgACABKAIANgIcDAMLIAMgAygCDCIBQQRqNgIMIAEoAgAiAUUEQEF/IQIMBAsgASAAKAIoNgIADAILIAMgAygCDCIBQQRqNgIMQX8hAiABKAIAIgFBAUsNAiAAIAE2AiAMAQsgAyADKAIMIgFBBGo2AgwgASgCACIBRQRAQX8hAgwCCyABIAAoAiA2AgALQQAhAgsgA0EQaiQAIAILnwEBBn8gACgCDCEDAkAgASAAKAIQIgJNBEAgAiEFDAELIAAoAgghBCAAKAIEIQYDQCAEIAZPBH9BAAUgACAEQQFqIgQ2AgggACgCACAGIARrai0AACACdAsgA3IhAyACQRFIIQcgAkEIaiIFIQIgBw0ACwsgACAFIAFrNgIQIAAgAyABdjYCDCAAIAAoAhQgAWo2AhQgA0F/IAF0QX9zcQv7EQIMfwJ9IAIgBG4hDSAAKAIAIRUCQCACQQFGBEBBACEFIAAoAiBBCE4EQCAAKAIcIQICQCAVBEAgAiABKgIAQwAAAABdIgUQGwwBCyACQQEQDSEFCyAAIAAoAiBBCGs2AiALIAAoAgQEQCABQwAAgL9DAACAPyAFGzgCAAtBASEKIAdFDQEgByABKgIAOAIAQQEPCyAAKAIYIhRBAEohCwJAIAVFBEAgBSEJDAELIAlFBEAgBSEJDAELAkAgFEEASg0AIARBAUoNACANQQFxRSAUQQBHcQ0AIAUhCQwBCyAJIAUgAkECdBAIGgsgFEEAIAsbIRAgFEEBTgRAA0ACQCAVBEAgDEEfRg0BQQEgDHQiDkEBdCESIAIgDHUiE0EBdSIFQQEgBUEBShshEUEAIQsDQEEAIQUgE0ECTgRAA0AgASAFIBJsIAtqQQJ0aiIPIA8qAgBD8wQ1P5QiFyABIAVBAXRBAXIgDHQgC2pBAnRqIg8qAgBD8wQ1P5QiGJI4AgAgDyAXIBiTOAIAIAVBAWoiBSARRw0ACwsgC0EBaiILIA5HDQALCyAJRQ0AIAxBH0YNAEEBIAx0Ig5BAXQhEiACIAx1IhNBAXUiBUEBIAVBAUobIRFBACELA0BBACEFIBNBAk4EQANAIAkgBSASbCALakECdGoiDyAPKgIAQ/MENT+UIhcgCSAFQQF0QQFyIAx0IAtqQQJ0aiIPKgIAQ/MENT+UIhiSOAIAIA8gFyAYkzgCACAFQQFqIgUgEUcNAAsLIAtBAWoiCyAORw0ACwsgCkEPcUGAhgJqLQAAIApBBHVBgIYCai0AAEECdHIhCiAMQQFqIgwgEEcNAAsLIAQgEHUhDEEAIRMCQAJAIA0gEHQiDkEBcQ0AIBRBf0oNACAUIRIDQAJAIBVFDQAgDEEBSA0AIAxBAXQhDSAOQQF1IgVBASAFQQFKGyERQQAhCwNAQQAhBSAOQQJOBEADQCABIAUgDWwgC2pBAnRqIg8gDyoCAEPzBDU/lCIXIAEgBUEBdEEBciAMbCALakECdGoiDyoCAEPzBDU/lCIYkjgCACAPIBcgGJM4AgAgBUEBaiIFIBFHDQALCyALQQFqIgsgDEcNAAsLIAxBAXQhDQJAIAlFDQAgDEEBSA0AIA5BAXUiBUEBIAVBAUobIRFBACELA0BBACEFIA5BAk4EQANAIAkgBSANbCALakECdGoiDyAPKgIAQ/MENT+UIhcgCSAFQQF0QQFyIAxsIAtqQQJ0aiIPKgIAQ/MENT+UIhiSOAIAIA8gFyAYkzgCACAFQQFqIgUgEUcNAAsLIAtBAWoiCyAMRw0ACwsgE0EBaiETIA5BAXUhCyAKIAx0IApyIQogDkECcQ0CIBJBf0ghBSASQQFqIRIgDSEMIAshDiAFDQALDAELIA4hCyAMIQ0LIARBAUYhBAJAIA1BAkgNACAVBEAgASALIBB1IA0gEHQgBBA2CyAJRQ0AIAkgCyAQdSANIBB0IAQQNgsgACABIAIgAyANIAkgBiAIIAoQFCEKIAAoAgRFDQAgDUECTgRAQQAhBSMAIgAhEiAAIAsgEHUiCSANIBB0IgZsIhVBAnRBD2pBcHFrIgwkAAJAIARFBEAgBkEBSA0BIAlBfnEhAyAJQQFxIREDQAJAIAlBAUgNACAFIAlsIQ5BACEEIAMhACAJQQFHBEADQCAMIAQgBmwgBWpBAnRqIAEgBCAOakECdGoqAgA4AgAgDCAEQQFyIg8gBmwgBWpBAnRqIAEgDiAPakECdGoqAgA4AgAgBEECaiEEIABBAmsiAA0ACwsgEUUNACAMIAQgBmwgBWpBAnRqIAEgBCAOakECdGoqAgA4AgALIAVBAWoiBSAGRw0ACwwBCyAGQQFIDQAgBkECdEG4hgJqIREgCUF+cSEDIAlBAXEhDwNAAkAgCUEBSA0AIBEgBUECdGooAgAgCWwhDkEAIQQgAyEAIAlBAUcEQANAIAwgBCAGbCAFakECdGogASAEIA5qQQJ0aioCADgCACAMIARBAXIiFiAGbCAFakECdGogASAOIBZqQQJ0aioCADgCACAEQQJqIQQgAEECayIADQALCyAPRQ0AIAwgBCAGbCAFakECdGogASAEIA5qQQJ0aioCADgCAAsgBUEBaiIFIAZHDQALCyABIAwgFUECdBAIGiASJAALAkAgE0UEQCANIQAMAQtBACEOA0AgC0EBdCELIAogDUEBdSIAdiEDIA1BAk4EQCANQX5xIQQgC0EBdSIFQQEgBUEBShshBkEAIQkDQEEAIQUgC0ECTgRAA0AgASAEIAVsIAlqQQJ0aiINIA0qAgBD8wQ1P5QiCCABIAVBAXRBAXIgAGwgCWpBAnRqIg0qAgBD8wQ1P5QiF5I4AgAgDSAIIBeTOAIAIAVBAWoiBSAGRw0ACwsgCUEBaiIJIABHDQALCyADIApyIQogACENIA5BAWoiDiATRw0ACwtBACEMIBRBAEoEQANAIApBkIYCai0AACEKIAxBH0cEQEEBIAx0IgNBAXQhBCACIAx1IgZBAXUiBUEBIAVBAUobIQ1BACEJA0BBACEFIAZBAk4EQANAIAEgBCAFbCAJakECdGoiCyALKgIAQ/MENT+UIgggASAFQQF0QQFyIAx0IAlqQQJ0aiILKgIAQ/MENT+UIheSOAIAIAsgCCAXkzgCACAFQQFqIgUgDUcNAAsLIAlBAWoiCSADRw0ACwsgDEEBaiIMIBBHDQALCyAAIBB0IQMCQCAHRQ0AIAJBAUgNACACt5+2IQggAkEDcSELQQAhBSACQQFrQQNPBEAgAkF8cSEAA0AgByAFQQJ0IgJqIAEgAmoqAgAgCJQ4AgAgByACQQRyIgRqIAEgBGoqAgAgCJQ4AgAgByACQQhyIgRqIAEgBGoqAgAgCJQ4AgAgByACQQxyIgJqIAEgAmoqAgAgCJQ4AgAgBUEEaiEFIABBBGsiAA0ACwsgC0UNAANAIAcgBUECdCIAaiAAIAFqKgIAIAiUOAIAIAVBAWohBSALQQFrIgsNAAsLIApBfyADdEF/c3EhCgsgCgs/AQF/IAAoAhRBA3QgACgCHCIAZyIBQQN0aiAAQRAgAWt2IgAgAEEMdiIAQQJ0QZC9AWooAgBLayAAa0H4AWsL30cDLX8BfQF8IwBBwAFrIgckACAHIg1BADYCiAFBfiEHAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgwiJkEybSIjQQN1IiAgBEoNACAAKAIAITEgACgCBCEOICNBAnUhHyAjQQF1IQwgBCAmQRltQQNsIgcgBCAHSBshBwJ/An8CQAJAAkAgDQJ/AkACQAJAAkACQAJAAkAgAkEBTARAIAcgACgCQCIBIAEgB0obIQcMAQsgAQ0BCyAAKAI8IgRFBEAgACgCCCAHbCIAQQFIDQ0gA0EAIABBAnQQCRoMDQsgByAjSgRAIAchBANAIABBAEEAIAMgBCAjIAQgI0gbQQAQECIBQQBIBEAgASEHDA8LIAMgACgCCCABbEECdGohAyAEIAFrIgRBAEoNAAsMDQsgByAjTg0BQQEhHiAHIAxKBEAgDCESDAQLIARB6AdGBEBBACEBQegHIQQgByESDAYLIB8gByAHIAxIGyAHIAcgH0obIRIMAwsgACgCNCEqIAAoAjghBCAAKAJAIRIgDUGQAWogASACEENBASEtIAAoAjwiBkEBSARAQQEhHgwECwJAAkACQCAEQeoHRw0AIAZB6gdGDQAgACgCREUNAQsgBEHqB0YEQEHqByEEQQEhHgwGCyAGQeoHRg0BQQEhHgwFCyAEQeoHRg0CCyAAKAIIIB9sIR5BASEkDAMLIARB6gdHBEBBASEeQQAhASAHIRIMBAsgDUEQayIhIiskAEEBIR4gByESQQAhAUEBISkMBQsgDSAAKAIIIB9sQQJ0QQ9qQXBxayIJIgwkACAAQQBBACAJIB8gEiASIB9KG0EAEBAaIAcgEkghBEF/IAQNCBogDEEQayIhIiskAEEBISRBASEeQQEhKQwEC0EAIQELIAcgEkghBkF/IAYNBhpB6gchIkEBISlBASAEQeoHRg0BGgtBACEpIAQhIiAAKAIIIAwgEiAMIBJKG2wLQQF0QQ9qQXBxayIhIiskACAiQeoHRyIuDQELIAVFIQxBACEuQeoHISIMAQsgACAOaiEIIAAoAjxB6gdGBEAgCBA7GgsgACASQegHbCAAKAIMbSIEQQogBEEKShs2AiACQCAtBEAgACAAKAIwNgIUIAAgIkHoB0YEfyAqQc0IayIEQQNPDQIgBEGgH2xBwD5qBUGA/QALNgIcCyAAQRBqIQ4gBUEBdEEBIAEbIREgEkEBdCEyICEhBANAAkACfyAZRSEJIA1BkAFqIRwgBCEMIAAoAiwaQQAhHUEAIS8jAEGQBWsiFSQAIBUiEEEANgKMBSAQQgA3A4AFAkACQAJAAkACQCAOKAIEIgtBAWsiB0ECSQRAAkAgCUUNACALQQdxIQ9BACEGIAdBB08EQCALQXhxIQkDQCAIIAZBqCFsakEANgLUEiAIIAZBAXJBqCFsakEANgLUEiAIIAZBAnJBqCFsakEANgLUEiAIIAZBA3JBqCFsakEANgLUEiAIIAZBBHJBqCFsakEANgLUEiAIIAZBBXJBqCFsakEANgLUEiAIIAZBBnJBqCFsakEANgLUEiAIIAZBB3JBqCFsakEANgLUEiAGQQhqIQYgCUEIayIJDQALCyAPRQ0AA0AgCCAGQaghbGpBADYC1BIgBkEBaiEGIA9BAWsiDw0ACwsgCCgC4EIgC0gEQCAIQaghahAmIR0gDigCBCELCwJAIAtBAUcNACAIKALgQkECRw0AIA4oAgwgCCgCjBJB6AdsRiEvCwJAAkAgCCgC1BINACALQQFIDQBBACEGA0BBAiELQQEhCQJAAkACQAJAAkAgDigCECIHDhUEAQEBAQEBAQEBBAEBAQEBAQEBAQIACyAHQShGDQIgB0E8Rw0AQQQhC0EDIQkMAwtBrskAQZ/JAEGSARAGAAtBBCELDAELQQQhC0ECIQkLIAggBkGoIWxqIhMgCzYClBIgEyAJNgLYEiAOKAIMQQp1IgdBD0sNAkEBIAd0QYCRAnFFDQICfyAOKAIIIRZBACEJQQAhGgJAIAdBAWoiD0EQSw0AQQEgD3RBgKIEcUUNAAJAAkAgEygClBIiB0ECaw4DAQABAAtBwzVBrTVBLBAGAAsgEyAPQQVsNgKcEiAHIA9BgIAUbEEQdmwhFwJAAkACQCAPIBMoAowSRgRAIBMoApASIBZGDQELAn8CQCATQYATakEAQawCEAkiCwJ/AkAgD0HoB2wiG0HAPkYNACAbQYD9AEYNACAbQeDdAEcNAgsCQCAWQf/8AEwEQCAWQcA+Rg0BIBZB4N0ARg0BDAMLIBZBgP0ARg0AIBZBwLsBRg0AIBZBgPcCRw0CCyAbQQx2QQVsIBZBDHYgFkGA/QBKayAWQcC7AUp2akH0FWosAAALNgKkAiALIBZB//8DcUHoB242AqACIAsgG0H//wNxQegHbiIHNgKcAiALIAdBCmw2AowCAkAgFiAbSgRAQQEhCSAWIBtBAXRGBEAgC0EBNgKIAkEAIQkMAgsgC0ECNgKIAgwBCyAWIBtIBEAgC0EDNgKIAiAWQQJ0IgkgG0EDbEYEQCALQZASNgKoAiALQpKAgIAwNwKUAkEAIQkMAgsgFkEDbCIHIBtBAXRGBEAgC0HQEjYCqAIgC0KSgICAIDcClAJBACEJDAILIBsgFkEBdEYEQCALQYATNgKoAiALQpiAgIAQNwKUAkEAIQkMAgsgByAbRgRAIAtBoBM2AqgCIAtCpICAgBA3ApQCQQAhCQwCCyAJIBtGBEAgC0HQEzYCqAIgC0KkgICAEDcClAJBACEJDAILIBsgFkEGbEYEQCALQYAUNgKoAiALQqSAgIAQNwKUAkEAIQkMAgtBxhVB2hVBmgEQBgALIAtBADYCiAILIBsgCXQhGCAWQRB0QRB1IRQgFkEPdkEBakEBdiEKIBsgCUEOcnQgFm1BAnQhCQNAIAkiB0EBaiEJIAdBEHUgFGwgByAKbGogB0H//wNxIBRsQRB1aiAYSA0ACyALIAc2ApACQQAMAQtBxhVB2hVB5QAQBgALIQkgEyAWNgKQEiATKAKMEiAPRw0BC0EBIRogFyATKAKYEkYNAQsgE0HSF0HpFyATKAKUEkEERiIHG0GwF0HdFyAHGyAPQQhGGzYC0BIgGkUEQCATIA9BFGw2AqASIBNB6CJBtDMgD0F7cUEIRiIHGzYCrBUgE0EKQRAgBxs2AqQSQeA0IQsCQAJAAkAgD0EMaw4FAQAAAAIAC0HRNCELIA9BCEYNAUGaNkGtNUHZABAGAAtB2jQhCwsgE0EBNgLIEiATIAs2AswSIBNBADYCxCAgE0EKOgCIEiATQeQANgKEEiATQYQKakEAQYAIEAkaCyATIBc2ApgSIBMgDzYCjBILIAkMAQtB7zRBrTVBKxAGAAsgHWohHSAGQQFqIgYgDigCBCILSA0ACwtBAiEGAkAgDigCACIHQQJHBEAgByEGDAELIAtBAkcNACAIKALcQkEBRwRAQQIhCyAIKALgQkEBRw0BCyAIQQA2AthCIAhBADYC0EIgCEGoNGogCEGAE2pBrAIQCBogDigCBCELIA4oAgAhBgsgCCALNgLgQiAIIAY2AtxCQbh+IQkgDigCCEHAPmtBwLgCSw0GAkAgEUEBRg0AIAgoAtQSDQACQCALQQFIDQBBACEJA0BBACEGIAggCUGoIWxqIgooAtgSQQBKBEAgCkHYEmohBwNAIAogBkECdGpB5BJqIBxBARAKNgIAIAZBAWoiBiAHKAIASA0ACwsgCiAcQQEQCjYC8BIgCUEBaiIJIA4oAgQiC0gNAAtBACEHIAtBAEwNAANAIAggB0GoIWxqIhdCADcC9BIgF0H8EmpBADYCAAJAIBcoAvASRQ0AIBdB9BJqIRQgFygC2BIiCUEBRgRAIBRBATYCAAwBCyAcIAlBAnRBoDRqKAIAQQgQByEJIBdB2BJqKAIAIgpBAUgNACAJQQFqIRggCkEDcSEPQQAhBiAKQQFrQQNPBEAgCkF8cSEKA0AgFCAGQQJ0aiAYIAZ2QQFxNgIAIBQgBkEBciIJQQJ0aiAYIAl2QQFxNgIAIBQgBkECciIJQQJ0aiAYIAl2QQFxNgIAIBQgBkEDciIJQQJ0aiAYIAl2QQFxNgIAIAZBBGohBiAKQQRrIgoNAAsLIA9FDQADQCAXIAZBAnRqQfQSaiAYIAZ2QQFxNgIAIAZBAWohBiAPQQFrIg8NAAsLIAdBAWoiByAOKAIEIgtIDQALCyARDQAgCCgC2BIiBkEBSA0AIAhBnDRqIRhBACEJA0AgC0EBTgRAIAlBAWshCiAYIAlBAnQiBmohB0EAIQ8DQCAIIA9BqCFsaiIUIAZqQfQSaigCAARAAkAgDw0AIAtBAkcNACAcIBBBgAVqECQgBygCAA0AIBwgEEGMBWoQQQsgFCAcIAlBAQJ/IAkEQEECIBQgCkECdGpB9BJqKAIADQEaC0EACxA/IBwgECAUQc0VaiwAACAUQc4VaiwAACAUKAKYEhA9IA4oAgQhCwsgD0EBaiIPIAtIDQALIAgoAtgSIQYLIAlBAWoiCSAGSA0ACwsgC0ECRw0FAkACQAJAIBEOAwACAQILIBwgEEGABWoQJCAIIAgoAtQSQQJ0akGMNGooAgBFDQUMBgsgCCAIKALUEkECdGpB9BJqKAIAQQFGDQMLIBAgCC4B0EI2AoAFIBAgCC4B0kI2AoQFDAULQa7JAEGfyQBBmAEQBgALQcTIAEGfyQBB6wAQBgALIBwgEEGABWoQJCAIIAgoAtQSQQJ0akGcNGooAgANAQsgHCAQQYwFahBBDAELIBBBADYCjAULAkAgDigCBCIGQQJHDQAgECgCjAUNAEECIQYgCCgC5EJBAUcNACAIQawrakEAQYAIEAkaIAhBADYC7EEgCEEKOgCwMyAIQeQANgKsMyAIQQE2AvAzIA4oAgQhBgtBASELIBACfyAGIA4oAgxsIA4oAgAgDigCCGxOIhtFBEAgDCEHIAhBmBJqDAELIBAgCCgCmBJBAmogBmxBAXRBD2pBcHFrIgciFSQAIAhBmBJqCygCAEEBdCAHakEEaiInNgIEAkACQCARRQRAIBAoAowFRSELDAELIAgoAuRCRQ0AIA4oAgQhBkEAIQsgEUECRw0BIAZBAkcNASAIIAgoAvwzQQJ0akGcNGooAgBBAUYhCwsgDigCBCEGCwJAAkAgBkEBSA0AIAgoAtQSIglBAEpBAXQhDwJAIAlBAUgNACARQQJHDQAgCUECdCAIakHwEmooAgBBAEdBAXQhDwsgCCAcIAdBBGogEEGIBWogESAPEDwhCkEBIQYgDigCBCEJIAggCCgC1BJBAWo2AtQSIAogHWohHSAJQQJIDQADQAJAIAsEQCAIIAZBqCFsaiAcIBAgBkECdGooAgBBBGogEEGIBWogEQJ/QQAgCCgC1BIgBmsiCUEBSA0AGiARQQJGBEAgCCAGQaghbGogCUECdGpB8BJqKAIAQQBHQQF0DAELQQFBAiAIKALkQhsLEDwgHWohHQwBCyAQIAZBAnRqKAIAQQRqQQAgECgCiAVBAXQQCRoLIAggBkGoIWxqIgkgCSgC1BJBAWo2AtQSIAZBAWoiBiAOKAIEIglIDQALIA4oAgBBAkcNACAJQQJHDQAgCCgCjBIhCiAQKAKIBSEoIAcgCEHQwgBqIiUoAQQ2AQAgJyAlKAEINgEAICUgByAoQQF0IglqKAEANgEEICUgCSAnaigBADYBCEGAgAQgCkEDdCIJbSEGIBAoAoQFISwgECgCgAUhEyAKQQFOBEAgBkEQdEEQdSIGICwgJS8BAiIWa0EQdEEQdWxBD3VBAWpBAXUhHCAGIBMgJS8BACILa0EQdEEQdWxBD3VBAWpBAXUhDyAJQQEgCUEBShshGkEAIQoDQCAnIApBAWoiBkEBdCIXaiIUQf//ASAWIBxqIhZBEHRBEHUiGCAHIBdqLgEAIhdBBXVsIBQuAQBBCHRqIBdBC3RBgPADcSAYbEEQdWogCyAPaiILQRB0QRB1IhggByAKQQF0aiIKLgEEIAouAQBqIBdBAXRqIgpBB3VsaiAKQQl0QYD8A3EgGGxBEHVqIhhBB3VBAWpBAXUiCkGAgH4gCkGAgH5KGyAYQf/+/wNKGzsBACAGIgogGkcNAAsLIAkgKEgEQCAsQRB0QRB1IRcgE0EQdEEQdSEUA0AgCUEBdCEYICcgCUEBaiIJQQF0IgpqIgZB//8BIAcgCmouAQAiCkEFdSAXbCAGLgEAQQh0aiAKQQt0QYDwA3EgF2xBEHVqIAcgGGoiBi4BBCAGLgEAaiAKQQF0aiIGQQd1IBRsaiAGQQl0QYD8A3EgFGxBEHVqIgpBB3VBAWpBAXUiBkGAgH4gBkGAgH5KGyAKQf/+/wNKGzsBACAJIChHDQALCyAlICw7AQIgJSATOwEAAkAgKEEBSA0AQQEhCQNAIAcgCUEBdCIKaiIGIAYuAQAiFCAKICdqIhguAQAiCmoiBkH//wEgBkH//wFIGyIGQYCAfiAGQYCAfkobOwEAIBggFCAKayIGQf//ASAGQf//AUgbIgZBgIB+IAZBgIB+Shs7AQAgCSAoRg0BIAlBAWohCQwACwALIBAoAogFIQsMAQsgByAIKALUQjYBACAIIAcgECgCiAUiC0EBdGooAQA2AtRCCyANIA4oAgggC2wgCC4BjBJB6AdsbSIJNgKMASAVIAlBASAOKAIAIhdBAkYiGBtBAXRBD2pBcHFrIgoiCSQAIA4oAgQhBiAbRQRAIAkgCCgCmBIiFUECaiAGbEEBdCIJQQ9qQXBxayIHJAAgECAHIAwgCRAIIgkgFUEBdGpBBGo2AgQgECAJNgIACyAKIAwgGBshGgJAIBcgBiAGIBdKG0EBSA0AQQAhCiAHIQYDQCAIIApBqCFsakGAE2ogGiAGQQJqIAsQRCEYAkAgDigCACIXQQJHDQAgDSgCjAEiFUEBSA0AIBVBA3EhCUEAIQYgFUEBa0EDTwRAIBVBfHEhDwNAIAwgBkEBdCIUIApqQQF0aiAUIBpqLwEAOwEAIAwgFEECciIVIApqQQF0aiAVIBpqLwEAOwEAIAwgFEEEciIVIApqQQF0aiAVIBpqLwEAOwEAIAwgFEEGciIVIApqQQF0aiAVIBpqLwEAOwEAIAZBBGohBiAPQQRrIg8NAAsLIAlFDQADQCAMIAZBAXQiFSAKakEBdGogFSAaai8BADsBACAGQQFqIQYgCUEBayIJDQALCyAYIB1qIR0gCkEBaiIKIBcgDigCBCIGIAYgF0obTg0BIBAgCkECdGooAgAhBiAQKAKIBSELDAALAAsCQAJAAkAgF0ECRw0AIAZBAUcNACAvDQEgDSgCjAEiB0EBSA0AIAdBA3EhD0EAIQogB0EBa0EDTwRAIAdBfHEhCwNAIAwgCkECdCIHQQJyaiAHIAxqLwEAOwEAIAwgB0EGcmogDCAHQQRyai8BADsBACAMIAdBCnJqIAwgB0EIcmovAQA7AQAgDCAHQQ5yaiAMIAdBDHJqLwEAOwEAIApBBGohCiALQQRrIgsNAAsLIA9FDQADQCAMIApBAnQiB0ECcmogByAMai8BADsBACAKQQFqIQogD0EBayIPDQALCyAdIQkMAQsgCEGoNGogGiAHQQJqIBAoAogFEEQgHWohCSANKAKMASIHQQFIDQAgB0EDcSEKQQAhBiAHQQFrQQNPBEAgB0F8cSELA0AgDCAGQQJ0QQJyaiAaIAZBAXRqLwEAOwEAIAwgBkEBciIHQQJ0QQJyaiAaIAdBAXRqLwEAOwEAIAwgBkECciIHQQJ0QQJyaiAaIAdBAXRqLwEAOwEAIAwgBkEDciIHQQJ0QQJyaiAaIAdBAXRqLwEAOwEAIAZBBGohBiALQQRrIgsNAAsLIApFDQADQCAMIAZBAnRBAnJqIBogBkEBdGovAQA7AQAgBkEBaiEGIApBAWsiCg0ACwtBACEGIA4gCCgCxCBBAkYEfyAIKAKMEkEIa0F8cUHEyQBqKAIAIAgoAoQSbAVBAAs2AhQCQCARQQFGBEAgCCgC4EIiB0EBSA0BIAdBB3EhCiAHQQFrQQdPBEAgB0F4cSEHA0AgCCAGQaghbGpBCjoAiBIgCCAGQQFyQaghbGpBCjoAiBIgCCAGQQJyQaghbGpBCjoAiBIgCCAGQQNyQaghbGpBCjoAiBIgCCAGQQRyQaghbGpBCjoAiBIgCCAGQQVyQaghbGpBCjoAiBIgCCAGQQZyQaghbGpBCjoAiBIgCCAGQQdyQaghbGpBCjoAiBIgBkEIaiEGIAdBCGsiBw0ACwsgCkUNAQNAIAggBkGoIWxqQQo6AIgSIAZBAWohBiAKQQFrIgoNAAsMAQsgCCAQKAKMBTYC5EILCyAQQZAFaiQAIAlFCwRAIA0oAowBIgcgACgCCGwhFQwBC0F9IBFFDQUaIA0gEjYCjAEgACgCCCIHIBJsIhVBAU4EQCAEQQAgByAybBAJGgsgEiEHCyAEIBVBAXRqIQQgByAZaiIZIBJIDQALQQEhDEEAIQlBESEVIAVFIgQgLXFFBEAgBCEMDAILIA0oAqQBIA0oAqwBZ2pBFEEAIAAoAjhB6QdGG2pBD2sgAkEDdEoNAQJAICJB6QdGBEAgDUGQAWpBDBAKIgVFBEBB6QchIgwECyANQZABakEBEAohGSANQZABakGAAhAWQQJqIQQgDSgCrAFnIQdB6QchIiANKAKkASEGDAELQQEhBSANQZABakEBEAohGSACIA0oAqQBIgYgDSgCrAFnIgdqQRlrQQN1ayEECyANIA0oApQBQQAgBCAGIAdqQSBrIAIgBGsiAkEDdEoiBBsiMGs2ApQBQQAgAiAEGyECQQAgBSAEGwwCCyAAQYD9ADYCHEHDnAJBhZQCQYUDEAYAC0EAIRlBAAsiCkUiDiAkcSEdICtBASAeIAobQQJ0QQ9qQXBxayIEIgUkAAJAIC5FDQAgHUUNACAAQQBBACAEIB8gEiASIB9KG0EAEBAaIAQhCQsgACAxaiEIQQ0hBAJAAkACQAJAAkACQCAqQc0Iaw4FAwICAAEEC0ETIQQMAgtBFSEEDAELQREhBAsgDSAENgKAASAIQZzOACANQYABahAMRQ0BQdecAkGFlAJB6wMQBgALICoNDQsgDSAAKAIwNgJwIAhBmM4AIA1B8ABqEAwNAgJAIApFBEBBACEeIBlBAEchJCAFQRBrIgckAAwBCyAFIAAoAgggH2xBAnRBD2pBcHFrIgckACAZRQRAQQAhHkEAISQMAQsgDUEANgJgIAhBms4AIA1B4ABqEAwNBCAIIAEgAmogMCAHIB9BABAXGiANIA1BiAFqNgJQQQEhHkEBISQgCEG/HyANQdAAahAMDQULIA0gFTYCQCAIQZrOACANQUBrEAwNBQJ/ICJB6AdHBEACQCAiIAAoAjwiBEYNACAEQQFIDQAgACgCRA0AIAhBvB9BABAMDQkLIAggAUEAIAwbIAIgAyAjIBIgEiAjShsgDUGQAWoQFwwBCyANQf//AzsBhAEgACgCCCASbCIEQQFOBEAgA0EAIARBAnQQCRoLAkAgACgCPEHpB0cNACAeBEAgACgCRA0BCyANQQA2AjAgCEGazgAgDUEwahAMDQkgCCANQYQBakECIAMgIEEAEBcaC0EACyEVAkAgKQ0AIAAoAgggEmwiEUEBSA0AQQAhBCARQQFHBEAgEUF+cSEMA0AgAyAEQQJ0aiIFIAUqAgAgISAEQQF0ai4BALJDAAAAOJSSOAIAIAMgBEEBciIGQQJ0aiIFIAUqAgAgISAGQQF0ai4BALJDAAAAOJSSOAIAIARBAmohBCAMQQJrIgwNAAsLIBFBAXFFDQAgAyAEQQJ0aiIFIAUqAgAgISAEQQF0ai4BALJDAAAAOJSSOAIACyANIA1BhAFqNgIgIAhBn84AIA1BIGoQDA0IIA0oAoQBKAI8IRACQCAOICRyDQAgCEG8H0EAEAwNCiANQQA2AhAgCEGazgAgDUEQahAMDQtBACEFIAggASACaiAwIAcgH0EAEBcaIA0gDUGIAWo2AgAgCEG/HyANEAwNDEGA9wIgACgCDG0hCCAAKAIIIiFBAUgNACAHICAgIWxBAnRqIREgAyAhIBIgIGtsQQJ0aiEOICZBkANIIQYDQEEAIQQgBkUEQANAIA4gBCAhbCAFakECdCIMaiIBIBAgBCAIbEECdGoqAgAiMyAzlCIzIAwgEWoqAgCUQwAAgD8gM5MgASoCAJSSOAIAIARBAWoiBCAgRw0ACwsgBUEBaiIFICFHDQALCwJAIB5FDQAgACgCCCIIQQFIDQAgIEEBICBBAUobIgRB/P///wdxIQwgBEEDcSEBQQAhGSAmQZADSCERIARBAWtBA0khDgNAAkAgEQ0AQQAhBCAMIQUgDkUEQANAIAMgBCAIbCAZakECdCIGaiAGIAdqKgIAOAIAIAMgBEEBciAIbCAZakECdCIGaiAGIAdqKgIAOAIAIAMgBEECciAIbCAZakECdCIGaiAGIAdqKgIAOAIAIAMgBEEDciAIbCAZakECdCIGaiAGIAdqKgIAOAIAIARBBGohBCAFQQRrIgUNAAsLIAEiBUUNAANAIAMgBCAIbCAZakECdCIGaiAGIAdqKgIAOAIAIARBAWohBCAFQQFrIgUNAAsLIBlBAWoiGSAIRw0AC0GA9wIgACgCDG0hESAIQQFIDQAgAyAIICBsQQJ0IgFqIQ4gASAHaiEGQQAhBSAmQZADSCEMA0BBACEEIAxFBEADQCAOIAQgCGwgBWpBAnQiB2oiASAQIAQgEWxBAnRqKgIAIjMgM5QiMyABKgIAlEMAAIA/IDOTIAYgB2oqAgCUkjgCACAEQQFqIgQgIEcNAAsLIAVBAWoiBSAIRw0ACwsCQCAdRQ0AIAAoAgghESASIB9OBEACQCARICBsIgZBAUgNACAGQQNxIQdBACEEIAZBAWtBA08EQCAGQXxxIQUDQCADIARBAnQiDGogCSAMaioCADgCACADIAxBBHIiAWogASAJaioCADgCACADIAxBCHIiAWogASAJaioCADgCACADIAxBDHIiAWogASAJaioCADgCACAEQQRqIQQgBUEEayIFDQALCyAHRQ0AA0AgAyAEQQJ0IgFqIAEgCWoqAgA4AgAgBEEBaiEEIAdBAWsiBw0ACwtBgPcCIAAoAgxtIQ4gEUEBSA0BIAMgBkECdCIBaiEGIAEgCWohCUEAIQUgJkGQA0ghDANAQQAhBCAMRQRAA0AgBiAEIBFsIAVqQQJ0IgdqIgEgECAEIA5sQQJ0aioCACIzIDOUIjMgASoCAJRDAACAPyAzkyAHIAlqKgIAlJI4AgAgBEEBaiIEICBHDQALCyAFQQFqIgUgEUcNAAsMAQtBgPcCIAAoAgxtIQYgEUEBSA0AQQAhBSAmQZADSCEMA0BBACEEIAxFBEADQCADIAQgEWwgBWpBAnQiB2oiASAQIAQgBmxBAnRqKgIAIjMgM5QiMyABKgIAlEMAAIA/IDOTIAcgCWoqAgCUkjgCACAEQQFqIgQgIEcNAAsLIAVBAWoiBSARRw0ACwsCQCAAKAIoIgRFDQAgACgCCCEBIASyQy0VKjqUu0TvOfr+Qi7mP6IQGiE0IAEgEmwiAUEBSA0AIDS2ITMgAUEDcSEZQQAhBCABQQFrQQNPBEAgAUF8cSEFA0AgAyAEQQJ0IgdqIgEgASoCACAzlDgCACADIAdBBHJqIgEgASoCACAzlDgCACADIAdBCHJqIgEgASoCACAzlDgCACADIAdBDHJqIgEgASoCACAzlDgCACAEQQRqIQQgBUEEayIFDQALCyAZRQ0AA0AgAyAEQQJ0aiIBIAEqAgAgM5Q4AgAgBEEBaiEEIBlBAWsiGQ0ACwsgDSgCiAEhAyANKAKsASEBIAAgIjYCPCAAICRFIApBAEdxNgJEIABBACABIANzIAJBAkgbNgJUIBUgEiAVQQBIGwshBwsgDUHAAWokACAHDwtB3p0CQYWUAkHtAxAGAAtB/Z4CQYWUAkH2AxAGAAtB+J8CQYWUAkH5AxAGAAtBiaECQYWUAkH9AxAGAAtBlqICQYWUAkGEBBAGAAtB/Z4CQYWUAkGTBBAGAAtB3aICQYWUAkGlBBAGAAtBlqICQYWUAkGsBBAGAAtB/Z4CQYWUAkGtBBAGAAtB+J8CQYWUAkGwBBAGAAtBw5wCQYWUAkHoAxAGAAtSAQJ/QeSmAigCACIBIABBA2pBfHEiAmohAAJAIAJBACAAIAFNGw0AIAA/AEEQdEsEQCAAEAJFDQELQeSmAiAANgIAIAEPC0HopgJBMDYCAEF/C28BAX8jAEGAAmsiBSQAAkAgAiADTA0AIARBgMAEcQ0AIAUgAUH/AXEgAiADayICQYACIAJBgAJJIgEbEAkaIAFFBEADQCAAIAVBgAIQEyACQYACayICQf8BSw0ACwsgACAFIAIQEwsgBUGAAmokAAubAgEDfyAALQAAQSBxRQRAAkAgASEDAkAgAiAAIgEoAhAiAAR/IAAFAn8gASABLQBKIgBBAWsgAHI6AEogASgCACIAQQhxBEAgASAAQSByNgIAQX8MAQsgAUIANwIEIAEgASgCLCIANgIcIAEgADYCFCABIAAgASgCMGo2AhBBAAsNASABKAIQCyABKAIUIgVrSwRAIAEgAyACIAEoAiQRAQAaDAILAn8gASwAS0F/SgRAIAIhAANAIAIgACIERQ0CGiADIARBAWsiAGotAABBCkcNAAsgASADIAQgASgCJBEBACAESQ0CIAMgBGohAyABKAIUIQUgAiAEawwBCyACCyEAIAUgAyAAEAgaIAEgASgCFCAAajYCFAsLCwv1JwISfwd9IwBBIGsiECQAIBAgCDYCGCAQIAM2AhwgACgCCCILKAJkIAsoAmAgACgCDCALKAIIIAZBAWpsakEBdGouAQBqIgktAAAhCiAAKAIcIQsgACgCFCEPIAAoAgAhDAJAAkAgBkF/Rg0AIAJBA0gNACAJIApqLQAAQQxqIANODQAgASACQQF2IgNBAnRqIQkgBEEBRgRAIBAgCEEBcSAIQQF0cjYCGAsgACAQIAEgCSADIBBBHGogBEEBakEBdSIIIAQgBkEBayILQQAgEEEYahA1IBAoAhAhDyAQKAIIsiEcIBAoAgSyIRsgECgCFCEKIBAoAgwhAgJAIARBAkgNACAPQf//AHFFDQAgD0GBwABOBEAgAiACQQUgBmt1ayECDAELIAIgA0EDdEEGIAZrdWoiAkEfdSACcSECCyAcQwAAADiUIRwgG0MAAAA4lCEbIBAoAhwhBiAAIAAoAiAgCmsiCjYCICAFIANBAnRqQQAgBRshDCAGIAYgAmtBAm0iAiACIAZKGyICQQAgAkEAShsiAiAGIAJrIgZOBEAgACABIAMgAiAIIAUgCyAbIAeUIBAoAhgiARAUIAAgCSADIAAoAiAgCmsgAmoiAEEYa0EAIA8bQQAgAEEYShsgBmogCCAMIAsgHCAHlCABIAh1EBQgBEEBdXRyIQgMAgsgACAJIAMgBiAIIAwgCyAcIAeUIBAoAhgiCSAIdRAUIQwgACABIAMgACgCICAKayAGaiIAQRhrQQAgD0GAgAFHG0EAIABBGEobIAJqIAggBSALIBsgB5QgCRAUIAwgBEEBdXRyIQgMAQsgCiAKQQFqQQF2IgYgA0EBayIDIAYgCWotAABKIgobIg0gDSAGQQAgChsiCmpBAWpBAXYiBiADIAYgCWotAABKIg0bIg4gDiAGIAogDRsiCmpBAWpBAXYiBiADIAYgCWotAABKIg0bIg4gDiAGIAogDRsiCmpBAWpBAXYiBiADIAYgCWotAABKIg0bIg4gDiAGIAogDRsiCmpBAWpBAXYiBiADIAYgCWotAABKIg0bIg4gDiAGIAogDRsiDWpBAWpBAXYiBiADIAYgCWotAABKIg4bIQogBiANIA4bIgYEfyADIAYgCWotAABrBSADQQFqCyENIAAgACgCICAKIAYgDSAJIApqLQAAIANrShsiBgR/IAYgCWotAABBAWoFQQALIgprIgM2AiACQAJAIANBf0oNACAGQQFIDQADQCAAIAMgCmoiAzYCICAGQQFrIgZFBEAgACADNgIgDAMLIAAgAyAGIAlqLQAAQQFqIgprIgM2AiAgA0EASA0ACwsgBkUNACAGQQhOBEAgBkEHcUEIciAGQQN2QQFrdCEGCyAMBEACfyAEIQUgByEcIAAoAgQhFSAAKAIsGkMAAAAAIQcjACIAIRYCQCAGQQBKBEAgAkEBTA0BIAAgAkECdEEbakFwcWsiACQAIAEgAkEBIAUgBiAPECIgASEDIAAhASAGIQAjACIEIRcgBCACQQJ0QQ9qQXBxIgRrIggiCSQAIAkgBGsiESQAQQAhBCAIQQAgAkEBIAJBAUobIgxBAnQQCSENIAxBAWsiEwRAIAxB/v///wdxIQoDQCARIARBAnQiCGogAyAIaiIJKgIAIhtDAAAAAF02AgAgCSAbizgCACABIAhqQQA2AgAgESAIQQRyIghqIAMgCGoiCSoCACIbQwAAAABdNgIAIAkgG4s4AgAgASAIakEANgIAIARBAmohBCAKQQJrIgoNAAsLIAxBAXEEQCARIARBAnQiBGogAyAEaiIIKgIAIhtDAAAAAF02AgAgCCAbizgCACABIARqQQA2AgALIAJBAXUgAEgEQCAMQQNxIQoCQCATQQNJBEBBACEJQwAAAAAhGwwBCyAMQfz///8HcSEOQQAhCUMAAAAAIRsDQCAbIAMgCUECdCIEaioCAJIgAyAEQQRyaioCAJIgAyAEQQhyaioCAJIgAyAEQQxyaioCAJIhGyAJQQRqIQkgDkEEayIODQALCyAKBEADQCAbIAMgCUECdGoqAgCSIRsgCUEBaiEJIApBAWsiCg0ACwsgALJDzcxMP5JDAACAPyAbQ30dkCZeQQAgG0MAAIBCXRsEfSAbBSADQYCAgPwDNgIAIANBBGpBACACQQIgAkECShtBAnRBBGsQCRpDAACAPwuVlCEfQQAhBANAIAEgBEECdCIIagJ/IB8gAyAIaioCACIglI4iG4tDAAAAT10EQCAbqAwBC0GAgICAeAsiCTYCACAIIA1qIAmyIhsgG5I4AgAgHSAgIBuUkiEdIAAgCWshACAHIBsgG5SSIQcgBEEBaiIEIAxHDQALCwJAIAJBA2ogAEgEQCANKgIAIRsgASABKAIAIABqNgIAIAcgALIiByAHlJIgGyAHlJIhBwwBCyAAQQFIDQAgAkECIAJBAkobQQFrIgRBfnEhCCAEQQFxIRggAyoCACEgQQAhCiACQQNIIRkDQCAHQwAAgD+SIh8gDSoCAJIhGyAdICCSIgcgB5QhB0EBIQlBACEOIAghBCAZRQRAA0AgHyANIAlBAWoiGkECdCIUaioCAJIiISAfIA0gCUECdCISaioCAJIiHiAbIBsgHSADIBJqKgIAkiIbIBuUIhuUIAcgHpReIhIbIh4gHiAdIAMgFGoqAgCSIh4gHpQiHpQgISAbIAcgEhsiB5ReIhQbIRsgHiAHIBQbIQcgGiAJIA4gEhsgFBshDiAJQQJqIQkgBEECayIEDQALCyADIBgEfyAJIA4gGyAdIAMgCUECdCIEaioCAJIiGyAblJQgByAfIAQgDWoqAgCSlF4bBSAOC0ECdCIEaioCACEbIAQgDWoiCSAJKgIAIgdDAAAAQJI4AgAgASAEaiIEIAQoAgBBAWo2AgAgHyAHkiEHIB0gG5IhHSAKQQFqIgogAEcNAAsLIAxBAXEhBAJAIBNFBEBBACEJDAELIAxB/v///wdxIQpBACEJA0AgASAJQQJ0IgBqIgggCCgCAEEAIAAgEWooAgAiCGtzIAhqNgIAIAEgAEEEciIAaiIIIAgoAgBBACAAIBFqKAIAIgBrcyAAajYCACAJQQJqIQkgCkECayIKDQALCyAEBEAgASAJQQJ0IgBqIgQgBCgCAEEAIAAgEWooAgAiAGtzIABqNgIACyAXJAACQAJAIAZBAEoEQCACQQFMDQEgASACQQFrIgBBAnRqKAIAIgQgBEEfdSIIaiAIcyEIIARBH3YhCgNAIAIgAEEBayIEayIJIAggCCAJShtBAnRB0NoBaigCACAJIAggCCAJSBtBAnRqKAIAIApqIQogCCABIARBAnRqKAIAIgwgDEEfdSINaiANc2ohCCAMQX9MBEAgCiAIQQFqIgwgCSAIIAlIG0ECdEHQ2gFqKAIAIAkgDCAJIAxKG0ECdGooAgBqIQoLIABBAUohCSAEIQAgCQ0ACyALIAogBkEBaiIAIAIgAiAGSiIEG0ECdEHQ2gFqKAIAIAIgACAAIAJIG0ECdGooAgAgAiAGIAIgBkgbQQJ0QdDaAWooAgAgAiAGIAQbQQJ0aigCAGoQPgwCC0Gg2gFBt9oBQcsDEAYAC0GM2wFBt9oBQbwDEAYACyAVBEAgAkEDcSEAQwAAgD8gB5GVIByUIQdBACEEIAJBAWtBA08EQCACQXxxIQgDQCADIARBAnQiC2ogByABIAtqKAIAspQ4AgAgAyALQQRyIglqIAcgASAJaigCALKUOAIAIAMgC0EIciIJaiAHIAEgCWooAgCylDgCACADIAtBDHIiC2ogByABIAtqKAIAspQ4AgAgBEEEaiEEIAhBBGsiCA0ACwsgAARAA0AgAyAEQQJ0IghqIAcgASAIaigCALKUOAIAIARBAWohBCAAQQFrIgANAAsLIAMgAkF/IAUgBiAPECILQQEhDyAFQQJOBEAgAiAFbiIJQQEgCUEBShsiAEH8////B3EhAiAAQQNxIQMgAEEBa0EDSSEKQQAhD0EAIQgDQCAIIAlsIQZBACEEQQAhCyACIQAgCkUEQANAIAEgBEEDciAGakECdGooAgAgASAEQQJyIAZqQQJ0aigCACABIARBAXIgBmpBAnRqKAIAIAEgBCAGakECdGooAgAgC3JycnIhCyAEQQRqIQQgAEEEayIADQALCyADIgAEQANAIAEgBCAGakECdGooAgAgC3IhCyAEQQFqIQQgAEEBayIADQALCyALQQBHIAh0IA9yIQ8gCEEBaiIIIAVHDQALCyAWJAAgDwwCC0G0gwJB74MCQdICEAYAC0H5gwJB74MCQdMCEAYACyEIDAILAn8gASEJIAIhAyAPIQogBCEPIwAiACESAkAgBkEASgRAIANBAUwNASADQQNxIQIgACADQQJ0QQ9qQXBxayIIJABDAACAPwJ9IAghBSALIAYiAUEBaiIEIAMiACAAIAZKIgsbQQJ0QdDaAWooAgAgACAEIAAgBEobQQJ0aigCACAAIAYgACAGSBtBAnRB0NoBaigCACAAIAYgCxtBAnRqKAIAahAWIQwCQCAGQQBKBEAgAEECSA0BIABBAkcEQANAAn8gACILIAFMBEACQCALQQJ0Ig1B0NoBaigCACIOIA1qKAIAIAwgASIEQQJ0IA5qKAIEIhFBf0EAIAwgEU8bIhFxayIMSwRAA0AgAEEBayIAQQJ0QdDaAWooAgAgDWooAgAiEyAMSw0ADAILAAsDQCAEIgBBAWshBCAOIABBAnRqKAIAIhMgDEsNAAsLIAUgASARaiAAayARc0EQdEEQdSIBNgIAIBwgAbIiHCAclJIhHCAAIQEgDCATawwBCyALQQJ0IgQgAUEBaiIOQQJ0QdDaAWooAgBqKAIAIQACQCAMIAFBAnRB0NoBaigCACAEaigCACINSQ0AIAAgDE0NACAFQQA2AgAgDCANawwBCyAMIABBf0EAIAAgDE0bIgxxayENA0AgDSABIgBBAWsiAUECdEHQ2gFqKAIAIARqKAIAIhFJDQALIAUgDCAOaiAAayAMc0EQdEEQdSIANgIAIBwgALIiHCAclJIhHCANIBFrCyEMIAtBAWshACAFQQRqIQUgC0EDSg0ACwsgBSABIAwgAUEBdEEBciIATyIBayAMIABBf0EAIAEbIgFxayIEQQFqIgtBAXYiAGsgAXNBEHRBEHUiATYCACAFIAAgBCALQX5xQQFrQQAgABtrIgBrQQAgAGtzQRB0QRB1IgA2AgQgHCABsiIcIByUkiAAsiIcIByUkgwCC0Gg2gFBt9oBQdUDEAYAC0GQgwJBt9oBQdYDEAYAC5GVIAeUIQdBACEAIANBAWtBA08EQCADQXxxIQUDQCAJIABBAnQiAWogByABIAhqKAIAspQ4AgAgCSABQQRyIgRqIAcgBCAIaigCALKUOAIAIAkgAUEIciIEaiAHIAQgCGooAgCylDgCACAJIAFBDHIiAWogByABIAhqKAIAspQ4AgAgAEEEaiEAIAVBBGsiBQ0ACwsgAgRAA0AgCSAAQQJ0IgFqIAcgASAIaigCALKUOAIAIABBAWohACACQQFrIgINAAsLIAkgA0F/IA8gBiAKECJBASEEIA9BAk4EQCADIA9uIglBASAJQQFKGyIAQfz///8HcSEBIABBA3EhAyAAQQFrQQNJIQpBACEEQQAhBQNAIAUgCWwhBkEAIQBBACELIAEhAiAKRQRAA0AgCCAAQQNyIAZqQQJ0aigCACAIIABBAnIgBmpBAnRqKAIAIAggAEEBciAGakECdGooAgAgCCAAIAZqQQJ0aigCACALcnJyciELIABBBGohACACQQRrIgINAAsLIAMiAgRAA0AgCCAAIAZqQQJ0aigCACALciELIABBAWohACACQQFrIgINAAsLIAtBAEcgBXQgBHIhBCAFQQFqIgUgD0cNAAsLIBIkACAEDAILQbmEAkHvgwJB8wIQBgALQfaEAkHvgwJB9AIQBgALIQgMAQsgACgCBEUEQEEAIQgMAQsgECAIQX8gBHRBf3MiCHEiAzYCGCADRQRAQQAhCCABQQAgAkECdBAJGgwBCwJAAkACQAJAIAUEQCACQQFIDQMgAkEBcSELIAAoAighCCACQQFHDQFBACEGDAILIAJBAUgNAyACQQNxIQUgACgCKCEDAkAgAkEBa0EDSQRAQQAhBgwBCyACQXxxIQRBACEGA0AgASAGQQJ0IgtqIANBjczlAGxB3+a74wNqIgNBFHWyOAIAIAEgC0EEcmogA0GNzOUAbEHf5rvjA2oiA0EUdbI4AgAgASALQQhyaiADQY3M5QBsQd/mu+MDaiIDQRR1sjgCACABIAtBDHJqIANBjczlAGxB3+a74wNqIgNBFHWyOAIAIAZBBGohBiAEQQRrIgQNAAsLIAUEQANAIAEgBkECdGogA0GNzOUAbEHf5rvjA2oiA0EUdbI4AgAgBkEBaiEGIAVBAWsiBQ0ACwsgACADNgIoDAMLIAJBfnEhCkEAIQYDQCABIAZBAnQiBGogBCAFaioCAEMAAIA7QwAAgLsgCEGNzOUAbEHf5rvjA2oiCEGAgAJxG5I4AgAgASAEQQRyIgRqIAQgBWoqAgBDAACAO0MAAIC7IAhBjczlAGxB3+a74wNqIghBgIACcRuSOAIAIAZBAmohBiAKQQJrIgoNAAsLIAsEQCABIAZBAnQiBGogBCAFaioCAEMAAIA7QwAAgLsgCEGNzOUAbEHf5rvjA2oiCEGAgAJxG5I4AgALIAAgCDYCKAsgAyEICyABIAIgByAAKAIsECELIBBBIGokACAIC6gBAAJAIAFBgAhOBEAgAEQAAAAAAADgf6IhACABQf8PSARAIAFB/wdrIQEMAgsgAEQAAAAAAADgf6IhACABQf0XIAFB/RdIG0H+D2shAQwBCyABQYF4Sg0AIABEAAAAAAAAEACiIQAgAUGDcEoEQCABQf4HaiEBDAELIABEAAAAAAAAEACiIQAgAUGGaCABQYZoShtB/A9qIQELIAAgAUH/B2qtQjSGv6IL8AUBC38gAUEBSwRAAkAgAUEBayIIQYACTwRAIAAgACgCHCIDIAhBGCAIZ2siBXYiBEEBaiICbiIBNgIkIAAgACgCICIGIARBACAGIAFuQX9zIAJqIgQgAiAESRsiC2sgAWwiAmsiCTYCICAAIAEgAyACayALGyICNgIcIAJBgICABE0EQCAAKAIYIQMgACgCKCEEIAAoAhQhBiAAKAIEIQwDQCAAIAJBCHQiCjYCHCAAIAZBCGoiBjYCFEEAIQEgAyAMSQRAIAAgA0EBaiIHNgIYIAAoAgAgA2otAAAhASAHIQMLIAAgATYCKCAAIAEgBEEIdHJBAXZB/wFxIAlBCHRBgP7//wdxckH/AXMiCTYCICACQYGAAkkhByABIQQgCiECIAcNAAsLIAsgBXQhCiAAKAIMIQMCQCAFIAAoAhAiAU0EQCABIQYMAQsgACgCCCECIAAoAgQhBANAIAIgBE8Ef0EABSAAIAJBAWoiAjYCCCAAKAIAIAQgAmtqLQAAIAF0CyADciEDIAFBEUghByABQQhqIgYhASAHDQALCyAAIAYgBWs2AhAgACADIAV2NgIMIAAgACgCFCAFajYCFCADQX8gBXRBf3NxIApyIgUgCE0NASAAQQE2AiwgCA8LIAAgACgCHCIDIAFuIgI2AiQgACAAKAIgIgRBACAEIAJuQX9zIAFqIgQgASAESRsiBUF/cyABaiACbCIBayIJNgIgIAAgAiADIAFrIAUbIgI2AhwgAkGAgIAESw0AIAAoAhghAyAAKAIoIQQgACgCFCEGIAAoAgQhCANAIAAgAkEIdCIKNgIcIAAgBkEIaiIGNgIUQQAhASADIAhJBEAgACADQQFqIgc2AhggACgCACADai0AACEBIAchAwsgACABNgIoIAAgASAEQQh0ckEBdkH/AXEgCUEIdEGA/v//B3FyQf8BcyIJNgIgIAJBgYACSSEHIAEhBCAKIQIgBw0ACwsgBQ8LQa42QcY2QcsBEAYAC8ubAQNOfwx9AXwjAEHQAGsiHCQAIAAoAgghPyAcQQA2AgwgHEEANgIIIAAoAgwhLgJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAiDygCAEHQyQBGBEAgDygCBEH4AEcNASAPKAIYIgZBFk4NAiAPKAIIQQFrQQJPDQMgDygCDEEBa0ECTw0EIA8oAhBBAEwNBQJAAkAgDygCFCIADhIBAAAAAAAAAAAAAAAAAAAAAAEAC0GFjQJBh4sCQYMBEAYACyAAIAZODQYgDygCJCIAQX9MDQcgAA0IIA8oAjAiAEHRBU4NCSAAQeMATEEAIAAbDQogDygCPCIAQYAITg0LIABBDkxBACAAGw0MIA8oAkAiAEGACE4NDSAAQQ5MQQAgABsNDiAPKAJMIgBBA04NDyAAQX9MDRAgDygCUCIAQQNODREgAEF/TA0SDBMLQb+KAkGHiwJB9gAQBgALQZuLAkGHiwJB9wAQBgALQcCLAkGHiwJB+AAQBgALQeCLAkGHiwJBgAEQBgALQZmMAkGHiwJBgQEQBgALQeCMAkGHiwJBggEQBgALQbmNAkGHiwJBhAEQBgALQd+NAkGHiwJBhgEQBgALQf+NAkGHiwJBhwEQBgALQauOAkGHiwJBiQEQBgALQeeOAkGHiwJBigEQBgALQcCPAkGHiwJBiwEQBgALQfWPAkGHiwJBjAEQBgALQdOQAkGHiwJBjQEQBgALQYyRAkGHiwJBjgEQBgALQfKRAkGHiwJBjwEQBgALQZ+SAkGHiwJBkAEQBgALQcySAkGHiwJBkQEQBgALQf2SAkGHiwJBkgEQBgALQX8hBgJAIA8oAgAiGigCJCIIQQBIDQAgDyAaKAIEIk9BgBBqIhUgP2xBAnRqID9B4ABsakHcAGoiESAaKAIIIh1BA3QiAGoiJSAAaiIrIABqIVAgDygCECAEbCEeIA8oAhghFyAPKAIUIQAgGigCICEYIBooAiwhBwNAIB4gByAJdEcEQCAIIAlGIQQgCUEBaiEJIARFDQEMAgsLIAJB+wlLDQAgA0UNAEEAIQdBACAeayEMID9BASA/QQFKGyJHQQFxIQogR0EBayJABEAgR0H+////B3EhCyAPQdwAaiEQA0AgB0ECdCIGIBxBGGpqIBAgByAVbEECdGoiBDYCACAcQRBqIAZqIAQgDEECdCIIakGAQGs2AgAgB0EBciIEQQJ0IgYgHEEYamogECAEIBVsQQJ0aiIENgIAIBxBEGogBmogBCAIakGAQGs2AgAgB0ECaiEHIAtBAmsiCw0ACwsgCgRAIAdBAnQiBiAcQRhqaiAPIAcgFWxBAnRqQdwAaiIENgIAIBxBEGogBmogBCAMQQJ0akGAQGs2AgALIAFBACACQQFKG0UEQEEAIQIjAEHgIWsiDCEEIAwkAEEAIB5rISYgDyIRKAIIIgZBASAGQQFKGyI3QQFxIRcgDygCACISKAIEIg9BgBBqIRAgEigCICEVIBIoAgghCyA3QQFrIgoEQCA3Qf7///8HcSEAIBFB3ABqIQgDQCACQQJ0IgUgBEHYIWpqIAggAiAQbEECdGoiATYCACAEQdAhaiAFaiABICZBAnQiB2pBgEBrNgIAIAJBAXIiAUECdCIFIARB2CFqaiAIIAEgEGxBAnRqIgE2AgAgBEHQIWogBWogASAHakGAQGs2AgAgAkECaiECIABBAmsiAA0ACwsgFwRAIAJBAnQiASAEQdghamogESACIBBsQQJ0akHcAGoiADYCACAEQdAhaiABaiAAICZBAnRqQYBAazYCAAsgESAGIBBsQQJ0akHcAGohQCARKAIUIQACQAJAAkAgESgCNCIpQQRKDQAgAA0AIBEoAjhFDQELIEAgBkHgAGxqIi8gC0EDdCIBaiABaiABaiETQwAAAD9DAADAPyApGyFYIBEoAhgiFiASKAIMIgEgASAWShshDiAWIABrQQFxIQggDCAGIB5sQQJ0QQ9qQXBxayIZJABBACEMIBYgAEEBaiIBRiEXA0ACQCAAIBZODQAgCyAMbCEQIAAhAiAIBEAgLyAAIBBqQQJ0IgVqIgIgBSATaioCACJVIAIqAgAgWJMiVCBUIFVdGzgCACABIQILIBcNAANAIC8gAiAQakECdCIHaiIFIAcgE2oqAgAiVSAFKgIAIFiTIlQgVCBVXRs4AgAgLyAHQQRqIgdqIgUgByATaioCACJVIAUqAgAgWJMiVCBUIFVdGzgCACACQQJqIgIgFkcNAAsLIAxBAWoiDCA3Rw0ACyAAIA4gACAOShshDCARKAIoIQEgBkEBTgRAQQAhCANAIAAgDkgEQCAIIB5sIRcgACEFA0AgFSAFQQF0ai4BACIHIAl0IBdqIRBBACECIBUgBUEBaiIFQQF0ai4BACAHayAJdCIHQQFOBEADQCAZIAIgEGpBAnRqIAFBjczlAGxB3+a74wNqIgFBFHWyOAIAIAJBAWoiAiAHRw0ACwsgGSAQQQJ0aiAHQwAAgD8gESgCJBAhIAUgDEcNAAsLIAhBAWoiCCAGRw0ACwsgESABNgIoIDdBA3EhBSAPQQF2IB5rQQJ0QYBAayEIQQAhAiAKQQNPBEAgN0H8////B3EhCwNAIAJBAnQiFyAEQdghamooAgAiASABIB5BAnQiB2ogCBALGiAEQdghaiAXQQRyaigCACIBIAEgB2ogCBALGiAEQdghaiAXQQhyaigCACIBIAEgB2ogCBALGiAEQdghaiAXQQxyaigCACIBIAEgB2ogCBALGiACQQRqIQIgC0EEayILDQALCyAFBEADQCAEQdghaiACQQJ0aigCACIBIAEgHkECdGogCBALGiACQQFqIQIgBUEBayIFDQALCyASIBkgBEHQIWogLyAAIAwgBiAGQQAgCSARKAIQQQAgESgCJBAuDAELAn0gKUUEQCAEQfAAaiEXIAYhACARKAIkIQYjAEEwayIKJAAgBEHYIWoiBSgCACEHQQEhCANAIBcgCEECdGogCEEDdCICIAdqIgEqAgAgAUEEayoCACAHIAJBBHJqKgIAkkMAAAA/lJJDAAAAP5Q4AgAgCEEBaiIIQYAIRw0ACyAXIAcqAgRDAAAAP5QgByoCAJJDAAAAP5QiVDgCACAAQQJGBEAgBSgCBCECQQEhCANAIBcgCEECdGoiACAAKgIAIAhBA3QiASACaiIAKgIAIABBBGsqAgAgAiABQQRyaioCAJJDAAAAP5SSQwAAAD+UkjgCACAIQQFqIghBgAhHDQALIBcgVCACKgIEQwAAAD+UIAIqAgCSQwAAAD+UkjgCAAtBACEIIBcgCkEQakEAQQBBBCAGEDIgCiAKKgIQQ0cDgD+UOAIQIAogCioCFCJUIFRDbxIDPJRDbxIDPJSTOAIUIAogCioCGCJUIFRDbxKDPJRDbxKDPJSTOAIYIAogCioCHCJUIFRDppvEPJRDppvEPJSTOAIcIAogCioCICJUIFRDbxIDPZRDbxIDPZSTOAIgIAogCkEQakEEEDQgCioCDEMq9ic/lCJVIAoqAghDvZ86P5QiVEPNzEw/lJIhWyBUIAoqAgRDKFxPP5QiVEPNzEw/lJIhXCBUIAoqAgBDZmZmP5QiVEPNzEw/lJIhXSBVQ83MTD+UIV4gVEPNzEw/kiFfQYAIIQIDQCAXIAhBAnQiAWoiACBeIFmUIFsgWpQgXCBYlCBdIFciVZQgXyBWIlSUIAAqAgAiV5KSkpKSOAIAIBcgAUEEcmoiACBeIFqUIFsgWJQgXCBVlCBdIFSUIF8gV5QgACoCACJWkpKSkpI4AgAgCEECaiEIIFghWSBVIVogVCFYIAJBAmsiAg0ACyAKQTBqJAAgBEGQDGohCyAEQfAAaiEVQQAhAEMAAAAAIVZDAAAAACFYIwAiASEIIAFBsAprIgYiASQAIAFBoA9rIgciASQAIAFB4AlrIgkkAEHMAiEBA0AgBiAAQQJ0aiALIABBA3RqKgIAOAIAIAYgAEEBciICQQJ0aiALIAJBA3RqKgIAOAIAIAYgAEECciICQQJ0aiALIAJBA3RqKgIAOAIAIAYgAEEDciICQQJ0aiALIAJBA3RqKgIAOAIAIABBBGohACABQQRrIgENAAtBAyECQQAhAEHkAyEBA0AgByAAQQJ0aiAVIABBA3RqKgIAOAIAIAcgAEEBciIFQQJ0aiAVIAVBA3RqKgIAOAIAIAcgAEECciIFQQJ0aiAVIAVBA3RqKgIAOAIAIAcgAEEDciIFQQJ0aiAVIAVBA3RqKgIAOAIAIABBBGohACABQQRrIgENAAsDQCAHIABBAnRqIBUgAEEDdGoqAgA4AgAgAEEBaiEAIAJBAWsiAg0ACyAGIAcgCUHMAkGbARAxQcwCIQFDAACAPyFZQQAhAANAIFkgByAAQQJ0IgJqKgIAIlQgVJSSIAcgAkEEcmoqAgAiVCBUlJIgByACQQhyaioCACJUIFSUkiAHIAJBDHJqKgIAIlQgVJSSIVkgAEEEaiEAIAFBBGsiAQ0AC0MAAIC/IVVBACECQQEhAUEAIQBDAACAvyFUA0ACQCAJIABBAnQiBWoqAgAiV0MAAAAAXkUNACBYIFdDzLyMK5QiVyBXlCJXlCBUIFmUXkUNACBWIFeUIFUgWZReBEAgAiEBIAAhAiBVIVQgVyFVIFYhWCBZIVYMAQsgACEBIFchVCBZIVgLIFkgByAAQcwCakECdGoqAgAiWSBZlCAFIAdqKgIAIlkgWZSTkkMAAIA/lyFZIABBAWoiAEGbAUcNAAtBACACQQF0ayEXQQAgAUEBdGshB0EAIQEDQCAJIAFBAnQiAmoiBkEANgIAAkAgASAXaiIAIABBH3UiAGogAHNBA08EQCABIAdqIgAgAEEfdSIAaiAAc0ECSw0BC0MAAAAAIVkgAiAVaiEQQQAhBUGYBSECA0AgWSALIAVBAnQiCmoqAgAgCiAQaioCAJSSIAsgCkEEciIAaioCACAAIBBqKgIAlJIgCyAKQQhyIgBqKgIAIAAgEGoqAgCUkiALIApBDHIiAGoqAgAgACAQaioCAJSSIVkgBUEEaiEFIAJBBGsiAg0AC0EAIgIEQANAIFkgCyAFQQJ0IgBqKgIAIAAgEGoqAgCUkiFZIAVBAWohBSACQQFrIgINAAsLIAYgWUMAAIC/lzgCAAsgAUEBaiIBQbYCRw0AC0MAAIA/IVlBmAUhAkEAIQUDQCBZIBUgBUECdCIAaioCACJUIFSUkiAVIABBBHJqKgIAIlQgVJSSIBUgAEEIcmoqAgAiVCBUlJIgFSAAQQxyaioCACJUIFSUkiFZIAVBBGohBSACQQRrIgINAAtBACECQwAAgL8hVUMAAAAAIVZBACEAQQAhBUMAAAAAIVhDAACAvyFUA0ACQCAJIAVBAnQiAWoqAgAiV0MAAAAAXkUNACBYIFdDzLyMK5QiVyBXlCJXlCBUIFmUXkUNACBWIFeUIFUgWZReBEAgBSEAIFUhVCBXIVUgViFYIFkhVgwBCyBXIVQgWSFYCyBZIBUgBUGYBWpBAnRqKgIAIlkgWZQgASAVaioCACJZIFmUk5JDAACAP5chWSAFQQFqIgVBtgJHDQALAkAgAEEBSA0AIABBtQJODQBBfyECIAkgAEECdGoiASoCBCJYIAFBBGsqAgAiVZMgASoCACJUIFWTQzMzMz+UXg0AIFUgWJMgVCBYk0MzMzM/lF4hAgsgBCACIABBAXRqNgIAIAgkACARQdAFIAQoAgBrIgU2AjBDAACAPwwBCyARKAIwIQVDzcxMPwshWCAFQQF0IgBBgAggAEGACEgbIgtBAXUiAUEBIAFBAUobIgBB/v///wdxIRAgAEEBcSEYIAwgD0ECdEEPakFwcWsiQSIAJABBgAggC2shQkGACCABayE6IAQgC0ECdCI1a0HQIWohCSAPQX5xIQggD0EBcSENIA9BAm0hIkGACCAFayEuIA8gHmoiFUF8cSEXIBVBA3EhByAVQQJ0IRZBgBAgHmsiOEECdCEfIAAgNUEPakFwcWsiDCQAIARB0AFqITEgEigCPCEhIBVBAWtBA0khL0EAIQoDQCAEQdghaiAKQQJ0aigCACETQQAhAANAIABBAnQiAiAEQfAAamogAiATaiIBQaAfaioCADgCACAEQfAAaiACQQRyaiABQaQfaioCADgCACAEQfAAaiACQQhyaiABQagfaioCADgCACAEQfAAaiACQQxyaiABQawfaioCADgCACAAQQRqIgBBmAhHDQALAkAgKQRAIApBGGwhAgwBCyAxIAQgISAPQRggESgCJBAyIAQgBCoCAENHA4A/lDgCAEEBIQIDQCAEIAJBAnRqIgAgACoCACJUIFRDvjeGOJQgArIiVJQgVJSTOAIAIAQgAkEBaiIBQQJ0aiIAIAAqAgAiVCBUQ743hjiUIAGyIlSUIFSUkzgCACAEIAJBAmoiAUECdGoiACAAKgIAIlQgVEO+N4Y4lCABsiJUlCBUlJM4AgAgAkEDaiICQRlHDQALIEAgCkEYbCICQQJ0aiAEQRgQNAsgQCACQQJ0aiIGIQIgESgCJBpBACEOIwBBEGsiACEUIAAkAAJAIAkgDEcEQCAAQeAAayIjJABBGCEBA0AgIyAOQQJ0IhlqIAIgDkF/c0EYakECdGoqAgA4AgAgIyAZQQRyakEYIA5rQQJ0IAJqIgBBCGsqAgA4AgAgIyAZQQhyaiAAQQxrKgIAOAIAICMgGUEMcmogAEEQayoCADgCACAOQQRqIQ4gAUEEayIBDQALQQAhMiALQQNKBEAgC0EDayEOA0AgFCAJIDJBAnQiEmoiGSoCADgCACAUIAkgEkEEciICaioCADgCBCAUIAkgEkEIciIBaioCADgCCCAUIAkgEkEMciIAaioCADgCDCAjIBlB4ABrIBQQMyAMIBJqIBQqAgA4AgAgAiAMaiAUKgIEOAIAIAEgDGogFCoCCDgCACAAIAxqIBQqAgw4AgAgMkEEaiIyIA5IDQALCyALIDJKBEADQCAJIDJBAnQiAWoqAgAhVCAyQRhrIRlBACEOQRghAgNAIFQgIyAOQQJ0aioCACAJIA4gGWpBAnRqKgIAlJIgIyAOQQFyIgBBAnRqKgIAIAkgACAZakECdGoqAgCUkiFUIA5BAmohDiACQQJrIgINAAsgASAMaiBUOAIAIDJBAWoiMiALRw0ACwsgFEEQaiQADAELQYyIAkGliAJBkgEQBgALIAkgDCA1EAgaAkAgBUEBSARAQwAAgD8hV0MAAIA/IVYMAQtDAACAPyFWQQAhAkMAAIA/IVcgECEBIAtBBE4EQANAIFYgMSACIEJqQQJ0aioCACJUIFSUkiAxIEIgAkEBciIAakECdGoqAgAiVCBUlJIhViBXIDEgAiA6akECdGoqAgAiVCBUlJIgMSAAIDpqQQJ0aioCACJUIFSUkiFXIAJBAmohAiABQQJrIgENAAsLIBhFDQAgVyAxIAIgOmpBAnRqKgIAIlQgVJSSIVcgViAxIAIgQmpBAnRqKgIAIlQgVJSSIVYLIBMgEyAeQQJ0aiAfEAshGwJAIBVBAUgiEgRAQwAAAAAhVwwBCyBYIFcgViBWIFdeGyBWlZEiVZQhVkMAAAAAIVdBACEBQQAhAANAIBsgASA4akECdGogViBVIFaUIAAgBUgiAhsiViAxIABBACAFIAIbayIAIC5qIgJBAnRqKgIAlDgCACAAQQFqIQAgVyACIB5rQQJ0IBtqQYAgaioCACJUIFSUkiFXIAFBAWoiASAVRw0ACwtBACEBA0AgBCABQQJ0aiAbQf8PIAEgHmprQQJ0aioCADgCACAEIAFBAXIiAEECdGogG0H/DyAAIB5qa0ECdGoqAgA4AgAgBCABQQJyIgBBAnRqIBtB/w8gACAeamtBAnRqKgIAOAIAIAQgAUEDciIAQQJ0aiAbQf8PIAAgHmprQQJ0aioCADgCACABQQRqIgFBGEcNAAsgG0GAQGsiEyAmQQJ0aiIAIRQgESgCJBojAEEQayIBIS0gASQAIAFB4ABrIjYiASQAIAEgFUEYaiICQQJ0QQ9qQXBxayIgJAAgAgJ/QQAiDkEADQAaA0AgNiAOQQJ0IhlqIAYgDkF/c0EYakECdGoqAgA4AgAgNiAZQQRyakEYIA5rQQJ0IAZqIgFBCGsqAgA4AgAgNiAZQQhyaiABQQxrKgIAOAIAIDYgGUEMcmogAUEQayoCADgCACAOQQRqIg5BGEcNAAtBACIOQQANABoDQCAgIA5BAnQiAWogBCAOQX9zQRhqQQJ0aioCAIw4AgAgICABQQRyakEAIA5rQQJ0IARqKgJYjDgCACAOQQJqIg5BGEcNAAtBGAsiAUoEQCAgIAFBAnRqQQAgAiABa0ECdBAJGgtBACEoIBVBA0oEQCAVQQNrIQ4DQCAtIBQgKEECdCIyaioCADgCACAtIBQgMkEEciIZaioCADgCBCAtIBQgMkEIciICaioCADgCCCAtIBQgMkEMciIBaioCADgCDCA2ICAgMmogLRAzICAgKEEYakECdGoiIyAtKgIAIlaMOAIAIAAgMmogVjgCACAjIC0qAgQgViAGKgIAlJMiVYw4AgQgACAZaiBVOAIAICMgLSoCCCBVIAYqAgCUkyBWIAYqAgSUkyJUjDgCCCAAIAJqIFQ4AgAgIyAtKgIMIFQgBioCAJSTIFUgBioCBJSTIFYgBioCCJSTIlSMOAIMIAAgAWogVDgCACAoQQRqIiggDkgNAAsLIBUgKEoEQANAIBQgKEECdCICaioCACFUQQAhDkEYIQYDQCBUIDYgDkECdGoqAgAgICAOIChqQQJ0aioCAJSTIDYgDkEBciIBQQJ0aioCACAgIAEgKGpBAnRqKgIAlJMhVCAOQQJqIQ4gBkECayIGDQALICAgKEEYakECdGogVDgCACAAIAJqIFQ4AgAgKEEBaiIoIBVHDQALC0EAIQ5BGCEGA0AgBCAOQQJ0IgJqIAAgDkF/cyAVakECdGoqAgA4AgAgBCACQQRyaiAVIA5rQQJ0IABqIgFBCGsqAgA4AgAgBCACQQhyaiABQQxrKgIAOAIAIAQgAkEMcmogAUEQayoCADgCACAOQQRqIQ4gBkEEayIGDQALIC1BEGokAAJAAkAgEkUEQEMAAAAAIVZBACEBIBchACAvRQRAA0AgViAbIAEgOGpBAnRqKgIAIlQgVJSSIBsgAUEBciA4akECdGoqAgAiVCBUlJIgGyABQQJyIDhqQQJ0aioCACJUIFSUkiAbIAFBA3IgOGpBAnRqKgIAIlQgVJSSIVYgAUEEaiEBIABBBGsiAA0ACwsgByIABEADQCBWIBsgASA4akECdGoqAgAiVCBUlJIhViABQQFqIQEgAEEBayIADQALCyBXIFZDzcxMPpReDQEgEg0CIBsgH2pBACAWEAkaDAILQwAAAAAhViBXQwAAAABeRQ0BCyBWIFdeRQ0AIFdDAACAP5IgVkMAAIA/kpWRIVQCQCAPQQFIDQBDAACAPyBUkyFVQQAhASAIIQAgD0EBRwRAA0AgGyABIDhqQQJ0aiICIAIqAgBDAACAPyBVICEgAUECdGoqAgCUk5Q4AgAgGyABQQFyIgYgOGpBAnRqIgIgAioCAEMAAIA/IFUgISAGQQJ0aioCAJSTlDgCACABQQJqIQEgAEECayIADQALCyANRQ0AIBsgASA4akECdGoiACAAKgIAQwAAgD8gVSAhIAFBAnRqKgIAlJOUOAIACyAPIQEgHkEATA0AA0AgGyABIDhqQQJ0aiIAIFQgACoCAJQ4AgAgAUEBaiIBIBVIDQALC0EAIQEgQSATIBEoAjwiACAAIA8gESoCRIwiVCBUIBEoAkwiACAAQQBBACARKAIkECogD0ECTgRAA0AgAUECdCICIBtqQYBAayACICFqKgIAIEEgDyABQX9zakECdCIAaioCAJQgACAhaioCACACIEFqKgIAlJI4AgAgAUEBaiIBICJHDQALCyAKQQFqIgogN0cNAAsLIBEgKUEBajYCNCAEQeAhaiQAIBxBEGogAyAeID8gESgCECAaQRBqIBFB1ABqEC8gHiARKAIQbSEGDAELIBooAgwhOCAPIA8oAjRBAEc2AjggBUUEQCAcQSBqIAEgAhBDIBxBIGohBQtBASFLAkAgLkEBRw0AIB1BAUgNAEEAIQcgHUEBRwRAIB1BfnEhCwNAIBEgB0ECdGoiASABKgIAIlUgESAHIB1qQQJ0aioCACJUIFQgVV0bOAIAIBEgB0EBciIEQQJ0aiIBIAEqAgAiVSARIAQgHWpBAnRqKgIAIlQgVCBVXRs4AgAgB0ECaiEHIAtBAmsiCw0ACwsgHUEBcUUNACARIAdBAnRqIgEgASoCACJVIBEgByAdakECdGoqAgAiVCBUIFVdGzgCAAsCfyAFKAIcZyILIAUoAhRqQSBrIgcgAkEDdCIvSARAQQAhS0EAIAdBAUcNARogBUEPEAoiS0UEQEEAIUtBASEHQQAMAgsgBSgCHGchCwsgBSAvIAtrQSBqNgIUIC8hB0EBCyEyAkAgAA0AIAdBEGogL0oNACAFQQEQCgR/IAUgBUEGEBYiAUEEahANQRAgAXRqQQFrIVEgBUEDEA1BAWqyQwAAwD2UIVkgLyAFKAIUIAUoAhxnakEea04EfyAFQa6TAkECEAcFQQALBUEACyFSIAUoAhQgBSgCHGdqQSBrIQcLIAdBA2ohBwJAIAlFDQAgByAvSg0AIAVBAxAKIUMgBSgCFCAFKAIcZ2pBHWshBwsgACEEIBchECAHIC9MBH8gBUEDEAoFQQALIQYgLiEIIwBBEGsiDSQAIA1CADcDCCAGBH1DAJgZPgUgCUECdCIBQYDCAWoqAgAhViABQZDCAWoqAgALIVUgBCAQSARAIAUoAgRBA3RBIGohEyAIQQEgCEEBShshDiAJQdQAbCAGQSpsakGwvwFqISIDQCAiIARBFCAEQRRIG0EBdCIBaiEZICIgAUEBcmohFUEAIQcDQAJ/IBMgBSgCFCAFKAIcZ2prIgFBD04EQAJ/IBktAABBB3QhASAVLQAAQQZ0IRZBACEKAkACQAJAAn8CfyAFIAUoAhxBD3YiBjYCJCABQQAgBSgCICAGbkF/c0GAgAJqIgYgBkGAgAJLGyISSwsEQCABIQZBAAwBC0EBIQYCQAJAQYCAASAWa0Hg/wEgAWtsQQ92IgxFBEAgASEKQQEhHwwBC0EBIR8DQCAMQQFqIgxBAXQiCyABaiIKIBJLBEAgDCEGDAMLIB9BAWohHyAKIQEgC0ECayAWbEEPdiIMDQALCyAKIBIgCmsiCkF+cWohASAKQQF2IB9qIR8LIAEgASAGaiIBIAEgEksiARsiCkGAgAJPDQEgCiASSw0CQQAgH2sgHyABGwshDCASIAYgCmoiAUGAgAIgAUGAgAJJGyIBTw0CIAUgCiABQYCAAhAlIAwMAwtB370BQdC9AUGAARAGAAtB+r0BQdC9AUGCARAGAAtBk74BQdC9AUGDARAGAAsMAQsgAUECTgRAIAVBoMIBQQIQByIBQQF1QQAgAUEBcWtzDAELQX8gAUEBRw0AGkEAIAVBARAKawshCiARIBooAgggB2wgBGpBAnRqIgYgDUEIaiAHQQJ0aiIBKgIAIlQgViAGKgIAQwAAEMGXlJIgCrIiWJI4AgAgASBUIFiSIFUgWJSTOAIAIAdBAWoiByAORw0ACyAEQQFqIgQgEEcNAAsLIA1BEGokACAcIB1BAnRBD2pBcHFrIkgiCiQAIAlBAEcgBSgCBEEDdCIBIAUoAhQgBSgCHGdqQSBrIgRBAkEEIEMbIgdBAXJqT3EhFUEAIQYCQCAAIBBOIhMNACABIBVrIgEgBCAHak8EQCAFIAcQCiEGIAUoAhQgBSgCHGdqQSBrIQQLIEggAEECdGogBjYCACAAQQFqIgcgEEYNAEEEQQUgQxshDCAGIQsDQCABIAQgDGpPBEAgBSAMEAogC3MiCyAGciEGIAUoAhQgBSgCHGdqQSBrIQQLIEggB0ECdGogCzYCACAHQQFqIgcgEEcNAAsLIENBAnQhCwJAIBVFDQAgCUEDdEGADWoiASAGIAtqai0AACABIAtBAnIgBmpqLQAARg0AIAVBARAKQQF0IAtqIQsLAkAgEw0AIBAgACIHa0EDcSIEBEAgCUEDdEGADWohBgNAIEggB0ECdGoiASAGIAsgASgCAGpqLAAANgIAIAdBAWohByAEQQFrIgQNAAsLIBAgAEF/c2pBA0kNACAJQQN0QYANaiEBA0AgSCAHQQJ0aiIEIAEgCyAEKAIAamosAAA2AgAgBCABIAsgBCgCBGpqLAAANgIEIAQgASALIAQoAghqaiwAADYCCCAEIAEgCyAEKAIMamosAAA2AgwgB0EEaiIHIBBHDQALC0ECISAgLyAFKAIUIAUoAhxnakEca04EQCAFQbGTAkEFEAchIAsgCiAdQQJ0QQ9qQXBxIg5rIgoiGSQAIAghFkEAIQEgGigCCCIEQQFOBEAgFiAJQQF0akEBayELIBooAmghDCAaKAIgIggvAQAhBwNAIAdBEHQhBiAKIAFBAnRqIAwgBCALbCABamotAABBQGsgCCABQQFqIgFBAXRqLgEAIgcgBkEQdWsgCXQgFmxsQQJ1NgIAIAEgGigCCCIESA0ACwtBBiEBIAJBBnQhFSAZIA5rIgwiIiQAIAUQDyESAkAgEwRAIBUhBAwBCyAAIQIgFSEEA0AgGCACIgZBAWoiAkEBdGouAQAgGCAGQQF0ai4BAGsgFmwgCXQiB0EDdCIIIAdBMCAHQTBKGyIHIAcgCEobIQ0gCiAGQQJ0IhNqIQ4gBCEHIAEhC0EAIQYDQAJAIAYhCCAHIgQgC0EDdCASakwNACAIIA4oAgBODQAgBCANayEHIAggDWohBiAFIAsQCiEZIAUQDyESQQEhCyAZDQELCyAMIBNqIAg2AgAgAUEBa0ECIAFBAkobIAEgCEEAShshASACIBBHDQALCyAiIB1BAnRBD2pBcHFrIj4iASQAQQUhCyAEIBJBMGpOBEAgBUG1kwJBBxAHIQsLIBUgBRAPQX9zaiEZQQAhByABIB1BAnRBD2pBcHEiAmsiOSIBJAAgASACayJGIkEkAAJ/IAAhAiAQIQQgCyEBIAUhIkEAIQgjACIGIUIgGQJ/IAkiDkECSQRAQQAhC0EADAELQQAhC0EAIENFDQAaIBkgDkEDdEEQak4iC0EDdAsiOmsiBUEAIAVBAEobIgUgBUEHSkEDdCIjayEbIBooAgghFAJAIBZBAkcNACAEIAJrQbDCAWotAAAiCCAbSgRAQQAhCAwBCyAbIAhrIgUgBUEHSkEDdCItayEbCyAGIBRBAnRBD2pBcHEiBmsiNiIFJAAgBSAGayI3IgUkACAFIAZrIigiBSQAIBZBA3QhLCAFIAZrIjEkACACIAROIiFFBEAgDkEDaiEYIAEgDmtBBWsgFmwhDSAaKAIgIhMgAkEBdGovAQAhBiACIQEDQCAGQRB0IRAgKCABQQJ0IhlqICwgEyABQQFqIgVBAXRqLgEAIgYgEEEQdWsiEkEDbCAOdEEDdEEEdSIQIBAgLEgbNgIAIBkgMWogDSABQX9zIARqbCASbCAYdEEGdSAsQQAgEiAOdEEBRhtrNgIAIAUiASAERw0ACwsgCiEZIBooAjAiNUEBayETIBtBH3YhCkEBISoDQCAqIBMgKmpBAXUiKUEBaiACIAROBH8gCgUgFCApbCEfIBooAiAiEiAEQQF0ai8BACENIBooAjQhGEEAIQZBACEQIAQhAQNAIA1BEHRBEHUgEiABQQFrIgFBAXRqLgEAIg1rIBZsIBggASAfamotAABsIA50IgVBAnUhJiAFQQROBH8gMSABQQJ0aigCACAmaiIFQQAgBUEAShsFICYLIAwgAUECdCIFaigCAGohJgJ/AkAgEEUEQCAmIAUgKGooAgBIDQELICYgBSAZaigCACIFIAUgJkobIQVBAQwBC0EAICwgJiAsSBshBUEACyEQIAUgBmohBiABIAJKDQALIAYgG0oLIgEbIiogKUEBayATIAEbIhNMDQALIAIhEyAhRQRAIBQgKmwhHyAqQQFrIBRsIRIgGigCICIYIAJBAXRqLwEAIRAgGigCNCEUIAIiASETA0AgEEEQdCEFIBggAUEBaiIGQQF0ai4BACIQIAVBEHVrIBZsIgUgFCABIBJqai0AAGwgDnQhCgJ/ICogNU4EQCAZIAFBAnRqKAIADAELIAUgFCABIB9qai0AAGwgDnRBAnULIQUgCkECdSENIApBBE4EQCAxIAFBAnRqKAIAIA1qIgpBACAKQQBKGyENCyAFQQFOBEAgMSABQQJ0aigCACAFaiIFQQAgBUEAShshBQsgNiABQQJ0IilqIA0gDCApaigCACImQQAgKkEBShtqIgo2AgAgKSA3aiAmIAUgCmtqIgVBACAFQQBKGzYCACABIBMgJkEAShshEyAGIgEgBEcNAAsLQcAAIRBBACEKQQAhBQNAAkAgCiAQakEBdSESICFFBEBBACEGIAQhDEEAIQ0DQCA3IAxBAWsiDEECdCIBaigCACASbEEGdSABIDZqKAIAaiEYAn8CQCANQQFxRQRAIBggASAoaigCAEgNAQtBASENIBggASAZaigCACIBIAEgGEobDAELQQAhDUEAICwgGCAsSBsLIAZqIQYgAiAMSARAIA1BAEchDQwBCwsgCiASIAYgG0oiARshCiASIBAgARshECAFQQFqIgVBBkcNAkEAIQEgBCEGQQAhDQNAIDkgBkEBayIGQQJ0IhhqIBggNmooAgAgGCA3aigCACAKbEEGdWoiBSAFQQAgLCAFICxIGyAFIBggKGooAgBOIgwbIA0bIhAgGCAZaigCACIFIAUgEEobIgU2AgAgASAFaiEBIAwgDXIhDSACIAZIDQALDAELQQAhASAKIBIgG0EASCIGGyEKIBIgECAGGyEQIAVBAWoiBUEGRw0BCwsCQAJAIBMgBEEBayINTgRAIAQhECAIIQUMAQsgLEEIaiE1IAQhBgNAIBooAiAiBSAGQQF0ai4BACIfIAUgDSIQQQF0ai4BACINayAbIAFrIgwgHyAFIAJBAXRqLgEAIhJrbiIFbCA5IBBBAnQiCmoiGCgCACIqaiASIB9rIAVsIAxqIBIgDWtqIgVBACAFQQBKG2oiDCAKIChqKAIAIgUgNSAFIDVKG04EQCAiQQEQCgRAIAYhECAIIQUMBAsgGCgCACEqIAxBCGshDCABQQhqIQELIAgiBUEBTgRAIBAgAmtBsMIBai0AACEFCyAYQQAgLCAMICxIGyIGNgIAIAEgCCAqamsgBmogBWohASAFIQggECIGQQFrIg0gE0oNAAsLIBsgI2ohGwsCQAJAIAIgEEgiHwRAAkAgBUEBTgRAIBwgIiAQIAJrQQFqEBYgAmoiBTYCDEEAIC0gAiAFSCIFGyEMIC1FDQMgBQ0BDAMLIBxBADYCDEEAIC0gAkEASBshDCACQX9KDQIgLUUNAgsgHCAiQQEQCjYCCAwCC0HIwgFB7cIBQYcDEAYACyAcQQA2AggLIBooAiAiISACQQF0ai4BACIKICEgEEEBdGouAQAiBWshGCAMIBsgAWtqIg0gBSAKa24hEiAKIQwgECACIgFrIghBAXEEQCA5IAJBAnRqIgEgASgCACAhIAJBAWoiAUEBdGouAQAiDCAKayASbGo2AgALIBAgAkF/c2oiEwRAA0AgOSABQQJ0aiIFIAUoAgAgISABQQFqIgVBAXRqLgEAIgYgDEEQdEEQdWsgEmxqNgIAIDkgBUECdGoiBSAFKAIAICEgAUECaiIBQQF0ai4BACIMIAZrIBJsajYCACABIBBHDQALCyASIBhsIA1qIQUCQCAIQQFxRQRAIAohDCACIQEMAQsgOSACQQJ0aiIIIAUgISACQQFqIgFBAXRqLgEAIgwgCmsiBiAFIAZIGyIGIAgoAgBqNgIAIAUgBmshBQsgEwRAA0AgOSABQQJ0aiIYIAUgISABQQFqIg1BAXRqLgEAIhMgDEEQdEEQdWsiBiAFIAZIGyIIIBgoAgBqNgIAIDkgDUECdGoiBiAFIAhrIgggISABQQJqIgFBAXRqLgEAIgwgE2siBSAFIAhKGyIFIAYoAgBqNgIAIAggBWshBSABIBBHDQALCyAWQQFKITUgDkEDdCESIBAgAiAfGyEqQQRBAyAWQQFKGyEYQQAgFkEDdGshCEEAIRMCQAJAAkACQANAIAIgKkYNASA5IAJBAnQiFGoiKSgCACIBQX9MDQIgCkEQdCEFIAEgE2ohBgJAICEgAkEBaiIBQQF0ai4BACIKIAVBEHVrIA50Ig1BAk4EQCApIAYgBiAUIBlqKAIAayIFQQAgBUEAShsiDGsiHzYCACANIBZsIQUCQAJ/QQAgFkECRkEAIA1BAkcbRQ0AGkEAIBwoAggNABogAiAcKAIMSAsgBWoiJkEDdCIGQQJ1QQAgDUECRhsgJkFrbGogEiAaKAI4IAJBAXRqLgEAaiAmbCINQQF1aiICIB9qIgUgJkEEdEgEQCACIA1BAnVqIQIMAQsgBSAmQRhsTg0AIAIgDUEDdWohAgsgFCA+aiIjICZBAnQgH2ogAmoiBUEAIAVBAEobICZuQQN2Ig02AgAgDSAWbCApKAIAIgVBA3VKBEAgIyAFIDV1QQN1Ig02AgALICMgDUEIIA1BCEgbIgU2AgAgFCBGaiApKAIAIAJqIAUgBmxMNgIAICkgKSgCACAIICMoAgBsajYCAAwBCyApIAYgBiAsayICQQAgAkEAShsiDGs2AgAgFCA+akEANgIAIBQgRmpBATYCAAsgDAR/IBQgPmoiAiAMIBh2IgZBCCACKAIAIgVrIgIgAiAGShsiAiAFajYCACAUIEZqIAIgLGwiAiAMIBNrTjYCACAMIAJrBUEACyETICkoAgBBf0wNAyABIQIgFCA+aigCAEF/Sg0AC0GYwwFB7cIBQYIEEAYACyAcIBM2AgQgBCAqSgRAA0AgPiAqQQJ0IgZqIgIgBiA5aiIFKAIAIDV1QQN1IgE2AgAgBSgCACABICxsRw0EIAVBADYCACAGIEZqIAIoAgBBAUg2AgAgKkEBaiIqIARHDQALCyBCJAAgEAwDC0H5wgFB7cIBQboDEAYAC0H5wgFB7cIBQYEEEAYAC0G4wwFB7cIBQYwEEAYACyECIBcgACIBSgRAIC5BASAuQQFKGyEKA0BBACEFID4gAUECdGoiCCgCACIGQQFOBEADQCAiIAYQDSEGIBEgGigCCCAFbCABakECdGoiBCAEKgIAIAayQwAAAD+SQQFBDiAIKAIAIgZrdLKUQwAAgDiUQwAAAL+SkjgCACAFQQFqIgUgCkcNAAsLIAFBAWoiASAXRw0ACwsgR0EDcSEGIE9BAm0gHmtBAnRBgEBrIQogQEEDTwRAIEdB/P///wdxIQgDQCAHQQJ0IgUgHEEYamooAgAiASABIB5BAnQiBGogChALGiAcQRhqIAVBBHJqKAIAIgEgASAEaiAKEAsaIBxBGGogBUEIcmooAgAiASABIARqIAoQCxogHEEYaiAFQQxyaigCACIBIAEgBGogChALGiAHQQRqIQcgCEEEayIIDQALCyAGBEADQCAcQRhqIAdBAnRqKAIAIgEgASAeQQJ0aiAKEAsaIAdBAWohByAGQQFrIgYNAAsLIBcgOEohKSBBIB0gLmwiTEEPakFwcWsiPSIBJAAgASAeIC5sQQJ0QQ9qQXBxayJJJAAgHCgCCCFNIBwoAgwhUyAVIDprISYgHCgCBCEBIAIhFSAPKAIkIQYgDygCICEFIwBBoAxrIgIhJCACJAAgAkECQQEgSSAeQQJ0akEAIC5BAkYbIiobIkogGigCICJEIBooAghBAXRqQQJrLgEAIEQgACIQQQF0aiJALgEAIixrIA50bEECdEEPakFwcWsiOyICJAAgRCAaKAIIQQF0akECay4BACAJdEECdCIEIElqIQogAkEQayICJAAgAkEQayICJAAgAkEQayICJAAgAkEQayICJAAgAkEQayQAICRBADYChAwgJCBTNgLwCyAkQQA2AuALICQgGjYC6AsgJCAiNgL8CyAPKAIoIQcgJCAFNgKUDCAkIAY2AowMICQgBzYCiAwgJEEBNgLkCyAkQQA2ApAMICQgIDYC9AsgJEEBIAl0QQFBASAJdCJBQQAgQxsbIg5BAUoiAjYCmAwgDyAAIBdIBH8gO0EAICobIUIgIEEDRyACciE6IEpBAWshTiAAQQJqISMgAEEBaiEbIBdBAWshLUF/IA50QX9zIQUgO0EAICwgCXQiMWtBAnQiAmohKCAEIDtqIDFBAnRrIkUgAmohNSAAIQdBACEMQQEhBANAICQgByIWNgLsCwJ/AkAgRCAHQQFqIgdBAXRqLgEAIEQgFkEBdGoiPC4BACICayIgIAl0IhNBAEoEQCACIAl0IQIgJCAmICIQDyI2ayIGQQFrNgKADCABQQAgNiAQIBZGG2shNwJ/QQAgFSAWTA0AGkH//wAgBiA5IBZBAnRqKAIAIDcgFSAWayIBQQMgAUEDSBttaiIBIAEgBkobIgFB//8ASg0AGiABQQAgAUEAShsLIRkgDCAWIAwgFiAMGyAEGyA8LgEAICBrIAl0IEAuAQAgCXRIQQAgFiAbRxsbIQwgAkECdCIIICpqIQYCQCAWIBtHDQAgOyAaKAIgIgIgG0EBdGouAQAiASACIBBBAXRqLgEAayAJdCINQQJ0IgRqIDsgDUEBdCACICNBAXRqLgEAIAFrIAl0IgFrQQJ0IgJqIAEgDWtBAnQiARAIGiBNRQ0AIAQgRWogAiBFaiABEAgaCyAGQQAgKhshEiAIIElqIRggJCBIIBZBAnQiH2ooAgAiATYC+AtBACAKQQAgFiAaKAIMSCIhGyAWIC1GIhQbIQpBfyEzAkAgDEUEQCAFIgQhMAwBCyAFIgQhMCA6IAFBAEhyQQFHDQAgRCAMQQF0ai4BACAgICxqayAJdCIBQQAgAUEAShsiMyAxaiECIAwhAQNAIEQgASIGQQFrIgFBAXRqLgEAIAl0IAJKDQALIAIgE2ohDSAMQQFrIQQgDCAWIAwgFkobQQFrIQgDQAJAIAggBCICRgRAIAghAgwBCyBEIAJBAWoiBEEBdGouAQAgCXQgDUgNAQsLIAIgASABIAJIGyABa0EBaiIIQQFxIQ1BACEEAkAgAiAGSARAQQAhMAwBCyAIQX5xIQJBACEwA0AgPSABQQFqIEpsIghqLQAAIAQgPSABIEpsIgZqLQAAcnIhBCA9IAggTmpqLQAAIDAgPSAGIE5qai0AAHJyITAgAUECaiEBIAJBAmsiAg0ACwsgDUUNACAEID0gASBKbCIBai0AAHIhBCAwID0gASBOamotAAByITALIBggOyAhGyEIIBIgQiAhGyEGIE1FDQEgFiBTRgRAIDwuAQAgLGsgCXQiEkEBSA0CQQAhASASQQFHBEAgEkF+cSECA0AgOyABQQJ0IhhqIg0gDSoCACAYIEVqKgIAkkMAAAA/lDgCACA7IBhBBHIiGGoiDSANKgIAIBggRWoqAgCSQwAAAD+UOAIAIAFBAmohASACQQJrIgINAAsLIBJBAXFFDQIgOyABQQJ0IgJqIgEgASoCACACIEVqKgIAkkMAAAA/lDgCAAwCCyAWIFNGDQFBACA7IDNBAnQiGGogM0F/RiINGyECICRB4AtqIAYgEyAZQQF2IgEgDgJ/IBYgLUYEQEEAITMgJEHgC2ogCCATIAEgDiACIAlBAEMAAIA/IAogBBAOIQJBACAYIEVqIA0bDAELICRB4AtqIAggEyABIA4gAiAJICggPC4BACAJdEECdGpDAACAPyAKIAQQDiECIDUgPC4BACAJdEECdGohM0EAIBggRWogDRsLIAkgM0MAAIA/IAogMBAODAILQeSFAkHXhQJB1wsQBgALAn8gBgRAQQAhTSAkQQA2ApAMICRB4AtqISdBACA7IDNBAnRqIDNBf0YbISEgFAR/QQAFICggPC4BACAJdEECdGoLITMjAEEgayI0JAAgNCAEIDByIhI2AhggNCAZNgIcICcoAhwhMCAnKAIAIRQCQCATQQFGBEBBACEEICcoAiAiEkEITgRAAkAgFARAIDAgCCoCAEMAAAAAXSIEEBsMAQsgMEEBEA0hBAsgJyAnKAIgQQhrIhI2AiALICcoAgQiAgRAIAhDAACAv0MAAIA/IAQbOAIACyAGBEBBAkEBIAYbIQFBASENA0BBACEEAn8gEkEITgRAAkAgFARAIDAgBioCAEMAAAAAXSIEEBsMAQsgMEEBEA0hBAsgJyAnKAIgQQhrIhI2AiAgJygCBCECCyACCwRAIAZDAACAv0MAAIA/IAQbOAIACyANQQFqIg0gAUcNAAsLQQEhBCAzRQ0BIDMgCCoCADgCAAwBCyAnIDQgCCAGIBMgNEEcaiAOIA4gCUEBIDRBGGoQNSA0KAIIskMAAAA4lCFUIDQoAgSyQwAAADiUIVcgNCgCFCECIDQoAhAhICA0KAIAIRgCQCATQQJGBEAgNCgCHCENICcgJygCICACICBB//9+cSIEQQBHQQN0IgJqazYCICAIIAYgIEGAwABKIgEbISAgBiAIIAEbITwgDSACayEBQQAhAgJAIARFDQAgFARAIDAgPCoCACAgKgIElCA8KgIEICAqAgCUk0MAAAAAXSICEBsMAQsgMEEBEA0hAgsgJyA8QQIgASAOICEgCSAzQwAAgD8gCiASEA4hBCAgIDwqAgRBAEEBIAJBAXRrIgFrspQ4AgAgICA8KgIAIAGylDgCBCAnKAIERQ0BIAggVyAIKgIAlDgCACAIIFcgCCoCBJQ4AgQgBiBUIAYqAgCUIlU4AgAgBiBUIAYqAgSUOAIEIAggCCoCACJUIFWTOAIAIAYgVCAGKgIAkjgCACAIIAgqAgQiVCAGKgIEkzgCBCAGIFQgBioCBJI4AgQMAQsgNCgCHCEEIDQoAgwhASAnICcoAiAgAmsiAjYCICA0KAIYIQ0gBCAEIAFrQQJtIgEgASAEShsiAUEAIAFBAEobIgEgBCABayIETgRAICcgCCATIAEgDiAhIAkgM0MAAIA/IAogDRAOICcgBiATIAQgJygCICACayABaiIBQRhrQQAgIBtBACABQRhKG2ogDkEAIAlBACBUQQAgDSAOdRAOciEEDAELICcgBiATIAQgDkEAIAlBACBUQQAgDSAOdRAOICcgCCATIAEgJygCICACayAEaiIBQRhrQQAgIEGAgAFHG0EAIAFBGEobaiAOICEgCSAzQwAAgD8gCiANEA5yIQQLICcoAgRFDQACQCATQQJGDQACQCATQQFIBEBDAAAAACFWQwAAAAAhWAwBCyATQQFxIQICQCATQQFGBEBBACEUQwAAAAAhWEMAAAAAIVYMAQsgE0F+cSESQQAhFEMAAAAAIVhDAAAAACFWA0AgViAGIBRBAnQiAWoqAgAiVSABIAhqKgIAlJIgBiABQQRyIgFqKgIAIlQgASAIaioCAJSSIVYgWCBVIFWUkiBUIFSUkiFYIBRBAmohFCASQQJrIhINAAsLIAJFDQAgViAGIBRBAnQiAWoqAgAiVCABIAhqKgIAlJIhViBYIFQgVJSSIVgLAkAgVyBXlCBYkiJYIFcgVpQiVCBUkiJUkiJVQ1JJHTpdRQRAIFggVJMiVENSSR06XUUNAQsgBiAIIBNBAnQQCBoMAQsgE0EBSA0BQwAAgD8gVZGVIVZDAACAPyBUkZUhWEEAIRQgE0EBRwRAIBNBfnEhEgNAIAggFEECdCICaiIBIFggVyABKgIAlCJVIAIgBmoiASoCACJUk5Q4AgAgASBWIFUgVJKUOAIAIAggAkEEciICaiIBIFggVyABKgIAlCJVIAIgBmoiASoCACJUk5Q4AgAgASBWIFUgVJKUOAIAIBRBAmohFCASQQJrIhINAAsLIBNBAXFFDQAgCCAUQQJ0IgJqIgEgWCBXIAEqAgCUIlUgAiAGaiIBKgIAIlSTlDgCACABIFYgVSBUkpQ4AgALIBhFDQAgE0EBSA0AIBNBA3EhDUEAIRQgE0EBa0EDTwRAIBNBfHEhEgNAIAYgFEECdCICaiIBIAEqAgCMOAIAIAYgAkEEcmoiASABKgIAjDgCACAGIAJBCHJqIgEgASoCAIw4AgAgBiACQQxyaiIBIAEqAgCMOAIAIBRBBGohFCASQQRrIhINAAsLIA1FDQADQCAGIBRBAnRqIgEgASoCAIw4AgAgFEEBaiEUIA1BAWsiDQ0ACwsgNEEgaiQAIAQMAQtBACFNICRB4AtqIAggEyAZIA5BACA7IDNBAnRqIDNBf0YbIAkgFAR/QQAFICggPC4BACAJdEECdGoLQwAAgD8gCiAEIDByEA4LIgILIQQgPSAWIEpsIgFqIAI6AAAgPSABIE5qaiAEOgAAIB8gOWooAgAhASAkQQA2ApgMIAEgNiA3amohASAZIBNBA3RKIQQgByAXRw0ACyAkKAKIDAUgBws2AiggJEGgDGokAAJAIAsEQCAiQQEQDSEBIBogACAXIBEgPiBGIC8gIigCFCAiKAIcZ2prQSBqICIgLhA6IAFFDQEgDygCKCEMIA8oAiQhNSAXIAAiAUoEQEEBIAl0IgJBASACQQFKGyEfIC5BASAuQQFKGyESIAlBA0YhGCAJQR9GIQ0DQCAaKAIgIgIgASIFQQFqIgFBAXRqLgEAIgYgAiAFQQF0IhZqLgEAIgJrIjpBfnEhBCA6QQFxIRNDAACAPyA6IAl0Ig63n7aVIVUgOSAFQQJ0aigCAEEBaiA6biAJdrJDAAAAvpS7RO85+v5CLuY/ohAatkMAAAA/lCFYIAUgLmwhGSACQX9zIRVBACEIQQAgBmshCgNAICsgGigCCCICIAhsIAVqQQJ0IgZqKgIAIVYgBiAlaioCACFXIAYgEWoqAgACfSAuQQFGBEAgViArIAIgBWpBAnQiAmoqAgAiVCBUIFZdGyFWIFcgAiAlaioCACJUIFQgV10bIVcLIFcLIFYgViBXXhuTQwAAAACXu0TvOfr+Qi7mv6IQGiFgAkAgDQ0AIFUgWCBgtiJUIFSSIlRD8wS1P5QgVCAYGyJUIFQgWF4blCJWjCFUIEkgCCAebEECdGogGigCICAWai4BACAJdEECdGohIyA9IAggGWpqIQdBACECQQAhEANAIAJBASAHLQAAIBB2QQFxIgYbIQICQCAGDQAgOkEBSA0AQQAhCyAEIQIgCiAVRwRAA0AgIyALIAl0IBBqQQJ0aiBWIFQgDEGNzOUAbEHf5rvjA2oiBkGAgAJxGzgCACAjIAtBAXIgCXQgEGpBAnRqIFYgVCAGQY3M5QBsQd/mu+MDaiIMQYCAAnEbOAIAIAtBAmohCyACQQJrIgINAAsLQQEhAiATRQ0AICMgCyAJdCAQakECdGogViBUIAxBjczlAGxB3+a74wNqIgxBgIACcRs4AgALIBBBAWoiECAfRw0ACyACRQ0AICMgDkMAAIA/IDUQIQsgCEEBaiIIIBJHDQALIAEgF0cNAAsLDAELIBogACAXIBEgPiBGIC8gIigCFCAiKAIcZ2prQSBqICIgLhA6CyA4IBcgKRshAQJAIDJFIExBAUhyDQAgTEEHcSEEQQAhCyBMQQFrQQdPBEAgTEF4cSEHA0AgESALQQJ0IgJqQYCAgI98NgIAIBEgAkEEcmpBgICAj3w2AgAgESACQQhyakGAgICPfDYCACARIAJBDHJqQYCAgI98NgIAIBEgAkEQcmpBgICAj3w2AgAgESACQRRyakGAgICPfDYCACARIAJBGHJqQYCAgI98NgIAIBEgAkEccmpBgICAj3w2AgAgC0EIaiELIAdBCGsiBw0ACwsgBEUNAANAIBEgC0ECdGpBgICAj3w2AgAgC0EBaiELIARBAWsiBA0ACwsgGiBJIBxBEGogESAAIAEgLiA/IEMgCSAPKAIQIEsgDygCJBAuQQAhBwNAIA8gDygCPCIBQQ8gAUEPShsiAjYCPCAPIA8oAkAiAUEPIAFBD0obIgE2AkAgHEEQaiAHQQJ0aigCACIEIAQgASACIBooAiwgDyoCSCAPKgJEIA8oAlAgDygCTCAaKAI8IE8gDygCJBAqIAkEQCAEIBooAiwiAkECdGoiASABIA8oAjwgUSAeIAJrIA8qAkQgWSAPKAJMIFIgGigCPCBPIA8oAiQQKgsgB0EBaiIHIEdHDQALIA8gDygCPDYCQCAPKgJEIVQgDyBZOAJEIA8gVDgCSCAPKAJMIQEgDyBSNgJMIA8gATYCUCAPIFE2AjwgCQRAIA8gUjYCUCAPIFk4AkggDyBRNgJACyAuQQFGBEAgESAdQQJ0IgFqIBEgARAIGgsgHUEBdCECAkAgQwRAIB1BAUgNASACQQEgAkEBShsiAUEBcSEEQQAhCSACQQJOBEAgAUH+////B3EhCwNAICUgCUECdCICaiIBIAEqAgAiVSACIBFqKgIAIlQgVCBVXhs4AgAgJSACQQRyIgJqIgEgASoCACJVIAIgEWoqAgAiVCBUIFVeGzgCACAJQQJqIQkgC0ECayILDQALCyAERQ0BICUgCUECdCICaiIBIAEqAgAiVSACIBFqKgIAIlQgVCBVXhs4AgAMAQsgKyAlIB1BA3QiARAIGiAlIBEgARAIGiAdQQFIDQAgQbJDbxKDOpRDAACAPyAPKAI0QQpIGyFYIAJBASACQQFKGyIBQQFxIQRBACEJIAJBAk4EQCABQf7///8HcSELA0AgUCAJQQJ0IgJqIgEgWCABKgIAkiJVIAIgEWoqAgAiVCBUIFVeGzgCACBQIAJBBHIiAmoiASBYIAEqAgCSIlUgAiARaioCACJUIFQgVV4bOAIAIAlBAmohCSALQQJrIgsNAAsLIARFDQAgUCAJQQJ0IgJqIgEgWCABKgIAkiJVIAIgEWoqAgAiVCBUIFVeGzgCAAsCQCAAQQFIDQAgAEEDcSEEQQAhCSAAQQFrQQNPBEAgAEF8cSEHA0AgESAJQQJ0IgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIBEgAkEEciIBakEANgIAIAEgK2pBgICAj3w2AgAgASAlakGAgICPfDYCACARIAJBCHIiAWpBADYCACABICtqQYCAgI98NgIAIAEgJWpBgICAj3w2AgAgESACQQxyIgFqQQA2AgAgASArakGAgICPfDYCACABICVqQYCAgI98NgIAIAlBBGohCSAHQQRrIgcNAAsLIARFDQADQCARIAlBAnQiAWpBADYCACABICtqQYCAgI98NgIAIAEgJWpBgICAj3w2AgAgCUEBaiEJIARBAWsiBA0ACwsCQCAXIB1OIgENACAdIBciCWtBA3EiCwRAA0AgESAJQQJ0IgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIAlBAWohCSALQQFrIgsNAAsLIB0gF0F/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(!ie(ae)){var oe=ae;ae=n.locateFile?n.locateFile(oe,s):s+oe}function x(){var e=ae;try{if(e==ae&&u)return new Uint8Array(u);if(ie(e))try{var t=C(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){re(e)}}function se(){return u||typeof fetch!=`function`?Promise.resolve().then(function(){return x()}):fetch(ae,{credentials:`same-origin`}).then(function(e){if(!e.ok)throw`failed to load wasm binary file at '`+ae+`'`;return e.arrayBuffer()}).catch(function(){return x()})}function S(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 ce=[null,[],[]],C=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},le={d:function(){re()},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=ce[e];if(d===0||d===10){d=e===1?c:l;for(var g=f,_=0,v=_+NaN,ee=_;g[ee]&&!(ee>=v);)++ee;if(16<ee-_&&g.subarray&&p)g=p.decode(g.subarray(_,ee));else{for(v=``;_<ee;){var y=g[_++];if(y&128){var b=g[_++]&63;if((y&224)==192)v+=String.fromCharCode((y&31)<<6|b);else{var te=g[_++]&63;y=(y&240)==224?(y&15)<<12|b<<6|te:(y&7)<<18|b<<12|te<<6|g[_++]&63,65536>y?v+=String.fromCharCode(y):(y-=65536,v+=String.fromCharCode(55296|y>>10,56320|y&1023))}}else v+=String.fromCharCode(y)}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),b--,n.monitorRunDependencies&&n.monitorRunDependencies(b),b==0&&(te!==null&&(clearInterval(te),te=null),ne&&(e=ne,ne=null,e()))}function t(t){e(t.instance)}function r(e){return se().then(function(e){return WebAssembly.instantiate(e,a)}).then(e,function(e){l(`failed to asynchronously prepare wasm: `+e),re(e)})}var a={a:le};if(b++,n.monitorRunDependencies&&n.monitorRunDependencies(b),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`||ie(ae)||typeof fetch!=`function`?r(t):fetch(ae,{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 ue;ne=function e(){ue||de(),ue||(ne=e)};function de(){function e(){if(!ue&&(ue=!0,n.calledRun=!0,!f)){if(S(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();ee.unshift(e)}S(ee)}}if(!(0<b)){if(n.preRun)for(typeof n.preRun==`function`&&(n.preRun=[n.preRun]);n.preRun.length;)y();S(_),0<b||(n.setStatus?(n.setStatus(`Running...`),setTimeout(function(){setTimeout(function(){n.setStatus(``)},1),e()},1)):e())}}if(n.run=de,n.preInit)for(typeof n.preInit==`function`&&(n.preInit=[n.preInit]);0<n.preInit.length;)n.preInit.pop()();return de(),t.ready})})()})),Oy,ky,Ay,jy=n((()=>{Dy(),h(),N(),ky=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}(ky||{}),Ay=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(`${ky[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())}},Oy=Ay,m(Ay,`MAX_OPUS_BUFFER`,16384),m(Ay,`MAX_SAMPLES`,6*960),m(Ay,`create`,function(){var e=M(function*(e,t){return new Oy(yield Ey(),e,t)});return function(t,n){return e.apply(this,arguments)}}())})),My=n((()=>{jy()})),Ny=r({OpusDecoderContext:()=>Fy}),Py,Fy,Iy=n((()=>{Ti(),V(),My(),h(),z(),N(),Fy=class{constructor(e){m(this,`decodedSamples`,[]),m(this,`decoder`,void 0),m(this,`errors`,new C(10)),m(this,`unload`,()=>{this.decoder.unload()}),m(this,`enqueue`,e=>{try{let t=Date.now(),n=this.decoder.decode(new Uint8Array(e.data));this.decodedSamples.push(R(R({},e),{},{type:`audio`,format:`f32`,data:n,statistics:{decodeTime:Date.now()-t,transportTimeFromWorker:0,transportTimeToWorker:0,samplesInBatch:1}}))}catch(e){e instanceof Error&&this.errors.push(ai(!1,e))}}),m(this,`initSegment`,x),m(this,`take`,()=>this.decodedSamples.shift()),this.decoder=e}error(){return this.errors.pop()}},Py=Fy,m(Fy,`create`,function(){var e=M(function*(e,t){return new Py(yield Ay.create(e,t))});return function(t,n){return e.apply(this,arguments)}}())}));function Ly(e){let t;try{if(t=zy&&(self.URL||self.webkitURL).createObjectURL(zy),!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(Ry),{name:e==null?void 0:e.name})}}var Ry,zy,By=n((()=>{Ry=`var __defProp = Object.defineProperty;
50
50
  var __defProps = Object.defineProperties;
51
51
  var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
52
52
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
@@ -1219,15 +1219,15 @@ var __async = (__this, __arguments, generator) => {
1219
1219
  }
1220
1220
  });
1221
1221
  })();
1222
- `,Ly=typeof self<`u`&&self.Blob&&new Blob([`(self.URL || self.webkitURL).revokeObjectURL(self.location.href);`,Iy],{type:`text/javascript;charset=utf-8`})})),zy=r({VideoDecoderWorkerContext:()=>Vy}),By,Vy,Hy=n((()=>{V(),Ry(),h(),z(),N(),Vy=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 C(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 C(1e3)),m(this,`samplesInTransitToWorker`,0),m(this,`workerPendingDecodeCount`,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,`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`error`:this.errors.push(Error(e.data.message)),this.samplesInTransitToWorker=0,this.workerPendingDecodeCount=0;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)}error(){return this.errors.pop()}},By=Vy,m(Vy,`create`,function(){var e=M(function*(e,t,n,r=!1,i=`no-preference`,a,o){let s=new Fy,{isWebCodecs:c,usingOffscreenCanvas:l}=yield new Promise((n,o)=>{let c=!1,l=setTimeout(()=>{c||(c=!0,u(Error(`Decoder worker initialization timed out`)))},1e4),u=e=>{if(c=!0,clearTimeout(l),s.removeEventListener(`message`,d),s.terminate(),e instanceof Error){o(e);return}o(Error(`Failed to initialize decoder worker`))},d=e=>{if(!c)switch(c=!0,clearTimeout(l),s.removeEventListener(`message`,d),e.data.type){case`ready`:n({isWebCodecs:e.data.isWebCodecs,usingOffscreenCanvas:e.data.usingOffscreenCanvas});break;case`error`:var t;u(Error((t=e.data.message)==null?`Failed to initialize decoder worker`:t));break;default:u(Error(`Failed to initialize decoder worker`));break}};s.addEventListener(`message`,d);let f={type:`init`,logLevel:t,useWebCodecs:r,webcodecsHardwareAcceleration:i,offscreenCanvas:a};try{a?s.postMessage(f,[a]):s.postMessage(f)}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{s.postMessage({type:`init`,logLevel:t,useWebCodecs:r,webcodecsHardwareAcceleration:i,offscreenCanvas:void 0})}catch(e){u(e)}}else u(n)}});return new By(s,e,n,o,c,l)});return function(t,n,r){return e.apply(this,arguments)}}())}));Ci(),V(),h(),z(),N();var Uy=5,Wy=100,Gy=1e3,Ky=class e{constructor(e,t,n,r,i=!1,a=!1,o=!1){m(this,`timers`,Vn.create()),m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`trackContexts`,void 0),m(this,`playbackSource`,void 0),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`,()=>{let e=this._audioWebCodecsInUse?20:Wy;this.timers.setInterval(this.emitDecodedFrames,e),this.timers.setInterval(this.emitDecodeRate,Gy),this.emitter.on(`init segment`,this.onInitSegment),this.emitter.on(`coded sample`,this.decode)}),m(this,`unload`,()=>{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)}),m(this,`suspend`,()=>{this.isSuspended=!0}),m(this,`unsuspend`,()=>{this.isSuspended=!1}),m(this,`getBuffer`,e=>{var t;return(t=this.trackContexts.get(e))==null?void 0:t.buffer}),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=Pt(t.decodeTime.items()),i=Pt(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=Pt((e=a==null?void 0:a.decodeTime.items())==null?[]:e),s=Pt((t=a==null?void 0:a.transportTime.items())==null?[]:t),c=Pt((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:Mt(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,`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 H(`No known decoder context`,{code:`no_known_decoder_context`,isFatal:!1});n.initSegment(e)}),m(this,`decode`,e=>{let t=this.trackContexts.get(e.type);if(!t)throw new H(`No known decoder context`,{code:`no_known_decoder_context`,isFatal:!1});if(this.isSuspended)return;t.sampleDuration=e.duration/e.timescale*1e3;let n=e.compositionTimeOffset||0,{decoderContext:r,buffer:i}=t,a=(e.timestamp+n)/e.timescale*1e3,o=e.duration/e.timescale*1e3,s=i[i.length-1];if(!s||a-Uy>s.end?i.push({start:a,end:a+o}):a+o*5<s.end?(t.buffer=[{start:a,end:a+o}],e.type===`video`&&(this.videoKeyframeTimestamps=[])):s.end=a+o,e.type===`video`&&e.isSync){let e=this.videoKeyframeTimestamps[this.videoKeyframeTimestamps.length-1];e!==void 0&&a<e&&(this.videoKeyframeTimestamps=[]),this.videoKeyframeTimestamps.push(a),this.videoKeyframeTimestamps.length>20&&(this.videoKeyframeTimestamps=this.videoKeyframeTimestamps.slice(-20))}r.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;)this.emitter.emit(`error`,ri(!1,s));for(;(e=t.decoderContext.take())!==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 c=(a=(o=t.decoderContext).takeEstimatedStatistics)==null?void 0:a.call(o);for(;c!==void 0;){var l,u;t.decodeTime.push(c.decodeTime),t.transportTime.push(c.transportTime),c=(l=(u=t.decoderContext).takeEstimatedStatistics)==null?void 0:l.call(u)}})}),m(this,`emitDecodeRate`,()=>{if(this.decodeRateGraceIntervals>0){this.decodeRateGraceIntervals--;return}this.currentVideoDecodeRate=this.calculateVideoDecodeRate(),this.emitter.emit(`video decode rate`,this.currentVideoDecodeRate)}),m(this,`updateBufferState`,()=>{let e;if(this.trackContexts.forEach(t=>{if(!e)e=t.buffer;else{var n,r,i,a;let o=(n=(r=t.buffer[t.buffer.length-1])==null?void 0:r.end)==null?0:n;((i=(a=e[e.length-1])==null?void 0:a.end)==null?0:i)>o&&(e=t.buffer)}}),!e)return;let t=this.playbackSource.currentTime,n=!0;this.trackContexts.forEach(e=>{e.buffer.some(e=>e.start<=t&&t<e.end)||(n=!1)});let r=n?`playing`:`buffering`;this.emitter.emit(`buffer state`,{buffered:e,currentTime:this.playbackSource.currentTime,isPaused:this.playbackSource.isPaused,playbackState:r})}),this.logger=t,this.emitter=e,this.trackContexts=n,this.playbackSource=r,this._webCodecsInUse=i,this._audioWebCodecsInUse=a,this._offscreenCanvasInUse=o}static create(t,n,r,i,a,o,s=!1,c=`no-preference`,l){return M(function*(){let u=new Map,d=new Set,f=!1,p=!1,m=!1;for(let e of i){if(d.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(d.add(e.type),e.type){case`audio`:{let t,r,i=!1;if(s){let{WebCodecsAudioDecoderContext:a}=yield Promise.resolve().then(()=>(Cy(),yy));if(i=a.isSupported(),i)try{t=yield a.create(n.createContext(`WebCodecsAudio`)),p=!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(()=>(Py(),jy));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 ii(e.codec,t,r)}u.set(e.type,{buffer:[],decoderContext:t,decodeTime:new C(100),transportTime:new C(100),sampleDuration:40});break}case`video`:{let{VideoDecoderWorkerContext:t}=yield Promise.resolve().then(()=>(Hy(),zy)),i=yield t.create(n.createContext(`VideoDecoderWorker`),r,o,s,c,l,()=>a.currentTime);f=i.isWebCodecs,m=i.usingOffscreenCanvas,u.set(e.type,{buffer:[],decoderContext:i,decodeTime:new C(100),transportTime:new C(100),sampleDuration:40,getRenderStatistics:i.getRenderStatistics});break}default:break}}return new e(t,n,u,a,f,p,m)})()}};h();var qy,Jy=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,`unload`,()=>{document.removeEventListener(`visibilitychange`,this.onVisibilityChanged),window.removeEventListener(`pagehide`,this.onPageHide),window.removeEventListener(`online`,this.onOnline),window.removeEventListener(`offline`,this.onOffline)}),m(this,`load`,()=>{document.addEventListener(`visibilitychange`,this.onVisibilityChanged),window.addEventListener(`pagehide`,this.onPageHide),window.addEventListener(`online`,this.onOnline),window.addEventListener(`offline`,this.onOffline)}),m(this,`unsuspend`,()=>{}),m(this,`getStatistics`,()=>{var e,t,n,r,i;return{isVisible:this.isVisible,isOnline:this.isOnline,isVisibleCount:this.isVisibleCount,isHiddenCount:this.isHiddenCount,isOnlineCount:this.isOnlineCount,isOfflineCount:this.isOfflineCount,navigatorRtt:(e=navigator.connection)==null?void 0:e.rtt,navigatorEffectiveType:(t=navigator.connection)==null?void 0:t.effectiveType,navigatorConnectionType:(n=navigator.connection)==null?void 0:n.type,navigatorSaveData:(r=navigator.connection)==null?void 0:r.saveData,navigatorDownlink:(i=navigator.connection)==null?void 0:i.downlink}}),m(this,`onOnline`,()=>this.isOnlineCount++),m(this,`onOffline`,()=>this.isOfflineCount++),m(this,`onPageHide`,e=>this.emitter.emit(`pagehide`,e)),m(this,`onVisibilityChanged`,()=>{this.setIsActive(document.visibilityState===`visible`)}),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`}};qy=Jy,m(Jy,`create`,e=>new qy(e)),V(),h(),z();var Yy,Xy=e=>(t,n,r)=>t.timestamp<=n||t.timestampAdded<=r-e,Zy=class e{constructor(t,n,r){m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`waitingEvents`,[]),m(this,`isTriggered`,Xy(e.EVENT_TIMEOUT)),m(this,`timeSource`,void 0),m(this,`timers`,new Vn),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:Date.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=Date.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}};Yy=Zy,m(Zy,`EVENT_TIMEOUT`,5e3),m(Zy,`EVENT_CHECK_INTERVAL`,20),m(Zy,`create`,(e,t,n)=>new Yy(e,t,n)),Ci(),V(),h();var Qy,$y=class e{constructor(t){m(this,`emitter`,void 0),m(this,`timers`,Vn.create()),m(this,`bytesReceived`,new Map),m(this,`timeoutInterval`,void 0),m(this,`lastBytesUpdated`,Date.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 Lt(20),this.bytesReceived.set(t,r)),n>0&&(this.lastBytesUpdated=Date.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=Date.now(),this.timeoutInterval=this.timers.setInterval(this.checkTimeout,e.UPDATE_RECEIVED_BYTES_INTERVAL))}),m(this,`checkTimeout`,()=>{let t=Date.now()-this.lastBytesUpdated;if(this.totalBytesReceived()===0&&t>e.NO_DATA_ERROR_TIMEOUT){this.emitter.emit(`error`,gi()),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}};Qy=$y,m($y,`NO_DATA_ERROR_TIMEOUT`,20*1e3),m($y,`NO_DATA_TIMEOUT`,5*1e3),m($y,`UPDATE_RECEIVED_BYTES_INTERVAL`,1e3),m($y,`create`,e=>new Qy(e)),V(),h();var eb=1e3,tb=50,nb=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,n,r,i;let a=this.getTrackingKey(e.type,e.renditionId),o=(t=(n=globalThis.performance)==null||(r=n.now)==null?void 0:r.call(n))==null?Date.now():t,s=e.timestamp/e.timescale*1e3,c=this.trackingState.get(a);if(!c){this.trackingState.set(a,{lastArrivalTime:o,lastTimestampMs:s,jitterSamples:new C(eb),interArrivalTimes:new C(eb)}),this.runningJitter.set(a,0),this.recentJitterSamples.set(a,new C(tb));return}let l=s-c.lastTimestampMs;if(l<=0){c.lastArrivalTime=o,c.lastTimestampMs=s;return}let u=o-c.lastArrivalTime,d=Math.abs(u-l);c.jitterSamples.push(d),c.interArrivalTimes.push(u);let f=(i=this.runningJitter.get(a))==null?0:i,p=f+(d-f)/16;this.runningJitter.set(a,p);let m=this.recentJitterSamples.get(a);m||(m=new C(tb),this.recentJitterSamples.set(a,m)),m.push(d),c.lastArrivalTime=o,c.lastTimestampMs=s}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}=Pt((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`)}}};Ci(),V(),h(),N();var rb=()=>window.AudioContext||window.webkitAudioContext,ib=class e extends Ht{constructor(){var t;super(),t=this,m(this,`context`,new(rb())),m(this,`timers`,Vn.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`,M(function*(){try{return yield Promise.race([t.context.resume(),ir(1e3,ui())])}catch(e){throw t.suspend().catch(x),e}})),m(this,`suspend`,M(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(ib,`CHECK_INTERVAL`,1e3),Ci(),V(),h(),N(),z();var ab,ob=150,sb=400,cb=e=>e===void 0?5:e<=ob?1:e<=sb?2:5,lb=class extends Ht{get isContextRunning(){var e;return((e=this.audio)==null?void 0:e.state)===`running`}get volume(){return this._volume}set volume(e){this._volume=e,this.muted||this.setGain(e)}get seekTime(){return 0}get totalSeekTime(){return 0}get isSeeking(){return!1}get muted(){var e;return this._muted||!((e=this.audio)!=null&&e.isRunning)}set muted(e){this._userProvidedMuted=e,this._muted=e,this.setGain(this._volume)}get isPaused(){return!1}get currentTime(){var e;return!this.audio||!this.audio.isRunning||this.audio.isStuck?this.clockSource.currentTime:this.audio.currentTime*1e3+((e=this.clockDelta)==null?0:e)}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=cb(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 C(500)),m(this,`unplayedBufferSources`,new C(100)),m(this,`sampleRate`,48e3),m(this,`channels`,2),m(this,`index`,0),m(this,`clockSource`,void 0),m(this,`clockDelta`,void 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,`audioBufferMultiplier`,void 0),m(this,`isActivated`,!1),m(this,`unload`,M(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`,()=>{var e;this.setGain(this._volume),this.ignoreSuspendCalls=!!this.audio,(e=this.audio)==null||e.suspend().then(M(function*(){yield a.resume(),a.ignoreSuspendCalls=!1})).catch(()=>{this.ignoreSuspendCalls=!1,this.emit(`state change`,`suspended`)})}),m(this,`flush`,(e=this.samples.length)=>{if(!this.audio||!this.gainNode)throw new H(`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.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`,M(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`,M(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,`getAudioContext`,()=>this.audio?this.audio:this.setupContext()),m(this,`setupContext`,()=>{var e,t,n;return(e=this.audio)==null||e.unload(),this.audio=new ib,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`,()=>{this.reInitWhenStuck&&(this.logger.info(`Re-init audio context`),this.setupContext(),this.resume().catch(x),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=cb(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}};ab=lb,m(lb,`create`,(e,t,n)=>new ab(e,t,n)),h();var ub,db=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 Hi),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 Pr,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}};ub=db,m(db,`create`,(e,t,n,r,i,a)=>new ub(e,t,n,r,i,a)),T(),k(),j();var fb=new WeakMap,pb=class{constructor(){w(this,fb,[]),O(fb,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 A(fb,this).push(i),i}set language(e){A(fb,this).forEach(t=>{t.language===e?t.mode=`showing`:t.mode=`hidden`})}get language(){var e;return(e=A(fb,this).find(e=>e.mode===`showing`))==null?void 0:e.language}getActiveCues(e){let t=A(fb,this).find(e=>e.mode===`showing`);return t?t.cues.filter(({startTime:t,endTime:n})=>e>=t&&e<=n):[]}};V(),h();var mb=(e,t)=>{let n;for(n=t;e>1;e--)n+=t;return n},hb=class{constructor(){m(this,`audio`,void 0),m(this,`unmute`,()=>this.audio.play().catch(x));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`+mb(23,`A`)+`WGluZwAAAA8AAAACAAACcQCA`+mb(16,`gICA`)+mb(66,`/`)+`8AAABhTEFNRTMuMTAwA8MAAAAAAAAAABQgJAUHQQAB9AAAAnGMHkkI`+mb(320,`A`)+`//sQxAADgnABGiAAQBCqgCRMAAgEAH`+mb(15,`/`)+`7+n/9FTuQsQH//////2NG0jWUGlio5gLQTOtIoeR2WX////X4s9Atb/JRVCbBUpeRUq`+mb(18,`/`)+`9RUi0f2jn/+xDECgPCjAEQAABN4AAANIAAAAQVTEFNRTMuMTAw`+mb(97,`V`)+`Q==`,this.audio.loop=!1,this.audio.load();else throw Error(`Failed to create audio tag`)}};Ci(),V(),h();var gb,_b=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 hb),m(this,`_isPaused`,!1),m(this,`isDisconnected`,!1),m(this,`timers`,new Vn),m(this,`isVideoRenderingEnabled`,!0),m(this,`isLoaded`,!1),m(this,`isSuspended`,!0),m(this,`isVideoPlayerLoaded`,!1),m(this,`textTracks`,new pb),m(this,`playbackRate`,void 0),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`,()=>this.videoPlayer.getStatistics()),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`,ai(!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=lb.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.emitter.emit(`volume state`,{volume:this.volume,isMuted:this.muted})}),this.videoPlayer=db.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}get muted(){return this.audioPlayer.muted}set muted(e){let t=this.muted;this.audioPlayer.muted=e,!e&&t&&this.activateAudioPlayer().catch(x)}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`)}};gb=_b,m(_b,`create`,(e,t,n,r,i,a,o,s)=>new gb(e,t,n,r,i,a,o,s)),Ci(),V(),h();var vb,yb=class{constructor(e,t,n,r,{muted:i,volume:a,type:o,poster:s,offscreenCanvas:c,bufferTime:l}){m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`mediaElement`,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 Vn),m(this,`offscreenCanvas`,void 0),m(this,`nativeTextTrack`,void 0),m(this,`nativeTrackCues`,[]),m(this,`volumeState`,void 0),m(this,`textTracks`,new pb),m(this,`reset`,()=>{}),m(this,`load`,()=>{this.mediaElement.load(),this.emitter.on(`decoded frame`,this.onDecodedFrame),this.emitter.on(`flush buffers`,this.flushBuffers),this.emitter.on(`ios-hack: reset size`,this.resetCanvasSize),this.emitter.on(`enter picture in picture`,this.onEnterIOSHack),this.emitter.on(`exit picture in picture`,this.onExitIOSHack),this.element().element.addEventListener(`webkitendfullscreen`,this.onExitIOSHack),this.element().element.addEventListener(`webkitbeginfullscreen`,this.onEnterIOSHack),this.videoPlayer.load(),this.nativeTextTrack=this.mediaElement.element.addTextTrack(`subtitles`,``,``),this.nativeTextTrack.mode=`showing`,this.timers.setInterval(()=>{if(!this.textTracks.language){this.clearNativeTrackCues();return}let e=this.textTracks.getActiveCues(this.currentTime/1e3);this.updateNativeTrackCues(e)},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.removeEventListener(`webkitendfullscreen`,this.onExitIOSHack),this.element().element.removeEventListener(`webkitbeginfullscreen`,this.onEnterIOSHack),this.clearNativeTrackCues(),this.nativeTextTrack=void 0,this.mediaElement.unload(),this.timers.unload(),this.audioPlayer.unload(),this.videoPlayer.unload()}),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,`getStatistics`,()=>this.videoPlayer.getStatistics()),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,`onEnterIOSHack`,()=>{this.mediaElement._iosHackEnterPiPMode()}),m(this,`onExitIOSHack`,()=>{this.mediaElement._iosHackExitPiPMode()}),m(this,`onDecodedFrame`,e=>{try{this.audioPlayer.onDecodedFrame(e)}catch(e){e instanceof Error&&this.emitter.emit(`error`,ai(!1,e))}this.offscreenCanvas||this.videoPlayer.onDecodedFrame(e)}),m(this,`onVideoPlayerError`,e=>{if(e instanceof H){this.emitter.emit(`error`,e);return}this.emitter.emit(`error`,ri(!1,e))}),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=e.captureStream(),n=this.audioPlayer.useMediaStreamDestination().stream,r=[...t.getTracks(),...n.getTracks()];this.logger.info(`Video tracks: ${t.getTracks().length}, Audio tracks: ${n.getTracks().length}`);let i=this.mediaElement.element.srcObject;i instanceof MediaStream&&i.getVideoTracks().forEach(e=>e.stop()),this.mediaElement.element.srcObject=new MediaStream(r),this.isDisconnected=!1}),m(this,`setOffscreenCanvas`,e=>{this.offscreenCanvas!==e&&(this.offscreenCanvas=e,this.reconnectCanvasStream())}),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,`clearNativeTrackCues`,()=>{if(this.nativeTextTrack){for(let e of this.nativeTrackCues)try{this.nativeTextTrack.removeCue(e)}catch(e){}this.nativeTrackCues=[]}}),m(this,`updateNativeTrackCues`,e=>{let t=this.nativeTextTrack;if(!t)return;let n=e.map(e=>e.text),r=this.nativeTrackCues.map(e=>e.text);if(!(n.length===r.length&&n.every((e,t)=>e===r[t]))){this.clearNativeTrackCues();for(let n of e){let e=new VTTCue(0,999999999,n.text);t.addCue(e),this.nativeTrackCues.push(e)}}}),m(this,`updateVolumeState`,()=>{let e={isMuted:this.muted,volume:this.volume};Bt(e,this.volumeState)||(this.volumeState=e,this.emitter.emit(`volume state`,this.volumeState))}),this.logger=t,this.emitter=e,this.pool=n,this._userProvidedMuted=i,this.offscreenCanvas=c,this.emitter.on(`target buffer time`,this.onTargetBufferTime),this.mediaElement=new nl({poster:s,type:o,muted:i,volume:a,autoplay:!1,logger:this.logger.createContext(`MediaElement`)}),this.mediaElement.on(`volume state`,e=>{this.updateVolumeState(),!e.isMuted&&!this.audioPlayer.isContextRunning&&this.activateAudioPlayer().catch(x),e.isMuted||(this._userProvidedMuted=!1)}),this.mediaElement.on(`media element state`,e=>{e===`paused`&&this.audioPlayer.flushBuffer(),this.emitter.emit(`media element state`,e)}),this.audioPlayer=lb.create(this.logger.createContext(`AudioPlayerModule`),r,{muted:!1,reInitWhenStuck:!1,bufferTime:l}),this.audioPlayer.on(`stuck`,()=>{this.isDisconnected=!0}),this.audioPlayer.on(`state change`,e=>{e===`suspended`||e===`interrupted`?this.mediaElement.muted=!0:e===`running`&&(this.mediaElement.muted=this._userProvidedMuted||document.visibilityState===`hidden`),this.updateVolumeState()}),this.videoPlayer=db.create(this.logger.createContext(`VideoPlayerModule`),this.audioPlayer,this.pool,this.mediaElement.element,()=>this.reconnectCanvasStream(),this.onVideoPlayerError),this.volumeState={volume:this.volume,isMuted:this.muted}}get volume(){return this.mediaElement.volume}set volume(e){this.mediaElement.volume=e}get muted(){return this.mediaElement.muted||this.audioPlayer.muted}set muted(e){let t=this.muted;this._userProvidedMuted=e,this.mediaElement.muted=e,!e&&t&&this.activateAudioPlayer().catch(x)}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.mediaElement.isPaused}get isSeeking(){return this.mediaElement.isSeeking}get audioNode(){return this.audioPlayer.audioNode}play(){let e=this._userProvidedMuted;return this.activateAudioPlayer().catch(()=>{e||this.emitter.emit(`needs user input`,{forAudio:!0,forVideo:!1})}),this.mediaElement.play()}pause(){this.mediaElement.pause()}};vb=yb,m(yb,`create`,(e,t,n,r,i)=>new vb(e,t,n,r,i)),V(),h();var bb=()=>e=>xb(e.buffered.start(0),e.buffered.end(e.buffered.length-1)),xb=(e,t)=>n=>n.remove(Math.max(0,e),Math.min(1/0,t)),Sb=e=>t=>t.appendBuffer(e),Cb=e=>t=>t.changeType(e),wb=e=>t=>e(t),Tb=class{constructor(e){m(this,`commandQueue`,[]),m(this,`sourceBuffer`,void 0),m(this,`errorCallback`,void 0),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,`appendBuffer`,(e,t)=>new Promise((n,r)=>{if(t&&this.currentInit!==t){let e=new kt(Sb(t),n,r);this.commandQueue.push(e),this.currentInit=t}let i=new kt(Sb(e),n,r);this.commandQueue.push(i),this.handleQueue()})),m(this,`execute`,e=>new Promise((t,n)=>{let r=new kt(wb(e),t,n);this.commandQueue.push(r),this.handleQueue()})),m(this,`buffered`,()=>this.sourceBuffer.buffered),m(this,`removeFromMediaSource`,e=>{this.dispose(),e.removeSourceBuffer(this.sourceBuffer)}),m(this,`dispose`,()=>{this.sourceBuffer.removeEventListener(`updateend`,this.handleQueue),this.sourceBuffer.removeEventListener(`error`,this.onError),this.commandQueue=[],this.errorCallback=void 0}),m(this,`changeType`,e=>new Promise((t,n)=>{let r=new kt(Cb(e),t,n);this.commandQueue.push(r),this.handleQueue()})),m(this,`removeBuffer`,(e,t)=>new Promise((n,r)=>{let i=new kt(xb(e,t),n,r);this.commandQueue.push(i),this.handleQueue()})),m(this,`flush`,()=>new Promise((e,t)=>{let n=new kt(bb,e,t);this.commandQueue.push(n),this.handleQueue()})),this.sourceBuffer=e,this.sourceBuffer.addEventListener(`updateend`,this.handleQueue),this.sourceBuffer.addEventListener(`error`,this.onError)}};V(),h();var Eb=class extends Ht{constructor(){super(),m(this,`MediaSource`,Be()),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 Tb(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(Eb,`isTypeSupported`,e=>{var t,n;return(t=(n=Be())==null?void 0:n.isTypeSupported(e))==null?!1:t}),Ci(),V(),h(),z(),N();var Db,Ob=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 kb(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:Date.now()})}function Ab({initSegments:e,pendingSamples:t}){return{state:`uninitialized`,initSegments:e==null?new Ob:e,sequenceNumber:0,isWorkingOnPendingSamples:!1,hasFirstSync:t.some(e=>e.isSync),pendingSamples:t==null?[]:t,pendingSamplesOffset:0,consecutiveQuotaExceededErrorCount:0,successfulAppendCalls:0}}var jb=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`,Vn.create()),m(this,`emitter`,void 0),m(this,`mediaElement`,void 0),m(this,`mediaSource`,new Eb),m(this,`trackContexts`,new Map),m(this,`autoRecoverFromMediaErrors`,!0),m(this,`quotaErrorCount`,0),m(this,`recoveredFromErrorCount`,0),m(this,`sourceOpenStartTime`,Date.now()),m(this,`sourceOpenEndTime`,Date.now()),m(this,`pendingTracksToAddSourceBuffers`,void 0),m(this,`hasAddedInitialPosterFrame`,!0),m(this,`videoKeyframeTimestamps`,[]),m(this,`isReopening`,!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)}),m(this,`unload`,()=>{this.logger.debug(`Unloading module...`),this.emitter.off(`init segment`,this.init),this.emitter.off(`coded sample`,this.onCodedSample),this.emitter.off(`flush buffers`,this.flushBuffers),this.emitter.off(`fragment`,this.onFragment),this.mediaSource.off(`source ended`,this.onSourceEnded),this.mediaSource.off(`source open`,this.onSourceOpen),this.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(`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:Mt(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`,()=>{this.videoKeyframeTimestamps=[],this.trackContexts.forEach(e=>{e.pendingSamples=[],e.pendingSamplesOffset=0,e.hasFirstSync=!1,e.state!==`uninitialized`&&this.mediaSource.isOpen()&&e.sourceBuffer.removeBuffer(0,1/0).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=Ab({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=Ab({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=kb(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=M(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=Ab({pendingSamples:[],initSegments:new Ob}),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){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=Ab({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 Nb(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 ci(e.type,e.renditionId);n.state===`initialized`&&(n.mimeType=t);let r=Tc({codec:e.codec,timescale:e.timescale,initData:e.data});r&&n.initSegments.set(e.channelId,e.renditionId,new Uint8Array(r))}),m(this,`append`,function(){var e=M(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 oi(n.renditionId,n.channelId);if(!i)throw ci(n.type,n.renditionId);if(i.state===`uninitialized`)throw li(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){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&&Date.now()-i.lastBufferCleanupTime>1e4&&(i.lastBufferCleanupTime=Date.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=Mc(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 ci(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 ci(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||Rb(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 Error){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=si(!1,n,t.consecutiveQuotaExceededErrorCount,e.type);this.emitter.emit(`error`,r)}}else{let r=si(!1,n,t.consecutiveQuotaExceededErrorCount,e.type);this.emitter.emit(`error`,r)}this.mediaElement.error&&this.onSourceEnded()}}}))}}),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=Date.now(),this.isReopening=!1,this.pendingTracksToAddSourceBuffers&&(this.setSourceBuffers(this.pendingTracksToAddSourceBuffers),this.pendingTracksToAddSourceBuffers=void 0)}),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=Date.now(),this.pendingTracksToAddSourceBuffers=n,this.mediaSource.detach(this.mediaElement),this.setTrackContexts(this.trackContexts),this.mediaSource.attach(this.mediaElement),t&&this.mediaElement.play().catch(x)}),m(this,`onMediaElementError`,()=>{let{error:e}=this.mediaElement;if(!e||this.isReopening)return;let t=ni(/AUDIO_RENDERER/.test(e.message)||!this.autoRecoverFromMediaErrors,e);this.logger.error(`MediaElement error`,{error:t}),this.emitter.emit(`error`,t),t.isFatal()||(this.emitter.emit(`recovered from media error`,{error:t,count:this.recoveredFromErrorCount}),this.reopenMediaSource(`media element error recovery`))}),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)=>Pb(e,t),e[0]?Array.from(e[0]):[])),m(this,`getPlaybackStateForBufferedRanges`,(e,t)=>Mb(e,t)?`playing`:`buffering`),this.logger=e,this.mediaElement=n,this.emitter=t}};Db=jb,m(jb,`create`,(e,t,n)=>{let r=new Db(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(`seeking`,r.onPlaybackPauseOrSeek),r.mediaSource.attach(n),r});var Mb=(e,t)=>t.some(t=>t.start<=e&&e<t.end),Nb=(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}}}},Pb=(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},Fb=(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},Ib=32,Lb=e=>{let t=e.pendingSamplesOffset;if(t!==0){if(t>=e.pendingSamples.length){e.pendingSamples=[],e.pendingSamplesOffset=0;return}t<Ib||t*2<e.pendingSamples.length||(e.pendingSamples=e.pendingSamples.slice(t),e.pendingSamplesOffset=0)}},Rb=function(){var e=M(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(Fb(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?Fb(e.previousSample,a):!0),e.pendingSamplesOffset=i+1,e.previousSample=r[r.length-1],Lb(e)}e.isWorkingOnPendingSamples=!1});return function(t,n,r){return e.apply(this,arguments)}}();V(),h(),N();var zb,Bb=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),Ct(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),Ct(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=yt(e),this.logger.debug(`Enter picture in picture`),this.emitter.emit(`enter picture in picture`,this)}),m(this,`requestStandardPictureInPicture`,M(function*(){if(!n.element)throw Error(`Picture in picture is not supported`);let e=mt(n.element);if(!e)throw Error(`Picture in picture is not supported`);yield e()})),m(this,`exitStandardPictureInPicture`,M(function*(){let e=ht();if(!e)throw Error(`Picture in picture is not supported`);yield e()})),m(this,`isStandardPictureInPictureSupported`,()=>!!this.element&&vt(this.element)),m(this,`isStandardPictureInPictureActive`,()=>!!this.element&&_t()),m(this,`isWebkitPresentationModeActive`,()=>!!this.element&&bt(this.element)===`picture-in-picture`),m(this,`requestWebkitPresentationMode`,function(){var e=M(function*(e){return n.element&&xt(n.element,e),Promise.resolve()});return function(t){return e.apply(this,arguments)}}()),m(this,`isWebkitPresentationModeSupported`,()=>!!this.element&&St(this.element)),this.emitter=e,this.logger=t,this.emitter.on(`add picture in picture listener`,this.onEnablePictureInPicture)}};zb=Bb,m(Bb,`create`,(e,t)=>new zb(e,t)),h();var Vb,Hb=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=e.some(e=>e.start<=r&&r<e.end),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&&(this.firstFrameTime=Date.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)}};Vb=Hb,m(Hb,`create`,(e,t,n,r)=>new Vb(e,t,n,r)),V(),h();var Ub,Wb=()=>({upgradesFromLevel:[],downgradesFromLevel:[],bufferingRanges:[],activeRanges:[],decodeRate:2**53-1}),Gb=()=>({levels:{},levelDowngrades:[],levelUpgrades:[],bufferFullness:0,general:Wb()}),Kb=class{constructor(e,t,n){m(this,`minBufferFullnessLengthForRegression`,6),m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`timers`,Vn.create()),m(this,`metrics`,Gb()),m(this,`bufferFullness`,new C(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,`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)}),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.suspend()}),m(this,`suspend`,()=>{this.isSuspended=!0,this.timers.unload(),this.stopBuffering(),this.unsetActive()}),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=Gn(this.metrics.general.activeRanges);if(Object.entries(this.metrics.levels).forEach(([n,r])=>{var i;let a=parseInt(n,10),o=t?Gn(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=Gn(this.metrics.general.bufferingRanges);if(Object.entries(this.metrics.levels).forEach(([n,r])=>{var i;let a=parseInt(n,10),o=t?Gn(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>=Date.now()-e).length),m(this,`timeSpentBufferingLast`,e=>Kn(this.metrics.general.bufferingRanges,e)),m(this,`timeSpentActiveLast`,e=>Kn(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`,()=>Gn(this.metrics.general.bufferingRanges)),m(this,`timeActive`,()=>Gn(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(Date.now()):this.metrics.general.downgradesFromLevel.push(Date.now()));let d=!1;if(e.from){var f;let e=(f=this.metrics.levels[l])==null?Wb():f;l<u?e.upgradesFromLevel.push(Date.now()):e.downgradesFromLevel.push(Date.now()),Un(e.activeRanges);let t=e.bufferingRanges[e.bufferingRanges.length-1];d=!!t&&!t.end,Un(e.bufferingRanges),this.metrics.levels[l]=e}if(e.to){var p;let e=(p=this.metrics.levels[u])==null?Wb():p;Wn(e.activeRanges),d&&Wn(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.stopBuffering();break;case`buffering`:this.isSuspended||this.startBuffering();break}}),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`,()=>Ft(this.bufferFullness.items().map((e,t)=>({x:t,y:e})))),m(this,`stopBuffering`,()=>{if(this.currentLevel){let e=this.metrics.levels[this.currentLevel];e&&Un(e.bufferingRanges)}Un(this.metrics.general.bufferingRanges)}),m(this,`startBuffering`,()=>{if(this.currentLevel){let e=this.metrics.levels[this.currentLevel];e&&Wn(e.bufferingRanges)}Wn(this.metrics.general.bufferingRanges)}),m(this,`unsetActive`,()=>{if(this.currentLevel){let e=this.metrics.levels[this.currentLevel];e&&Un(e.activeRanges)}Un(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&&Wn(e.activeRanges)}Wn(this.metrics.general.activeRanges)}};Ub=Kb,m(Kb,`create`,(e,t,n)=>new Ub(e,t,n)),V(),h();var qb,Jb=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&&fr(n))return n}),m(this,`getAudioRenditions`,e=>{let t=this.renditions.get(e);return t==null?void 0:t.filter(e=>pr(e))}),m(this,`getVideoRenditions`,e=>{let t=this.renditions.get(e);return t==null?void 0:t.filter(e=>fr(e))}),m(this,`getAudioRendition`,(e,t=this.getCurrentSubscription().channelId)=>{let n=this.getRendition(e,t);if(n&&pr(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);Bt(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(fr).filter(e=>n&&e.codec===n.codec),s=a.filter(pr).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)}};qb=Jb,m(Jb,`create`,(e,t)=>new qb(e,t)),V(),h();var Yb,Xb=e=>JSON.parse(JSON.stringify(e)),Zb=1e4,Qb=class{constructor(e,t,n){m(this,`logger`,void 0),m(this,`timers`,new Vn),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!Bt(Ln(this.currentSubscription,e),Ln(this.targetSubscription,e))}),m(this,`onSubscriptionChanged`,({to:e,reset:t})=>{this.logger.debug(`onSubscriptionChanged`,{to:e,reset:t}),t?this.targetSubscription=Xb(this.currentSubscription):this.currentSubscription=Xb(e),this._isSwitchingSubscription=this.isNewSubscription()}),m(this,`scheduleSubscriptionChange`,()=>{this.targetSubscription=Xb(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=Xb(this.currentSubscription),this.emitter.emit(`channel switch timeout`,t))},Zb),this.pendingSubscriptionTimeoutId=this.timers.setTimeout(()=>this.emitter.emit(`send signal`,{type:`subscribe`,subscription:this.getTargetSubscription()}),0))}),this.logger=e,this.targetSubscription=t,this.currentSubscription=Xb(t),this.emitter=n,this.emitter.on(`subscription changed`,this.onSubscriptionChanged)}};Yb=Qb,m(Qb,`create`,(e,t,n)=>new Yb(e,n,t)),V(),h(),z();var $b,ex=5e3,tx=()=>Qe()||Ye(),nx=e=>e&&tx()?100:0,rx=e=>t=>t>e,ix={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}},ax=class{get driftSamplesToCollect(){return this._driftSamplesToCollect}set driftSamplesToCollect(e){this._driftSamplesToCollect=e,this.driftSamples=new C(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 C(10)),m(this,`lastSeekTime`,Date.now()),m(this,`lastAdjustmentTime`,Date.now()),m(this,`lastDecayCheckTime`,Date.now()),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`,Vn.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 C(this._driftSamplesToCollect)),m(this,`timestampOffset`,void 0),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.timers.setInterval(this.onSync,100)}),m(this,`unload`,()=>{this.logger.debug(`Unloading module...`),this.emitter.off(`rtt`,this.updateRtt),this.emitter.off(`playback state`,this.onPlaybackState),this.timers.unload(),this.logger.debug(`Unloaded module`)}),m(this,`suspend`,()=>{this.isSuspended=!0}),m(this,`unsuspend`,()=>{this.resetSyncState(),this.isSuspended=!1}),m(this,`deactivateSyncAdjustments`,()=>{this.isSyncAdjustmentActivated=!1}),m(this,`activateSyncAdjustments`,()=>{this.tryApplySyncInfo(0),this.lastSeekTime=Date.now(),this.isSyncAdjustmentActivated=!0}),m(this,`reset`,()=>{this.logger.info(`Reset sync state`),this.currentChannelId=void 0,this.timestampOffset=void 0,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,`getLiveEdgeTime`,e=>{let t=this.channelSyncInfo.get(e);if(!t)return;let n=Date.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=Date.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-ex);let n=e.type===`video`&&e.isSync;if(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)=>{var n;this.currentChannelId||(this.currentChannelId=e);let r=t.mediaType();if(!r)throw Error(`Fragment must have a media type`);this.timestampOffset||(this.timestampOffset=t.baseMediaDecodeTime()/t.timescale()*1e3-ex);let i=t.mediaType()===`video`&&t.startsWithKeyframe();if(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 (i||this.allowTimeshiftOnAudio)&&this.tryTimeshiftSync();let a=this.timestampOffset*t.timescale()/1e3;return t.updateBaseMediaDecodeTime(t.baseMediaDecodeTime()-a),i&&this.keyframeTimestamps.push(t.baseMediaDecodeTime()/t.timescale()*1e3),this.highestSeenTimestamps.set(r,Math.max((n=this.highestSeenTimestamps.get(r))==null?0:n,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?jt(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}}),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`,()=>Date.now()-this.lastSeekTime>this.config.seek.cooldownMs),m(this,`isSeekTimeoutExpired`,()=>Date.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=Date.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=Date.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=Date.now()),!1;let a=Date.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||this.hasPendingRecoverySeek()||!this.isAllowedToSync()||this.playbackSource.playbackRate!==1)return;let t=(e=this.drift)==null?0:e;this.driftSamples.push(t);let n=Nt(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=Date.now()-this.config.seek.timeoutMs*this.state.timeshiftToleranceMultiplier,i=this.timeshiftAdjustmentTimestamps.filter(rx(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.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,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);r&&(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.lastSeekTime=Date.now(),t&&(this.hasPerformedRecoverySeekInCurrentRecoveryState=!0),this.clearRecoverySeekFlags(),this.driftSamples.clear(),this.seekAdjustmentTimestamps.push(this.lastSeekTime),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;if(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,this.lastSeekTime=Date.now(),this.lastAdjustmentTime=Date.now(),!this.playbackSource.isPaused&&(this.driftSamples.clear(),this.timeshiftAdjustmentTimestamps.push(this.lastSeekTime),this.timeshiftAdjustmentCount++,this.config.backoff.enabled&&this.timeshiftAdjustmentCount>0&&this.timeshiftAdjustmentCount%this.config.timeshift.backoffEveryN===0)){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:Nt(this.driftSamples.items());if(!r&&this.tryPlaybackRateSync(i)||!r&&this.shouldSkipNormalSeek(i))return;let a=Date.now()-this.config.seek.timeoutMs*this.state.seekToleranceMultiplier,o=this.seekAdjustmentTimestamps.filter(rx(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,`onPlaybackState`,e=>{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,`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=nx(a),this.config={seek:R({},ix.seek),timeshift:R({},ix.timeshift),playbackRate:R({},ix.playbackRate),backoff:R({},ix.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.logger.info(`SyncModule initialized`,{config:this.config})}updateChannelSyncInfo(e,t){let n=Date.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 C(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,localWallclockDelta: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 C(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=Nt(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}};$b=ax,m(ax,`create`,(e,t,n,r,i,a=!0)=>new $b(e,t,n,r,i,a)),Ci(),V(),z(),h(),N();var ox,sx={enabled:!0,interval:3e4,includeErrors:!0,includeEvents:!0,includeStats:!0,maxRetries:10,maxErrorReports:50,maxEvents:50},cx=(e,t)=>R(R({},t),{},{type:e,timestamp:new Date().toISOString(),discriminator:`web`}),lx=class{constructor(e,t,n,r){var i=this;m(this,`logger`,void 0),m(this,`timers`,new Vn),m(this,`emitter`,void 0),m(this,`options`,void 0),m(this,`parentContext`,void 0),m(this,`unsentLines`,new C(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=cx(`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=cx(`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=M(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(`
1223
- `);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 El(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(t&&e instanceof H){if(this.errorCount++,this.errorCount>n)return;let t=this.parentContext.getStatistics();this.unsentLines.push(cx(`error`,R(R({},t),e.toStringifiable())))}}),this.logger=e,this.emitter=t,this.options=R(R({},sx),n),this.parentContext=r}};ox=lx,m(lx,`create`,(e,t,n,r)=>new ox(e,t,n,r)),V(),h();var ux,dx=class{constructor(e,t,n){m(this,`logger`,void 0),m(this,`element`,void 0),m(this,`documentState`,void 0),m(this,`timers`,new Vn),m(this,`unload`,()=>{this.timers.unload()}),m(this,`unpause`,()=>{this.element.userHasProvidedInput&&this.element.isPaused&&this.documentState.isVisible&&this.documentState.isOnline&&(this.logger.debug(`Unpause video`),this.element.tryPlay())}),this.logger=e,this.element=t,this.documentState=n,this.timers.setInterval(this.unpause,100)}};ux=dx,m(dx,`create`,(e,t,n)=>new ux(e,t,n)),h();var fx=[`minBufferTime`,`maxBufferTime`,`burstEnabled`,`sizeBasedResolutionCapEnabled`,`separateVideoSocketEnabled`,`webcodecsHardwareAcceleration`,`offscreenCanvasEnabled`,`videoCodecs`];function px(e){return fx.includes(e)}var mx=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&&px(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 hx=6,gx=e=>{let t=[e],n=0,r=0,i=!1,a=(e,t)=>{var i,a;if(e.flags&&Rc(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&&Rc(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&&Rc(e.flags)&&n&&(i=!i),!(n&&t.length<hx&&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),[]}},_x=[`mse`,`wasm`],vx=e=>e==null?_x:e,yx=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)},bx=(e,t,n)=>{if(yx(n))return`mse`;let r=vx(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 xx=(e,t,n)=>{if(fr(t))return R(R({},e),{},{type:`video`,codec:t.codec,isSync:Rc(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:Rc(e.flags),data:e.payload,duration:0})};Ci(),z();var Sx=(e,t)=>e&&typeof e==`object`&&t in e,Cx=e=>!(typeof e!=`object`||!Sx(e,`channelId`)||typeof e.channelId!=`string`||!Sx(e,`url`)||typeof e.url!=`string`||e.channelId.length===0||e.url.length===0),wx=e=>{if(!Cx(e))throw new H(`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},Tx=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};Fa(),Ic(),gy(),h(),N();var Ex=class{constructor(e){var t=this;m(this,`cache`,new Map),m(this,`inFlight`,new Map),m(this,`checkVideoSupport`,function(){var e=M(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=M(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?hy(e.codec):n,a=`audio|${i}|${e.sampleRate}|${e.channels}`,o=e.codec===`aac`?Pa(e.channels,e.sampleRate):e.codec===`opus`?Pc(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}};Ci(),V(),h(),T(),z(),N(),j(),k();var Dx=new WeakMap,Ox=new WeakMap,kx=new WeakMap,Ax=class e extends Ht{constructor(t){var n,r;super(),n=this,m(this,`pictureInPicture`,void 0),m(this,`drm`,void 0),m(this,`browser`,rt()),m(this,`options`,void 0),m(this,`element`,void 0),m(this,`playbackSource`,void 0),m(this,`emitter`,new Ht),m(this,`logger`,void 0),m(this,`modules`,void 0),m(this,`clientIp`,void 0),m(this,`sessionId`,void 0),m(this,`clientId`,tr()),m(this,`_channels`,[]),m(this,`createdAt`,Date.now()),m(this,`offscreenCanvasElement`,void 0),m(this,`webCodecsRenditionSupport`,void 0),m(this,`hasCalledConnect`,!1),m(this,`latestEmittedLanguages`,[]),m(this,`wakeLock`,void 0),m(this,`pool`,new ae(e.MAX_POOL_SIZE)),m(this,`userAgentInformation`,new $n),m(this,`encryptedMediaExtensions`,void 0),w(this,Dx,0),w(this,Ox,[]),m(this,`sampleProcessingSesssions`,new Map),m(this,`sizes`,new Map),m(this,`isSuspended`,!0),m(this,`disconnectTimeout`,void 0),m(this,`offscreenSubtitleInterval`,void 0),w(this,kx,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,`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.unsuspend(),this.playbackSource instanceof nl){var e,t;(e=(t=this.playbackSource).load)==null||e.call(t)}this.modules.connection.connect()}}),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`)})),m(this,`onConnectInfo`,function(){var e=M(function*(e){var t;n.sessionId=tr();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=M(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.options.get(`burstEnabled`,n.channelId)&&n.modules.subscription.enableBurst(n.targetBufferTime),n.emit(`is live`,i.isLive),!i.isLive)throw Error(`Waiting for channel to go live`);n.patchSubscription(i,n.modules.connection.estimatedBandwidth),yield n.initializeDecodingModule(),n.resetModules(),n.emit(`rendition levels`,n.modules.renditions.getRenditionLevels()),n.emit(`channels`,n.channels),n.emitLanguagesIfChanged(),n.sampleProcessingSesssions.clear();let c=n.options.get(`burstEnabled`,n.channelId);return{video:n.targetSubscription.video,audio:n.targetSubscription.audio,burstMs:c?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(!A(Ox,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||``);A(Ox,this).push(t)}else if(this.mediaElement instanceof HTMLVideoElement){let t=this.mediaElement.addTextTrack(e.kind,e.label||e.language,e.language);A(Ox,this).push(t)}}});for(let e of A(Ox,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)=>{A(Ox,this).forEach(t=>{if(t.cues)for(let n of t.cues)n.endTime*1e3<e-2e3&&t.removeCue(n)})}),m(this,`filterRenditions`,function(){var e=M(function*(e){let t=yield Promise.all(e.map(function(){var e=M(function*(e){if(pr(e)){var t;return n.willUseMediaSource()&&!((t=Be())!=null&&t.isTypeSupported(mr(e)))?!1:n.willUseMediaSource()||e.codec===`opus`?!0:n.isWebCodecsAudioAvailable(n.channelId)?n.webCodecsRenditionSupport.checkAudioSupport(e):!1}if(!fr(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 rl(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},fr(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},fr(e)?{width:e.width,height:e.height}:{}),{},{bitRate:e.bitRate}))}),r});return function(t){return e.apply(this,arguments)}}()),m(this,`patchSubscription`,(e,t)=>{let n=this.options.get(`maxInitialBitRate`),r=Math.min(this.options.get(`maxVideoBitRate`),n,t,this.targetSubscription.video.bitRate),i=Math.min(this.options.get(`maxAudioBitRate`),n,t,this.targetSubscription.audio.bitRate),a=this.options.get(`media`)===`audio`?[]:this.options.get(`videoCodecs`,this.channelId),o=this.supportedAudioCodecs(),s=e.renditions.filter(pr),c=e.renditions.filter(fr),l=o.find(e=>s.find(t=>t.codec===e)!==void 0),u=a.find(e=>c.find(t=>t.codec===e)!==void 0),d=s.map(e=>e.language);if(this.logger.debug(`supported and selected codecs`,{audioCodecs:o,videoCodecs:a,audioCodec:l,videoCodec:u}),u){let e=this.options.get(`maxSize`);this.modules.subscription.setVideoConstraint(R({codec:u,bitRate:this.abrEnabled?r:this.options.get(`maxVideoBitRate`)},e))}l&&(this.modules.subscription.setAudioConstraint({codec:l,bitRate:this.abrEnabled?i:this.options.get(`maxAudioBitRate`),language:this.options.get(`language`)}),(!d.includes(this.options.get(`language`))||this.language===void 0)&&this.modules.subscription.setLanguage(d[0])),this.alignSizeAndBitRate(this.targetSubscription);let f=this.modules.subscription.getTargetSubscription();this.emitter.emit(`subscription changed`,{to:f,from:this.modules.subscription.getCurrentSubscription()})}),m(this,`isSupportedVideoCodecProfile`,(e,t)=>{if(this.willUseMediaSource()){let n=Be();return n?n.isTypeSupported(mr({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`,M(function*(){var e;let t=n.currentRenditionLevel,r=[];if(!t)throw new H(`No currentRenditionLevel`,{code:`no_current_rendition_level`,isFatal:!1});if(t!=null&&t.video&&r.push({type:`video`,mimeType:mr(t.video),codec:t.video.codec}),t!=null&&t.audio&&r.push({type:`audio`,codec:t.audio.codec,mimeType:mr(t.audio),channels:t.audio.channels,sampleRate:t.audio.sampleRate}),r.length===0)throw new H(`Can't initialize decoding module without tracks`,{code:`no_tracks`,isFatal:!1});if(n.willUseMediaSource()&&n.element instanceof HTMLMediaElement){var i;n.emitter.emit(`flush buffers`),yield(i=n.modules.mseModule)==null?void 0:i.setSourceBuffers(r);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`),yr(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=yield Ky.create(n.emitter,n.logger.createContext(`DecoderModule`),n.options.get(`logLevel`),r,n.playbackSource,n.pool,a,o,u),{videoRenderer:p}=f.getStatistics(),m=n.modules.canvasModule;if(m instanceof _b)if(p===`OffscreenCanvas`&&d){m.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{m.setVideoRenderingEnabled(!0),n.offscreenCanvasElement=void 0;let e=m.element();if(e!==n.element){let t=n.element;t.parentElement&&t.parentElement.replaceChild(e,t),n.setElement(e)}}else m instanceof yb&&(p===`OffscreenCanvas`&&d?(m.setOffscreenCanvas(d),n.offscreenCanvasElement=d):(m.setOffscreenCanvas(void 0),n.offscreenCanvasElement=void 0));(e=n.modules.decoder)==null||e.unload(),n.modules.decoder=f,n.modules.decoder.load(),n.setupOffscreenSubtitleRouting()})),m(this,`setupOffscreenSubtitleRouting`,()=>{if(this.offscreenSubtitleInterval!==void 0&&(clearInterval(this.offscreenSubtitleInterval),this.offscreenSubtitleInterval=void 0),!this.offscreenCanvasElement||!this.modules.decoder||this.modules.canvasModule instanceof yb)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`,M(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 ae(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`,()=>{this.options.get(`pauseSupportEnabled`)&&this.playbackState!==`paused`&&(this.playbackSource.pause(),this.hasCalledConnect&&this.suspend())}),m(this,`registerDebugInstance`,()=>{tl(this)}),m(this,`play`,()=>{var t;this.hasCalledConnect?this.unsuspend():this.playbackState!==`playing`&&(this._connect(),self.addEventListener(`__vindral_register_debug__`,this.registerDebugInstance),this.modules.timer.setInterval(()=>this.cleanupTextTracks(),e.REMOVE_CUE_THRESHOLD)),(t=this.wakeLock)==null||t.enable(),this.playbackState===`paused`&&(this.resetModules(),this.emitter.emit(`flush buffers`),this.cleanupTextTracks(2**53-1)),this.playbackSource.play()}),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 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.sampleProcessingSesssions.clear(),this.playbackSource.currentTime=0,this.playbackSource.isActivated=!1}),m(this,`getRuntimeInfo`,()=>{let e=this.modules.canvasModule instanceof yb?!0:void 0;return R({uptime:Date.now()-this.createdAt,version:`4.2.1-9-gb6e43bd0`,clientId:this.clientId,sessionId:this.sessionId,channelId:this.channelId,channelGroupId:this.options.get(`channelGroupId`),ip:this.clientIp,url:this.options.get(`url`),timeToFirstFrame:this.timeToFirstFrame(),streamToMediaElementEnabled:e,iosMediaElementEnabled:e},this.userAgentInformation.getUserAgentInformation())}),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=>{this.logger.info(`media element state`,{state:e}),this.options.get(`pauseSupportEnabled`)&&(e===`paused`?this.modules.documentState.isVisible&&(this.suspend(),this.modules.connection.disconnect()):(this.unsuspend(),this.modules.connection.getState()===`disconnected`&&this.modules.connection.unsuspend()))}),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.firstConnectionTime;if(t&&e)return e-t}),this.options=new mx(R(R({},vr),wx(t))),t.telemetryEnabled===void 0&&[`localhost`,`127.0.0.1`].includes(location.hostname)&&this.options.set(`telemetryEnabled`,!1);let i={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}},a=sn.get();a.setLevel(this.options.get(`logLevel`)),a.setDebug(!1),this.logger=a,this.webCodecsRenditionSupport=new Ex(a),t.iosMediaElementEnabled!==void 0&&this.logger.warn(`Option iosMediaElementEnabled is deprecated and will be removed in a future release. Use streamToMediaElementEnabled instead.`);let o=(r=t.streamToMediaElementEnabled)==null?t.iosMediaElementEnabled:r;o!==void 0&&(this.options.set(`streamToMediaElementEnabled`,o),this.options.set(`iosMediaElementEnabled`,o));let s=t.mseEnabled!==void 0,c=t.decoders!==void 0;s&&this.logger.warn(`Option mseEnabled is deprecated and will be removed in a future release. Use decoders instead (e.g. decoders: ["wasm"]).`),s&&!c&&t.mseEnabled===!1&&this.options.set(`decoders`,[`wasm`]);let l=Bb.create(this.emitter,this.logger.createContext(`PictureInPictureModule`)),u=Vn.create(),d=ly.create(this.emitter,this.logger.createContext(`ConnectionModule`),{reconnectHandler:this.options.get(`reconnectHandler`),options:this.options,onConnectInfo:this.onConnectInfo}),f=Qb.create(this.logger.createContext(`SubscriptionModule`),this.emitter,i),p=Jb.create(this.emitter,f),h=Kb.create(this.emitter,this.logger.createContext(`QualityOfServiceModule`),p),g=Hb.create(this.emitter,this.logger.createContext(`PlaybackModule`),this,this.options.get(`minBufferTime`));this.encryptedMediaExtensions=new wa(this.emitter,this.logger.createContext(`EncryptedMediaExtensions`),t.drm),this.drm={setHeaders:e=>{this.encryptedMediaExtensions.headers=e},setQueryParams:e=>{this.encryptedMediaExtensions.queryParams=e}};let _=Jy.create(this.emitter),v=this.options.get(`poster`),ee=v===!0?this.getThumbnailUrl():v||void 0,y,b,te;if(this.willUseMediaSource()){let e=new nl({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:ee});e.on(`buffer state`,e=>this.onMediaElementBufferState(e,y)),e.on(`needs user input`,e=>this.emitter.emit(`needs user input`,e)),e.on(`volume state`,e=>this.emit(`volume state`,e)),e.on(`media element state`,e=>this.onMediaElementState(e)),this.element=e.element,this.playbackSource=e,wa.isSupported()&&this.encryptedMediaExtensions.attach(e.element),y=jb.create(this.logger.createContext(`MseModule`),this.emitter,this.element),this.options.get(`pauseSupportEnabled`)||(b=dx.create(this.logger.createContext(`UnpauseModule`),e,_)),this.options.get(`pictureInPictureEnabled`)&&this.emitter.emit(`add picture in picture listener`,{element:e.element})}else if(this.options.get(`streamToMediaElementEnabled`)&&Dt(this.browser)){let e=yb.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:ee,offscreenCanvas:this.offscreenCanvasElement,bufferTime:this.options.get(`minBufferTime`)}),t=e.element();this.element=t.element,this.playbackSource=e,te=e;let n=this.browser.platform.isIOS&&this.browser.platform.iosVersion<=15;this.options.get(`pictureInPictureEnabled`)&&!n&&this.emitter.emit(`add picture in picture listener`,{element:this.element}),this.options.get(`pauseSupportEnabled`)||(b=dx.create(this.logger.createContext(`UnpauseModule`),t,_))}else{let e;e=_b.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,te=e,this.options.get(`iosWakeLockEnabled`)&&(this.wakeLock=new Kc)}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`,()=>u.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:()=>l.requestPictureInPicture(),exit:()=>l.exitPictureInPicture(),isActive:()=>l.isPictureInPictureActive(),isSupported:()=>l.isPictureInPictureSupported()},this.emitter.on(`error`,e=>{if(e.type()===`external`&&this.emit(`error`,e),e.isFatal())return()=>void this.unload()});let ne=this.willUseMediaSource(),re=ne?!this.browser.platform.isWebKit:!0,ie={getTargetBufferTime:()=>g.getTargetBufferTime(),getNextBufferedRangeStart:y?e=>y.getNextBufferedRangeStart(e):void 0},oe=ax.create(this.emitter,this.logger.createContext(`SyncModule`),this.playbackSource,ie,re,ne),x=nb.create(this.logger.createContext(`JitterModule`)),se=(this.options.get(`edgeUrl`)||this.options.get(`url`)).replace(`wss://`,`https://`).replace(`ws://`,`http://`).replace(`//lb.`,`//errors.`),S=new URL(`/telemetry`,se).toString();this.modules={telemetry:lx.create(this.logger.createContext(`TelemetryModule`),this.emitter,{url:S,enabled:this.options.get(`telemetryEnabled`),includeStats:!1,interval:5e3},this),bufferTime:gl.create(this.emitter,this.logger.createContext(`BufferTimeModule`),h,this,{maxBufferTime:this.options.get(`maxBufferTime`),minBufferTime:this.options.get(`minBufferTime`)}),incomingData:$y.create(this.emitter),adaptivity:pl.create(this.emitter,this.logger.createContext(`AdaptivityModule`),h,{cooldownTime:Math.max(this.options.get(`minBufferTime`),2e3)}),constraintCap:my.create(this.emitter,this.element,p,this.options.get(`abrEnabled`)?this.options.get(`sizeBasedResolutionCapEnabled`):!1),event:Zy.create(this.emitter,this.logger.createContext(`EventModule`),oe),sync:oe,jitter:x,documentState:_,connection:d,playback:g,pictureInPicture:l,timer:u,subscription:f,renditions:p,qualityOfService:h,mseModule:y,unpause:b,canvasModule:te},this.modules.adaptivity.isEnabled=this.options.get(`abrEnabled`),this.emitter.on(`page active`,t=>{if(t&&typeof this.disconnectTimeout==`number`&&(this.modules.timer.clearInterval(this.disconnectTimeout),this.disconnectTimeout=void 0),t)this.playbackSource.isPaused||(this.logger.debug(`Unsuspending`),this.unsuspend());else if(this.logger.debug(`Suspending`),this.suspend(),this.modules.decoder)if(this.options.get(`iosBackgroundPlayEnabled`)){var n;this.modules.decoder.unsuspend(),(n=this.modules.canvasModule)==null||n.unsuspend()}else this.modules.connection.disconnect();else this.disconnectTimeout&&this.modules.timer.clearInterval(this.disconnectTimeout),this.disconnectTimeout=this.modules.timer.setInterval(()=>{let e=this.playbackState===`paused`||this.muted;this.connectionState===`connected`&&e&&(this.emitter.emit(`flush buffers`),this.modules.connection.disconnect(`Page inactive timeout`))},e.DISCONNECT_TIMEOUT)});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.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=lx.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=>{this.logger.debug(`adapt level`,{direction: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?hr():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||Date.now()-this.modules.connection.lastConnectionTime<this.modules.qualityOfService.fatalQosGraceTime()||this.modules.connection.getState()!==`connected`)return;this.modules.qualityOfService.incrementFatalQosCount(),this.logger.info(`Reconnecting due to poor qos`),this.modules.connection.reconnect(`Fatal QOS`),this.emitter.emit(`adapted level`);return}else 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=A(Ox,this).find(t=>t.language===e.language),n=this.modules.sync.getTimeshiftOffset()/1e3,r=n-A(Dx,this);if(O(Dx,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(`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),O(kx,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(()=>{O(kx,this,void 0)}));break;case`subscription changed`:var r;try{Tx(t.subscription)}catch(e){this.emitter.emit(`error`,new H(`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`,xi(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`,xi(e)),this.emit(`channel switch failed`,{channelId:this.currentSubscription.channelId})}),this.emitter.on(`received data`,e=>{let t=this.modules.subscription.getCurrentSubscription(),n=Uc(e);if(!t){this.logger.warn(`Received unwanted message`,R({},n));return}le(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);if(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`,Si(`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=Ja(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 a,o;let p=(a=i.header().init().moov.traks[0])==null?void 0:a.mdia.minf.stbl.stsd,m=(o=p==null?void 0:p.codec)==null?`h264`:o,h;if(m===`h264`){var s;h=p==null||(s=p.avc1)==null?void 0:s.avcC.bytes}else if(m===`h265`){var c,l,u;let e=(c=p==null||(l=p.hvc1)==null?void 0:l.data())==null?p==null||(u=p.hev1)==null?void 0:u.data():c;e&&(h=Ka(e))}else if(m===`av1`&&p!=null&&p.av01)h=ac(p.av01.data());else if(m===`aac`){var d;h=p==null||(d=p.mp4a)==null||(d=d.esds)==null?void 0:d.decoderConfig}else if(m===`opus`){var f;h=Nc(p==null||(f=p.opus)==null?void 0:f.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});for(let e=0;e<i.samplesCount();e++){let t=i.sample(e);t&&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)}))}}else this.emitter.emit(`fragment`,{mimeType:e.mimeType,codec:e.codec,fragment:i,channelId:n,renditionId:r})});let C=this.options.get(`container`);C&&this.attach(C),this.logger.info(`Created Vindral instance`,{options:this.options});let le=function(){var e=M(function*(e){let t=e.channelId;A(kx,n)&&(yield A(kx,n));let r=n.modules.renditions.getRendition(e.renditionId,t);if(!Bc(e.flags)){if(Vc(e.flags)){let t=new TextDecoder().decode(e.payload),r=n.modules.sync.getTimeshiftOffset();if(e.renditionId!==0){let e=Xn(t);if(e&&e.language!==void 0){let t=new Qc().parse(e.content||``),i=r/1e3,a=A(Ox,n).find(t=>t.language===e.language),o=i-A(Dx,n);if(O(Dx,n,i),a){if(a.cues)for(let e of a.cues)e.startTime-=o,e.endTime-=o;for(let e of t){let t=new VTTCue(e.startTime-i,e.endTime-i,e.text);a.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=cr(r.codec);if(i===`text`)throw Error(`Subtitles are not supported`);if(n.modules.incomingData.add(i,e.payload.byteLength),zc(e.flags)){let a=R(R({type:i,data:e.payload,codec:r.codec},e),{},{channelId:t}),o=Ec(a.codec,a.payload);o&&n.sizes.set(a.renditionId,o);let s=mr({codec:r.codec,codecString:r.codecString});n.emitter.emit(`init segment`,{initSegment:a,mimeType:s}),n.emit(`initialized media`)}else{let t=xx(e,r,n.sizes.get(e.renditionId));n.modules.jitter.recordSample(t);let a=n.sampleProcessingSesssions.get(i);if(!a)a=gx(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`)),Bt(this.options.get(`maxSize`),gr())||(this.maxSize=this.options.get(`maxSize`)),this.options.get(`burstEnabled`)&&f.enableBurst(this.targetBufferTime)}set volume(e){this.playbackSource.volume=e}get volume(){return this.playbackSource.volume}set muted(e){if(e===this.muted)return;let t=this.playbackSource.muted;this.playbackSource.muted=e,!e&&t&&!this.playbackSource.isPaused&&this.playbackSource.play()}get muted(){return this.playbackSource.muted}get media(){return this.options.get(`media`)}get videoBitRate(){return this.modules.incomingData.averageBitRate(`video`)}get audioBitRate(){return this.modules.incomingData.averageBitRate(`audio`)}get connectionState(){return this.modules.connection.getState()}get playbackState(){return this.modules.playback.getState()}get bufferFullness(){return this.modules.playback.getBufferFullness()}get sizeBasedResolutionCapEnabled(){return this.modules.constraintCap.sizeBasedResolutionCapEnabled}set sizeBasedResolutionCapEnabled(e){this.modules.constraintCap.sizeBasedResolutionCapEnabled=e}get abrEnabled(){return this.modules.adaptivity.isEnabled}set abrEnabled(e){this.modules.constraintCap.sizeBasedResolutionCapEnabled=e?this.options.get(`sizeBasedResolutionCapEnabled`):!1,this.modules.adaptivity.isEnabled=e,this.alignSizeAndBitRate(this.targetSubscription)}get serverEdgeTime(){return this.modules.sync.getLiveEdgeTimeLatencyAdjusted(this.currentSubscription.channelId)}get serverWallclockTime(){return this.modules.sync.getWallclockTimeLatencyAdjusted(this.currentSubscription.channelId)}get currentTime(){return this.modules.sync.serverCurrentTime}get channelCurrentTime(){return this.modules.sync.channelCurrentTime}get targetBufferTime(){return this.modules.playback.getTargetBufferTime()}set targetBufferTime(e){this.modules.playback.getTargetBufferTime()!==e&&(this.modules.playback.setTargetBufferTime(e),this.playbackSource.currentTime=this.modules.sync.serverCurrentTime,this.options.get(`burstEnabled`,this.channelId)?this.modules.subscription.enableBurst(this.targetBufferTime):this.modules.subscription.enableBurst(0))}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&&(A(Ox,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 A(Ox,this).filter(e=>e.mode!==`disabled`).map(e=>e.label)}get textTrack(){var e;return(e=A(Ox,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.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?gr():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?hr():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?hr():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 this.modules.qualityOfService.timeSpentBuffering()}get timeActive(){return this.modules.qualityOfService.timeActive()}get mediaElement(){return this.element}get audioNode(){var e;return(e=this.modules)!=null&&e.canvasModule?this.modules.canvasModule.audioNode:void 0}get drmStatistics(){var e;return(e=this.encryptedMediaExtensions)==null?void 0:e.getStatistics()}get uptime(){return Date.now()-this.createdAt}suspend(){this.isSuspended||(Object.values(this.modules).forEach(e=>{e&&`suspend`in e&&e.suspend()}),this.isSuspended=!0)}unsuspend(){this.isSuspended&&(Object.values(this.modules).forEach(e=>{e&&`unsuspend`in e&&e.unsuspend()}),this.isSuspended=!1)}alignSizeAndBitRate(e){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 bx(this.options.get(`decoders`,e),this.browser.supportsMediaSource,this.options.get(`drm`))}willUseMediaSource(){return this.resolvedDecoder()===`mse`}shouldUseWebCodecs(e){return this.resolvedDecoder(e)===`webcodecs`}isWebCodecsVideoAvailable(e){return this.shouldUseWebCodecs(e)&&typeof VideoDecoder<`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}};m(Ax,`MAX_POOL_SIZE`,10),m(Ax,`DISCONNECT_TIMEOUT`,15*1e3),m(Ax,`REMOVE_CUE_THRESHOLD`,1e3*10);var jx={bar:`_bar_qm7bl_1`,hidden:`_hidden_qm7bl_47`},Mx=`_withThumbnails_suenn_19`,Nx={"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:Mx,"hide-on-small":`_hide-on-small_suenn_27`},Px={"icon-button":`_icon-button_5fg7v_1`},Fx={viewBox:`-10 -10 44 44`,content:`<g fill="none" stroke="white">
1222
+ `,zy=typeof self<`u`&&self.Blob&&new Blob([`(self.URL || self.webkitURL).revokeObjectURL(self.location.href);`,Ry],{type:`text/javascript;charset=utf-8`})})),Vy=r({VideoDecoderWorkerContext:()=>Uy}),Hy,Uy,Wy=n((()=>{V(),By(),h(),z(),N(),Uy=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 C(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 C(1e3)),m(this,`samplesInTransitToWorker`,0),m(this,`workerPendingDecodeCount`,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,`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`error`:this.errors.push(Error(e.data.message)),this.samplesInTransitToWorker=0,this.workerPendingDecodeCount=0;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)}error(){return this.errors.pop()}},Hy=Uy,m(Uy,`create`,function(){var e=M(function*(e,t,n,r=!1,i=`no-preference`,a,o){let s=new Ly,{isWebCodecs:c,usingOffscreenCanvas:l}=yield new Promise((n,o)=>{let c=!1,l=setTimeout(()=>{c||(c=!0,u(Error(`Decoder worker initialization timed out`)))},1e4),u=e=>{if(c=!0,clearTimeout(l),s.removeEventListener(`message`,d),s.terminate(),e instanceof Error){o(e);return}o(Error(`Failed to initialize decoder worker`))},d=e=>{if(!c)switch(c=!0,clearTimeout(l),s.removeEventListener(`message`,d),e.data.type){case`ready`:n({isWebCodecs:e.data.isWebCodecs,usingOffscreenCanvas:e.data.usingOffscreenCanvas});break;case`error`:var t;u(Error((t=e.data.message)==null?`Failed to initialize decoder worker`:t));break;default:u(Error(`Failed to initialize decoder worker`));break}};s.addEventListener(`message`,d);let f={type:`init`,logLevel:t,useWebCodecs:r,webcodecsHardwareAcceleration:i,offscreenCanvas:a};try{a?s.postMessage(f,[a]):s.postMessage(f)}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{s.postMessage({type:`init`,logLevel:t,useWebCodecs:r,webcodecsHardwareAcceleration:i,offscreenCanvas:void 0})}catch(e){u(e)}}else u(n)}});return new Hy(s,e,n,o,c,l)});return function(t,n,r){return e.apply(this,arguments)}}())}));Ti(),V(),h(),z(),N();var Gy=5,Ky=100,qy=1e3,Jy=class e{constructor(e,t,n,r,i=!1,a=!1,o=!1){m(this,`timers`,Vn.create()),m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`trackContexts`,void 0),m(this,`playbackSource`,void 0),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`,()=>{let e=this._audioWebCodecsInUse?20:Ky;this.timers.setInterval(this.emitDecodedFrames,e),this.timers.setInterval(this.emitDecodeRate,qy),this.emitter.on(`init segment`,this.onInitSegment),this.emitter.on(`coded sample`,this.decode)}),m(this,`unload`,()=>{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)}),m(this,`suspend`,()=>{this.isSuspended=!0}),m(this,`unsuspend`,()=>{this.isSuspended=!1}),m(this,`getBuffer`,e=>{var t;return(t=this.trackContexts.get(e))==null?void 0:t.buffer}),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=Pt(t.decodeTime.items()),i=Pt(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=Pt((e=a==null?void 0:a.decodeTime.items())==null?[]:e),s=Pt((t=a==null?void 0:a.transportTime.items())==null?[]:t),c=Pt((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:Mt(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,`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 H(`No known decoder context`,{code:`no_known_decoder_context`,isFatal:!1});n.initSegment(e)}),m(this,`decode`,e=>{let t=this.trackContexts.get(e.type);if(!t)throw new H(`No known decoder context`,{code:`no_known_decoder_context`,isFatal:!1});if(this.isSuspended)return;t.sampleDuration=e.duration/e.timescale*1e3;let n=e.compositionTimeOffset||0,{decoderContext:r,buffer:i}=t,a=(e.timestamp+n)/e.timescale*1e3,o=e.duration/e.timescale*1e3,s=i[i.length-1];if(!s||a-Gy>s.end?i.push({start:a,end:a+o}):a+o*5<s.end?(t.buffer=[{start:a,end:a+o}],e.type===`video`&&(this.videoKeyframeTimestamps=[])):s.end=a+o,e.type===`video`&&e.isSync){let e=this.videoKeyframeTimestamps[this.videoKeyframeTimestamps.length-1];e!==void 0&&a<e&&(this.videoKeyframeTimestamps=[]),this.videoKeyframeTimestamps.push(a),this.videoKeyframeTimestamps.length>20&&(this.videoKeyframeTimestamps=this.videoKeyframeTimestamps.slice(-20))}r.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;)this.emitter.emit(`error`,ai(!1,s));for(;(e=t.decoderContext.take())!==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 c=(a=(o=t.decoderContext).takeEstimatedStatistics)==null?void 0:a.call(o);for(;c!==void 0;){var l,u;t.decodeTime.push(c.decodeTime),t.transportTime.push(c.transportTime),c=(l=(u=t.decoderContext).takeEstimatedStatistics)==null?void 0:l.call(u)}})}),m(this,`emitDecodeRate`,()=>{if(this.decodeRateGraceIntervals>0){this.decodeRateGraceIntervals--;return}this.currentVideoDecodeRate=this.calculateVideoDecodeRate(),this.emitter.emit(`video decode rate`,this.currentVideoDecodeRate)}),m(this,`updateBufferState`,()=>{let e;if(this.trackContexts.forEach(t=>{if(!e)e=t.buffer;else{var n,r,i,a;let o=(n=(r=t.buffer[t.buffer.length-1])==null?void 0:r.end)==null?0:n;((i=(a=e[e.length-1])==null?void 0:a.end)==null?0:i)>o&&(e=t.buffer)}}),!e)return;let t=this.playbackSource.currentTime,n=!0;this.trackContexts.forEach(e=>{e.buffer.some(e=>e.start<=t&&t<e.end)||(n=!1)});let r=n?`playing`:`buffering`;this.emitter.emit(`buffer state`,{buffered:e,currentTime:this.playbackSource.currentTime,isPaused:this.playbackSource.isPaused,playbackState:r})}),this.logger=t,this.emitter=e,this.trackContexts=n,this.playbackSource=r,this._webCodecsInUse=i,this._audioWebCodecsInUse=a,this._offscreenCanvasInUse=o}static create(t,n,r,i,a,o,s=!1,c=`no-preference`,l){return M(function*(){let u=new Map,d=new Set,f=!1,p=!1,m=!1;for(let e of i){if(d.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(d.add(e.type),e.type){case`audio`:{let t,r,i=!1;if(s){let{WebCodecsAudioDecoderContext:a}=yield Promise.resolve().then(()=>(Ty(),xy));if(i=a.isSupported(),i)try{t=yield a.create(n.createContext(`WebCodecsAudio`)),p=!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(()=>(Iy(),Ny));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 oi(e.codec,t,r)}u.set(e.type,{buffer:[],decoderContext:t,decodeTime:new C(100),transportTime:new C(100),sampleDuration:40});break}case`video`:{let{VideoDecoderWorkerContext:t}=yield Promise.resolve().then(()=>(Wy(),Vy)),i=yield t.create(n.createContext(`VideoDecoderWorker`),r,o,s,c,l,()=>a.currentTime);f=i.isWebCodecs,m=i.usingOffscreenCanvas,u.set(e.type,{buffer:[],decoderContext:i,decodeTime:new C(100),transportTime:new C(100),sampleDuration:40,getRenderStatistics:i.getRenderStatistics});break}default:break}}return new e(t,n,u,a,f,p,m)})()}};h();var Yy,Xy=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,`unload`,()=>{document.removeEventListener(`visibilitychange`,this.onVisibilityChanged),window.removeEventListener(`pagehide`,this.onPageHide),window.removeEventListener(`online`,this.onOnline),window.removeEventListener(`offline`,this.onOffline)}),m(this,`load`,()=>{document.addEventListener(`visibilitychange`,this.onVisibilityChanged),window.addEventListener(`pagehide`,this.onPageHide),window.addEventListener(`online`,this.onOnline),window.addEventListener(`offline`,this.onOffline)}),m(this,`unsuspend`,()=>{}),m(this,`getStatistics`,()=>{var e,t,n,r,i;return{isVisible:this.isVisible,isOnline:this.isOnline,isVisibleCount:this.isVisibleCount,isHiddenCount:this.isHiddenCount,isOnlineCount:this.isOnlineCount,isOfflineCount:this.isOfflineCount,navigatorRtt:(e=navigator.connection)==null?void 0:e.rtt,navigatorEffectiveType:(t=navigator.connection)==null?void 0:t.effectiveType,navigatorConnectionType:(n=navigator.connection)==null?void 0:n.type,navigatorSaveData:(r=navigator.connection)==null?void 0:r.saveData,navigatorDownlink:(i=navigator.connection)==null?void 0:i.downlink}}),m(this,`onOnline`,()=>this.isOnlineCount++),m(this,`onOffline`,()=>this.isOfflineCount++),m(this,`onPageHide`,e=>this.emitter.emit(`pagehide`,e)),m(this,`onVisibilityChanged`,()=>{this.setIsActive(document.visibilityState===`visible`)}),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`}};Yy=Xy,m(Xy,`create`,e=>new Yy(e)),V(),h(),z();var Zy,Qy=e=>(t,n,r)=>t.timestamp<=n||t.timestampAdded<=r-e,$y=class e{constructor(t,n,r){m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`waitingEvents`,[]),m(this,`isTriggered`,Qy(e.EVENT_TIMEOUT)),m(this,`timeSource`,void 0),m(this,`timers`,new Vn),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:Date.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=Date.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}};Zy=$y,m($y,`EVENT_TIMEOUT`,5e3),m($y,`EVENT_CHECK_INTERVAL`,20),m($y,`create`,(e,t,n)=>new Zy(e,t,n)),Ti(),V(),h();var eb,tb=class e{constructor(t){m(this,`emitter`,void 0),m(this,`timers`,Vn.create()),m(this,`bytesReceived`,new Map),m(this,`timeoutInterval`,void 0),m(this,`lastBytesUpdated`,Date.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 Lt(20),this.bytesReceived.set(t,r)),n>0&&(this.lastBytesUpdated=Date.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=Date.now(),this.timeoutInterval=this.timers.setInterval(this.checkTimeout,e.UPDATE_RECEIVED_BYTES_INTERVAL))}),m(this,`checkTimeout`,()=>{let t=Date.now()-this.lastBytesUpdated;if(this.totalBytesReceived()===0&&t>e.NO_DATA_ERROR_TIMEOUT){this.emitter.emit(`error`,vi()),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}};eb=tb,m(tb,`NO_DATA_ERROR_TIMEOUT`,20*1e3),m(tb,`NO_DATA_TIMEOUT`,5*1e3),m(tb,`UPDATE_RECEIVED_BYTES_INTERVAL`,1e3),m(tb,`create`,e=>new eb(e)),V(),h();var nb=1e3,rb=50,ib=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,n,r,i;let a=this.getTrackingKey(e.type,e.renditionId),o=(t=(n=globalThis.performance)==null||(r=n.now)==null?void 0:r.call(n))==null?Date.now():t,s=e.timestamp/e.timescale*1e3,c=this.trackingState.get(a);if(!c){this.trackingState.set(a,{lastArrivalTime:o,lastTimestampMs:s,jitterSamples:new C(nb),interArrivalTimes:new C(nb)}),this.runningJitter.set(a,0),this.recentJitterSamples.set(a,new C(rb));return}let l=s-c.lastTimestampMs;if(l<=0){c.lastArrivalTime=o,c.lastTimestampMs=s;return}let u=o-c.lastArrivalTime,d=Math.abs(u-l);c.jitterSamples.push(d),c.interArrivalTimes.push(u);let f=(i=this.runningJitter.get(a))==null?0:i,p=f+(d-f)/16;this.runningJitter.set(a,p);let m=this.recentJitterSamples.get(a);m||(m=new C(rb),this.recentJitterSamples.set(a,m)),m.push(d),c.lastArrivalTime=o,c.lastTimestampMs=s}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}=Pt((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`)}}};Ti(),V(),h(),N();var ab=()=>window.AudioContext||window.webkitAudioContext,ob=class e extends Ht{constructor(){var t;super(),t=this,m(this,`context`,new(ab())),m(this,`timers`,Vn.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`,M(function*(){try{return yield Promise.race([t.context.resume(),ir(1e3,fi())])}catch(e){throw t.suspend().catch(x),e}})),m(this,`suspend`,M(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(ob,`CHECK_INTERVAL`,1e3),Ti(),V(),h(),N(),z();var sb,cb=150,lb=400,ub=e=>e===void 0?5:e<=cb?1:e<=lb?2:5,db=class extends Ht{get isContextRunning(){var e;return((e=this.audio)==null?void 0:e.state)===`running`}get volume(){return this._volume}set volume(e){this._volume=e,this.muted||this.setGain(e)}get seekTime(){return 0}get totalSeekTime(){return 0}get isSeeking(){return!1}get muted(){var e;return this._muted||!((e=this.audio)!=null&&e.isRunning)}set muted(e){this._userProvidedMuted=e,this._muted=e,this.setGain(this._volume)}get isPaused(){return!1}get currentTime(){var e;return!this.audio||!this.audio.isRunning||this.audio.isStuck?this.clockSource.currentTime:this.audio.currentTime*1e3+((e=this.clockDelta)==null?0:e)}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=ub(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 C(500)),m(this,`unplayedBufferSources`,new C(100)),m(this,`sampleRate`,48e3),m(this,`channels`,2),m(this,`index`,0),m(this,`clockSource`,void 0),m(this,`clockDelta`,void 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,`audioBufferMultiplier`,void 0),m(this,`isActivated`,!1),m(this,`unload`,M(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`,()=>{var e;this.setGain(this._volume),this.ignoreSuspendCalls=!!this.audio,(e=this.audio)==null||e.suspend().then(M(function*(){yield a.resume(),a.ignoreSuspendCalls=!1})).catch(()=>{this.ignoreSuspendCalls=!1,this.emit(`state change`,`suspended`)})}),m(this,`flush`,(e=this.samples.length)=>{if(!this.audio||!this.gainNode)throw new H(`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.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`,M(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`,M(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,`getAudioContext`,()=>this.audio?this.audio:this.setupContext()),m(this,`setupContext`,()=>{var e,t,n;return(e=this.audio)==null||e.unload(),this.audio=new ob,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`,()=>{this.reInitWhenStuck&&(this.logger.info(`Re-init audio context`),this.setupContext(),this.resume().catch(x),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=ub(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}};sb=db,m(db,`create`,(e,t,n)=>new sb(e,t,n)),h();var fb,pb=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 Wi),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 Ir,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}};fb=pb,m(pb,`create`,(e,t,n,r,i,a)=>new fb(e,t,n,r,i,a)),T(),k(),j();var mb=new WeakMap,hb=class{constructor(){w(this,mb,[]),O(mb,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 A(mb,this).push(i),i}set language(e){A(mb,this).forEach(t=>{t.language===e?t.mode=`showing`:t.mode=`hidden`})}get language(){var e;return(e=A(mb,this).find(e=>e.mode===`showing`))==null?void 0:e.language}getActiveCues(e){let t=A(mb,this).find(e=>e.mode===`showing`);return t?t.cues.filter(({startTime:t,endTime:n})=>e>=t&&e<=n):[]}};V(),h();var gb=(e,t)=>{let n;for(n=t;e>1;e--)n+=t;return n},_b=class{constructor(){m(this,`audio`,void 0),m(this,`unmute`,()=>this.audio.play().catch(x));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`+gb(23,`A`)+`WGluZwAAAA8AAAACAAACcQCA`+gb(16,`gICA`)+gb(66,`/`)+`8AAABhTEFNRTMuMTAwA8MAAAAAAAAAABQgJAUHQQAB9AAAAnGMHkkI`+gb(320,`A`)+`//sQxAADgnABGiAAQBCqgCRMAAgEAH`+gb(15,`/`)+`7+n/9FTuQsQH//////2NG0jWUGlio5gLQTOtIoeR2WX////X4s9Atb/JRVCbBUpeRUq`+gb(18,`/`)+`9RUi0f2jn/+xDECgPCjAEQAABN4AAANIAAAAQVTEFNRTMuMTAw`+gb(97,`V`)+`Q==`,this.audio.loop=!1,this.audio.load();else throw Error(`Failed to create audio tag`)}};Ti(),V(),h();var vb,yb=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 _b),m(this,`_isPaused`,!1),m(this,`isDisconnected`,!1),m(this,`timers`,new Vn),m(this,`isVideoRenderingEnabled`,!0),m(this,`isLoaded`,!1),m(this,`isSuspended`,!0),m(this,`isVideoPlayerLoaded`,!1),m(this,`textTracks`,new hb),m(this,`playbackRate`,void 0),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`,()=>this.videoPlayer.getStatistics()),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`,si(!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=db.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.emitter.emit(`volume state`,{volume:this.volume,isMuted:this.muted})}),this.videoPlayer=pb.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}get muted(){return this.audioPlayer.muted}set muted(e){let t=this.muted;this.audioPlayer.muted=e,!e&&t&&this.activateAudioPlayer().catch(x)}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`)}};vb=yb,m(yb,`create`,(e,t,n,r,i,a,o,s)=>new vb(e,t,n,r,i,a,o,s)),Ti(),V(),h();var bb,xb=class{constructor(e,t,n,r,{muted:i,volume:a,type:o,poster:s,offscreenCanvas:c,bufferTime:l}){m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`mediaElement`,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 Vn),m(this,`offscreenCanvas`,void 0),m(this,`nativeTextTrack`,void 0),m(this,`nativeTrackCues`,[]),m(this,`volumeState`,void 0),m(this,`textTracks`,new hb),m(this,`reset`,()=>{}),m(this,`load`,()=>{this.mediaElement.load(),this.emitter.on(`decoded frame`,this.onDecodedFrame),this.emitter.on(`flush buffers`,this.flushBuffers),this.emitter.on(`ios-hack: reset size`,this.resetCanvasSize),this.emitter.on(`enter picture in picture`,this.onEnterIOSHack),this.emitter.on(`exit picture in picture`,this.onExitIOSHack),this.element().element.addEventListener(`webkitendfullscreen`,this.onExitIOSHack),this.element().element.addEventListener(`webkitbeginfullscreen`,this.onEnterIOSHack),this.videoPlayer.load(),this.nativeTextTrack=this.mediaElement.element.addTextTrack(`subtitles`,``,``),this.nativeTextTrack.mode=`showing`,this.timers.setInterval(()=>{if(!this.textTracks.language){this.clearNativeTrackCues();return}let e=this.textTracks.getActiveCues(this.currentTime/1e3);this.updateNativeTrackCues(e)},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.removeEventListener(`webkitendfullscreen`,this.onExitIOSHack),this.element().element.removeEventListener(`webkitbeginfullscreen`,this.onEnterIOSHack),this.clearNativeTrackCues(),this.nativeTextTrack=void 0,this.mediaElement.unload(),this.timers.unload(),this.audioPlayer.unload(),this.videoPlayer.unload()}),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,`getStatistics`,()=>this.videoPlayer.getStatistics()),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,`onEnterIOSHack`,()=>{this.mediaElement._iosHackEnterPiPMode()}),m(this,`onExitIOSHack`,()=>{this.mediaElement._iosHackExitPiPMode()}),m(this,`onDecodedFrame`,e=>{try{this.audioPlayer.onDecodedFrame(e)}catch(e){e instanceof Error&&this.emitter.emit(`error`,si(!1,e))}this.offscreenCanvas||this.videoPlayer.onDecodedFrame(e)}),m(this,`onVideoPlayerError`,e=>{if(e instanceof H){this.emitter.emit(`error`,e);return}this.emitter.emit(`error`,ai(!1,e))}),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=e.captureStream(),n=this.audioPlayer.useMediaStreamDestination().stream,r=[...t.getTracks(),...n.getTracks()];this.logger.info(`Video tracks: ${t.getTracks().length}, Audio tracks: ${n.getTracks().length}`);let i=this.mediaElement.element.srcObject;i instanceof MediaStream&&i.getVideoTracks().forEach(e=>e.stop()),this.mediaElement.element.srcObject=new MediaStream(r),this.isDisconnected=!1}),m(this,`setOffscreenCanvas`,e=>{this.offscreenCanvas!==e&&(this.offscreenCanvas=e,this.reconnectCanvasStream())}),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,`clearNativeTrackCues`,()=>{if(this.nativeTextTrack){for(let e of this.nativeTrackCues)try{this.nativeTextTrack.removeCue(e)}catch(e){}this.nativeTrackCues=[]}}),m(this,`updateNativeTrackCues`,e=>{let t=this.nativeTextTrack;if(!t)return;let n=e.map(e=>e.text),r=this.nativeTrackCues.map(e=>e.text);if(!(n.length===r.length&&n.every((e,t)=>e===r[t]))){this.clearNativeTrackCues();for(let n of e){let e=new VTTCue(0,999999999,n.text);t.addCue(e),this.nativeTrackCues.push(e)}}}),m(this,`updateVolumeState`,()=>{let e={isMuted:this.muted,volume:this.volume};Bt(e,this.volumeState)||(this.volumeState=e,this.emitter.emit(`volume state`,this.volumeState))}),this.logger=t,this.emitter=e,this.pool=n,this._userProvidedMuted=i,this.offscreenCanvas=c,this.emitter.on(`target buffer time`,this.onTargetBufferTime),this.mediaElement=new il({poster:s,type:o,muted:i,volume:a,autoplay:!1,logger:this.logger.createContext(`MediaElement`)}),this.mediaElement.on(`volume state`,e=>{this.updateVolumeState(),!e.isMuted&&!this.audioPlayer.isContextRunning&&this.activateAudioPlayer().catch(x),e.isMuted||(this._userProvidedMuted=!1)}),this.mediaElement.on(`media element state`,e=>{e===`paused`&&this.audioPlayer.flushBuffer(),this.emitter.emit(`media element state`,e)}),this.audioPlayer=db.create(this.logger.createContext(`AudioPlayerModule`),r,{muted:!1,reInitWhenStuck:!1,bufferTime:l}),this.audioPlayer.on(`stuck`,()=>{this.isDisconnected=!0}),this.audioPlayer.on(`state change`,e=>{e===`suspended`||e===`interrupted`?this.mediaElement.muted=!0:e===`running`&&(this.mediaElement.muted=this._userProvidedMuted||document.visibilityState===`hidden`),this.updateVolumeState()}),this.videoPlayer=pb.create(this.logger.createContext(`VideoPlayerModule`),this.audioPlayer,this.pool,this.mediaElement.element,()=>this.reconnectCanvasStream(),this.onVideoPlayerError),this.volumeState={volume:this.volume,isMuted:this.muted}}get volume(){return this.mediaElement.volume}set volume(e){this.mediaElement.volume=e}get muted(){return this.mediaElement.muted||this.audioPlayer.muted}set muted(e){let t=this.muted;this._userProvidedMuted=e,this.mediaElement.muted=e,!e&&t&&this.activateAudioPlayer().catch(x)}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.mediaElement.isPaused}get isSeeking(){return this.mediaElement.isSeeking}get audioNode(){return this.audioPlayer.audioNode}play(){let e=this._userProvidedMuted;return this.activateAudioPlayer().catch(()=>{e||this.emitter.emit(`needs user input`,{forAudio:!0,forVideo:!1})}),this.mediaElement.play()}pause(){this.mediaElement.pause()}};bb=xb,m(xb,`create`,(e,t,n,r,i)=>new bb(e,t,n,r,i)),V(),h();var Sb=()=>e=>Cb(e.buffered.start(0),e.buffered.end(e.buffered.length-1)),Cb=(e,t)=>n=>n.remove(Math.max(0,e),Math.min(1/0,t)),wb=e=>t=>t.appendBuffer(e),Tb=e=>t=>t.changeType(e),Eb=e=>t=>e(t),Db=class{constructor(e){m(this,`commandQueue`,[]),m(this,`sourceBuffer`,void 0),m(this,`errorCallback`,void 0),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,`appendBuffer`,(e,t)=>new Promise((n,r)=>{if(t&&this.currentInit!==t){let e=new kt(wb(t),n,r);this.commandQueue.push(e),this.currentInit=t}let i=new kt(wb(e),n,r);this.commandQueue.push(i),this.handleQueue()})),m(this,`execute`,e=>new Promise((t,n)=>{let r=new kt(Eb(e),t,n);this.commandQueue.push(r),this.handleQueue()})),m(this,`buffered`,()=>this.sourceBuffer.buffered),m(this,`removeFromMediaSource`,e=>{this.dispose(),e.removeSourceBuffer(this.sourceBuffer)}),m(this,`dispose`,()=>{this.sourceBuffer.removeEventListener(`updateend`,this.handleQueue),this.sourceBuffer.removeEventListener(`error`,this.onError),this.commandQueue=[],this.errorCallback=void 0}),m(this,`changeType`,e=>new Promise((t,n)=>{let r=new kt(Tb(e),t,n);this.commandQueue.push(r),this.handleQueue()})),m(this,`removeBuffer`,(e,t)=>new Promise((n,r)=>{let i=new kt(Cb(e,t),n,r);this.commandQueue.push(i),this.handleQueue()})),m(this,`flush`,()=>new Promise((e,t)=>{let n=new kt(Sb,e,t);this.commandQueue.push(n),this.handleQueue()})),this.sourceBuffer=e,this.sourceBuffer.addEventListener(`updateend`,this.handleQueue),this.sourceBuffer.addEventListener(`error`,this.onError)}};V(),h();var Ob=class extends Ht{constructor(){super(),m(this,`MediaSource`,Be()),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 Db(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(Ob,`isTypeSupported`,e=>{var t,n;return(t=(n=Be())==null?void 0:n.isTypeSupported(e))==null?!1:t}),Ti(),V(),h(),z(),N();var kb,Ab=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 jb(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:Date.now()})}function Mb({initSegments:e,pendingSamples:t}){return{state:`uninitialized`,initSegments:e==null?new Ab:e,sequenceNumber:0,isWorkingOnPendingSamples:!1,hasFirstSync:t.some(e=>e.isSync),pendingSamples:t==null?[]:t,pendingSamplesOffset:0,consecutiveQuotaExceededErrorCount:0,successfulAppendCalls:0}}var Nb=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`,Vn.create()),m(this,`emitter`,void 0),m(this,`mediaElement`,void 0),m(this,`mediaSource`,new Ob),m(this,`trackContexts`,new Map),m(this,`autoRecoverFromMediaErrors`,!0),m(this,`quotaErrorCount`,0),m(this,`recoveredFromErrorCount`,0),m(this,`sourceOpenStartTime`,Date.now()),m(this,`sourceOpenEndTime`,Date.now()),m(this,`pendingTracksToAddSourceBuffers`,void 0),m(this,`hasAddedInitialPosterFrame`,!0),m(this,`videoKeyframeTimestamps`,[]),m(this,`isReopening`,!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)}),m(this,`unload`,()=>{this.logger.debug(`Unloading module...`),this.emitter.off(`init segment`,this.init),this.emitter.off(`coded sample`,this.onCodedSample),this.emitter.off(`flush buffers`,this.flushBuffers),this.emitter.off(`fragment`,this.onFragment),this.mediaSource.off(`source ended`,this.onSourceEnded),this.mediaSource.off(`source open`,this.onSourceOpen),this.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(`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:Mt(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`,()=>{this.videoKeyframeTimestamps=[],this.trackContexts.forEach(e=>{e.pendingSamples=[],e.pendingSamplesOffset=0,e.hasFirstSync=!1,e.state!==`uninitialized`&&this.mediaSource.isOpen()&&e.sourceBuffer.removeBuffer(0,1/0).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=Mb({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=Mb({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=jb(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=M(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=Mb({pendingSamples:[],initSegments:new Ab}),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){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=Mb({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 Fb(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 ui(e.type,e.renditionId);n.state===`initialized`&&(n.mimeType=t);let r=Dc({codec:e.codec,timescale:e.timescale,initData:e.data});r&&n.initSegments.set(e.channelId,e.renditionId,new Uint8Array(r))}),m(this,`append`,function(){var e=M(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 ci(n.renditionId,n.channelId);if(!i)throw ui(n.type,n.renditionId);if(i.state===`uninitialized`)throw di(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){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&&Date.now()-i.lastBufferCleanupTime>1e4&&(i.lastBufferCleanupTime=Date.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=Pc(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 ui(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 ui(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||Bb(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 Error){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=li(!1,n,t.consecutiveQuotaExceededErrorCount,e.type);this.emitter.emit(`error`,r)}}else{let r=li(!1,n,t.consecutiveQuotaExceededErrorCount,e.type);this.emitter.emit(`error`,r)}this.mediaElement.error&&this.onSourceEnded()}}}))}}),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=Date.now(),this.isReopening=!1,this.pendingTracksToAddSourceBuffers&&(this.setSourceBuffers(this.pendingTracksToAddSourceBuffers),this.pendingTracksToAddSourceBuffers=void 0)}),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=Date.now(),this.pendingTracksToAddSourceBuffers=n,this.mediaSource.detach(this.mediaElement),this.setTrackContexts(this.trackContexts),this.mediaSource.attach(this.mediaElement),t&&this.mediaElement.play().catch(x)}),m(this,`onMediaElementError`,()=>{let{error:e}=this.mediaElement;if(!e||this.isReopening)return;let t=ii(/AUDIO_RENDERER/.test(e.message)||!this.autoRecoverFromMediaErrors,e);this.logger.error(`MediaElement error`,{error:t}),this.emitter.emit(`error`,t),t.isFatal()||(this.emitter.emit(`recovered from media error`,{error:t,count:this.recoveredFromErrorCount}),this.reopenMediaSource(`media element error recovery`))}),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)=>Ib(e,t),e[0]?Array.from(e[0]):[])),m(this,`getPlaybackStateForBufferedRanges`,(e,t)=>Pb(e,t)?`playing`:`buffering`),this.logger=e,this.mediaElement=n,this.emitter=t}};kb=Nb,m(Nb,`create`,(e,t,n)=>{let r=new kb(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(`seeking`,r.onPlaybackPauseOrSeek),r.mediaSource.attach(n),r});var Pb=(e,t)=>t.some(t=>t.start<=e&&e<t.end),Fb=(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}}}},Ib=(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},Lb=(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},Rb=32,zb=e=>{let t=e.pendingSamplesOffset;if(t!==0){if(t>=e.pendingSamples.length){e.pendingSamples=[],e.pendingSamplesOffset=0;return}t<Rb||t*2<e.pendingSamples.length||(e.pendingSamples=e.pendingSamples.slice(t),e.pendingSamplesOffset=0)}},Bb=function(){var e=M(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(Lb(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?Lb(e.previousSample,a):!0),e.pendingSamplesOffset=i+1,e.previousSample=r[r.length-1],zb(e)}e.isWorkingOnPendingSamples=!1});return function(t,n,r){return e.apply(this,arguments)}}();V(),h(),N();var Vb,Hb=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),Ct(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),Ct(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=yt(e),this.logger.debug(`Enter picture in picture`),this.emitter.emit(`enter picture in picture`,this)}),m(this,`requestStandardPictureInPicture`,M(function*(){if(!n.element)throw Error(`Picture in picture is not supported`);let e=mt(n.element);if(!e)throw Error(`Picture in picture is not supported`);yield e()})),m(this,`exitStandardPictureInPicture`,M(function*(){let e=ht();if(!e)throw Error(`Picture in picture is not supported`);yield e()})),m(this,`isStandardPictureInPictureSupported`,()=>!!this.element&&vt(this.element)),m(this,`isStandardPictureInPictureActive`,()=>!!this.element&&_t()),m(this,`isWebkitPresentationModeActive`,()=>!!this.element&&bt(this.element)===`picture-in-picture`),m(this,`requestWebkitPresentationMode`,function(){var e=M(function*(e){return n.element&&xt(n.element,e),Promise.resolve()});return function(t){return e.apply(this,arguments)}}()),m(this,`isWebkitPresentationModeSupported`,()=>!!this.element&&St(this.element)),this.emitter=e,this.logger=t,this.emitter.on(`add picture in picture listener`,this.onEnablePictureInPicture)}};Vb=Hb,m(Hb,`create`,(e,t)=>new Vb(e,t)),h();var Ub,Wb=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=e.some(e=>e.start<=r&&r<e.end),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&&(this.firstFrameTime=Date.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)}};Ub=Wb,m(Wb,`create`,(e,t,n,r)=>new Ub(e,t,n,r)),V(),h();var Gb,Kb=()=>({upgradesFromLevel:[],downgradesFromLevel:[],bufferingRanges:[],activeRanges:[],decodeRate:2**53-1}),qb=()=>({levels:{},levelDowngrades:[],levelUpgrades:[],bufferFullness:0,general:Kb()}),Jb=class{constructor(e,t,n){m(this,`minBufferFullnessLengthForRegression`,6),m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`timers`,Vn.create()),m(this,`metrics`,qb()),m(this,`bufferFullness`,new C(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,`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)}),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.suspend()}),m(this,`suspend`,()=>{this.isSuspended=!0,this.timers.unload(),this.stopBuffering(),this.unsetActive()}),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=Gn(this.metrics.general.activeRanges);if(Object.entries(this.metrics.levels).forEach(([n,r])=>{var i;let a=parseInt(n,10),o=t?Gn(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=Gn(this.metrics.general.bufferingRanges);if(Object.entries(this.metrics.levels).forEach(([n,r])=>{var i;let a=parseInt(n,10),o=t?Gn(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>=Date.now()-e).length),m(this,`timeSpentBufferingLast`,e=>Kn(this.metrics.general.bufferingRanges,e)),m(this,`timeSpentActiveLast`,e=>Kn(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`,()=>Gn(this.metrics.general.bufferingRanges)),m(this,`timeActive`,()=>Gn(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(Date.now()):this.metrics.general.downgradesFromLevel.push(Date.now()));let d=!1;if(e.from){var f;let e=(f=this.metrics.levels[l])==null?Kb():f;l<u?e.upgradesFromLevel.push(Date.now()):e.downgradesFromLevel.push(Date.now()),Un(e.activeRanges);let t=e.bufferingRanges[e.bufferingRanges.length-1];d=!!t&&!t.end,Un(e.bufferingRanges),this.metrics.levels[l]=e}if(e.to){var p;let e=(p=this.metrics.levels[u])==null?Kb():p;Wn(e.activeRanges),d&&Wn(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.stopBuffering();break;case`buffering`:this.isSuspended||this.startBuffering();break}}),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`,()=>Ft(this.bufferFullness.items().map((e,t)=>({x:t,y:e})))),m(this,`stopBuffering`,()=>{if(this.currentLevel){let e=this.metrics.levels[this.currentLevel];e&&Un(e.bufferingRanges)}Un(this.metrics.general.bufferingRanges)}),m(this,`startBuffering`,()=>{if(this.currentLevel){let e=this.metrics.levels[this.currentLevel];e&&Wn(e.bufferingRanges)}Wn(this.metrics.general.bufferingRanges)}),m(this,`unsetActive`,()=>{if(this.currentLevel){let e=this.metrics.levels[this.currentLevel];e&&Un(e.activeRanges)}Un(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&&Wn(e.activeRanges)}Wn(this.metrics.general.activeRanges)}};Gb=Jb,m(Jb,`create`,(e,t,n)=>new Gb(e,t,n)),V(),h();var Yb,Xb=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&&fr(n))return n}),m(this,`getAudioRenditions`,e=>{let t=this.renditions.get(e);return t==null?void 0:t.filter(e=>pr(e))}),m(this,`getVideoRenditions`,e=>{let t=this.renditions.get(e);return t==null?void 0:t.filter(e=>fr(e))}),m(this,`getAudioRendition`,(e,t=this.getCurrentSubscription().channelId)=>{let n=this.getRendition(e,t);if(n&&pr(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);Bt(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(fr).filter(e=>n&&e.codec===n.codec),s=a.filter(pr).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)}};Yb=Xb,m(Xb,`create`,(e,t)=>new Yb(e,t)),V(),h();var Zb,Qb=e=>JSON.parse(JSON.stringify(e)),$b=1e4,ex=class{constructor(e,t,n){m(this,`logger`,void 0),m(this,`timers`,new Vn),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!Bt(Ln(this.currentSubscription,e),Ln(this.targetSubscription,e))}),m(this,`onSubscriptionChanged`,({to:e,reset:t})=>{this.logger.debug(`onSubscriptionChanged`,{to:e,reset:t}),t?this.targetSubscription=Qb(this.currentSubscription):this.currentSubscription=Qb(e),this._isSwitchingSubscription=this.isNewSubscription()}),m(this,`scheduleSubscriptionChange`,()=>{this.targetSubscription=Qb(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=Qb(this.currentSubscription),this.emitter.emit(`channel switch timeout`,t))},$b),this.pendingSubscriptionTimeoutId=this.timers.setTimeout(()=>this.emitter.emit(`send signal`,{type:`subscribe`,subscription:this.getTargetSubscription()}),0))}),this.logger=e,this.targetSubscription=t,this.currentSubscription=Qb(t),this.emitter=n,this.emitter.on(`subscription changed`,this.onSubscriptionChanged)}};Zb=ex,m(ex,`create`,(e,t,n)=>new Zb(e,n,t)),V(),h(),z();var tx,nx=5e3,rx=()=>Qe()||Ye(),ix=e=>e&&rx()?100:0,ax=e=>t=>t>e,ox={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}},sx=class{get driftSamplesToCollect(){return this._driftSamplesToCollect}set driftSamplesToCollect(e){this._driftSamplesToCollect=e,this.driftSamples=new C(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 C(10)),m(this,`lastSeekTime`,Date.now()),m(this,`lastAdjustmentTime`,Date.now()),m(this,`lastDecayCheckTime`,Date.now()),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`,Vn.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 C(this._driftSamplesToCollect)),m(this,`timestampOffset`,void 0),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.timers.setInterval(this.onSync,100)}),m(this,`unload`,()=>{this.logger.debug(`Unloading module...`),this.emitter.off(`rtt`,this.updateRtt),this.emitter.off(`playback state`,this.onPlaybackState),this.timers.unload(),this.logger.debug(`Unloaded module`)}),m(this,`suspend`,()=>{this.isSuspended=!0}),m(this,`unsuspend`,()=>{this.resetSyncState(),this.isSuspended=!1}),m(this,`deactivateSyncAdjustments`,()=>{this.isSyncAdjustmentActivated=!1}),m(this,`activateSyncAdjustments`,()=>{this.tryApplySyncInfo(0),this.lastSeekTime=Date.now(),this.isSyncAdjustmentActivated=!0}),m(this,`reset`,()=>{this.logger.info(`Reset sync state`),this.currentChannelId=void 0,this.timestampOffset=void 0,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,`getLiveEdgeTime`,e=>{let t=this.channelSyncInfo.get(e);if(!t)return;let n=Date.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=Date.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-nx);let n=e.type===`video`&&e.isSync;if(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)=>{var n;this.currentChannelId||(this.currentChannelId=e);let r=t.mediaType();if(!r)throw Error(`Fragment must have a media type`);this.timestampOffset||(this.timestampOffset=t.baseMediaDecodeTime()/t.timescale()*1e3-nx);let i=t.mediaType()===`video`&&t.startsWithKeyframe();if(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 (i||this.allowTimeshiftOnAudio)&&this.tryTimeshiftSync();let a=this.timestampOffset*t.timescale()/1e3;return t.updateBaseMediaDecodeTime(t.baseMediaDecodeTime()-a),i&&this.keyframeTimestamps.push(t.baseMediaDecodeTime()/t.timescale()*1e3),this.highestSeenTimestamps.set(r,Math.max((n=this.highestSeenTimestamps.get(r))==null?0:n,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?jt(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}}),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`,()=>Date.now()-this.lastSeekTime>this.config.seek.cooldownMs),m(this,`isSeekTimeoutExpired`,()=>Date.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=Date.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=Date.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=Date.now()),!1;let a=Date.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||this.hasPendingRecoverySeek()||!this.isAllowedToSync()||this.playbackSource.playbackRate!==1)return;let t=(e=this.drift)==null?0:e;this.driftSamples.push(t);let n=Nt(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=Date.now()-this.config.seek.timeoutMs*this.state.timeshiftToleranceMultiplier,i=this.timeshiftAdjustmentTimestamps.filter(ax(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.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,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);r&&(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.lastSeekTime=Date.now(),t&&(this.hasPerformedRecoverySeekInCurrentRecoveryState=!0),this.clearRecoverySeekFlags(),this.driftSamples.clear(),this.seekAdjustmentTimestamps.push(this.lastSeekTime),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;if(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,this.lastSeekTime=Date.now(),this.lastAdjustmentTime=Date.now(),!this.playbackSource.isPaused&&(this.driftSamples.clear(),this.timeshiftAdjustmentTimestamps.push(this.lastSeekTime),this.timeshiftAdjustmentCount++,this.config.backoff.enabled&&this.timeshiftAdjustmentCount>0&&this.timeshiftAdjustmentCount%this.config.timeshift.backoffEveryN===0)){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:Nt(this.driftSamples.items());if(!r&&this.tryPlaybackRateSync(i)||!r&&this.shouldSkipNormalSeek(i))return;let a=Date.now()-this.config.seek.timeoutMs*this.state.seekToleranceMultiplier,o=this.seekAdjustmentTimestamps.filter(ax(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,`onPlaybackState`,e=>{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,`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=ix(a),this.config={seek:R({},ox.seek),timeshift:R({},ox.timeshift),playbackRate:R({},ox.playbackRate),backoff:R({},ox.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.logger.info(`SyncModule initialized`,{config:this.config})}updateChannelSyncInfo(e,t){let n=Date.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 C(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,localWallclockDelta: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 C(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=Nt(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}};tx=sx,m(sx,`create`,(e,t,n,r,i,a=!0)=>new tx(e,t,n,r,i,a)),Ti(),V(),z(),h(),N();var cx,lx={enabled:!0,interval:3e4,includeErrors:!0,includeEvents:!0,includeStats:!0,maxRetries:10,maxErrorReports:50,maxEvents:50},ux=(e,t)=>R(R({},t),{},{type:e,timestamp:new Date().toISOString(),discriminator:`web`}),dx=class{constructor(e,t,n,r){var i=this;m(this,`logger`,void 0),m(this,`timers`,new Vn),m(this,`emitter`,void 0),m(this,`options`,void 0),m(this,`parentContext`,void 0),m(this,`unsentLines`,new C(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=ux(`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=ux(`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=M(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(`
1223
+ `);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 Ol(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(t&&e instanceof H){if(this.errorCount++,this.errorCount>n)return;let t=this.parentContext.getStatistics();this.unsentLines.push(ux(`error`,R(R({},t),e.toStringifiable())))}}),this.logger=e,this.emitter=t,this.options=R(R({},lx),n),this.parentContext=r}};cx=dx,m(dx,`create`,(e,t,n,r)=>new cx(e,t,n,r)),V(),h();var fx,px=class{constructor(e,t,n){m(this,`logger`,void 0),m(this,`element`,void 0),m(this,`documentState`,void 0),m(this,`timers`,new Vn),m(this,`unload`,()=>{this.timers.unload()}),m(this,`unpause`,()=>{this.element.userHasProvidedInput&&this.element.isPaused&&this.documentState.isVisible&&this.documentState.isOnline&&(this.logger.debug(`Unpause video`),this.element.tryPlay())}),this.logger=e,this.element=t,this.documentState=n,this.timers.setInterval(this.unpause,100)}};fx=px,m(px,`create`,(e,t,n)=>new fx(e,t,n)),h();var mx=[`minBufferTime`,`maxBufferTime`,`burstEnabled`,`sizeBasedResolutionCapEnabled`,`separateVideoSocketEnabled`,`webcodecsHardwareAcceleration`,`offscreenCanvasEnabled`,`videoCodecs`];function hx(e){return mx.includes(e)}var gx=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&&hx(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 _x=6,vx=e=>{let t=[e],n=0,r=0,i=!1,a=(e,t)=>{var i,a;if(e.flags&&Bc(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&&Bc(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&&Bc(e.flags)&&n&&(i=!i),!(n&&t.length<_x&&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),[]}},yx=[`mse`,`wasm`],bx=e=>e==null?yx:e,xx=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)},Sx=(e,t,n)=>{if(xx(n))return`mse`;let r=bx(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 Cx=(e,t,n)=>{if(fr(t))return R(R({},e),{},{type:`video`,codec:t.codec,isSync:Bc(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:Bc(e.flags),data:e.payload,duration:0})};Ti(),z();var wx=(e,t)=>e&&typeof e==`object`&&t in e,Tx=e=>!(typeof e!=`object`||!wx(e,`channelId`)||typeof e.channelId!=`string`||!wx(e,`url`)||typeof e.url!=`string`||e.channelId.length===0||e.url.length===0),Ex=e=>{if(!Tx(e))throw new H(`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},Dx=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};La(),Rc(),vy(),h(),N();var Ox=class{constructor(e){var t=this;m(this,`cache`,new Map),m(this,`inFlight`,new Map),m(this,`checkVideoSupport`,function(){var e=M(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=M(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?_y(e.codec):n,a=`audio|${i}|${e.sampleRate}|${e.channels}`,o=e.codec===`aac`?Ia(e.channels,e.sampleRate):e.codec===`opus`?Ic(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}};Ti(),V(),h(),T(),z(),N(),j(),k();var kx=new WeakMap,Ax=new WeakMap,jx=new WeakMap,Mx=class e extends Ht{constructor(t){var n,r;super(),n=this,m(this,`pictureInPicture`,void 0),m(this,`drm`,void 0),m(this,`browser`,rt()),m(this,`options`,void 0),m(this,`element`,void 0),m(this,`playbackSource`,void 0),m(this,`emitter`,new Ht),m(this,`logger`,void 0),m(this,`modules`,void 0),m(this,`clientIp`,void 0),m(this,`sessionId`,void 0),m(this,`clientId`,tr()),m(this,`_channels`,[]),m(this,`createdAt`,Date.now()),m(this,`offscreenCanvasElement`,void 0),m(this,`webCodecsRenditionSupport`,void 0),m(this,`hasCalledConnect`,!1),m(this,`latestEmittedLanguages`,[]),m(this,`wakeLock`,void 0),m(this,`pool`,new ae(e.MAX_POOL_SIZE)),m(this,`userAgentInformation`,new $n),m(this,`encryptedMediaExtensions`,void 0),w(this,kx,0),w(this,Ax,[]),m(this,`sampleProcessingSesssions`,new Map),m(this,`sizes`,new Map),m(this,`isSuspended`,!0),m(this,`disconnectTimeout`,void 0),m(this,`offscreenSubtitleInterval`,void 0),w(this,jx,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,`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.unsuspend(),this.playbackSource instanceof il){var e,t;(e=(t=this.playbackSource).load)==null||e.call(t)}this.modules.connection.connect()}}),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`)})),m(this,`onConnectInfo`,function(){var e=M(function*(e){var t;n.sessionId=tr();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=M(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 _i(`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.options.get(`burstEnabled`,n.channelId)&&n.modules.subscription.enableBurst(n.targetBufferTime),n.emit(`is live`,i.isLive),!i.isLive)throw Error(`Waiting for channel to go live`);n.patchSubscription(i,n.modules.connection.estimatedBandwidth),yield n.initializeDecodingModule(),n.resetModules(),n.emit(`rendition levels`,n.modules.renditions.getRenditionLevels()),n.emit(`channels`,n.channels),n.emitLanguagesIfChanged(),n.sampleProcessingSesssions.clear();let c=n.options.get(`burstEnabled`,n.channelId);return{video:n.targetSubscription.video,audio:n.targetSubscription.audio,burstMs:c?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(!A(Ax,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||``);A(Ax,this).push(t)}else if(this.mediaElement instanceof HTMLVideoElement){let t=this.mediaElement.addTextTrack(e.kind,e.label||e.language,e.language);A(Ax,this).push(t)}}});for(let e of A(Ax,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)=>{A(Ax,this).forEach(t=>{if(t.cues)for(let n of t.cues)n.endTime*1e3<e-2e3&&t.removeCue(n)})}),m(this,`filterRenditions`,function(){var e=M(function*(e){let t=yield Promise.all(e.map(function(){var e=M(function*(e){if(pr(e)){var t;return n.willUseMediaSource()&&!((t=Be())!=null&&t.isTypeSupported(mr(e)))?!1:n.willUseMediaSource()||e.codec===`opus`?!0:n.isWebCodecsAudioAvailable(n.channelId)?n.webCodecsRenditionSupport.checkAudioSupport(e):!1}if(!fr(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 al(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},fr(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},fr(e)?{width:e.width,height:e.height}:{}),{},{bitRate:e.bitRate}))}),r});return function(t){return e.apply(this,arguments)}}()),m(this,`patchSubscription`,(e,t)=>{let n=this.options.get(`maxInitialBitRate`),r=Math.min(this.options.get(`maxVideoBitRate`),n,t,this.targetSubscription.video.bitRate),i=Math.min(this.options.get(`maxAudioBitRate`),n,t,this.targetSubscription.audio.bitRate),a=this.options.get(`media`)===`audio`?[]:this.options.get(`videoCodecs`,this.channelId),o=this.supportedAudioCodecs(),s=e.renditions.filter(pr),c=e.renditions.filter(fr),l=o.find(e=>s.find(t=>t.codec===e)!==void 0),u=a.find(e=>c.find(t=>t.codec===e)!==void 0),d=s.map(e=>e.language);if(this.logger.debug(`supported and selected codecs`,{audioCodecs:o,videoCodecs:a,audioCodec:l,videoCodec:u}),u){let e=this.options.get(`maxSize`);this.modules.subscription.setVideoConstraint(R({codec:u,bitRate:this.abrEnabled?r:this.options.get(`maxVideoBitRate`)},e))}l&&(this.modules.subscription.setAudioConstraint({codec:l,bitRate:this.abrEnabled?i:this.options.get(`maxAudioBitRate`),language:this.options.get(`language`)}),(!d.includes(this.options.get(`language`))||this.language===void 0)&&this.modules.subscription.setLanguage(d[0])),this.alignSizeAndBitRate(this.targetSubscription);let f=this.modules.subscription.getTargetSubscription();this.emitter.emit(`subscription changed`,{to:f,from:this.modules.subscription.getCurrentSubscription()})}),m(this,`isSupportedVideoCodecProfile`,(e,t)=>{if(this.willUseMediaSource()){let n=Be();return n?n.isTypeSupported(mr({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`,M(function*(){var e;let t=n.currentRenditionLevel,r=[];if(!t)throw new H(`No currentRenditionLevel`,{code:`no_current_rendition_level`,isFatal:!1});if(t!=null&&t.video&&r.push({type:`video`,mimeType:mr(t.video),codec:t.video.codec}),t!=null&&t.audio&&r.push({type:`audio`,codec:t.audio.codec,mimeType:mr(t.audio),channels:t.audio.channels,sampleRate:t.audio.sampleRate}),r.length===0)throw new H(`Can't initialize decoding module without tracks`,{code:`no_tracks`,isFatal:!1});if(n.willUseMediaSource()&&n.element instanceof HTMLMediaElement){var i;n.emitter.emit(`flush buffers`),yield(i=n.modules.mseModule)==null?void 0:i.setSourceBuffers(r);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`),xr(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=yield Jy.create(n.emitter,n.logger.createContext(`DecoderModule`),n.options.get(`logLevel`),r,n.playbackSource,n.pool,a,o,u),{videoRenderer:p}=f.getStatistics(),m=n.modules.canvasModule;if(m instanceof yb)if(p===`OffscreenCanvas`&&d){m.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{m.setVideoRenderingEnabled(!0),n.offscreenCanvasElement=void 0;let e=m.element();if(e!==n.element){let t=n.element;t.parentElement&&t.parentElement.replaceChild(e,t),n.setElement(e)}}else m instanceof xb&&(p===`OffscreenCanvas`&&d?(m.setOffscreenCanvas(d),n.offscreenCanvasElement=d):(m.setOffscreenCanvas(void 0),n.offscreenCanvasElement=void 0));(e=n.modules.decoder)==null||e.unload(),n.modules.decoder=f,n.modules.decoder.load(),n.setupOffscreenSubtitleRouting()})),m(this,`setupOffscreenSubtitleRouting`,()=>{if(this.offscreenSubtitleInterval!==void 0&&(clearInterval(this.offscreenSubtitleInterval),this.offscreenSubtitleInterval=void 0),!this.offscreenCanvasElement||!this.modules.decoder||this.modules.canvasModule instanceof xb)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`,M(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 ae(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`,()=>{this.options.get(`pauseSupportEnabled`)&&this.playbackState!==`paused`&&(this.playbackSource.pause(),this.hasCalledConnect&&this.suspend())}),m(this,`registerDebugInstance`,()=>{rl(this)}),m(this,`play`,()=>{var t;this.hasCalledConnect?this.unsuspend():this.playbackState!==`playing`&&(this._connect(),self.addEventListener(`__vindral_register_debug__`,this.registerDebugInstance),this.modules.timer.setInterval(()=>this.cleanupTextTracks(),e.REMOVE_CUE_THRESHOLD)),(t=this.wakeLock)==null||t.enable(),this.playbackState===`paused`&&(this.resetModules(),this.emitter.emit(`flush buffers`),this.cleanupTextTracks(2**53-1)),this.playbackSource.play()}),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 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.sampleProcessingSesssions.clear(),this.playbackSource.currentTime=0,this.playbackSource.isActivated=!1}),m(this,`getRuntimeInfo`,()=>{let e=this.modules.canvasModule instanceof xb?!0:void 0;return R({uptime:Date.now()-this.createdAt,version:void 0,clientId:this.clientId,sessionId:this.sessionId,channelId:this.channelId,channelGroupId:this.options.get(`channelGroupId`),ip:this.clientIp,url:this.options.get(`url`),timeToFirstFrame:this.timeToFirstFrame(),streamToMediaElementEnabled:e,iosMediaElementEnabled:e},this.userAgentInformation.getUserAgentInformation())}),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=>{this.logger.info(`media element state`,{state:e}),this.options.get(`pauseSupportEnabled`)&&(e===`paused`?this.modules.documentState.isVisible&&(this.suspend(),this.modules.connection.disconnect()):(this.unsuspend(),this.modules.connection.getState()===`disconnected`&&this.modules.connection.unsuspend()))}),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.firstConnectionTime;if(t&&e)return e-t}),this.options=new gx(R(R({},vr),Ex(t))),t.telemetryEnabled===void 0&&[`localhost`,`127.0.0.1`].includes(location.hostname)&&this.options.set(`telemetryEnabled`,!1);let i={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}},a=sn.get();a.setLevel(this.options.get(`logLevel`)),a.setDebug(!1),this.logger=a,this.webCodecsRenditionSupport=new Ox(a),t.iosMediaElementEnabled!==void 0&&this.logger.warn(`Option iosMediaElementEnabled is deprecated and will be removed in a future release. Use streamToMediaElementEnabled instead.`);let o=(r=t.streamToMediaElementEnabled)==null?t.iosMediaElementEnabled:r;o!==void 0&&(this.options.set(`streamToMediaElementEnabled`,o),this.options.set(`iosMediaElementEnabled`,o));let s=t.mseEnabled!==void 0,c=t.decoders!==void 0;s&&this.logger.warn(`Option mseEnabled is deprecated and will be removed in a future release. Use decoders instead (e.g. decoders: ["wasm"]).`),s&&!c&&t.mseEnabled===!1&&this.options.set(`decoders`,[`wasm`]);let l=Hb.create(this.emitter,this.logger.createContext(`PictureInPictureModule`)),u=Vn.create(),d=dy.create(this.emitter,this.logger.createContext(`ConnectionModule`),{reconnectHandler:this.options.get(`reconnectHandler`),options:this.options,onConnectInfo:this.onConnectInfo}),f=ex.create(this.logger.createContext(`SubscriptionModule`),this.emitter,i),p=Xb.create(this.emitter,f),h=Jb.create(this.emitter,this.logger.createContext(`QualityOfServiceModule`),p),g=Wb.create(this.emitter,this.logger.createContext(`PlaybackModule`),this,this.options.get(`minBufferTime`));this.encryptedMediaExtensions=new Ea(this.emitter,this.logger.createContext(`EncryptedMediaExtensions`),t.drm),this.drm={setHeaders:e=>{this.encryptedMediaExtensions.headers=e},setQueryParams:e=>{this.encryptedMediaExtensions.queryParams=e}};let _=Xy.create(this.emitter),v=this.options.get(`poster`),ee=v===!0?this.getThumbnailUrl():v||void 0,y,b,te;if(this.willUseMediaSource()){let e=new il({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:ee});e.on(`buffer state`,e=>this.onMediaElementBufferState(e,y)),e.on(`needs user input`,e=>this.emitter.emit(`needs user input`,e)),e.on(`volume state`,e=>this.emit(`volume state`,e)),e.on(`media element state`,e=>this.onMediaElementState(e)),this.element=e.element,this.playbackSource=e,Ea.isSupported()&&this.encryptedMediaExtensions.attach(e.element),y=Nb.create(this.logger.createContext(`MseModule`),this.emitter,this.element),this.options.get(`pauseSupportEnabled`)||(b=px.create(this.logger.createContext(`UnpauseModule`),e,_)),this.options.get(`pictureInPictureEnabled`)&&this.emitter.emit(`add picture in picture listener`,{element:e.element})}else if(this.options.get(`streamToMediaElementEnabled`)&&Dt(this.browser)){let e=xb.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:ee,offscreenCanvas:this.offscreenCanvasElement,bufferTime:this.options.get(`minBufferTime`)}),t=e.element();this.element=t.element,this.playbackSource=e,te=e;let n=this.browser.platform.isIOS&&this.browser.platform.iosVersion<=15;this.options.get(`pictureInPictureEnabled`)&&!n&&this.emitter.emit(`add picture in picture listener`,{element:this.element}),this.options.get(`pauseSupportEnabled`)||(b=px.create(this.logger.createContext(`UnpauseModule`),t,_))}else{let e;e=yb.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,te=e,this.options.get(`iosWakeLockEnabled`)&&(this.wakeLock=new Jc)}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`,()=>u.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:()=>l.requestPictureInPicture(),exit:()=>l.exitPictureInPicture(),isActive:()=>l.isPictureInPictureActive(),isSupported:()=>l.isPictureInPictureSupported()},this.emitter.on(`error`,e=>{if(e.type()===`external`&&this.emit(`error`,e),e.isFatal())return()=>void this.unload()});let ne=this.willUseMediaSource(),re=ne?!this.browser.platform.isWebKit:!0,ie={getTargetBufferTime:()=>g.getTargetBufferTime(),getNextBufferedRangeStart:y?e=>y.getNextBufferedRangeStart(e):void 0},oe=sx.create(this.emitter,this.logger.createContext(`SyncModule`),this.playbackSource,ie,re,ne),x=ib.create(this.logger.createContext(`JitterModule`)),se=(this.options.get(`edgeUrl`)||this.options.get(`url`)).replace(`wss://`,`https://`).replace(`ws://`,`http://`).replace(`//lb.`,`//errors.`),S=new URL(`/telemetry`,se).toString();this.modules={telemetry:dx.create(this.logger.createContext(`TelemetryModule`),this.emitter,{url:S,enabled:this.options.get(`telemetryEnabled`),includeStats:!1,interval:5e3},this),bufferTime:vl.create(this.emitter,this.logger.createContext(`BufferTimeModule`),h,this,{maxBufferTime:this.options.get(`maxBufferTime`),minBufferTime:this.options.get(`minBufferTime`)}),incomingData:tb.create(this.emitter),adaptivity:hl.create(this.emitter,this.logger.createContext(`AdaptivityModule`),h,{cooldownTime:Math.max(this.options.get(`minBufferTime`),2e3)}),constraintCap:gy.create(this.emitter,this.element,p,this.options.get(`abrEnabled`)?this.options.get(`sizeBasedResolutionCapEnabled`):!1),event:$y.create(this.emitter,this.logger.createContext(`EventModule`),oe),sync:oe,jitter:x,documentState:_,connection:d,playback:g,pictureInPicture:l,timer:u,subscription:f,renditions:p,qualityOfService:h,mseModule:y,unpause:b,canvasModule:te},this.modules.adaptivity.isEnabled=this.options.get(`abrEnabled`),this.emitter.on(`page active`,t=>{if(t&&typeof this.disconnectTimeout==`number`&&(this.modules.timer.clearInterval(this.disconnectTimeout),this.disconnectTimeout=void 0),t)this.playbackSource.isPaused||(this.logger.debug(`Unsuspending`),this.unsuspend());else if(this.logger.debug(`Suspending`),this.suspend(),this.modules.decoder)if(this.options.get(`iosBackgroundPlayEnabled`)){var n;this.modules.decoder.unsuspend(),(n=this.modules.canvasModule)==null||n.unsuspend()}else this.modules.connection.disconnect();else this.disconnectTimeout&&this.modules.timer.clearInterval(this.disconnectTimeout),this.disconnectTimeout=this.modules.timer.setInterval(()=>{let e=this.playbackState===`paused`||this.muted;this.connectionState===`connected`&&e&&(this.emitter.emit(`flush buffers`),this.modules.connection.disconnect(`Page inactive timeout`))},e.DISCONNECT_TIMEOUT)});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.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=dx.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=>{this.logger.debug(`adapt level`,{direction: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?hr():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||Date.now()-this.modules.connection.lastConnectionTime<this.modules.qualityOfService.fatalQosGraceTime()||this.modules.connection.getState()!==`connected`)return;this.modules.qualityOfService.incrementFatalQosCount(),this.logger.info(`Reconnecting due to poor qos`),this.modules.connection.reconnect(`Fatal QOS`),this.emitter.emit(`adapted level`);return}else 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=A(Ax,this).find(t=>t.language===e.language),n=this.modules.sync.getTimeshiftOffset()/1e3,r=n-A(kx,this);if(O(kx,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(`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),O(jx,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(()=>{O(jx,this,void 0)}));break;case`subscription changed`:var r;try{Dx(t.subscription)}catch(e){this.emitter.emit(`error`,new H(`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`,Ci(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`,Ci(e)),this.emit(`channel switch failed`,{channelId:this.currentSubscription.channelId})}),this.emitter.on(`received data`,e=>{let t=this.modules.subscription.getCurrentSubscription(),n=Gc(e);if(!t){this.logger.warn(`Received unwanted message`,R({},n));return}le(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);if(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`,wi(`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=Xa(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 a,o;let p=(a=i.header().init().moov.traks[0])==null?void 0:a.mdia.minf.stbl.stsd,m=(o=p==null?void 0:p.codec)==null?`h264`:o,h;if(m===`h264`){var s;h=p==null||(s=p.avc1)==null?void 0:s.avcC.bytes}else if(m===`h265`){var c,l,u;let e=(c=p==null||(l=p.hvc1)==null?void 0:l.data())==null?p==null||(u=p.hev1)==null?void 0:u.data():c;e&&(h=Ja(e))}else if(m===`av1`&&p!=null&&p.av01)h=sc(p.av01.data());else if(m===`aac`){var d;h=p==null||(d=p.mp4a)==null||(d=d.esds)==null?void 0:d.decoderConfig}else if(m===`opus`){var f;h=Fc(p==null||(f=p.opus)==null?void 0:f.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});for(let e=0;e<i.samplesCount();e++){let t=i.sample(e);t&&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)}))}}else this.emitter.emit(`fragment`,{mimeType:e.mimeType,codec:e.codec,fragment:i,channelId:n,renditionId:r})});let C=this.options.get(`container`);C&&this.attach(C),this.logger.info(`Created Vindral instance`,{options:this.options});let le=function(){var e=M(function*(e){let t=e.channelId;A(jx,n)&&(yield A(jx,n));let r=n.modules.renditions.getRendition(e.renditionId,t);if(!Hc(e.flags)){if(Uc(e.flags)){let t=new TextDecoder().decode(e.payload),r=n.modules.sync.getTimeshiftOffset();if(e.renditionId!==0){let e=Xn(t);if(e&&e.language!==void 0){let t=new el().parse(e.content||``),i=r/1e3,a=A(Ax,n).find(t=>t.language===e.language),o=i-A(kx,n);if(O(kx,n,i),a){if(a.cues)for(let e of a.cues)e.startTime-=o,e.endTime-=o;for(let e of t){let t=new VTTCue(e.startTime-i,e.endTime-i,e.text);a.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=cr(r.codec);if(i===`text`)throw Error(`Subtitles are not supported`);if(n.modules.incomingData.add(i,e.payload.byteLength),Vc(e.flags)){let a=R(R({type:i,data:e.payload,codec:r.codec},e),{},{channelId:t}),o=Oc(a.codec,a.payload);o&&n.sizes.set(a.renditionId,o);let s=mr({codec:r.codec,codecString:r.codecString});n.emitter.emit(`init segment`,{initSegment:a,mimeType:s}),n.emit(`initialized media`)}else{let t=Cx(e,r,n.sizes.get(e.renditionId));n.modules.jitter.recordSample(t);let a=n.sampleProcessingSesssions.get(i);if(!a)a=vx(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`)),Bt(this.options.get(`maxSize`),gr())||(this.maxSize=this.options.get(`maxSize`)),this.options.get(`burstEnabled`)&&f.enableBurst(this.targetBufferTime)}set volume(e){this.playbackSource.volume=e}get volume(){return this.playbackSource.volume}set muted(e){if(e===this.muted)return;let t=this.playbackSource.muted;this.playbackSource.muted=e,!e&&t&&!this.playbackSource.isPaused&&this.playbackSource.play()}get muted(){return this.playbackSource.muted}get media(){return this.options.get(`media`)}get videoBitRate(){return this.modules.incomingData.averageBitRate(`video`)}get audioBitRate(){return this.modules.incomingData.averageBitRate(`audio`)}get connectionState(){return this.modules.connection.getState()}get playbackState(){return this.modules.playback.getState()}get bufferFullness(){return this.modules.playback.getBufferFullness()}get sizeBasedResolutionCapEnabled(){return this.modules.constraintCap.sizeBasedResolutionCapEnabled}set sizeBasedResolutionCapEnabled(e){this.modules.constraintCap.sizeBasedResolutionCapEnabled=e}get abrEnabled(){return this.modules.adaptivity.isEnabled}set abrEnabled(e){this.modules.constraintCap.sizeBasedResolutionCapEnabled=e?this.options.get(`sizeBasedResolutionCapEnabled`):!1,this.modules.adaptivity.isEnabled=e,this.alignSizeAndBitRate(this.targetSubscription)}get serverEdgeTime(){return this.modules.sync.getLiveEdgeTimeLatencyAdjusted(this.currentSubscription.channelId)}get serverWallclockTime(){return this.modules.sync.getWallclockTimeLatencyAdjusted(this.currentSubscription.channelId)}get currentTime(){return this.modules.sync.serverCurrentTime}get channelCurrentTime(){return this.modules.sync.channelCurrentTime}get targetBufferTime(){return this.modules.playback.getTargetBufferTime()}set targetBufferTime(e){this.modules.playback.getTargetBufferTime()!==e&&(this.modules.playback.setTargetBufferTime(e),this.playbackSource.currentTime=this.modules.sync.serverCurrentTime,this.options.get(`burstEnabled`,this.channelId)?this.modules.subscription.enableBurst(this.targetBufferTime):this.modules.subscription.enableBurst(0))}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&&(A(Ax,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 A(Ax,this).filter(e=>e.mode!==`disabled`).map(e=>e.label)}get textTrack(){var e;return(e=A(Ax,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.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?gr():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?hr():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?hr():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 this.modules.qualityOfService.timeSpentBuffering()}get timeActive(){return this.modules.qualityOfService.timeActive()}get mediaElement(){return this.element}get audioNode(){var e;return(e=this.modules)!=null&&e.canvasModule?this.modules.canvasModule.audioNode:void 0}get drmStatistics(){var e;return(e=this.encryptedMediaExtensions)==null?void 0:e.getStatistics()}get uptime(){return Date.now()-this.createdAt}suspend(){this.isSuspended||(Object.values(this.modules).forEach(e=>{e&&`suspend`in e&&e.suspend()}),this.isSuspended=!0)}unsuspend(){this.isSuspended&&(Object.values(this.modules).forEach(e=>{e&&`unsuspend`in e&&e.unsuspend()}),this.isSuspended=!1)}alignSizeAndBitRate(e){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 Sx(this.options.get(`decoders`,e),this.browser.supportsMediaSource,this.options.get(`drm`))}willUseMediaSource(){return this.resolvedDecoder()===`mse`}shouldUseWebCodecs(e){return this.resolvedDecoder(e)===`webcodecs`}isWebCodecsVideoAvailable(e){return this.shouldUseWebCodecs(e)&&typeof VideoDecoder<`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}};m(Mx,`MAX_POOL_SIZE`,10),m(Mx,`DISCONNECT_TIMEOUT`,15*1e3),m(Mx,`REMOVE_CUE_THRESHOLD`,1e3*10);var Nx={bar:`_bar_qm7bl_1`,hidden:`_hidden_qm7bl_47`},Px=`_withThumbnails_suenn_19`,Fx={"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:Px,"hide-on-small":`_hide-on-small_suenn_27`},Ix={"icon-button":`_icon-button_5fg7v_1`},Lx={viewBox:`-10 -10 44 44`,content:`<g fill="none" stroke="white">
1224
1224
  <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" />
1225
1225
  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2" />
1226
- </g>`},Ix={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"/>`},Lx={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"/>`},Rx={viewBox:`-10 -10 44 44`,content:`<g fill="none" stroke="white">
1226
+ </g>`},Rx={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"/>`},zx={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"/>`},Bx={viewBox:`-10 -10 44 44`,content:`<g fill="none" stroke="white">
1227
1227
  <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" />
1228
- </svg>`},zx={viewBox:`-10 -10 44 44`,content:`
1229
- <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" />`},Bx={viewBox:`-12 -12 38 38`,content:`<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(-5.000000, -5.000000)">
1228
+ </svg>`},Vx={viewBox:`-10 -10 44 44`,content:`
1229
+ <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" />`},Hx={viewBox:`-12 -12 38 38`,content:`<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(-5.000000, -5.000000)">
1230
1230
  <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>
1231
- </g>`},Vx={viewBox:`-12 -12 38 38`,content:`<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(-5.000000, -5.000000)">
1231
+ </g>`},Ux={viewBox:`-12 -12 38 38`,content:`<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(-5.000000, -5.000000)">
1232
1232
  <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>
1233
- </g>`},Hx={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"/>`},Ux={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"/>`},Wx={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"/>`},Gx={viewBox:`-8 -8 40 40`,content:`<path fill="white" d="M14.4 6L14 4H5v17h2v-7h5.6l.4 2h7V6z"/>`},Kx={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>`},qx={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 Jx,Yx={enter:Bx,exit:Vx,pip:Hx,channels:Ux,languages:Gx,textTracks:Kx,levels:Wx,oneToOne:zx,mute:Fx,unmute:Rx,pause:Ix,play:Lx,airPlay:qx},Xx=(Jx=Px[`icon-button`])==null?``:Jx,Zx=class extends g{constructor(e,t,n){super(document.createElement(`div`)),m(this,`iconElement`,void 0),m(this,`setIcon`,e=>{this.iconElement.setAttribute(`viewBox`,Yx[e].viewBox),this.iconElement.innerHTML=Yx[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`,Xx),this.setIcon(t),this.element.addEventListener(`click`,n),this.element.appendChild(this.iconElement)}},Qx=`_list_1vkum_1`,$x=`_hidden_1vkum_20`,eS={list:Qx,"list-item":`_list-item_1vkum_12`,"list-item-disabled":`_list-item-disabled_1vkum_16`,hidden:$x};h();var tS,nS,rS,iS,aS=(tS=eS.hidden)==null?``:tS,oS=(nS=eS.list)==null?``:nS,sS=(rS=eS[`list-item`])==null?``:rS,cS=(iS=eS[`list-item-disabled`])==null?``:iS,lS=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=[sS,e.disabled?cS:``].join(` `),t.appendChild(e.element()),this.element.appendChild(t)})}),m(this,`hide`,()=>this.element.classList.add(aS)),m(this,`show`,()=>this.element.classList.remove(aS)),this.element.className=[oS,...n].join(` `),this.onItemClick=t,this.updateItems(e),r&&(this.element.style.maxHeight=r)}},uS={container:`_container_13xnz_1`,hidden:`_hidden_13xnz_6`,list:`_list_13xnz_10`};h();var dS,fS,pS,mS=(dS=uS.list)==null?``:dS,hS=(fS=uS.hidden)==null?``:fS,gS=(pS=uS.container)==null?``:pS,_S=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 lS({items:this.items,onItemClick:this.handleItemClick,classNames:[mS],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`,()=>{hS&&this.element.classList.add(hS)}),m(this,`show`,()=>{hS&&this.element.classList.remove(hS)}),this.element.className=gS,this.onItemClick=n,this.onToggle=i,this.items=t,this.iconButton=new Zx(e,r,this.onButtonClick),this.iconButton.attach(this.element)}};V();var vS,yS,bS,xS,SS,CS=(vS=Nx[`hide-on-small`])==null?``:vS,wS=(yS=Nx[`channel-selection-item`])==null?``:yS,TS=(bS=Nx[`channel-selection-item-selected`])==null?``:bS,ES=(xS=Nx[`channel-selection-item-image`])==null?``:xS,DS=(SS=Nx.withThumbnails)==null?``:SS,OS=class extends _S{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=[wS,t.channelId===e.channelId?TS:``].join(` `),r&&n){i.classList.add(DS);let e=document.createElement(`p`);e.innerHTML=t.name,i.appendChild(e);let n=r.getImageUrl(t),a=document.createElement(`img`);n&&(a.className=ES,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:x,iconButtonType:`channels`}),this.element.classList.add(CS),this.hide()}},kS={"language-button-item":`_language-button-item_1dov5_1`,"language-button-item-selected":`_language-button-item-selected_1dov5_6`};V();var AS,jS,MS=(AS=kS[`language-button-item`])==null?``:AS,NS=(jS=kS[`language-button-item-selected`])==null?``:jS,PS=class extends _S{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=[MS,t===e.language?NS:``].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:x,iconButtonType:`languages`}),this.hide()}};h();var FS=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 Zx(`Play`,this.playIcon(),this.onPlayClick),this.playButton.attach(this.element)}},IS=`_item_5vhyo_1`,LS=`_title_5vhyo_10`,RS={item:IS,"item-selected":`_item-selected_5vhyo_6`,title:LS,"sub-title":`_sub-title_5vhyo_14`,"hide-on-small":`_hide-on-small_5vhyo_21`};V();var zS,BS,VS,HS,US,WS=(zS=RS[`hide-on-small`])==null?``:zS,GS=(BS=RS.item)==null?``:BS,KS=(VS=RS[`item-selected`])==null?``:VS,qS=(HS=RS.title)==null?``:HS,JS=(US=RS[`sub-title`])==null?``:US,YS=class extends _S{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=[GS,t===e.currentRenditionLevel?KS:``].join(` `);let o=document.createElement(`span`),s=document.createElement(`span`),{audio:c,video:l}=t,u=l?Xt(l):void 0,d=c?Zt(c.sampleRate):void 0,f=Yt(((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=qS,s.innerHTML=f,s.className=JS,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:x,iconButtonType:`levels`}),this.element.classList.add(WS)}},XS=class extends g{constructor(){super(document.createElement(`div`)),this.element.style.flexGrow=`1`}},ZS={"text-track-button-item":`_text-track-button-item_1ry10_1`,"text-track-button-item-selected":`_text-track-button-item-selected_1ry10_6`};V();var QS,$S,eC=(QS=ZS[`text-track-button-item`])==null?``:QS,tC=($S=ZS[`text-track-button-item-selected`])==null?``:$S,nC=class extends _S{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=[eC,t===e.textTrack?tC:``].join(` `),n.innerHTML=t,n}}));t.length>0?(t.push({textTrack:void 0,disabled:!1,element:()=>{let t=document.createElement(`div`);return t.className=[eC,e.textTrack===void 0?tC:``].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:x,iconButtonType:`textTracks`}),this.hide()}};h();var rC=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 Zx(`Mute`,this.muteIcon(),this.onMuteClick),this.muteButton.attach(this.element)}};h();var iC,aC,oC=(iC=jx.hidden)==null?``:iC,sC=(aC=jx.bar)==null?``:aC,cC=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(oC)),m(this,`hide`,()=>{this.containerElement.style.setProperty(`--vindral-control-bar-offset`,`0px`),this.element.classList.add(oC)}),m(this,`show`,()=>{this.containerElement.style.setProperty(`--vindral-control-bar-offset`,`-96px`),this.element.classList.remove(oC)}),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=[sC,oC].join(` `);let g=new XS;this.oneToOneButton=new Zx(`One to One`,`oneToOne`,n),this.fullscreenButton=new Zx(`Fullscreen`,`enter`,t),this.airPlayButton=new Zx(`AirPlay`,`airPlay`,i);let _=new Zx(`Picture in Picture`,`pip`,r),v=new OS({vindral:e,enabled:c,thumbnailsEnabled:l,thumbnailModule:l?h:void 0}),ee=new YS({vindral:e});this.volumeControls=new rC({vindral:e}),this.playControls=new FS({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 y=[];if(d){let t=new PS({vindral:e});t.attach(this.element),y.push(t)}if(f){let t=new nC({vindral:e});t.attach(this.element),y.push(t)}ee.attach(this.element),v.attach(this.element),_.attach(this.element),this.oneToOneButton.attach(this.element),this.fullscreenButton.attach(this.element),this.items.push(g,...y,ee,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||ee.hide(),navigator.maxTouchPoints<1&&(this.element.addEventListener(`mouseenter`,()=>this.isMouseInElement=!0),this.element.addEventListener(`mouseleave`,()=>this.isMouseInElement=!1))}},lC={castoverlay:`_castoverlay_1n91l_1`,hidden:`_hidden_1n91l_20`};h();var uC,dC,fC=(uC=lC.hidden)==null?``:uC,pC=(dC=lC.castoverlay)==null?``:dC,mC=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(fC)),m(this,`show`,()=>this.element.classList.remove(fC)),this.element.classList.add(pC),this.element.classList.add(fC),this.element.innerText=`device`}},hC=`_button_4ybkq_21`,gC=`_image_4ybkq_98`,_C=`_overlay_4ybkq_118`,vC=`_selected_4ybkq_136`,yC=`_hidden_4ybkq_141`,bC=`_disabled_4ybkq_145`,xC={button:hC,"show-and-scaleup":`_show-and-scaleup_4ybkq_1`,image:gC,overlay:_C,selected:vC,hidden:yC,disabled:bC};h();var SC,CC,wC,TC,EC,DC=(SC=xC.button)==null?``:SC,OC=(CC=xC.hidden)==null?``:CC,kC=(wC=xC.overlay)==null?``:wC,AC=(TC=xC.image)==null?``:TC,jC=(EC=xC.selected)==null?``:EC,MC=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(jC):this.element.classList.remove(jC)}),m(this,`setAnimationDelay`,e=>{this.element.style.animationDelay=e}),m(this,`hideLoading`,()=>{this.loadingOverlay.hide()}),m(this,`isHidden`,()=>this.element.classList.contains(OC)),m(this,`setHidden`,e=>e?this.hide():this.show()),m(this,`hide`,()=>this.element.classList.add(OC)),m(this,`show`,()=>this.element.classList.remove(OC)),this.element.className=DC,r&&this.setSelected(r),this.element.onclick=()=>{this.loadingOverlay.show(),t()},this.imageHolder1=document.createElement(`div`),this.imageHolder1.className=AC,this.imageHolder1.style.animationFillMode=`forwards`,this.imageHolder2=document.createElement(`div`),this.imageHolder2.className=AC,this.imageHolder2.style.animationFillMode=`forwards`,n&&(this.imageHolder1.style.backgroundImage=`url(${n})`,this.isImageHolder1Active=!0),this.loadingOverlay=new ie,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=kC,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}}},NC=`_container_btpgd_13`,PC=`_hidden_btpgd_37`,FC=`_disabled_btpgd_41`,IC={"channel-selection-overlay":`_channel-selection-overlay_btpgd_1`,container:NC,hidden:PC,disabled:FC};h();var LC,RC,zC=(LC=IC.hidden)==null?``:LC,BC=(RC=IC.container)==null?``:RC,VC=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(zC)),m(this,`setHidden`,e=>e?this.hide():this.show()),m(this,`hide`,()=>this.element.classList.add(zC)),m(this,`show`,()=>this.element.classList.remove(zC)),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 MC({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=BC,this.show()}},HC={fullscreen:`_fullscreen_1v9d8_1`};V(),L(),h(),D();var UC,WC=(UC=HC.fullscreen)==null?``:UC,GC=new WeakSet,KC=class e extends Ht{constructor(t){super(),I(this,GC),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`,()=>E(GC,this,qC).call(this).catch(e=>{throw this.onChange(),e})),m(this,`exit`,()=>E(GC,this,JC).call(this).catch(e=>{throw this.onChange(),e})),m(this,`onChange`,()=>this.emit(`on fullscreen change`,this.isFullscreen())),m(this,`isFullscreen`,()=>!!(ut()||this.container.classList.contains(WC))),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 qC(){let e=dt(this.container);return e?e():(this.container.classList.add(WC),Promise.resolve())}function JC(){let e=ft(this.container);return e?e():(this.container.classList.remove(WC),Promise.resolve())}m(KC,`isFullscreenApiSupported`,e=>pt(e));var YC={player:`_player_h0il1_1`,"one-to-one":`_one-to-one_h0il1_19`,"audio-only":`_audio-only_h0il1_28`},XC={playoverlay:`_playoverlay_1niji_1`,hidden:`_hidden_1niji_17`,"playoverlay-indicator":`_playoverlay-indicator_1niji_23`};h();var ZC,QC,$C,ew=(ZC=XC.hidden)==null?``:ZC,tw=(QC=XC.playoverlay)==null?``:QC,nw=($C=XC[`playoverlay-indicator`])==null?``:$C,rw=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(ew)),m(this,`setHidden`,e=>e?this.hide():this.show()),m(this,`hide`,()=>this.element.classList.add(ew)),m(this,`show`,()=>this.element.classList.remove(ew)),this.element.classList.add(tw),this.element.classList.add(ew),this.indicator.className=nw,this.element.appendChild(this.indicator),this.element.onclick=()=>{this.onClick&&this.onClick()}}};V(),h(),N();var iw=class extends Ht{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 M(function*(){if(!e.isFetching){e.isFetching=!0;try{let t=e.channels.map(function(){var t=M(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}})()}};V(),h(),N(),z();var aw,ow,sw,cw=(aw=YC.player)==null?``:aw,lw=(ow=YC[`one-to-one`])==null?``:ow,uw=(sw=YC[`audio-only`])==null?``:sw,dw={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},fw=e=>!Cx(e),pw=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 mC),m(this,`channelSelectionList`,void 0),m(this,`bar`,void 0),m(this,`stateInterval`,void 0),m(this,`thumbnailModule`,void 0),m(this,`browser`,rt()),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`,M(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`,M(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(lw)?this.playerElement.classList.remove(lw):this.playerElement.classList.add(lw)}),m(this,`isInFullscreen`,()=>this.state.fullscreen.isFullscreen()),m(this,`enterFullscreen`,M(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=Tt(e.video.width>e.video.height?`landscape-primary`:`portrait-primary`);t&&t.catch(()=>{})}),m(this,`unlockOrientation`,()=>{Et()}),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({},dw),t);this.options=s,this.playerElement.className=cw,fw(e)?this.core=e:this.core=new Ax(e),this.state={isBuffering:!1,fullscreen:new KC(!KC.isFullscreenApiSupported(this.playerElement)&&KC.isFullscreenApiSupported(this.core.mediaElement)?this.core.mediaElement:this.playerElement),lastInteractionTime:0},this.needsThumbnails()&&(this.thumbnailModule=new iw({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 VC({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 cC(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(uw),this.options.controlsEnabled&&this.bar.show());let u=this.core.getCastOptions();this.castSender=new sr({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 ie,this.bufferingOverlay.attach(this.playerElement)),this.options.playOverlayEnabled&&(this.playOverlay=new rw,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=Br,e.AUTHENTICATION_FAILED_CODE=zr,e.ApiClient=kl,e.CHANNEL_NOT_FOUND_CODE=Vr,e.CONNECTION_FAILED_AFTER_RETRIES_CODE=Rr,e.CONNECTION_FAILED_CODE=Lr,e.CastSender=sr,e.DISCONNECTED_BY_EDGE=qr,e.INACTIVITY_CODE=Ur,e.NO_INCOMING_DATA=Hr,e.Player=pw,e.Vindral=Ax,e.VindralError=H});
1233
+ </g>`},Wx={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"/>`},Gx={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"/>`},Kx={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"/>`},qx={viewBox:`-8 -8 40 40`,content:`<path fill="white" d="M14.4 6L14 4H5v17h2v-7h5.6l.4 2h7V6z"/>`},Jx={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>`},Yx={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 Xx,Zx={enter:Hx,exit:Ux,pip:Wx,channels:Gx,languages:qx,textTracks:Jx,levels:Kx,oneToOne:Vx,mute:Lx,unmute:Bx,pause:Rx,play:zx,airPlay:Yx},Qx=(Xx=Ix[`icon-button`])==null?``:Xx,$x=class extends g{constructor(e,t,n){super(document.createElement(`div`)),m(this,`iconElement`,void 0),m(this,`setIcon`,e=>{this.iconElement.setAttribute(`viewBox`,Zx[e].viewBox),this.iconElement.innerHTML=Zx[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`,Qx),this.setIcon(t),this.element.addEventListener(`click`,n),this.element.appendChild(this.iconElement)}},eS=`_list_1vkum_1`,tS=`_hidden_1vkum_20`,nS={list:eS,"list-item":`_list-item_1vkum_12`,"list-item-disabled":`_list-item-disabled_1vkum_16`,hidden:tS};h();var rS,iS,aS,oS,sS=(rS=nS.hidden)==null?``:rS,cS=(iS=nS.list)==null?``:iS,lS=(aS=nS[`list-item`])==null?``:aS,uS=(oS=nS[`list-item-disabled`])==null?``:oS,dS=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=[lS,e.disabled?uS:``].join(` `),t.appendChild(e.element()),this.element.appendChild(t)})}),m(this,`hide`,()=>this.element.classList.add(sS)),m(this,`show`,()=>this.element.classList.remove(sS)),this.element.className=[cS,...n].join(` `),this.onItemClick=t,this.updateItems(e),r&&(this.element.style.maxHeight=r)}},fS={container:`_container_13xnz_1`,hidden:`_hidden_13xnz_6`,list:`_list_13xnz_10`};h();var pS,mS,hS,gS=(pS=fS.list)==null?``:pS,_S=(mS=fS.hidden)==null?``:mS,vS=(hS=fS.container)==null?``:hS,yS=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 dS({items:this.items,onItemClick:this.handleItemClick,classNames:[gS],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`,()=>{_S&&this.element.classList.add(_S)}),m(this,`show`,()=>{_S&&this.element.classList.remove(_S)}),this.element.className=vS,this.onItemClick=n,this.onToggle=i,this.items=t,this.iconButton=new $x(e,r,this.onButtonClick),this.iconButton.attach(this.element)}};V();var bS,xS,SS,CS,wS,TS=(bS=Fx[`hide-on-small`])==null?``:bS,ES=(xS=Fx[`channel-selection-item`])==null?``:xS,DS=(SS=Fx[`channel-selection-item-selected`])==null?``:SS,OS=(CS=Fx[`channel-selection-item-image`])==null?``:CS,kS=(wS=Fx.withThumbnails)==null?``:wS,AS=class extends yS{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=[ES,t.channelId===e.channelId?DS:``].join(` `),r&&n){i.classList.add(kS);let e=document.createElement(`p`);e.innerHTML=t.name,i.appendChild(e);let n=r.getImageUrl(t),a=document.createElement(`img`);n&&(a.className=OS,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:x,iconButtonType:`channels`}),this.element.classList.add(TS),this.hide()}},jS={"language-button-item":`_language-button-item_1dov5_1`,"language-button-item-selected":`_language-button-item-selected_1dov5_6`};V();var MS,NS,PS=(MS=jS[`language-button-item`])==null?``:MS,FS=(NS=jS[`language-button-item-selected`])==null?``:NS,IS=class extends yS{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=[PS,t===e.language?FS:``].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:x,iconButtonType:`languages`}),this.hide()}};h();var LS=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 $x(`Play`,this.playIcon(),this.onPlayClick),this.playButton.attach(this.element)}},RS=`_item_5vhyo_1`,zS=`_title_5vhyo_10`,BS={item:RS,"item-selected":`_item-selected_5vhyo_6`,title:zS,"sub-title":`_sub-title_5vhyo_14`,"hide-on-small":`_hide-on-small_5vhyo_21`};V();var VS,HS,US,WS,GS,KS=(VS=BS[`hide-on-small`])==null?``:VS,qS=(HS=BS.item)==null?``:HS,JS=(US=BS[`item-selected`])==null?``:US,YS=(WS=BS.title)==null?``:WS,XS=(GS=BS[`sub-title`])==null?``:GS,ZS=class extends yS{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=[qS,t===e.currentRenditionLevel?JS:``].join(` `);let o=document.createElement(`span`),s=document.createElement(`span`),{audio:c,video:l}=t,u=l?Xt(l):void 0,d=c?Zt(c.sampleRate):void 0,f=Yt(((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=YS,s.innerHTML=f,s.className=XS,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:x,iconButtonType:`levels`}),this.element.classList.add(KS)}},QS=class extends g{constructor(){super(document.createElement(`div`)),this.element.style.flexGrow=`1`}},$S={"text-track-button-item":`_text-track-button-item_1ry10_1`,"text-track-button-item-selected":`_text-track-button-item-selected_1ry10_6`};V();var eC,tC,nC=(eC=$S[`text-track-button-item`])==null?``:eC,rC=(tC=$S[`text-track-button-item-selected`])==null?``:tC,iC=class extends yS{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=[nC,t===e.textTrack?rC:``].join(` `),n.innerHTML=t,n}}));t.length>0?(t.push({textTrack:void 0,disabled:!1,element:()=>{let t=document.createElement(`div`);return t.className=[nC,e.textTrack===void 0?rC:``].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:x,iconButtonType:`textTracks`}),this.hide()}};h();var aC=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 $x(`Mute`,this.muteIcon(),this.onMuteClick),this.muteButton.attach(this.element)}};h();var oC,sC,cC=(oC=Nx.hidden)==null?``:oC,lC=(sC=Nx.bar)==null?``:sC,uC=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(cC)),m(this,`hide`,()=>{this.containerElement.style.setProperty(`--vindral-control-bar-offset`,`0px`),this.element.classList.add(cC)}),m(this,`show`,()=>{this.containerElement.style.setProperty(`--vindral-control-bar-offset`,`-96px`),this.element.classList.remove(cC)}),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=[lC,cC].join(` `);let g=new QS;this.oneToOneButton=new $x(`One to One`,`oneToOne`,n),this.fullscreenButton=new $x(`Fullscreen`,`enter`,t),this.airPlayButton=new $x(`AirPlay`,`airPlay`,i);let _=new $x(`Picture in Picture`,`pip`,r),v=new AS({vindral:e,enabled:c,thumbnailsEnabled:l,thumbnailModule:l?h:void 0}),ee=new ZS({vindral:e});this.volumeControls=new aC({vindral:e}),this.playControls=new LS({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 y=[];if(d){let t=new IS({vindral:e});t.attach(this.element),y.push(t)}if(f){let t=new iC({vindral:e});t.attach(this.element),y.push(t)}ee.attach(this.element),v.attach(this.element),_.attach(this.element),this.oneToOneButton.attach(this.element),this.fullscreenButton.attach(this.element),this.items.push(g,...y,ee,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||ee.hide(),navigator.maxTouchPoints<1&&(this.element.addEventListener(`mouseenter`,()=>this.isMouseInElement=!0),this.element.addEventListener(`mouseleave`,()=>this.isMouseInElement=!1))}},dC={castoverlay:`_castoverlay_1n91l_1`,hidden:`_hidden_1n91l_20`};h();var fC,pC,mC=(fC=dC.hidden)==null?``:fC,hC=(pC=dC.castoverlay)==null?``:pC,gC=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(mC)),m(this,`show`,()=>this.element.classList.remove(mC)),this.element.classList.add(hC),this.element.classList.add(mC),this.element.innerText=`device`}},_C=`_button_4ybkq_21`,vC=`_image_4ybkq_98`,yC=`_overlay_4ybkq_118`,bC=`_selected_4ybkq_136`,xC=`_hidden_4ybkq_141`,SC=`_disabled_4ybkq_145`,CC={button:_C,"show-and-scaleup":`_show-and-scaleup_4ybkq_1`,image:vC,overlay:yC,selected:bC,hidden:xC,disabled:SC};h();var wC,TC,EC,DC,OC,kC=(wC=CC.button)==null?``:wC,AC=(TC=CC.hidden)==null?``:TC,jC=(EC=CC.overlay)==null?``:EC,MC=(DC=CC.image)==null?``:DC,NC=(OC=CC.selected)==null?``:OC,PC=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(NC):this.element.classList.remove(NC)}),m(this,`setAnimationDelay`,e=>{this.element.style.animationDelay=e}),m(this,`hideLoading`,()=>{this.loadingOverlay.hide()}),m(this,`isHidden`,()=>this.element.classList.contains(AC)),m(this,`setHidden`,e=>e?this.hide():this.show()),m(this,`hide`,()=>this.element.classList.add(AC)),m(this,`show`,()=>this.element.classList.remove(AC)),this.element.className=kC,r&&this.setSelected(r),this.element.onclick=()=>{this.loadingOverlay.show(),t()},this.imageHolder1=document.createElement(`div`),this.imageHolder1.className=MC,this.imageHolder1.style.animationFillMode=`forwards`,this.imageHolder2=document.createElement(`div`),this.imageHolder2.className=MC,this.imageHolder2.style.animationFillMode=`forwards`,n&&(this.imageHolder1.style.backgroundImage=`url(${n})`,this.isImageHolder1Active=!0),this.loadingOverlay=new ie,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=jC,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}}},FC=`_container_btpgd_13`,IC=`_hidden_btpgd_37`,LC=`_disabled_btpgd_41`,RC={"channel-selection-overlay":`_channel-selection-overlay_btpgd_1`,container:FC,hidden:IC,disabled:LC};h();var zC,BC,VC=(zC=RC.hidden)==null?``:zC,HC=(BC=RC.container)==null?``:BC,UC=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(VC)),m(this,`setHidden`,e=>e?this.hide():this.show()),m(this,`hide`,()=>this.element.classList.add(VC)),m(this,`show`,()=>this.element.classList.remove(VC)),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 PC({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=HC,this.show()}},WC={fullscreen:`_fullscreen_1v9d8_1`};V(),L(),h(),D();var GC,KC=(GC=WC.fullscreen)==null?``:GC,qC=new WeakSet,JC=class e extends Ht{constructor(t){super(),I(this,qC),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`,()=>E(qC,this,YC).call(this).catch(e=>{throw this.onChange(),e})),m(this,`exit`,()=>E(qC,this,XC).call(this).catch(e=>{throw this.onChange(),e})),m(this,`onChange`,()=>this.emit(`on fullscreen change`,this.isFullscreen())),m(this,`isFullscreen`,()=>!!(ut()||this.container.classList.contains(KC))),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 YC(){let e=dt(this.container);return e?e():(this.container.classList.add(KC),Promise.resolve())}function XC(){let e=ft(this.container);return e?e():(this.container.classList.remove(KC),Promise.resolve())}m(JC,`isFullscreenApiSupported`,e=>pt(e));var ZC={player:`_player_h0il1_1`,"one-to-one":`_one-to-one_h0il1_19`,"audio-only":`_audio-only_h0il1_28`},QC={playoverlay:`_playoverlay_1niji_1`,hidden:`_hidden_1niji_17`,"playoverlay-indicator":`_playoverlay-indicator_1niji_23`};h();var $C,ew,tw,nw=($C=QC.hidden)==null?``:$C,rw=(ew=QC.playoverlay)==null?``:ew,iw=(tw=QC[`playoverlay-indicator`])==null?``:tw,aw=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(nw)),m(this,`setHidden`,e=>e?this.hide():this.show()),m(this,`hide`,()=>this.element.classList.add(nw)),m(this,`show`,()=>this.element.classList.remove(nw)),this.element.classList.add(rw),this.element.classList.add(nw),this.indicator.className=iw,this.element.appendChild(this.indicator),this.element.onclick=()=>{this.onClick&&this.onClick()}}};V(),h(),N();var ow=class extends Ht{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 M(function*(){if(!e.isFetching){e.isFetching=!0;try{let t=e.channels.map(function(){var t=M(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}})()}};V(),h(),N(),z();var sw,cw,lw,uw=(sw=ZC.player)==null?``:sw,dw=(cw=ZC[`one-to-one`])==null?``:cw,fw=(lw=ZC[`audio-only`])==null?``:lw,pw={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},mw=e=>!Tx(e),hw=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 gC),m(this,`channelSelectionList`,void 0),m(this,`bar`,void 0),m(this,`stateInterval`,void 0),m(this,`thumbnailModule`,void 0),m(this,`browser`,rt()),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`,M(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`,M(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(dw)?this.playerElement.classList.remove(dw):this.playerElement.classList.add(dw)}),m(this,`isInFullscreen`,()=>this.state.fullscreen.isFullscreen()),m(this,`enterFullscreen`,M(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=Tt(e.video.width>e.video.height?`landscape-primary`:`portrait-primary`);t&&t.catch(()=>{})}),m(this,`unlockOrientation`,()=>{Et()}),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({},pw),t);this.options=s,this.playerElement.className=uw,mw(e)?this.core=e:this.core=new Mx(e),this.state={isBuffering:!1,fullscreen:new JC(!JC.isFullscreenApiSupported(this.playerElement)&&JC.isFullscreenApiSupported(this.core.mediaElement)?this.core.mediaElement:this.playerElement),lastInteractionTime:0},this.needsThumbnails()&&(this.thumbnailModule=new ow({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 UC({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 uC(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(fw),this.options.controlsEnabled&&this.bar.show());let u=this.core.getCastOptions();this.castSender=new sr({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 ie,this.bufferingOverlay.attach(this.playerElement)),this.options.playOverlayEnabled&&(this.playOverlay=new aw,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=Hr,e.AUTHENTICATION_FAILED_CODE=Vr,e.ApiClient=jl,e.CHANNEL_NOT_FOUND_CODE=Ur,e.CONNECTION_FAILED_AFTER_RETRIES_CODE=Br,e.CONNECTION_FAILED_CODE=zr,e.CastSender=sr,e.DISCONNECTED_BY_EDGE=Yr,e.INACTIVITY_CODE=Gr,e.NO_INCOMING_DATA=Wr,e.Player=hw,e.Vindral=Mx,e.VindralError=H});