rx-player 4.1.0-dev.2024070800 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/rx-player.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";(()=>{var Hm=Object.defineProperty,Wm=Object.defineProperties;var Gm=Object.getOwnPropertyDescriptors;var vl=Object.getOwnPropertySymbols;var qm=Object.prototype.hasOwnProperty,jm=Object.prototype.propertyIsEnumerable;var Rl=(n,e,t)=>e in n?Hm(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,ce=(n,e)=>{for(var t in e||(e={}))qm.call(e,t)&&Rl(n,t,e[t]);if(vl)for(var t of vl(e))jm.call(e,t)&&Rl(n,t,e[t]);return n},Se=(n,e)=>Wm(n,Gm(e));var h={PRODUCTION:0,DEV:1,CURRENT_ENV:0};var b={CURRENT_LEVEL:"NONE"};function Mn(){return typeof __RX_PLAYER_DEBUG_MODE__=="boolean"&&__RX_PLAYER_DEBUG_MODE__}function _(n){return n==null}var ie=class{constructor(){this._listeners={}}addEventListener(e,t,r){let i=this._listeners[e];Array.isArray(i)?i.push(t):this._listeners[e]=[t],r!==void 0&&r.register(()=>{this.removeEventListener(e,t)})}removeEventListener(e,t){if(_(e)){this._listeners={};return}let r=this._listeners[e];if(!Array.isArray(r))return;if(_(t)){delete this._listeners[e];return}let i=r.indexOf(t);i!==-1&&r.splice(i,1),r.length===0&&delete this._listeners[e]}trigger(e,t){let r=this._listeners[e];Array.isArray(r)&&r.slice().forEach(i=>{try{i(t)}catch(o){if(h.CURRENT_ENV===h.DEV)throw o instanceof Error?o:new Error("EventEmitter: listener error");console.error("RxPlayer: EventEmitter error",o instanceof Error?o:null)}})}};var Bt=typeof WorkerGlobalScope!="undefined"&&self instanceof WorkerGlobalScope;var Qm=typeof window=="undefined"&&!Bt,Ft=Qm;var ao;Bt?ao=self:Ft?ao=global:ao=window;var re=ao;var Tt=typeof queueMicrotask=="function"?queueMicrotask:function(e){Promise.resolve().then(e,()=>e())};function Pa(){if(!Ft&&!_(re.WebKitSourceBuffer)&&re.WebKitSourceBuffer.prototype.addEventListener===void 0){let e=re.WebKitSourceBuffer.prototype;for(let t in ie.prototype)ie.prototype.hasOwnProperty(t)&&(e[t]=ie.prototype[t]);e._listeners=[],e._emitUpdate=function(t,r){Tt(()=>{this.trigger(t,r),this.updating=!1,this.trigger("updateend")})},e.appendBuffer=function(t){if(this.updating)throw new Error("updating");this.trigger("updatestart"),this.updating=!0;try{this.append(t)}catch(r){this._emitUpdate("error",r);return}this._emitUpdate("update")}}}var ir=!1,rn=!1,Kt=!1,on=!1,Aa=!1,an=!1,Ca=!1,or=!1,ar=!1,Xm=!1,Zm=!1,Ma=!1,xa=!1,sn=!1,Jm=!1;(function(){var e,t,r;Ft||(typeof re.MSInputMethodContext!="undefined"&&typeof document.documentMode!="undefined"?(rn=!0,Kt=!0):navigator.appName==="Microsoft Internet Explorer"||navigator.appName==="Netscape"&&/(Trident|Edge)\//.test(navigator.userAgent)?Kt=!0:navigator.userAgent.toLowerCase().indexOf("edg/")!==-1?ir=!0:navigator.userAgent.toLowerCase().indexOf("firefox")!==-1?on=!0:typeof navigator.platform=="string"&&/iPad|iPhone|iPod/.test(navigator.platform)?an=!0:(Object.prototype.toString.call(re.HTMLElement).indexOf("Constructor")>=0||((t=(e=re.safari)==null?void 0:e.pushNotification)==null?void 0:t.toString())==="[object SafariRemoteNotification]"||/Safari\/(\d+)/.test(navigator.userAgent)&&/Version\/(\d+)/.test(navigator.userAgent)&&((r=navigator.vendor)==null?void 0:r.indexOf("Apple"))!==-1&&!/Chrome\/(\d+)/.test(navigator.userAgent)&&!/Chromium\/(\d+)/.test(navigator.userAgent))&&(Aa=!0),/SamsungBrowser/.test(navigator.userAgent)&&(Ca=!0),navigator.userAgent.indexOf("PlayStation 4")!==-1?xa=!0:navigator.userAgent.indexOf("PlayStation 5")!==-1?sn=!0:/Tizen/.test(navigator.userAgent)?or=!0:/[Ww]eb[O0]S/.test(navigator.userAgent)?(ar=!0,/[Ww]eb[O0]S.TV-2022/.test(navigator.userAgent)||/[Cc]hr[o0]me\/87/.test(navigator.userAgent)?Zm=!0:(/[Ww]eb[O0]S.TV-2021/.test(navigator.userAgent)||/[Cc]hr[o0]me\/79/.test(navigator.userAgent))&&(Xm=!0)):/[Pp]anasonic/.test(navigator.userAgent)?Ma=!0:navigator.userAgent.indexOf("Xbox")!==-1&&(Jm=!0))})();var ep=sn,kl=ep;function wa(n){return n===void 0||n.indexOf("widevine")<0}var tp={DEFAULT_REQUEST_TIMEOUT:3e4,DEFAULT_CONNECTION_TIMEOUT:15e3,DEFAULT_TEXT_TRACK_MODE:"native",DEFAULT_ENABLE_FAST_SWITCHING:!0,DELTA_POSITION_AFTER_RELOAD:{bitrateSwitch:-.1,trackSwitch:{audio:0,video:0,other:0}},DEFAULT_CODEC_SWITCHING_BEHAVIOR:"continue",DEFAULT_AUTO_PLAY:!1,DEFAULT_WANTED_BUFFER_AHEAD:30,DEFAULT_MAX_BUFFER_AHEAD:1/0,DEFAULT_MAX_BUFFER_BEHIND:1/0,DEFAULT_MAX_VIDEO_BUFFER_SIZE:1/0,MAXIMUM_MAX_BUFFER_AHEAD:{text:18e3},MINIMUM_MAX_BUFFER_AHEAD:{text:120},MAXIMUM_MAX_BUFFER_BEHIND:{text:18e3},DEFAULT_BASE_BANDWIDTH:0,INACTIVITY_DELAY:6e4,DEFAULT_THROTTLE_VIDEO_BITRATE_WHEN_HIDDEN:!1,DEFAULT_VIDEO_RESOLUTION_LIMIT:"none",DEFAULT_LIVE_GAP:{DEFAULT:10,LOW_LATENCY:3.5},BUFFER_DISCONTINUITY_THRESHOLD:.2,BITRATE_REBUFFERING_RATIO:1.5,DEFAULT_MAX_MANIFEST_REQUEST_RETRY:4,DEFAULT_CDN_DOWNGRADE_TIME:60,DEFAULT_MAX_REQUESTS_RETRY_ON_ERROR:4,INITIAL_BACKOFF_DELAY_BASE:{REGULAR:200,LOW_LATENCY:50},MAX_BACKOFF_DELAY_BASE:{REGULAR:3e3,LOW_LATENCY:1e3},SAMPLING_INTERVAL_MEDIASOURCE:1e3,SAMPLING_INTERVAL_LOW_LATENCY:500,SAMPLING_INTERVAL_NO_MEDIASOURCE:500,ABR_ENTER_BUFFER_BASED_ALGO:10,ABR_EXIT_BUFFER_BASED_ALGO:5,ABR_MINIMUM_TOTAL_BYTES:15e4,ABR_MINIMUM_CHUNK_SIZE:16e3,ABR_STARVATION_FACTOR:{DEFAULT:.72,LOW_LATENCY:.72},ABR_REGULAR_FACTOR:{DEFAULT:.72,LOW_LATENCY:.72},ABR_STARVATION_GAP:{DEFAULT:5,LOW_LATENCY:5},OUT_OF_STARVATION_GAP:{DEFAULT:7,LOW_LATENCY:7},ABR_STARVATION_DURATION_DELTA:.1,ABR_FAST_EMA:2,ABR_SLOW_EMA:10,RESUME_GAP_AFTER_SEEKING:{DEFAULT:1.5,LOW_LATENCY:.5},RESUME_GAP_AFTER_NOT_ENOUGH_DATA:{DEFAULT:.5,LOW_LATENCY:.5},RESUME_GAP_AFTER_BUFFERING:{DEFAULT:5,LOW_LATENCY:.5},REBUFFERING_GAP:{DEFAULT:.5,LOW_LATENCY:.2},MINIMUM_BUFFER_AMOUNT_BEFORE_FREEZING:2,UNFREEZING_SEEK_DELAY:6e3,FREEZING_STALLED_DELAY:600,UNFREEZING_DELTA_POSITION:.001,SEGMENT_SYNCHRONIZATION_DELAY:1500,MISSING_DATA_TRIGGER_SYNC_DELAY:.1,MAX_TIME_MISSING_FROM_COMPLETE_SEGMENT:.15,MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE:.4,MAX_MANIFEST_BUFFERED_DURATION_DIFFERENCE:.3,MINIMUM_SEGMENT_SIZE:.001,APPEND_WINDOW_SECURITIES:{START:.2,END:.1},MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL:50,TEXT_TRACK_SIZE_CHECKS_INTERVAL:250,BUFFER_PADDING:{audio:1,video:3,other:1},SEGMENT_PRIORITIES_STEPS:[2,4,8,12,18,25],MAX_HIGH_PRIORITY_LEVEL:1,MIN_CANCELABLE_PRIORITY:3,EME_DEFAULT_VIDEO_CODECS:['video/mp4;codecs="avc1.4d401e"','video/mp4;codecs="avc1.42e01e"','video/webm;codecs="vp8"'],EME_DEFAULT_AUDIO_CODECS:['audio/mp4;codecs="mp4a.40.2"',"audio/webm;codecs=opus"],EME_DEFAULT_WIDEVINE_ROBUSTNESSES:["HW_SECURE_ALL","HW_SECURE_DECODE","HW_SECURE_CRYPTO","SW_SECURE_DECODE","SW_SECURE_CRYPTO"],EME_DEFAULT_PLAYREADY_RECOMMENDATION_ROBUSTNESSES:["3000","2000"],EME_KEY_SYSTEMS:{clearkey:["webkit-org.w3.clearkey","org.w3.clearkey"],widevine:["com.widevine.alpha"],playready:["com.microsoft.playready.recommendation","com.microsoft.playready","com.chromecast.playready","com.youtube.playready"],fairplay:["com.apple.fps.1_0"]},MAX_CONSECUTIVE_MANIFEST_PARSING_IN_UNSAFE_MODE:10,MIN_MANIFEST_PARSING_TIME_TO_ENTER_UNSAFE_MODE:200,MIN_DASH_S_ELEMENTS_TO_PARSE_UNSAFELY:300,OUT_OF_SYNC_MANIFEST_REFRESH_DELAY:3e3,FAILED_PARTIAL_UPDATE_MANIFEST_REFRESH_DELAY:3e3,DASH_FALLBACK_LIFETIME_WHEN_MINIMUM_UPDATE_PERIOD_EQUAL_0:3,EME_DEFAULT_MAX_SIMULTANEOUS_MEDIA_KEY_SESSIONS:15,EME_MAX_STORED_PERSISTENT_SESSION_INFORMATION:1e3,EME_WAITING_DELAY_LOADED_SESSION_EMPTY_KEYSTATUSES:100,FORCED_ENDED_THRESHOLD:8e-4,ADAP_REP_SWITCH_BUFFER_PADDINGS:{video:{before:5,after:5},audio:{before:2,after:2.5},text:{before:0,after:0}},SOURCE_BUFFER_FLUSHING_INTERVAL:500,CONTENT_REPLACEMENT_PADDING:1.2,CACHE_LOAD_DURATION_THRESHOLDS:{video:50,audio:10},STREAM_EVENT_EMITTER_POLL_INTERVAL:250,DEFAULT_MAXIMUM_TIME_ROUNDING_ERROR:.001,BUFFERED_HISTORY_RETENTION_TIME:6e4,BUFFERED_HISTORY_MAXIMUM_ENTRIES:200,MIN_BUFFER_AHEAD:5,UPTO_CURRENT_POSITION_CLEANUP:5,DEFAULT_VIDEO_REPRESENTATIONS_SWITCHING_MODE:"seamless",DEFAULT_AUDIO_REPRESENTATIONS_SWITCHING_MODE:"seamless",DEFAULT_VIDEO_TRACK_SWITCHING_MODE:"reload",DEFAULT_AUDIO_TRACK_SWITCHING_MODE:"seamless"},Pl=tp;function np(n,...e){if(n==null)throw new TypeError("Cannot convert undefined or null to object");let t=Object(n);for(let r=0;r<e.length;r++){let i=e[r];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&(t[o]=i[o])}return t}var Y=typeof Object.assign=="function"?Object.assign:np;function Oa(n){return n!=null&&!Array.isArray(n)&&typeof n=="object"}function sr(n,...e){if(e.length===0)return n;let t=e.shift();if(Oa(n)&&Oa(t))for(let r in t)if(Oa(t[r])){let i=n[r];i===void 0&&(i={},n[r]=i),sr(i,t[r])}else Y(n,{[r]:t[r]});return sr(n,...e)}var Da=class{constructor(){this._config=Pl}update(e){let t=sr(this._config,e);this._config=t}getCurrent(){return this._config}},rp=new Da,B=rp;function Q(){}var ip="NONE",dr=class extends ie{constructor(){super(),this.error=Q,this.warn=Q,this.info=Q,this.debug=Q,this._levels={NONE:0,ERROR:1,WARNING:2,INFO:3,DEBUG:4},this._currentLevel=ip}setLevel(e,t){let r,i=this._levels[e];typeof i=="number"?(r=i,this._currentLevel=e):(r=0,this._currentLevel="NONE"),t===void 0?(this.error=r>=this._levels.ERROR?console.error.bind(console):Q,this.warn=r>=this._levels.WARNING?console.warn.bind(console):Q,this.info=r>=this._levels.INFO?console.info.bind(console):Q,this.debug=r>=this._levels.DEBUG?console.log.bind(console):Q):(this.error=r>=this._levels.ERROR?(...o)=>t("ERROR",o):Q,this.warn=r>=this._levels.WARNING?(...o)=>t("WARNING",o):Q,this.info=r>=this._levels.INFO?(...o)=>t("INFO",o):Q,this.debug=r>=this._levels.DEBUG?(...o)=>t("DEBUG",o):Q),this.trigger("onLogLevelChange",this._currentLevel)}getLevel(){return this._currentLevel}hasLevel(e){return this._levels[e]>=this._levels[this._currentLevel]}};var op=new dr,m=op;var ap=.016666666666666666;function Al(n,e){return Math.abs(n-e)<ap}function Ml(n,e){let t=Math.min(n.start,e.start),r=Math.max(n.end,e.end);return{start:t,end:r}}function sp(n){for(let e=0;e<n.length;e++){let t=n[e];t.start===t.end&&n.splice(e--,1)}return n}function dp(n){for(let e=1;e<n.length;e++){let t=n[e-1],r=n[e];if(wl(t,r)){let i=Ml(t,r);n.splice(--e,2,i)}}return n}function La(n,e){return n.end<=e.start}function Cl({start:n,end:e},t){return n<=t&&t<e}function xl(n,e){return Cl(n,e.start)||n.start<e.end&&e.end<n.end||Cl(e,n.start)}function wl(n,e){return Al(e.start,n.end)||Al(e.end,n.start)}function Pe(n){let e=[];for(let t=0;t<n.length;t++)e.push({start:n.start(t),end:n.end(t)});return e}function Na(n,e){for(let t=n.length-1;t>=0;t--){let r=n.start(t);if(e>=r){let i=n.end(t);if(e<i)return{start:r,end:i}}}return null}function up(n,e){for(let t=n.length-1;t>=0;t--){let r=n[t].start;if(e>=r){let i=n[t].end;if(e<i)return n[t]}}return null}function Ol(n,e){let t=n.length;for(let r=0;r<t;r++){let i=n.start(r);if(e<i)return i-e}return 1/0}function Dl(n,e){let t=null,r=[];for(let i=0;i<n.length;i++){let o=n[i].start,a=n[i].end;e<o||e>=a?r.push({start:o,end:a}):t={start:o,end:a}}return{outerRanges:r,innerRange:t}}function Ll(n,e){let t=Na(n,e);return t!==null?t.end-e:1/0}function so(n,e){let t=up(n,e);return t!==null?t.end-e:1/0}function Vt(n,e){if(e.start===e.end)return n;let t=e,r=0;for(;r<n.length;r++){let i=n[r],o=xl(t,i),a=wl(t,i);if(o||a)t=Ml(t,i),n.splice(r--,1);else if(r===0){if(La(t,n[0]))break}else if(La(n[r-1],t)&&La(t,i))break}return n.splice(r,0,t),dp(sp(n))}function Nl(n,e){let t=[];for(let r=0;r<e.length;r++)xl(n,e[r])&&t.push(e[r]);return t}function Ul(n,e){let t=[];for(let r=0;r<n.length;r++){let i=n[r],o=Nl(i,e);if(o.length>0)for(let a=0;a<o.length;a++){let s=o[a];t.push({start:Math.max(i.start,s.start),end:Math.min(i.end,s.end)})}}return t}function uo(n,e){let t=[];for(let r=0;r<n.length;r++){let i=n[r],o=[],a=Nl(i,e);if(a.length>0)for(let s=0;s<a.length;s++){let d=a[s];o.push({start:Math.max(i.start,d.start),end:Math.min(i.end,d.end)})}if(o.length===0)t.push(i);else{let s=i.start;for(let d=0;d<o.length;d++)o[d].start>s&&t.push({start:s,end:o[d].start}),s=o[d].end;s<i.end&&t.push({start:s,end:i.end})}}return t}function pe(n,e,t){if(typeof Array.prototype.findIndex=="function")return n.findIndex(e,t);let r=n.length>>>0;for(let i=0;i<r;i++)if(e.call(t,n[i],i,n))return i;return-1}var lo=class{constructor(e,t){this._value=e,this._listeners=[],this._isFinished=!1,this._onFinishCbs=[],t!==void 0&&(this._deregisterCancellation=t.register(()=>this.finish()))}getValue(){return this._value}setValue(e){if(this._isFinished){h.CURRENT_ENV===h.DEV&&console.error("Finished shared references cannot be updated");return}if(this._value=e,this._listeners.length===0)return;let t=this._listeners.slice();for(let r of t)try{r.hasBeenCleared||r.trigger(e,r.complete)}catch(i){}}setValueIfChanged(e){e!==this._value&&this.setValue(e)}onUpdate(e,t){let r=()=>{if((t==null?void 0:t.clearSignal)!==void 0&&t.clearSignal.deregister(r),i.hasBeenCleared)return;i.hasBeenCleared=!0;let o=this._listeners.indexOf(i);o>=0&&this._listeners.splice(o,1)},i={trigger:e,complete:r,hasBeenCleared:!1};if(this._listeners.push(i),(t==null?void 0:t.emitCurrentValue)===!0&&e(this._value,r),this._isFinished||i.hasBeenCleared){r();return}(t==null?void 0:t.clearSignal)!==void 0&&t.clearSignal.register(r)}waitUntilDefined(e,t){this.onUpdate((r,i)=>{r!==void 0&&(i(),e(this._value))},{clearSignal:t==null?void 0:t.clearSignal,emitCurrentValue:!0})}_onFinished(e,t){if(t.isCancelled())return Q;let r=()=>{let a=pe(this._onFinishCbs,s=>s.trigger===i);a>=0&&(this._onFinishCbs[a].hasBeenCleared=!0,this._onFinishCbs.splice(a,1))},i=()=>{r(),e()},o=t.register(r);return this._onFinishCbs.push({trigger:i,hasBeenCleared:!1}),o}finish(){this._deregisterCancellation!==void 0&&this._deregisterCancellation(),this._isFinished=!0;let e=this._listeners.slice();for(let t of e)try{t.hasBeenCleared||(t.complete(),t.hasBeenCleared=!0)}catch(r){}if(this._listeners.length=0,this._onFinishCbs.length>0){let t=this._onFinishCbs.slice();for(let r of t)try{r.hasBeenCleared||(r.trigger(),r.hasBeenCleared=!0)}catch(i){}this._onFinishCbs.length=0}}};function dn(n,e,t){let r=new lo(e(n.getValue()),t);return n.onUpdate(function(o){r.setValue(e(o))},{clearSignal:t}),n._onFinished(()=>{r.finish()},t),r}var W=lo;var co=class n extends Error{constructor(e){super(e),Object.setPrototypeOf(this,n.prototype),this.name="AssertionError"}};function J(n,e){if(h.DEV===h.CURRENT_ENV&&!n)throw new co(e===void 0?"invalid assertion":e)}function Bl(n,e,t="object"){J(!_(n),`${t} should be an object`);for(let r in e)e.hasOwnProperty(r)&&J(typeof n[r]===e[r],`${t} should have property ${r} as a ${e[r]}`)}function Xe(n){throw new co("Unreachable path taken")}var F=class{constructor(){let[e,t]=lp();this._isUsed=!1,this._trigger=e,this.signal=new ur(t)}isUsed(){return this._isUsed}linkToSignal(e){let t=e.register(()=>{this.cancel()});return this.signal.register(t),t}cancel(e){if(this._isUsed)return;this._isUsed=!0;let t=e!=null?e:new Ae;this._trigger(t)}static isCancellationError(e){return e instanceof Ae}},ur=class{constructor(e){this._isCancelled=!1,this.cancellationError=null,this._listeners=[],e(t=>{for(this.cancellationError=t,this._isCancelled=!0;this._listeners.length>0;)try{let r=this._listeners.pop();r==null||r(t)}catch(r){m.error("Error while calling clean up listener",r instanceof Error?r.toString():"Unknown error")}})}isCancelled(){return this._isCancelled}register(e){return this._isCancelled?(J(this.cancellationError!==null),e(this.cancellationError),Q):(this._listeners.push(e),()=>this.deregister(e))}deregister(e){for(let t=this._listeners.length-1;t>=0;t--)this._listeners[t]===e&&this._listeners.splice(t,1)}},Ae=class n extends Error{constructor(){let e="This task was cancelled.";super(e),Object.setPrototypeOf(this,n.prototype),this.name="CancellationError"}};function lp(){let n=Q;return[function(t){n(t)},function(t){n=t}]}var Fl=new W(0);var cp=typeof performance!="undefined"?()=>performance.now()+Fl.getValue():()=>Date.now()+Fl.getValue(),V=cp;function Ua(n){let e=n.map(a=>Math.log(a/n[0])),t=e.map(a=>a-e[0]+1),r=(t[t.length-1]-1)/(n.length*2+10),i=1/r;return n.map((a,s)=>o(s));function o(a){if(a===0)return 0;let s=Math.min(Math.max(1,a),n.length-1);return n[s]===n[s-1]?o(a-1):i*(r+(n[s]*t[s-1]-n[s-1]*t[s])/(n[s]-n[s-1]))+4}}var tt=class{constructor(e){this._alpha=Math.exp(Math.log(.5)/e),this._lastEstimate=0,this._totalWeight=0}addSample(e,t){let r=Math.pow(this._alpha,e),i=t*(1-r)+r*this._lastEstimate;isNaN(i)||(this._lastEstimate=i,this._totalWeight+=e)}getEstimate(){let e=1-Math.pow(this._alpha,this._totalWeight);return this._lastEstimate/e}};var lr=class{constructor(){this._currentRepresentationData=null,this._lastRepresentationWithGoodScore=null}addSample(e,t,r){let i=r/t,o=this._currentRepresentationData,a;o!==null&&o.representation.id===e.id?(a=o.ewma,o.ewma.addSample(t,i),o.loadedDuration+=r,o.loadedSegments++):(a=new tt(5),a.addSample(t,i),this._currentRepresentationData={representation:e,ewma:a,loadedDuration:r,loadedSegments:0}),a.getEstimate()>1&&this._lastRepresentationWithGoodScore!==e&&(m.debug("ABR: New last stable representation",e.bitrate),this._lastRepresentationWithGoodScore=e)}getEstimate(e){if(this._currentRepresentationData===null||this._currentRepresentationData.representation.id!==e.id)return;let{ewma:t,loadedSegments:r,loadedDuration:i}=this._currentRepresentationData,o=t.getEstimate(),a=r>=5&&i>=10?1:0;return{score:o,confidenceLevel:a}}getLastStableRepresentation(){return this._lastRepresentationWithGoodScore}};var Kl=6e3,fp=15e3,mp=3e3,pp=1e3,gp=9e3,cr=class{constructor(e){this._levelsMap=Ua(e).map(t=>t+4),this._bitrates=e,this._lastUnsuitableQualityTimestamp=void 0,this._blockRaiseDelay=Kl,m.debug("ABR: Steps for buffer based chooser.",this._levelsMap.map((t,r)=>`bufferLevel: ${t}, bitrate: ${e[r]}`).join(" ,"))}onAddedSegment(e){let t=this._levelsMap,r=this._bitrates,{bufferGap:i,currentBitrate:o,currentScore:a,speed:s}=e;if(_(o)){this._currentEstimate=r[0];return}let d=-1;for(let g=0;g<r.length;g++){let S=r[g];if(S===o)d=g;else if(S>o)break}if(d<0||r.length!==t.length){m.info("ABR: Current Bitrate not found in the calculated levels"),this._currentEstimate=r[0];return}let u;a!==void 0&&(u=s===0?a.score:a.score/s);let c=isFinite(i)?i:0,l=V();if(c<t[d]||u!==void 0&&u<1&&(a==null?void 0:a.confidenceLevel)===1){if((this._lastUnsuitableQualityTimestamp===void 0?-1:l-this._lastUnsuitableQualityTimestamp)<this._blockRaiseDelay+gp){let I=this._blockRaiseDelay+mp;this._blockRaiseDelay=Math.min(I,fp),m.debug("ABR: Incrementing blocking raise in BufferBasedChooser due to unstable quality",this._blockRaiseDelay)}else{let I=this._blockRaiseDelay-pp;this._blockRaiseDelay=Math.max(Kl,I),m.debug("ABR: Lowering quality in BufferBasedChooser",this._blockRaiseDelay)}this._lastUnsuitableQualityTimestamp=l;let S=pe(r,I=>I===o);for(let I=S-1;I>=0;I--)if(c>=t[I]){this._currentEstimate=r[I];return}this._currentEstimate=r[0];return}if(this._lastUnsuitableQualityTimestamp!==void 0&&l-this._lastUnsuitableQualityTimestamp<this._blockRaiseDelay||u===void 0||u<1.15||(a==null?void 0:a.confidenceLevel)!==1){this._currentEstimate=o;return}let f=t[d],p=(()=>{for(let g=d+1;g<t.length;g++)if(t[g]>f)return g})();if(p!==void 0){let g=t[p];if(i>=g){m.debug("ABR: Raising quality in BufferBasedChooser",r[p]),this._currentEstimate=r[p];return}}this._currentEstimate=o}getLastEstimate(){return this._currentEstimate}};function X(n,e,t){if(typeof Array.prototype.find=="function")return n.find(e,t);let r=n.length>>>0;for(let i=0;i<r;i++){let o=n[i];if(e.call(t,o,i,n))return o}}function hp(n,e){let t=-1;for(let a=0;a<n.length;a++){let{segment:s}=n[a].content;if(s.duration<=0)continue;let d=s.time+s.duration;if(!s.complete&&a===n.length-1&&e-s.time>-1.2){t=a;break}if(d>e&&e-s.time>-1.2){t=a;break}}if(t<0)return[];let r=n[t],i=r.content.segment.time,o=[r];for(let a=t+1;a<n.length&&n[a].content.segment.time===i;a++)o.push(n[a]);return o}function fo(n){if(n.progress.length<5)return;let e=new tt(2),{progress:t}=n;for(let r=1;r<t.length;r++){let i=t[r].size-t[r-1].size,o=t[r].timestamp-t[r-1].timestamp,a=i*8/(o/1e3);e.addSample(o/1e3,a)}return e.getEstimate()}function Vl(n,e){let t=(n.totalSize-n.size)*8;return Math.max(t/e,0)}function Ip(n,e,t,r,i){if(r)return;let{bufferGap:o,speed:a,position:s}=e,d=isFinite(o)?o:0,u=s.getWanted()+d,c=hp(n,u);if(c.length!==1)return;let l=c[0],f=V(),p=l.content.segment.duration*1.5;if(p=Math.min(p,3e3),p=Math.max(p,12e3),f-l.requestTimestamp<p)return;let g=l.progress.length>0?l.progress[l.progress.length-1]:void 0,S=fo(l);if(g!==void 0&&S!==void 0){let R=Vl(g,S);if((f-g.timestamp)/1e3<=R&&R-d/a>2500)return S}if(!l.content.segment.complete)return;let I=l.content.segment.duration,y=(f-l.requestTimestamp)/1e3,T=y<=(I*1.5+2)/a;if(_(t)||T)return;let v=I/y,E=t.bitrate*Math.min(.7,v);if(i===void 0||E<i)return E}function yp(n,e,t){if(t)return!0;let r=isFinite(n.bufferGap)?n.bufferGap:0,i=n.position.getWanted()+r,o=X(e,({content:l})=>l.segment.duration>0&&l.segment.time+l.segment.duration>i);if(o===void 0)return!0;let a=V(),s=o.progress.length>0?o.progress[o.progress.length-1]:void 0,d=fo(o);if(s===void 0||d===void 0)return!0;let u=Vl(s,d);return(a-s.timestamp)/1e3>u*1.2?!0:u-r/n.speed>-1.5}var fr=class{constructor(e,t){let{ABR_STARVATION_GAP:r,OUT_OF_STARVATION_GAP:i,ABR_STARVATION_FACTOR:o,ABR_REGULAR_FACTOR:a}=B.getCurrent();this._initialBitrate=e,this._inStarvationMode=!1,this._lowLatencyMode=t,t?this._config={starvationGap:r.LOW_LATENCY,outOfStarvationGap:i.LOW_LATENCY,starvationBitrateFactor:o.LOW_LATENCY,regularBitrateFactor:a.LOW_LATENCY}:this._config={starvationGap:r.DEFAULT,outOfStarvationGap:i.DEFAULT,starvationBitrateFactor:o.DEFAULT,regularBitrateFactor:a.DEFAULT}}getBandwidthEstimate(e,t,r,i,o){let a,s,d=this._config,{bufferGap:u,position:c,duration:l}=e,f=isFinite(u)?u:0,{ABR_STARVATION_DURATION_DELTA:p}=B.getCurrent();return isNaN(l)||f+c.getWanted()<l-p?!this._inStarvationMode&&f<=d.starvationGap?(m.info("ABR: enter starvation mode."),this._inStarvationMode=!0):this._inStarvationMode&&f>=d.outOfStarvationGap&&(m.info("ABR: exit starvation mode."),this._inStarvationMode=!1):this._inStarvationMode&&(m.info("ABR: exit starvation mode."),this._inStarvationMode=!1),this._inStarvationMode&&(s=Ip(i,e,r,this._lowLatencyMode,o),s!==void 0&&(m.info("ABR: starvation mode emergency estimate:",s),t.reset(),a=_(r)?s:Math.min(s,r.bitrate))),_(a)&&(s=t.getEstimate(),s!==void 0?a=s*(this._inStarvationMode?d.starvationBitrateFactor:d.regularBitrateFactor):o!==void 0?a=o*(this._inStarvationMode?d.starvationBitrateFactor:d.regularBitrateFactor):a=this._initialBitrate),e.speed>1&&(a/=e.speed),{bandwidthEstimate:s,bitrateChosen:a}}isUrgent(e,t,r,i){return t===null?!0:e>=t.bitrate?!1:yp(i,r,this._lowLatencyMode)}};var mr=class{constructor(){this.bandwidth=void 0,this.representation=null,this.algorithmType=3}update(e,t,r){this.representation=e,this.bandwidth=t,this.algorithmType=r}};var pr=class{constructor(e,t){this._scoreCalculator=e,this._lastAbrEstimate=t,this._consecutiveWrongGuesses=0,this._blockGuessesUntil=0,this._lastMaintanableBitrate=null}getGuess(e,t,r,i,o){let{bufferGap:a,speed:s}=t,d=this._lastAbrEstimate.representation;if(d===null)return null;if(i>d.bitrate)return this._lastAbrEstimate.algorithmType===2&&(this._lastAbrEstimate.representation!==null&&(this._lastMaintanableBitrate=this._lastAbrEstimate.representation.bitrate),this._consecutiveWrongGuesses=0),null;let u=this._scoreCalculator.getEstimate(r);if(this._lastAbrEstimate.algorithmType!==2){if(u===void 0)return null;if(this._canGuessHigher(a,s,u)){let l=zl(e,r);if(l!==null)return l}return null}if(this._isLastGuessValidated(d,i,u)&&(m.debug("ABR: Guessed Representation validated",d.bitrate),this._lastMaintanableBitrate=d.bitrate,this._consecutiveWrongGuesses=0),r.id!==d.id)return d;if(this._shouldStopGuess(r,u,a,o))return this._consecutiveWrongGuesses++,this._blockGuessesUntil=V()+Math.min(this._consecutiveWrongGuesses*15e3,12e4),Sp(e,r);if(u===void 0)return r;if(this._canGuessHigher(a,s,u)){let l=zl(e,r);if(l!==null)return l}return r}_canGuessHigher(e,t,{score:r,confidenceLevel:i}){return isFinite(e)&&e>=2.5&&V()>this._blockGuessesUntil&&i===1&&r/t>1.01}_shouldStopGuess(e,t,r,i){if(t!==void 0&&t.score<1.01)return!0;if((t===void 0||t.score<1.2)&&r<.6)return!0;let o=i.filter(s=>s.content.representation.id===e.id),a=V();for(let s of o){let d=a-s.requestTimestamp;if(s.content.segment.isInit){if(d>1e3)return!0}else{if(d>s.content.segment.duration*1e3+200)return!0;{let u=fo(s);if(u!==void 0&&u<e.bitrate*.8)return!0}}}return!1}_isLastGuessValidated(e,t,r){return r!==void 0&&r.confidenceLevel===1&&r.score>1.5?!0:t>=e.bitrate&&(this._lastMaintanableBitrate===null||this._lastMaintanableBitrate<e.bitrate)}};function zl(n,e){let t=n.length,r=pe(n,({id:i})=>i===e.id);if(r<0)return m.error("ABR: Current Representation not found."),null;for(;++r<t;)if(n[r].bitrate>e.bitrate)return n[r];return null}function Sp(n,e){let t=pe(n,({id:r})=>r===e.id);if(t<0)return m.error("ABR: Current Representation not found."),null;for(;--t>=0;)if(n[t].bitrate<e.bitrate)return n[t];return null}var gr=class{constructor(){let{ABR_FAST_EMA:e,ABR_SLOW_EMA:t}=B.getCurrent();this._fastEWMA=new tt(e),this._slowEWMA=new tt(t),this._bytesSampled=0}addSample(e,t){let{ABR_MINIMUM_CHUNK_SIZE:r}=B.getCurrent();if(t<r)return;let i=t*8e3/e,o=e/1e3;this._bytesSampled+=t,this._fastEWMA.addSample(o,i),this._slowEWMA.addSample(o,i)}getEstimate(){let{ABR_MINIMUM_TOTAL_BYTES:e}=B.getCurrent();if(!(this._bytesSampled<e))return Math.min(this._fastEWMA.getEstimate(),this._slowEWMA.getEstimate())}reset(){let{ABR_FAST_EMA:e,ABR_SLOW_EMA:t}=B.getCurrent();this._fastEWMA=new tt(e),this._slowEWMA=new tt(t),this._bytesSampled=0}};function Ba(n,e){if(n.length===0)return[];n.sort((o,a)=>o.bitrate-a.bitrate);let t=n[0].bitrate,r=Math.max(e,t),i=pe(n,o=>o.bitrate>r);return i===-1?n:n.slice(0,i)}function Fa(n,e){if(e.width===void 0||e.height===void 0)return n;let t=e.width*e.pixelRatio,r=e.height*e.pixelRatio,i=n.slice().sort((s,d)=>{var u,c;return((u=s.width)!=null?u:0)-((c=d.width)!=null?c:0)}),o=X(i,s=>typeof s.width=="number"&&s.width>=t&&typeof s.height=="number"&&s.height>=r);if(o===void 0)return n;let a=typeof o.width=="number"?o.width:0;return n.filter(s=>typeof s.width=="number"?s.width<=a:!0)}function hr(n){return Object.keys(n).map(e=>n[e])}var xn=typeof Object.values=="function"?Object.values:hr;var Ir=class{constructor(){this._currentRequests={}}add(e){let{id:t,requestTimestamp:r,content:i}=e;this._currentRequests[t]={requestTimestamp:r,progress:[],content:i}}addProgress(e){let t=this._currentRequests[e.id];if(_(t)){if(h.CURRENT_ENV===h.DEV)throw new Error("ABR: progress for a request not added");m.warn("ABR: progress for a request not added");return}t.progress.push(e)}remove(e){if(_(this._currentRequests[e])){if(h.CURRENT_ENV===h.DEV)throw new Error("ABR: can't remove unknown request");m.warn("ABR: can't remove unknown request")}delete this._currentRequests[e]}getRequests(){return xn(this._currentRequests).filter(e=>!_(e)).sort((e,t)=>e.content.segment.time-t.content.segment.time)}};function mo(n,e){let t=pe(n,r=>r.bitrate>e);return t===-1?n[n.length-1]:t===0?n[0]:n[t-1]}var Hl=new W(void 0);Hl.finish();var Wl=new W(1/0);Wl.finish();function Ka(n){let e={},{initialBitrates:t,throttlers:r,lowLatencyMode:i}=n;return function(s,d,u,c,l){var I,y,T;let{type:f}=s.adaptation,p=o(f),g=(I=t[f])!=null?I:0,S={limitResolution:(y=r.limitResolution[f])!=null?y:Hl,throttleBitrate:(T=r.throttleBitrate[f])!=null?T:Wl};return bp({bandwidthEstimator:p,context:s,currentRepresentation:d,filters:S,initialBitrate:g,playbackObserver:c,representations:u,lowLatencyMode:i},l)};function o(a){let s=e[a];if(_(s)){m.debug("ABR: Creating new BandwidthEstimator for ",a);let d=new gr;return e[a]=d,d}return s}}function bp({bandwidthEstimator:n,context:e,currentRepresentation:t,filters:r,initialBitrate:i,lowLatencyMode:o,playbackObserver:a,representations:s},d){let u=new lr,c=new fr(i!=null?i:0,o),l=new Ir,f=Q,p={metrics:T,requestBegin:v,requestProgress:E,requestEnd:R,addedSegment(k){f(k)}},g=new F;g.linkToSignal(d);let S=I(s.getValue(),g.signal);return s.onUpdate(y,{clearSignal:d}),{estimates:S,callbacks:p};function I(k,A){if(k.length<=1)return new W({bitrate:void 0,representation:k[0],urgent:!0,knownStableBitrate:void 0});let C=!1,x=k.sort((H,q)=>H.bitrate-q.bitrate),N=new cr(x.map(H=>H.bitrate)),D=new mr,L=new pr(u,D),P=a.getReference().getValue(),M=new W(U());return a.listen(H=>{P=H,O()},{includeLastObservation:!1,clearSignal:A}),f=function(H){if(P===null)return;let{position:q,speed:G}=P,K=H.buffered,ne=so(K,q.getWanted()),{representation:j}=H.content,se=u.getEstimate(j),oe=j.bitrate,z={bufferGap:ne,currentBitrate:oe,currentScore:se,speed:G};N.onAddedSegment(z),O()},A.register(()=>{f=Q}),r.throttleBitrate.onUpdate(O,{clearSignal:A}),r.limitResolution.onUpdate(O,{clearSignal:A}),M;function O(){M.setValue(U())}function U(){let{bufferGap:H,position:q,maximumPosition:G}=P,K=r.limitResolution.getValue(),ne=r.throttleBitrate.getValue(),j=t.getValue(),se=Tp(x,K,ne),oe=l.getRequests(),{bandwidthEstimate:z,bitrateChosen:ae}=c.getBandwidthEstimate(P,n,j,oe,D.bandwidth),$e=u.getLastStableRepresentation(),ye=$e===null?void 0:$e.bitrate/(P.speed>0?P.speed:1),{ABR_ENTER_BUFFER_BASED_ALGO:Re,ABR_EXIT_BUFFER_BASED_ALGO:Ut}=B.getCurrent();C&&H<=Ut?C=!1:!C&&isFinite(H)&&H>=Re&&(C=!0);let Qe=mo(se,ae),Fe=N.getLastEstimate(),Ke=Qe.bitrate,gt=null;C&&Fe!==void 0&&Fe>Ke&&(gt=mo(se,Fe),Ke=gt.bitrate);let ht=null;return o&&j!==null&&e.manifest.isDynamic&&G-q.getWanted()<40&&(ht=L.getGuess(x,P,j,Ke,oe)),ht!==null&&ht.bitrate>Ke?(m.debug("ABR: Choosing representation with guess-based estimation.",ht.bitrate,ht.id),D.update(ht,z,2),{bitrate:z,representation:ht,urgent:j===null||ht.bitrate<j.bitrate,knownStableBitrate:ye}):gt!==null?(m.debug("ABR: Choosing representation with buffer-based estimation.",gt.bitrate,gt.id),D.update(gt,z,0),{bitrate:z,representation:gt,urgent:c.isUrgent(gt.bitrate,j,oe,P),knownStableBitrate:ye}):(m.debug("ABR: Choosing representation with bandwidth estimation.",Qe.bitrate,Qe.id),D.update(Qe,z,1),{bitrate:z,representation:Qe,urgent:c.isUrgent(Qe.bitrate,j,oe,P),knownStableBitrate:ye})}}function y(){let k=s.getValue();g.cancel(),g=new F,g.linkToSignal(d),I(k,g.signal).onUpdate(function(x){S.setValue(x)},{clearSignal:g.signal,emitCurrentValue:!0})}function T(k){let{requestDuration:A,segmentDuration:C,size:x,content:N}=k;if(n.addSample(A,x),!N.segment.isInit){let{segment:D,representation:L}=N;if(C===void 0&&!D.complete)return;let P=C!=null?C:D.duration;u.addSample(L,A/1e3,P)}}function v(k){l.add(k)}function E(k){l.addProgress(k)}function R(k){l.remove(k.id)}}function Tp(n,e,t){let r=n;return t!==void 0&&t<1/0&&(r=Ba(r,t)),e!==void 0&&(r=Fa(r,e)),r}var Gl=Ka;var nt=class n extends Error{constructor(e,t,r){super(e),Object.setPrototypeOf(this,n.prototype),this.name="CustomLoaderError",this.canRetry=t,this.xhr=r}};var Te=class n extends Error{constructor(e,t,r){let i;switch(r){case"TIMEOUT":i="The request timed out";break;case"ERROR_EVENT":i="An error prevented the request to be performed successfully";break;case"PARSE_ERROR":i="An error happened while formatting the response data";break;case"ERROR_HTTP_CODE":i="An HTTP status code indicating failure was received: "+String(t);break}super(i),Object.setPrototypeOf(this,n.prototype),this.name="RequestError",this.url=e,this.status=t,this.type=r}serialize(){return{url:this.url,status:this.status,type:this.type}}},De={TIMEOUT:"TIMEOUT",ERROR_EVENT:"ERROR_EVENT",ERROR_HTTP_CODE:"ERROR_HTTP_CODE",PARSE_ERROR:"PARSE_ERROR"};var Va=typeof Headers=="function"?Headers:null,za=typeof AbortController=="function"?AbortController:null;function po(n){var f,p;let e;if(!_(n.headers))if(_(Va))e=n.headers;else{e=new Va;let g=Object.keys(n.headers);for(let S=0;S<g.length;S++){let I=g[S];e.append(I,n.headers[I])}}m.debug("Fetch: Called with URL",n.url);let t=null,r=!1,i=!1,o=V(),a=_(za)?null:new za;function s(){if(_(a)){m.warn("Fetch: AbortController API not available.");return}a.abort()}let d;n.timeout!==void 0&&(d=setTimeout(()=>{r=!0,u!==void 0&&clearTimeout(u),s()},n.timeout));let u;n.connectionTimeout!==void 0&&(u=setTimeout(()=>{i=!0,d!==void 0&&clearTimeout(d),s()},n.connectionTimeout));let c=n.cancelSignal.register(function(S){t=S,s()}),l={method:"GET"};if(e!==void 0&&(l.headers=e),l.signal=_(a)?null:a.signal,m.hasLevel("DEBUG")){let g="FETCH: Sending GET "+n.url;n.timeout!==void 0&&(g+=" to="+String(n.timeout/1e3)),n.connectionTimeout!==void 0&&(g+=" cto="+String(n.connectionTimeout/1e3)),((f=n.headers)==null?void 0:f.Range)!==void 0&&(g+=" Range="+((p=n.headers)==null?void 0:p.Range)),m.debug(g)}return fetch(n.url,l).then(g=>{if(u!==void 0&&clearTimeout(u),g.status>=300)throw m.warn("Fetch: Request HTTP Error",g.status,g.url),new Te(g.url,g.status,De.ERROR_HTTP_CODE);if(_(g.body))throw new Te(g.url,g.status,De.PARSE_ERROR);let S=g.headers.get("Content-Length"),I=!_(S)&&!isNaN(+S)?+S:void 0,y=g.body.getReader(),T=0;return v();async function v(){let E=await y.read();if(!E.done&&!_(E.value)){T+=E.value.byteLength;let R=V(),k={url:g.url,currentTime:R,duration:R-o,sendingTime:o,chunkSize:E.value.byteLength,chunk:E.value.buffer,size:T,totalSize:I};return n.onData(k),v()}else if(E.done){d!==void 0&&clearTimeout(d),c();let R=V();return{requestDuration:R-o,receivedTime:R,sendingTime:o,size:T,status:g.status,url:g.url}}return v()}}).catch(g=>{throw t!==null?t:(c(),r?(m.warn("Fetch: Request timed out."),new Te(n.url,0,De.TIMEOUT)):i?(m.warn("Fetch: Request connection timed out."),new Te(n.url,0,De.TIMEOUT)):g instanceof Te?g:(m.warn("Fetch: Request Error",g instanceof Error?g.toString():""),new Te(n.url,0,De.ERROR_EVENT)))})}function yr(){return typeof re.fetch=="function"&&!_(za)&&!_(Va)}function w(n){return typeof n=="string"&&n.length>0}var _p="json";function Ha(n){let e={url:n.url,headers:n.headers,responseType:_(n.responseType)?_p:n.responseType,timeout:n.timeout,connectionTimeout:n.connectionTimeout};return new Promise((t,r)=>{let{onProgress:i,cancelSignal:o}=n,{url:a,headers:s,responseType:d,timeout:u,connectionTimeout:c}=e,l=new XMLHttpRequest;l.open("GET",a,!0);let f;u!==void 0&&(l.timeout=u,f=setTimeout(()=>{I(),r(new Te(a,l.status,De.TIMEOUT))},u+3e3));let p;if(c!==void 0&&(p=setTimeout(()=>{I(),l.readyState!==XMLHttpRequest.DONE&&l.abort(),r(new Te(a,l.status,De.TIMEOUT))},c)),l.responseType=d,l.responseType==="document"&&l.overrideMimeType("text/xml"),!_(s)){let y=s;for(let T in y)y.hasOwnProperty(T)&&l.setRequestHeader(T,y[T])}let g=V(),S=null;if(o!==void 0&&(S=o.register(function(T){I(),l.readyState!==XMLHttpRequest.DONE&&l.abort(),r(T)}),o.isCancelled()))return;if(l.onerror=function(){I(),r(new Te(a,l.status,De.ERROR_EVENT))},l.ontimeout=function(){I(),r(new Te(a,l.status,De.TIMEOUT))},c!==void 0&&(l.onreadystatechange=function(){l.readyState>=XMLHttpRequest.HEADERS_RECEIVED&&clearTimeout(p)}),i!==void 0&&(l.onprogress=function(T){let v=V();i({url:a,duration:v-g,sendingTime:g,currentTime:v,size:T.loaded,totalSize:T.total})}),l.onload=function(T){if(l.readyState===XMLHttpRequest.DONE)if(I(),l.status>=200&&l.status<300){let v=V(),E=l.response instanceof ArrayBuffer?l.response.byteLength:T.total,R=l.status,k=l.responseType,A=w(l.responseURL)?l.responseURL:a,C;if(k==="json"?C=typeof l.response=="object"?l.response:Ep(l.responseText):C=l.response,_(C)){r(new Te(a,l.status,De.PARSE_ERROR));return}t({status:R,url:A,responseType:k,sendingTime:g,receivedTime:v,requestDuration:v-g,size:E,responseData:C})}else r(new Te(a,l.status,De.ERROR_HTTP_CODE))},m.hasLevel("DEBUG")){let y="XHR: Sending GET "+a;n.responseType!==void 0&&(y+=" type="+n.responseType),u!==void 0&&(y+=" to="+String(u/1e3)),c!==void 0&&(y+=" cto="+String(c/1e3)),(s==null?void 0:s.Range)!==void 0&&(y+=" Range="+(s==null?void 0:s.Range)),m.debug(y)}l.send();function I(){f!==void 0&&clearTimeout(f),p!==void 0&&clearTimeout(p),S!==null&&S()}})}function Ep(n){try{return JSON.parse(n)}catch(e){return null}}var be=Ha;var un=De,Ze={NETWORK_ERROR:"NETWORK_ERROR",MEDIA_ERROR:"MEDIA_ERROR",ENCRYPTED_MEDIA_ERROR:"ENCRYPTED_MEDIA_ERROR",OTHER_ERROR:"OTHER_ERROR"},Wa={PIPELINE_LOAD_ERROR:"PIPELINE_LOAD_ERROR",PIPELINE_PARSE_ERROR:"PIPELINE_PARSE_ERROR",INTEGRITY_ERROR:"INTEGRITY_ERROR",MANIFEST_PARSE_ERROR:"MANIFEST_PARSE_ERROR",MANIFEST_INCOMPATIBLE_CODECS_ERROR:"MANIFEST_INCOMPATIBLE_CODECS_ERROR",MANIFEST_UPDATE_ERROR:"MANIFEST_UPDATE_ERROR",MANIFEST_UNSUPPORTED_ADAPTATION_TYPE:"MANIFEST_UNSUPPORTED_ADAPTATION_TYPE",MEDIA_STARTING_TIME_NOT_FOUND:"MEDIA_STARTING_TIME_NOT_FOUND",MEDIA_TIME_BEFORE_MANIFEST:"MEDIA_TIME_BEFORE_MANIFEST",MEDIA_TIME_AFTER_MANIFEST:"MEDIA_TIME_AFTER_MANIFEST",MEDIA_TIME_NOT_FOUND:"MEDIA_TIME_NOT_FOUND",NO_PLAYABLE_REPRESENTATION:"NO_PLAYABLE_REPRESENTATION",MEDIA_IS_ENCRYPTED_ERROR:"MEDIA_IS_ENCRYPTED_ERROR",CREATE_MEDIA_KEYS_ERROR:"CREATE_MEDIA_KEYS_ERROR",MEDIA_KEYS_ATTACHMENT_ERROR:"MEDIA_KEYS_ATTACHMENT_ERROR",KEY_ERROR:"KEY_ERROR",KEY_STATUS_CHANGE_ERROR:"KEY_STATUS_CHANGE_ERROR",KEY_UPDATE_ERROR:"KEY_UPDATE_ERROR",KEY_LOAD_ERROR:"KEY_LOAD_ERROR",KEY_LOAD_TIMEOUT:"KEY_LOAD_TIMEOUT",KEY_GENERATE_REQUEST_ERROR:"KEY_GENERATE_REQUEST_ERROR",INCOMPATIBLE_KEYSYSTEMS:"INCOMPATIBLE_KEYSYSTEMS",INVALID_ENCRYPTED_EVENT:"INVALID_ENCRYPTED_EVENT",INVALID_KEY_SYSTEM:"INVALID_KEY_SYSTEM",LICENSE_SERVER_CERTIFICATE_ERROR:"LICENSE_SERVER_CERTIFICATE_ERROR",MULTIPLE_SESSIONS_SAME_INIT_DATA:"MULTIPLE_SESSIONS_SAME_INIT_DATA",BUFFER_APPEND_ERROR:"BUFFER_APPEND_ERROR",BUFFER_FULL_ERROR:"BUFFER_FULL_ERROR",BUFFER_TYPE_UNKNOWN:"BUFFER_TYPE_UNKNOWN",MEDIA_ERR_BLOCKED_AUTOPLAY:"MEDIA_ERR_BLOCKED_AUTOPLAY",MEDIA_ERR_PLAY_NOT_ALLOWED:"MEDIA_ERR_PLAY_NOT_ALLOWED",MEDIA_ERR_NOT_LOADED_METADATA:"MEDIA_ERR_NOT_LOADED_METADATA",MEDIA_ERR_ABORTED:"MEDIA_ERR_ABORTED",MEDIA_ERR_NETWORK:"MEDIA_ERR_NETWORK",MEDIA_ERR_DECODE:"MEDIA_ERR_DECODE",MEDIA_ERR_SRC_NOT_SUPPORTED:"MEDIA_ERR_SRC_NOT_SUPPORTED",MEDIA_ERR_UNKNOWN:"MEDIA_ERR_UNKNOWN",MEDIA_SOURCE_NOT_SUPPORTED:"MEDIA_SOURCE_NOT_SUPPORTED",MEDIA_KEYS_NOT_SUPPORTED:"MEDIA_KEYS_NOT_SUPPORTED",DISCONTINUITY_ENCOUNTERED:"DISCONTINUITY_ENCOUNTERED",NONE:"NONE"};function ut(n,e){return`${n}: ${e}`}var fe=class n extends Error{constructor(e,t,r){super(ut(e,t)),Object.setPrototypeOf(this,n.prototype),this.name="EncryptedMediaError",this.type=Ze.ENCRYPTED_MEDIA_ERROR,this.code=e,this._originalMessage=t,this.fatal=!1,typeof(r==null?void 0:r.keyStatuses)=="string"&&(this.keyStatuses=r.keyStatuses)}serialize(){return{name:this.name,code:this.code,reason:this._originalMessage,keyStatuses:this.keyStatuses}}};var Z=class n extends Error{constructor(e,t,r){super(ut(e,t)),Object.setPrototypeOf(this,n.prototype),this.name="MediaError",this.type=Ze.MEDIA_ERROR,this._originalMessage=t,this.code=e,this.fatal=!1,(r==null?void 0:r.tracks)!==void 0&&(r==null?void 0:r.tracks.length)>0&&(this.tracksInfo=r.tracks)}serialize(){return{name:this.name,code:this.code,reason:this._originalMessage,tracks:this.tracksInfo}}};var rt=class n extends Error{constructor(e,t){super(ut(e,t.message)),Object.setPrototypeOf(this,n.prototype),this.name="NetworkError",this.type=Ze.NETWORK_ERROR,this.url=t.url,this.status=t.status,this.errorType=t.type,this._baseError=t,this.code=e,this.fatal=!1}isHttpError(e){return this.errorType===un.ERROR_HTTP_CODE&&this.status===e}serialize(){return{name:this.name,code:this.code,baseError:this._baseError.serialize()}}};var Ve=class n extends Error{constructor(e,t){super(ut(e,t)),Object.setPrototypeOf(this,n.prototype),this.name="OtherError",this.type=Ze.OTHER_ERROR,this.code=e,this.fatal=!1,this._originalMessage=t}serialize(){return{name:this.name,code:this.code,reason:this._originalMessage}}};function zt(n){return(n instanceof fe||n instanceof Z||n instanceof Ve||n instanceof rt)&&Object.keys(Ze).indexOf(n.type)>=0}function xe(n,{defaultCode:e,defaultReason:t}){if(zt(n))return n;let r=n instanceof Error?n.toString():t;return new Ve(e,r)}var it=class n extends Error{constructor(e,t,r){super(t),Object.setPrototypeOf(this,n.prototype),this.name="SourceBufferError",this.errorName=e,this.isBufferFull=r}serialize(){return{errorName:this.name,message:this.message,isBufferFull:this.isBufferFull}}toString(){return`${this.errorName}: ${this.message}`}};var vp={aa:"aar",ab:"abk",ae:"ave",af:"afr",ak:"aka",am:"amh",an:"arg",ar:"ara",as:"asm",av:"ava",ay:"aym",az:"aze",ba:"bak",be:"bel",bg:"bul",bi:"bis",bm:"bam",bn:"ben",bo:"bod",br:"bre",bs:"bos",ca:"cat",ce:"che",ch:"cha",co:"cos",cr:"cre",cs:"ces",cu:"chu",cv:"chv",cy:"cym",da:"dan",de:"deu",dv:"div",dz:"dzo",ee:"ewe",el:"ell",en:"eng",eo:"epo",es:"spa",et:"est",eu:"eus",fa:"fas",ff:"ful",fi:"fin",fj:"fij",fo:"fao",fr:"fra",fy:"fry",ga:"gle",gd:"gla",gl:"glg",gn:"grn",gu:"guj",gv:"glv",ha:"hau",he:"heb",hi:"hin",ho:"hmo",hr:"hrv",ht:"hat",hu:"hun",hy:"hye",hz:"her",ia:"ina",id:"ind",ie:"ile",ig:"ibo",ii:"iii",ik:"ipk",io:"ido",is:"isl",it:"ita",iu:"iku",ja:"jpn",jv:"jav",ka:"kat",kg:"kon",ki:"kik",kj:"kua",kk:"kaz",kl:"kal",km:"khm",kn:"kan",ko:"kor",kr:"kau",ks:"kas",ku:"kur",kv:"kom",kw:"cor",ky:"kir",la:"lat",lb:"ltz",lg:"lug",li:"lim",ln:"lin",lo:"lao",lt:"lit",lu:"lub",lv:"lav",mg:"mlg",mh:"mah",mi:"mri",mk:"mkd",ml:"mal",mn:"mon",mr:"mar",ms:"msa",mt:"mlt",my:"mya",na:"nau",nb:"nob",nd:"nde",ne:"nep",ng:"ndo",nl:"nld",nn:"nno",no:"nor",nr:"nbl",nv:"nav",ny:"nya",oc:"oci",oj:"oji",om:"orm",or:"ori",os:"oss",pa:"pan",pi:"pli",pl:"pol",ps:"pus",pt:"por",qu:"que",rm:"roh",rn:"run",ro:"ron",ru:"rus",rw:"kin",sa:"san",sc:"srd",sd:"snd",se:"sme",sg:"sag",si:"sin",sk:"slk",sl:"slv",sm:"smo",sn:"sna",so:"som",sq:"sqi",sr:"srp",ss:"ssw",st:"sot",su:"sun",sv:"swe",sw:"swa",ta:"tam",te:"tel",tg:"tgk",th:"tha",ti:"tir",tk:"tuk",tl:"tgl",tn:"tsn",to:"ton",tr:"tur",ts:"tso",tt:"tat",tw:"twi",ty:"tah",ug:"uig",uk:"ukr",ur:"urd",uz:"uzb",ve:"ven",vi:"vie",vo:"vol",wa:"wln",wo:"wol",xh:"xho",yi:"yid",yo:"yor",za:"zha",zh:"zho",zu:"zul"},ql=vp;var Rp={alb:"sqi",arm:"hye",baq:"eus",bur:"mya",chi:"zho",cze:"ces",dut:"nld",fre:"fra",geo:"kat",ger:"deu",gre:"ell",ice:"isl",mac:"mkd",mao:"mri",may:"msa",per:"fas",slo:"slk",rum:"ron",tib:"bod",wel:"cym"},jl=Rp;function kp(n){if(_(n)||n==="")return"und";let t=(""+n).toLowerCase().split("-")[0],r=Pp(t);return w(r)?r:n}function Pp(n){let e;switch(n.length){case 2:e=ql[n];break;case 3:e=jl[n];break}return e}var Yl=kp;var Sr=Yl;var Ap={dashParsers:{wasm:null,native:null,fastJs:null},codecSupportProber:null,createDebugElement:null,directfile:null,decrypt:null,htmlTextDisplayer:null,htmlTextTracksParsers:{},mainThreadMediaSourceInit:null,multithread:null,nativeTextDisplayer:null,nativeTextTracksParsers:{},transports:{}},br=Ap;function go(n){for(let e=0;e<n.length;e++){let t=n[e];if(typeof t=="function")t(br);else if(!_(t)&&typeof t._addFeature=="function")t._addFeature(br);else throw new Error("Unrecognized feature")}}var ue=br;function me(n,e){if(n.length!==e.length)return!1;if(n===e)return!0;for(let t=n.length-1;t>=0;t--)if(n[t]!==e[t])return!1;return!0}function Je(){let n="",e=-1;return function(){return e++,e>=Number.MAX_SAFE_INTEGER&&(n+="0",e=0),n+String(e)}}var Cp=Je(),Ga=class{constructor(e,t){var r,i,o,a,s;if(this.id=e.id,this.uniqueId=Cp(),this.bitrate=e.bitrate,this.codecs=[],e.isSpatialAudio!==void 0&&(this.isSpatialAudio=e.isSpatialAudio),e.height!==void 0&&(this.height=e.height),e.width!==void 0&&(this.width=e.width),e.mimeType!==void 0&&(this.mimeType=e.mimeType),e.contentProtections!==void 0&&(this.contentProtections=e.contentProtections),e.frameRate!==void 0&&(this.frameRate=e.frameRate),e.hdrInfo!==void 0&&(this.hdrInfo=e.hdrInfo),this.cdnMetadata=e.cdnMetadata,this.index=e.index,t==="audio"||t==="video")if(ue.codecSupportProber!==null){if(e.supplementalCodecs!==void 0){let d=ue.codecSupportProber.isSupported((r=this.mimeType)!=null?r:"",(i=e.supplementalCodecs)!=null?i:"");d!==!1&&(this.codecs=[e.supplementalCodecs],d===!0&&(this.isSupported=!0))}this.isSupported!==!0&&(this.codecs.length>0?this.codecs.push((o=e.codecs)!=null?o:""):(this.codecs=e.codecs===void 0?[]:[e.codecs],this.isSupported=ue.codecSupportProber.isSupported((a=this.mimeType)!=null?a:"",(s=e.codecs)!=null?s:"")))}else e.supplementalCodecs!==void 0&&this.codecs.push(e.supplementalCodecs),e.codecs!==void 0&&this.codecs.push(e.codecs);else e.codecs!==void 0&&this.codecs.push(e.codecs),this.isSupported=!0}refreshCodecSupport(e){var i;let t=(i=this.mimeType)!=null?i:"",r=this.codecs;r.length===0&&(r=[""]);for(let o=0;o<r.length;o++)for(let a of e){let s=r[o];if(a.codec===s&&a.mimeType===t){if(a.result){this.isSupported=!0,this.codecs=[s];return}else if(o===r.length){this.isSupported=!1,this.codecs=[s];return}}}}getMimeTypeString(){var e,t,r;return`${(e=this.mimeType)!=null?e:""};codecs="${(r=(t=this.codecs)==null?void 0:t[0])!=null?r:""}"`}getEncryptionData(e){var i,o;let t=this.getAllEncryptionData(),r=[];for(let a=0;a<t.length;a++){let s=!1,d=t[a];for(let u=0;u<d.values.length;u++)if(d.values[u].systemId.toLowerCase()===e.toLowerCase())if(s)r[r.length-1].values.push(d.values[u]);else{let c=(o=(i=this.contentProtections)==null?void 0:i.keyIds)==null?void 0:o.map(l=>l.keyId);r.push({type:d.type,keyIds:c,values:[d.values[u]]}),s=!0}}return r}getAllEncryptionData(){var t,r;if(this.contentProtections===void 0||this.contentProtections.initData.length===0)return[];let e=(r=(t=this.contentProtections)==null?void 0:t.keyIds)==null?void 0:r.map(i=>i.keyId);return this.contentProtections.initData.map(i=>({type:i.type,keyIds:e,values:i.values}))}addProtectionData(e,t,r){let i=!1;if(this.contentProtections===void 0)return this.contentProtections={keyIds:t!==void 0?[{keyId:t}]:[],initData:[{type:e,values:r}]},!0;if(t!==void 0){let a=this.contentProtections.keyIds;if(a===void 0)this.contentProtections.keyIds=[{keyId:t}];else{let s=!1;for(let d of a)me(d.keyId,t)&&(s=!0);s||(m.warn("Manifest: found unanounced key id."),a.push({keyId:t}))}}let o=this.contentProtections.initData;for(let a=0;a<o.length;a++)if(o[a].type===e){let s=o[a].values;for(let d=0;d<r.length;d++){let u=r[d],c;for(c=0;c<s.length;c++)if(u.systemId===s[c].systemId){if(me(u.data,s[c].data))break;m.warn("Manifest: different init data for the same system ID")}c===s.length&&(s.push(u),i=!0)}return i}return this.contentProtections.initData.push({type:e,values:r}),!0}getMetadataSnapshot(){return{id:this.id,uniqueId:this.uniqueId,bitrate:this.bitrate,codecs:this.codecs,mimeType:this.mimeType,width:this.width,height:this.height,frameRate:this.frameRate,isSupported:this.isSupported,hdrInfo:this.hdrInfo,contentProtections:this.contentProtections,decipherable:this.decipherable}}},$l=Ga;var Tr=class n{constructor(e,t={}){let{trickModeTracks:r}=e,{representationFilter:i,isManuallyAdded:o}=t;this.id=e.id,this.type=e.type,e.isTrickModeTrack!==void 0&&(this.isTrickModeTrack=e.isTrickModeTrack),e.language!==void 0&&(this.language=e.language,this.normalizedLanguage=Sr(e.language)),e.closedCaption!==void 0&&(this.isClosedCaption=e.closedCaption),e.audioDescription!==void 0&&(this.isAudioDescription=e.audioDescription),e.isDub!==void 0&&(this.isDub=e.isDub),e.forcedSubtitles!==void 0&&(this.isForcedSubtitles=e.forcedSubtitles),e.isSignInterpreted!==void 0&&(this.isSignInterpreted=e.isSignInterpreted),e.label!==void 0&&(this.label=e.label),r!==void 0&&r.length>0&&(this.trickModeTracks=r.map(u=>new n(u)));let a=e.representations,s=[],d;for(let u=0;u<a.length;u++){let c=new $l(a[u],this.type),l=!0;if(!_(i)){let f={id:c.id,bitrate:c.bitrate,codecs:c.codecs,height:c.height,width:c.width,frameRate:c.frameRate,hdrInfo:c.hdrInfo};if(c.contentProtections!==void 0&&(f.contentProtections={},c.contentProtections.keyIds!==void 0)){let p=c.contentProtections.keyIds.map(({keyId:g})=>g);f.contentProtections.keyIds=p}l=i(f,{trackType:this.type,language:this.language,normalizedLanguage:this.normalizedLanguage,isClosedCaption:this.isClosedCaption,isDub:this.isDub,isAudioDescription:this.isAudioDescription,isSignInterpreted:this.isSignInterpreted})}l?(s.push(c),d===void 0&&(c.isSupported===!0?d=!0:c.isSupported===!1&&(d=!1))):m.debug("Filtering Representation due to representationFilter",this.type,`Adaptation: ${this.id}`,`Representation: ${c.id}`,`(${c.bitrate})`)}s.sort((u,c)=>u.bitrate-c.bitrate),this.representations=s,this.isSupported=d,this.manuallyAdded=o===!0}refreshCodecSupport(e){for(let t of this.representations)t.isSupported===void 0&&(t.refreshCodecSupport(e),this.isSupported!==!0&&t.isSupported===!0?this.isSupported=!0:this.isSupported===void 0&&t.isSupported===!1&&(this.isSupported=!1))}getRepresentation(e){return X(this.representations,({id:t})=>e===t)}getMetadataSnapshot(){let e=[],t=this.representations;for(let r of t)e.push(r.getMetadataSnapshot());return{id:this.id,type:this.type,isSupported:this.isSupported,language:this.language,isForcedSubtitles:this.isForcedSubtitles,isClosedCaption:this.isClosedCaption,isAudioDescription:this.isAudioDescription,isSignInterpreted:this.isSignInterpreted,normalizedLanguage:this.normalizedLanguage,representations:e,label:this.label,isDub:this.isDub}}};function $(n,e,t){if(typeof Array.prototype.includes=="function")return n.includes(e,t);let r=n.length>>>0;if(r===0)return!1;let i=t|0,o=i>=0?Math.min(i,r-1):Math.max(r+i,0),a=(s,d)=>s===d||typeof s=="number"&&typeof d=="number"&&isNaN(s)&&isNaN(d);for(;o<r;){if(a(n[o],e))return!0;o++}return!1}var Ql=[];function _t(n){$(Ql,n)||(console.warn(n),Ql.push(n))}var Ht=["audio","video","text"];function ln(n){var o,a;let e=n.timeBounds;if(e.timeshiftDepth===null)return(o=e.minimumSafePosition)!=null?o:0;let{maximumTimeData:t}=e,r;if(!e.maximumTimeData.isLinear)r=t.maximumSafePosition;else{let s=V()-t.time;r=t.maximumSafePosition+s/1e3}let i=r-e.timeshiftDepth;return Math.max((a=e.minimumSafePosition)!=null?a:0,i)}function cn(n){let{maximumTimeData:e}=n.timeBounds;if(!n.isLive||e.livePosition===void 0)return;if(!e.isLinear)return e.livePosition;let t=V()-e.time;return e.livePosition+t/1e3}function It(n){let{maximumTimeData:e}=n.timeBounds;if(!e.isLinear)return e.maximumSafePosition;let t=V()-e.time;return e.maximumSafePosition+t/1e3}function lt(n,e){if(e===void 0)return ja(n).filter(r=>r.isSupported===!0);let t=n.adaptations[e];return t===void 0?[]:t.filter(r=>r.isSupported===!0)}function Zl(n,e){let t=null;for(let r=n.periods.length-1;r>=0;r--){let i=n.periods[r];if(qa(i,e,t))return i;t=i}}function ho(n,e){let t=e.end;if(t===void 0)return null;let r=X(n.periods,i=>i.end===void 0||t<i.end);return r===void 0?null:r}function qa(n,e,t){return e>=n.start&&(n.end===void 0||e<n.end)?!0:e===n.end&&(t===null||t.start>n.end)}function ja(n){let e=n.adaptations;return hr(e).reduce((t,r)=>_(r)?t:t.concat(r),[])}function Io(n,e){var r,i;let t={language:(r=n.language)!=null?r:"",normalized:(i=n.normalizedLanguage)!=null?i:"",audioDescription:n.isAudioDescription===!0,id:n.id,representations:(e?n.representations.filter(o=>o.isSupported===!0&&o.decipherable!==!1):n.representations).map(Mp),label:n.label};return n.isDub===!0&&(t.dub=!0),t}function yo(n){var e,t;return{language:(e=n.language)!=null?e:"",normalized:(t=n.normalizedLanguage)!=null?t:"",closedCaption:n.isClosedCaption===!0,id:n.id,label:n.label,forced:n.isForcedSubtitles}}function So(n,e){let t=n.trickModeTracks!==void 0?n.trickModeTracks.map(i=>{let o=(e?i.representations.filter(s=>s.isSupported===!0&&s.decipherable!==!1):i.representations).map(Xl),a={id:i.id,representations:o,isTrickModeTrack:!0};return i.isSignInterpreted===!0&&(a.signInterpreted=!0),a}):void 0,r={id:n.id,representations:(e?n.representations.filter(i=>i.isSupported===!0&&i.decipherable!==!1):n.representations).map(Xl),label:n.label};return n.isSignInterpreted===!0&&(r.signInterpreted=!0),n.isTrickModeTrack===!0&&(r.isTrickModeTrack=!0),t!==void 0&&(r.trickModeTracks=t),r}function Mp(n){let{id:e,bitrate:t,codecs:r,isSpatialAudio:i,isSupported:o,decipherable:a}=n;return{id:e,bitrate:t,codec:r==null?void 0:r[0],isSpatialAudio:i,isCodecSupported:o,decipherable:a}}function Xl(n){let{id:e,bitrate:t,frameRate:r,width:i,height:o,codecs:a,hdrInfo:s,isSupported:d,decipherable:u}=n;return{id:e,bitrate:t,frameRate:r,width:i,height:o,codec:a==null?void 0:a[0],hdrInfo:s,isCodecSupported:d,decipherable:u}}function Wt(n){switch(n.type){case"audio":return{type:"audio",track:Io(n,!1)};case"video":return{type:"video",track:So(n,!1)};case"text":return{type:"text",track:yo(n)}}}function Jl(n){return new Function(`return (${n}(arguments[0], arguments[1]))`)}var _r=class{constructor(e,t,r){if(this.id=e.id,this.adaptations=Object.keys(e.adaptations).reduce((i,o)=>{let a=e.adaptations[o];if(_(a))return i;let s=a.map(d=>{let u=new Tr(d,{representationFilter:r});return u.representations.length>0&&u.isSupported===!1&&t.push(u),u}).filter(d=>d.representations.length>0);if(s.every(d=>d.isSupported===!1)&&a.length>0&&(o==="video"||o==="audio"))throw new Z("MANIFEST_INCOMPATIBLE_CODECS_ERROR","No supported "+o+" adaptations",{tracks:void 0});return s.length>0&&(i[o]=s),i},{}),!Array.isArray(this.adaptations.video)&&!Array.isArray(this.adaptations.audio))throw new Z("MANIFEST_PARSE_ERROR","No supported audio and video tracks.");this.duration=e.duration,this.start=e.start,!_(this.duration)&&!_(this.start)&&(this.end=this.start+this.duration),this.streamEvents=e.streamEvents===void 0?[]:e.streamEvents}refreshCodecSupport(e,t){Object.keys(this.adaptations).forEach(r=>{let i=this.adaptations[r];if(i===void 0)return;let o=!1;for(let a of i){let s=a.isSupported;a.refreshCodecSupport(e),s!==!1&&a.isSupported===!1&&t.push(a),o===!1?o=a.isSupported:o===void 0&&a.isSupported===!0&&(o=!0)}if((r==="video"||r==="audio")&&o===!1)throw new Z("MANIFEST_INCOMPATIBLE_CODECS_ERROR","No supported "+r+" adaptations",{tracks:void 0})},{})}getAdaptations(){return ja(this)}getAdaptationsForType(e){let t=this.adaptations[e];return t!=null?t:[]}getAdaptation(e){return X(this.getAdaptations(),({id:t})=>e===t)}getSupportedAdaptations(e){return lt(this,e)}containsTime(e,t){return qa(this,e,t)}getMetadataSnapshot(){let e={},t=this.getAdaptations();for(let r of t){let i=e[r.type];i===void 0&&(i=[],e[r.type]=i),i.push(r.getMetadataSnapshot())}return{start:this.start,end:this.end,id:this.id,streamEvents:this.streamEvents,adaptations:e}}};function Er(n,e,t){let r={updatedAdaptations:[],removedAdaptations:[],addedAdaptations:[]};n.start=e.start,n.end=e.end,n.duration=e.duration,n.streamEvents=e.streamEvents;let i=n.getAdaptations(),o=e.getAdaptations();for(let a=0;a<i.length;a++){let s=i[a],d=pe(o,u=>u.id===s.id);if(d===-1){m.warn('Manifest: Adaptation "'+i[a].id+'" not found when merging.');let[u]=i.splice(a,1);a--,r.removedAdaptations.push({id:u.id,trackType:u.type})}else{let[u]=o.splice(d,1),c=[],l=[],f=[];r.updatedAdaptations.push({adaptation:s.id,trackType:s.type,updatedRepresentations:c,addedRepresentations:l,removedRepresentations:f});let p=s.representations,g=u.representations.slice();for(let S=0;S<p.length;S++){let I=p[S],y=pe(g,T=>T.id===I.id);if(y===-1){m.warn(`Manifest: Representation "${p[S].id}" not found when merging.`);let[T]=p.splice(S,1);S--,f.push(T.id)}else{let[T]=g.splice(y,1);c.push(I.getMetadataSnapshot()),I.cdnMetadata=T.cdnMetadata,t===0?I.index._replace(T.index):I.index._update(T.index)}}g.length>0&&(m.warn(`Manifest: ${g.length} new Representations found when merging.`),s.representations.push(...g),l.push(...g.map(S=>S.getMetadataSnapshot())))}}if(o.length>0){m.warn(`Manifest: ${o.length} new Adaptations found when merging.`);for(let a of o){let s=n.adaptations[a.type];s===void 0?n.adaptations[a.type]=[a]:s.push(a),r.addedAdaptations.push(a.getMetadataSnapshot())}}return r}function ec(n,e){let t={updatedPeriods:[],addedPeriods:[],removedPeriods:[]},r=0;for(let o=0;o<e.length;o++){let a=e[o],s=r,d=n[s];for(;d!==void 0&&d.id!==a.id;)s++,d=n[s];if(d!==void 0){let u=Er(d,a,0);t.updatedPeriods.push({period:{id:d.id,start:d.start,end:d.end,duration:d.duration,streamEvents:d.streamEvents},result:u});let c=e.slice(r,o),l=s-r,f=n.splice(r,l,...c);t.removedPeriods.push(...f.map(p=>({id:p.id,start:p.start,end:p.end}))),t.addedPeriods.push(...c.map(p=>p.getMetadataSnapshot())),r=o+1}}if(r>n.length)return m.error("Manifest: error when updating Periods"),t;if(r<n.length){let o=n.splice(r,n.length-r);t.removedPeriods.push(...o.map(a=>({id:a.id,start:a.start,end:a.end})))}let i=e.slice(r,e.length);return i.length>0&&(n.push(...i),t.addedPeriods.push(...i.map(o=>o.getMetadataSnapshot()))),t}function tc(n,e){let t={updatedPeriods:[],addedPeriods:[],removedPeriods:[]};if(n.length===0)return n.splice(0,0,...e),t.addedPeriods.push(...e.map(s=>s.getMetadataSnapshot())),t;if(e.length===0)return t;let r=n[n.length-1];if(r.start<e[0].start){if(r.end!==e[0].start)throw new Z("MANIFEST_UPDATE_ERROR","Cannot perform partial update: not enough data");return n.push(...e),t.addedPeriods.push(...e.map(s=>s.getMetadataSnapshot())),t}let i=pe(n,({id:s})=>s===e[0].id);if(i<0)throw new Z("MANIFEST_UPDATE_ERROR","Cannot perform partial update: incoherent data");let o=Er(n[i],e[0],1);t.updatedPeriods.push({period:Y(n[i].getMetadataSnapshot(),{adaptations:void 0}),result:o});let a=i+1;for(let s=1;s<e.length;s++){let d=e[s],u=-1;for(let c=a;c<n.length;c++)if(d.id===n[c].id){u=c;break}if(u<0){let c=-1;for(let p=a;p<n.length;p++)if(d.start<n[p].start){c=p;break}let l=c-a,f=n.splice(a,l,d);t.addedPeriods.push(d.getMetadataSnapshot()),t.removedPeriods.push(...f.map(p=>({id:p.id,start:p.start,end:p.end})))}else{if(u>a){m.warn("Manifest: old Periods not found in new when updating, removing");let l=n.splice(a,u-a);t.removedPeriods.push(...l.map(f=>({id:f.id,start:f.start,end:f.end}))),u=a}let c=Er(n[u],d,0);t.updatedPeriods.push({period:Y(n[u].getMetadataSnapshot(),{adaptations:void 0}),result:c})}a++}if(a<n.length){m.warn("Manifest: Ending Periods not found in new when updating, removing");let s=n.splice(a,n.length-a);t.removedPeriods.push(...s.map(d=>({id:d.id,start:d.start,end:d.end})))}return t}var xp=Je(),vr=class extends ie{constructor(e,t,r){var s;super();let{representationFilter:i,manifestUpdateUrl:o}=t;this.manifestFormat=0,this.id=xp(),this.expired=(s=e.expired)!=null?s:null,this.transport=e.transportType,this.clockOffset=e.clockOffset;let a=[];if(this.periods=e.periods.map(d=>new _r(d,a,i)).sort((d,u)=>d.start-u.start),a.length>0){let d=new Z("MANIFEST_INCOMPATIBLE_CODECS_ERROR","An Adaptation contains only incompatible codecs.",{tracks:a.map(Wt)});r.push(d)}this.adaptations=this.periods[0]===void 0?{}:this.periods[0].adaptations,this.timeBounds=e.timeBounds,this.isDynamic=e.isDynamic,this.isLive=e.isLive,this.isLastPeriodKnown=e.isLastPeriodKnown,this.uris=e.uris===void 0?[]:e.uris,this.updateUrl=o,this.lifetime=e.lifetime,this.clockOffset=e.clockOffset,this.suggestedPresentationDelay=e.suggestedPresentationDelay,this.availabilityStartTime=e.availabilityStartTime,this.publishTime=e.publishTime}refreshCodecSupport(e){let t=[];for(let r of this.periods)r.refreshCodecSupport(e,t);return t.length>0?new Z("MANIFEST_INCOMPATIBLE_CODECS_ERROR","An Adaptation contains only incompatible codecs.",{tracks:t.map(Wt)}):null}getPeriod(e){return X(this.periods,t=>e===t.id)}getPeriodForTime(e){return Zl(this,e)}getNextPeriod(e){return X(this.periods,t=>t.start>e)}getPeriodAfter(e){return ho(this,e)}getUrls(){return this.uris}replace(e){this._performUpdate(e,0)}update(e){this._performUpdate(e,1)}getMinimumSafePosition(){return ln(this)}getLivePosition(){return cn(this)}getMaximumSafePosition(){return It(this)}updateRepresentationsDeciperability(e){let t=wp(this,e);t.length>0&&this.trigger("decipherabilityUpdate",t)}getAdaptations(){_t("manifest.getAdaptations() is deprecated. Please use manifest.period[].getAdaptations() instead");let e=this.periods[0];if(e===void 0)return[];let t=e.adaptations,r=[];for(let i in t)if(t.hasOwnProperty(i)){let o=t[i];r.push(...o)}return r}getAdaptationsForType(e){_t("manifest.getAdaptationsForType(type) is deprecated. Please use manifest.period[].getAdaptationsForType(type) instead");let t=this.periods[0];if(t===void 0)return[];let r=t.adaptations[e];return r===void 0?[]:r}getAdaptation(e){return _t("manifest.getAdaptation(id) is deprecated. Please use manifest.period[].getAdaptation(id) instead"),X(this.getAdaptations(),({id:t})=>e===t)}getMetadataSnapshot(){let e=[];for(let t of this.periods)e.push(t.getMetadataSnapshot());return{manifestFormat:1,id:this.id,periods:e,isDynamic:this.isDynamic,isLive:this.isLive,isLastPeriodKnown:this.isLastPeriodKnown,suggestedPresentationDelay:this.suggestedPresentationDelay,clockOffset:this.clockOffset,uris:this.uris,availabilityStartTime:this.availabilityStartTime,timeBounds:this.timeBounds}}_performUpdate(e,t){this.availabilityStartTime=e.availabilityStartTime,this.expired=e.expired,this.isDynamic=e.isDynamic,this.isLive=e.isLive,this.isLastPeriodKnown=e.isLastPeriodKnown,this.lifetime=e.lifetime,this.clockOffset=e.clockOffset,this.suggestedPresentationDelay=e.suggestedPresentationDelay,this.transport=e.transport,this.publishTime=e.publishTime;let r;if(t===0)this.timeBounds=e.timeBounds,this.uris=e.uris,r=ec(this.periods,e.periods);else{this.timeBounds.maximumTimeData=e.timeBounds.maximumTimeData,this.updateUrl=e.uris[0],r=tc(this.periods,e.periods);let i=this.getMinimumSafePosition();for(;this.periods.length>0;){let o=this.periods[0];if(o.end===void 0||o.end>i)break;this.periods.shift()}}this.adaptations=this.periods[0]===void 0?{}:this.periods[0].adaptations,this.trigger("manifestUpdate",r)}};function wp(n,e){let t=[];for(let r of n.periods)for(let i of r.getAdaptations())for(let o of i.representations){let a={manifest:n,period:r,adaptation:i,representation:o},s=e(a);s!==o.decipherable&&(t.push(a),o.decipherable=s,m.debug(`Decipherability changed for "${o.id}"`,`(${o.bitrate})`,String(o.decipherable)))}return t}function Et(n,e){return n.segment.id===e.segment.id&&n.representation.uniqueId===e.representation.uniqueId}function fn(n){if(_(n))return"";let{period:e,adaptation:t,representation:r,segment:i}=n,o;return i.isInit?o="init":i.complete?o=`${i.time}-${i.duration}`:o=`${i.time}`,`${t.type} P: ${e.id} A: ${t.id} R: ${r.id} S: ${o}`}var wn=vr;function vt(n){return n instanceof Te?new rt("PIPELINE_LOAD_ERROR",n):xe(n,{defaultCode:"PIPELINE_LOAD_ERROR",defaultReason:"Unknown error when fetching the Manifest"})}function ot(n,e){let t;return new Promise((r,i)=>{if(n.cancellationError!==null)return i(n.cancellationError);let o=!1;t=e(function(d){n.deregister(a),o=!0,r(d)},function(d){n.deregister(a),o=!0,i(d)}),o||n.register(a);function a(s){t!==void 0&&t(),i(s)}})}function Gt(n,e){return ot(e,t=>{let r=setTimeout(()=>t(),n);return()=>clearTimeout(r)})}function Rr(n){let e=(Math.random()*2-1)*.3;return n*(e+1)}function Op(n){return n instanceof Te?n.type===un.ERROR_HTTP_CODE?n.status>=500||n.status===404||n.status===415||n.status===412:n.type===un.TIMEOUT||n.type===un.ERROR_EVENT:n instanceof nt?typeof n.canRetry=="boolean"?n.canRetry:n.xhr!==void 0?n.xhr.status>=500||n.xhr.status===404||n.xhr.status===415||n.xhr.status===412:!1:zt(n)&&n.code==="INTEGRITY_ERROR"}async function Ya(n,e,t,r,i){if(i.cancellationError!==null)return Promise.reject(i.cancellationError);let{baseDelay:o,maxDelay:a,maxRetry:s,onRetry:d}=r;n!==null&&n.length===0&&m.warn("Fetchers: no CDN given to `scheduleRequestWithCdns`.");let u=new Map,c=l();if(c===void 0)throw new Error("No CDN to request");return f(c);function l(){if(n===null){let I=u.get(null);return I!==void 0&&I.isBlacklisted?void 0:null}else{if(e===null)return S(n);{let I=e.getCdnPreferenceForResource(n);return S(I)}}}async function f(I){try{return await t(I,i)}catch(y){if(F.isCancellationError(y))throw y;I!==null&&e!==null&&e.downgradeCdn(I);let T=u.get(I);if(T===void 0?(T={errorCounter:1,blockedUntil:void 0,isBlacklisted:!1},u.set(I,T)):T.errorCounter++,!Op(y))return T.blockedUntil=void 0,T.isBlacklisted=!0,p(y);if(T.errorCounter>s)T.blockedUntil=void 0,T.isBlacklisted=!0;else{let v=T.errorCounter,E=Math.min(o*Math.pow(2,v-1),a),R=Rr(E);T.blockedUntil=V()+R}return p(y)}}async function p(I){let y=l();if(i.isCancelled())throw i.cancellationError;if(y===void 0)throw I;if(d(I),i.isCancelled())throw i.cancellationError;return g(y,I)}function g(I,y){let T=u.get(I);if(T===void 0||T.blockedUntil===void 0)return f(I);let v=V(),E=T.blockedUntil-v;if(E<=0)return f(I);let R=new F,k=R.linkToSignal(i);return new Promise((A,C)=>{e==null||e.addEventListener("priorityChange",()=>{let D=l();if(i.isCancelled())throw i.cancellationError;if(D===void 0)return N(y);D!==I&&(R.cancel(),g(D,y).then(x,N))},R.signal),Gt(E,R.signal).then(()=>f(I).then(x,N),Q);function x(D){k(),A(D)}function N(D){k(),C(D)}})}function S(I){var T;if(u.size===0)return I[0];let y=V();return(T=I.filter(v=>{var E;return((E=u.get(v))==null?void 0:E.isBlacklisted)!==!0}).reduce((v,E)=>{var k;let R=(k=u.get(E))==null?void 0:k.blockedUntil;return R!==void 0&&R<=y&&(R=void 0),v===void 0?[E,R]:v[1]===void 0?v:R===void 0?[E,void 0]:R<v[1]?[E,R]:v},void 0))==null?void 0:T[0]}}function $a(n,e,t){return Ya(null,null,n,e,t)}var kr=class extends ie{constructor(e,t,r){super(),this.scheduleManualRefresh=Q,this._manifestUrls=e,this._pipelines=t.manifest,this._settings=r,this._canceller=new F,this._isStarted=!1,this._isRefreshPending=!1,this._consecutiveUnsafeMode=0,this._prioritizedContentUrl=null}dispose(){this._canceller.cancel(),this.removeEventListener()}start(){if(this._isStarted)return;this._isStarted=!0;let e,t=this._settings.initialManifest;t instanceof wn?e=Promise.resolve({manifest:t}):t!==void 0?e=this.parse(t,{previousManifest:null,unsafeMode:!1},void 0):e=this._fetchManifest(void 0).then(r=>r.parse({previousManifest:null,unsafeMode:!1})),e.then(r=>{this.trigger("manifestReady",r.manifest),this._canceller.isUsed()||this._recursivelyRefreshManifest(r.manifest,r)}).catch(r=>this._onFatalError(r))}updateContentUrls(e,t){var r;this._prioritizedContentUrl=(r=e==null?void 0:e[0])!=null?r:void 0,t&&this.scheduleManualRefresh({enablePartialRefresh:!1,delay:0,canUseUnsafeMode:!1})}async _fetchManifest(e){var d;let t=this._canceller.signal,r=this._settings,i=this._pipelines,o=e!=null?e:(d=this._manifestUrls)==null?void 0:d[0],a=this._getBackoffSetting(u=>{this.trigger("warning",vt(u))});try{let u=await s(o);return{parse:c=>this._parseLoadedManifest(u,c,o)}}catch(u){throw vt(u)}function s(u){let{loadManifest:c}=i,l=r.requestTimeout===void 0?B.getCurrent().DEFAULT_REQUEST_TIMEOUT:r.requestTimeout,f=r.connectionTimeout===void 0?B.getCurrent().DEFAULT_CONNECTION_TIMEOUT:r.connectionTimeout;return l<0&&(l=void 0),f<0&&(f=void 0),$a(()=>c(u,{timeout:l,connectionTimeout:f},t),a,t)}}parse(e,t,r){return this._parseLoadedManifest({responseData:e,size:void 0,requestDuration:void 0},t,r)}async _parseLoadedManifest(e,t,r){var S;let i=V(),o=this._canceller.signal,a=this.trigger.bind(this),{sendingTime:s,receivedTime:d}=e,u=this._getBackoffSetting(I=>{this.trigger("warning",vt(I))}),c=r!=null?r:(S=this._manifestUrls)==null?void 0:S[0],l={externalClockOffset:t.externalClockOffset,unsafeMode:t.unsafeMode,previousManifest:t.previousManifest,originalUrl:c};try{let I=this._pipelines.parseManifest(e,l,p,o,f);if(Dp(I)){let{manifest:y,warnings:T}=await I;return g(y,T)}else return g(I.manifest,I.warnings)}catch(I){throw xe(I,{defaultCode:"PIPELINE_PARSE_ERROR",defaultReason:"Unknown error when parsing the Manifest"})}async function f(I){try{return await $a(I,u,o)}catch(y){throw vt(y)}}function p(I){for(let y of I){if(o.isCancelled())return;let T=xe(y,{defaultCode:"PIPELINE_PARSE_ERROR",defaultReason:"Unknown error when parsing the Manifest"});a("warning",T)}}function g(I,y){p(y);let T=V()-i;return m.info(`MF: Manifest parsed in ${T}ms`),{manifest:I,sendingTime:s,receivedTime:d,parsingTime:T}}}_getBackoffSetting(e){let{DEFAULT_MAX_MANIFEST_REQUEST_RETRY:t,INITIAL_BACKOFF_DELAY_BASE:r,MAX_BACKOFF_DELAY_BASE:i}=B.getCurrent(),{lowLatencyMode:o,maxRetry:a}=this._settings,s=o?r.LOW_LATENCY:r.REGULAR,d=o?i.LOW_LATENCY:i.REGULAR,u=a!=null?a:t;return{onRetry:e,baseDelay:s,maxDelay:d,maxRetry:u}}_recursivelyRefreshManifest(e,{sendingTime:t,parsingTime:r,updatingTime:i}){let{MAX_CONSECUTIVE_MANIFEST_PARSING_IN_UNSAFE_MODE:o,MIN_MANIFEST_PARSING_TIME_TO_ENTER_UNSAFE_MODE:a}=B.getCurrent(),s=r!==void 0?r+(i!=null?i:0):void 0,d=!1;this._consecutiveUnsafeMode>0?d=this._consecutiveUnsafeMode<o:s!==void 0&&(d=s>=a);let u=t===void 0?0:V()-t,c=Math.max(this._settings.minimumManifestUpdateInterval-u,0),l=new F;if(l.linkToSignal(this._canceller.signal),this.scheduleManualRefresh=f=>{let{enablePartialRefresh:p,delay:g,canUseUnsafeMode:S}=f,I=S&&d,y=t===void 0?0:V()-t,T=Math.max(this._settings.minimumManifestUpdateInterval-y,0),v=setTimeout(()=>{l.cancel(),this._triggerNextManifestRefresh(e,{enablePartialRefresh:p,unsafeMode:I})},Math.max((g!=null?g:0)-y,T));l.signal.register(()=>{clearTimeout(v)})},e.expired!==null){let f=setTimeout(()=>{var p;(p=e.expired)==null||p.then(()=>{l.cancel(),this._triggerNextManifestRefresh(e,{enablePartialRefresh:!1,unsafeMode:d})},Q)},c);l.signal.register(()=>{clearTimeout(f)})}if(e.lifetime!==void 0&&e.lifetime>=0){let f=e.lifetime*1e3-u,p;s===void 0?p=f:e.lifetime<3&&s>=100?(p=Math.min(Math.max(3e3-u,Math.max(f,0)+s),f*6),m.info("MUS: Manifest update rythm is too frequent. Postponing next request.",f,p)):s>=e.lifetime*1e3/10?(p=Math.min(Math.max(f,0)+s,f*6),m.info("MUS: Manifest took too long to parse. Postponing next request",p,p)):p=f;let g=setTimeout(()=>{l.cancel(),this._triggerNextManifestRefresh(e,{enablePartialRefresh:!1,unsafeMode:d})},Math.max(p,c));l.signal.register(()=>{clearTimeout(g)})}}_triggerNextManifestRefresh(e,{enablePartialRefresh:t,unsafeMode:r}){let i=e.updateUrl,o,a;this._prioritizedContentUrl!==null?(o=!0,a=this._prioritizedContentUrl,this._prioritizedContentUrl=null):(o=!t||i===void 0,a=o?e.getUrls()[0]:i);let s=e.clockOffset;r?(this._consecutiveUnsafeMode+=1,m.info('Init: Refreshing the Manifest in "unsafeMode" for the '+String(this._consecutiveUnsafeMode)+" consecutive time.")):this._consecutiveUnsafeMode>0&&(m.info('Init: Not parsing the Manifest in "unsafeMode" anymore after '+String(this._consecutiveUnsafeMode)+" consecutive times."),this._consecutiveUnsafeMode=0),!this._isRefreshPending&&(this._isRefreshPending=!0,this._fetchManifest(a).then(d=>d.parse({externalClockOffset:s,previousManifest:e,unsafeMode:r})).then(d=>{this._isRefreshPending=!1;let{manifest:u,sendingTime:c,parsingTime:l}=d,f=V();if(o)e.replace(u);else try{e.update(u)}catch(g){let S=g instanceof Error?g.message:"unknown error";m.warn(`MUS: Attempt to update Manifest failed: ${S}`,"Re-downloading the Manifest fully");let{FAILED_PARTIAL_UPDATE_MANIFEST_REFRESH_DELAY:I}=B.getCurrent(),y=c===void 0?0:V()-c,T=Math.max(this._settings.minimumManifestUpdateInterval-y,0),v=Q,E=setTimeout(()=>{v(),this._triggerNextManifestRefresh(e,{enablePartialRefresh:!1,unsafeMode:!1})},Math.max(I-y,T));v=this._canceller.signal.register(()=>{clearTimeout(E)});return}let p=V()-f;this._recursivelyRefreshManifest(e,{sendingTime:c,parsingTime:l,updatingTime:p})}).catch(d=>{this._isRefreshPending=!1,this._onFatalError(d)}))}_onFatalError(e){this._canceller.isUsed()||(this.trigger("error",e),this.dispose())}};function Dp(n){return n instanceof Promise}var Qa=kr;var Pr=class extends ie{constructor(e){super(),this._downgradedCdnList={metadata:[],timeouts:[]},e.register(()=>{for(let t of this._downgradedCdnList.timeouts)clearTimeout(t);this._downgradedCdnList={metadata:[],timeouts:[]}})}getCdnPreferenceForResource(e){return e.length<=1?e:this._innerGetCdnPreferenceForResource(e)}downgradeCdn(e){let t=nc(this._downgradedCdnList.metadata,e);t>=0&&this._removeIndexFromDowngradeList(t);let{DEFAULT_CDN_DOWNGRADE_TIME:r}=B.getCurrent(),i=r;this._downgradedCdnList.metadata.push(e);let o=setTimeout(()=>{let a=nc(this._downgradedCdnList.metadata,e);a>=0&&this._removeIndexFromDowngradeList(a),this.trigger("priorityChange",null)},i);this._downgradedCdnList.timeouts.push(o),this.trigger("priorityChange",null)}_innerGetCdnPreferenceForResource(e){let[t,r]=e.reduce((i,o)=>(this._downgradedCdnList.metadata.some(a=>a.id===o.id&&a.baseUrl===o.baseUrl)?i[1].push(o):i[0].push(o),i),[[],[]]);return t.concat(r)}_removeIndexFromDowngradeList(e){this._downgradedCdnList.metadata.splice(e,1);let t=this._downgradedCdnList.timeouts.splice(e,1);clearTimeout(t[0])}};function nc(n,e){return n.length===0?-1:e.id!==void 0?pe(n,t=>t.id===e.id):pe(n,t=>t.baseUrl===e.baseUrl)}function Xa(n,e){let t=new WeakMap;return{createRequest(r,i,o,a){let s=u=>e(r,o,u),d=n.create(s,i,o,a);return t.set(d,s),d},updatePriority(r,i){let o=t.get(r);if(o===void 0){m.warn("Fetchers: Cannot update the priority of a request: task not found.");return}n.updatePriority(o,i)}}}var Za=class{constructor(){this._cache=new WeakMap}add({representation:e,segment:t},r){t.isInit&&this._cache.set(e,r)}get({representation:e,segment:t}){if(t.isInit){let r=this._cache.get(e);if(r!==void 0)return r}return null}},rc=Za;var Lp=Je();function Ja(n,e,t,r,i){let o;i.connectionTimeout===void 0||i.connectionTimeout<0?o=void 0:o=i.connectionTimeout;let a={timeout:i.requestTimeout<0?void 0:i.requestTimeout,connectionTimeout:o},s=$(["audio","video"],n)?new rc:void 0,{loadSegment:d,parseSegment:u}=e;return async function(l,f,p){var H,q,G;let{segment:g,adaptation:S,representation:I,manifest:y,period:T}=l,v=fn(l),E=Lp(),R,k=[],A=0,C=!1,x={segment:g,type:S.type,language:S.language,isLive:y.isLive,periodStart:T.start,periodEnd:T.end,mimeType:I.mimeType,codecs:I.codecs[0],manifestPublishTime:y.publishTime},N={onProgress(K){var ne;R===void 0&&K.totalSize!==void 0&&K.size<K.totalSize&&((ne=r.onProgress)==null||ne.call(r,{duration:K.duration,size:K.size,totalSize:K.totalSize,timestamp:V(),id:E}))},onNewChunk(K){f.onChunk(M(K,!0))}},D=s!==void 0?s.get(l):null;if(D!==null)return m.debug("SF: Found wanted segment in cache",v),f.onChunk(M(D,!1)),Promise.resolve();m.debug("SF: Beginning request",v),(H=r.onRequestBegin)==null||H.call(r,{requestTimestamp:V(),id:E,content:l}),p.register(L);try{let K=await Ya(l.representation.cdnMetadata,t,P,Y({onRetry:O},i),p);if(K.resultType==="segment-loaded"){let ne=K.resultData.responseData;s!==void 0&&s.add(l,K.resultData.responseData),f.onChunk(M(ne,!1))}else K.resultType==="segment-created"&&f.onChunk(M(K.resultData,!1));m.debug("SF: Segment request ended with success",v),f.onAllChunksReceived(),K.resultType!=="segment-created"?(R=K.resultData,U()):R=null,p.isCancelled()||(q=r.onRequestEnd)==null||q.call(r,{id:E}),p.deregister(L)}catch(K){throw p.deregister(L),R=null,K instanceof Ae?(m.debug("SF: Segment request aborted",v),K):(m.debug("SF: Segment request failed",v),(G=r.onRequestEnd)==null||G.call(r,{id:E}),vt(K))}function L(){var K;R===void 0&&(m.debug("SF: Segment request cancelled",v),R=null,(K=r.onRequestEnd)==null||K.call(r,{id:E}))}function P(K){return d(K,x,a,p,N)}function M(K,ne){k.push(!1);let j=k.length-1;return function(oe){let z={data:K,isChunked:ne};try{let ae=u(z,x,oe);return k[j]||(A=A!==void 0&&ae.segmentType==="media"&&ae.chunkInfos!==null&&ae.chunkInfos.duration!==void 0?A+ae.chunkInfos.duration:void 0,k[j]=!0,U()),ae}catch(ae){throw xe(ae,{defaultCode:"PIPELINE_PARSE_ERROR",defaultReason:"Unknown parsing error"})}}}function O(K){f.onRetry(vt(K))}function U(){var K;C||!_(R)&&R.size!==void 0&&R.requestDuration!==void 0&&k.length>0&&k.every(ne=>ne)&&(C=!0,(K=r.onMetrics)==null||K.call(r,{size:R.size,requestDuration:R.requestDuration,content:l,segmentDuration:A}))}}}function ic({maxRetry:n,lowLatencyMode:e,requestTimeout:t,connectionTimeout:r}){let{DEFAULT_MAX_REQUESTS_RETRY_ON_ERROR:i,DEFAULT_REQUEST_TIMEOUT:o,DEFAULT_CONNECTION_TIMEOUT:a,INITIAL_BACKOFF_DELAY_BASE:s,MAX_BACKOFF_DELAY_BASE:d}=B.getCurrent();return{maxRetry:n!=null?n:i,baseDelay:e?s.LOW_LATENCY:s.REGULAR,maxDelay:e?d.LOW_LATENCY:d.REGULAR,requestTimeout:t===void 0?o:t,connectionTimeout:r===void 0?a:r}}var Cr=class{constructor({prioritySteps:e}){if(this._minPendingPriority=null,this._waitingQueue=[],this._pendingTasks=[],this._prioritySteps=e,this._prioritySteps.high>=this._prioritySteps.low)throw new Error("TP: the max high level priority should be given a lowerpriority number than the min low priority.")}create(e,t,r,i){let o;return ot(i,(a,s)=>(o={hasEnded:!1,priority:t,trigger:()=>{if(o.hasEnded)return;let u=()=>{p(),this._endTask(o)},c=g=>{r.beforeEnded(),u(),a(g)},l=g=>{u(),s(g)},f=new F,p=f.linkToSignal(i);o.interrupter=f,f.signal.register(()=>{o.interrupter=null,i.isCancelled()||r.beforeInterrupted()}),this._minPendingPriority=this._minPendingPriority===null?o.priority:Math.min(this._minPendingPriority,o.priority),this._pendingTasks.push(o),o.taskFn(f.signal).then(c).catch(g=>{!i.isCancelled()&&f.isUsed()&&g instanceof Ae||l(g)})},taskFn:e,interrupter:null},this._canBeStartedNow(o)?(o.trigger(),this._isRunningHighPriorityTasks()&&this._interruptCancellableTasks()):this._waitingQueue.push(o),()=>this._endTask(o)))}_endTask(e){e.hasEnded=!0;let t=Ar(e.taskFn,this._waitingQueue);if(t>=0)this._waitingQueue.splice(t,1);else{let r=Ar(e.taskFn,this._pendingTasks);if(r<0)return;this._pendingTasks.splice(r,1),this._pendingTasks.length>0?this._minPendingPriority===e.priority&&(this._minPendingPriority=Math.min(...this._pendingTasks.map(i=>i.priority))):this._minPendingPriority=null,this._loopThroughWaitingQueue()}}updatePriority(e,t){let r=Ar(e,this._waitingQueue);if(r>=0){let s=this._waitingQueue[r];if(s.priority===t||(s.priority=t,!this._canBeStartedNow(s)))return;this._findAndRunWaitingQueueTask(r),this._isRunningHighPriorityTasks()&&this._interruptCancellableTasks();return}let i=Ar(e,this._pendingTasks);if(i<0){m.warn("TP: request to update the priority of a non-existent task");return}let o=this._pendingTasks[i];if(o.priority===t)return;let a=o.priority;o.priority=t,this._minPendingPriority===null||t<this._minPendingPriority?this._minPendingPriority=t:this._minPendingPriority===a&&(this._pendingTasks.length===1?this._minPendingPriority=t:this._minPendingPriority=Math.min(...this._pendingTasks.map(s=>s.priority)),this._loopThroughWaitingQueue()),this._isRunningHighPriorityTasks()&&this._interruptCancellableTasks()}_loopThroughWaitingQueue(){let e=this._waitingQueue.reduce((t,r)=>t===null||t>r.priority?r.priority:t,null);if(!(e===null||this._minPendingPriority!==null&&this._minPendingPriority<e))for(let t=0;t<this._waitingQueue.length;t++){let r=this._minPendingPriority===null?e:Math.min(this._minPendingPriority,e);this._waitingQueue[t].priority<=r&&(this._findAndRunWaitingQueueTask(t),t--)}}_interruptCancellableTasks(){for(let e=0;e<this._pendingTasks.length;e++){let t=this._pendingTasks[e];if(t.priority>=this._prioritySteps.low)return this._interruptPendingTask(t),this._interruptCancellableTasks()}}_findAndRunWaitingQueueTask(e){return e>=this._waitingQueue.length||e<0?(m.warn("TP : Tried to start a non existing task"),!1):(this._waitingQueue.splice(e,1)[0].trigger(),!0)}_interruptPendingTask(e){var r;let t=Ar(e.taskFn,this._pendingTasks);if(t<0){m.warn("TP: Interrupting a non-existent pending task. Aborting...");return}this._pendingTasks.splice(t,1),this._waitingQueue.push(e),this._pendingTasks.length===0?this._minPendingPriority=null:this._minPendingPriority===e.priority&&(this._minPendingPriority=Math.min(...this._pendingTasks.map(i=>i.priority))),(r=e.interrupter)==null||r.cancel()}_canBeStartedNow(e){return this._minPendingPriority===null||e.priority<=this._minPendingPriority}_isRunningHighPriorityTasks(){return this._minPendingPriority!==null&&this._minPendingPriority<=this._prioritySteps.high}};function Ar(n,e){return pe(e,t=>t.taskFn===n)}var Mr=class{constructor(e,t,r){let i=new Pr(r),{MIN_CANCELABLE_PRIORITY:o,MAX_HIGH_PRIORITY_LEVEL:a}=B.getCurrent();this._transport=e,this._prioritizer=new Cr({prioritySteps:{high:a,low:o}}),this._cdnPrioritizer=i,this._backoffOptions=t}createSegmentFetcher(e,t){let r=ic(this._backoffOptions),i=this._transport[e],o=Ja(e,i,this._cdnPrioritizer,t,r);return Xa(this._prioritizer,o)}};var es=Mr;var mn=class{constructor(e){this._array=[],this._sortingFn=e}add(...e){e.sort(this._sortingFn);let t=0;for(let r=0;r<e.length;r++){let i=e[r],o=!1;for(;!o&&t<this._array.length;)this._sortingFn(i,this._array[t])<0?(this._array.splice(t,0,i),o=!0):t++;o||this._array.push(i)}}length(){return this._array.length}get(e){if(e<0||e>=this._array.length)throw new Error("Invalid index.");return this._array[e]}toArray(){return this._array.slice()}findFirst(e){return X(this._array,e)}has(e){return $(this._array,e)}removeElement(e){let t=this._array.indexOf(e);if(t>=0)return this._array.splice(t,1),t}head(){return this._array[0]}last(){return this._array[this._array.length-1]}shift(){return this._array.shift()}pop(){return this._array.pop()}};var xr=class extends ie{constructor(e,t,r){super(),this._canceller=new F,this._manifest=e,this._activeStreams=new Map,this._allBufferTypes=r,this._lastCurrentPeriodId=null;let i=new ts(e);this._maximumPositionCalculator=i;let o=this._canceller.signal;t.listen(({position:a})=>{let s=a.getWanted();if(s<e.getMinimumSafePosition()){let d=new Z("MEDIA_TIME_BEFORE_MANIFEST","The current position is behind the earliest time announced in the Manifest.");this.trigger("warning",d)}else if(s>i.getMaximumAvailablePosition()){let d=new Z("MEDIA_TIME_AFTER_MANIFEST","The current position is after the latest time announced in the Manifest.");this.trigger("warning",d)}},{includeLastObservation:!0,clearSignal:o}),e.addEventListener("manifestUpdate",()=>{this.trigger("endingPositionChange",this._getManifestEndTime()),!o.isCancelled()&&this._checkEndOfStream()},o)}getCurrentEndingTime(){return this._getManifestEndTime()}onAdaptationChange(e,t,r){if(this._manifest.isLastPeriodKnown){let i=this._manifest.periods[this._manifest.periods.length-1];if(t.id===(i==null?void 0:i.id)&&(e==="audio"||e==="video")){e==="audio"?this._maximumPositionCalculator.updateLastAudioAdaptation(r):this._maximumPositionCalculator.updateLastVideoAdaptation(r);let o=this._maximumPositionCalculator.getEndingPosition(),a=o!==void 0?{isEnd:!0,endingPosition:o}:{isEnd:!1,endingPosition:this._maximumPositionCalculator.getMaximumAvailablePosition()};this.trigger("endingPositionChange",a)}}this._canceller.isUsed()||r===null&&this._addActivelyLoadedPeriod(t,e)}onRepresentationChange(e,t){this._addActivelyLoadedPeriod(t,e)}onPeriodCleared(e,t){this._removeActivelyLoadedPeriod(t,e)}onLastSegmentFinishedLoading(e){let t=this._lazilyCreateActiveStreamInfo(e);t.hasFinishedLoadingLastPeriod||(t.hasFinishedLoadingLastPeriod=!0,this._checkEndOfStream())}onLastSegmentLoadingResume(e){let t=this._lazilyCreateActiveStreamInfo(e);t.hasFinishedLoadingLastPeriod&&(t.hasFinishedLoadingLastPeriod=!1,this._checkEndOfStream())}dispose(){this.removeEventListener(),this._canceller.cancel()}_addActivelyLoadedPeriod(e,t){let r=this._lazilyCreateActiveStreamInfo(t);r.activePeriods.has(e)||(r.activePeriods.add(e),this._checkCurrentPeriod())}_removeActivelyLoadedPeriod(e,t){let r=this._activeStreams.get(t);r!==void 0&&r.activePeriods.has(e)&&(r.activePeriods.removeElement(e),this._checkCurrentPeriod())}_checkCurrentPeriod(){if(this._allBufferTypes.length===0)return;let e=this._activeStreams.get(this._allBufferTypes[0]);if(e!==void 0)for(let t of e.activePeriods.toArray()){let r=!0;for(let i of this._allBufferTypes){let o=this._activeStreams.get(i);if(o===void 0)return;if(!o.activePeriods.toArray().some(d=>d.id===t.id)){r=!1;break}}if(r){this._lastCurrentPeriodId!==t.id&&(this._lastCurrentPeriodId=t.id,this.trigger("periodChange",t));return}}}_getManifestEndTime(){let e=this._maximumPositionCalculator.getEndingPosition();return e!==void 0?{isEnd:!0,endingPosition:e}:{isEnd:!1,endingPosition:this._maximumPositionCalculator.getMaximumAvailablePosition()}}_lazilyCreateActiveStreamInfo(e){let t=this._activeStreams.get(e);return t===void 0&&(t={activePeriods:new mn((r,i)=>r.start-i.start),hasFinishedLoadingLastPeriod:!1},this._activeStreams.set(e,t)),t}_checkEndOfStream(){if(!this._manifest.isLastPeriodKnown)return;this._allBufferTypes.every(t=>{let r=this._activeStreams.get(t);return r!==void 0&&r.hasFinishedLoadingLastPeriod})?this.trigger("endOfStream",null):this.trigger("resumeStream",null)}},ts=class{constructor(e){this._manifest=e,this._lastAudioAdaptation=void 0,this._lastVideoAdaptation=void 0}updateLastAudioAdaptation(e){this._lastAudioAdaptation=e}updateLastVideoAdaptation(e){this._lastVideoAdaptation=e}getMaximumAvailablePosition(){if(this._manifest.isDynamic)return this._manifest.getMaximumSafePosition();if(this._lastVideoAdaptation===void 0||this._lastAudioAdaptation===void 0)return this._manifest.getMaximumSafePosition();if(this._lastAudioAdaptation===null){if(this._lastVideoAdaptation===null)return this._manifest.getMaximumSafePosition();{let e=bo(this._lastVideoAdaptation);return typeof e!="number"?this._manifest.getMaximumSafePosition():e}}else if(this._lastVideoAdaptation===null){let e=bo(this._lastAudioAdaptation);return typeof e!="number"?this._manifest.getMaximumSafePosition():e}else{let e=bo(this._lastAudioAdaptation),t=bo(this._lastVideoAdaptation);return typeof e!="number"||typeof t!="number"?this._manifest.getMaximumSafePosition():Math.min(e,t)}}getEndingPosition(){var e,t;if(!this._manifest.isDynamic)return this.getMaximumAvailablePosition();if(!(this._lastVideoAdaptation===void 0||this._lastAudioAdaptation===void 0)){if(this._lastAudioAdaptation===null)return this._lastVideoAdaptation===null?void 0:(e=To(this._lastVideoAdaptation))!=null?e:void 0;if(this._lastVideoAdaptation===null)return(t=To(this._lastAudioAdaptation))!=null?t:void 0;{let r=To(this._lastAudioAdaptation),i=To(this._lastVideoAdaptation);return typeof r!="number"||typeof i!="number"?void 0:Math.min(r,i)}}}};function bo(n){let{representations:e}=n,t=null,r;for(let i of e)if(i.index!==r){r=i.index;let o=i.index.getLastAvailablePosition();if(o===void 0)return;o!==null&&(t=_(t)?o:Math.min(t,o))}return t}function To(n){let{representations:e}=n,t=null,r;for(let i=0;i<e.length;i++)if(e[i].index!==r){r=e[i].index;let o=e[i].index.getEnd();if(o===void 0)return;o!==null&&(t=_(t)?o:Math.min(t,o))}return t}function ns(n,e,t,r,i,o){o.register(()=>{e.interruptDurationSetting()});let a=new xr(n,t,r.getBufferTypes());o.register(()=>{a.dispose()}),a.addEventListener("warning",d=>i.onWarning(d)),a.addEventListener("periodChange",d=>i.onPeriodChanged(d)),a.addEventListener("endingPositionChange",d=>{e.setDuration(d.endingPosition,d.isEnd)}),a.addEventListener("endOfStream",()=>{m.debug("Init: end-of-stream order received."),e.maintainEndOfStream()}),a.addEventListener("resumeStream",()=>{e.stopEndOfStream()});let s=a.getCurrentEndingTime();return e.setDuration(s.endingPosition,s.isEnd),a}var wr=class{constructor(e){this._segmentSinksStore=e,this._currentFreezeTimestamp=null}needToReload(e){let{readyState:t,rebuffering:r,freezing:i}=e;if((e.bufferGap!==void 0&&isFinite(e.bufferGap)?e.bufferGap:0)<6||r===null&&i===null||t>1)return this._currentFreezeTimestamp=null,!1;let a=V();this._currentFreezeTimestamp===null&&(this._currentFreezeTimestamp=a);let s=r!==null&&a-r.timestamp>4e3,d=i!==null&&a-i.timestamp>4e3;if((s||d)&&V()-this._currentFreezeTimestamp>4e3){let u=this._segmentSinksStore.getStatus("audio"),c=this._segmentSinksStore.getStatus("video"),l=!0,f=!0;for(let p of[u,c])if(p.type==="initialized")for(let g of p.value.getLastKnownInventory()){let{representation:S}=g.infos;if(S.decipherable===!1)return m.warn("Init: we have undecipherable segments left in the buffer, reloading"),this._currentFreezeTimestamp=null,!0;S.contentProtections!==void 0&&(f=!1,S.decipherable!==!0&&(l=!1))}if(!f&&l)return m.warn("Init: we are frozen despite only having decipherable segments left in the buffer, reloading"),this._currentFreezeTimestamp=null,!0}return!1}};function _o({segmentSink:n,playbackObserver:e,maxBufferBehind:t,maxBufferAhead:r},i){let o,a=[];e.listen(d=>{o=d.position.getWanted(),a=d.buffered[n.bufferType],s()},{includeLastObservation:!0,clearSignal:i});function s(){a!==null&&Np(n,o,a,t.getValue(),r.getValue(),i).catch(d=>{let u=d instanceof Error?d.message:"Unknown error";m.error("Could not run BufferGarbageCollector:",u)})}t.onUpdate(s,{clearSignal:i}),r.onUpdate(s,{clearSignal:i}),s()}async function Np(n,e,t,r,i,o){if(!isFinite(r)&&!isFinite(i))return Promise.resolve();let a=[],{innerRange:s,outerRanges:d}=Dl(t,e),u=()=>{if(isFinite(r)){for(let l of d)e-r>=l.end?a.push(l):e>=l.end&&e-r>l.start&&e-r<l.end&&a.push({start:l.start,end:e-r});_(s)||e-r>s.start&&a.push({start:s.start,end:e-r})}},c=()=>{if(isFinite(i)){for(let l of d)e+i<=l.start?a.push(l):e<=l.start&&e+i<l.end&&e+i>l.start&&a.push({start:e+i,end:l.end});_(s)||e+i<s.end&&a.push({start:e+i,end:s.end})}};u(),c();for(let l of a)if(l.start<l.end){if(m.debug("GC: cleaning range from SegmentSink",l.start,l.end),o.cancellationError!==null)throw o.cancellationError;await n.removeBuffer(l.start,l.end)}}var Or=class{constructor(e,t){this._history=[],this._lifetime=e,this._maxHistoryLength=t}addBufferedSegment(e,t){let r=V();this._history.push({date:r,buffered:t,context:e}),this._cleanHistory(r)}getHistoryFor(e){return this._history.filter(t=>Et(t.context,e))}_cleanHistory(e){let t=e-this._lifetime,r=0;for(let i of this._history)if(i.date<t)r++;else break;if(r>0&&(this._history=this._history.splice(r)),this._history.length>this._maxHistoryLength){let i=this._history.length-this._maxHistoryLength;this._history=this._history.splice(i)}}};var Dr=class{constructor(){let{BUFFERED_HISTORY_RETENTION_TIME:e,BUFFERED_HISTORY_MAXIMUM_ENTRIES:t}=B.getCurrent();this._inventory=[],this._bufferedHistory=new Or(e,t)}reset(){this._inventory.length=0}synchronizeBuffered(e){var d,u,c,l,f,p,g;let t=this._inventory,r=0,i=t[0],{MINIMUM_SEGMENT_SIZE:o}=B.getCurrent(),a=i==null?void 0:i.infos.adaptation.type;if(m.hasLevel("DEBUG")){let S=e.map(I=>`${I.start}-${I.end}`).join(",");m.debug(`SI: synchronizing ${a!=null?a:"unknown"} buffered ranges:`,S)}let s=e.length;for(let S=0;S<s;S++){if(i===void 0)return;let I=e[S].start,y=e[S].end;if(y-I<o){m.warn("SI: skipped range when synchronizing because it was too small",a,I,y);continue}let T=r;for(;i!==void 0&&((d=i.bufferedEnd)!=null?d:i.end)-I<o;)i=t[++r];let v=null,E=r-T;if(E>0){let k=t[T+E-1];v={end:(u=k.bufferedEnd)!=null?u:k.end,precizeEnd:k.precizeEnd},m.debug(`SI: ${E} segments GCed.`,a);let A=t.splice(T,E);for(let C of A)C.bufferedStart===void 0&&C.bufferedEnd===void 0&&C.status!==2&&this._bufferedHistory.addBufferedSegment(C.infos,null);r=T}if(i===void 0)return;if(y-((c=i.bufferedStart)!=null?c:i.start)>=o){if(Up(i,I,v,a),r===t.length-1){ac(i,y,a);return}i=t[++r];let k=(l=i.bufferedStart)!=null?l:i.start,A=(f=i.bufferedEnd)!=null?f:i.end,C=S<s-1?e[S+1].start:void 0;for(;i!==void 0&&!(y<k||y-k<o&&A-y>=o||C!==void 0&&y-k<A-C);){let x=t[r-1];x.bufferedEnd===void 0&&(i.precizeStart?x.bufferedEnd=i.start:x.infos.segment.complete?x.bufferedEnd=x.end:x.bufferedEnd=i.start,m.debug("SI: calculating buffered end of contiguous segment",a,x.bufferedEnd,x.end)),i.bufferedStart=x.bufferedEnd,i=t[++r],i!==void 0&&(k=(p=i.bufferedStart)!=null?p:i.start,A=(g=i.bufferedEnd)!=null?g:i.end)}}let R=t[r-1];R!==void 0&&ac(R,y,a)}if(!_(i)){let{SEGMENT_SYNCHRONIZATION_DELAY:S}=B.getCurrent(),I=V();for(let y=r;y<t.length;y++){let T=t[y];I-T.insertionTs>=S&&(m.debug("SI: A segment at the end has been completely GCed",a,`${T.start}-${T.end}`),T.bufferedStart===void 0&&T.bufferedEnd===void 0&&T.status!==2&&this._bufferedHistory.addBufferedSegment(T.infos,null),t.splice(y,1),y--)}}a!==void 0&&m.hasLevel("DEBUG")&&m.debug(`SI: current ${a} inventory timeline:
2
2
  `+Bp(this._inventory))}insertChunk({period:e,adaptation:t,representation:r,segment:i,chunkSize:o,start:a,end:s},d,u){if(i.isInit)return;let c=t.type;if(a>=s){m.warn("SI: Invalid chunked inserted: starts before it ends",c,a,s);return}let l=this._inventory,f={status:d?0:2,insertionTs:u,chunkSize:o,splitted:!1,start:a,end:s,precizeStart:!1,precizeEnd:!1,bufferedStart:void 0,bufferedEnd:void 0,infos:{segment:i,period:e,adaptation:t,representation:r}};for(let g=l.length-1;g>=0;g--){let S=l[g];if(S.start<=a)if(S.end<=a){for(m.debug("SI: Pushing segment strictly after previous one.",c,a,S.end),this._inventory.splice(g+1,0,f),g+=2;g<l.length&&l[g].start<f.end;){if(l[g].end>f.end){m.debug("SI: Segment pushed updates the start of the next one",c,f.end,l[g].start),l[g].start=f.end,l[g].bufferedStart=void 0,l[g].precizeStart=l[g].precizeStart&&f.precizeEnd;return}m.debug("SI: Segment pushed removes the next one",c,a,s,l[g].start,l[g].end),l.splice(g,1)}return}else if(S.start===a)if(S.end<=s){for(m.debug("SI: Segment pushed replace another one",c,a,s,S.end),this._inventory.splice(g,1,f),g+=1;g<l.length&&l[g].start<f.end;){if(l[g].end>f.end){m.debug("SI: Segment pushed updates the start of the next one",c,f.end,l[g].start),l[g].start=f.end,l[g].bufferedStart=void 0,l[g].precizeStart=l[g].precizeStart&&f.precizeEnd;return}m.debug("SI: Segment pushed removes the next one",c,a,s,l[g].start,l[g].end),l.splice(g,1)}return}else{m.debug("SI: Segment pushed ends before another with the same start",c,a,s,S.end),l.splice(g,0,f),S.start=f.end,S.bufferedStart=void 0,S.precizeStart=S.precizeStart&&f.precizeEnd;return}else if(S.end<=f.end){for(m.debug("SI: Segment pushed updates end of previous one",c,a,s,S.start,S.end),this._inventory.splice(g+1,0,f),S.end=f.start,S.bufferedEnd=void 0,S.precizeEnd=S.precizeEnd&&f.precizeStart,g+=2;g<l.length&&l[g].start<f.end;){if(l[g].end>f.end){m.debug("SI: Segment pushed updates the start of the next one",c,f.end,l[g].start),l[g].start=f.end,l[g].bufferedStart=void 0,l[g].precizeStart=l[g].precizeStart&&f.precizeEnd;return}m.debug("SI: Segment pushed removes the next one",c,a,s,l[g].start,l[g].end),l.splice(g,1)}return}else{m.warn("SI: Segment pushed is contained in a previous one",c,a,s,S.start,S.end);let I={status:S.status,insertionTs:S.insertionTs,chunkSize:S.chunkSize,splitted:!0,start:f.end,end:S.end,precizeStart:S.precizeStart&&S.precizeEnd&&f.precizeEnd,precizeEnd:S.precizeEnd,bufferedStart:void 0,bufferedEnd:S.end,infos:S.infos};S.end=f.start,S.splitted=!0,S.bufferedEnd=void 0,S.precizeEnd=S.precizeEnd&&f.precizeStart,l.splice(g+1,0,f),l.splice(g+2,0,I);return}}let p=this._inventory[0];if(p===void 0){m.debug("SI: first segment pushed",c,a,s),this._inventory.push(f);return}if(p.start>=s)m.debug("SI: Segment pushed comes before all previous ones",c,a,s,p.start),this._inventory.splice(0,0,f);else if(p.end<=s){for(m.debug("SI: Segment pushed starts before and completely recovers the previous first one",c,a,s,p.start,p.end),this._inventory.splice(0,1,f);l.length>1&&l[1].start<f.end;){if(l[1].end>f.end){m.debug("SI: Segment pushed updates the start of the next one",c,f.end,l[1].start),l[1].start=f.end,l[1].bufferedStart=void 0,l[1].precizeStart=f.precizeEnd;return}m.debug("SI: Segment pushed removes the next one",c,a,s,l[1].start,l[1].end),l.splice(1,1)}return}else{m.debug("SI: Segment pushed start of the next one",c,a,s,p.start,p.end),p.start=s,p.bufferedStart=void 0,p.precizeStart=f.precizeEnd,this._inventory.splice(0,0,f);return}}completeSegment(e){if(e.segment.isInit)return;let t=this._inventory,r=[];for(let i=0;i<t.length;i++)if(Et(t[i].infos,e)){let o=!1;r.length>0&&(o=!0,r.length===1&&(m.warn("SI: Completed Segment is splitted.",e.segment.id,e.segment.time,e.segment.end),r[0].splitted=!0));let a=i,s=t[i].chunkSize;for(i+=1;i<t.length&&Et(t[i].infos,e);){let f=t[i].chunkSize;s!==void 0&&f!==void 0&&(s+=f),i++}let d=i-1,u=d-a,c=t[d].end,l=t[d].bufferedEnd;u>0&&(this._inventory.splice(a+1,u),i-=u),this._inventory[a].status===0&&(this._inventory[a].status=1),this._inventory[a].chunkSize=s,this._inventory[a].end=c,this._inventory[a].bufferedEnd=l,this._inventory[a].splitted=o,r.push(this._inventory[a])}if(r.length===0)m.warn("SI: Completed Segment not found",e.segment.id,e.segment.time);else for(let i of r)i.bufferedStart!==void 0&&i.bufferedEnd!==void 0?i.status!==2&&this._bufferedHistory.addBufferedSegment(i.infos,{start:i.bufferedStart,end:i.bufferedEnd}):m.debug("SI: buffered range not known after sync. Skipping history.",i.start,i.end)}getInventory(){return this._inventory}getHistoryFor(e){return this._bufferedHistory.getHistoryFor(e)}};function rs(n){if(n.bufferedStart===void 0||n.status!==1)return!1;let{start:e,end:t}=n,r=t-e,{MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE:i,MAX_MANIFEST_BUFFERED_DURATION_DIFFERENCE:o}=B.getCurrent();return Math.abs(e-n.bufferedStart)<=i&&(n.bufferedEnd===void 0||n.bufferedEnd>n.bufferedStart&&Math.abs(n.bufferedEnd-n.bufferedStart-r)<=Math.min(o,r/3))}function oc(n){if(n.bufferedEnd===void 0||!n.infos.segment.complete||n.status!==1)return!1;let{start:e,end:t}=n,r=t-e,{MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE:i,MAX_MANIFEST_BUFFERED_DURATION_DIFFERENCE:o}=B.getCurrent();return Math.abs(t-n.bufferedEnd)<=i&&n.bufferedStart!==void 0&&n.bufferedEnd>n.bufferedStart&&Math.abs(n.bufferedEnd-n.bufferedStart-r)<=Math.min(o,r/3)}function Up(n,e,t,r){let{MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE:i,MISSING_DATA_TRIGGER_SYNC_DELAY:o,SEGMENT_SYNCHRONIZATION_DELAY:a}=B.getCurrent();if(n.bufferedStart!==void 0)n.bufferedStart<e&&(m.debug("SI: Segment partially GCed at the start",r,n.bufferedStart,e),n.bufferedStart=e),!n.precizeStart&&rs(n)&&(n.start=n.bufferedStart,n.precizeStart=!0);else if(n.precizeStart)m.debug("SI: buffered start is precize start",r,n.start),n.bufferedStart=n.start;else if(t!==null&&t.end>e&&(t.precizeEnd||n.start-t.end<=i))m.debug("SI: buffered start is end of previous segment",r,e,n.start,t.end),n.bufferedStart=t.end,rs(n)&&(n.start=t.end,n.precizeStart=!0);else if(n.start-e<=i){let s=V();if(n.start-e>=o&&s-n.insertionTs<a){m.debug("SI: Ignored bufferedStart synchronization",r,e,n.start,s-n.insertionTs);return}m.debug("SI: found true buffered start",r,e,n.start),n.bufferedStart=e,rs(n)&&(n.start=e,n.precizeStart=!0)}else if(e<n.start)m.debug("SI: range start too far from expected start",r,e,n.start),n.bufferedStart=n.start;else{let s=V();if(n.start-e>=o&&s-n.insertionTs<a){m.debug("SI: Ignored bufferedStart synchronization",r,e,n.start,s-n.insertionTs);return}m.debug("SI: Segment appears immediately garbage collected at the start",r,e,n.start),n.bufferedStart=e}}function ac(n,e,t){let{MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE:r,MISSING_DATA_TRIGGER_SYNC_DELAY:i,SEGMENT_SYNCHRONIZATION_DELAY:o}=B.getCurrent();if(n.bufferedEnd!==void 0)n.bufferedEnd>e&&(m.debug("SI: Segment partially GCed at the end",t,n.bufferedEnd,e),n.bufferedEnd=e),!n.precizeEnd&&e-n.end<=r&&oc(n)&&(n.precizeEnd=!0,n.end=e);else if(n.precizeEnd)m.debug("SI: buffered end is precize end",t,n.end),n.bufferedEnd=n.end;else if(e-n.end<=r||!n.infos.segment.complete){let a=V();if(e-n.end>=i&&a-n.insertionTs<o){m.debug("SI: Ignored bufferedEnd synchronization",t,e,n.end,a-n.insertionTs);return}m.debug("SI: found true buffered end",t,e,n.end),n.bufferedEnd=e,oc(n)&&(n.end=e,n.precizeEnd=!0)}else if(e>n.end)m.debug("SI: range end too far from expected end",t,e,n.end),n.bufferedEnd=n.end;else{let a=V();if(e-n.end>=i&&a-n.insertionTs<o){m.debug("SI: Ignored bufferedEnd synchronization",t,e,n.end,a-n.insertionTs);return}m.debug("SI: Segment appears immediately garbage collected at the end",t,n.bufferedEnd,e),n.bufferedEnd=e}}function Bp(n){let e=.016666666666666666,t={},r=[],i=null,o=null;function a(d){let u=String.fromCharCode(r.length+65);return r.push({letter:u,periodId:d.period.id,representationId:d.representation.id,bitrate:d.representation.bitrate}),u}let s="";for(let d=0;d<n.length;d++){let u=n[d];if(u.bufferedStart!==void 0&&u.bufferedEnd!==void 0){let c=u.infos.period.id,l=u.infos.representation.id,f=t[c],p;f===void 0?(p=a(u.infos),t[c]={[l]:p}):f[l]===void 0?(p=a(u.infos),f[l]=p):p=f[l],i===null?s+=`${u.bufferedStart.toFixed(2)}|${p}|`:o===p?i.bufferedEnd+e<u.bufferedStart&&(s+=`${i.bufferedEnd.toFixed(2)} ~ ${u.bufferedStart.toFixed(2)}|${p}|`):s+=`${i.bufferedEnd.toFixed(2)} ~ ${u.bufferedStart.toFixed(2)}|${p}|`,i=u,o=p}}return i!==null&&(s+=String(i.end.toFixed(2))),r.forEach(d=>{var u;s+=`
3
- [${d.letter}] P: ${d.periodId} || R: ${d.representationId}(${(u=d.bitrate)!=null?u:"unknown bitrate"})`}),s}function On(n,e){for(let t=0;t<n.length;t++)if(n[t].infos.period.start>=e.start)return t>0?n[t-1]:null;return n.length>0?n[n.length-1]:null}function Dn(n,e){for(let t of n)if(t.infos.period.start>e.start)return t;return null}var sc=Dr;var Ln=class{constructor(){this._segmentInventory=new sc}synchronizeInventory(e){this._segmentInventory.synchronizeBuffered(e)}getLastKnownInventory(){return this._segmentInventory.getInventory()}getSegmentHistory(e){return this._segmentInventory.getHistoryFor(e)}};var Lr=class extends Ln{constructor(e,t,r){super(),m.info("AVSB: calling `mediaSource.addSourceBuffer`",t);let i=r.addSourceBuffer(e,t);this.bufferType=e,this._sourceBuffer=i,this._lastInitSegmentUniqueId=null,this.codec=t,this._initSegmentsMap=new Map,this._pendingOperations=[]}declareInitSegment(e,t){dc(t),this._initSegmentsMap.set(e,t)}freeInitSegment(e){this._initSegmentsMap.delete(e)}async pushChunk(e){dc(e.data.chunk),m.debug("AVSB: receiving order to push data to the SourceBuffer",this.bufferType,fn(e.inventoryInfos));let t=this._getActualDataToPush(e.data);t.length===0&&t.push(new Uint8Array);let r=Promise.all(t.map(a=>{let{codec:s,timestampOffset:d,appendWindow:u}=e.data;return m.debug("AVSB: pushing segment",this.bufferType,fn(e.inventoryInfos)),this._sourceBuffer.appendBuffer(a,{codec:s,timestampOffset:d,appendWindow:u})}));this._addToOperationQueue(r,{type:0,value:e});let i;try{i=await r}catch(a){throw this._segmentInventory.insertChunk(e.inventoryInfos,!1,V()),a}e.inventoryInfos!==null&&this._segmentInventory.insertChunk(e.inventoryInfos,!0,V());let o=i[i.length-1];return this._segmentInventory.synchronizeBuffered(o),o}async removeBuffer(e,t){m.debug("AVSB: receiving order to remove data from the SourceBuffer",this.bufferType,e,t);let r=this._sourceBuffer.remove(e,t);this._addToOperationQueue(r,{type:1,value:{start:e,end:t}});let i=await r;return this._segmentInventory.synchronizeBuffered(i),i}async signalSegmentComplete(e){if(this._pendingOperations.length>0){let{promise:t}=this._pendingOperations[this._pendingOperations.length-1];this._addToOperationQueue(t,{type:2,value:e});try{await t}catch(r){}}this._segmentInventory.completeSegment(e)}getPendingOperations(){return this._pendingOperations.map(e=>e.operation)}dispose(){try{m.debug("AVSB: Calling `dispose` on the SourceBufferInterface"),this._sourceBuffer.dispose()}catch(e){m.debug(`AVSB: Failed to dispose a ${this.bufferType} SourceBufferInterface:`,e instanceof Error?e:"")}}_getActualDataToPush(e){let t=[];if(e.initSegmentUniqueId!==null&&!this._isLastInitSegment(e.initSegmentUniqueId)){let r=this._initSegmentsMap.get(e.initSegmentUniqueId);if(r===void 0)throw new Error("Invalid initialization segment uniqueId");let i=new ArrayBuffer(r.byteLength),o=new Uint8Array(i);o.set(r instanceof ArrayBuffer?new Uint8Array(r):new Uint8Array(r.buffer)),r=o,t.push(r),this._lastInitSegmentUniqueId=e.initSegmentUniqueId}return e.chunk!==null&&t.push(e.chunk),t}_isLastInitSegment(e){return this._lastInitSegmentUniqueId===null?!1:this._lastInitSegmentUniqueId===e}_addToOperationQueue(e,t){let r={operation:t,promise:e};this._pendingOperations.push(r);let i=()=>{let o=this._pendingOperations.indexOf(r);o>=0&&this._pendingOperations.splice(o,1)};e.then(i,i)}};function dc(n){if(h.CURRENT_ENV!==h.PRODUCTION&&(typeof n!="object"||n!==null&&!(n instanceof ArrayBuffer)&&!(n.buffer instanceof ArrayBuffer)))throw new Error("Invalid data given to the AudioVideoSegmentSink")}var vo=Lr;var Nr=class extends Ln{constructor(e){m.debug("HTSB: Creating TextSegmentSink"),super(),this.bufferType="text",this._sender=e,this._pendingOperations=[],this._sender.reset()}declareInitSegment(e){m.warn("HTSB: Declaring initialization segment for Text SegmentSink",e)}freeInitSegment(e){m.warn("HTSB: Freeing initialization segment for Text SegmentSink",e)}async pushChunk(e){let{data:t}=e;Kp(t.chunk);let r=this._sender.pushTextData(Se(ce({},t),{chunk:t.chunk}));this._addToOperationQueue(r,{type:0,value:e});let i=await r;return e.inventoryInfos!==null&&this._segmentInventory.insertChunk(e.inventoryInfos,!0,V()),this._segmentInventory.synchronizeBuffered(i),i}async removeBuffer(e,t){let r=this._sender.remove(e,t);this._addToOperationQueue(r,{type:1,value:{start:e,end:t}});let i=await r;return this._segmentInventory.synchronizeBuffered(i),i}async signalSegmentComplete(e){if(this._pendingOperations.length>0){let{promise:t}=this._pendingOperations[this._pendingOperations.length-1];this._addToOperationQueue(t,{type:2,value:e});try{await t}catch(r){}}this._segmentInventory.completeSegment(e)}getPendingOperations(){return this._pendingOperations.map(e=>e.operation)}dispose(){m.debug("HTSB: Disposing TextSegmentSink"),this._sender.reset()}_addToOperationQueue(e,t){let r={operation:t,promise:e};this._pendingOperations.push(r);let i=()=>{let o=this._pendingOperations.indexOf(r);o>=0&&this._pendingOperations.splice(o,1)};e.then(i,i)}};function Kp(n){if(h.CURRENT_ENV!==h.PRODUCTION&&(typeof n!="object"||n===null||typeof n.data!="string"||typeof n.type!="string"||n.language!==void 0&&typeof n.language!="string"||n.start!==void 0&&typeof n.start!="number"||n.end!==void 0&&typeof n.end!="number"))throw new Error("Invalid format given to a TextSegmentSink")}h.CURRENT_ENV===h.DEV&&(Vp=function(e){function t(r){}});var Vp;var uc=Nr;var zp=["audio","video","text"],Ur=class n{static isNative(e){return lc(e)}constructor(e,t,r){this._mediaSource=e,this._textInterface=r,this._hasVideo=t,this._initializedSegmentSinks={},this._onNativeBufferAddedOrDisabled=[]}getBufferTypes(){let e=this.getNativeBufferTypes();return this._textInterface!==null&&e.push("text"),e}getNativeBufferTypes(){return this._hasVideo?["video","audio"]:["audio"]}getStatus(e){let t=this._initializedSegmentSinks[e];return t===void 0?{type:"uninitialized"}:t===null?{type:"disabled"}:{type:"initialized",value:t}}waitForUsableBuffers(e){return this._areNativeBuffersUsable()?Promise.resolve():ot(e,t=>{let r,i=()=>{let o=this._onNativeBufferAddedOrDisabled.indexOf(r);o>=0&&this._onNativeBufferAddedOrDisabled.splice(o,1)};return r=()=>{this._areNativeBuffersUsable()&&(i(),t())},this._onNativeBufferAddedOrDisabled.push(r),i})}disableSegmentSink(e){let t=this._initializedSegmentSinks[e];if(t===null){m.warn(`SBS: The ${e} SegmentSink was already disabled.`);return}if(t!==void 0)throw new Error("Cannot disable an active SegmentSink.");this._initializedSegmentSinks[e]=null,n.isNative(e)&&this._onNativeBufferAddedOrDisabled.forEach(r=>r())}createSegmentSink(e,t){let r=this._initializedSegmentSinks[e];if(lc(e)){if(!_(r))return r instanceof vo&&r.codec!==t?m.warn("SB: Reusing native SegmentSink with codec",r.codec,"for codec",t):m.info("SB: Reusing native SegmentSink with codec",t),r;m.info("SB: Adding native SegmentSink with codec",t);let o=e==="audio"?"audio":"video",a=new vo(o,t,this._mediaSource);return this._initializedSegmentSinks[e]=a,this._onNativeBufferAddedOrDisabled.forEach(s=>s()),a}if(!_(r))return m.info("SB: Reusing a previous custom SegmentSink for the type",e),r;let i;if(e==="text"){if(m.info("SB: Creating a new text SegmentSink"),this._textInterface===null)throw new Error("HTML Text track feature not activated");return i=new uc(this._textInterface),this._initializedSegmentSinks.text=i,i}throw m.error("SB: Unknown buffer type:",e),new Z("BUFFER_TYPE_UNKNOWN","The player wants to create a SegmentSink of an unknown type.")}disposeSegmentSink(e){let t=this._initializedSegmentSinks[e];if(_(t)){m.warn("SB: Trying to dispose a SegmentSink that does not exist");return}m.info("SB: Aborting SegmentSink",e),t.dispose(),delete this._initializedSegmentSinks[e]}disposeAll(){zp.forEach(e=>{this.getStatus(e).type==="initialized"&&this.disposeSegmentSink(e)})}_areNativeBuffersUsable(){let e=this.getNativeBufferTypes();return!(e.some(i=>this._initializedSegmentSinks[i]===void 0)||e.every(i=>this._initializedSegmentSinks[i]===null))}createSegmentSinkMetricsForType(e){var t,r;return{bufferType:e,codec:(t=this._initializedSegmentSinks[e])==null?void 0:t.codec,segmentInventory:(r=this._initializedSegmentSinks[e])==null?void 0:r.getLastKnownInventory().map(i=>Se(ce({},i),{infos:Hp(i.infos)}))}}getSegmentSinksMetrics(){return{segmentSinks:{audio:this.createSegmentSinkMetricsForType("audio"),video:this.createSegmentSinkMetricsForType("video"),text:this.createSegmentSinkMetricsForType("text")}}}};function lc(n){return n==="audio"||n==="video"}function Hp(n){return{adaptation:n.adaptation.getMetadataSnapshot(),period:n.period.getMetadataSnapshot(),representation:n.representation.getMetadataSnapshot()}}var qt=Ur;var Br=class{constructor(e){this._weakMap=new WeakMap,this._fn=e}get(e){let t=this._weakMap.get(e);if(t===void 0){let r=this._fn(e);return this._weakMap.set(e,r),r}else return t}destroy(e){this._weakMap.delete(e)}};var Fr=class extends ie{constructor(e,t,r,i){super(),this._content=e,this._currentCanceller=null,this._downloadQueue=t,this._initSegmentRequest=null,this._mediaSegmentRequest=null,this._segmentFetcher=r,this._initSegmentInfoRef=new W(void 0),this._mediaSegmentAwaitingInitMetadata=null,i||this._initSegmentInfoRef.setValue(null)}getRequestedInitSegment(){return this._initSegmentRequest===null?null:this._initSegmentRequest.segment}getRequestedMediaSegment(){return this._mediaSegmentRequest===null?null:this._mediaSegmentRequest.segment}start(){this._currentCanceller===null&&(this._currentCanceller=new F,this._downloadQueue.onUpdate(e=>{let{segmentQueue:t}=e;if(t.length>0&&t[0].segment.id===this._mediaSegmentAwaitingInitMetadata)return;let r=this._mediaSegmentRequest;if(t.length===0){if(r===null)return;m.debug("Stream: no more media segment to request. Cancelling queue.",this._content.adaptation.type),this._restartMediaSegmentDownloadingQueue();return}else if(r===null){m.debug("Stream: Media segments now need to be requested. Starting queue.",this._content.adaptation.type,t.length),this._restartMediaSegmentDownloadingQueue();return}else{let i=t[0];if(r.segment.id!==i.segment.id){m.debug("Stream: Next media segment changed, cancelling previous",this._content.adaptation.type),this._restartMediaSegmentDownloadingQueue();return}r.priority!==i.priority&&(m.debug("Stream: Priority of next media segment changed, updating",this._content.adaptation.type,r.priority,i.priority),this._segmentFetcher.updatePriority(r.request,i.priority));return}},{emitCurrentValue:!0,clearSignal:this._currentCanceller.signal}),this._downloadQueue.onUpdate(e=>{var r;let t=this._initSegmentRequest;if(e.initSegment!==null&&t!==null){e.initSegment.priority!==t.priority&&this._segmentFetcher.updatePriority(t.request,e.initSegment.priority);return}else if(((r=e.initSegment)==null?void 0:r.segment.id)===(t==null?void 0:t.segment.id))return;e.initSegment===null&&m.debug("Stream: no more init segment to request. Cancelling queue.",this._content.adaptation.type),this._restartInitSegmentDownloadingQueue(e.initSegment)},{emitCurrentValue:!0,clearSignal:this._currentCanceller.signal}))}stop(){var e;(e=this._currentCanceller)==null||e.cancel(),this._currentCanceller=null}_restartMediaSegmentDownloadingQueue(){this._mediaSegmentRequest!==null&&this._mediaSegmentRequest.canceller.cancel();let{segmentQueue:e}=this._downloadQueue.getValue(),t=e[0],r=i=>{if(this._currentCanceller!==null&&this._currentCanceller.isUsed()){this._mediaSegmentRequest=null;return}if(i===void 0){this._mediaSegmentRequest=null,this.trigger("emptyQueue",null);return}let o=new F,a=this._currentCanceller===null?Q:o.linkToSignal(this._currentCanceller.signal),{segment:s,priority:d}=i,u=Y({segment:s},this._content),c=!1,l=!1;o.signal.register(()=>{this._mediaSegmentRequest=null,!c&&(this._mediaSegmentAwaitingInitMetadata===s.id&&(this._mediaSegmentAwaitingInitMetadata=null),c=!0,l=!1)});let f=S=>{J(S.segmentType==="media","Should have loaded a media segment."),this.trigger("parsedMediaSegment",Y({},S,{segment:s}))},p=()=>{let S=this._downloadQueue.getValue().segmentQueue;if(S.length===0){c=!0,this.trigger("emptyQueue",null);return}else S[0].segment.id===s.id&&S.shift();c=!0,r(S[0])},g=this._segmentFetcher.createRequest(u,d,{onRetry:S=>{this.trigger("requestRetry",{segment:s,error:S})},beforeInterrupted(){m.info("Stream: segment request interrupted temporarly.",s.id,s.time)},onChunk:S=>{let I=this._initSegmentInfoRef.getValue();I!==void 0?f(S(I!=null?I:void 0)):(l=!0,this._initSegmentInfoRef.waitUntilDefined(y=>{f(S(y!=null?y:void 0))},{clearSignal:o.signal}))},onAllChunksReceived:()=>{l?(this._mediaSegmentAwaitingInitMetadata=s.id,this._initSegmentInfoRef.waitUntilDefined(()=>{this._mediaSegmentAwaitingInitMetadata=null,l=!1,this.trigger("fullyLoadedSegment",s)},{clearSignal:o.signal})):this.trigger("fullyLoadedSegment",s)},beforeEnded:()=>{a(),this._mediaSegmentRequest=null,l?this._initSegmentInfoRef.waitUntilDefined(p,{clearSignal:o.signal}):p()}},o.signal);g.catch(S=>{a(),c||(c=!0,this.stop(),this.trigger("error",S))}),this._mediaSegmentRequest={segment:s,priority:d,request:g,canceller:o}};r(t)}_restartInitSegmentDownloadingQueue(e){if(this._currentCanceller!==null&&this._currentCanceller.isUsed()||(this._initSegmentRequest!==null&&this._initSegmentRequest.canceller.cancel(),e===null))return;let t=new F,r=this._currentCanceller===null?Q:t.linkToSignal(this._currentCanceller.signal),{segment:i,priority:o}=e,a=Y({segment:i},this._content),s=!1,d=this._segmentFetcher.createRequest(a,o,{onRetry:u=>{this.trigger("requestRetry",{segment:i,error:u})},beforeInterrupted:()=>{m.info("Stream: init segment request interrupted temporarly.",i.id)},beforeEnded:()=>{r(),this._initSegmentRequest=null,s=!0},onChunk:u=>{var l;let c=u(void 0);J(c.segmentType==="init","Should have loaded an init segment."),this.trigger("parsedInitSegment",Y({},c,{segment:i})),c.segmentType==="init"&&this._initSegmentInfoRef.setValue((l=c.initTimescale)!=null?l:null)},onAllChunksReceived:()=>{this.trigger("fullyLoadedSegment",i)}},t.signal);d.catch(u=>{r(),s||(s=!0,this.stop(),this.trigger("error",u))}),t.signal.register(()=>{this._initSegmentRequest=null,!s&&(s=!0)}),this._initSegmentRequest={segment:i,priority:o,request:d,canceller:t}}};function is(n,e,t,r,i){let{period:o,adaptation:a,representation:s}=n,d=Wp(i,e);if(d===null){if(t===null){if(r&&o.end!==void 0&&e.end>=o.end)return{start:void 0,end:null};let l=s.index.checkDiscontinuity(e.start);if(l!==null)return{start:void 0,end:l}}return null}let u=i[d];if(u.bufferedStart!==void 0&&u.bufferedStart>e.start&&(t===null||u.infos.segment.end<=t)){let l=u.bufferedStart;return!r&&s.index.awaitSegmentBetween(e.start,l)!==!1?null:(m.debug("RS: current discontinuity encountered",a.type,u.bufferedStart),{start:void 0,end:l})}let c=Gp(i,e,d+1);if(c!==null){let l=i[c-1],f=i[c];if(t===null||f.infos.segment.end<=t){if(!r&&s.index.awaitSegmentBetween(l.infos.segment.end,f.infos.segment.time)!==!1)return null;let p=l.bufferedEnd,g=f.bufferedStart;return m.debug("RS: future discontinuity encountered",a.type,p,g),{start:p,end:g}}}if(t===null){if(r&&o.end!==void 0){if(e.end<o.end)return null;let l=qp(i,o.end);if(l!==null){let f=i[l];if(f.bufferedEnd!==void 0&&f.bufferedEnd<o.end)return m.debug("RS: discontinuity encountered at the end of the current period",a.type,f.bufferedEnd,o.end),{start:f.bufferedEnd,end:null}}}if(o.end!==void 0&&e.end>=o.end)return null;for(let l=i.length-1;l>=0;l--){let f=i[l];if(f.bufferedStart===void 0)break;if(f.bufferedStart<e.end){if(f.bufferedEnd!==void 0&&f.bufferedEnd<e.end){let p=s.index.checkDiscontinuity(e.end);if(p!==null)return{start:f.bufferedEnd,end:p}}return null}}}return null}function Wp(n,e){for(let t=0;t<n.length;t++){let r=n[t];if(r.bufferedStart===void 0||r.bufferedEnd===void 0||r.bufferedStart>=e.end)return null;if(r.bufferedEnd>e.start)return t}return null}function Gp(n,e,t){if(t<=0)return m.error("RS: Asked to check a discontinuity before the first chunk."),null;for(let r=t;r<n.length;r++){let i=n[r],o=n[r-1];if(i.bufferedStart===void 0||o.bufferedEnd===void 0||i.bufferedStart>=e.end)return null;if(i.bufferedStart-o.bufferedEnd>0)return r}return null}function qp(n,e){for(let t=n.length-1;t>=0;t--){let r=n[t];if(r.bufferedStart===void 0)return null;if(r.bufferedStart<e)return t}return null}function os({bufferedSegments:n,content:e,currentPlaybackTime:t,fastSwitchThreshold:r,getBufferedHistory:i,neededRange:o,segmentsBeingPushed:a,maxBufferSize:s}){let{adaptation:d,representation:u}=e,c=jp(n,a,s),l=u.index.getSegments(o.start,o.end-o.start),f=n.filter(R=>!cc(R.infos,e,t,r)),p=eg(f,o,i),{MINIMUM_SEGMENT_SIZE:g,MIN_BUFFER_AHEAD:S}=B.getCurrent(),I=!1,y=Math.min(1/60,g),T=!1,v=[];return{segmentsToLoad:l.filter(R=>{let k=Y({segment:R},e);if(a.length>0&&a.some(P=>Et(k,P)))return!1;let{duration:A,time:C,end:x}=R;if(R.isInit)return!0;if(I)return v.push(R),!1;if(R.complete&&A<g||a.length>0&&a.some(P=>{if(P.period.id!==e.period.id||P.adaptation.id!==e.adaptation.id)return!1;let{segment:M}=P;if(M.time-y>C)return!1;if(M.complete){if(M.end+y<x)return!1}else if(Math.abs(C-M.time)>C)return!1;return!cc(P,k,t,r)}))return!1;for(let L=0;L<p.length;L++){let P=p[L],M=P.infos.period.id===e.period.id;if(P.status===1&&M){let O=P.infos.segment;if(C-O.time>-y){if(O.complete){if(O.end-x>-y)return!1}else if(Math.abs(C-O.time)<y)return!1}}}let N=A*e.representation.bitrate;if(c-N<0&&(T=!0,C>o.start+S))return I=!0,v.push(R),!1;let D=i(k);if(D.length>1){let L=D[D.length-1],P=D[D.length-2];if(L.buffered===null&&P.buffered===null)return m.warn("Stream: Segment GCed multiple times in a row, ignoring it.","If this happens a lot and lead to unpleasant experience, please check your device's available memory. If it's low when this message is emitted, you might want to update the RxPlayer's settings (`maxBufferAhead`, `maxVideoBufferSize` etc.) so less memory is used by regular media data buffering."+d.type,u.id,R.time),!1}for(let L=0;L<p.length;L++){let P=p[L];if(P.end+y>C){let M=P.start>C+y||Yp(p,L).end<x-y;return M&&(c-=N),M}}return c-=N,!0}),segmentsOnHold:v,isBufferFull:T}}function jp(n,e,t){let r=t*8e3;return r-=e.reduce((i,o)=>{let{bitrate:a}=o.representation,{duration:s}=o.segment;return i+a*s},0),n.reduce((i,o)=>o.chunkSize!==void 0?i-o.chunkSize*8:i,r)}function Yp(n,e){let t=e+1,{MINIMUM_SEGMENT_SIZE:r}=B.getCurrent(),i=Math.min(1/60,r);for(;t<n.length-1&&n[t-1].end+i>n[t].start;)t++;return t--,n[t]}function cc(n,e,t,r){let{CONTENT_REPLACEMENT_PADDING:i}=B.getCurrent();if(n.period.id!==e.period.id)return!1;let{segment:o}=n;return o.time<t+i?!1:n.adaptation.id!==e.adaptation.id?!0:$p(n.representation,e.representation,r)}function $p(n,e,t){let r=n.bitrate,{BITRATE_REBUFFERING_RATIO:i}=B.getCurrent();if(t===void 0){let o=r*i;return e.bitrate>o}return r<t&&e.bitrate>r}function Qp(n,e,t){let{MAX_TIME_MISSING_FROM_COMPLETE_SEGMENT:r}=B.getCurrent();return n.bufferedStart===void 0||e!==null&&e.bufferedEnd!==void 0&&n.bufferedStart-e.bufferedEnd<.1?!1:t<n.bufferedStart&&n.bufferedStart-n.start>r?(m.info("Stream: The start of the wanted segment has been garbage collected",n.start,n.bufferedStart),!0):!1}function Xp(n,e,t){let{MAX_TIME_MISSING_FROM_COMPLETE_SEGMENT:r}=B.getCurrent();return n.bufferedEnd===void 0||e!==null&&e.bufferedStart!==void 0&&e.bufferedStart-n.bufferedEnd<.1?!1:t>n.bufferedEnd&&n.end-n.bufferedEnd>r?(m.info("Stream: The end of the wanted segment has been garbage collected",n.end,n.bufferedEnd),!0):!1}function Zp(n,e){var a,s;if(n.length<2)return!0;let r=(a=n[n.length-1].buffered)==null?void 0:a.start;if(e!==void 0&&r!==void 0&&e-r>.05)return!0;let o=(s=n[n.length-2].buffered)==null?void 0:s.start;return o===void 0||r===void 0?!0:Math.abs(o-r)>.01}function Jp(n,e){var a,s;if(n.length<2)return!0;let r=(a=n[n.length-1].buffered)==null?void 0:a.end;if(e!==void 0&&r!==void 0&&r-e>.05)return!0;let o=(s=n[n.length-2].buffered)==null?void 0:s.end;return o===void 0||r===void 0?!0:Math.abs(o-r)>.01}function eg(n,e,t){return n.filter((r,i,o)=>{let a=i===0?null:o[i-1],s=i>=o.length-1?null:o[i+1],d=null;if(Qp(r,a,e.start)){if(d=t(r.infos),Zp(d,r.bufferedStart))return!1;m.debug("Stream: skipping segment gc-ed at the start",r.start,r.bufferedStart)}if(Xp(r,s,e.end)){if(d=d!=null?d:t(r.infos),Jp(d,r.bufferedEnd))return!1;m.debug("Stream: skipping segment gc-ed at the end",r.end,r.bufferedEnd)}return!0})}function Kr(n,e){let t=n-e,{SEGMENT_PRIORITIES_STEPS:r}=B.getCurrent();for(let i=0;i<r.length;i++)if(t<r[i])return i;return r.length}function as(n,e,t,r,i,o,a){var C,x,N;let{representation:s}=n,d=(x=(C=t.getIsPaused())!=null?C:t.getReference().getValue().paused.pending)!=null?x:t.getReference().getValue().paused.last,u=(N=t.getPlaybackRate())!=null?N:t.getReference().getValue().speed,c=e;(d===void 0||u===void 0||d||u<=0)&&(c-=.1);let l=tg(n,c,i),f=s.index.shouldRefresh(l.start,l.end),p=a.getPendingOperations().filter(D=>D.type===2).map(D=>D.value),g=a.getLastKnownInventory(),S=t.getCurrentTime();S===void 0&&(S=t.getReference().getValue().position.getWanted());let I=a.getSegmentHistory.bind(a),{segmentsToLoad:y,segmentsOnHold:T,isBufferFull:v}=os({content:n,bufferedSegments:g,currentPlaybackTime:S,fastSwitchThreshold:r,getBufferedHistory:I,neededRange:l,segmentsBeingPushed:p,maxBufferSize:o}),E=y.map(D=>({priority:Kr(D.time,c),segment:D})),R=s.index.isInitialized()&&!s.index.isStillAwaitingFutureSegments()&&l.hasReachedPeriodEnd&&E.length===0&&T.length===0,k=null;return p.length>0&&(k=Math.min(...p.map(D=>D.segment.time))),T.length>0&&(k=k!==null?Math.min(k,T[0].time):T[0].time),E.length>0&&(k=k!==null?Math.min(k,E[0].segment.time):E[0].segment.time),{imminentDiscontinuity:is(n,l,k,R,g),hasFinishedLoading:R,neededSegments:E,isBufferFull:v,shouldRefreshManifest:f}}function tg(n,e,t){var l;let r,{manifest:i,period:o,representation:a}=n,s=a.index.getLastAvailablePosition(),d=a.index;!_(s)&&qt.isNative(n.adaptation.type)&&e>=s&&d.isInitialized()&&!d.isStillAwaitingFutureSegments()&&ng(i,o,e)?r=s-1:r=e-.1;let u=r+t,c;return!a.index.isInitialized()||a.index.isStillAwaitingFutureSegments()||o.end===void 0?c=!1:s===void 0?c=u>=o.end:s===null?c=!0:c=u>=s,{start:Math.max(r,o.start),end:Math.min(u,(l=o.end)!=null?l:1/0),hasReachedPeriodEnd:c}}function ng(n,e,t){var i;let r=n.getPeriodAfter(e);return e.containsTime(t,r)&&n.isLastPeriodKnown&&e.id===((i=n.periods[n.periods.length-1])==null?void 0:i.id)}function pn(n){return new Promise(e=>{setTimeout(e,n)})}async function Vr(n,e,t,r,i){try{return await e.pushChunk(t)}catch(o){if(i.isCancelled()&&o instanceof Ae)throw o;if(!(o instanceof it)||!o.isBufferFull){let d=o instanceof Error?o.toString():"An unknown error happened when pushing content";throw new Z("BUFFER_APPEND_ERROR",d,{tracks:[Wt(t.inventoryInfos.adaptation)]})}let{position:a}=n.getReference().getValue(),s=a.getWanted();try{m.warn("Stream: Running garbage collector");let d=Math.max(s-5,0),u=s+r.getValue()+12;if(await e.removeBuffer(0,d),await e.removeBuffer(u,Number.MAX_VALUE),await pn(200),i.cancellationError!==null)throw i.cancellationError;return await e.pushChunk(t)}catch(d){if(d instanceof Ae)throw d;let u=d instanceof Error?d.toString():"Could not clean the buffer";throw new Z("BUFFER_FULL_ERROR",u,{tracks:[Wt(t.inventoryInfos.adaptation)]})}}}async function ss({playbackObserver:n,content:e,initSegmentUniqueId:t,segment:r,segmentSink:i,bufferGoal:o},a){if(a.cancellationError!==null)throw a.cancellationError;let s=e.representation.getMimeTypeString(),d={initSegmentUniqueId:t,chunk:null,timestampOffset:0,appendWindow:[void 0,void 0],codec:s},u=Y({segment:r,chunkSize:void 0,start:0,end:0},e),c=await Vr(n,i,{data:d,inventoryInfos:u},o,a);return{content:e,segment:r,buffered:c}}async function ds({playbackObserver:n,bufferGoal:e,content:t,initSegmentUniqueId:r,parsedSegment:i,segment:o,segmentSink:a},s){var k,A;if(i.chunkData===null)return null;if(s.cancellationError!==null)throw s.cancellationError;let{chunkData:d,chunkInfos:u,chunkOffset:c,chunkSize:l,appendWindow:f}=i,p=t.representation.getMimeTypeString(),{APPEND_WINDOW_SECURITIES:g}=B.getCurrent(),S=[f[0]!==void 0?Math.max(0,f[0]-g.START):void 0,f[1]!==void 0?f[1]+g.END:void 0],I={initSegmentUniqueId:r,chunk:d,timestampOffset:c,appendWindow:S,codec:p},y=(k=u==null?void 0:u.time)!=null?k:o.time,T=(A=u==null?void 0:u.duration)!=null?A:o.duration,v=y+T;S[0]!==void 0&&(y=Math.max(y,S[0])),S[1]!==void 0&&(v=Math.min(v,S[1]));let E=Y({segment:o,chunkSize:l,start:y,end:v},t),R=await Vr(n,a,{data:I,inventoryInfos:E},e,s);return{content:t,segment:o,buffered:R}}function us({content:n,options:e,playbackObserver:t,segmentSink:r,segmentFetcher:i,terminate:o},a,s){let{period:d,adaptation:u,representation:c}=n,{bufferGoal:l,maxBufferSize:f,drmSystemId:p,fastSwitchThreshold:g}=e,S=u.type,I=new F;I.linkToSignal(s);let y=new F;y.linkToSignal(I.signal);let T={segment:c.index.getInitSegment(),uniqueId:null,isLoaded:!1};I.signal.register(()=>{T.uniqueId!==null&&r.freeInitSegment(T.uniqueId)});let v=new W({initSegment:null,segmentQueue:[]},y.signal),E=T.segment!==null;E||(T.isLoaded=!0);let R=!1;if(p!==void 0){let N=c.getEncryptionData(p);if(N.length>0&&N.every(D=>D.keyIds!==void 0)&&(R=!0,a.encryptionDataEncountered(N.map(D=>Y({content:n},D))),I.isUsed()))return}let k=new Fr(n,v,i,E);k.addEventListener("error",N=>{y.signal.isCancelled()||(I.cancel(),a.error(N))}),k.addEventListener("parsedInitSegment",C),k.addEventListener("parsedMediaSegment",C),k.addEventListener("emptyQueue",A),k.addEventListener("requestRetry",N=>{if(a.warning(N.error),y.signal.isCancelled())return;let D=N.segment,{index:L}=c;L.isSegmentStillAvailable(D)===!1?A():L.canBeOutOfSyncError(N.error,D)&&a.manifestMightBeOufOfSync()}),k.addEventListener("fullyLoadedSegment",N=>{r.signalSegmentComplete(Y({segment:N},n)).catch(x)}),k.start(),y.signal.register(()=>{k.removeEventListener(),k.stop()}),t.listen(A,{includeLastObservation:!1,clearSignal:y.signal}),n.manifest.addEventListener("manifestUpdate",A,y.signal),l.onUpdate(A,{emitCurrentValue:!1,clearSignal:y.signal}),f.onUpdate(A,{emitCurrentValue:!1,clearSignal:y.signal}),o.onUpdate(A,{emitCurrentValue:!1,clearSignal:y.signal}),A();return;function A(){if(y.isUsed())return;let N=t.getReference().getValue(),D=N.position.getWanted(),L=as(n,D,t,g.getValue(),l.getValue(),f.getValue(),r),{neededSegments:P}=L,M=null;if(c.index.isInitialized()){if(P.length>0&&!T.isLoaded&&T.segment!==null){let H=P[0].priority;M={segment:T.segment,priority:H}}}else if(T.segment===null)m.warn("Stream: Uninitialized index without an initialization segment");else if(T.isLoaded)m.warn("Stream: Uninitialized index with an already loaded initialization segment");else{let H=N.position.getWanted();M={segment:T.segment,priority:Kr(d.start,H)}}let O=o.getValue();if(O===null)v.setValue({initSegment:M,segmentQueue:P});else if(O.urgent){m.debug("Stream: Urgent switch, terminate now.",S),v.setValue({initSegment:null,segmentQueue:[]}),v.finish(),y.cancel(),a.terminating();return}else{let H=P[0],q=k.getRequestedInitSegment(),G=k.getRequestedMediaSegment(),K=G===null||H===void 0||G.id!==H.segment.id?[]:[H],ne=q===null?null:M;if(v.setValue({initSegment:ne,segmentQueue:K}),K.length===0&&ne===null){m.debug("Stream: No request left, terminate",S),v.finish(),y.cancel(),a.terminating();return}}if(a.streamStatusUpdate({period:d,position:N.position.getWanted(),bufferType:S,imminentDiscontinuity:L.imminentDiscontinuity,isEmptyStream:!1,hasFinishedLoading:L.hasFinishedLoading,neededSegments:L.neededSegments}),y.signal.isCancelled())return;let{UPTO_CURRENT_POSITION_CLEANUP:U}=B.getCurrent();if(L.isBufferFull){let H=Math.max(0,D-U);H>0&&r.removeBuffer(0,H).catch(x)}L.shouldRefreshManifest&&a.needsManifestRefresh()}function C(N){if(!I.isUsed()){for(let D of N.protectionData)c.addProtectionData(D.initDataType,D.keyId,D.initData);if(!R){let D=c.getAllEncryptionData();if(D.length>0&&(a.encryptionDataEncountered(D.map(L=>Y({content:n},L))),R=!0,I.isUsed()))return}if(N.segmentType==="init"){if(!c.index.isInitialized()&&N.segmentList!==void 0&&c.index.initialize(N.segmentList),T.isLoaded=!0,N.initializationData!==null){let D=c.uniqueId;T.uniqueId=D,r.declareInitSegment(D,N.initializationData),ss({playbackObserver:t,bufferGoal:l,content:n,initSegmentUniqueId:D,segment:N.segment,segmentData:N.initializationData,segmentSink:r},I.signal).then(L=>{L!==null&&a.addedSegment(L)}).catch(x)}A();return}else{let{inbandEvents:D,predictedSegments:L,needsManifestRefresh:P}=N;if(L!==void 0&&c.index.addPredictedSegments(L,N.segment),P===!0&&(a.needsManifestRefresh(),I.isUsed())||D!==void 0&&D.length>0&&(a.inbandEvent(D),I.isUsed()))return;let M=T.uniqueId;ds({playbackObserver:t,bufferGoal:l,content:n,initSegmentUniqueId:M,parsedSegment:N,segment:N.segment,segmentSink:r},I.signal).then(O=>{O!==null&&a.addedSegment(O)}).catch(x)}}}function x(N){I.isUsed()&&N instanceof Ae||(I.cancel(),a.error(N))}}var fc=us;function ls(n,e,t,r,i){var f,p,g,S;if(t.switchingMode==="lazy")return{type:"continue",value:void 0};let o=r.getLastKnownInventory(),a=[];for(let I of o)I.infos.period.id===n.id&&(I.infos.adaptation.id!==e.id||!$(t.representationIds,I.infos.representation.id))&&Vt(a,{start:(f=I.bufferedStart)!=null?f:I.start,end:(p=I.bufferedEnd)!=null?p:I.end});let s=r.getPendingOperations();for(let I of s)if(I.type===0){let y=I.value.inventoryInfos;if(y.period.id===n.id&&(y.adaptation.id!==e.id||!$(t.representationIds,y.representation.id))){let T=y.segment.time,v=T+y.segment.duration;Vt(a,{start:T,end:v})}}if(a.length===0)return{type:"continue",value:void 0};if(t.switchingMode==="reload"){let I=i.getReadyState();if(I===void 0||I>1)return{type:"needs-reload",value:void 0}}let d=t.switchingMode==="direct",u=[],c=On(o,n);if(c!==null&&(c.bufferedEnd===void 0||n.start-c.bufferedEnd<1)&&u.push({start:0,end:n.start+1}),!d){let{ADAP_REP_SWITCH_BUFFER_PADDINGS:I}=B.getCurrent(),y=e.type,T=(g=I[y].before)!=null?g:0,v=(S=I[y].after)!=null?S:0,E=i.getCurrentTime();E===void 0&&(E=i.getReference().getValue().position.getPolled()),u.push({start:E-T,end:E+v})}if(n.end!==void 0){let I=Dn(o,n);I!==null&&(I.bufferedStart===void 0||I.bufferedStart-n.end<1)&&u.push({start:n.end-1,end:Number.MAX_VALUE})}let l=uo(a,u);return l.length===0?{type:"continue",value:void 0}:d?{type:"flush-buffer",value:l}:{type:"clean-buffer",value:l}}function cs({playbackObserver:n,content:e,options:t,representationEstimator:r,segmentSink:i,segmentFetcherCreator:o,wantedBufferAhead:a,maxVideoBufferSize:s},d,u){let{manifest:c,period:l,adaptation:f}=e,p=new F;p.linkToSignal(u);let g=new Map,S=new W(null,p.signal),I,y=e.representations.getValue().representationIds,T=e.adaptation.representations.filter(P=>$(y,P.id)&&P.decipherable!==!1&&P.isSupported!==!1),v=new W(T,p.signal),{estimates:E,callbacks:R}=r({manifest:c,period:l,adaptation:f},S,v,n,p.signal),k=o.createSegmentFetcher(f.type,{onRequestBegin:R.requestBegin,onRequestEnd:R.requestEnd,onProgress:R.requestProgress,onMetrics:R.metrics}),A=new W(0);E.onUpdate(({bitrate:P,knownStableBitrate:M})=>{t.enableFastSwitching&&A.setValueIfChanged(M),!(P===void 0||P===I)&&(I=P,m.debug(`Stream: new ${f.type} bitrate estimate`,P),d.bitrateEstimateChange({type:f.type,bitrate:P}))},{emitCurrentValue:!0,clearSignal:p.signal});let C;e.representations.onUpdate(P=>{C!==void 0&&C.cancel();let M=e.representations.getValue().representationIds,O=e.adaptation.representations.filter(U=>$(M,U.id));v.setValueIfChanged(O),C=new F,C.linkToSignal(p.signal),x(P,C.signal).catch(U=>{(C==null?void 0:C.isUsed())===!0&&F.isCancellationError(U)||(p.cancel(),d.error(U))})},{clearSignal:p.signal,emitCurrentValue:!0});return;async function x(P,M){let O=ls(l,f,P,i,n);switch(O.type){case"continue":break;case"needs-reload":return Tt(()=>{n.listen(()=>{if(M.isCancelled())return;let{DELTA_POSITION_AFTER_RELOAD:U}=B.getCurrent(),H=U.bitrateSwitch;return d.waitingMediaSourceReload({bufferType:f.type,period:l,timeOffset:H,stayInPeriod:!0})},{includeLastObservation:!0,clearSignal:M})});case"flush-buffer":case"clean-buffer":for(let U of O.value)if(await i.removeBuffer(U.start,U.end),M.isCancelled())return;if(O.type==="flush-buffer"&&(d.needsBufferFlush(),M.isCancelled()))return;break;default:Xe(O)}N(M)}function N(P){let M=new F;M.linkToSignal(P);let{representation:O}=E.getValue();if(O===null)return;let U=new W(null,M.signal);E.onUpdate(G=>{if(!(G.representation===null||G.representation.id===O.id))return G.urgent?(m.info("Stream: urgent Representation switch",f.type),U.setValue({urgent:!0})):(m.info("Stream: slow Representation switch",f.type),U.setValue({urgent:!1}))},{clearSignal:M.signal,emitCurrentValue:!0});let H={type:f.type,adaptation:f,period:l,representation:O};if(S.setValue(O),p.isUsed()||(d.representationChange(H),p.isUsed()))return;let q={streamStatusUpdate:d.streamStatusUpdate,encryptionDataEncountered:d.encryptionDataEncountered,manifestMightBeOufOfSync:d.manifestMightBeOufOfSync,needsManifestRefresh:d.needsManifestRefresh,inbandEvent:d.inbandEvent,warning:d.warning,error(G){p.cancel(),d.error(G)},addedSegment(G){R.addedSegment(G)},terminating(){if(!M.isUsed())return M.cancel(),N(P)}};D(O,U,q,P)}function D(P,M,O,U){let H=new F;H.linkToSignal(U);let q=dn(a,ne=>ne*L(P),H.signal),G=f.type==="video"?s:new W(1/0);m.info("Stream: changing representation",f.type,P.id,P.bitrate);let K=Y({},O,{error(ne){var se;let j=xe(ne,{defaultCode:"NONE",defaultReason:"Unknown `RepresentationStream` error"});if(j.code!=="BUFFER_FULL_ERROR")O.error(ne);else{let oe=a.getValue(),ae=((se=g.get(P.id))!=null?se:1)*.7;if(ae<=.05||oe*ae<=2)throw j;g.set(P.id,ae),Gt(4e3,p.signal).then(()=>D(P,M,O,U)).catch(Q)}},terminating(){H.cancel(),O.terminating()}});fc({playbackObserver:n,content:{representation:P,adaptation:f,period:l,manifest:c},segmentSink:i,segmentFetcher:k,terminate:M,options:{bufferGoal:q,maxBufferSize:G,drmSystemId:t.drmSystemId,fastSwitchThreshold:A}},K,U),c.addEventListener("manifestUpdate",ne=>{for(let j of ne.updatedPeriods)if(j.period.id===l.id){for(let se of j.result.updatedAdaptations)if(se.adaptation===f.id){for(let oe of se.removedRepresentations)if(oe===P.id)return U.isCancelled()?void 0:d.waitingMediaSourceReload({bufferType:f.type,period:l,timeOffset:0,stayInPeriod:!0})}}else if(j.period.start>l.start)break},U)}function L(P){let M=g.get(P.id),O=M!==void 0?M:1;return M===void 0&&g.set(P.id,O),O}}var mc=cs;function qe(n,e,t){if(typeof String.prototype.startsWith=="function")return n.startsWith(e,t);let r=typeof t=="number"?Math.max(t,0):0;return n.substring(r,r+e.length)===e}function rg(n,e){let[t,...r]=n.split(";"),[i,...o]=e.split(";");if(t!==i)return!1;let a=X(r,c=>qe(c,"codecs=")),s=X(o,c=>qe(c,"codecs="));if(a===void 0||s===void 0)return!1;let d=a.substring(7),u=s.substring(7);return d.split(".")[0]===u.split(".")[0]}var pc=rg;function fs(n,e,t,r,i,o){var p,g,S,I;if(n.codec!==void 0&&o.onCodecSwitch==="reload"&&!ig(t,n.codec))return{type:"needs-reload",value:void 0};let a=n.getLastKnownInventory(),s=[];for(let y of a)y.infos.period.id===e.id&&y.infos.adaptation.id!==t.id&&Vt(s,{start:(p=y.bufferedStart)!=null?p:y.start,end:(g=y.bufferedEnd)!=null?g:y.end});let d=n.getPendingOperations();for(let y of d)if(y.type===0){let T=y.value.inventoryInfos;if(T.period.id===e.id&&T.adaptation.id!==t.id){let v=T.segment.time,E=v+T.segment.duration;Vt(s,{start:v,end:E})}}if(s.length===0)return{type:"continue",value:void 0};if(r==="reload"){let y=i.getReadyState();if(y===void 0||y>1)return{type:"needs-reload",value:void 0}}let u=r==="direct",c=[],l=On(a,e);if(l!==null&&(l.bufferedEnd===void 0||e.start-l.bufferedEnd<1)&&c.push({start:0,end:e.start+1}),!u){let y=t.type,{ADAP_REP_SWITCH_BUFFER_PADDINGS:T}=B.getCurrent(),v=(S=T[y].before)!=null?S:0,E=(I=T[y].after)!=null?I:0,R=i.getCurrentTime();R===void 0&&(R=i.getReference().getValue().position.getPolled()),c.push({start:R-v,end:R+E})}if(e.end!==void 0){let y=Dn(a,e);y!==null&&(y.bufferedStart===void 0||y.bufferedStart-e.end<1)&&c.push({start:e.end-1,end:Number.MAX_VALUE})}let f=uo(s,c);return f.length===0?{type:"continue",value:void 0}:u&&t.type!=="text"?{type:"flush-buffer",value:f}:{type:"clean-buffer",value:f}}function ig(n,e){return n.representations.some(t=>t.isSupported===!0&&t.decipherable!==!1&&pc(t.getMimeTypeString(),e))}function ms({bufferType:n,content:e,garbageCollectors:t,playbackObserver:r,representationEstimator:i,segmentFetcherCreator:o,segmentSinksStore:a,options:s,wantedBufferAhead:d,maxVideoBufferSize:u},c,l){let{manifest:f,period:p}=e,g=new W(void 0,l);if(c.periodStreamReady({type:n,manifest:f,period:p,adaptationRef:g}),l.isCancelled())return;let S,I=!0;g.onUpdate(v=>{(async()=>{var P;if(v===void 0)return;let E=new F;if(E.linkToSignal(l),S==null||S.cancel(),S=E,v===null){m.info(`Stream: Set no ${n} Adaptation. P:`,p.start);let M=a.getStatus(n);if(M.type==="initialized"){if(m.info(`Stream: Clearing previous ${n} SegmentSink`),qt.isNative(n))return T(0,!0,E.signal);{let O=(P=p.end)!=null?P:1/0;if(p.start>O)m.warn("Stream: Can't free buffer: period's start is after its end");else if(await M.value.removeBuffer(p.start,O),E.isUsed())return}}else if(M.type==="uninitialized"&&(a.disableSegmentSink(n),E.isUsed()))return;return c.adaptationChange({type:n,adaptation:null,period:p}),E.isUsed()?void 0:gc(r,d,n,{period:p},c,E.signal)}let R=p.adaptations[n],k=X(R!=null?R:[],M=>M.id===v.adaptationId);if(k===void 0){S.cancel(),m.warn("Stream: Unfound chosen Adaptation choice",v.adaptationId);return}let{DELTA_POSITION_AFTER_RELOAD:A}=B.getCurrent(),C=!1,x;if(I)x=0;else if(v.relativeResumingPosition!==void 0)x=v.relativeResumingPosition;else switch(C=!0,n){case"audio":x=A.trackSwitch.audio;break;case"video":x=A.trackSwitch.video;break;default:x=A.trackSwitch.other;break}if(I=!1,qt.isNative(n)&&a.getStatus(n).type==="disabled")return T(x,!0,E.signal);f.addEventListener("manifestUpdate",M=>{for(let O of M.updatedPeriods)if(O.period.id===p.id){for(let U of O.result.removedAdaptations)if(U.id===k.id)return T(x,!0,E.signal)}else if(O.period.start>p.start)break},S.signal);let{representations:N}=v;if(m.info(`Stream: Updating ${n} adaptation`,`A: ${k.id}`,`P: ${p.start}`),c.adaptationChange({type:n,adaptation:k,period:p}),E.isUsed())return;let D=og(a,n,k),L=fs(D,p,k,v.switchingMode,r,s);if(L.type==="needs-reload")return T(x,!0,E.signal);if(await a.waitForUsableBuffers(E.signal),!E.isUsed()){if(L.type==="flush-buffer"||L.type==="clean-buffer"){for(let{start:M,end:O}of L.value)if(await D.removeBuffer(M,O),E.isUsed())return;if(L.type==="flush-buffer"&&(c.needsBufferFlush({relativeResumingPosition:x,relativePosHasBeenDefaulted:C}),E.isUsed()))return}t.get(D)(E.signal),y(k,N,D,E.signal)}})().catch(E=>{E instanceof Ae||(S==null||S.cancel(),c.error(E))})},{clearSignal:l,emitCurrentValue:!0});function y(v,E,R,k){let A=sg(r,v.type);mc({content:{manifest:f,period:p,adaptation:v,representations:E},options:s,playbackObserver:A,representationEstimator:i,segmentSink:R,segmentFetcherCreator:o,wantedBufferAhead:d,maxVideoBufferSize:u},Se(ce({},c),{error:C}),k);function C(x){if(!qt.isNative(n)){m.error(`Stream: ${n} Stream crashed. Aborting it.`,x instanceof Error?x:""),a.disposeSegmentSink(n);let N=xe(x,{defaultCode:"NONE",defaultReason:"Unknown `AdaptationStream` error"});return c.warning(N),k.isCancelled()?void 0:gc(r,d,n,{period:p},c,k)}m.error(`Stream: ${n} Stream crashed. Stopping playback.`,x instanceof Error?x:""),c.error(x)}}function T(v,E,R){Tt(()=>{r.listen(()=>{R.isCancelled()||c.waitingMediaSourceReload({bufferType:n,period:p,timeOffset:v,stayInPeriod:E})},{includeLastObservation:!0,clearSignal:R})})}}function og(n,e,t){let r=n.getStatus(e);if(r.type==="initialized")return m.info("Stream: Reusing a previous SegmentSink for the type",e),r.value;let i=ag(t);return n.createSegmentSink(e,i)}function ag(n){let e=n.representations.filter(t=>t.isSupported===!0&&t.decipherable!==!1);if(e.length===0)throw new Z("NO_PLAYABLE_REPRESENTATION","No Representation in the chosen "+n.type+" Adaptation can be played",{tracks:[Wt(n)]});return e[0].getMimeTypeString()}function sg(n,e){return n.deriveReadOnlyObserver(function(r,i){let o=new W(a(),i);return r.onUpdate(s,{clearSignal:i,emitCurrentValue:!1}),o;function a(){let d=r.getValue(),u=d.buffered[e],c=u!==null?so(u,d.position.getWanted()):0;return Y({},d,{bufferGap:c,buffered:u})}function s(){o.setValue(a())}})}function gc(n,e,t,r,i,o){let{period:a}=r,s=!1;e.onUpdate(d,{emitCurrentValue:!1,clearSignal:o}),n.listen(d,{includeLastObservation:!1,clearSignal:o}),d();function d(){let u=n.getReference().getValue(),c=e.getValue(),l=u.position.getWanted();a.end!==void 0&&l+c>=a.end&&(m.debug('Stream: full "empty" AdaptationStream',t),s=!0),i.streamStatusUpdate({period:a,bufferType:t,imminentDiscontinuity:null,position:l,isEmptyStream:!0,hasFinishedLoading:s,neededSegments:[]})}}var hc=ms;function Ro(n,e){if(e.length===0)return[];let t=[],r=n.getLastKnownInventory();for(let i=0;i<r.length;i++){let o=r[i];if(e.some(s=>o.infos.period.id===s.period.id&&o.infos.adaptation.id===s.adaptation.id&&o.infos.representation.id===s.representation.id)){let{bufferedStart:s,bufferedEnd:d}=o;if(s===void 0||d===void 0)return m.warn("SO: No buffered start or end found from a segment."),[{start:0,end:Number.MAX_VALUE}];let u=t[t.length-1];u!==void 0&&u.end===s?u.end=d:t.push({start:s,end:d})}}return t}function ps(n,e,t,r,i,o,a,s){let{manifest:d,initialPeriod:u}=n,{maxBufferAhead:c,maxBufferBehind:l,wantedBufferAhead:f,maxVideoBufferSize:p}=o,{MINIMUM_MAX_BUFFER_AHEAD:g,MAXIMUM_MAX_BUFFER_AHEAD:S,MAXIMUM_MAX_BUFFER_BEHIND:I}=B.getCurrent(),y=new Br(E=>{var C,x;let{bufferType:R}=E,k=(C=I[R])!=null?C:1/0,A=(x=S[R])!=null?x:1/0;return N=>{_o({segmentSink:E,playbackObserver:e,maxBufferBehind:dn(l,D=>Math.min(D,k),N),maxBufferAhead:dn(c,D=>{var P;let L=Math.max(D,(P=g[R])!=null?P:0);return Math.min(L,A)},N)},N)}});for(let E of r.getBufferTypes())T(E,u);function T(E,R){let k=new mn((L,P)=>L.start-P.start),A=!1,C=new F;return C.linkToSignal(s),e.listen(({position:L})=>{var O;let P=L.getWanted();if(!A||!N(P))return;for(m.info("Stream: Destroying all PeriodStreams due to out of bounds situation",E,P),A=!1;k.length()>0;){let U=k.get(k.length()-1);k.removeElement(U),a.periodStreamCleared({type:E,manifest:d,period:U})}C.cancel(),C=new F,C.linkToSignal(s);let M=(O=d.getPeriodForTime(P))!=null?O:d.getNextPeriod(P);if(M===void 0){m.warn("Stream: The wanted position is not found in the Manifest."),A=!0;return}x(M)},{clearSignal:s,includeLastObservation:!0}),d.addEventListener("decipherabilityUpdate",L=>{s.isCancelled()||D(L).catch(P=>{s.isCancelled()||(C.cancel(),a.error(P))})},s),x(R);function x(L){let P=Se(ce({},a),{waitingMediaSourceReload(M){let O=k.head();O===void 0||O.id!==M.period.id?a.lockedStream({bufferType:M.bufferType,period:M.period}):a.needsMediaSourceReload({timeOffset:M.timeOffset,minimumPosition:M.stayInPeriod?M.period.start:void 0,maximumPosition:M.stayInPeriod?M.period.end:void 0})},periodStreamReady(M){A=!0,k.add(M.period),a.periodStreamReady(M)},periodStreamCleared(M){k.removeElement(M.period),a.periodStreamCleared(M)},error(M){C.cancel(),a.error(M)}});v(E,L,P,C.signal)}function N(L){let P=k.head(),M=k.last();return P===void 0||M===void 0?!0:P.start>L||(_(M.end)?1/0:M.end)<L}async function D(L){let P=r.getStatus(E),M=L.filter(K=>K.adaptation.type===E);if(M.length===0||P.type!=="initialized"||M.every(K=>K.representation.decipherable===!0))return;let O=P.value,U=M.filter(K=>K.representation.decipherable===void 0),H=M.filter(K=>K.representation.decipherable===!1),q=Ro(O,H),G=Ro(O,U);for(A=!1,m.info("Stream: Destroying all PeriodStreams for decipherability matters",E);k.length()>0;){let K=k.get(k.length()-1);k.removeElement(K),a.periodStreamCleared({type:E,manifest:d,period:K})}C.cancel(),C=new F,C.linkToSignal(s);for(let{start:K,end:ne}of[...q,...G]){if(s.isCancelled())return;if(K<ne){if(s.isCancelled())return;await O.removeBuffer(K,ne)}}Tt(()=>{if(s.isCancelled())return;let K=e.getReference().getValue();if(Ic(K,q)){if(a.needsDecipherabilityFlush(),s.isCancelled())return}else if(Ic(K,G)&&(a.needsBufferFlush(),s.isCancelled()))return;let ne=K.position.getWanted(),j=d.getPeriodForTime(ne);if(j===void 0){a.error(new Z("MEDIA_TIME_NOT_FOUND","The wanted position is not found in the Manifest."));return}x(j)})}}function v(E,R,k,A){m.info("Stream: Creating new Stream for",E,R.start);let C=null,x=new F;x.linkToSignal(A),e.listen(({position:M},O)=>{if(R.end!==void 0&&M.getWanted()>=R.end){let U=d.getPeriodAfter(R);if(R.containsTime(M.getWanted(),U))return;m.info("Stream: Destroying PeriodStream as the current playhead moved above it",E,R.start,M.getWanted(),R.end),O(),k.periodStreamCleared({type:E,manifest:d,period:R}),x.cancel()}},{clearSignal:A,includeLastObservation:!0});let N={bufferType:E,content:{manifest:d,period:R},garbageCollectors:y,maxVideoBufferSize:p,segmentFetcherCreator:i,segmentSinksStore:r,options:o,playbackObserver:e,representationEstimator:t,wantedBufferAhead:f},D=Se(ce({},k),{streamStatusUpdate(M){if(M.hasFinishedLoading){let O=d.getPeriodAfter(R);O!==null&&L(O)}else C!==null&&(m.info("Stream: Destroying next PeriodStream due to current one being active",E,C.period.start),k.periodStreamCleared({type:E,manifest:d,period:C.period}),C.canceller.cancel(),C=null);k.streamStatusUpdate(M)},error(M){C!==null&&(C.canceller.cancel(),C=null),x.cancel(),k.error(M)}});hc(N,D,x.signal),P(x.signal);function L(M){if(C!==null){if(C.period.id===M.id)return;m.warn("Stream: Creating next `PeriodStream` while one was already created.",E,M.id,C.period.id),k.periodStreamCleared({type:E,manifest:d,period:C.period}),C.canceller.cancel()}let O=new F;O.linkToSignal(A),C={canceller:O,period:M},v(E,M,k,C.canceller.signal)}function P(M){d.addEventListener("manifestUpdate",O=>{for(let U of O.removedPeriods)if(U.id===R.id){if(d.periods.length>0&&d.periods[0].start<=U.start)return Tt(()=>{if(!M.isCancelled())return a.needsMediaSourceReload({timeOffset:0,minimumPosition:void 0,maximumPosition:void 0})})}else if(U.start>R.start)break;if(O.addedPeriods.length>0&&C!==null){let U=d.getPeriodAfter(R);(U===null||C.period.id!==U.id)&&(m.warn("Stream: Destroying next PeriodStream due to new one being added",E,C.period.start),k.periodStreamCleared({type:E,manifest:d,period:C.period}),C.canceller.cancel(),C=null)}},M)}}}function Ic(n,e){if(e.length===0)return!1;let t=n.position.getPolled();return n.speed>=0?e[e.length-1].end>=t-5:e[0].start<=t+5}var yc=ps;var Sc=yc;var dg={createSync(n){return{syncValue:n,getValueAsAsync(){return Promise.resolve(n)}}},createAsync(n){let e=null;return n.then(t=>{e=t},Q),{syncValue:e,getValueAsAsync(){return n}}}},bc=dg;function gs(){return rn}function hs(){return ar}function zr(n,e,t){let r=n.setMediaKeys(e,t).then(()=>{m.info("Compat: MediaKeys updated with success")}).catch(i=>{if(t===null){m.error("Compat: Could not reset MediaKeys",i instanceof Error?i:"Unknown Error");return}throw m.error("Compat: Could not update MediaKeys",i instanceof Error?i:"Unknown Error"),i});return hs()?r:Promise.race([r,pn(1e3)])}var Is=new WeakMap,Le={setState(n,e){Is.set(n,e)},getState(n){let e=Is.get(n);return e===void 0?null:e},clearState(n){Is.set(n,null)}};async function Nn(n){let e=Le.getState(n);if(e===null)return;m.info("DRM: Disposing of the current MediaKeys");let{loadedSessionsStore:t}=e;return Le.clearState(n),await t.closeAllSessions(),zr(e.emeImplementation,n,null)}function ko(n){if(m.info("DRM: Clearing-up DRM session."),gs())return m.info("DRM: disposing current MediaKeys."),Nn(n);let e=Le.getState(n);return e!==null&&e.keySystemOptions.closeSessionsOnStop===!0?(m.info("DRM: closing all current sessions."),e.loadedSessionsStore.closeAllSessions()):(m.info("DRM: Nothing to clear. Returning right away. No state =",e===null),Promise.resolve())}function Po(n){let e=new F;return Promise.race([n.close().then(()=>{e.cancel()}),n.closed.then(()=>{e.cancel()}),t()]);async function t(){try{await Gt(1e3,e.signal),await r()}catch(i){if(i instanceof Ae)return;let o=i instanceof Error?i.message:"Unknown error made it impossible to close the session";m.error(`DRM: ${o}`)}}async function r(){try{await n.update(new Uint8Array(1))}catch(i){if(e.isUsed()||i instanceof Error&&i.message==="The session is already closed.")return;await Gt(1e3,e.signal)}if(!e.isUsed())throw new Error("Compat: Couldn't know if session is closed")}}var ug=["","webkit","moz","ms"];function lg(n,e){let t=document.createElement(n.tagName),r="on"+e;return r in t?!0:(t.setAttribute(r,"return;"),typeof t[r]=="function")}function cg(n,e){return e.filter(t=>lg(n,t))[0]}function fg(n,e){return n.reduce((t,r)=>t.concat((e===void 0?ug:e).map(i=>i+r)),[])}function Ie(n,e){let t,r=fg(n,e);return(i,o,a)=>{if(!a.isCancelled()){if(typeof HTMLElement!="undefined"&&i instanceof HTMLElement)if(typeof t=="undefined"&&(t=cg(i,r)),w(t))i.addEventListener(t,o),a.register(()=>{t!==void 0&&i.removeEventListener(t,o)});else{h.CURRENT_ENV===h.DEV&&m.warn(`compat: element ${i.tagName} does not support any of these events: `+r.join(", "));return}r.forEach(s=>{let d=!1;typeof i.addEventListener=="function"?i.addEventListener(s,o):(d=!0,i["on"+s]=o),a.register(()=>{typeof i.removeEventListener=="function"&&i.removeEventListener(s,o),d&&delete i["on"+s]})})}}}function mg(n){let e,t=document;_(t.hidden)?_(t.mozHidden)?_(t.msHidden)?_(t.webkitHidden)||(e="webkit"):e="ms":e="moz":e="";let r=w(e)?e+"Hidden":"hidden",i=w(e)?e+"visibilitychange":"visibilitychange",o=document[r],a=new W(!o,n);return gn(document,i,()=>{let s=!document[r];a.setValueIfChanged(s)},n),a}function Tc(n,e){let t=n;if(t.webkitSupportsPresentationMode===!0&&typeof t.webkitSetPresentationMode=="function"){let o=t.webkitPresentationMode==="picture-in-picture",a=new W({isEnabled:o,pipWindow:null},e);return gn(t,"webkitpresentationmodechanged",()=>{let s=t.webkitPresentationMode==="picture-in-picture";a.setValue({isEnabled:s,pipWindow:null})},e),a}let r=document.pictureInPictureElement===t,i=new W({isEnabled:r,pipWindow:null},e);return gn(t,"enterpictureinpicture",o=>{var a;i.setValue({isEnabled:!0,pipWindow:(a=o.pictureInPictureWindow)!=null?a:null})},e),gn(t,"leavepictureinpicture",()=>{i.setValue({isEnabled:!1,pipWindow:null})},e),i}function _c(n,e){let t=mg(e),r,i=new W(!0,e);return e.register(()=>{clearTimeout(r),r=void 0}),t.onUpdate(o,{clearSignal:e}),n.onUpdate(o,{clearSignal:e}),o(),i;function o(){if(clearTimeout(r),r=void 0,n.getValue().isEnabled||t.getValue())i.setValueIfChanged(!0);else{let{INACTIVITY_DELAY:a}=B.getCurrent();r=setTimeout(()=>{i.setValueIfChanged(!1)},a)}}}function Ec(n){var o,a;let e=_(re.devicePixelRatio)||re.devicePixelRatio===0?1:re.devicePixelRatio,t=new W({width:(o=re.screen)==null?void 0:o.width,height:(a=re.screen)==null?void 0:a.height,pixelRatio:e},n),r=setInterval(i,2e4);return n.register(function(){clearInterval(r)}),t;function i(){let s=t.getValue();(s.width!==screen.width||s.height!==screen.height||s.pixelRatio!==e)&&t.setValue({width:screen.width,height:screen.height,pixelRatio:e})}}function vc(n,e,t){let r=_(re.devicePixelRatio)||re.devicePixelRatio===0?1:re.devicePixelRatio,i=new W({width:n.clientWidth,height:n.clientHeight,pixelRatio:r},t),o=Q;e.onUpdate(s,{clearSignal:t}),gn(re,"resize",s,t),gn(n,"enterpictureinpicture",s,t),gn(n,"leavepictureinpicture",s,t);let a=setInterval(s,2e4);return s(),t.register(function(){o(),clearInterval(a)}),i;function s(){o();let d=e.getValue(),{pipWindow:u}=d;if(d.isEnabled)if(_(u)){let l=i.getValue();(l.width!==void 0||l.height!==void 0||l.pixelRatio!==r)&&i.setValue({width:void 0,height:void 0,pixelRatio:r})}else{let l=()=>{c()};u.addEventListener("resize",l),o=()=>{u.removeEventListener("resize",l),o=Q},c()}else{let l=i.getValue();(l.width!==n.clientWidth||l.height!==n.clientHeight||l.pixelRatio!==r)&&i.setValue({width:n.clientWidth,height:n.clientHeight,pixelRatio:r})}function c(){let l=i.getValue();(l.width!==(u==null?void 0:u.width)||l.height!==(u==null?void 0:u.height)||l.pixelRatio!==r)&&i.setValue({width:u==null?void 0:u.width,height:u==null?void 0:u.height,pixelRatio:r})}}}var W0=Ie(["loadedmetadata"]),G0=Ie(["timeupdate"]),q0=Ie(["addtrack"]),j0=Ie(["removetrack"]),Un=Ie(["sourceopen","webkitsourceopen"]),Ao=Ie(["sourceclose","webkitsourceclose"]),Co=Ie(["sourceended","webkitsourceended"]),Rc=Ie(["update"]),kc=Ie(["removesourcebuffer"]),Mo=Ie(["keymessage","message"]),Pc=Ie(["keyadded","ready"]),xo=Ie(["keyerror","error"]),Ac=Ie(["keystatuseschange"]),Cc=Ie(["seeking"]),Mc=Ie(["seeked"]),xc=Ie(["ended"]);function gn(n,e,t,r){n.addEventListener(e,t),r.register(()=>{n.removeEventListener(e,t)})}var ct,{WebKitMediaKeys:wo}=re;wo!==void 0&&typeof wo.isTypeSupported=="function"&&typeof wo.prototype.createSession=="function"&&typeof HTMLMediaElement.prototype.webkitSetMediaKeys=="function"&&(ct=wo);function ys(){return(Aa||an)&&ct!==void 0}var Hr=class{constructor(e,t,r){this._keyType=e;this._mediaKeys=t;this._configuration=r}get keySystem(){return this._keyType}createMediaKeys(){return new Promise(e=>e(this._mediaKeys))}getConfiguration(){return this._configuration}};function Rt(n){try{let e=n();return typeof e=="object"&&e!==null&&typeof e.then=="function"?e:Promise.resolve(e)}catch(e){return Promise.reject(e)}}var kt,{MSMediaKeys:Wr}=re;Wr!==void 0&&Wr.prototype!==void 0&&typeof Wr.isTypeSupported=="function"&&typeof Wr.prototype.createSession=="function"&&(kt=Wr);var Ss=class extends ie{constructor(e){super(),this.expiration=NaN,this.keyStatuses=new Map,this._mk=e,this._sessionClosingCanceller=new F,this.closed=new Promise(t=>{this._sessionClosingCanceller.signal.register(()=>t())}),this.update=t=>new Promise((r,i)=>{if(this._ss===void 0)return i("MediaKeySession not set.");try{r(this._ss.update(t,""))}catch(o){i(o)}})}generateRequest(e,t){return new Promise(r=>{let i;t instanceof Uint8Array?i=t:t instanceof ArrayBuffer?i=new Uint8Array(t):i=new Uint8Array(t.buffer),this._ss=this._mk.createSession("video/mp4",i),Mo(this._ss,o=>{var a;this.trigger((a=o.type)!=null?a:"message",o)},this._sessionClosingCanceller.signal),Pc(this._ss,o=>{var a;this.trigger((a=o.type)!=null?a:"keyadded",o)},this._sessionClosingCanceller.signal),xo(this._ss,o=>{var a;this.trigger((a=o.type)!=null?a:"keyerror",o)},this._sessionClosingCanceller.signal),r()})}close(){return new Promise(e=>{_(this._ss)||(this._ss.close(),this._ss=void 0),this._sessionClosingCanceller.cancel(),e()})}load(){return Promise.resolve(!1)}remove(){return Promise.resolve()}get sessionId(){var e,t;return(t=(e=this._ss)==null?void 0:e.sessionId)!=null?t:""}},Oo=class{constructor(e){if(kt===void 0)throw new Error("No MSMediaKeys API.");this._mediaKeys=new kt(e)}_setVideo(e){return Rt(()=>{this._videoElement=e,this._videoElement.msSetMediaKeys!==void 0&&this._videoElement.msSetMediaKeys(this._mediaKeys)})}createSession(){if(this._videoElement===void 0||this._mediaKeys===void 0)throw new Error("Video not attached to the MediaKeys");return new Ss(this._mediaKeys)}setServerCertificate(){throw new Error("Server certificate is not implemented in your browser")}};function bs(){return{isTypeSupported:(r,i)=>{if(kt===void 0)throw new Error("No MSMediaKeys API.");return i!==void 0?kt.isTypeSupported(r,i):kt.isTypeSupported(r)},createCustomMediaKeys:r=>new Oo(r),setMediaKeys:(r,i)=>{if(i===null)return Promise.resolve(void 0);if(!(i instanceof Oo))throw new Error("Custom setMediaKeys is supposed to be called with IE11 custom MediaKeys.");return i._setVideo(r)}}}var jt,{MozMediaKeys:Gr}=re;Gr!==void 0&&Gr.prototype!==void 0&&typeof Gr.isTypeSupported=="function"&&typeof Gr.prototype.createSession=="function"&&(jt=Gr);function Ts(){return{isTypeSupported:(r,i)=>{if(jt===void 0)throw new Error("No MozMediaKeys API.");return i!==void 0?jt.isTypeSupported(r,i):jt.isTypeSupported(r)},createCustomMediaKeys:r=>{if(jt===void 0)throw new Error("No MozMediaKeys API.");return new jt(r)},setMediaKeys:(r,i)=>Rt(()=>{let o=r;if(o.mozSetMediaKeys===void 0||typeof o.mozSetMediaKeys!="function")throw new Error("Can't set video on MozMediaKeys.");return o.mozSetMediaKeys(i)})}}var Pt=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","+","/"],wc=[255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,62,255,255,255,63,52,53,54,55,56,57,58,59,60,61,255,255,255,0,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51];function Do(n){if(n>=wc.length)throw new Error("Unable to parse base64 string.");let e=wc[n];if(e===255)throw new Error("Unable to parse base64 string.");return e}function Lo(n){let e="",t,r=n.length;for(t=2;t<r;t+=3)e+=Pt[n[t-2]>>2],e+=Pt[(n[t-2]&3)<<4|n[t-1]>>4],e+=Pt[(n[t-1]&15)<<2|n[t]>>6],e+=Pt[n[t]&63];return t===r+1&&(e+=Pt[n[t-2]>>2],e+=Pt[(n[t-2]&3)<<4],e+="=="),t===r&&(e+=Pt[n[t-2]>>2],e+=Pt[(n[t-2]&3)<<4|n[t-1]>>4],e+=Pt[(n[t-1]&15)<<2],e+="="),e}function ft(n){let e=n.length%4,t=n;e!==0&&(m.warn("base64ToBytes: base64 given miss padding"),t+=e===3?"=":e===2?"==":"===");let r=t.indexOf("=");if(r!==-1&&r<t.length-2)throw new Error("Unable to parse base64 string.");let i=t.endsWith("==")?2:t.endsWith("=")?1:0,o=t.length,a=new Uint8Array(o/4*3),s;for(let d=0,u=0;d<o;d+=4,u+=3)s=Do(t.charCodeAt(d))<<18|Do(t.charCodeAt(d+1))<<12|Do(t.charCodeAt(d+2))<<6|Do(t.charCodeAt(d+3)),a[u]=s>>16,a[u+1]=s>>8&255,a[u+2]=s&255;return a.subarray(0,a.length-i)}var Dc=typeof re=="object"&&typeof re.TextDecoder=="function",gg=typeof re=="object"&&typeof re.TextEncoder=="function";function No(n){let e=new ArrayBuffer(n.length*2),t=new Uint8Array(e);for(let r=0;r<t.length;r+=2){let i=n.charCodeAt(r/2);t[r]=i&255,t[r+1]=i>>8&255}return t}function Uo(n){if(Dc)try{return new TextDecoder("utf-16le").decode(n)}catch(t){let r=t instanceof Error?t:"";m.warn("Utils: could not use TextDecoder to parse UTF-16LE, fallbacking to another implementation",r)}let e="";for(let t=0;t<n.length;t+=2)e+=String.fromCharCode((n[t+1]<<8)+n[t]);return e}function _e(n){if(gg)try{return new TextEncoder().encode(n)}catch(i){let o=i instanceof Error?i:"";m.warn("Utils: could not use TextEncoder to encode string into UTF-8, fallbacking to another implementation",o)}let e,t=encodeURIComponent(n);if(typeof unescape=="function")e=unescape(t);else{let i=/[0-9a-fA-F]/,o=t.length;e="";for(let a=0;a<t.length;a++){let s=!1;if(t[a]==="%"){if(a<=o-6&&t[a+1]==="u"&&i.test(t[a+2])&&i.test(t[a+3])&&i.test(t[a+4])&&i.test(t[a+5])){let d=parseInt(t.substring(a+1,a+6),16);e+=String.fromCharCode(d),s=!0,a+=5}else if(a<=o-3&&i.test(t[a+1])&&i.test(t[a+2])){let d=parseInt(t.substring(a+1,a+3),16);e+=String.fromCharCode(d),s=!0,a+=2}}s||(e+=t[a])}}let r=new Uint8Array(e.length);for(let i=0;i<e.length;i++)r[i]=e.charCodeAt(i)&255;return r}function hg(n){let t="";for(let r=0;r<n.length;r+=16e3){let i=n.subarray(r,r+16e3);t+=String.fromCharCode.apply(null,i)}return t}function Oc(n,e){let t=n.toString(16);return t.length>=e?t:new Array(e-t.length+1).join("0")+t}function we(n){if(Dc)try{return new TextDecoder().decode(n)}catch(i){let o=i instanceof Error?i:"";m.warn("Utils: could not use TextDecoder to parse UTF-8, fallbacking to another implementation",o)}let e=n;e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3));let t=hg(e),r;if(typeof escape=="function")r=escape(t);else{let i=/[A-Za-z0-9*_\+-\.\/]/;r="";for(let o=0;o<t.length;o++)if(i.test(t[o]))r+=t[o];else{let a=t.charCodeAt(o);r+=a>=256?"%u"+Oc(a,4):"%"+Oc(a,2)}}return decodeURIComponent(r)}function je(n){let e=n.length,t=new Uint8Array(e/2);for(let r=0,i=0;r<e;r+=2,i++)t[i]=parseInt(n.substring(r,r+2),16)&255;return t}function Oe(n,e=""){let t="";for(let r=0;r<n.byteLength;r++)t+=(n[r]>>>4).toString(16),t+=(n[r]&15).toString(16),e.length>0&&r<n.byteLength-1&&(t+=e);return t}function Bo(n){J(n.length===16,"GUID length should be 16");let e=n[0],t=n[1],r=n[2],i=n[3],o=n[4],a=n[5],s=n[6],d=n[7],u=new Uint8Array(16);return u[0]=i,u[1]=r,u[2]=t,u[3]=e,u[4]=a,u[5]=o,u[6]=d,u[7]=s,u.set(n.subarray(8,16),8),u}function _s(n,e){let t=e;for(;t<n.length&&n[t]!==0;)t+=1;let r=n.subarray(e,t);return{end:t+1,string:we(r)}}function vs(n){return typeof(n==null?void 0:n.webkitGenerateKeyRequest)=="function"}var Es=class extends ie{constructor(e,t){super(),this._vid=e,this._key=t,this.sessionId="",this._closeSession=Q,this.keyStatuses=new Map,this.expiration=NaN;let r=i=>{this.trigger(i.type,i)};this.closed=new Promise(i=>{this._closeSession=()=>{["keymessage","message","keyadded","ready","keyerror","error"].forEach(o=>{e.removeEventListener(o,r),e.removeEventListener(`webkit${o}`,r)}),i()}}),["keymessage","message","keyadded","ready","keyerror","error"].forEach(i=>{e.addEventListener(i,r),e.addEventListener(`webkit${i}`,r)})}update(e){return new Promise((t,r)=>{try{if(this._key.indexOf("clearkey")>=0){let i=e instanceof ArrayBuffer?new Uint8Array(e):e,o=JSON.parse(we(i)),a=ft(o.keys[0].k),s=ft(o.keys[0].kid);t(this._vid.webkitAddKey(this._key,a,s,""))}else t(this._vid.webkitAddKey(this._key,e,null,""))}catch(i){r(i)}})}generateRequest(e,t){return new Promise(r=>{this._vid.webkitGenerateKeyRequest(this._key,t),r()})}close(){return new Promise(e=>{this._closeSession(),e()})}load(){return Promise.resolve(!1)}remove(){return Promise.resolve()}},Fo=class{constructor(e){this._keySystem=e}_setVideo(e){return Rt(()=>{if(!vs(e))throw new Error("Video not attached to the MediaKeys");this._videoElement=e})}createSession(){if(_(this._videoElement))throw new Error("Video not attached to the MediaKeys");return new Es(this._videoElement,this._keySystem)}setServerCertificate(){throw new Error("Server certificate is not implemented in your browser")}};function Rs(){return{isTypeSupported:function(r){let i=document.querySelector("video");return _(i)&&(i=document.createElement("video")),!_(i)&&typeof i.canPlayType=="function"?!!i.canPlayType("video/mp4",r):!1},createCustomMediaKeys:r=>new Fo(r),setMediaKeys:(r,i)=>{if(i===null)return Promise.resolve(void 0);if(!(i instanceof Fo))throw new Error("Custom setMediaKeys is supposed to be called with old webkit custom MediaKeys.");return i._setVideo(r)}}}function te(...n){let e=n.length,t=-1,r=0,i;for(;++t<e;)i=n[t],r+=typeof i=="number"?i:i.length;let o=new Uint8Array(r),a=0;for(t=-1;++t<e;)i=n[t],typeof i=="number"?a+=i:i.length>0&&(o.set(i,a),a+=i.length);return o}function Ko(n,e){return(n[e+0]<<8)+(n[e+1]<<0)}function ks(n,e){return n[e+0]*65536+n[e+1]*256+n[e+2]}function ee(n,e){return n[e+0]*16777216+n[e+1]*65536+n[e+2]*256+n[e+3]}function Ne(n,e){return(n[e+0]*16777216+n[e+1]*65536+n[e+2]*256+n[e+3])*4294967296+n[e+4]*16777216+n[e+5]*65536+n[e+6]*256+n[e+7]}function le(n){return new Uint8Array([n>>>8&255,n&255])}function ge(n){return new Uint8Array([n>>>24&255,n>>>16&255,n>>>8&255,n&255])}function Yt(n){let e=n%4294967296,t=(n-e)/4294967296;return new Uint8Array([t>>>24&255,t>>>16&255,t>>>8&255,t&255,e>>>24&255,e>>>16&255,e>>>8&255,e&255])}function Lc(n,e){return(n[e+0]<<0)+(n[e+1]<<8)}function Nc(n,e){return n[e+0]+n[e+1]*256+n[e+2]*65536+n[e+3]*16777216}function Uc(n){return new Uint8Array([n&255,n>>>8&255])}function qr(n){return new Uint8Array([n&255,n>>>8&255,n>>>16&255,n>>>24&255])}function Ps(n,e){let t=n instanceof Uint8Array?n:new Uint8Array(n),r=e instanceof Uint8Array?e:new Uint8Array(e);if(Nc(t,0)+4!==t.length)throw new Error("Unsupported WebKit initData.");let o=Uo(t),a=o.indexOf("skd://"),s=a>-1?o.substring(a+6):o,d=No(s),u=0,c=new Uint8Array(t.byteLength+4+d.byteLength+4+r.byteLength);return c.set(t),u+=t.length,c.set(qr(d.byteLength),u),u+=4,c.set(d,u),u+=d.byteLength,c.set(qr(r.byteLength),u),u+=4,c.set(r,u),c}function Ig(n){return qe(n,"com.apple.fps")}function Bc(n,e){let t=n;return Rt(()=>{if(t.webkitSetMediaKeys===void 0)throw new Error("No webKitMediaKeys API.");t.webkitSetMediaKeys(e)})}var As=class extends ie{constructor(e,t,r){super(),this._serverCertificate=r,this._videoElement=e,this._keyType=t,this._unbindSession=Q,this._closeSession=Q,this.closed=new Promise(i=>{this._closeSession=i}),this.keyStatuses=new Map,this.expiration=NaN}update(e){return new Promise((t,r)=>{if(this._nativeSession===void 0||this._nativeSession.update===void 0||typeof this._nativeSession.update!="function")return r("Unavailable WebKit key session.");try{let i;e instanceof ArrayBuffer?i=new Uint8Array(e):e instanceof Uint8Array?i=e:i=new Uint8Array(e.buffer),t(this._nativeSession.update(i))}catch(i){r(i)}})}generateRequest(e,t){return new Promise(r=>{var s;let i=this._videoElement;if(((s=i.webkitKeys)==null?void 0:s.createSession)===void 0)throw new Error("No WebKitMediaKeys API.");let o;if(Ig(this._keyType)){if(this._serverCertificate===void 0)throw new Error("A server certificate is needed for creating fairplay session.");o=Ps(t,this._serverCertificate)}else o=t;let a=i.webkitKeys.createSession("video/mp4",o);if(a==null)throw new Error("Impossible to get the key sessions");this._listenEvent(a),this._nativeSession=a,r()})}close(){return new Promise((e,t)=>{if(this._unbindSession(),this._closeSession(),this._nativeSession===void 0){t("No session to close.");return}this._nativeSession.close(),e()})}load(){return Promise.resolve(!1)}remove(){return Promise.resolve()}get sessionId(){var e,t;return(t=(e=this._nativeSession)==null?void 0:e.sessionId)!=null?t:""}_listenEvent(e){this._unbindSession();let t=r=>{this.trigger(r.type,r)};["keymessage","message","keyadded","ready","keyerror","error"].forEach(r=>{e.addEventListener(r,t),e.addEventListener(`webkit${r}`,t)}),this._unbindSession=()=>{["keymessage","message","keyadded","ready","keyerror","error"].forEach(r=>{e.removeEventListener(r,t),e.removeEventListener(`webkit${r}`,t)})}}},Vo=class{constructor(e){if(ct===void 0)throw new Error("No WebKitMediaKeys API.");this._keyType=e,this._mediaKeys=new ct(e)}_setVideo(e){if(this._videoElement=e,this._videoElement===void 0)throw new Error("Video not attached to the MediaKeys");return Bc(this._videoElement,this._mediaKeys)}createSession(){if(this._videoElement===void 0||this._mediaKeys===void 0)throw new Error("Video not attached to the MediaKeys");return new As(this._videoElement,this._keyType,this._serverCertificate)}setServerCertificate(e){return this._serverCertificate=e,Promise.resolve()}};function zo(){if(ct===void 0)throw new Error("No WebKitMediaKeys API.");return{isTypeSupported:ct.isTypeSupported,createCustomMediaKeys:r=>new Vo(r),setMediaKeys:(r,i)=>{if(i===null)return Bc(r,i);if(!(i instanceof Vo))throw new Error("Custom setMediaKeys is supposed to be called with webkit custom MediaKeys.");return i._setVideo(r)}}}var yg=Sg("auto"),Fc=yg;function Sg(n){var o;let e,t,r=bg,i;if((n==="standard"||n==="auto"&&!ys())&&(Ft||!_(navigator.requestMediaKeySystemAccess)))e=(...a)=>navigator.requestMediaKeySystemAccess(...a),t=Ie(["encrypted"]),i="standard";else{let a,s;if(n==="webkit"&&ct!==void 0){t=Ie(["needkey"]);let d=zo();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="webkit"}else if(vs((o=re.HTMLVideoElement)==null?void 0:o.prototype)){t=Ie(["needkey"]);let d=Rs();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="older-webkit"}else if(ct!==void 0){t=Ie(["needkey"]);let d=zo();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="webkit"}else if(rn&&kt!==void 0){t=Ie(["encrypted","needkey"]);let d=bs();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="ms"}else if(jt!==void 0){t=Ie(["encrypted","needkey"]);let d=Ts();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="moz"}else{t=Ie(["encrypted","needkey"]);let d=re.MediaKeys,u=()=>{if(d===void 0)throw new Z("MEDIA_KEYS_NOT_SUPPORTED","No `MediaKeys` implementation found in the current browser.");if(typeof d.isTypeSupported=="undefined"){let c="This browser seems to be unable to play encrypted contents currently.Note: Some browsers do not allow decryption in some situations, like when not using HTTPS.";throw new Error(c)}};a=c=>(u(),J(typeof d.isTypeSupported=="function"),d.isTypeSupported(c)),s=c=>(u(),new d(c)),i="unknown"}e=function(d,u){if(!a(d))return Promise.reject(new Error("Unsupported key type"));for(let c=0;c<u.length;c++){let l=u[c],{videoCapabilities:f,audioCapabilities:p,initDataTypes:g,distinctiveIdentifier:S}=l,I=!0;if(I=I&&(_(g)||g.some(y=>y==="cenc")),I=I&&S!=="required",I){let y={initDataTypes:["cenc"],distinctiveIdentifier:"not-allowed",persistentState:"required",sessionTypes:["temporary","persistent-license"]};f!==void 0&&(y.videoCapabilities=f),p!==void 0&&(y.audioCapabilities=p);let T=s(d);return Promise.resolve(new Hr(d,T,y))}}return Promise.reject(new Error("Unsupported configuration"))}}return{requestMediaKeySystemAccess:e,onEncrypted:t,setMediaKeys:r,implementation:i}}function bg(n,e){try{let t,r=n;return typeof r.setMediaKeys=="function"?t=r.setMediaKeys(e):typeof r.webkitSetMediaKeys=="function"?t=r.webkitSetMediaKeys(e):typeof r.mozSetMediaKeys=="function"?t=r.mozSetMediaKeys(e):typeof r.msSetMediaKeys=="function"&&e!==null&&(t=r.msSetMediaKeys(e)),typeof t=="object"&&t!==null&&typeof t.then=="function"?t:Promise.resolve(t)}catch(t){return Promise.reject(t)}}function yt(n,e){let t=n.length,r=0;for(;r+8<=t;){let i=ee(n,r);if(i===0)i=t-r;else if(i===1){if(r+16>t)return-1;i=Ne(n,r+8)}if(isNaN(i)||i<=0)return-1;if(ee(n,r+4)===e)return r+i<=t?r:-1;r+=i}return-1}function Ho(n){let e=0,t=[],r=null;for(;e<=n.length;){if(e===n.length){r=null;break}r=n.subarray(e,1/0);let i=yt(r,1836019558);if(i<0)break;let o=ee(n,i+e),a=e+i+o;if(a>n.length)break;let s=yt(r,1835295092);if(s<0)break;let d=ee(n,s+e),u=e+s+d;if(u>n.length)break;let c=Math.max(a,u),l=n.subarray(e,c);t.push(l),e=c}return t.length===0?[null,r]:[t,r]}function Tg(n,e,t){return new Uint8Array(Array.prototype.slice.call(n,e,t))}function _g(n,e,t){return n.slice(e,t)}var Cs=typeof Uint8Array.prototype.slice=="function"?_g:Tg;function Ms(n,e){let t=n;for(let r of e){let i=Ee(t,r);if(i===null)return null;t=i}return t}function Ee(n,e){let t=Ue(n,e);return t!==null?n.subarray(t[1],t[2]):null}function Kc(n,e){let t=[],r=n;for(;;){let i=Ue(r,e);if(i===null)return t;J(i[2]!==0&&r.length!==0),t.push(r.subarray(i[1],i[2])),r=r.subarray(i[2])}}function xs(n,e){let t=Ue(n,e);return t!==null?n.subarray(t[0],t[2]):null}function Ue(n,e){let t=n.length,r=0,i,o=0,a;for(;r+8<=t;){if(a=r,o=ee(n,a),a+=4,i=ee(n,a),a+=4,o===0)o=t-r;else if(o===1){if(a+8>t)return null;o=Ne(n,a),a+=8}if(o<0)throw new Error("ISOBMFF: Size out of range");if(i===e)return e===1970628964&&(a+=16),[r,a,r+o];r+=o}return null}function hn(n,e,t,r,i){let o=n.length,a;for(let s=0;s<o;s+=a){let d=s;a=ee(n,d),d+=4;let u=ee(n,d);if(d+=4,a===0)a=o-s;else if(a===1){if(d+8>o)return;a=Ne(n,d),d+=8}if(u===1970628964&&d+16<=o&&ee(n,d)===e&&ee(n,d+4)===t&&ee(n,d+8)===r&&ee(n,d+12)===i)return d+=16,n.subarray(d,s+a)}}function ws(n){let e=n.length;if(e<8)return m.warn("ISOBMFF: box inferior to 8 bytes, cannot find offsets"),null;let t=0,r=ee(n,t);t+=4;let i=ee(n,t);if(t+=4,r===0)r=e;else if(r===1){if(t+8>e)return m.warn("ISOBMFF: box too short, cannot find offsets"),null;r=Ne(n,t),t+=8}if(r<0)throw new Error("ISOBMFF: Size out of range");return i===1970628964&&(t+=16),[0,t,r]}function Wo(n){let e=0,t=Ee(n,1836019574);if(t===null)return[];let r=[];for(;e<t.length;){let i;try{i=Ue(t,1886614376)}catch(s){let d=s instanceof Error?s:"";return m.warn("Error while removing PSSH from ISOBMFF",d),r}if(i===null)return r;let o=Cs(t,i[0],i[2]),a=Go(o,i[1]-i[0]);a!==void 0&&r.push({systemId:a,data:o}),t[i[0]+4]=102,t[i[0]+5]=114,t[i[0]+6]=101,t[i[0]+7]=101,e=i[2]}return r}function Go(n,e){if(n[e]>1){m.warn("ISOBMFF: un-handled PSSH version");return}let t=e+4;if(t+16>n.length)return;let r=Cs(n,t,t+16);return Oe(r)}var jr=Math.pow(2,32)-1;var Os={};function Vc(n){if(Os[n]!==void 0)return Os[n];let e=_e(n);return Os[n]=e,e}function de(n,e){let t=e.length+8;return t<=jr?te(ge(t),Vc(n),e):te(ge(1),Vc(n),Yt(t+8),e)}function Ce(n,e){return de(n,te(...e))}function Yr(n){let e=Ee(n,1836019558);return e===null?null:Ee(e,1953653094)}function zc(n){return Kc(n,1836019558).reduce((t,r)=>{let i=Ee(r,1953653094);return i!==null&&t.push(i),t},[])}function $r(n){return Ee(n,1835295092)}function Ds(n){let e=Ee(n,1836019574);if(e===null)return null;let t=Ee(e,1953653099);return t===null?null:Ee(t,1835297121)}function Hc(n,e=0){return Ee(n.subarray(e),1701671783)}function Qr(n){let e=Lc(n,8),t=Uo(n.subarray(10,e+10)),i=new DOMParser().parseFromString(t,"application/xml").querySelector("KID");if(i===null)throw new Error("Cannot parse PlayReady private data: invalid XML");let o=i.textContent===null?"":i.textContent,a=Bo(ft(o));return Oe(a).toLowerCase()}function Xr(n,e){let t=Ue(n,1936286840);if(t===null)return null;let r=e,i=t[2]-t[0],o=t[1],a=n[o];o+=8;let s=ee(n,o);o+=4;let d;if(a===0)d=ee(n,o),o+=4,r+=ee(n,o)+i,o+=4;else if(a===1)d=Ne(n,o),o+=8,r+=Ne(n,o)+i,o+=8;else return null;let u=[];o+=2;let c=Ko(n,o);for(o+=2;--c>=0;){let l=ee(n,o);o+=4;let f=(l&2147483648)>>>31,p=l&2147483647;if(f===1)throw new Error("sidx with reference_type `1` not yet implemented");let g=ee(n,o);o+=4,o+=4,u.push({time:d,duration:g,timescale:s,range:[r,r+p-1]}),d+=g,r+=p}return u}function Ls(n){let e=Yr(n);if(e===null)return;let t=Ee(e,1952867444);if(t===null)return;let r=t[0];if(r===1)return Ne(t,4);if(r===0)return ee(t,4)}function Eg(n){let e=Ee(n,1952868452);if(e===null)return;let t=1,r=ks(e,t);t+=3;let i=(r&1)>0,o=(r&2)>0;return(r&8)>0?(t+=4,i&&(t+=8),o&&(t+=4),ee(e,t)):void 0}function Zr(n){let e=zc(n);if(e.length===0)return;let t=0;for(let r of e){let i=Ee(r,1953658222);if(i===null)return;let o=0,a=i[o];if(o+=1,a>1)return;let s=ks(i,o);o+=3;let d=(s&256)>0,u=0;if(!d&&(u=Eg(r),u===void 0))return;let c=(s&1)>0,l=(s&4)>0,f=(s&512)>0,p=(s&1024)>0,g=(s&2048)>0,S=ee(i,o);o+=4,c&&(o+=4),l&&(o+=4);let I=S,y=0;for(;I-- >0;)d?(y+=ee(i,o),o+=4):y+=u,f&&(o+=4),p&&(o+=4),g&&(o+=4);t+=y}return t}function Jr(n){let e=Ds(n);if(e===null)return;let t=Ee(e,1835296868);if(t===null)return;let r=0,i=t[r];if(r+=4,i===1)return ee(t,r+16);if(i===0)return ee(t,r+8)}function Ns(n){let e=n.length;if(e<4)throw new Error("Cannot update box length: box too short");let t=ee(n,0);if(t===0)if(e>jr){let r=new Uint8Array(e+8);return r.set(ge(1),0),r.set(n.subarray(4,8),4),r.set(Yt(e+8),8),r.set(n.subarray(8,e),16),r}else return n.set(ge(e),0),n;else if(t===1){if(e<16)throw new Error("Cannot update box length: box too short");return n.set(Yt(e),8),n}else{if(e<=jr)return n.set(ge(e),0),n;{let r=new Uint8Array(e+8);return r.set(ge(1),0),r.set(n.subarray(4,8),4),r.set(Yt(e+8),8),r.set(n.subarray(8,e),16),r}}}function Wc(n){let e=[],t=0;for(;t<n.length;){let r=Hc(n,t);if(r===null)break;let i=r.length;t+=i;let o=r[0];if(o!==0)m.warn("ISOBMFF: EMSG version "+o.toString()+" not supported.");else{let a=4,{end:s,string:d}=_s(r,a);a=s;let{end:u,string:c}=_s(r,a);a=u;let l=ee(r,a);a+=4;let f=ee(r,a);a+=4;let p=ee(r,a);a+=4;let g=ee(r,a);a+=4;let S=r.subarray(a,i),I={schemeIdUri:d,value:c,timescale:l,presentationTimeDelta:f,eventDuration:p,id:g,messageData:S};e.push(I)}}if(e.length!==0)return e}function Gc(n){let e=Ms(n,[1836019574,1953653099,1835297121,1835626086,1937007212,1937011556]);if(e===null)return null;let t=e.subarray(8),r=Ee(t,1701733238),i=0;if(r===null?(i=28,r=Ee(t,1701733217)):i=78,r===null)return null;let o=Ms(r.subarray(i),[1936289382,1935894633,1952804451]);if(o===null||o.byteLength<24)return null;let a=o.subarray(8,24);return a.every(s=>s===0)?null:a}var qo=ee(_e("pssh"),0);function vg(n){m.info("Compat: Trying to move CENC PSSH from init data at the end of it.");let e=!1,t=new Uint8Array,r=new Uint8Array,i=0;for(;i<n.length;){if(n.length<i+8||ee(n,i+4)!==qo)throw m.warn("Compat: unrecognized initialization data. Cannot patch it."),new Error("Compat: unrecognized initialization data. Cannot patch it.");let o=ee(new Uint8Array(n),i);if(i+o>n.length)throw m.warn("Compat: unrecognized initialization data. Cannot patch it."),new Error("Compat: unrecognized initialization data. Cannot patch it.");let a=n.subarray(i,i+o);if(n[i+12]===16&&n[i+13]===119&&n[i+14]===239&&n[i+15]===236&&n[i+16]===192&&n[i+17]===178&&n[i+18]===77&&n[i+19]===2&&n[i+20]===172&&n[i+21]===227&&n[i+22]===60&&n[i+23]===30&&n[i+24]===82&&n[i+25]===226&&n[i+26]===251&&n[i+27]===75){let s=ws(a),d=s===null?void 0:a[s[1]];m.info("Compat: CENC PSSH found with version",d),d===void 0?m.warn("Compat: could not read version of CENC PSSH"):e===(d===1)?t=te(t,a):d===1?(m.warn("Compat: cenc version 1 encountered, removing every other cenc pssh box."),t=a,e=!0):m.warn("Compat: filtering out cenc pssh box with wrong version",d)}else r=te(r,a);i+=o}if(i!==n.length)throw m.warn("Compat: unrecognized initialization data. Cannot patch it."),new Error("Compat: unrecognized initialization data. Cannot patch it.");return te(r,t)}function ei(n,e,t){m.debug("Compat: Calling generateRequest on the MediaKeySession");let r;try{r=vg(t)}catch(o){r=t}let i=e!=null?e:"";return n.generateRequest(i,r).catch(o=>{if(i!==""||!(o instanceof TypeError))throw o;return m.warn('Compat: error while calling `generateRequest` with an empty initialization data type. Retrying with a default "cenc" value.',o),n.generateRequest("cenc",r)})}function Rg(n){let e=[],t=0;for(;t<n.length;){if(n.length<t+8||ee(n,t+4)!==qo)return m.warn("Compat: Unrecognized initialization data. Use as is."),[{systemId:void 0,data:n}];let r=ee(new Uint8Array(n),t);if(t+r>n.length)return m.warn("Compat: Unrecognized initialization data. Use as is."),[{systemId:void 0,data:n}];let i=n.subarray(t,t+r),a={systemId:Go(i,8),data:i};kg(e,a)?m.warn("Compat: Duplicated PSSH found in initialization data, removing it."):e.push(a),t+=r}return t!==n.length?(m.warn("Compat: Unrecognized initialization data. Use as is."),[{systemId:void 0,data:n}]):e}function kg(n,e){for(let t=0;t<n.length;t++){let r=n[t];if((e.systemId===void 0||r.systemId===void 0||e.systemId===r.systemId)&&me(e.data,r.data))return!0}return!1}function jo(n){let{initData:e,initDataType:t}=n;if(_(e))return m.warn("Compat: No init data found on media encrypted event."),null;let r=new Uint8Array(e),i=Rg(r);return{type:t,values:i}}var Pg=100;async function ti(n,e){m.info("DRM: Load persisted session",e);let t=await n.load(e);return!t||n.keyStatuses.size>0?t:new Promise(r=>{n.addEventListener("keystatuseschange",o);let i=setTimeout(o,Pg);function o(){a(),r(t)}function a(){clearTimeout(i),n.removeEventListener("keystatuseschange",o)}})}var St=Fc;function qc(n){var t;let e=Le.getState(n);return Le.setState(n,null),zr((t=e==null?void 0:e.emeImplementation)!=null?t:St,n,null)}async function Us(n,{emeImplementation:e,keySystemOptions:t,loadedSessionsStore:r,mediaKeySystemAccess:i,mediaKeys:o},a){let s=Le.getState(n);if(await(s!==null&&s.loadedSessionsStore!==r?s.loadedSessionsStore.closeAllSessions():Promise.resolve()),a.isCancelled())throw a.cancellationError;if(Le.setState(n,{emeImplementation:e,keySystemOptions:t,mediaKeySystemAccess:i,mediaKeys:o,loadedSessionsStore:r}),n.mediaKeys!==o)return m.info("DRM: Attaching MediaKeys to the media element"),zr(e,n,o).then(()=>{m.info("DRM: MediaKeys attached with success")}).catch(u=>{let c=u instanceof Error?u.toString():"Unknown Error";throw new fe("MEDIA_KEYS_ATTACHMENT_ERROR","Could not attach the MediaKeys to the media element: "+c)})}function ni(n){if(n.sessionId==="")return!1;let e=n.keyStatuses,t=[];return e.forEach(r=>{t.push(r)}),t.length<=0?(m.debug("DRM: isSessionUsable: MediaKeySession given has an empty keyStatuses",n.sessionId),!1):$(t,"expired")?(m.debug("DRM: isSessionUsable: MediaKeySession given has an expired key",n.sessionId),!1):$(t,"internal-error")?(m.debug("DRM: isSessionUsable: MediaKeySession given has a key with an internal-error",n.sessionId),!1):(m.debug("DRM: isSessionUsable: MediaKeySession is usable",n.sessionId),!0)}function Bs(n,e,t,r){let{loadedSessionsStore:i,persistentSessionsStore:o}=n;return t==="temporary"?jc(i,e):o===null?(m.warn("DRM: Cannot create persistent MediaKeySession, PersistentSessionsStore not created."),jc(i,e)):Ag(i,o,e,r)}function jc(n,e){m.info("DRM: Creating a new temporary session");let t=n.createSession(e,"temporary");return Promise.resolve({type:"created-session",value:t})}async function Ag(n,e,t,r){if(r.cancellationError!==null)throw r.cancellationError;m.info("DRM: Creating persistent MediaKeySession");let i=n.createSession(t,"persistent-license"),o=e.getAndReuse(t);if(o===null)return{type:"created-session",value:i};try{let s=await n.loadPersistentSession(i.mediaKeySession,o.sessionId);if(!s){m.warn("DRM: No data stored for the loaded session"),e.delete(o.sessionId),n.removeSessionWithoutClosingIt(i.mediaKeySession);let d=n.createSession(t,"persistent-license");return{type:"created-session",value:d}}return s&&ni(i.mediaKeySession)?(e.add(t,t.keyIds,i.mediaKeySession),m.info("DRM: Succeeded to load persistent session."),{type:"loaded-persistent-session",value:i}):(m.warn("DRM: Previous persistent session not usable anymore."),a())}catch(s){return m.warn("DRM: Unable to load persistent session: "+(s instanceof Error?s.toString():"Unknown Error")),a()}async function a(){if(r.cancellationError!==null)throw r.cancellationError;m.info("DRM: Removing previous persistent session.");let s=e.get(t);s!==null&&e.delete(s.sessionId);try{await n.closeSession(i.mediaKeySession)}catch(u){if(i.mediaKeySession.sessionId!=="")throw u;n.removeSessionWithoutClosingIt(i.mediaKeySession)}if(r.cancellationError!==null)throw r.cancellationError;let d=n.createSession(t,"persistent-license");return{type:"created-session",value:d}}}async function Fs(n,e){if(e<0||e>=n.getLength())return;m.info("DRM: LSS cache limit exceeded",e,n.getLength());let t=[],r=n.getAll().slice(),i=r.length-e;for(let o=0;o<i;o++){let a=r[o];t.push(n.closeSession(a.mediaKeySession))}await Promise.all(t)}async function Ks(n,e,t,r,i){let o=null,{loadedSessionsStore:a,persistentSessionsStore:s}=e,d=a.reuse(n);if(d!==null){if(o=d.mediaKeySession,ni(o))return m.info("DRM: Reuse loaded session",o.sessionId),{type:"loaded-open-session",value:{mediaKeySession:o,sessionType:d.sessionType,keySessionRecord:d.keySessionRecord}};s!==null&&d.mediaKeySession.sessionId!==""&&s.delete(d.mediaKeySession.sessionId)}if(o!==null&&(await a.closeSession(o),i.cancellationError!==null)||(await Fs(a,r),i.cancellationError!==null))throw i.cancellationError;let u=await Bs(e,n,t,i);return{type:u.type,value:{mediaKeySession:u.value.mediaKeySession,sessionType:u.value.sessionType,keySessionRecord:u.value.keySessionRecord}}}function Vs(){return!ar&&!Ma}function Yc(n){return!(ir&&n.indexOf("playready")!==-1)}var $c='<WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.0.0.0"><DATA><PROTECTINFO><KEYLEN>16</KEYLEN><ALGID>AESCTR</ALGID></PROTECTINFO><KID>ckB07BNLskeUq0qd83fTbA==</KID><DS_ID>yYIPDBca1kmMfL60IsfgAQ==</DS_ID><CUSTOMATTRIBUTES xmlns=""><encryptionref>312_4024_2018127108</encryptionref></CUSTOMATTRIBUTES><CHECKSUM>U/tsUYRgMzw=</CHECKSUM></DATA></WRMHEADER>';function Qc(n){let e=No(n),t=Uc(e.length),r=new Uint8Array([1,0]),i=new Uint8Array([1,0]),o=qr(e.length+6),a=te(o,i,r,t,e),s=je("9a04f07998404286ab92e65be0885f95");return Cg(a,s)}function Cg(n,e){let t=_e("pssh"),r=new Uint8Array([0,0,0,0]),i=ge(n.length),o=ge(32+n.length);return te(o,t,r,e,i,n)}function zs(){return rn}function Bn(n,e){return typeof Array.prototype.flatMap=="function"?n.flatMap(e):n.reduce((t,r)=>{let i=e(r);return Array.isArray(i)?(t.push(...i),t):(t.push(i),t)},[])}function Mg(n,e,t){let r=e.getConfiguration();if(zs()||_(r))return null;let i=n.filter(o=>!(o.type!==t.type||(!_(o.persistentLicenseConfig)||o.persistentState==="required")&&r.persistentState!=="required"||o.distinctiveIdentifier==="required"&&r.distinctiveIdentifier!=="required"))[0];return i!==void 0?{keySystemOptions:i,keySystemAccess:e}:null}function xg(n){let{EME_KEY_SYSTEMS:e}=B.getCurrent();for(let t of Object.keys(e))if($(e[t],n))return t}function wg(n){let{keyName:e,keyType:t,keySystemOptions:r}=n,i=["temporary"],o="optional",a="optional";_(r.persistentLicenseConfig)||(o="required",i.push("persistent-license")),_(r.persistentState)||(o=r.persistentState),_(r.distinctiveIdentifier)||(a=r.distinctiveIdentifier);let{EME_DEFAULT_AUDIO_CODECS:s,EME_DEFAULT_VIDEO_CODECS:d,EME_DEFAULT_WIDEVINE_ROBUSTNESSES:u,EME_DEFAULT_PLAYREADY_RECOMMENDATION_ROBUSTNESSES:c}=B.getCurrent(),l,f,{audioCapabilitiesConfig:p,videoCapabilitiesConfig:g}=r;if((p==null?void 0:p.type)==="full")l=p.value;else{let I;(p==null?void 0:p.type)==="robustness"?I=p.value:e==="widevine"?I=u:t==="com.microsoft.playready.recommendation"?I=c:I=[],I.length===0&&I.push(void 0);let y=(p==null?void 0:p.type)==="contentType"?p.value:s;l=Bn(I,T=>y.map(v=>T!==void 0?{contentType:v,robustness:T}:{contentType:v}))}if((g==null?void 0:g.type)==="full")f=g.value;else{let I;(g==null?void 0:g.type)==="robustness"?I=g.value:e==="widevine"?I=u:t==="com.microsoft.playready.recommendation"?I=c:I=[],I.length===0&&I.push(void 0);let y=(g==null?void 0:g.type)==="contentType"?g.value:d;f=Bn(I,T=>y.map(v=>T!==void 0?{contentType:v,robustness:T}:{contentType:v}))}let S={initDataTypes:["cenc"],videoCapabilities:f,audioCapabilities:l,distinctiveIdentifier:a,persistentState:o,sessionTypes:i};return[S,Se(ce({},S),{audioCapabilities:void 0,videoCapabilities:void 0})]}function Hs(n,e,t){m.info("DRM: Searching for compatible MediaKeySystemAccess");let r=Le.getState(n);if(r!==null&&St.implementation===r.emeImplementation.implementation){let a=Mg(e,r.mediaKeySystemAccess,r.keySystemOptions);if(a!==null)return m.info("DRM: Found cached compatible keySystem"),Promise.resolve({type:"reuse-media-key-system-access",value:{mediaKeySystemAccess:a.keySystemAccess,options:a.keySystemOptions}})}let i=e.reduce((a,s)=>{let{EME_KEY_SYSTEMS:d}=B.getCurrent(),u=d[s.type],c;if(!_(u))c=u.map(l=>({keyName:s.type,keyType:l,keySystemOptions:s}));else{let l=xg(s.type),f=s.type;c=[{keyName:l,keyType:f,keySystemOptions:s}]}return a.concat(c)},[]);return o(0);async function o(a){if(a>=i.length)throw new fe("INCOMPATIBLE_KEYSYSTEMS","No key system compatible with your wanted configuration has been found in the current browser.");if(_(St.requestMediaKeySystemAccess))throw new Error("requestMediaKeySystemAccess is not implemented in your browser.");let s=i[a],{keyType:d,keySystemOptions:u}=s,c=wg(s);m.debug(`DRM: Request keysystem access ${d},${a+1} of ${i.length}`);try{let l=await Og(d,c);return m.info("DRM: Found compatible keysystem",d,a+1),{type:"create-media-key-system-access",value:{options:u,mediaKeySystemAccess:l}}}catch(l){if(m.debug("DRM: Rejected access to keysystem",d,a+1),t.cancellationError!==null)throw t.cancellationError;return o(a+1)}}}async function Og(n,e){let t=await St.requestMediaKeySystemAccess(n,e);if(!Yc(n))try{let i=(await t.createMediaKeys()).createSession(),o=Qc($c);await i.generateRequest("cenc",o)}catch(r){throw m.debug("DRM: KeySystemAccess was granted but it is not usable"),r}return t}function Fn(n,e){for(let t of n)if(!e.some(i=>me(i,t)))return!1;return!0}function Xc(n,e){for(let t of n)if(e.some(i=>me(i,t)))return!0;return!1}var ri=class{constructor(e){this._initializationData=e,this._keyIds=null}associateKeyIds(e){this._keyIds===null&&(this._keyIds=[]);let t=Array.from(e);for(let r of t)this.isAssociatedWithKeyId(r)||this._keyIds.push(r)}isAssociatedWithKeyId(e){if(this._keyIds===null)return!1;for(let t of this._keyIds)if(me(t,e))return!0;return!1}getAssociatedKeyIds(){return this._keyIds===null?[]:this._keyIds}isCompatibleWith(e){let{keyIds:t}=e;if(t!==void 0&&t.length>0){if(this._keyIds!==null&&Fn(t,this._keyIds))return!0;if(this._initializationData.keyIds!==void 0)return Fn(t,this._initializationData.keyIds)}return this._checkInitializationDataCompatibility(e)}_checkInitializationDataCompatibility(e){return e.keyIds!==void 0&&e.keyIds.length>0&&this._initializationData.keyIds!==void 0?Fn(e.keyIds,this._initializationData.keyIds):this._initializationData.type!==e.type?!1:this._initializationData.values.isCompatibleWith(e.values)}};var ii=class{constructor(e){this._mediaKeys=e,this._storage=[]}createSession(e,t){let r=new ri(e);m.debug("DRM-LSS: calling `createSession`",t);let i=this._mediaKeys.createSession(t),o={mediaKeySession:i,sessionType:t,keySessionRecord:r,isGeneratingRequest:!1,isLoadingPersistentSession:!1,closingStatus:{type:"none"}};return _(i.closed)||i.closed.then(()=>{m.info("DRM-LSS: session was closed, removing it.",i.sessionId);let a=this.getIndex(r);a>=0&&this._storage[a].mediaKeySession===i&&this._storage.splice(a,1)}).catch(a=>{m.warn(`DRM-LSS: MediaKeySession.closed rejected: ${a}`)}),this._storage.push(ce({},o)),m.debug("DRM-LSS: MediaKeySession added",o.sessionType,this._storage.length),o}reuse(e){for(let t=this._storage.length-1;t>=0;t--){let r=this._storage[t];if(r.keySessionRecord.isCompatibleWith(e))return this._storage.splice(t,1),this._storage.push(r),m.debug("DRM-LSS: Reusing session:",r.mediaKeySession.sessionId,r.sessionType),ce({},r)}return null}getEntryForSession(e){for(let t=this._storage.length-1;t>=0;t--){let r=this._storage[t];if(r.mediaKeySession===e)return ce({},r)}return null}async generateLicenseRequest(e,t,r){let i;for(let o of this._storage)if(o.mediaKeySession===e){i=o;break}if(i===void 0)return m.error("DRM-LSS: generateRequest error. No MediaKeySession found with the given initData and initDataType"),ei(e,t,r);if(i.isGeneratingRequest=!0,i.closingStatus.type!=="none")throw new Error("The `MediaKeySession` is being closed.");try{await ei(e,t,r)}catch(o){throw i===void 0||(i.isGeneratingRequest=!1,i.closingStatus.type==="awaiting"&&i.closingStatus.start()),o}i!==void 0&&(i.isGeneratingRequest=!1,i.closingStatus.type==="awaiting"&&i.closingStatus.start())}async loadPersistentSession(e,t){let r;for(let o of this._storage)if(o.mediaKeySession===e){r=o;break}if(r===void 0)return m.error("DRM-LSS: loadPersistentSession error. No MediaKeySession found with the given initData and initDataType"),ti(e,t);if(r.isLoadingPersistentSession=!0,r.closingStatus.type!=="none")throw new Error("The `MediaKeySession` is being closed.");let i;try{i=await ti(e,t)}catch(o){throw r===void 0||(r.isLoadingPersistentSession=!1,r.closingStatus.type==="awaiting"&&r.closingStatus.start()),o}return r===void 0||(r.isLoadingPersistentSession=!1,r.closingStatus.type==="awaiting"&&r.closingStatus.start()),i}async closeSession(e){let t;for(let r of this._storage)if(r.mediaKeySession===e){t=r;break}return t===void 0?(m.warn("DRM-LSS: No MediaKeySession found with the given initData and initDataType"),Promise.resolve(!1)):this._closeEntry(t)}getLength(){return this._storage.length}getAll(){return this._storage}async closeAllSessions(){let e=this._storage;m.debug("DRM-LSS: Closing all current MediaKeySessions",e.length),this._storage=[];let t=e.map(r=>this._closeEntry(r));await Promise.all(t)}removeSessionWithoutClosingIt(e){J(e.sessionId==="","Initialized `MediaKeySession`s should always be properly closed");for(let t=this._storage.length-1;t>=0;t--)if(this._storage[t].mediaKeySession===e)return m.debug("DRM-LSS: Removing session without closing it",e.sessionId),this._storage.splice(t,1),!0;return!1}getIndex(e){for(let t=0;t<this._storage.length;t++)if(this._storage[t].keySessionRecord===e)return t;return-1}async _closeEntry(e){let{mediaKeySession:t}=e;return new Promise((r,i)=>{e!==void 0&&(e.isLoadingPersistentSession||e.isGeneratingRequest)?e.closingStatus={type:"awaiting",start:o}:o();function o(){e!==void 0&&(e.closingStatus={type:"pending"}),Dg(t).then(()=>{e!==void 0&&(e.closingStatus={type:"done"}),r(!0)}).catch(a=>{e!==void 0&&(e.closingStatus={type:"failed"}),i(a)})}})}};async function Dg(n){m.debug("DRM: Trying to close a MediaKeySession",n.sessionId);try{await Po(n),m.debug("DRM: Succeeded to close MediaKeySession");return}catch(e){m.error("DRM: Could not close MediaKeySession: "+(e instanceof Error?e.toString():"Unknown error"));return}}function $t(n){let e=0,t;for(let r=0;r<n.length;r++)t=n[r],e=(e<<5)-e+t,e=e&e;return e}var at=class{constructor(e){this.initData=e}toJSON(){return Lo(this.initData)}static decode(e){return ft(e)}};function Kn(n,e){var t,r;return(r=(t=Zc(n,e))!=null?t:Zc(e,n))!=null?r:!1}function Zc(n,e){if(n.length===0)return!1;if(e.length<n.length)return null;let t=n[0],r=0,i=0;for(;i<e.length;i++){let o=e[i];if(o.systemId!==t.systemId)continue;if(o.hash!==t.hash)return!1;let a;t.data instanceof Uint8Array?a=t.data:typeof t.data=="string"?a=at.decode(t.data):a=t.data.initData;let s;if(o.data instanceof Uint8Array?s=o.data:typeof o.data=="string"?s=at.decode(o.data):s=o.data.initData,!me(a,s))return!1;if(e.length-i<n.length)return null;for(r=1;r<n.length;r++){let d=n[r];for(i+=1;i<e.length;i++){let u=e[i];if(d.systemId!==u.systemId)continue;if(d.hash!==u.hash)return!1;let c;d.data instanceof Uint8Array?c=d.data:typeof d.data=="string"?c=at.decode(d.data):c=d.data.initData;let l;if(u.data instanceof Uint8Array?l=u.data:typeof u.data=="string"?l=at.decode(u.data):l=u.data.initData,!me(c,l))return!1;break}if(r===e.length)return null}return!0}return null}function Lg(n){Bl(n,{save:"function",load:"function"},"persistentLicenseConfig")}var oi=class{constructor(e){Lg(e),this._entries=[],this._storage=e;try{let t=this._storage.load();Array.isArray(t)||(t=[]),this._entries=t}catch(t){m.warn("DRM-PSS: Could not get entries from license storage",t instanceof Error?t:""),this.dispose()}}getLength(){return this._entries.length}getAll(){return this._entries}get(e){let t=this._getIndex(e);return t===-1?null:this._entries[t]}getAndReuse(e){let t=this._getIndex(e);if(t===-1)return null;let r=this._entries.splice(t,1)[0];return this._entries.push(r),r}add(e,t,r){var s;if(_(r)||!w(r.sessionId)){m.warn("DRM-PSS: Invalid Persisten Session given.");return}let{sessionId:i}=r,o=this._getIndex(e);if(o>=0){let d=t===void 0?3:4,u=this._entries[o];if(((s=u.version)!=null?s:-1)>=d&&i===u.sessionId)return;m.info("DRM-PSS: Updating session info.",i),this._entries.splice(o,1)}else m.info("DRM-PSS: Add new session",i);let a=Ng(e.values.getFormattedValues());t===void 0?this._entries.push({version:3,sessionId:i,values:a,initDataType:e.type}):this._entries.push({version:4,sessionId:i,keyIds:t.map(d=>new at(d)),values:a,initDataType:e.type}),this._save()}delete(e){let t=-1;for(let i=0;i<this._entries.length;i++)if(this._entries[i].sessionId===e){t=i;break}if(t===-1){m.warn("DRM-PSS: initData to delete not found.");return}let r=this._entries[t];m.warn("DRM-PSS: Delete session from store",r.sessionId),this._entries.splice(t,1),this._save()}deleteOldSessions(e){m.info(`DRM-PSS: Deleting last ${e} sessions.`),!(e<=0)&&(e<=this._entries.length?this._entries.splice(0,e):(m.warn("DRM-PSS: Asked to remove more information that it contains",e,this._entries.length),this._entries=[]),this._save())}dispose(){this._entries=[],this._save()}_getIndex(e){let t=null;function r(){if(t===null){let i=e.values.constructRequestData();t={initData:i,initDataHash:$t(i)}}return t}for(let i=0;i<this._entries.length;i++){let o=this._entries[i];if(o.initDataType===e.type)switch(o.version){case 4:if(e.keyIds!==void 0){if(e.keyIds.every(d=>{let u=Lo(d);for(let c of o.keyIds)if(typeof c=="string"){if(u===c)return!0}else if(me(c.initData,d))return!0;return!1}))return i}else{let s=e.values.getFormattedValues();if(Kn(s,o.values))return i}break;case 3:let a=e.values.getFormattedValues();if(Kn(a,o.values))return i;break;case 2:{let{initData:s,initDataHash:d}=r();if(o.initDataHash===d)try{let u=typeof o.initData=="string"?at.decode(o.initData):o.initData.initData;if(me(u,s))return i}catch(u){m.warn("DRM-PSS: Could not decode initialization data.",u instanceof Error?u:"")}break}case 1:{let{initData:s,initDataHash:d}=r();if(o.initDataHash===d){if(typeof o.initData.length=="undefined")return i;if(me(o.initData,s))return i}break}default:{let{initDataHash:s}=r();if(o.initData===s)return i}}}return-1}_save(){try{this._storage.save(this._entries)}catch(e){let t=e instanceof Error?e:void 0;m.warn("DRM-PSS: Could not save MediaKeySession information",t)}}};function Ng(n){return n.map(({systemId:e,data:t,hash:r})=>({systemId:e,hash:r,data:new at(t)}))}var Yo=new WeakMap,In={prepare(n){Yo.set(n,null)},set(n,e){let t=e instanceof Uint8Array?e:new Uint8Array(e instanceof ArrayBuffer?e:e.buffer),r=$t(t);Yo.set(n,{hash:r,serverCertificate:t})},hasOne(n){let e=Yo.get(n);if(e===void 0)return!1;if(e!==null)return!0},has(n,e){let t=Yo.get(n);if(t==null)return!1;let{hash:r,serverCertificate:i}=t,o=e instanceof Uint8Array?e:new Uint8Array(e instanceof ArrayBuffer?e:e.buffer);if($t(o)!==r||i.length!==o.length)return!1;for(let s=0;s<i.length;s++)if(i[s]!==o[s])return!1;return!0}};function Ug(n){let{persistentLicenseConfig:e}=n;return _(e)?null:(m.debug("DRM: Set the given license storage"),new oi(e))}async function Ws(n,e,t){let r=await Hs(n,e,t);if(t.cancellationError!==null)throw t.cancellationError;let{options:i,mediaKeySystemAccess:o}=r.value,a=Le.getState(n),s=Ug(i);if(Vs()&&a!==null&&r.type==="reuse-media-key-system-access"){let{mediaKeys:c,loadedSessionsStore:l}=a;if(In.hasOne(c)===!1||!_(i.serverCertificate)&&In.has(c,i.serverCertificate))return{mediaKeys:c,mediaKeySystemAccess:o,stores:{loadedSessionsStore:l,persistentSessionsStore:s},options:i}}let d=await Bg(o);m.info("DRM: MediaKeys created with success");let u=new ii(d);return{mediaKeys:d,mediaKeySystemAccess:o,stores:{loadedSessionsStore:u,persistentSessionsStore:s},options:i}}async function Bg(n){m.info("DRM: Calling createMediaKeys on the MediaKeySystemAccess");try{return await n.createMediaKeys()}catch(e){let t=e instanceof Error?e.message:"Unknown error when creating MediaKeys.";throw new fe("CREATE_MEDIA_KEYS_ERROR",t)}}async function Gs(n,e,t){let r=await Ws(n,e,t),{mediaKeys:i}=r;return n.mediaKeys!==null&&n.mediaKeys!==void 0&&i!==n.mediaKeys&&(m.debug("DRM: Disabling old MediaKeys"),await qc(n)),r}function qs(n,e,t){let{baseDelay:r,maxDelay:i,totalRetry:o,shouldRetry:a,onRetry:s}=e,d=0;return u();async function u(){if(t.cancellationError!==null)throw t.cancellationError;try{return await n()}catch(c){if(t.cancellationError!==null)throw t.cancellationError;if(!_(a)&&!a(c)||d++>=o)throw c;typeof s=="function"&&s(c,d);let l=Fg(r,d,i);return await pn(l),u()}}}function Fg(n,e,t){let r=n*Math.pow(2,e-1),i=Rr(r);return Math.min(i,t)}function js(n,e){return n.indexOf("playready")!==-1&&(Kt||ir)?Bo(e):e}var Vn=class n extends Error{constructor(e){super(e.message),Object.setPrototypeOf(this,n.prototype),this.reason=e}},Ys={EXPIRED:"expired",INTERNAL_ERROR:"internal-error",OUTPUT_RESTRICTED:"output-restricted"};function $s(n,e,t){let{onKeyInternalError:r,onKeyOutputRestricted:i,onKeyExpiration:o}=e,a=[],s=[],d=[];n.keyStatuses.forEach((c,l)=>{let[f,p]=typeof c=="string"?[c,l]:[l,c],g=js(t,new Uint8Array(p)),S={keyId:g.buffer,keyStatus:f};switch(m.hasLevel("DEBUG")&&m.debug(`DRM: key status update (${Oe(g)}): ${f}`),f){case Ys.EXPIRED:{let I=new fe("KEY_STATUS_CHANGE_ERROR",`A decryption key expired (${Oe(g)})`,{keyStatuses:[S,...d]});if(o==="error"||o===void 0)throw I;switch(o){case"close-session":throw new Vn(I);case"fallback":a.push(g);break;default:o==="continue"||o===void 0?s.push(g):Xe(o);break}d.push(S);break}case Ys.INTERNAL_ERROR:{let I=new fe("KEY_STATUS_CHANGE_ERROR",`A "${f}" status has been encountered (${Oe(g)})`,{keyStatuses:[S,...d]});switch(r){case void 0:case"error":throw I;case"close-session":throw new Vn(I);case"fallback":a.push(g);break;case"continue":s.push(g);break;default:if(r!==void 0)Xe(r);else throw I}d.push(S);break}case Ys.OUTPUT_RESTRICTED:{let I=new fe("KEY_STATUS_CHANGE_ERROR",`A "${f}" status has been encountered (${Oe(g)})`,{keyStatuses:[S,...d]});switch(i){case void 0:case"error":throw I;case"fallback":a.push(g);break;case"continue":s.push(g);break;default:if(i!==void 0)Xe(i);else throw I}d.push(S);break}default:s.push(g);break}});let u;return d.length>0&&(u=new fe("KEY_STATUS_CHANGE_ERROR","One or several problematic key statuses have been encountered",{keyStatuses:d})),{warning:u,blacklistedKeyIds:a,whitelistedKeyIds:s}}function Qs(n,e,t,r,i){m.info("DRM: Binding session events",n.sessionId);let{getLicenseConfig:o={}}=e,a=new F;a.linkToSignal(i),_(n.closed)||n.closed.then(()=>a.cancel()).catch(c=>{i.isCancelled()||(a.cancel(),r.onError(c))}),xo(n,c=>{a.cancel(),r.onError(new fe("KEY_ERROR",c.type))},a.signal),Ac(n,()=>{m.info("DRM: keystatuseschange event received",n.sessionId);try{s()}catch(c){if(i.isCancelled()||a.isUsed()&&c instanceof ur)return;a.cancel(),r.onError(c)}},a.signal),Mo(n,c=>{let l=c,f=new Uint8Array(l.message),p=w(l.messageType)?l.messageType:"license-request";m.info(`DRM: Received message event, type ${p}`,n.sessionId);let g=u(o.retry);qs(()=>d(f,p),g,a.signal).then(S=>{if(a.isUsed())return Promise.resolve();if(_(S))m.info("DRM: No license given, skipping session.update");else try{return Kg(n,S)}catch(I){a.cancel(),r.onError(I)}}).catch(S=>{if(a.isUsed())return;a.cancel();let I=Jc(S);if(!_(S)){let{fallbackOnLastTry:y}=S;if(y===!0){m.warn("DRM: Last `getLicense` attempt failed. Blacklisting the current session."),r.onError(new zn(I));return}}r.onError(I)})},a.signal),m.info("DRM: transmitting current keystatuses",n.sessionId),s();return;function s(){if(a.isUsed()||n.keyStatuses.size===0)return;let{warning:c,blacklistedKeyIds:l,whitelistedKeyIds:f}=$s(n,e,t);c!==void 0&&(r.onWarning(c),a.isUsed())||r.onKeyUpdate({whitelistedKeyIds:f,blacklistedKeyIds:l})}function d(c,l){let f;return new Promise((p,g)=>{try{m.debug("DRM: Calling `getLicense`",l);let y=e.getLicense(c,l),T=_(o.timeout)?10*1e3:o.timeout;T>=0&&(f=setTimeout(()=>{g(new ai(`"getLicense" timeout exceeded (${T} ms)`))},T)),Promise.resolve(y).then(S,I)}catch(y){I(y)}function S(y){f!==void 0&&clearTimeout(f),p(y)}function I(y){f!==void 0&&clearTimeout(f),g(y)}})}function u(c){return{totalRetry:c!=null?c:2,baseDelay:200,maxDelay:3e3,shouldRetry:l=>l instanceof ai||_(l)||l.noRetry!==!0,onRetry:l=>r.onWarning(Jc(l))}}}function Jc(n){if(n instanceof ai)return new fe("KEY_LOAD_TIMEOUT","The license server took too much time to respond.");let e=new fe("KEY_LOAD_ERROR","An error occured when calling `getLicense`.");return!_(n)&&w(n.message)&&(e.message=n.message),e}async function Kg(n,e){m.info("DRM: Updating MediaKeySession with message");try{await n.update(e)}catch(t){let r=t instanceof Error?t.toString():"`session.update` failed";throw new fe("KEY_UPDATE_ERROR",r)}m.info("DRM: MediaKeySession update succeeded.")}var zn=class n extends Error{constructor(e){super(e.message),Object.setPrototypeOf(this,n.prototype),this.sessionError=e}},ai=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,zn.prototype),this.message=e}};async function Vg(n,e){try{return await n.setServerCertificate(e)}catch(t){m.warn("DRM: mediaKeys.setServerCertificate returned an error",t instanceof Error?t:"");let r=t instanceof Error?t.toString():"`setServerCertificate` error";throw new fe("LICENSE_SERVER_CERTIFICATE_ERROR",r)}}async function Xs(n,e){if(In.hasOne(n)===!0)return m.info("DRM: The MediaKeys already has a server certificate, skipping..."),{type:"already-has-one"};if(typeof n.setServerCertificate!="function")return m.warn("DRM: Could not set the server certificate. mediaKeys.setServerCertificate is not a function"),{type:"method-not-implemented"};m.info("DRM: Setting server certificate on the MediaKeys"),In.prepare(n);try{let t=await Vg(n,e);return In.set(n,e),{type:"success",value:t}}catch(t){return{type:"error",value:zt(t)?t:new fe("LICENSE_SERVER_CERTIFICATE_ERROR","Unknown error when setting the server certificate.")}}}function Zs(n,e){if(isNaN(e)||e<0||e>=n.getLength())return;let t=n.getLength(),r=t-e;m.info("DRM: Too many stored persistent sessions, removing some.",t,r),n.deleteOldSessions(r)}function Js(n){if(qe(n,"com.microsoft.playready")||n==="com.chromecast.playready"||n==="com.youtube.playready")return"9a04f07998404286ab92e65be0885f95";if(n==="com.widevine.alpha")return"edef8ba979d64acea3c827dcd51d21ed";if(qe(n,"com.apple.fps"))return"94ce86fb07ff4f43adb893d2fa968ca2";if(qe(n,"com.nagra."))return"adb41c242dbf4a6d958b4457c0d27b95"}var si=class n{constructor(e){this._innerValues=e,this._lazyFormattedValues=null}constructRequestData(){return te(...this._innerValues.map(e=>e.data))}isCompatibleWith(e){let t=e instanceof n?e.getFormattedValues():e;return Kn(this.getFormattedValues(),t)}getFormattedValues(){return this._lazyFormattedValues===null&&(this._lazyFormattedValues=zg(this._innerValues)),this._lazyFormattedValues}};function zg(n){return n.slice().sort((e,t)=>e.systemId===t.systemId?0:e.systemId===void 0?1:t.systemId===void 0||e.systemId<t.systemId?-1:1).map(({systemId:e,data:t})=>({systemId:e,data:t,hash:$t(t)}))}var di=class extends ie{static hasEmeApis(){return!_(St.requestMediaKeySystemAccess)}constructor(e,t){super(),m.debug("DRM: Starting ContentDecryptor logic.");let r=new F;this._currentSessions=[],this._canceller=r,this._initDataQueue=[],this._stateData={state:0,isMediaKeysAttached:0,isInitDataQueueLocked:!0,data:null},this.error=null,St.onEncrypted(e,i=>{m.debug("DRM: Encrypted event received from media element.");let o=jo(i);o!==null&&this.onInitializationData(o)},r.signal),Gs(e,t,r.signal).then(i=>{let{options:o,mediaKeySystemAccess:a}=i,s;(_(o.persistentLicenseConfig)||o.persistentLicenseConfig.disableRetroCompatibility===!0)&&(s=Js(a.keySystem)),this.systemId=s,this._stateData.state===0&&(this._stateData={state:1,isInitDataQueueLocked:!0,isMediaKeysAttached:0,data:{mediaKeysInfo:i,mediaElement:e}},this.trigger("stateChange",this._stateData.state))}).catch(i=>{this._onFatalError(i)})}getState(){return this._stateData.state}attach(){if(this._stateData.state!==1)throw new Error("`attach` should only be called when in the WaitingForAttachment state");if(this._stateData.isMediaKeysAttached!==0){m.warn("DRM: ContentDecryptor's `attach` method called more than once.");return}let{mediaElement:e,mediaKeysInfo:t}=this._stateData.data,{options:r,mediaKeys:i,mediaKeySystemAccess:o,stores:a}=t;if(r.disableMediaKeysAttachmentLock===!0&&(this._stateData={state:2,isInitDataQueueLocked:!0,isMediaKeysAttached:1,data:{mediaKeysInfo:t,mediaElement:e}},this.trigger("stateChange",this._stateData.state),this._isStopped()))return;this._stateData.isMediaKeysAttached=1;let d={emeImplementation:St,loadedSessionsStore:a.loadedSessionsStore,mediaKeySystemAccess:o,mediaKeys:i,keySystemOptions:r};m.debug("DRM: Attaching current MediaKeys"),Us(e,d,this._canceller.signal).then(async()=>{this._stateData.isMediaKeysAttached=2;let{serverCertificate:u}=r;if(!_(u)){let l=await Xs(i,u);l.type==="error"&&this.trigger("warning",l.value)}if(this._isStopped())return;let c=this._stateData.state;this._stateData={state:2,isMediaKeysAttached:2,isInitDataQueueLocked:!1,data:{mediaKeysData:t}},c!==2&&this.trigger("stateChange",2),this._isStopped()||this._processCurrentInitDataQueue()}).catch(u=>{this._onFatalError(u)})}dispose(){this.removeEventListener(),this._stateData={state:4,isMediaKeysAttached:void 0,isInitDataQueueLocked:void 0,data:null},this._canceller.cancel(),this.trigger("stateChange",this._stateData.state)}onInitializationData(e){if(this._stateData.isInitDataQueueLocked!==!1){if(this._isStopped())throw new Error("ContentDecryptor either disposed or stopped.");this._initDataQueue.push(e);return}let{mediaKeysData:t}=this._stateData.data,r=Se(ce({},e),{values:new si(e.values)});this._processInitializationData(r,t).catch(i=>{this._onFatalError(i)})}async _processInitializationData(e,t){var S,I,y;m.hasLevel("DEBUG")&&m.debug("DRM: processing init data",(S=e.content)==null?void 0:S.adaptation.type,(I=e.content)==null?void 0:I.representation.bitrate,((y=e.keyIds)!=null?y:[]).map(T=>Oe(T)).join(", "));let{mediaKeySystemAccess:r,stores:i,options:o}=t;if(this._tryToUseAlreadyCreatedSession(e,t)||this._isStopped())return;if(o.singleLicensePer==="content"){let T=X(this._currentSessions,v=>v.source==="created-session");if(T!==void 0){let v=e.keyIds;if(v===void 0){e.content===void 0?m.warn("DRM: Unable to fallback from a non-decipherable quality."):(m.debug("DRM: Blacklisting new init data (due to singleLicensePer content policy)"),this.trigger("blackListProtectionData",e));return}if(T.record.associateKeyIds(v),e.content===void 0)m.warn("DRM: Unable to fallback from a non-decipherable quality.");else{if(m.hasLevel("DEBUG")){let E=v.reduce((R,k)=>`${R}, ${Oe(k)}`,"");m.debug("DRM: Blacklisting new key ids",E)}this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:[],blacklistedKeyIds:v,delistedKeyIds:[]})}return}}else if(o.singleLicensePer==="periods"&&e.content!==void 0){let{period:T}=e.content,v=this._currentSessions.filter(R=>R.source==="created-session"),E=new Set;td(E,T);for(let R of v){let k=Array.from(E);for(let A of k)if(R.record.isAssociatedWithKeyId(A)){R.record.associateKeyIds(E.values());for(let C of k)!R.keyStatuses.whitelisted.some(x=>me(x,C))&&!R.keyStatuses.blacklisted.some(x=>me(x,C))&&R.keyStatuses.blacklisted.push(C);m.hasLevel("DEBUG")&&m.debug("DRM: Session already created for",Oe(A),'under singleLicensePer "periods" policy'),this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:R.keyStatuses.whitelisted,blacklistedKeyIds:R.keyStatuses.blacklisted,delistedKeyIds:[]});return}}}this._lockInitDataQueue();let a;_(o.persistentLicenseConfig)?a="temporary":Hg(r)?a="persistent-license":(m.warn('DRM: Cannot create "persistent-license" session: not supported'),a="temporary");let{EME_DEFAULT_MAX_SIMULTANEOUS_MEDIA_KEY_SESSIONS:s,EME_MAX_STORED_PERSISTENT_SESSION_INFORMATION:d}=B.getCurrent(),u=typeof o.maxSessionCacheSize=="number"?o.maxSessionCacheSize:s,c=await Ks(e,i,a,u,this._canceller.signal);if(this._isStopped())return;let l={record:c.value.keySessionRecord,source:c.type,keyStatuses:{whitelisted:[],blacklisted:[]},blacklistedSessionError:null};this._currentSessions.push(l);let{mediaKeySession:f,sessionType:p}=c.value,g=!1;if(Qs(f,o,r.keySystem,{onKeyUpdate:T=>{let v=qg(e,l.record,o.singleLicensePer,l.source==="created-session",T.whitelistedKeyIds,T.blacklistedKeyIds);if(l.record.associateKeyIds(v.whitelisted),l.record.associateKeyIds(v.blacklisted),l.keyStatuses={whitelisted:v.whitelisted,blacklisted:v.blacklisted},l.record.getAssociatedKeyIds().length!==0&&p==="persistent-license"&&i.persistentSessionsStore!==null&&!g){let{persistentSessionsStore:E}=i;Zs(E,d-1),E.add(e,l.record.getAssociatedKeyIds(),f),g=!0}e.content!==void 0&&this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:v.whitelisted,blacklistedKeyIds:v.blacklisted,delistedKeyIds:[]}),this._unlockInitDataQueue()},onWarning:T=>{this.trigger("warning",T)},onError:T=>{var v;if(T instanceof Vn){m.warn("DRM: A session's closing condition has been triggered"),this._lockInitDataQueue();let E=this._currentSessions.indexOf(l);E>=0&&this._currentSessions.splice(E),e.content!==void 0&&this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:[],blacklistedKeyIds:[],delistedKeyIds:l.record.getAssociatedKeyIds()}),(v=i.persistentSessionsStore)==null||v.delete(f.sessionId),i.loadedSessionsStore.closeSession(f).catch(R=>{let k=R instanceof Error?R:"unknown error";m.warn("DRM: failed to close expired session",k)}).then(()=>this._unlockInitDataQueue()).catch(R=>this._onFatalError(R)),this._isStopped()||this.trigger("warning",T.reason);return}if(!(T instanceof zn)){this._onFatalError(T);return}l.blacklistedSessionError=T,e.content!==void 0&&(m.info("DRM: blacklisting Representations based on protection data."),this.trigger("blackListProtectionData",e)),this._unlockInitDataQueue()}},this._canceller.signal),(o.singleLicensePer===void 0||o.singleLicensePer==="init-data")&&this._unlockInitDataQueue(),c.type==="created-session"){let T=e.values.constructRequestData();try{await i.loadedSessionsStore.generateLicenseRequest(f,e.type,T)}catch(v){let E=i.loadedSessionsStore.getEntryForSession(f);if(E===null||E.closingStatus.type!=="none"){let R=this._currentSessions.indexOf(l);return R>=0&&this._currentSessions.splice(R,1),Promise.resolve()}throw new fe("KEY_GENERATE_REQUEST_ERROR",v instanceof Error?v.toString():"Unknown error")}}return Promise.resolve()}_tryToUseAlreadyCreatedSession(e,t){let{stores:r,options:i}=t,o=X(this._currentSessions,u=>u.record.isCompatibleWith(e));if(o===void 0)return!1;let a=o.blacklistedSessionError;if(!_(a))return e.type===void 0||e.content===void 0?(m.error("DRM: This initialization data has already been blacklisted but the current content is not known."),!0):(m.info("DRM: This initialization data has already been blacklisted. Blacklisting the related content."),this.trigger("blackListProtectionData",e),!0);if(e.keyIds!==void 0){let u;if(i.singleLicensePer===void 0||i.singleLicensePer==="init-data"){let{blacklisted:c}=o.keyStatuses;u=Xc(e.keyIds,c)}else{let{whitelisted:c}=o.keyStatuses;u=!Fn(e.keyIds,c)}if(u)return e.content===void 0?(m.error("DRM: Cannot forbid key id, the content is unknown."),!0):(m.info("DRM: Current initialization data is linked to blacklisted keys. Marking Representations as not decipherable"),this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:[],blacklistedKeyIds:e.keyIds,delistedKeyIds:[]}),!0)}if(r.loadedSessionsStore.reuse(e)!==null)return m.debug("DRM: Init data already processed. Skipping it."),!0;let d=this._currentSessions.indexOf(o);return d===-1?m.error("DRM: Unable to remove processed init data: not found."):(m.debug("DRM: A session from a processed init data is not available anymore. Re-processing it."),this._currentSessions.splice(d,1)),!1}_onFatalError(e){if(this._canceller.isUsed())return;let t=e instanceof Error?e:new Ve("NONE","Unknown decryption error");this.error=t,this._initDataQueue.length=0,this._stateData={state:3,isMediaKeysAttached:void 0,isInitDataQueueLocked:void 0,data:null},this._canceller.cancel(),this.trigger("error",t),this._stateData.state===3&&this.trigger("stateChange",this._stateData.state)}_isStopped(){return this._stateData.state===4||this._stateData.state===3}_processCurrentInitDataQueue(){for(;this._stateData.isInitDataQueueLocked===!1;){let e=this._initDataQueue.shift();if(e===void 0)return;this.onInitializationData(e)}}_lockInitDataQueue(){this._stateData.isInitDataQueueLocked===!1&&(this._stateData.isInitDataQueueLocked=!0)}_unlockInitDataQueue(){if(this._stateData.isMediaKeysAttached!==2){m.error("DRM: Trying to unlock in the wrong state");return}this._stateData.isInitDataQueueLocked=!1,this._processCurrentInitDataQueue()}};function Hg(n){let{sessionTypes:e}=n.getConfiguration();return e!==void 0&&$(e,"persistent-license")}function ef(n,e){return n.filter(t=>!e.some(r=>me(r,t)))}function Wg(n,e){let t=n.getAssociatedKeyIds(),r=ef(t,e);return r.length>0&&m.hasLevel("DEBUG")&&m.debug("DRM: KeySessionRecord's keys missing in the license, blacklisting them",r.map(i=>Oe(i)).join(", ")),r}function Gg(n,e){let t=[],{keyIds:r}=n;return r!==void 0&&(t=ef(r,e)),t.length>0&&m.hasLevel("DEBUG")&&m.debug("DRM: init data keys missing in the license, blacklisting them",t.map(i=>Oe(i)).join(", ")),t}function qg(n,e,t,r,i,o){var u;let a=[...i,...o],s=Wg(e,a),d=a.concat(s);if(t!==void 0&&t!=="init-data"){let c=Gg(n,d);d.push(...c);let{content:l}=n;if(r&&l!==void 0){if(t==="content"){let f=new Set,{manifest:p}=l;for(let g of p.periods)td(f,g);ed(f,d)}else if(t==="periods"){let{manifest:f}=l;for(let p of f.periods){let g=new Set;if(td(g,p),((u=n.content)==null?void 0:u.period.id)===p.id)ed(g,d);else{let S=Array.from(g);for(let I of S)if(d.some(T=>me(T,I))){ed(g,d);break}}}}}}return{whitelisted:i,blacklisted:d.slice(i.length)}}function ed(n,e){let t=Array.from(n.values());for(let r of t)e.some(o=>me(o,r))||e.push(r)}function td(n,e){let t=e.adaptations,r=hr(t).reduce((i,o)=>_(o)?i:i.concat(o),[]);for(let i of r)for(let o of i.representations)if(o.contentProtections!==void 0&&o.contentProtections.keyIds!==void 0)for(let a of o.contentProtections.keyIds)n.add(a.keyId)}function Hn(n){let e=Le.getState(n);return e===null?null:[e.mediaKeySystemAccess.keySystem,e.mediaKeySystemAccess.getConfiguration()]}var tf=di;var Wn=class extends ie{};function nd(n,e){let t={audio:null,video:null,text:null};if(e!==null&&(t.text=e.getBufferedRanges()),n===null)return t;let r=X(n.sourceBuffers,s=>s.type==="audio"),i=X(n.sourceBuffers,s=>s.type==="video"),o=r==null?void 0:r.getBuffered();o!==void 0&&(t.audio=o);let a=i==null?void 0:i.getBuffered();return a!==void 0&&(t.video=a),t}function rd(n,{autoPlay:e,initialPlayPerformed:t,manifest:r,mediaSource:i,speed:o,textDisplayer:a},s){return n.deriveReadOnlyObserver(function(u,c){let l=new F;l.linkToSignal(c),l.linkToSignal(s);let f=new W(p(),l.signal);return o.onUpdate(g,{clearSignal:l.signal,emitCurrentValue:!1}),u.onUpdate(g,{clearSignal:l.signal,emitCurrentValue:!1}),f;function p(){let S=u.getValue(),I=o.getValue();return jg(S,r),{maximumPosition:It(r),bufferGap:S.bufferGap,position:S.position,buffered:nd(i,a),duration:S.duration,rebuffering:S.rebuffering,freezing:S.freezing,paused:{last:S.paused,pending:Yg(t,e)},readyState:S.readyState,speed:I}}function g(){f.setValue(p())}})}function jg(n,e){if(!e.isDynamic||e.isLastPeriodKnown){let t=e.periods[e.periods.length-1];if(t!==void 0&&t.end!==void 0){let r=n.position.getWanted();if(r>=t.start&&r>=t.end-1){let i=n.buffered;(i.length===0||i.end(i.length-1)<n.duration-1)&&n.position.forceWantedPosition(t.end-1)}}}}function Yg(n,e){return n.getValue()?void 0:!e}function Gn(n){let{textTracks:e}=n;if(!_(e)){for(let t=0;t<e.length;t++)e[t].mode="disabled";if(n.hasChildNodes()){let{childNodes:t}=n;for(let r=t.length-1;r>=0;r--)if(t[r].nodeName==="track")try{n.removeChild(t[r])}catch(i){m.warn("Compat: Could not remove text track child from element.")}}}n.src="",n.removeAttribute("src")}var Qt=re,yn=Qt===void 0?void 0:_(Qt.MediaSource)?_(Qt.MozMediaSource)?_(Qt.WebKitMediaSource)?Qt.MSMediaSource:Qt.WebKitMediaSource:Qt.MozMediaSource:Qt.MediaSource;function id(n,e){if(typeof n.changeType=="function"){try{n.changeType(e)}catch(t){return m.warn("Could not call 'changeType' on the given SourceBuffer:",t instanceof Error?t:""),!1}return!0}return!1}function $g(n){let e=[];for(let t=0;t<n.length;t++){let r=n[t];r.updating&&e.push(r)}return e}function ui(n,e){if(m.debug("Init: Trying to call endOfStream"),n.readyState!=="open"){m.debug("Init: MediaSource not open, cancel endOfStream");return}let{sourceBuffers:t}=n,r=$g(t);if(r.length===0){m.info("Init: Triggering end of stream");try{n.endOfStream()}catch(o){m.error("Unable to call endOfStream",o instanceof Error?o:new Error("Unknown error"))}return}m.debug("Init: Waiting SourceBuffers to be updated before calling endOfStream.");let i=new F;i.linkToSignal(e);for(let o of r)Rc(o,()=>{i.cancel(),ui(n,e)},i.signal);kc(t,()=>{i.cancel(),ui(n,e)},i.signal)}function nf(n,e){let t=new F;t.linkToSignal(e),Un(n,()=>{m.debug("Init: MediaSource re-opened while end-of-stream is active"),t.cancel(),t=new F,t.linkToSignal(e),ui(n,t.signal)},e),ui(n,t.signal)}function od(){return sn}var Qg=365*24*3600,li=class{constructor(e){this._mediaSource=e,this._currentMediaSourceDurationUpdateCanceller=null}updateDuration(e,t){this._currentMediaSourceDurationUpdateCanceller!==null&&this._currentMediaSourceDurationUpdateCanceller.cancel(),this._currentMediaSourceDurationUpdateCanceller=new F;let r=this._mediaSource,i=this._currentMediaSourceDurationUpdateCanceller.signal,o=Jg(r,i),a=new F;a.linkToSignal(i),o.onUpdate(s,{emitCurrentValue:!0,clearSignal:i});function s(){if(a.cancel(),!o.getValue())return;a=new F,a.linkToSignal(i);let d=Zg(r.sourceBuffers,a.signal),u=new F;return u.linkToSignal(a.signal),d.onUpdate(c=>{u.cancel(),u=new F,u.linkToSignal(a.signal),!c&&of(r,e,t,u.signal)},{clearSignal:a.signal,emitCurrentValue:!0})}}stopUpdating(){this._currentMediaSourceDurationUpdateCanceller!==null&&(this._currentMediaSourceDurationUpdateCanceller.cancel(),this._currentMediaSourceDurationUpdateCanceller=null)}};function Xg(n,e,t){let r=e;t||(r=od()?1/0:rf(e));let i=0;for(let o=0;o<n.sourceBuffers.length;o++){let a=n.sourceBuffers[o],s=a.buffered.length;s>0&&(i=Math.max(a.buffered.end(s-1)))}if(r===n.duration)return"success";if(i>r){if(i<n.duration)try{m.info("Init: Updating duration to what is currently buffered",i),n.duration=i}catch(o){return m.warn("Duration Updater: Can't update duration on the MediaSource.",o instanceof Error?o:""),"failed"}return"partial"}else{let o=n.duration;try{if(m.info("Init: Updating duration",r),n.duration=r,n.readyState==="open"&&!isFinite(r)){let s=rf(e);m.info("Init: calling `mediaSource.setLiveSeekableRange`",s),n.setLiveSeekableRange(0,s)}}catch(s){return m.warn("Duration Updater: Can't update duration on the MediaSource.",s instanceof Error?s:""),"failed"}let a=Math.abs(n.duration-r);if(a>=.1){let s=Math.abs(n.duration-o);return a<s?"partial":"failed"}return"success"}}function Zg(n,e){if(n.length===0){let i=new W(!1);return i.finish(),i}let t=new W(!1,e);r();for(let i=0;i<n.length;i++){let o=n[i];o.addEventListener("updatestart",r),o.addEventListener("update",r),e.register(()=>{o.removeEventListener("updatestart",r),o.removeEventListener("update",r)})}return t;function r(){for(let i=0;i<n.length;i++)if(n[i].updating){t.setValueIfChanged(!0);return}t.setValueIfChanged(!1)}}function Jg(n,e){let t=new W(n.readyState==="open",e);return Un(n,()=>{m.debug("Init: Reacting to MediaSource open in duration updater"),t.setValueIfChanged(!0)},e),Co(n,()=>{m.debug("Init: Reacting to MediaSource ended in duration updater"),t.setValueIfChanged(!1)},e),Ao(n,()=>{m.debug("Init: Reacting to MediaSource close in duration updater"),t.setValueIfChanged(!1)},e),t}function of(n,e,t,r){if(Xg(n,e,t)==="success")return;let o=setTimeout(()=>{a(),of(n,e,t,r)},2e3),a=r.register(()=>{clearTimeout(o)})}function rf(n){return Math.max(Math.pow(2,32),n+Qg)}var ci=class extends ie{constructor(e){if(super(),this.id=e,this.sourceBuffers=[],this._canceller=new F,_(yn))throw new Z("MEDIA_SOURCE_NOT_SUPPORTED","No MediaSource Object was found in the current browser.");m.info("Init: Creating MediaSource");let t=new yn;this.readyState=t.readyState;let r=t.handle;this.handle=_(r)?{type:"media-source",value:t}:{type:"handle",value:r},this._mediaSource=t,this._durationUpdater=new li(t),this._endOfStreamCanceller=null,Un(t,()=>{this.readyState=t.readyState,this.trigger("mediaSourceOpen",null)},this._canceller.signal),Co(t,()=>{this.readyState=t.readyState,this.trigger("mediaSourceEnded",null)},this._canceller.signal),Ao(t,()=>{this.readyState=t.readyState,this.trigger("mediaSourceClose",null)},this._canceller.signal)}addSourceBuffer(e,t){let r=this._mediaSource.addSourceBuffer(t),i=new ad(e,t,r);return this.sourceBuffers.push(i),i}setDuration(e,t){this._durationUpdater.updateDuration(e,t)}interruptDurationSetting(){this._durationUpdater.stopUpdating()}maintainEndOfStream(){this._endOfStreamCanceller===null&&(this._endOfStreamCanceller=new F,this._endOfStreamCanceller.linkToSignal(this._canceller.signal),m.debug("Init: end-of-stream order received."),nf(this._mediaSource,this._endOfStreamCanceller.signal))}stopEndOfStream(){this._endOfStreamCanceller!==null&&(m.debug("Init: resume-stream order received."),this._endOfStreamCanceller.cancel(),this._endOfStreamCanceller=null)}dispose(){this.sourceBuffers.forEach(e=>e.dispose()),this._canceller.cancel(),eh(this._mediaSource)}},ad=class{constructor(e,t,r){this.type=e,this.codec=t,this._canceller=new F,this._sourceBuffer=r,this._operationQueue=[],this._currentOperations=[];let i=a=>{let s;a instanceof Error?s=a:a.error instanceof Error?s=a.error:s=new Error("Unknown SourceBuffer Error");let d=this._currentOperations;if(this._currentOperations=[],d.length===0)m.error("SBI: error for an unknown operation",s);else{let u=new it(s.name,s.message,s.name==="QuotaExceededError");for(let c of d)c.reject(u)}},o=()=>{let a=this._currentOperations;this._currentOperations=[];try{for(let s of a)s.resolve(Pe(this._sourceBuffer.buffered))}catch(s){for(let d of a)s instanceof Error&&s.name==="InvalidStateError"?d.resolve([]):d.reject(s)}this._performNextOperation()};r.addEventListener("error",i),r.addEventListener("updateend",o),this._canceller.signal.register(()=>{r.removeEventListener("error",i),r.removeEventListener("updateend",o)})}appendBuffer(...e){return m.debug("SBI: receiving order to push data to the SourceBuffer",this.type),this._addToQueue({operationName:0,params:e})}remove(e,t){return m.debug("SBI: receiving order to remove data from the SourceBuffer",this.type,e,t),this._addToQueue({operationName:1,params:[e,t]})}getBuffered(){try{return Pe(this._sourceBuffer.buffered)}catch(e){return m.error("Failed to get buffered time range of SourceBuffer",this.type,e instanceof Error?e:null),[]}}abort(){try{this._sourceBuffer.abort()}catch(e){m.debug("Init: Failed to abort SourceBuffer:",e instanceof Error?e:null)}this._emptyCurrentQueue()}dispose(){try{this._sourceBuffer.abort()}catch(e){}this._emptyCurrentQueue()}_emptyCurrentQueue(){let e=new Ae;this._currentOperations.length>0&&(this._currentOperations.forEach(t=>{t.reject(e)}),this._currentOperations=[]),this._operationQueue.length>0&&(this._operationQueue.forEach(t=>{t.reject(e)}),this._operationQueue=[])}_addToQueue(e){return new Promise((t,r)=>{let i=this._operationQueue.length===0&&this._currentOperations.length===0,o=Y({resolve:t,reject:r},e);this._operationQueue.push(o),i&&this._performNextOperation()})}_performNextOperation(){var t,r,i,o,a;if(this._currentOperations.length!==0||this._sourceBuffer.updating)return;let e=this._operationQueue.shift();if(e!==void 0)if(e.operationName===0){this._currentOperations=[{operationName:0,resolve:e.resolve,reject:e.reject}];let s=e.params[0],d=e.params[1],u=s;if(this._operationQueue.length>0&&this._operationQueue[0].operationName===0){let c;s instanceof ArrayBuffer?c=new Uint8Array(s):s instanceof Uint8Array?c=s:c=new Uint8Array(s.buffer);let l=[c];for(;((t=this._operationQueue[0])==null?void 0:t.operationName)===0;){let f=this._operationQueue[0],p=(r=d.appendWindow)!=null?r:[void 0,void 0],g=(i=f.params[1].appendWindow)!=null?i:[void 0,void 0],S=(o=d.timestampOffset)!=null?o:0,I=(a=f.params[1].timestampOffset)!=null?a:0;if(p[0]===g[0]&&p[1]===g[1]&&d.codec===f.params[1].codec&&S===I){let y=f.params[0],T;y instanceof ArrayBuffer?T=new Uint8Array(y):y instanceof Uint8Array?T=y:T=new Uint8Array(y.buffer),l.push(T),this._operationQueue.splice(0,1),this._currentOperations.push({operationName:0,resolve:f.resolve,reject:f.reject})}else break}l.length>1&&(m.info(`MMSI: Merging ${l.length} segments together for perf`,this.type),u=te(...l))}try{this._appendBufferNow(u,d)}catch(c){let l=c instanceof Error?new it(c.name,c.message,c.name==="QuotaExceededError"):new it("Error","Unknown SourceBuffer Error during appendBuffer",!1);this._currentOperations.forEach(f=>{f.reject(l)}),this._currentOperations=[]}}else{this._currentOperations=[e];let[s,d]=e.params;m.debug("SBI: removing data from SourceBuffer",this.type,s,d);try{this._sourceBuffer.remove(s,d)}catch(u){let c=u instanceof Error?new it(u.name,u.message,!1):new it("Error","Unknown SourceBuffer Error during remove",!1);e.reject(c),this._currentOperations=[]}}}_appendBufferNow(e,t){let r=this._sourceBuffer,{codec:i,timestampOffset:o,appendWindow:a=[]}=t;if(i!==void 0&&i!==this.codec&&(m.debug("SBI: updating codec",i),id(r,i)?this.codec=i:m.debug("SBI: could not update codec",i,this.codec)),o!==void 0&&r.timestampOffset!==o){let s=o;m.debug("SBI: updating timestampOffset",i,r.timestampOffset,s),r.timestampOffset=s}if(a[0]===void 0)r.appendWindowStart>0&&(m.debug("SBI: re-setting `appendWindowStart` to `0`"),r.appendWindowStart=0);else if(a[0]!==r.appendWindowStart){if(a[0]>=r.appendWindowEnd){let s=a[0]+1;m.debug("SBI: pre-updating `appendWindowEnd`",s),r.appendWindowEnd=s}m.debug("SBI: setting `appendWindowStart`",a[0]),r.appendWindowStart=a[0]}a[1]===void 0?r.appendWindowEnd!==1/0&&(m.debug("SBI: re-setting `appendWindowEnd` to `Infinity`"),r.appendWindowEnd=1/0):a[1]!==r.appendWindowEnd&&(m.debug("SBI: setting `appendWindowEnd`",a[1]),r.appendWindowEnd=a[1]),m.debug("SBI: pushing segment",this.type),r.appendBuffer(e)}};function eh(n){if(n.readyState!=="closed"){let{readyState:e,sourceBuffers:t}=n;for(let r=t.length-1;r>=0;r--){let i=t[r];try{if(e==="open"){m.info("Init: Aborting SourceBuffer before removing");try{i.abort()}catch(o){}}m.info("Init: Removing SourceBuffer from mediaSource"),n.removeSourceBuffer(i)}catch(o){}}t.length>0&&m.info("Init: Not all SourceBuffers could have been removed.")}}var th=Je();function sd(n,e){if(e!==null&&n.src===e&&(m.info("Init: Clearing HTMLMediaElement's src"),Gn(n)),e!==null)try{m.debug("Init: Revoking previous URL"),URL.revokeObjectURL(e)}catch(t){m.warn("Init: Error while revoking the media source URL",t instanceof Error?t:"")}}function nh(n,e){let t=w(n.src)?n.src:null;sd(n,t);let r=new ci(th());return e.register(()=>{r.dispose()}),r}function $o(n,e){return ot(e,t=>{let r=nh(n,e);if(r.addEventListener("mediaSourceOpen",()=>{m.info("Init: MediaSource opened"),t(r)},e),m.info("MTCI: Attaching MediaSource URL to the media element"),r.handle.type==="handle")n.srcObject=r.handle.value,e.register(()=>{sd(n,null)});else{let i=URL.createObjectURL(r.handle.value);n.src=i,e.register(()=>{sd(n,i)})}})}function dd(n,e,t){var i;if(!_(t)){let o=ln(n),a=It(n);if(_(t.position))if(_(t.wallClockTime))if(_(t.fromFirstPosition))if(_(t.fromLastPosition))if(_(t.fromLivePosition)){if(!_(t.percentage)){m.debug("Init: using startAt.percentage");let{percentage:s}=t;if(s>100)return a;if(s<0)return o;let d=+s/100,u=a-o;return o+u*d}}else{m.debug("Init: using startAt.fromLivePosition");let s=(i=cn(n))!=null?i:a,{fromLivePosition:d}=t;return d>=0?s:Math.max(o,s+d)}else{m.debug("Init: using startAt.fromLastPosition");let{fromLastPosition:s}=t;return s>=0?a:Math.max(o,a+s)}else{m.debug("Init: using startAt.fromFirstPosition");let{fromFirstPosition:s}=t;return s<=0?o:Math.min(a,o+s)}else{m.debug("Init: using startAt.wallClockTime");let s=n.availabilityStartTime===void 0?0:n.availabilityStartTime,d=t.wallClockTime-s;return Math.max(Math.min(d,a),o)}else return m.debug("Init: using startAt.minimumPosition"),Math.max(Math.min(t.position,a),o)}let r=ln(n);if(n.isLive){let{suggestedPresentationDelay:o,clockOffset:a}=n,s=It(n),d,{DEFAULT_LIVE_GAP:u}=B.getCurrent();if(a===void 0)m.info("Init: no clock offset found for a live content, starting close to maximum available position"),d=s;else{m.info("Init: clock offset found for a live content, checking if we can start close to it");let l=n.availabilityStartTime===void 0?0:n.availabilityStartTime,f=(V()+a)/1e3-l;d=Math.min(s,f)}let c=o!=null?o:e?u.LOW_LATENCY:u.DEFAULT;return m.debug(`Init: ${d} defined as the live time, applying a live gap of ${c}`),Math.max(d-c,r)}return m.info("Init: starting at the minimum available position:",r),r}function fi(){return Ca}function ud(n){return!(n&&an)}function ld(){return sn}function mi(n,e,t,r){let i=new F;i.linkToSignal(r);let o=new W(!1,i.signal);return n.listen(a=>{if(a.rebuffering!==null||a.freezing!==null||a.readyState===0)return;if(!ud(t)){if(isNaN(e.duration))return;if(e.duration>0){o.setValue(!0),i.cancel();return}}let s=ld()?4:3;if(a.readyState>=s&&(a.currentRange!==null||a.ended)&&(!fi()||e.duration>0)){o.setValue(!0),i.cancel();return}},{includeLastObservation:!0,clearSignal:i.signal}),o}var rh=!an,af=rh;var qn=class{constructor(e,t){this._last=e,this._wanted=t}serialize(){return[this._last,this._wanted]}getPolled(){return this._last}getWanted(){var e;return(e=this._wanted)!=null?e:this._last}forceWantedPosition(e){this._wanted=e}isAwaitingFuturePosition(){return this._wanted!==null}};function pi({mediaElement:n,playbackObserver:e,startTime:t,mustAutoPlay:r,isDirectfile:i,onWarning:o},a){let s=new W(!1,a);return{autoPlayResult:new Promise((u,c)=>{let l=a.register(y=>{c(y)});if(a.isCancelled())return;let f=!1,p=y=>{e.setCurrentTime(y),f=!0};if(!i||typeof t=="number"){let y=typeof t=="number"?t:t();y!==0&&p(y),g()}else e.listen((y,T)=>{if(y.readyState>=1){T();let v=typeof t=="number"?t:t();v!==0&&(af?p(v):setTimeout(()=>{p(v)},0)),g()}},{includeLastObservation:!0,clearSignal:a});function g(){let y=!1;e.listen((T,v)=>{if(!y&&(T.seeking!==0||T.event==="seeking"||T.event==="internal-seeking")&&(y=!0),!(f&&!y||T.readyState===0)){if(v(),fi()&&n.duration===0){let E=new Z("MEDIA_ERR_NOT_LOADED_METADATA","Cannot load automatically: your browser falsely announced having loaded the content.");o(E)}a.isCancelled()||S()}},{includeLastObservation:!0,clearSignal:a})}function S(){e.listen((y,T)=>{y.seeking===0&&y.rebuffering===null&&y.readyState>=1&&(T(),I())},{includeLastObservation:!0,clearSignal:a})}function I(){var T;if(m.info("Init: Can begin to play content"),r){if(n.ended)return m.warn("Init: autoplay is enabled but the video is ended. Skipping autoplay to prevent video to start again"),s.setValue(!0),s.finish(),l(),u({type:"skipped"})}else return n.autoplay&&m.warn("Init: autoplay is enabled on HTML media element. Media will play as soon as possible."),s.setValue(!0),s.finish(),l(),u({type:"skipped"});let y;try{y=(T=n.play())!=null?T:Promise.resolve()}catch(v){return l(),c(v)}y.then(()=>{if(!a.isCancelled())return s.setValue(!0),s.finish(),l(),u({type:"autoplay"})}).catch(v=>{if(l(),!a.isCancelled())if(v instanceof Error&&v.name==="NotAllowedError"){m.warn("Init: Media element can't play. It may be due to browser auto-play policies.");let E=new Z("MEDIA_ERR_BLOCKED_AUTOPLAY","Cannot trigger auto-play automatically: your browser does not allow it.");return o(E),a.isCancelled()?void 0:u({type:"autoplay-blocked"})}else c(v)})}}),initialPlayPerformed:s}}function gi(n,e,t,r,i){if(e.length===0)return u("No `keySystems` option given.");if(ue.decrypt===null)return u("EME feature not activated.");let o=new F;o.linkToSignal(i);let a=new W({initializationState:{type:"uninitialized",value:null},drmSystemId:void 0},i),s=ue.decrypt;if(!s.hasEmeApis())return u("EME API not available on the current page.");m.debug("Init: Creating ContentDecryptor");let d=new s(n,e);return d.addEventListener("stateChange",c=>{if(c===1){let l=new W(!1);l.onUpdate((f,p)=>{f&&(p(),c===1&&d.attach())},{clearSignal:o.signal}),a.setValue({initializationState:{type:"awaiting-media-link",value:{isMediaLinked:l}},drmSystemId:d.systemId})}else c===2&&(a.setValue({initializationState:{type:"initialized",value:null},drmSystemId:d.systemId}),d.removeEventListener("stateChange"))}),d.addEventListener("error",c=>{o.cancel(),r.onError(c)}),d.addEventListener("warning",c=>{r.onWarning(c)}),d.addEventListener("blackListProtectionData",c=>{r.onBlackListProtectionData(c)}),d.addEventListener("keyIdsCompatibilityUpdate",c=>{r.onKeyIdsCompatibilityUpdate(c)}),t.onUpdate(c=>{c!==null&&d.onInitializationData(c)},{clearSignal:o.signal}),o.signal.register(()=>{d.dispose()}),a;function u(c){t.onUpdate((f,p)=>{if(f===null)return;p();let g=new fe("MEDIA_IS_ENCRYPTED_ERROR",c);r.onError(g)},{clearSignal:i});let l=new W({initializationState:{type:"initialized",value:null},drmSystemId:void 0});return l.finish(),l}}var hi=class{constructor(e){this._displayer=e}pushTextData(e){try{return Promise.resolve(this._displayer.pushTextData(e))}catch(t){return Promise.reject(t)}}remove(e,t){try{return Promise.resolve(this._displayer.removeBuffer(e,t))}catch(r){return Promise.reject(r)}}reset(){this._displayer.reset()}stop(){this._displayer.stop()}};var Ii=1/60,Sn=class extends ie{constructor(e,t,r){super(),this._playbackObserver=e,this._manifest=t,this._speed=r,this._discontinuitiesStore=[],this._isStarted=!1,this._canceller=new F}start(){if(this._isStarted)return;this._isStarted=!0;let e=new md(this._playbackObserver,this._speed);this._canceller.signal.register(()=>{e.dispose()});let t=null;this._playbackObserver.listen(r=>{let i=this._discontinuitiesStore,{buffered:o,position:a,readyState:s,rebuffering:d,freezing:u}=r,{BUFFER_DISCONTINUITY_THRESHOLD:c,FREEZING_STALLED_DELAY:l,UNFREEZING_SEEK_DELAY:f,UNFREEZING_DELTA_POSITION:p}=B.getCurrent();if(u!==null){let T=V(),v=t===null?u.timestamp:t.attemptTimestamp;if(!a.isAwaitingFuturePosition()&&T-v>f&&(m.warn("Init: trying to seek to un-freeze player"),this._playbackObserver.setCurrentTime(this._playbackObserver.getCurrentTime()+p),t={attemptTimestamp:T}),T-u.timestamp>l){d===null?e.stopRebuffering():e.startRebuffering(),this.trigger("stalled","freezing");return}}else t=null;if(d===null){if(e.stopRebuffering(),s===1){let T;r.seeking!==0?T=r.seeking===1?"internal-seek":"seeking":T="not-ready",this.trigger("stalled",T);return}this.trigger("unstalled",null);return}let g=d.reason==="seeking"&&r.seeking===1?"internal-seek":d.reason;if(a.isAwaitingFuturePosition()){e.stopRebuffering(),m.debug("Init: let rebuffering happen as we're awaiting a future position"),this.trigger("stalled",g);return}if(e.startRebuffering(),this._manifest===null){this.trigger("stalled",g);return}let{position:S}=d;if(S!=null&&this._speed.getValue()>0){let T=ih(i,this._manifest,S);if(T!==null){let v=T+.001;if(v<=this._playbackObserver.getCurrentTime())m.info("Init: position to seek already reached, no seeking",this._playbackObserver.getCurrentTime(),v);else{m.warn("SA: skippable discontinuity found in the stream",a.getPolled(),v),this._playbackObserver.setCurrentTime(v),this.trigger("warning",fd(S,v));return}}}let I=S!=null?S:a.getPolled(),y=Ol(o,I);if(this._speed.getValue()>0&&y<c){let T=I+y+Ii;if(this._playbackObserver.getCurrentTime()<T){m.warn("Init: discontinuity encountered inferior to the threshold",I,T,c),this._playbackObserver.setCurrentTime(T),this.trigger("warning",fd(I,T));return}}for(let T=this._manifest.periods.length-2;T>=0;T--){let v=this._manifest.periods[T];if(v.end!==void 0&&v.end<=I){if(this._manifest.periods[T+1].start>I&&this._manifest.periods[T+1].start>this._playbackObserver.getCurrentTime()){let E=this._manifest.periods[T+1];this._playbackObserver.setCurrentTime(E.start),this.trigger("warning",fd(I,E.start));return}break}}this.trigger("stalled",g)},{includeLastObservation:!0,clearSignal:this._canceller.signal})}updateDiscontinuityInfo(e){this._isStarted||this.start();let t=this._playbackObserver.getReference().getValue();oh(this._discontinuitiesStore,e,t)}onLockedStream(e,t){var s;this._isStarted||this.start();let r=this._playbackObserver.getReference().getValue();if(!r.rebuffering||r.paused||this._speed.getValue()<=0||e!=="audio"&&e!=="video")return;let i=r.position.getWanted(),o=(s=r.rebuffering.position)!=null?s:i,a=t.start;i<a&&Math.abs(o-a)<1&&(m.warn(`Init: rebuffering because of a future locked stream.
3
+ [${d.letter}] P: ${d.periodId} || R: ${d.representationId}(${(u=d.bitrate)!=null?u:"unknown bitrate"})`}),s}function On(n,e){for(let t=0;t<n.length;t++)if(n[t].infos.period.start>=e.start)return t>0?n[t-1]:null;return n.length>0?n[n.length-1]:null}function Dn(n,e){for(let t of n)if(t.infos.period.start>e.start)return t;return null}var sc=Dr;var Ln=class{constructor(){this._segmentInventory=new sc}synchronizeInventory(e){this._segmentInventory.synchronizeBuffered(e)}getLastKnownInventory(){return this._segmentInventory.getInventory()}getSegmentHistory(e){return this._segmentInventory.getHistoryFor(e)}};var Lr=class extends Ln{constructor(e,t,r){super(),m.info("AVSB: calling `mediaSource.addSourceBuffer`",t);let i=r.addSourceBuffer(e,t);this.bufferType=e,this._sourceBuffer=i,this._lastInitSegmentUniqueId=null,this.codec=t,this._initSegmentsMap=new Map,this._pendingOperations=[]}declareInitSegment(e,t){dc(t),this._initSegmentsMap.set(e,t)}freeInitSegment(e){this._initSegmentsMap.delete(e)}async pushChunk(e){dc(e.data.chunk),m.debug("AVSB: receiving order to push data to the SourceBuffer",this.bufferType,fn(e.inventoryInfos));let t=this._getActualDataToPush(e.data);t.length===0&&t.push(new Uint8Array);let r=Promise.all(t.map(a=>{let{codec:s,timestampOffset:d,appendWindow:u}=e.data;return m.debug("AVSB: pushing segment",this.bufferType,fn(e.inventoryInfos)),this._sourceBuffer.appendBuffer(a,{codec:s,timestampOffset:d,appendWindow:u})}));this._addToOperationQueue(r,{type:0,value:e});let i;try{i=await r}catch(a){throw this._segmentInventory.insertChunk(e.inventoryInfos,!1,V()),a}e.inventoryInfos!==null&&this._segmentInventory.insertChunk(e.inventoryInfos,!0,V());let o=i[i.length-1];return this._segmentInventory.synchronizeBuffered(o),o}async removeBuffer(e,t){m.debug("AVSB: receiving order to remove data from the SourceBuffer",this.bufferType,e,t);let r=this._sourceBuffer.remove(e,t);this._addToOperationQueue(r,{type:1,value:{start:e,end:t}});let i=await r;return this._segmentInventory.synchronizeBuffered(i),i}async signalSegmentComplete(e){if(this._pendingOperations.length>0){let{promise:t}=this._pendingOperations[this._pendingOperations.length-1];this._addToOperationQueue(t,{type:2,value:e});try{await t}catch(r){}}this._segmentInventory.completeSegment(e)}getPendingOperations(){return this._pendingOperations.map(e=>e.operation)}dispose(){try{m.debug("AVSB: Calling `dispose` on the SourceBufferInterface"),this._sourceBuffer.dispose()}catch(e){m.debug(`AVSB: Failed to dispose a ${this.bufferType} SourceBufferInterface:`,e instanceof Error?e:"")}}_getActualDataToPush(e){let t=[];if(e.initSegmentUniqueId!==null&&!this._isLastInitSegment(e.initSegmentUniqueId)){let r=this._initSegmentsMap.get(e.initSegmentUniqueId);if(r===void 0)throw new Error("Invalid initialization segment uniqueId");let i=new ArrayBuffer(r.byteLength),o=new Uint8Array(i);o.set(r instanceof ArrayBuffer?new Uint8Array(r):new Uint8Array(r.buffer)),r=o,t.push(r),this._lastInitSegmentUniqueId=e.initSegmentUniqueId}return e.chunk!==null&&t.push(e.chunk),t}_isLastInitSegment(e){return this._lastInitSegmentUniqueId===null?!1:this._lastInitSegmentUniqueId===e}_addToOperationQueue(e,t){let r={operation:t,promise:e};this._pendingOperations.push(r);let i=()=>{let o=this._pendingOperations.indexOf(r);o>=0&&this._pendingOperations.splice(o,1)};e.then(i,i)}};function dc(n){if(h.CURRENT_ENV!==h.PRODUCTION&&(typeof n!="object"||n!==null&&!(n instanceof ArrayBuffer)&&!(n.buffer instanceof ArrayBuffer)))throw new Error("Invalid data given to the AudioVideoSegmentSink")}var vo=Lr;var Nr=class extends Ln{constructor(e){m.debug("HTSB: Creating TextSegmentSink"),super(),this.bufferType="text",this._sender=e,this._pendingOperations=[],this._sender.reset()}declareInitSegment(e){m.warn("HTSB: Declaring initialization segment for Text SegmentSink",e)}freeInitSegment(e){m.warn("HTSB: Freeing initialization segment for Text SegmentSink",e)}async pushChunk(e){let{data:t}=e;Kp(t.chunk);let r=this._sender.pushTextData(Se(ce({},t),{chunk:t.chunk}));this._addToOperationQueue(r,{type:0,value:e});let i=await r;return e.inventoryInfos!==null&&this._segmentInventory.insertChunk(e.inventoryInfos,!0,V()),this._segmentInventory.synchronizeBuffered(i),i}async removeBuffer(e,t){let r=this._sender.remove(e,t);this._addToOperationQueue(r,{type:1,value:{start:e,end:t}});let i=await r;return this._segmentInventory.synchronizeBuffered(i),i}async signalSegmentComplete(e){if(this._pendingOperations.length>0){let{promise:t}=this._pendingOperations[this._pendingOperations.length-1];this._addToOperationQueue(t,{type:2,value:e});try{await t}catch(r){}}this._segmentInventory.completeSegment(e)}getPendingOperations(){return this._pendingOperations.map(e=>e.operation)}dispose(){m.debug("HTSB: Disposing TextSegmentSink"),this._sender.reset()}_addToOperationQueue(e,t){let r={operation:t,promise:e};this._pendingOperations.push(r);let i=()=>{let o=this._pendingOperations.indexOf(r);o>=0&&this._pendingOperations.splice(o,1)};e.then(i,i)}};function Kp(n){if(h.CURRENT_ENV!==h.PRODUCTION&&(typeof n!="object"||n===null||typeof n.data!="string"||typeof n.type!="string"||n.language!==void 0&&typeof n.language!="string"||n.start!==void 0&&typeof n.start!="number"||n.end!==void 0&&typeof n.end!="number"))throw new Error("Invalid format given to a TextSegmentSink")}h.CURRENT_ENV===h.DEV&&(Vp=function(e){function t(r){}});var Vp;var uc=Nr;var zp=["audio","video","text"],Ur=class n{static isNative(e){return lc(e)}constructor(e,t,r){this._mediaSource=e,this._textInterface=r,this._hasVideo=t,this._initializedSegmentSinks={},this._onNativeBufferAddedOrDisabled=[]}getBufferTypes(){let e=this.getNativeBufferTypes();return this._textInterface!==null&&e.push("text"),e}getNativeBufferTypes(){return this._hasVideo?["video","audio"]:["audio"]}getStatus(e){let t=this._initializedSegmentSinks[e];return t===void 0?{type:"uninitialized"}:t===null?{type:"disabled"}:{type:"initialized",value:t}}waitForUsableBuffers(e){return this._areNativeBuffersUsable()?Promise.resolve():ot(e,t=>{let r,i=()=>{let o=this._onNativeBufferAddedOrDisabled.indexOf(r);o>=0&&this._onNativeBufferAddedOrDisabled.splice(o,1)};return r=()=>{this._areNativeBuffersUsable()&&(i(),t())},this._onNativeBufferAddedOrDisabled.push(r),i})}disableSegmentSink(e){let t=this._initializedSegmentSinks[e];if(t===null){m.warn(`SBS: The ${e} SegmentSink was already disabled.`);return}if(t!==void 0)throw new Error("Cannot disable an active SegmentSink.");this._initializedSegmentSinks[e]=null,n.isNative(e)&&this._onNativeBufferAddedOrDisabled.forEach(r=>r())}createSegmentSink(e,t){let r=this._initializedSegmentSinks[e];if(lc(e)){if(!_(r))return r instanceof vo&&r.codec!==t?m.warn("SB: Reusing native SegmentSink with codec",r.codec,"for codec",t):m.info("SB: Reusing native SegmentSink with codec",t),r;m.info("SB: Adding native SegmentSink with codec",t);let o=e==="audio"?"audio":"video",a=new vo(o,t,this._mediaSource);return this._initializedSegmentSinks[e]=a,this._onNativeBufferAddedOrDisabled.forEach(s=>s()),a}if(!_(r))return m.info("SB: Reusing a previous custom SegmentSink for the type",e),r;let i;if(e==="text"){if(m.info("SB: Creating a new text SegmentSink"),this._textInterface===null)throw new Error("HTML Text track feature not activated");return i=new uc(this._textInterface),this._initializedSegmentSinks.text=i,i}throw m.error("SB: Unknown buffer type:",e),new Z("BUFFER_TYPE_UNKNOWN","The player wants to create a SegmentSink of an unknown type.")}disposeSegmentSink(e){let t=this._initializedSegmentSinks[e];if(_(t)){m.warn("SB: Trying to dispose a SegmentSink that does not exist");return}m.info("SB: Aborting SegmentSink",e),t.dispose(),delete this._initializedSegmentSinks[e]}disposeAll(){zp.forEach(e=>{this.getStatus(e).type==="initialized"&&this.disposeSegmentSink(e)})}_areNativeBuffersUsable(){let e=this.getNativeBufferTypes();return!(e.some(i=>this._initializedSegmentSinks[i]===void 0)||e.every(i=>this._initializedSegmentSinks[i]===null))}createSegmentSinkMetricsForType(e){var t,r;return{bufferType:e,codec:(t=this._initializedSegmentSinks[e])==null?void 0:t.codec,segmentInventory:(r=this._initializedSegmentSinks[e])==null?void 0:r.getLastKnownInventory().map(i=>Se(ce({},i),{infos:Hp(i.infos)}))}}getSegmentSinksMetrics(){return{segmentSinks:{audio:this.createSegmentSinkMetricsForType("audio"),video:this.createSegmentSinkMetricsForType("video"),text:this.createSegmentSinkMetricsForType("text")}}}};function lc(n){return n==="audio"||n==="video"}function Hp(n){return{adaptation:n.adaptation.getMetadataSnapshot(),period:n.period.getMetadataSnapshot(),representation:n.representation.getMetadataSnapshot()}}var qt=Ur;var Br=class{constructor(e){this._weakMap=new WeakMap,this._fn=e}get(e){let t=this._weakMap.get(e);if(t===void 0){let r=this._fn(e);return this._weakMap.set(e,r),r}else return t}destroy(e){this._weakMap.delete(e)}};var Fr=class extends ie{constructor(e,t,r,i){super(),this._content=e,this._currentCanceller=null,this._downloadQueue=t,this._initSegmentRequest=null,this._mediaSegmentRequest=null,this._segmentFetcher=r,this._initSegmentInfoRef=new W(void 0),this._mediaSegmentAwaitingInitMetadata=null,i||this._initSegmentInfoRef.setValue(null)}getRequestedInitSegment(){return this._initSegmentRequest===null?null:this._initSegmentRequest.segment}getRequestedMediaSegment(){return this._mediaSegmentRequest===null?null:this._mediaSegmentRequest.segment}start(){this._currentCanceller===null&&(this._currentCanceller=new F,this._downloadQueue.onUpdate(e=>{let{segmentQueue:t}=e;if(t.length>0&&t[0].segment.id===this._mediaSegmentAwaitingInitMetadata)return;let r=this._mediaSegmentRequest;if(t.length===0){if(r===null)return;m.debug("Stream: no more media segment to request. Cancelling queue.",this._content.adaptation.type),this._restartMediaSegmentDownloadingQueue();return}else if(r===null){m.debug("Stream: Media segments now need to be requested. Starting queue.",this._content.adaptation.type,t.length),this._restartMediaSegmentDownloadingQueue();return}else{let i=t[0];if(r.segment.id!==i.segment.id){m.debug("Stream: Next media segment changed, cancelling previous",this._content.adaptation.type),this._restartMediaSegmentDownloadingQueue();return}r.priority!==i.priority&&(m.debug("Stream: Priority of next media segment changed, updating",this._content.adaptation.type,r.priority,i.priority),this._segmentFetcher.updatePriority(r.request,i.priority));return}},{emitCurrentValue:!0,clearSignal:this._currentCanceller.signal}),this._downloadQueue.onUpdate(e=>{var r;let t=this._initSegmentRequest;if(e.initSegment!==null&&t!==null){e.initSegment.priority!==t.priority&&this._segmentFetcher.updatePriority(t.request,e.initSegment.priority);return}else if(((r=e.initSegment)==null?void 0:r.segment.id)===(t==null?void 0:t.segment.id))return;e.initSegment===null&&m.debug("Stream: no more init segment to request. Cancelling queue.",this._content.adaptation.type),this._restartInitSegmentDownloadingQueue(e.initSegment)},{emitCurrentValue:!0,clearSignal:this._currentCanceller.signal}))}stop(){var e;(e=this._currentCanceller)==null||e.cancel(),this._currentCanceller=null}_restartMediaSegmentDownloadingQueue(){this._mediaSegmentRequest!==null&&this._mediaSegmentRequest.canceller.cancel();let{segmentQueue:e}=this._downloadQueue.getValue(),t=e[0],r=i=>{if(this._currentCanceller!==null&&this._currentCanceller.isUsed()){this._mediaSegmentRequest=null;return}if(i===void 0){this._mediaSegmentRequest=null,this.trigger("emptyQueue",null);return}let o=new F,a=this._currentCanceller===null?Q:o.linkToSignal(this._currentCanceller.signal),{segment:s,priority:d}=i,u=Y({segment:s},this._content),c=!1,l=!1;o.signal.register(()=>{this._mediaSegmentRequest=null,!c&&(this._mediaSegmentAwaitingInitMetadata===s.id&&(this._mediaSegmentAwaitingInitMetadata=null),c=!0,l=!1)});let f=S=>{J(S.segmentType==="media","Should have loaded a media segment."),this.trigger("parsedMediaSegment",Y({},S,{segment:s}))},p=()=>{let S=this._downloadQueue.getValue().segmentQueue;if(S.length===0){c=!0,this.trigger("emptyQueue",null);return}else S[0].segment.id===s.id&&S.shift();c=!0,r(S[0])},g=this._segmentFetcher.createRequest(u,d,{onRetry:S=>{this.trigger("requestRetry",{segment:s,error:S})},beforeInterrupted(){m.info("Stream: segment request interrupted temporarly.",s.id,s.time)},onChunk:S=>{let I=this._initSegmentInfoRef.getValue();I!==void 0?f(S(I!=null?I:void 0)):(l=!0,this._initSegmentInfoRef.waitUntilDefined(y=>{f(S(y!=null?y:void 0))},{clearSignal:o.signal}))},onAllChunksReceived:()=>{l?(this._mediaSegmentAwaitingInitMetadata=s.id,this._initSegmentInfoRef.waitUntilDefined(()=>{this._mediaSegmentAwaitingInitMetadata=null,l=!1,this.trigger("fullyLoadedSegment",s)},{clearSignal:o.signal})):this.trigger("fullyLoadedSegment",s)},beforeEnded:()=>{a(),this._mediaSegmentRequest=null,l?this._initSegmentInfoRef.waitUntilDefined(p,{clearSignal:o.signal}):p()}},o.signal);g.catch(S=>{a(),c||(c=!0,this.stop(),this.trigger("error",S))}),this._mediaSegmentRequest={segment:s,priority:d,request:g,canceller:o}};r(t)}_restartInitSegmentDownloadingQueue(e){if(this._currentCanceller!==null&&this._currentCanceller.isUsed()||(this._initSegmentRequest!==null&&this._initSegmentRequest.canceller.cancel(),e===null))return;let t=new F,r=this._currentCanceller===null?Q:t.linkToSignal(this._currentCanceller.signal),{segment:i,priority:o}=e,a=Y({segment:i},this._content),s=!1,d=this._segmentFetcher.createRequest(a,o,{onRetry:u=>{this.trigger("requestRetry",{segment:i,error:u})},beforeInterrupted:()=>{m.info("Stream: init segment request interrupted temporarly.",i.id)},beforeEnded:()=>{r(),this._initSegmentRequest=null,s=!0},onChunk:u=>{var l;let c=u(void 0);J(c.segmentType==="init","Should have loaded an init segment."),this.trigger("parsedInitSegment",Y({},c,{segment:i})),c.segmentType==="init"&&this._initSegmentInfoRef.setValue((l=c.initTimescale)!=null?l:null)},onAllChunksReceived:()=>{this.trigger("fullyLoadedSegment",i)}},t.signal);d.catch(u=>{r(),s||(s=!0,this.stop(),this.trigger("error",u))}),t.signal.register(()=>{this._initSegmentRequest=null,!s&&(s=!0)}),this._initSegmentRequest={segment:i,priority:o,request:d,canceller:t}}};function is(n,e,t,r,i){let{period:o,adaptation:a,representation:s}=n,d=Wp(i,e);if(d===null){if(t===null){if(r&&o.end!==void 0&&e.end>=o.end)return{start:void 0,end:null};let l=s.index.checkDiscontinuity(e.start);if(l!==null)return{start:void 0,end:l}}return null}let u=i[d];if(u.bufferedStart!==void 0&&u.bufferedStart>e.start&&(t===null||u.infos.segment.end<=t)){let l=u.bufferedStart;return!r&&s.index.awaitSegmentBetween(e.start,l)!==!1?null:(m.debug("RS: current discontinuity encountered",a.type,u.bufferedStart),{start:void 0,end:l})}let c=Gp(i,e,d+1);if(c!==null){let l=i[c-1],f=i[c];if(t===null||f.infos.segment.end<=t){if(!r&&s.index.awaitSegmentBetween(l.infos.segment.end,f.infos.segment.time)!==!1)return null;let p=l.bufferedEnd,g=f.bufferedStart;return m.debug("RS: future discontinuity encountered",a.type,p,g),{start:p,end:g}}}if(t===null){if(r&&o.end!==void 0){if(e.end<o.end)return null;let l=qp(i,o.end);if(l!==null){let f=i[l];if(f.bufferedEnd!==void 0&&f.bufferedEnd<o.end)return m.debug("RS: discontinuity encountered at the end of the current period",a.type,f.bufferedEnd,o.end),{start:f.bufferedEnd,end:null}}}if(o.end!==void 0&&e.end>=o.end)return null;for(let l=i.length-1;l>=0;l--){let f=i[l];if(f.bufferedStart===void 0)break;if(f.bufferedStart<e.end){if(f.bufferedEnd!==void 0&&f.bufferedEnd<e.end){let p=s.index.checkDiscontinuity(e.end);if(p!==null)return{start:f.bufferedEnd,end:p}}return null}}}return null}function Wp(n,e){for(let t=0;t<n.length;t++){let r=n[t];if(r.bufferedStart===void 0||r.bufferedEnd===void 0||r.bufferedStart>=e.end)return null;if(r.bufferedEnd>e.start)return t}return null}function Gp(n,e,t){if(t<=0)return m.error("RS: Asked to check a discontinuity before the first chunk."),null;for(let r=t;r<n.length;r++){let i=n[r],o=n[r-1];if(i.bufferedStart===void 0||o.bufferedEnd===void 0||i.bufferedStart>=e.end)return null;if(i.bufferedStart-o.bufferedEnd>0)return r}return null}function qp(n,e){for(let t=n.length-1;t>=0;t--){let r=n[t];if(r.bufferedStart===void 0)return null;if(r.bufferedStart<e)return t}return null}function os({bufferedSegments:n,content:e,currentPlaybackTime:t,fastSwitchThreshold:r,getBufferedHistory:i,neededRange:o,segmentsBeingPushed:a,maxBufferSize:s}){let{adaptation:d,representation:u}=e,c=jp(n,a,s),l=u.index.getSegments(o.start,o.end-o.start),f=n.filter(R=>!cc(R.infos,e,t,r)),p=eg(f,o,i),{MINIMUM_SEGMENT_SIZE:g,MIN_BUFFER_AHEAD:S}=B.getCurrent(),I=!1,y=Math.min(1/60,g),T=!1,v=[];return{segmentsToLoad:l.filter(R=>{let k=Y({segment:R},e);if(a.length>0&&a.some(P=>Et(k,P)))return!1;let{duration:A,time:C,end:x}=R;if(R.isInit)return!0;if(I)return v.push(R),!1;if(R.complete&&A<g||a.length>0&&a.some(P=>{if(P.period.id!==e.period.id||P.adaptation.id!==e.adaptation.id)return!1;let{segment:M}=P;if(M.time-y>C)return!1;if(M.complete){if(M.end+y<x)return!1}else if(Math.abs(C-M.time)>C)return!1;return!cc(P,k,t,r)}))return!1;for(let L=0;L<p.length;L++){let P=p[L],M=P.infos.period.id===e.period.id;if(P.status===1&&M){let O=P.infos.segment;if(C-O.time>-y){if(O.complete){if(O.end-x>-y)return!1}else if(Math.abs(C-O.time)<y)return!1}}}let N=A*e.representation.bitrate;if(c-N<0&&(T=!0,C>o.start+S))return I=!0,v.push(R),!1;let D=i(k);if(D.length>1){let L=D[D.length-1],P=D[D.length-2];if(L.buffered===null&&P.buffered===null)return m.warn("Stream: Segment GCed multiple times in a row, ignoring it.","If this happens a lot and lead to unpleasant experience, please check your device's available memory. If it's low when this message is emitted, you might want to update the RxPlayer's settings (`maxBufferAhead`, `maxVideoBufferSize` etc.) so less memory is used by regular media data buffering."+d.type,u.id,R.time),!1}for(let L=0;L<p.length;L++){let P=p[L];if(P.end+y>C){let M=P.start>C+y||Yp(p,L).end<x-y;return M&&(c-=N),M}}return c-=N,!0}),segmentsOnHold:v,isBufferFull:T}}function jp(n,e,t){let r=t*8e3;return r-=e.reduce((i,o)=>{let{bitrate:a}=o.representation,{duration:s}=o.segment;return i+a*s},0),n.reduce((i,o)=>o.chunkSize!==void 0?i-o.chunkSize*8:i,r)}function Yp(n,e){let t=e+1,{MINIMUM_SEGMENT_SIZE:r}=B.getCurrent(),i=Math.min(1/60,r);for(;t<n.length-1&&n[t-1].end+i>n[t].start;)t++;return t--,n[t]}function cc(n,e,t,r){let{CONTENT_REPLACEMENT_PADDING:i}=B.getCurrent();if(n.period.id!==e.period.id)return!1;let{segment:o}=n;return o.time<t+i?!1:n.adaptation.id!==e.adaptation.id?!0:$p(n.representation,e.representation,r)}function $p(n,e,t){let r=n.bitrate,{BITRATE_REBUFFERING_RATIO:i}=B.getCurrent();if(t===void 0){let o=r*i;return e.bitrate>o}return r<t&&e.bitrate>r}function Qp(n,e,t){let{MAX_TIME_MISSING_FROM_COMPLETE_SEGMENT:r}=B.getCurrent();return n.bufferedStart===void 0||e!==null&&e.bufferedEnd!==void 0&&n.bufferedStart-e.bufferedEnd<.1?!1:t<n.bufferedStart&&n.bufferedStart-n.start>r?(m.info("Stream: The start of the wanted segment has been garbage collected",n.start,n.bufferedStart),!0):!1}function Xp(n,e,t){let{MAX_TIME_MISSING_FROM_COMPLETE_SEGMENT:r}=B.getCurrent();return n.bufferedEnd===void 0||e!==null&&e.bufferedStart!==void 0&&e.bufferedStart-n.bufferedEnd<.1?!1:t>n.bufferedEnd&&n.end-n.bufferedEnd>r?(m.info("Stream: The end of the wanted segment has been garbage collected",n.end,n.bufferedEnd),!0):!1}function Zp(n,e){var a,s;if(n.length<2)return!0;let r=(a=n[n.length-1].buffered)==null?void 0:a.start;if(e!==void 0&&r!==void 0&&e-r>.05)return!0;let o=(s=n[n.length-2].buffered)==null?void 0:s.start;return o===void 0||r===void 0?!0:Math.abs(o-r)>.01}function Jp(n,e){var a,s;if(n.length<2)return!0;let r=(a=n[n.length-1].buffered)==null?void 0:a.end;if(e!==void 0&&r!==void 0&&r-e>.05)return!0;let o=(s=n[n.length-2].buffered)==null?void 0:s.end;return o===void 0||r===void 0?!0:Math.abs(o-r)>.01}function eg(n,e,t){return n.filter((r,i,o)=>{let a=i===0?null:o[i-1],s=i>=o.length-1?null:o[i+1],d=null;if(Qp(r,a,e.start)){if(d=t(r.infos),Zp(d,r.bufferedStart))return!1;m.debug("Stream: skipping segment gc-ed at the start",r.start,r.bufferedStart)}if(Xp(r,s,e.end)){if(d=d!=null?d:t(r.infos),Jp(d,r.bufferedEnd))return!1;m.debug("Stream: skipping segment gc-ed at the end",r.end,r.bufferedEnd)}return!0})}function Kr(n,e){let t=n-e,{SEGMENT_PRIORITIES_STEPS:r}=B.getCurrent();for(let i=0;i<r.length;i++)if(t<r[i])return i;return r.length}function as(n,e,t,r,i,o,a){var C,x,N;let{representation:s}=n,d=(x=(C=t.getIsPaused())!=null?C:t.getReference().getValue().paused.pending)!=null?x:t.getReference().getValue().paused.last,u=(N=t.getPlaybackRate())!=null?N:t.getReference().getValue().speed,c=e;(d===void 0||u===void 0||d||u<=0)&&(c-=.1);let l=tg(n,c,i),f=s.index.shouldRefresh(l.start,l.end),p=a.getPendingOperations().filter(D=>D.type===2).map(D=>D.value),g=a.getLastKnownInventory(),S=t.getCurrentTime();S===void 0&&(S=t.getReference().getValue().position.getWanted());let I=a.getSegmentHistory.bind(a),{segmentsToLoad:y,segmentsOnHold:T,isBufferFull:v}=os({content:n,bufferedSegments:g,currentPlaybackTime:S,fastSwitchThreshold:r,getBufferedHistory:I,neededRange:l,segmentsBeingPushed:p,maxBufferSize:o}),E=y.map(D=>({priority:Kr(D.time,c),segment:D})),R=s.index.isInitialized()&&!s.index.isStillAwaitingFutureSegments()&&l.hasReachedPeriodEnd&&E.length===0&&T.length===0,k=null;return p.length>0&&(k=Math.min(...p.map(D=>D.segment.time))),T.length>0&&(k=k!==null?Math.min(k,T[0].time):T[0].time),E.length>0&&(k=k!==null?Math.min(k,E[0].segment.time):E[0].segment.time),{imminentDiscontinuity:is(n,l,k,R,g),hasFinishedLoading:R,neededSegments:E,isBufferFull:v,shouldRefreshManifest:f}}function tg(n,e,t){var l;let r,{manifest:i,period:o,representation:a}=n,s=a.index.getLastAvailablePosition(),d=a.index;!_(s)&&qt.isNative(n.adaptation.type)&&e>=s&&d.isInitialized()&&!d.isStillAwaitingFutureSegments()&&ng(i,o,e)?r=s-1:r=e-.1;let u=r+t,c;return!a.index.isInitialized()||a.index.isStillAwaitingFutureSegments()||o.end===void 0?c=!1:s===void 0?c=u>=o.end:s===null?c=!0:c=u>=s,{start:Math.max(r,o.start),end:Math.min(u,(l=o.end)!=null?l:1/0),hasReachedPeriodEnd:c}}function ng(n,e,t){var i;let r=n.getPeriodAfter(e);return e.containsTime(t,r)&&n.isLastPeriodKnown&&e.id===((i=n.periods[n.periods.length-1])==null?void 0:i.id)}function pn(n){return new Promise(e=>{setTimeout(e,n)})}async function Vr(n,e,t,r,i){try{return await e.pushChunk(t)}catch(o){if(i.isCancelled()&&o instanceof Ae)throw o;if(!(o instanceof it)||!o.isBufferFull){let d=o instanceof Error?o.toString():"An unknown error happened when pushing content";throw new Z("BUFFER_APPEND_ERROR",d,{tracks:[Wt(t.inventoryInfos.adaptation)]})}let{position:a}=n.getReference().getValue(),s=a.getWanted();try{m.warn("Stream: Running garbage collector");let d=Math.max(s-5,0),u=s+r.getValue()+12;if(await e.removeBuffer(0,d),await e.removeBuffer(u,Number.MAX_VALUE),await pn(200),i.cancellationError!==null)throw i.cancellationError;return await e.pushChunk(t)}catch(d){if(d instanceof Ae)throw d;let u=d instanceof Error?d.toString():"Could not clean the buffer";throw new Z("BUFFER_FULL_ERROR",u,{tracks:[Wt(t.inventoryInfos.adaptation)]})}}}async function ss({playbackObserver:n,content:e,initSegmentUniqueId:t,segment:r,segmentSink:i,bufferGoal:o},a){if(a.cancellationError!==null)throw a.cancellationError;let s=e.representation.getMimeTypeString(),d={initSegmentUniqueId:t,chunk:null,timestampOffset:0,appendWindow:[void 0,void 0],codec:s},u=Y({segment:r,chunkSize:void 0,start:0,end:0},e),c=await Vr(n,i,{data:d,inventoryInfos:u},o,a);return{content:e,segment:r,buffered:c}}async function ds({playbackObserver:n,bufferGoal:e,content:t,initSegmentUniqueId:r,parsedSegment:i,segment:o,segmentSink:a},s){var k,A;if(i.chunkData===null)return null;if(s.cancellationError!==null)throw s.cancellationError;let{chunkData:d,chunkInfos:u,chunkOffset:c,chunkSize:l,appendWindow:f}=i,p=t.representation.getMimeTypeString(),{APPEND_WINDOW_SECURITIES:g}=B.getCurrent(),S=[f[0]!==void 0?Math.max(0,f[0]-g.START):void 0,f[1]!==void 0?f[1]+g.END:void 0],I={initSegmentUniqueId:r,chunk:d,timestampOffset:c,appendWindow:S,codec:p},y=(k=u==null?void 0:u.time)!=null?k:o.time,T=(A=u==null?void 0:u.duration)!=null?A:o.duration,v=y+T;S[0]!==void 0&&(y=Math.max(y,S[0])),S[1]!==void 0&&(v=Math.min(v,S[1]));let E=Y({segment:o,chunkSize:l,start:y,end:v},t),R=await Vr(n,a,{data:I,inventoryInfos:E},e,s);return{content:t,segment:o,buffered:R}}function us({content:n,options:e,playbackObserver:t,segmentSink:r,segmentFetcher:i,terminate:o},a,s){let{period:d,adaptation:u,representation:c}=n,{bufferGoal:l,maxBufferSize:f,drmSystemId:p,fastSwitchThreshold:g}=e,S=u.type,I=new F;I.linkToSignal(s);let y=new F;y.linkToSignal(I.signal);let T={segment:c.index.getInitSegment(),uniqueId:null,isLoaded:!1};I.signal.register(()=>{T.uniqueId!==null&&r.freeInitSegment(T.uniqueId)});let v=new W({initSegment:null,segmentQueue:[]},y.signal),E=T.segment!==null;E||(T.isLoaded=!0);let R=!1;if(p!==void 0){let N=c.getEncryptionData(p);if(N.length>0&&N.every(D=>D.keyIds!==void 0)&&(R=!0,a.encryptionDataEncountered(N.map(D=>Y({content:n},D))),I.isUsed()))return}let k=new Fr(n,v,i,E);k.addEventListener("error",N=>{y.signal.isCancelled()||(I.cancel(),a.error(N))}),k.addEventListener("parsedInitSegment",C),k.addEventListener("parsedMediaSegment",C),k.addEventListener("emptyQueue",A),k.addEventListener("requestRetry",N=>{if(a.warning(N.error),y.signal.isCancelled())return;let D=N.segment,{index:L}=c;L.isSegmentStillAvailable(D)===!1?A():L.canBeOutOfSyncError(N.error,D)&&a.manifestMightBeOufOfSync()}),k.addEventListener("fullyLoadedSegment",N=>{r.signalSegmentComplete(Y({segment:N},n)).catch(x)}),k.start(),y.signal.register(()=>{k.removeEventListener(),k.stop()}),t.listen(A,{includeLastObservation:!1,clearSignal:y.signal}),n.manifest.addEventListener("manifestUpdate",A,y.signal),l.onUpdate(A,{emitCurrentValue:!1,clearSignal:y.signal}),f.onUpdate(A,{emitCurrentValue:!1,clearSignal:y.signal}),o.onUpdate(A,{emitCurrentValue:!1,clearSignal:y.signal}),A();return;function A(){if(y.isUsed())return;let N=t.getReference().getValue(),D=N.position.getWanted(),L=as(n,D,t,g.getValue(),l.getValue(),f.getValue(),r),{neededSegments:P}=L,M=null;if(c.index.isInitialized()){if(P.length>0&&!T.isLoaded&&T.segment!==null){let H=P[0].priority;M={segment:T.segment,priority:H}}}else if(T.segment===null)m.warn("Stream: Uninitialized index without an initialization segment");else if(T.isLoaded)m.warn("Stream: Uninitialized index with an already loaded initialization segment");else{let H=N.position.getWanted();M={segment:T.segment,priority:Kr(d.start,H)}}let O=o.getValue();if(O===null)v.setValue({initSegment:M,segmentQueue:P});else if(O.urgent){m.debug("Stream: Urgent switch, terminate now.",S),v.setValue({initSegment:null,segmentQueue:[]}),v.finish(),y.cancel(),a.terminating();return}else{let H=P[0],q=k.getRequestedInitSegment(),G=k.getRequestedMediaSegment(),K=G===null||H===void 0||G.id!==H.segment.id?[]:[H],ne=q===null?null:M;if(v.setValue({initSegment:ne,segmentQueue:K}),K.length===0&&ne===null){m.debug("Stream: No request left, terminate",S),v.finish(),y.cancel(),a.terminating();return}}if(a.streamStatusUpdate({period:d,position:N.position.getWanted(),bufferType:S,imminentDiscontinuity:L.imminentDiscontinuity,isEmptyStream:!1,hasFinishedLoading:L.hasFinishedLoading,neededSegments:L.neededSegments}),y.signal.isCancelled())return;let{UPTO_CURRENT_POSITION_CLEANUP:U}=B.getCurrent();if(L.isBufferFull){let H=Math.max(0,D-U);H>0&&r.removeBuffer(0,H).catch(x)}L.shouldRefreshManifest&&a.needsManifestRefresh()}function C(N){if(!I.isUsed()){for(let D of N.protectionData)c.addProtectionData(D.initDataType,D.keyId,D.initData);if(!R){let D=c.getAllEncryptionData();if(D.length>0&&(a.encryptionDataEncountered(D.map(L=>Y({content:n},L))),R=!0,I.isUsed()))return}if(N.segmentType==="init"){if(!c.index.isInitialized()&&N.segmentList!==void 0&&c.index.initialize(N.segmentList),T.isLoaded=!0,N.initializationData!==null){let D=c.uniqueId;T.uniqueId=D,r.declareInitSegment(D,N.initializationData),ss({playbackObserver:t,bufferGoal:l,content:n,initSegmentUniqueId:D,segment:N.segment,segmentData:N.initializationData,segmentSink:r},I.signal).then(L=>{L!==null&&a.addedSegment(L)}).catch(x)}A();return}else{let{inbandEvents:D,predictedSegments:L,needsManifestRefresh:P}=N;if(L!==void 0&&c.index.addPredictedSegments(L,N.segment),P===!0&&(a.needsManifestRefresh(),I.isUsed())||D!==void 0&&D.length>0&&(a.inbandEvent(D),I.isUsed()))return;let M=T.uniqueId;ds({playbackObserver:t,bufferGoal:l,content:n,initSegmentUniqueId:M,parsedSegment:N,segment:N.segment,segmentSink:r},I.signal).then(O=>{O!==null&&a.addedSegment(O)}).catch(x)}}}function x(N){I.isUsed()&&N instanceof Ae||(I.cancel(),a.error(N))}}var fc=us;function ls(n,e,t,r,i){var f,p,g,S;if(t.switchingMode==="lazy")return{type:"continue",value:void 0};let o=r.getLastKnownInventory(),a=[];for(let I of o)I.infos.period.id===n.id&&(I.infos.adaptation.id!==e.id||!$(t.representationIds,I.infos.representation.id))&&Vt(a,{start:(f=I.bufferedStart)!=null?f:I.start,end:(p=I.bufferedEnd)!=null?p:I.end});let s=r.getPendingOperations();for(let I of s)if(I.type===0){let y=I.value.inventoryInfos;if(y.period.id===n.id&&(y.adaptation.id!==e.id||!$(t.representationIds,y.representation.id))){let T=y.segment.time,v=T+y.segment.duration;Vt(a,{start:T,end:v})}}if(a.length===0)return{type:"continue",value:void 0};if(t.switchingMode==="reload"){let I=i.getReadyState();if(I===void 0||I>1)return{type:"needs-reload",value:void 0}}let d=t.switchingMode==="direct",u=[],c=On(o,n);if(c!==null&&(c.bufferedEnd===void 0||n.start-c.bufferedEnd<1)&&u.push({start:0,end:n.start+1}),!d){let{ADAP_REP_SWITCH_BUFFER_PADDINGS:I}=B.getCurrent(),y=e.type,T=(g=I[y].before)!=null?g:0,v=(S=I[y].after)!=null?S:0,E=i.getCurrentTime();E===void 0&&(E=i.getReference().getValue().position.getPolled()),u.push({start:E-T,end:E+v})}if(n.end!==void 0){let I=Dn(o,n);I!==null&&(I.bufferedStart===void 0||I.bufferedStart-n.end<1)&&u.push({start:n.end-1,end:Number.MAX_VALUE})}let l=uo(a,u);return l.length===0?{type:"continue",value:void 0}:d?{type:"flush-buffer",value:l}:{type:"clean-buffer",value:l}}function cs({playbackObserver:n,content:e,options:t,representationEstimator:r,segmentSink:i,segmentFetcherCreator:o,wantedBufferAhead:a,maxVideoBufferSize:s},d,u){let{manifest:c,period:l,adaptation:f}=e,p=new F;p.linkToSignal(u);let g=new Map,S=new W(null,p.signal),I,y=e.representations.getValue().representationIds,T=e.adaptation.representations.filter(P=>$(y,P.id)&&P.decipherable!==!1&&P.isSupported!==!1),v=new W(T,p.signal),{estimates:E,callbacks:R}=r({manifest:c,period:l,adaptation:f},S,v,n,p.signal),k=o.createSegmentFetcher(f.type,{onRequestBegin:R.requestBegin,onRequestEnd:R.requestEnd,onProgress:R.requestProgress,onMetrics:R.metrics}),A=new W(0);E.onUpdate(({bitrate:P,knownStableBitrate:M})=>{t.enableFastSwitching&&A.setValueIfChanged(M),!(P===void 0||P===I)&&(I=P,m.debug(`Stream: new ${f.type} bitrate estimate`,P),d.bitrateEstimateChange({type:f.type,bitrate:P}))},{emitCurrentValue:!0,clearSignal:p.signal});let C;e.representations.onUpdate(P=>{C!==void 0&&C.cancel();let M=e.representations.getValue().representationIds,O=e.adaptation.representations.filter(U=>$(M,U.id));v.setValueIfChanged(O),C=new F,C.linkToSignal(p.signal),x(P,C.signal).catch(U=>{(C==null?void 0:C.isUsed())===!0&&F.isCancellationError(U)||(p.cancel(),d.error(U))})},{clearSignal:p.signal,emitCurrentValue:!0});return;async function x(P,M){let O=ls(l,f,P,i,n);switch(O.type){case"continue":break;case"needs-reload":return Tt(()=>{n.listen(()=>{if(M.isCancelled())return;let{DELTA_POSITION_AFTER_RELOAD:U}=B.getCurrent(),H=U.bitrateSwitch;return d.waitingMediaSourceReload({bufferType:f.type,period:l,timeOffset:H,stayInPeriod:!0})},{includeLastObservation:!0,clearSignal:M})});case"flush-buffer":case"clean-buffer":for(let U of O.value)if(await i.removeBuffer(U.start,U.end),M.isCancelled())return;if(O.type==="flush-buffer"&&(d.needsBufferFlush(),M.isCancelled()))return;break;default:Xe(O)}N(M)}function N(P){let M=new F;M.linkToSignal(P);let{representation:O}=E.getValue();if(O===null)return;let U=new W(null,M.signal);E.onUpdate(G=>{if(!(G.representation===null||G.representation.id===O.id))return G.urgent?(m.info("Stream: urgent Representation switch",f.type),U.setValue({urgent:!0})):(m.info("Stream: slow Representation switch",f.type),U.setValue({urgent:!1}))},{clearSignal:M.signal,emitCurrentValue:!0});let H={type:f.type,adaptation:f,period:l,representation:O};if(S.setValue(O),p.isUsed()||(d.representationChange(H),p.isUsed()))return;let q={streamStatusUpdate:d.streamStatusUpdate,encryptionDataEncountered:d.encryptionDataEncountered,manifestMightBeOufOfSync:d.manifestMightBeOufOfSync,needsManifestRefresh:d.needsManifestRefresh,inbandEvent:d.inbandEvent,warning:d.warning,error(G){p.cancel(),d.error(G)},addedSegment(G){R.addedSegment(G)},terminating(){if(!M.isUsed())return M.cancel(),N(P)}};D(O,U,q,P)}function D(P,M,O,U){let H=new F;H.linkToSignal(U);let q=dn(a,ne=>ne*L(P),H.signal),G=f.type==="video"?s:new W(1/0);m.info("Stream: changing representation",f.type,P.id,P.bitrate);let K=Y({},O,{error(ne){var se;let j=xe(ne,{defaultCode:"NONE",defaultReason:"Unknown `RepresentationStream` error"});if(j.code!=="BUFFER_FULL_ERROR")O.error(ne);else{let oe=a.getValue(),ae=((se=g.get(P.id))!=null?se:1)*.7;if(ae<=.05||oe*ae<=2)throw j;g.set(P.id,ae),Gt(4e3,p.signal).then(()=>D(P,M,O,U)).catch(Q)}},terminating(){H.cancel(),O.terminating()}});fc({playbackObserver:n,content:{representation:P,adaptation:f,period:l,manifest:c},segmentSink:i,segmentFetcher:k,terminate:M,options:{bufferGoal:q,maxBufferSize:G,drmSystemId:t.drmSystemId,fastSwitchThreshold:A}},K,U),c.addEventListener("manifestUpdate",ne=>{for(let j of ne.updatedPeriods)if(j.period.id===l.id){for(let se of j.result.updatedAdaptations)if(se.adaptation===f.id){for(let oe of se.removedRepresentations)if(oe===P.id)return U.isCancelled()?void 0:d.waitingMediaSourceReload({bufferType:f.type,period:l,timeOffset:0,stayInPeriod:!0})}}else if(j.period.start>l.start)break},U)}function L(P){let M=g.get(P.id),O=M!==void 0?M:1;return M===void 0&&g.set(P.id,O),O}}var mc=cs;function qe(n,e,t){if(typeof String.prototype.startsWith=="function")return n.startsWith(e,t);let r=typeof t=="number"?Math.max(t,0):0;return n.substring(r,r+e.length)===e}function rg(n,e){let[t,...r]=n.split(";"),[i,...o]=e.split(";");if(t!==i)return!1;let a=X(r,c=>qe(c,"codecs=")),s=X(o,c=>qe(c,"codecs="));if(a===void 0||s===void 0)return!1;let d=a.substring(7),u=s.substring(7);return d.split(".")[0]===u.split(".")[0]}var pc=rg;function fs(n,e,t,r,i,o){var p,g,S,I;if(n.codec!==void 0&&o.onCodecSwitch==="reload"&&!ig(t,n.codec))return{type:"needs-reload",value:void 0};let a=n.getLastKnownInventory(),s=[];for(let y of a)y.infos.period.id===e.id&&y.infos.adaptation.id!==t.id&&Vt(s,{start:(p=y.bufferedStart)!=null?p:y.start,end:(g=y.bufferedEnd)!=null?g:y.end});let d=n.getPendingOperations();for(let y of d)if(y.type===0){let T=y.value.inventoryInfos;if(T.period.id===e.id&&T.adaptation.id!==t.id){let v=T.segment.time,E=v+T.segment.duration;Vt(s,{start:v,end:E})}}if(s.length===0)return{type:"continue",value:void 0};if(r==="reload"){let y=i.getReadyState();if(y===void 0||y>1)return{type:"needs-reload",value:void 0}}let u=r==="direct",c=[],l=On(a,e);if(l!==null&&(l.bufferedEnd===void 0||e.start-l.bufferedEnd<1)&&c.push({start:0,end:e.start+1}),!u){let y=t.type,{ADAP_REP_SWITCH_BUFFER_PADDINGS:T}=B.getCurrent(),v=(S=T[y].before)!=null?S:0,E=(I=T[y].after)!=null?I:0,R=i.getCurrentTime();R===void 0&&(R=i.getReference().getValue().position.getPolled()),c.push({start:R-v,end:R+E})}if(e.end!==void 0){let y=Dn(a,e);y!==null&&(y.bufferedStart===void 0||y.bufferedStart-e.end<1)&&c.push({start:e.end-1,end:Number.MAX_VALUE})}let f=uo(s,c);return f.length===0?{type:"continue",value:void 0}:u&&t.type!=="text"?{type:"flush-buffer",value:f}:{type:"clean-buffer",value:f}}function ig(n,e){return n.representations.some(t=>t.isSupported===!0&&t.decipherable!==!1&&pc(t.getMimeTypeString(),e))}function ms({bufferType:n,content:e,garbageCollectors:t,playbackObserver:r,representationEstimator:i,segmentFetcherCreator:o,segmentSinksStore:a,options:s,wantedBufferAhead:d,maxVideoBufferSize:u},c,l){let{manifest:f,period:p}=e,g=new W(void 0,l);if(c.periodStreamReady({type:n,manifest:f,period:p,adaptationRef:g}),l.isCancelled())return;let S,I=!0;g.onUpdate(v=>{(async()=>{var P;if(v===void 0)return;let E=new F;if(E.linkToSignal(l),S==null||S.cancel(),S=E,v===null){m.info(`Stream: Set no ${n} Adaptation. P:`,p.start);let M=a.getStatus(n);if(M.type==="initialized"){if(m.info(`Stream: Clearing previous ${n} SegmentSink`),qt.isNative(n))return T(0,!0,E.signal);{let O=(P=p.end)!=null?P:1/0;if(p.start>O)m.warn("Stream: Can't free buffer: period's start is after its end");else if(await M.value.removeBuffer(p.start,O),E.isUsed())return}}else if(M.type==="uninitialized"&&(a.disableSegmentSink(n),E.isUsed()))return;return c.adaptationChange({type:n,adaptation:null,period:p}),E.isUsed()?void 0:gc(r,d,n,{period:p},c,E.signal)}let R=p.adaptations[n],k=X(R!=null?R:[],M=>M.id===v.adaptationId);if(k===void 0){S.cancel(),m.warn("Stream: Unfound chosen Adaptation choice",v.adaptationId);return}let{DELTA_POSITION_AFTER_RELOAD:A}=B.getCurrent(),C=!1,x;if(I)x=0;else if(v.relativeResumingPosition!==void 0)x=v.relativeResumingPosition;else switch(C=!0,n){case"audio":x=A.trackSwitch.audio;break;case"video":x=A.trackSwitch.video;break;default:x=A.trackSwitch.other;break}if(I=!1,qt.isNative(n)&&a.getStatus(n).type==="disabled")return T(x,!0,E.signal);f.addEventListener("manifestUpdate",M=>{for(let O of M.updatedPeriods)if(O.period.id===p.id){for(let U of O.result.removedAdaptations)if(U.id===k.id)return T(x,!0,E.signal)}else if(O.period.start>p.start)break},S.signal);let{representations:N}=v;if(m.info(`Stream: Updating ${n} adaptation`,`A: ${k.id}`,`P: ${p.start}`),c.adaptationChange({type:n,adaptation:k,period:p}),E.isUsed())return;let D=og(a,n,k),L=fs(D,p,k,v.switchingMode,r,s);if(L.type==="needs-reload")return T(x,!0,E.signal);if(await a.waitForUsableBuffers(E.signal),!E.isUsed()){if(L.type==="flush-buffer"||L.type==="clean-buffer"){for(let{start:M,end:O}of L.value)if(await D.removeBuffer(M,O),E.isUsed())return;if(L.type==="flush-buffer"&&(c.needsBufferFlush({relativeResumingPosition:x,relativePosHasBeenDefaulted:C}),E.isUsed()))return}t.get(D)(E.signal),y(k,N,D,E.signal)}})().catch(E=>{E instanceof Ae||(S==null||S.cancel(),c.error(E))})},{clearSignal:l,emitCurrentValue:!0});function y(v,E,R,k){let A=sg(r,v.type);mc({content:{manifest:f,period:p,adaptation:v,representations:E},options:s,playbackObserver:A,representationEstimator:i,segmentSink:R,segmentFetcherCreator:o,wantedBufferAhead:d,maxVideoBufferSize:u},Se(ce({},c),{error:C}),k);function C(x){if(!qt.isNative(n)){m.error(`Stream: ${n} Stream crashed. Aborting it.`,x instanceof Error?x:""),a.disposeSegmentSink(n);let N=xe(x,{defaultCode:"NONE",defaultReason:"Unknown `AdaptationStream` error"});return c.warning(N),k.isCancelled()?void 0:gc(r,d,n,{period:p},c,k)}m.error(`Stream: ${n} Stream crashed. Stopping playback.`,x instanceof Error?x:""),c.error(x)}}function T(v,E,R){Tt(()=>{r.listen(()=>{R.isCancelled()||c.waitingMediaSourceReload({bufferType:n,period:p,timeOffset:v,stayInPeriod:E})},{includeLastObservation:!0,clearSignal:R})})}}function og(n,e,t){let r=n.getStatus(e);if(r.type==="initialized")return m.info("Stream: Reusing a previous SegmentSink for the type",e),r.value;let i=ag(t);return n.createSegmentSink(e,i)}function ag(n){let e=n.representations.filter(t=>t.isSupported===!0&&t.decipherable!==!1);if(e.length===0)throw new Z("NO_PLAYABLE_REPRESENTATION","No Representation in the chosen "+n.type+" Adaptation can be played",{tracks:[Wt(n)]});return e[0].getMimeTypeString()}function sg(n,e){return n.deriveReadOnlyObserver(function(r,i){let o=new W(a(),i);return r.onUpdate(s,{clearSignal:i,emitCurrentValue:!1}),o;function a(){let d=r.getValue(),u=d.buffered[e],c=u!==null?so(u,d.position.getWanted()):0;return Y({},d,{bufferGap:c,buffered:u})}function s(){o.setValue(a())}})}function gc(n,e,t,r,i,o){let{period:a}=r,s=!1;e.onUpdate(d,{emitCurrentValue:!1,clearSignal:o}),n.listen(d,{includeLastObservation:!1,clearSignal:o}),d();function d(){let u=n.getReference().getValue(),c=e.getValue(),l=u.position.getWanted();a.end!==void 0&&l+c>=a.end&&(m.debug('Stream: full "empty" AdaptationStream',t),s=!0),i.streamStatusUpdate({period:a,bufferType:t,imminentDiscontinuity:null,position:l,isEmptyStream:!0,hasFinishedLoading:s,neededSegments:[]})}}var hc=ms;function Ro(n,e){if(e.length===0)return[];let t=[],r=n.getLastKnownInventory();for(let i=0;i<r.length;i++){let o=r[i];if(e.some(s=>o.infos.period.id===s.period.id&&o.infos.adaptation.id===s.adaptation.id&&o.infos.representation.id===s.representation.id)){let{bufferedStart:s,bufferedEnd:d}=o;if(s===void 0||d===void 0)return m.warn("SO: No buffered start or end found from a segment."),[{start:0,end:Number.MAX_VALUE}];let u=t[t.length-1];u!==void 0&&u.end===s?u.end=d:t.push({start:s,end:d})}}return t}function ps(n,e,t,r,i,o,a,s){let{manifest:d,initialPeriod:u}=n,{maxBufferAhead:c,maxBufferBehind:l,wantedBufferAhead:f,maxVideoBufferSize:p}=o,{MINIMUM_MAX_BUFFER_AHEAD:g,MAXIMUM_MAX_BUFFER_AHEAD:S,MAXIMUM_MAX_BUFFER_BEHIND:I}=B.getCurrent(),y=new Br(E=>{var C,x;let{bufferType:R}=E,k=(C=I[R])!=null?C:1/0,A=(x=S[R])!=null?x:1/0;return N=>{_o({segmentSink:E,playbackObserver:e,maxBufferBehind:dn(l,D=>Math.min(D,k),N),maxBufferAhead:dn(c,D=>{var P;let L=Math.max(D,(P=g[R])!=null?P:0);return Math.min(L,A)},N)},N)}});for(let E of r.getBufferTypes())T(E,u);function T(E,R){let k=new mn((L,P)=>L.start-P.start),A=!1,C=new F;return C.linkToSignal(s),e.listen(({position:L})=>{var O;let P=L.getWanted();if(!A||!N(P))return;for(m.info("Stream: Destroying all PeriodStreams due to out of bounds situation",E,P),A=!1;k.length()>0;){let U=k.get(k.length()-1);k.removeElement(U),a.periodStreamCleared({type:E,manifest:d,period:U})}C.cancel(),C=new F,C.linkToSignal(s);let M=(O=d.getPeriodForTime(P))!=null?O:d.getNextPeriod(P);if(M===void 0){m.warn("Stream: The wanted position is not found in the Manifest."),A=!0;return}x(M)},{clearSignal:s,includeLastObservation:!0}),d.addEventListener("decipherabilityUpdate",L=>{s.isCancelled()||D(L).catch(P=>{s.isCancelled()||(C.cancel(),a.error(P))})},s),x(R);function x(L){let P=Se(ce({},a),{waitingMediaSourceReload(M){let O=k.head();O===void 0||O.id!==M.period.id?a.lockedStream({bufferType:M.bufferType,period:M.period}):a.needsMediaSourceReload({timeOffset:M.timeOffset,minimumPosition:M.stayInPeriod?M.period.start:void 0,maximumPosition:M.stayInPeriod?M.period.end:void 0})},periodStreamReady(M){A=!0,k.add(M.period),a.periodStreamReady(M)},periodStreamCleared(M){k.removeElement(M.period),a.periodStreamCleared(M)},error(M){C.cancel(),a.error(M)}});v(E,L,P,C.signal)}function N(L){let P=k.head(),M=k.last();return P===void 0||M===void 0?!0:P.start>L||(_(M.end)?1/0:M.end)<L}async function D(L){let P=r.getStatus(E),M=L.filter(K=>K.adaptation.type===E);if(M.length===0||P.type!=="initialized"||M.every(K=>K.representation.decipherable===!0))return;let O=P.value,U=M.filter(K=>K.representation.decipherable===void 0),H=M.filter(K=>K.representation.decipherable===!1),q=Ro(O,H),G=Ro(O,U);for(A=!1,m.info("Stream: Destroying all PeriodStreams for decipherability matters",E);k.length()>0;){let K=k.get(k.length()-1);k.removeElement(K),a.periodStreamCleared({type:E,manifest:d,period:K})}C.cancel(),C=new F,C.linkToSignal(s);for(let{start:K,end:ne}of[...q,...G]){if(s.isCancelled())return;if(K<ne){if(s.isCancelled())return;await O.removeBuffer(K,ne)}}Tt(()=>{if(s.isCancelled())return;let K=e.getReference().getValue();if(Ic(K,q)){if(a.needsDecipherabilityFlush(),s.isCancelled())return}else if(Ic(K,G)&&(a.needsBufferFlush(),s.isCancelled()))return;let ne=K.position.getWanted(),j=d.getPeriodForTime(ne);if(j===void 0){a.error(new Z("MEDIA_TIME_NOT_FOUND","The wanted position is not found in the Manifest."));return}x(j)})}}function v(E,R,k,A){m.info("Stream: Creating new Stream for",E,R.start);let C=null,x=new F;x.linkToSignal(A),e.listen(({position:M},O)=>{if(R.end!==void 0&&M.getWanted()>=R.end){let U=d.getPeriodAfter(R);if(R.containsTime(M.getWanted(),U))return;m.info("Stream: Destroying PeriodStream as the current playhead moved above it",E,R.start,M.getWanted(),R.end),O(),k.periodStreamCleared({type:E,manifest:d,period:R}),x.cancel()}},{clearSignal:A,includeLastObservation:!0});let N={bufferType:E,content:{manifest:d,period:R},garbageCollectors:y,maxVideoBufferSize:p,segmentFetcherCreator:i,segmentSinksStore:r,options:o,playbackObserver:e,representationEstimator:t,wantedBufferAhead:f},D=Se(ce({},k),{streamStatusUpdate(M){if(M.hasFinishedLoading){let O=d.getPeriodAfter(R);O!==null&&L(O)}else C!==null&&(m.info("Stream: Destroying next PeriodStream due to current one being active",E,C.period.start),k.periodStreamCleared({type:E,manifest:d,period:C.period}),C.canceller.cancel(),C=null);k.streamStatusUpdate(M)},error(M){C!==null&&(C.canceller.cancel(),C=null),x.cancel(),k.error(M)}});hc(N,D,x.signal),P(x.signal);function L(M){if(C!==null){if(C.period.id===M.id)return;m.warn("Stream: Creating next `PeriodStream` while one was already created.",E,M.id,C.period.id),k.periodStreamCleared({type:E,manifest:d,period:C.period}),C.canceller.cancel()}let O=new F;O.linkToSignal(A),C={canceller:O,period:M},v(E,M,k,C.canceller.signal)}function P(M){d.addEventListener("manifestUpdate",O=>{for(let U of O.removedPeriods)if(U.id===R.id){if(d.periods.length>0&&d.periods[0].start<=U.start)return Tt(()=>{if(!M.isCancelled())return a.needsMediaSourceReload({timeOffset:0,minimumPosition:void 0,maximumPosition:void 0})})}else if(U.start>R.start)break;if(O.addedPeriods.length>0&&C!==null){let U=d.getPeriodAfter(R);(U===null||C.period.id!==U.id)&&(m.warn("Stream: Destroying next PeriodStream due to new one being added",E,C.period.start),k.periodStreamCleared({type:E,manifest:d,period:C.period}),C.canceller.cancel(),C=null)}},M)}}}function Ic(n,e){if(e.length===0)return!1;let t=n.position.getPolled();return n.speed>=0?e[e.length-1].end>=t-5:e[0].start<=t+5}var yc=ps;var Sc=yc;var dg={createSync(n){return{syncValue:n,getValueAsAsync(){return Promise.resolve(n)}}},createAsync(n){let e=null;return n.then(t=>{e=t},Q),{syncValue:e,getValueAsAsync(){return n}}}},bc=dg;function gs(){return rn}function hs(){return ar}function zr(n,e,t){let r=n.setMediaKeys(e,t).then(()=>{m.info("Compat: MediaKeys updated with success")}).catch(i=>{if(t===null){m.error("Compat: Could not reset MediaKeys",i instanceof Error?i:"Unknown Error");return}throw m.error("Compat: Could not update MediaKeys",i instanceof Error?i:"Unknown Error"),i});return hs()?r:Promise.race([r,pn(1e3)])}var Is=new WeakMap,Le={setState(n,e){Is.set(n,e)},getState(n){let e=Is.get(n);return e===void 0?null:e},clearState(n){Is.set(n,null)}};async function Nn(n){let e=Le.getState(n);if(e===null)return;m.info("DRM: Disposing of the current MediaKeys");let{loadedSessionsStore:t}=e;return Le.clearState(n),await t.closeAllSessions(),zr(e.emeImplementation,n,null)}function ko(n){if(m.info("DRM: Clearing-up DRM session."),gs())return m.info("DRM: disposing current MediaKeys."),Nn(n);let e=Le.getState(n);return e!==null&&e.keySystemOptions.closeSessionsOnStop===!0?(m.info("DRM: closing all current sessions."),e.loadedSessionsStore.closeAllSessions()):(m.info("DRM: Nothing to clear. Returning right away. No state =",e===null),Promise.resolve())}function Po(n){let e=new F;return Promise.race([n.close().then(()=>{e.cancel()}),n.closed.then(()=>{e.cancel()}),t()]);async function t(){try{await Gt(1e3,e.signal),await r()}catch(i){if(i instanceof Ae)return;let o=i instanceof Error?i.message:"Unknown error made it impossible to close the session";m.error(`DRM: ${o}`)}}async function r(){try{await n.update(new Uint8Array(1))}catch(i){if(e.isUsed()||i instanceof Error&&i.message==="The session is already closed.")return;await Gt(1e3,e.signal)}if(!e.isUsed())throw new Error("Compat: Couldn't know if session is closed")}}var ug=["","webkit","moz","ms"];function lg(n,e){let t=document.createElement(n.tagName),r="on"+e;return r in t?!0:(t.setAttribute(r,"return;"),typeof t[r]=="function")}function cg(n,e){return e.filter(t=>lg(n,t))[0]}function fg(n,e){return n.reduce((t,r)=>t.concat((e===void 0?ug:e).map(i=>i+r)),[])}function Ie(n,e){let t,r=fg(n,e);return(i,o,a)=>{if(!a.isCancelled()){if(typeof HTMLElement!="undefined"&&i instanceof HTMLElement)if(typeof t=="undefined"&&(t=cg(i,r)),w(t))i.addEventListener(t,o),a.register(()=>{t!==void 0&&i.removeEventListener(t,o)});else{h.CURRENT_ENV===h.DEV&&m.warn(`compat: element ${i.tagName} does not support any of these events: `+r.join(", "));return}r.forEach(s=>{let d=!1;typeof i.addEventListener=="function"?i.addEventListener(s,o):(d=!0,i["on"+s]=o),a.register(()=>{typeof i.removeEventListener=="function"&&i.removeEventListener(s,o),d&&delete i["on"+s]})})}}}function mg(n){let e,t=document;_(t.hidden)?_(t.mozHidden)?_(t.msHidden)?_(t.webkitHidden)||(e="webkit"):e="ms":e="moz":e="";let r=w(e)?e+"Hidden":"hidden",i=w(e)?e+"visibilitychange":"visibilitychange",o=document[r],a=new W(!o,n);return gn(document,i,()=>{let s=!document[r];a.setValueIfChanged(s)},n),a}function Tc(n,e){let t=n;if(t.webkitSupportsPresentationMode===!0&&typeof t.webkitSetPresentationMode=="function"){let o=t.webkitPresentationMode==="picture-in-picture",a=new W({isEnabled:o,pipWindow:null},e);return gn(t,"webkitpresentationmodechanged",()=>{let s=t.webkitPresentationMode==="picture-in-picture";a.setValue({isEnabled:s,pipWindow:null})},e),a}let r=document.pictureInPictureElement===t,i=new W({isEnabled:r,pipWindow:null},e);return gn(t,"enterpictureinpicture",o=>{var a;i.setValue({isEnabled:!0,pipWindow:(a=o.pictureInPictureWindow)!=null?a:null})},e),gn(t,"leavepictureinpicture",()=>{i.setValue({isEnabled:!1,pipWindow:null})},e),i}function _c(n,e){let t=mg(e),r,i=new W(!0,e);return e.register(()=>{clearTimeout(r),r=void 0}),t.onUpdate(o,{clearSignal:e}),n.onUpdate(o,{clearSignal:e}),o(),i;function o(){if(clearTimeout(r),r=void 0,n.getValue().isEnabled||t.getValue())i.setValueIfChanged(!0);else{let{INACTIVITY_DELAY:a}=B.getCurrent();r=setTimeout(()=>{i.setValueIfChanged(!1)},a)}}}function Ec(n){var o,a;let e=_(re.devicePixelRatio)||re.devicePixelRatio===0?1:re.devicePixelRatio,t=new W({width:(o=re.screen)==null?void 0:o.width,height:(a=re.screen)==null?void 0:a.height,pixelRatio:e},n),r=setInterval(i,2e4);return n.register(function(){clearInterval(r)}),t;function i(){let s=t.getValue();(s.width!==screen.width||s.height!==screen.height||s.pixelRatio!==e)&&t.setValue({width:screen.width,height:screen.height,pixelRatio:e})}}function vc(n,e,t){let r=_(re.devicePixelRatio)||re.devicePixelRatio===0?1:re.devicePixelRatio,i=new W({width:n.clientWidth,height:n.clientHeight,pixelRatio:r},t),o=Q;e.onUpdate(s,{clearSignal:t}),gn(re,"resize",s,t),gn(n,"enterpictureinpicture",s,t),gn(n,"leavepictureinpicture",s,t);let a=setInterval(s,2e4);return s(),t.register(function(){o(),clearInterval(a)}),i;function s(){o();let d=e.getValue(),{pipWindow:u}=d;if(d.isEnabled)if(_(u)){let l=i.getValue();(l.width!==void 0||l.height!==void 0||l.pixelRatio!==r)&&i.setValue({width:void 0,height:void 0,pixelRatio:r})}else{let l=()=>{c()};u.addEventListener("resize",l),o=()=>{u.removeEventListener("resize",l),o=Q},c()}else{let l=i.getValue();(l.width!==n.clientWidth||l.height!==n.clientHeight||l.pixelRatio!==r)&&i.setValue({width:n.clientWidth,height:n.clientHeight,pixelRatio:r})}function c(){let l=i.getValue();(l.width!==(u==null?void 0:u.width)||l.height!==(u==null?void 0:u.height)||l.pixelRatio!==r)&&i.setValue({width:u==null?void 0:u.width,height:u==null?void 0:u.height,pixelRatio:r})}}}var WO=Ie(["loadedmetadata"]),GO=Ie(["timeupdate"]),qO=Ie(["addtrack"]),jO=Ie(["removetrack"]),Un=Ie(["sourceopen","webkitsourceopen"]),Ao=Ie(["sourceclose","webkitsourceclose"]),Co=Ie(["sourceended","webkitsourceended"]),Rc=Ie(["update"]),kc=Ie(["removesourcebuffer"]),Mo=Ie(["keymessage","message"]),Pc=Ie(["keyadded","ready"]),xo=Ie(["keyerror","error"]),Ac=Ie(["keystatuseschange"]),Cc=Ie(["seeking"]),Mc=Ie(["seeked"]),xc=Ie(["ended"]);function gn(n,e,t,r){n.addEventListener(e,t),r.register(()=>{n.removeEventListener(e,t)})}var ct,{WebKitMediaKeys:wo}=re;wo!==void 0&&typeof wo.isTypeSupported=="function"&&typeof wo.prototype.createSession=="function"&&typeof HTMLMediaElement.prototype.webkitSetMediaKeys=="function"&&(ct=wo);function ys(){return(Aa||an)&&ct!==void 0}var Hr=class{constructor(e,t,r){this._keyType=e;this._mediaKeys=t;this._configuration=r}get keySystem(){return this._keyType}createMediaKeys(){return new Promise(e=>e(this._mediaKeys))}getConfiguration(){return this._configuration}};function Rt(n){try{let e=n();return typeof e=="object"&&e!==null&&typeof e.then=="function"?e:Promise.resolve(e)}catch(e){return Promise.reject(e)}}var kt,{MSMediaKeys:Wr}=re;Wr!==void 0&&Wr.prototype!==void 0&&typeof Wr.isTypeSupported=="function"&&typeof Wr.prototype.createSession=="function"&&(kt=Wr);var Ss=class extends ie{constructor(e){super(),this.expiration=NaN,this.keyStatuses=new Map,this._mk=e,this._sessionClosingCanceller=new F,this.closed=new Promise(t=>{this._sessionClosingCanceller.signal.register(()=>t())}),this.update=t=>new Promise((r,i)=>{if(this._ss===void 0)return i("MediaKeySession not set.");try{r(this._ss.update(t,""))}catch(o){i(o)}})}generateRequest(e,t){return new Promise(r=>{let i;t instanceof Uint8Array?i=t:t instanceof ArrayBuffer?i=new Uint8Array(t):i=new Uint8Array(t.buffer),this._ss=this._mk.createSession("video/mp4",i),Mo(this._ss,o=>{var a;this.trigger((a=o.type)!=null?a:"message",o)},this._sessionClosingCanceller.signal),Pc(this._ss,o=>{var a;this.trigger((a=o.type)!=null?a:"keyadded",o)},this._sessionClosingCanceller.signal),xo(this._ss,o=>{var a;this.trigger((a=o.type)!=null?a:"keyerror",o)},this._sessionClosingCanceller.signal),r()})}close(){return new Promise(e=>{_(this._ss)||(this._ss.close(),this._ss=void 0),this._sessionClosingCanceller.cancel(),e()})}load(){return Promise.resolve(!1)}remove(){return Promise.resolve()}get sessionId(){var e,t;return(t=(e=this._ss)==null?void 0:e.sessionId)!=null?t:""}},Oo=class{constructor(e){if(kt===void 0)throw new Error("No MSMediaKeys API.");this._mediaKeys=new kt(e)}_setVideo(e){return Rt(()=>{this._videoElement=e,this._videoElement.msSetMediaKeys!==void 0&&this._videoElement.msSetMediaKeys(this._mediaKeys)})}createSession(){if(this._videoElement===void 0||this._mediaKeys===void 0)throw new Error("Video not attached to the MediaKeys");return new Ss(this._mediaKeys)}setServerCertificate(){throw new Error("Server certificate is not implemented in your browser")}};function bs(){return{isTypeSupported:(r,i)=>{if(kt===void 0)throw new Error("No MSMediaKeys API.");return i!==void 0?kt.isTypeSupported(r,i):kt.isTypeSupported(r)},createCustomMediaKeys:r=>new Oo(r),setMediaKeys:(r,i)=>{if(i===null)return Promise.resolve(void 0);if(!(i instanceof Oo))throw new Error("Custom setMediaKeys is supposed to be called with IE11 custom MediaKeys.");return i._setVideo(r)}}}var jt,{MozMediaKeys:Gr}=re;Gr!==void 0&&Gr.prototype!==void 0&&typeof Gr.isTypeSupported=="function"&&typeof Gr.prototype.createSession=="function"&&(jt=Gr);function Ts(){return{isTypeSupported:(r,i)=>{if(jt===void 0)throw new Error("No MozMediaKeys API.");return i!==void 0?jt.isTypeSupported(r,i):jt.isTypeSupported(r)},createCustomMediaKeys:r=>{if(jt===void 0)throw new Error("No MozMediaKeys API.");return new jt(r)},setMediaKeys:(r,i)=>Rt(()=>{let o=r;if(o.mozSetMediaKeys===void 0||typeof o.mozSetMediaKeys!="function")throw new Error("Can't set video on MozMediaKeys.");return o.mozSetMediaKeys(i)})}}var Pt=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","+","/"],wc=[255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,62,255,255,255,63,52,53,54,55,56,57,58,59,60,61,255,255,255,0,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51];function Do(n){if(n>=wc.length)throw new Error("Unable to parse base64 string.");let e=wc[n];if(e===255)throw new Error("Unable to parse base64 string.");return e}function Lo(n){let e="",t,r=n.length;for(t=2;t<r;t+=3)e+=Pt[n[t-2]>>2],e+=Pt[(n[t-2]&3)<<4|n[t-1]>>4],e+=Pt[(n[t-1]&15)<<2|n[t]>>6],e+=Pt[n[t]&63];return t===r+1&&(e+=Pt[n[t-2]>>2],e+=Pt[(n[t-2]&3)<<4],e+="=="),t===r&&(e+=Pt[n[t-2]>>2],e+=Pt[(n[t-2]&3)<<4|n[t-1]>>4],e+=Pt[(n[t-1]&15)<<2],e+="="),e}function ft(n){let e=n.length%4,t=n;e!==0&&(m.warn("base64ToBytes: base64 given miss padding"),t+=e===3?"=":e===2?"==":"===");let r=t.indexOf("=");if(r!==-1&&r<t.length-2)throw new Error("Unable to parse base64 string.");let i=t.endsWith("==")?2:t.endsWith("=")?1:0,o=t.length,a=new Uint8Array(o/4*3),s;for(let d=0,u=0;d<o;d+=4,u+=3)s=Do(t.charCodeAt(d))<<18|Do(t.charCodeAt(d+1))<<12|Do(t.charCodeAt(d+2))<<6|Do(t.charCodeAt(d+3)),a[u]=s>>16,a[u+1]=s>>8&255,a[u+2]=s&255;return a.subarray(0,a.length-i)}var Dc=typeof re=="object"&&typeof re.TextDecoder=="function",gg=typeof re=="object"&&typeof re.TextEncoder=="function";function No(n){let e=new ArrayBuffer(n.length*2),t=new Uint8Array(e);for(let r=0;r<t.length;r+=2){let i=n.charCodeAt(r/2);t[r]=i&255,t[r+1]=i>>8&255}return t}function Uo(n){if(Dc)try{return new TextDecoder("utf-16le").decode(n)}catch(t){let r=t instanceof Error?t:"";m.warn("Utils: could not use TextDecoder to parse UTF-16LE, fallbacking to another implementation",r)}let e="";for(let t=0;t<n.length;t+=2)e+=String.fromCharCode((n[t+1]<<8)+n[t]);return e}function _e(n){if(gg)try{return new TextEncoder().encode(n)}catch(i){let o=i instanceof Error?i:"";m.warn("Utils: could not use TextEncoder to encode string into UTF-8, fallbacking to another implementation",o)}let e,t=encodeURIComponent(n);if(typeof unescape=="function")e=unescape(t);else{let i=/[0-9a-fA-F]/,o=t.length;e="";for(let a=0;a<t.length;a++){let s=!1;if(t[a]==="%"){if(a<=o-6&&t[a+1]==="u"&&i.test(t[a+2])&&i.test(t[a+3])&&i.test(t[a+4])&&i.test(t[a+5])){let d=parseInt(t.substring(a+1,a+6),16);e+=String.fromCharCode(d),s=!0,a+=5}else if(a<=o-3&&i.test(t[a+1])&&i.test(t[a+2])){let d=parseInt(t.substring(a+1,a+3),16);e+=String.fromCharCode(d),s=!0,a+=2}}s||(e+=t[a])}}let r=new Uint8Array(e.length);for(let i=0;i<e.length;i++)r[i]=e.charCodeAt(i)&255;return r}function hg(n){let t="";for(let r=0;r<n.length;r+=16e3){let i=n.subarray(r,r+16e3);t+=String.fromCharCode.apply(null,i)}return t}function Oc(n,e){let t=n.toString(16);return t.length>=e?t:new Array(e-t.length+1).join("0")+t}function we(n){if(Dc)try{return new TextDecoder().decode(n)}catch(i){let o=i instanceof Error?i:"";m.warn("Utils: could not use TextDecoder to parse UTF-8, fallbacking to another implementation",o)}let e=n;e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3));let t=hg(e),r;if(typeof escape=="function")r=escape(t);else{let i=/[A-Za-z0-9*_\+-\.\/]/;r="";for(let o=0;o<t.length;o++)if(i.test(t[o]))r+=t[o];else{let a=t.charCodeAt(o);r+=a>=256?"%u"+Oc(a,4):"%"+Oc(a,2)}}return decodeURIComponent(r)}function je(n){let e=n.length,t=new Uint8Array(e/2);for(let r=0,i=0;r<e;r+=2,i++)t[i]=parseInt(n.substring(r,r+2),16)&255;return t}function Oe(n,e=""){let t="";for(let r=0;r<n.byteLength;r++)t+=(n[r]>>>4).toString(16),t+=(n[r]&15).toString(16),e.length>0&&r<n.byteLength-1&&(t+=e);return t}function Bo(n){J(n.length===16,"GUID length should be 16");let e=n[0],t=n[1],r=n[2],i=n[3],o=n[4],a=n[5],s=n[6],d=n[7],u=new Uint8Array(16);return u[0]=i,u[1]=r,u[2]=t,u[3]=e,u[4]=a,u[5]=o,u[6]=d,u[7]=s,u.set(n.subarray(8,16),8),u}function _s(n,e){let t=e;for(;t<n.length&&n[t]!==0;)t+=1;let r=n.subarray(e,t);return{end:t+1,string:we(r)}}function vs(n){return typeof(n==null?void 0:n.webkitGenerateKeyRequest)=="function"}var Es=class extends ie{constructor(e,t){super(),this._vid=e,this._key=t,this.sessionId="",this._closeSession=Q,this.keyStatuses=new Map,this.expiration=NaN;let r=i=>{this.trigger(i.type,i)};this.closed=new Promise(i=>{this._closeSession=()=>{["keymessage","message","keyadded","ready","keyerror","error"].forEach(o=>{e.removeEventListener(o,r),e.removeEventListener(`webkit${o}`,r)}),i()}}),["keymessage","message","keyadded","ready","keyerror","error"].forEach(i=>{e.addEventListener(i,r),e.addEventListener(`webkit${i}`,r)})}update(e){return new Promise((t,r)=>{try{if(this._key.indexOf("clearkey")>=0){let i=e instanceof ArrayBuffer?new Uint8Array(e):e,o=JSON.parse(we(i)),a=ft(o.keys[0].k),s=ft(o.keys[0].kid);t(this._vid.webkitAddKey(this._key,a,s,""))}else t(this._vid.webkitAddKey(this._key,e,null,""))}catch(i){r(i)}})}generateRequest(e,t){return new Promise(r=>{this._vid.webkitGenerateKeyRequest(this._key,t),r()})}close(){return new Promise(e=>{this._closeSession(),e()})}load(){return Promise.resolve(!1)}remove(){return Promise.resolve()}},Fo=class{constructor(e){this._keySystem=e}_setVideo(e){return Rt(()=>{if(!vs(e))throw new Error("Video not attached to the MediaKeys");this._videoElement=e})}createSession(){if(_(this._videoElement))throw new Error("Video not attached to the MediaKeys");return new Es(this._videoElement,this._keySystem)}setServerCertificate(){throw new Error("Server certificate is not implemented in your browser")}};function Rs(){return{isTypeSupported:function(r){let i=document.querySelector("video");return _(i)&&(i=document.createElement("video")),!_(i)&&typeof i.canPlayType=="function"?!!i.canPlayType("video/mp4",r):!1},createCustomMediaKeys:r=>new Fo(r),setMediaKeys:(r,i)=>{if(i===null)return Promise.resolve(void 0);if(!(i instanceof Fo))throw new Error("Custom setMediaKeys is supposed to be called with old webkit custom MediaKeys.");return i._setVideo(r)}}}function te(...n){let e=n.length,t=-1,r=0,i;for(;++t<e;)i=n[t],r+=typeof i=="number"?i:i.length;let o=new Uint8Array(r),a=0;for(t=-1;++t<e;)i=n[t],typeof i=="number"?a+=i:i.length>0&&(o.set(i,a),a+=i.length);return o}function Ko(n,e){return(n[e+0]<<8)+(n[e+1]<<0)}function ks(n,e){return n[e+0]*65536+n[e+1]*256+n[e+2]}function ee(n,e){return n[e+0]*16777216+n[e+1]*65536+n[e+2]*256+n[e+3]}function Ne(n,e){return(n[e+0]*16777216+n[e+1]*65536+n[e+2]*256+n[e+3])*4294967296+n[e+4]*16777216+n[e+5]*65536+n[e+6]*256+n[e+7]}function le(n){return new Uint8Array([n>>>8&255,n&255])}function ge(n){return new Uint8Array([n>>>24&255,n>>>16&255,n>>>8&255,n&255])}function Yt(n){let e=n%4294967296,t=(n-e)/4294967296;return new Uint8Array([t>>>24&255,t>>>16&255,t>>>8&255,t&255,e>>>24&255,e>>>16&255,e>>>8&255,e&255])}function Lc(n,e){return(n[e+0]<<0)+(n[e+1]<<8)}function Nc(n,e){return n[e+0]+n[e+1]*256+n[e+2]*65536+n[e+3]*16777216}function Uc(n){return new Uint8Array([n&255,n>>>8&255])}function qr(n){return new Uint8Array([n&255,n>>>8&255,n>>>16&255,n>>>24&255])}function Ps(n,e){let t=n instanceof Uint8Array?n:new Uint8Array(n),r=e instanceof Uint8Array?e:new Uint8Array(e);if(Nc(t,0)+4!==t.length)throw new Error("Unsupported WebKit initData.");let o=Uo(t),a=o.indexOf("skd://"),s=a>-1?o.substring(a+6):o,d=No(s),u=0,c=new Uint8Array(t.byteLength+4+d.byteLength+4+r.byteLength);return c.set(t),u+=t.length,c.set(qr(d.byteLength),u),u+=4,c.set(d,u),u+=d.byteLength,c.set(qr(r.byteLength),u),u+=4,c.set(r,u),c}function Ig(n){return qe(n,"com.apple.fps")}function Bc(n,e){let t=n;return Rt(()=>{if(t.webkitSetMediaKeys===void 0)throw new Error("No webKitMediaKeys API.");t.webkitSetMediaKeys(e)})}var As=class extends ie{constructor(e,t,r){super(),this._serverCertificate=r,this._videoElement=e,this._keyType=t,this._unbindSession=Q,this._closeSession=Q,this.closed=new Promise(i=>{this._closeSession=i}),this.keyStatuses=new Map,this.expiration=NaN}update(e){return new Promise((t,r)=>{if(this._nativeSession===void 0||this._nativeSession.update===void 0||typeof this._nativeSession.update!="function")return r("Unavailable WebKit key session.");try{let i;e instanceof ArrayBuffer?i=new Uint8Array(e):e instanceof Uint8Array?i=e:i=new Uint8Array(e.buffer),t(this._nativeSession.update(i))}catch(i){r(i)}})}generateRequest(e,t){return new Promise(r=>{var s;let i=this._videoElement;if(((s=i.webkitKeys)==null?void 0:s.createSession)===void 0)throw new Error("No WebKitMediaKeys API.");let o;if(Ig(this._keyType)){if(this._serverCertificate===void 0)throw new Error("A server certificate is needed for creating fairplay session.");o=Ps(t,this._serverCertificate)}else o=t;let a=i.webkitKeys.createSession("video/mp4",o);if(a==null)throw new Error("Impossible to get the key sessions");this._listenEvent(a),this._nativeSession=a,r()})}close(){return new Promise((e,t)=>{if(this._unbindSession(),this._closeSession(),this._nativeSession===void 0){t("No session to close.");return}this._nativeSession.close(),e()})}load(){return Promise.resolve(!1)}remove(){return Promise.resolve()}get sessionId(){var e,t;return(t=(e=this._nativeSession)==null?void 0:e.sessionId)!=null?t:""}_listenEvent(e){this._unbindSession();let t=r=>{this.trigger(r.type,r)};["keymessage","message","keyadded","ready","keyerror","error"].forEach(r=>{e.addEventListener(r,t),e.addEventListener(`webkit${r}`,t)}),this._unbindSession=()=>{["keymessage","message","keyadded","ready","keyerror","error"].forEach(r=>{e.removeEventListener(r,t),e.removeEventListener(`webkit${r}`,t)})}}},Vo=class{constructor(e){if(ct===void 0)throw new Error("No WebKitMediaKeys API.");this._keyType=e,this._mediaKeys=new ct(e)}_setVideo(e){if(this._videoElement=e,this._videoElement===void 0)throw new Error("Video not attached to the MediaKeys");return Bc(this._videoElement,this._mediaKeys)}createSession(){if(this._videoElement===void 0||this._mediaKeys===void 0)throw new Error("Video not attached to the MediaKeys");return new As(this._videoElement,this._keyType,this._serverCertificate)}setServerCertificate(e){return this._serverCertificate=e,Promise.resolve()}};function zo(){if(ct===void 0)throw new Error("No WebKitMediaKeys API.");return{isTypeSupported:ct.isTypeSupported,createCustomMediaKeys:r=>new Vo(r),setMediaKeys:(r,i)=>{if(i===null)return Bc(r,i);if(!(i instanceof Vo))throw new Error("Custom setMediaKeys is supposed to be called with webkit custom MediaKeys.");return i._setVideo(r)}}}var yg=Sg("auto"),Fc=yg;function Sg(n){var o;let e,t,r=bg,i;if((n==="standard"||n==="auto"&&!ys())&&(Ft||!_(navigator.requestMediaKeySystemAccess)))e=(...a)=>navigator.requestMediaKeySystemAccess(...a),t=Ie(["encrypted"]),i="standard";else{let a,s;if(n==="webkit"&&ct!==void 0){t=Ie(["needkey"]);let d=zo();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="webkit"}else if(vs((o=re.HTMLVideoElement)==null?void 0:o.prototype)){t=Ie(["needkey"]);let d=Rs();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="older-webkit"}else if(ct!==void 0){t=Ie(["needkey"]);let d=zo();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="webkit"}else if(rn&&kt!==void 0){t=Ie(["encrypted","needkey"]);let d=bs();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="ms"}else if(jt!==void 0){t=Ie(["encrypted","needkey"]);let d=Ts();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="moz"}else{t=Ie(["encrypted","needkey"]);let d=re.MediaKeys,u=()=>{if(d===void 0)throw new Z("MEDIA_KEYS_NOT_SUPPORTED","No `MediaKeys` implementation found in the current browser.");if(typeof d.isTypeSupported=="undefined"){let c="This browser seems to be unable to play encrypted contents currently.Note: Some browsers do not allow decryption in some situations, like when not using HTTPS.";throw new Error(c)}};a=c=>(u(),J(typeof d.isTypeSupported=="function"),d.isTypeSupported(c)),s=c=>(u(),new d(c)),i="unknown"}e=function(d,u){if(!a(d))return Promise.reject(new Error("Unsupported key type"));for(let c=0;c<u.length;c++){let l=u[c],{videoCapabilities:f,audioCapabilities:p,initDataTypes:g,distinctiveIdentifier:S}=l,I=!0;if(I=I&&(_(g)||g.some(y=>y==="cenc")),I=I&&S!=="required",I){let y={initDataTypes:["cenc"],distinctiveIdentifier:"not-allowed",persistentState:"required",sessionTypes:["temporary","persistent-license"]};f!==void 0&&(y.videoCapabilities=f),p!==void 0&&(y.audioCapabilities=p);let T=s(d);return Promise.resolve(new Hr(d,T,y))}}return Promise.reject(new Error("Unsupported configuration"))}}return{requestMediaKeySystemAccess:e,onEncrypted:t,setMediaKeys:r,implementation:i}}function bg(n,e){try{let t,r=n;return typeof r.setMediaKeys=="function"?t=r.setMediaKeys(e):typeof r.webkitSetMediaKeys=="function"?t=r.webkitSetMediaKeys(e):typeof r.mozSetMediaKeys=="function"?t=r.mozSetMediaKeys(e):typeof r.msSetMediaKeys=="function"&&e!==null&&(t=r.msSetMediaKeys(e)),typeof t=="object"&&t!==null&&typeof t.then=="function"?t:Promise.resolve(t)}catch(t){return Promise.reject(t)}}function yt(n,e){let t=n.length,r=0;for(;r+8<=t;){let i=ee(n,r);if(i===0)i=t-r;else if(i===1){if(r+16>t)return-1;i=Ne(n,r+8)}if(isNaN(i)||i<=0)return-1;if(ee(n,r+4)===e)return r+i<=t?r:-1;r+=i}return-1}function Ho(n){let e=0,t=[],r=null;for(;e<=n.length;){if(e===n.length){r=null;break}r=n.subarray(e,1/0);let i=yt(r,1836019558);if(i<0)break;let o=ee(n,i+e),a=e+i+o;if(a>n.length)break;let s=yt(r,1835295092);if(s<0)break;let d=ee(n,s+e),u=e+s+d;if(u>n.length)break;let c=Math.max(a,u),l=n.subarray(e,c);t.push(l),e=c}return t.length===0?[null,r]:[t,r]}function Tg(n,e,t){return new Uint8Array(Array.prototype.slice.call(n,e,t))}function _g(n,e,t){return n.slice(e,t)}var Cs=typeof Uint8Array.prototype.slice=="function"?_g:Tg;function Ms(n,e){let t=n;for(let r of e){let i=Ee(t,r);if(i===null)return null;t=i}return t}function Ee(n,e){let t=Ue(n,e);return t!==null?n.subarray(t[1],t[2]):null}function Kc(n,e){let t=[],r=n;for(;;){let i=Ue(r,e);if(i===null)return t;J(i[2]!==0&&r.length!==0),t.push(r.subarray(i[1],i[2])),r=r.subarray(i[2])}}function xs(n,e){let t=Ue(n,e);return t!==null?n.subarray(t[0],t[2]):null}function Ue(n,e){let t=n.length,r=0,i,o=0,a;for(;r+8<=t;){if(a=r,o=ee(n,a),a+=4,i=ee(n,a),a+=4,o===0)o=t-r;else if(o===1){if(a+8>t)return null;o=Ne(n,a),a+=8}if(o<0)throw new Error("ISOBMFF: Size out of range");if(i===e)return e===1970628964&&(a+=16),[r,a,r+o];r+=o}return null}function hn(n,e,t,r,i){let o=n.length,a;for(let s=0;s<o;s+=a){let d=s;a=ee(n,d),d+=4;let u=ee(n,d);if(d+=4,a===0)a=o-s;else if(a===1){if(d+8>o)return;a=Ne(n,d),d+=8}if(u===1970628964&&d+16<=o&&ee(n,d)===e&&ee(n,d+4)===t&&ee(n,d+8)===r&&ee(n,d+12)===i)return d+=16,n.subarray(d,s+a)}}function ws(n){let e=n.length;if(e<8)return m.warn("ISOBMFF: box inferior to 8 bytes, cannot find offsets"),null;let t=0,r=ee(n,t);t+=4;let i=ee(n,t);if(t+=4,r===0)r=e;else if(r===1){if(t+8>e)return m.warn("ISOBMFF: box too short, cannot find offsets"),null;r=Ne(n,t),t+=8}if(r<0)throw new Error("ISOBMFF: Size out of range");return i===1970628964&&(t+=16),[0,t,r]}function Wo(n){let e=0,t=Ee(n,1836019574);if(t===null)return[];let r=[];for(;e<t.length;){let i;try{i=Ue(t,1886614376)}catch(s){let d=s instanceof Error?s:"";return m.warn("Error while removing PSSH from ISOBMFF",d),r}if(i===null)return r;let o=Cs(t,i[0],i[2]),a=Go(o,i[1]-i[0]);a!==void 0&&r.push({systemId:a,data:o}),t[i[0]+4]=102,t[i[0]+5]=114,t[i[0]+6]=101,t[i[0]+7]=101,e=i[2]}return r}function Go(n,e){if(n[e]>1){m.warn("ISOBMFF: un-handled PSSH version");return}let t=e+4;if(t+16>n.length)return;let r=Cs(n,t,t+16);return Oe(r)}var jr=Math.pow(2,32)-1;var Os={};function Vc(n){if(Os[n]!==void 0)return Os[n];let e=_e(n);return Os[n]=e,e}function de(n,e){let t=e.length+8;return t<=jr?te(ge(t),Vc(n),e):te(ge(1),Vc(n),Yt(t+8),e)}function Ce(n,e){return de(n,te(...e))}function Yr(n){let e=Ee(n,1836019558);return e===null?null:Ee(e,1953653094)}function zc(n){return Kc(n,1836019558).reduce((t,r)=>{let i=Ee(r,1953653094);return i!==null&&t.push(i),t},[])}function $r(n){return Ee(n,1835295092)}function Ds(n){let e=Ee(n,1836019574);if(e===null)return null;let t=Ee(e,1953653099);return t===null?null:Ee(t,1835297121)}function Hc(n,e=0){return Ee(n.subarray(e),1701671783)}function Qr(n){let e=Lc(n,8),t=Uo(n.subarray(10,e+10)),i=new DOMParser().parseFromString(t,"application/xml").querySelector("KID");if(i===null)throw new Error("Cannot parse PlayReady private data: invalid XML");let o=i.textContent===null?"":i.textContent,a=Bo(ft(o));return Oe(a).toLowerCase()}function Xr(n,e){let t=Ue(n,1936286840);if(t===null)return null;let r=e,i=t[2]-t[0],o=t[1],a=n[o];o+=8;let s=ee(n,o);o+=4;let d;if(a===0)d=ee(n,o),o+=4,r+=ee(n,o)+i,o+=4;else if(a===1)d=Ne(n,o),o+=8,r+=Ne(n,o)+i,o+=8;else return null;let u=[];o+=2;let c=Ko(n,o);for(o+=2;--c>=0;){let l=ee(n,o);o+=4;let f=(l&2147483648)>>>31,p=l&2147483647;if(f===1)throw new Error("sidx with reference_type `1` not yet implemented");let g=ee(n,o);o+=4,o+=4,u.push({time:d,duration:g,timescale:s,range:[r,r+p-1]}),d+=g,r+=p}return u}function Ls(n){let e=Yr(n);if(e===null)return;let t=Ee(e,1952867444);if(t===null)return;let r=t[0];if(r===1)return Ne(t,4);if(r===0)return ee(t,4)}function Eg(n){let e=Ee(n,1952868452);if(e===null)return;let t=1,r=ks(e,t);t+=3;let i=(r&1)>0,o=(r&2)>0;return(r&8)>0?(t+=4,i&&(t+=8),o&&(t+=4),ee(e,t)):void 0}function Zr(n){let e=zc(n);if(e.length===0)return;let t=0;for(let r of e){let i=Ee(r,1953658222);if(i===null)return;let o=0,a=i[o];if(o+=1,a>1)return;let s=ks(i,o);o+=3;let d=(s&256)>0,u=0;if(!d&&(u=Eg(r),u===void 0))return;let c=(s&1)>0,l=(s&4)>0,f=(s&512)>0,p=(s&1024)>0,g=(s&2048)>0,S=ee(i,o);o+=4,c&&(o+=4),l&&(o+=4);let I=S,y=0;for(;I-- >0;)d?(y+=ee(i,o),o+=4):y+=u,f&&(o+=4),p&&(o+=4),g&&(o+=4);t+=y}return t}function Jr(n){let e=Ds(n);if(e===null)return;let t=Ee(e,1835296868);if(t===null)return;let r=0,i=t[r];if(r+=4,i===1)return ee(t,r+16);if(i===0)return ee(t,r+8)}function Ns(n){let e=n.length;if(e<4)throw new Error("Cannot update box length: box too short");let t=ee(n,0);if(t===0)if(e>jr){let r=new Uint8Array(e+8);return r.set(ge(1),0),r.set(n.subarray(4,8),4),r.set(Yt(e+8),8),r.set(n.subarray(8,e),16),r}else return n.set(ge(e),0),n;else if(t===1){if(e<16)throw new Error("Cannot update box length: box too short");return n.set(Yt(e),8),n}else{if(e<=jr)return n.set(ge(e),0),n;{let r=new Uint8Array(e+8);return r.set(ge(1),0),r.set(n.subarray(4,8),4),r.set(Yt(e+8),8),r.set(n.subarray(8,e),16),r}}}function Wc(n){let e=[],t=0;for(;t<n.length;){let r=Hc(n,t);if(r===null)break;let i=r.length;t+=i;let o=r[0];if(o!==0)m.warn("ISOBMFF: EMSG version "+o.toString()+" not supported.");else{let a=4,{end:s,string:d}=_s(r,a);a=s;let{end:u,string:c}=_s(r,a);a=u;let l=ee(r,a);a+=4;let f=ee(r,a);a+=4;let p=ee(r,a);a+=4;let g=ee(r,a);a+=4;let S=r.subarray(a,i),I={schemeIdUri:d,value:c,timescale:l,presentationTimeDelta:f,eventDuration:p,id:g,messageData:S};e.push(I)}}if(e.length!==0)return e}function Gc(n){let e=Ms(n,[1836019574,1953653099,1835297121,1835626086,1937007212,1937011556]);if(e===null)return null;let t=e.subarray(8),r=Ee(t,1701733238),i=0;if(r===null?(i=28,r=Ee(t,1701733217)):i=78,r===null)return null;let o=Ms(r.subarray(i),[1936289382,1935894633,1952804451]);if(o===null||o.byteLength<24)return null;let a=o.subarray(8,24);return a.every(s=>s===0)?null:a}var qo=ee(_e("pssh"),0);function vg(n){m.info("Compat: Trying to move CENC PSSH from init data at the end of it.");let e=!1,t=new Uint8Array,r=new Uint8Array,i=0;for(;i<n.length;){if(n.length<i+8||ee(n,i+4)!==qo)throw m.warn("Compat: unrecognized initialization data. Cannot patch it."),new Error("Compat: unrecognized initialization data. Cannot patch it.");let o=ee(new Uint8Array(n),i);if(i+o>n.length)throw m.warn("Compat: unrecognized initialization data. Cannot patch it."),new Error("Compat: unrecognized initialization data. Cannot patch it.");let a=n.subarray(i,i+o);if(n[i+12]===16&&n[i+13]===119&&n[i+14]===239&&n[i+15]===236&&n[i+16]===192&&n[i+17]===178&&n[i+18]===77&&n[i+19]===2&&n[i+20]===172&&n[i+21]===227&&n[i+22]===60&&n[i+23]===30&&n[i+24]===82&&n[i+25]===226&&n[i+26]===251&&n[i+27]===75){let s=ws(a),d=s===null?void 0:a[s[1]];m.info("Compat: CENC PSSH found with version",d),d===void 0?m.warn("Compat: could not read version of CENC PSSH"):e===(d===1)?t=te(t,a):d===1?(m.warn("Compat: cenc version 1 encountered, removing every other cenc pssh box."),t=a,e=!0):m.warn("Compat: filtering out cenc pssh box with wrong version",d)}else r=te(r,a);i+=o}if(i!==n.length)throw m.warn("Compat: unrecognized initialization data. Cannot patch it."),new Error("Compat: unrecognized initialization data. Cannot patch it.");return te(r,t)}function ei(n,e,t){m.debug("Compat: Calling generateRequest on the MediaKeySession");let r;try{r=vg(t)}catch(o){r=t}let i=e!=null?e:"";return n.generateRequest(i,r).catch(o=>{if(i!==""||!(o instanceof TypeError))throw o;return m.warn('Compat: error while calling `generateRequest` with an empty initialization data type. Retrying with a default "cenc" value.',o),n.generateRequest("cenc",r)})}function Rg(n){let e=[],t=0;for(;t<n.length;){if(n.length<t+8||ee(n,t+4)!==qo)return m.warn("Compat: Unrecognized initialization data. Use as is."),[{systemId:void 0,data:n}];let r=ee(new Uint8Array(n),t);if(t+r>n.length)return m.warn("Compat: Unrecognized initialization data. Use as is."),[{systemId:void 0,data:n}];let i=n.subarray(t,t+r),a={systemId:Go(i,8),data:i};kg(e,a)?m.warn("Compat: Duplicated PSSH found in initialization data, removing it."):e.push(a),t+=r}return t!==n.length?(m.warn("Compat: Unrecognized initialization data. Use as is."),[{systemId:void 0,data:n}]):e}function kg(n,e){for(let t=0;t<n.length;t++){let r=n[t];if((e.systemId===void 0||r.systemId===void 0||e.systemId===r.systemId)&&me(e.data,r.data))return!0}return!1}function jo(n){let{initData:e,initDataType:t}=n;if(_(e))return m.warn("Compat: No init data found on media encrypted event."),null;let r=new Uint8Array(e),i=Rg(r);return{type:t,values:i}}var Pg=100;async function ti(n,e){m.info("DRM: Load persisted session",e);let t=await n.load(e);return!t||n.keyStatuses.size>0?t:new Promise(r=>{n.addEventListener("keystatuseschange",o);let i=setTimeout(o,Pg);function o(){a(),r(t)}function a(){clearTimeout(i),n.removeEventListener("keystatuseschange",o)}})}var St=Fc;function qc(n){var t;let e=Le.getState(n);return Le.setState(n,null),zr((t=e==null?void 0:e.emeImplementation)!=null?t:St,n,null)}async function Us(n,{emeImplementation:e,keySystemOptions:t,loadedSessionsStore:r,mediaKeySystemAccess:i,mediaKeys:o},a){let s=Le.getState(n);if(await(s!==null&&s.loadedSessionsStore!==r?s.loadedSessionsStore.closeAllSessions():Promise.resolve()),a.isCancelled())throw a.cancellationError;if(Le.setState(n,{emeImplementation:e,keySystemOptions:t,mediaKeySystemAccess:i,mediaKeys:o,loadedSessionsStore:r}),n.mediaKeys!==o)return m.info("DRM: Attaching MediaKeys to the media element"),zr(e,n,o).then(()=>{m.info("DRM: MediaKeys attached with success")}).catch(u=>{let c=u instanceof Error?u.toString():"Unknown Error";throw new fe("MEDIA_KEYS_ATTACHMENT_ERROR","Could not attach the MediaKeys to the media element: "+c)})}function ni(n){if(n.sessionId==="")return!1;let e=n.keyStatuses,t=[];return e.forEach(r=>{t.push(r)}),t.length<=0?(m.debug("DRM: isSessionUsable: MediaKeySession given has an empty keyStatuses",n.sessionId),!1):$(t,"expired")?(m.debug("DRM: isSessionUsable: MediaKeySession given has an expired key",n.sessionId),!1):$(t,"internal-error")?(m.debug("DRM: isSessionUsable: MediaKeySession given has a key with an internal-error",n.sessionId),!1):(m.debug("DRM: isSessionUsable: MediaKeySession is usable",n.sessionId),!0)}function Bs(n,e,t,r){let{loadedSessionsStore:i,persistentSessionsStore:o}=n;return t==="temporary"?jc(i,e):o===null?(m.warn("DRM: Cannot create persistent MediaKeySession, PersistentSessionsStore not created."),jc(i,e)):Ag(i,o,e,r)}function jc(n,e){m.info("DRM: Creating a new temporary session");let t=n.createSession(e,"temporary");return Promise.resolve({type:"created-session",value:t})}async function Ag(n,e,t,r){if(r.cancellationError!==null)throw r.cancellationError;m.info("DRM: Creating persistent MediaKeySession");let i=n.createSession(t,"persistent-license"),o=e.getAndReuse(t);if(o===null)return{type:"created-session",value:i};try{let s=await n.loadPersistentSession(i.mediaKeySession,o.sessionId);if(!s){m.warn("DRM: No data stored for the loaded session"),e.delete(o.sessionId),n.removeSessionWithoutClosingIt(i.mediaKeySession);let d=n.createSession(t,"persistent-license");return{type:"created-session",value:d}}return s&&ni(i.mediaKeySession)?(e.add(t,t.keyIds,i.mediaKeySession),m.info("DRM: Succeeded to load persistent session."),{type:"loaded-persistent-session",value:i}):(m.warn("DRM: Previous persistent session not usable anymore."),a())}catch(s){return m.warn("DRM: Unable to load persistent session: "+(s instanceof Error?s.toString():"Unknown Error")),a()}async function a(){if(r.cancellationError!==null)throw r.cancellationError;m.info("DRM: Removing previous persistent session.");let s=e.get(t);s!==null&&e.delete(s.sessionId);try{await n.closeSession(i.mediaKeySession)}catch(u){if(i.mediaKeySession.sessionId!=="")throw u;n.removeSessionWithoutClosingIt(i.mediaKeySession)}if(r.cancellationError!==null)throw r.cancellationError;let d=n.createSession(t,"persistent-license");return{type:"created-session",value:d}}}async function Fs(n,e){if(e<0||e>=n.getLength())return;m.info("DRM: LSS cache limit exceeded",e,n.getLength());let t=[],r=n.getAll().slice(),i=r.length-e;for(let o=0;o<i;o++){let a=r[o];t.push(n.closeSession(a.mediaKeySession))}await Promise.all(t)}async function Ks(n,e,t,r,i){let o=null,{loadedSessionsStore:a,persistentSessionsStore:s}=e,d=a.reuse(n);if(d!==null){if(o=d.mediaKeySession,ni(o))return m.info("DRM: Reuse loaded session",o.sessionId),{type:"loaded-open-session",value:{mediaKeySession:o,sessionType:d.sessionType,keySessionRecord:d.keySessionRecord}};s!==null&&d.mediaKeySession.sessionId!==""&&s.delete(d.mediaKeySession.sessionId)}if(o!==null&&(await a.closeSession(o),i.cancellationError!==null)||(await Fs(a,r),i.cancellationError!==null))throw i.cancellationError;let u=await Bs(e,n,t,i);return{type:u.type,value:{mediaKeySession:u.value.mediaKeySession,sessionType:u.value.sessionType,keySessionRecord:u.value.keySessionRecord}}}function Vs(){return!ar&&!Ma}function Yc(n){return!(ir&&n.indexOf("playready")!==-1)}var $c='<WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.0.0.0"><DATA><PROTECTINFO><KEYLEN>16</KEYLEN><ALGID>AESCTR</ALGID></PROTECTINFO><KID>ckB07BNLskeUq0qd83fTbA==</KID><DS_ID>yYIPDBca1kmMfL60IsfgAQ==</DS_ID><CUSTOMATTRIBUTES xmlns=""><encryptionref>312_4024_2018127108</encryptionref></CUSTOMATTRIBUTES><CHECKSUM>U/tsUYRgMzw=</CHECKSUM></DATA></WRMHEADER>';function Qc(n){let e=No(n),t=Uc(e.length),r=new Uint8Array([1,0]),i=new Uint8Array([1,0]),o=qr(e.length+6),a=te(o,i,r,t,e),s=je("9a04f07998404286ab92e65be0885f95");return Cg(a,s)}function Cg(n,e){let t=_e("pssh"),r=new Uint8Array([0,0,0,0]),i=ge(n.length),o=ge(32+n.length);return te(o,t,r,e,i,n)}function zs(){return rn}function Bn(n,e){return typeof Array.prototype.flatMap=="function"?n.flatMap(e):n.reduce((t,r)=>{let i=e(r);return Array.isArray(i)?(t.push(...i),t):(t.push(i),t)},[])}function Mg(n,e,t){let r=e.getConfiguration();if(zs()||_(r))return null;let i=n.filter(o=>!(o.type!==t.type||(!_(o.persistentLicenseConfig)||o.persistentState==="required")&&r.persistentState!=="required"||o.distinctiveIdentifier==="required"&&r.distinctiveIdentifier!=="required"))[0];return i!==void 0?{keySystemOptions:i,keySystemAccess:e}:null}function xg(n){let{EME_KEY_SYSTEMS:e}=B.getCurrent();for(let t of Object.keys(e))if($(e[t],n))return t}function wg(n){let{keyName:e,keyType:t,keySystemOptions:r}=n,i=["temporary"],o="optional",a="optional";_(r.persistentLicenseConfig)||(o="required",i.push("persistent-license")),_(r.persistentState)||(o=r.persistentState),_(r.distinctiveIdentifier)||(a=r.distinctiveIdentifier);let{EME_DEFAULT_AUDIO_CODECS:s,EME_DEFAULT_VIDEO_CODECS:d,EME_DEFAULT_WIDEVINE_ROBUSTNESSES:u,EME_DEFAULT_PLAYREADY_RECOMMENDATION_ROBUSTNESSES:c}=B.getCurrent(),l,f,{audioCapabilitiesConfig:p,videoCapabilitiesConfig:g}=r;if((p==null?void 0:p.type)==="full")l=p.value;else{let I;(p==null?void 0:p.type)==="robustness"?I=p.value:e==="widevine"?I=u:t==="com.microsoft.playready.recommendation"?I=c:I=[],I.length===0&&I.push(void 0);let y=(p==null?void 0:p.type)==="contentType"?p.value:s;l=Bn(I,T=>y.map(v=>T!==void 0?{contentType:v,robustness:T}:{contentType:v}))}if((g==null?void 0:g.type)==="full")f=g.value;else{let I;(g==null?void 0:g.type)==="robustness"?I=g.value:e==="widevine"?I=u:t==="com.microsoft.playready.recommendation"?I=c:I=[],I.length===0&&I.push(void 0);let y=(g==null?void 0:g.type)==="contentType"?g.value:d;f=Bn(I,T=>y.map(v=>T!==void 0?{contentType:v,robustness:T}:{contentType:v}))}let S={initDataTypes:["cenc"],videoCapabilities:f,audioCapabilities:l,distinctiveIdentifier:a,persistentState:o,sessionTypes:i};return[S,Se(ce({},S),{audioCapabilities:void 0,videoCapabilities:void 0})]}function Hs(n,e,t){m.info("DRM: Searching for compatible MediaKeySystemAccess");let r=Le.getState(n);if(r!==null&&St.implementation===r.emeImplementation.implementation){let a=Mg(e,r.mediaKeySystemAccess,r.keySystemOptions);if(a!==null)return m.info("DRM: Found cached compatible keySystem"),Promise.resolve({type:"reuse-media-key-system-access",value:{mediaKeySystemAccess:a.keySystemAccess,options:a.keySystemOptions}})}let i=e.reduce((a,s)=>{let{EME_KEY_SYSTEMS:d}=B.getCurrent(),u=d[s.type],c;if(!_(u))c=u.map(l=>({keyName:s.type,keyType:l,keySystemOptions:s}));else{let l=xg(s.type),f=s.type;c=[{keyName:l,keyType:f,keySystemOptions:s}]}return a.concat(c)},[]);return o(0);async function o(a){if(a>=i.length)throw new fe("INCOMPATIBLE_KEYSYSTEMS","No key system compatible with your wanted configuration has been found in the current browser.");if(_(St.requestMediaKeySystemAccess))throw new Error("requestMediaKeySystemAccess is not implemented in your browser.");let s=i[a],{keyType:d,keySystemOptions:u}=s,c=wg(s);m.debug(`DRM: Request keysystem access ${d},${a+1} of ${i.length}`);try{let l=await Og(d,c);return m.info("DRM: Found compatible keysystem",d,a+1),{type:"create-media-key-system-access",value:{options:u,mediaKeySystemAccess:l}}}catch(l){if(m.debug("DRM: Rejected access to keysystem",d,a+1),t.cancellationError!==null)throw t.cancellationError;return o(a+1)}}}async function Og(n,e){let t=await St.requestMediaKeySystemAccess(n,e);if(!Yc(n))try{let i=(await t.createMediaKeys()).createSession(),o=Qc($c);await i.generateRequest("cenc",o)}catch(r){throw m.debug("DRM: KeySystemAccess was granted but it is not usable"),r}return t}function Fn(n,e){for(let t of n)if(!e.some(i=>me(i,t)))return!1;return!0}function Xc(n,e){for(let t of n)if(e.some(i=>me(i,t)))return!0;return!1}var ri=class{constructor(e){this._initializationData=e,this._keyIds=null}associateKeyIds(e){this._keyIds===null&&(this._keyIds=[]);let t=Array.from(e);for(let r of t)this.isAssociatedWithKeyId(r)||this._keyIds.push(r)}isAssociatedWithKeyId(e){if(this._keyIds===null)return!1;for(let t of this._keyIds)if(me(t,e))return!0;return!1}getAssociatedKeyIds(){return this._keyIds===null?[]:this._keyIds}isCompatibleWith(e){let{keyIds:t}=e;if(t!==void 0&&t.length>0){if(this._keyIds!==null&&Fn(t,this._keyIds))return!0;if(this._initializationData.keyIds!==void 0)return Fn(t,this._initializationData.keyIds)}return this._checkInitializationDataCompatibility(e)}_checkInitializationDataCompatibility(e){return e.keyIds!==void 0&&e.keyIds.length>0&&this._initializationData.keyIds!==void 0?Fn(e.keyIds,this._initializationData.keyIds):this._initializationData.type!==e.type?!1:this._initializationData.values.isCompatibleWith(e.values)}};var ii=class{constructor(e){this._mediaKeys=e,this._storage=[]}createSession(e,t){let r=new ri(e);m.debug("DRM-LSS: calling `createSession`",t);let i=this._mediaKeys.createSession(t),o={mediaKeySession:i,sessionType:t,keySessionRecord:r,isGeneratingRequest:!1,isLoadingPersistentSession:!1,closingStatus:{type:"none"}};return _(i.closed)||i.closed.then(()=>{m.info("DRM-LSS: session was closed, removing it.",i.sessionId);let a=this.getIndex(r);a>=0&&this._storage[a].mediaKeySession===i&&this._storage.splice(a,1)}).catch(a=>{m.warn(`DRM-LSS: MediaKeySession.closed rejected: ${a}`)}),this._storage.push(ce({},o)),m.debug("DRM-LSS: MediaKeySession added",o.sessionType,this._storage.length),o}reuse(e){for(let t=this._storage.length-1;t>=0;t--){let r=this._storage[t];if(r.keySessionRecord.isCompatibleWith(e))return this._storage.splice(t,1),this._storage.push(r),m.debug("DRM-LSS: Reusing session:",r.mediaKeySession.sessionId,r.sessionType),ce({},r)}return null}getEntryForSession(e){for(let t=this._storage.length-1;t>=0;t--){let r=this._storage[t];if(r.mediaKeySession===e)return ce({},r)}return null}async generateLicenseRequest(e,t,r){let i;for(let o of this._storage)if(o.mediaKeySession===e){i=o;break}if(i===void 0)return m.error("DRM-LSS: generateRequest error. No MediaKeySession found with the given initData and initDataType"),ei(e,t,r);if(i.isGeneratingRequest=!0,i.closingStatus.type!=="none")throw new Error("The `MediaKeySession` is being closed.");try{await ei(e,t,r)}catch(o){throw i===void 0||(i.isGeneratingRequest=!1,i.closingStatus.type==="awaiting"&&i.closingStatus.start()),o}i!==void 0&&(i.isGeneratingRequest=!1,i.closingStatus.type==="awaiting"&&i.closingStatus.start())}async loadPersistentSession(e,t){let r;for(let o of this._storage)if(o.mediaKeySession===e){r=o;break}if(r===void 0)return m.error("DRM-LSS: loadPersistentSession error. No MediaKeySession found with the given initData and initDataType"),ti(e,t);if(r.isLoadingPersistentSession=!0,r.closingStatus.type!=="none")throw new Error("The `MediaKeySession` is being closed.");let i;try{i=await ti(e,t)}catch(o){throw r===void 0||(r.isLoadingPersistentSession=!1,r.closingStatus.type==="awaiting"&&r.closingStatus.start()),o}return r===void 0||(r.isLoadingPersistentSession=!1,r.closingStatus.type==="awaiting"&&r.closingStatus.start()),i}async closeSession(e){let t;for(let r of this._storage)if(r.mediaKeySession===e){t=r;break}return t===void 0?(m.warn("DRM-LSS: No MediaKeySession found with the given initData and initDataType"),Promise.resolve(!1)):this._closeEntry(t)}getLength(){return this._storage.length}getAll(){return this._storage}async closeAllSessions(){let e=this._storage;m.debug("DRM-LSS: Closing all current MediaKeySessions",e.length),this._storage=[];let t=e.map(r=>this._closeEntry(r));await Promise.all(t)}removeSessionWithoutClosingIt(e){J(e.sessionId==="","Initialized `MediaKeySession`s should always be properly closed");for(let t=this._storage.length-1;t>=0;t--)if(this._storage[t].mediaKeySession===e)return m.debug("DRM-LSS: Removing session without closing it",e.sessionId),this._storage.splice(t,1),!0;return!1}getIndex(e){for(let t=0;t<this._storage.length;t++)if(this._storage[t].keySessionRecord===e)return t;return-1}async _closeEntry(e){let{mediaKeySession:t}=e;return new Promise((r,i)=>{e!==void 0&&(e.isLoadingPersistentSession||e.isGeneratingRequest)?e.closingStatus={type:"awaiting",start:o}:o();function o(){e!==void 0&&(e.closingStatus={type:"pending"}),Dg(t).then(()=>{e!==void 0&&(e.closingStatus={type:"done"}),r(!0)}).catch(a=>{e!==void 0&&(e.closingStatus={type:"failed"}),i(a)})}})}};async function Dg(n){m.debug("DRM: Trying to close a MediaKeySession",n.sessionId);try{await Po(n),m.debug("DRM: Succeeded to close MediaKeySession");return}catch(e){m.error("DRM: Could not close MediaKeySession: "+(e instanceof Error?e.toString():"Unknown error"));return}}function $t(n){let e=0,t;for(let r=0;r<n.length;r++)t=n[r],e=(e<<5)-e+t,e=e&e;return e}var at=class{constructor(e){this.initData=e}toJSON(){return Lo(this.initData)}static decode(e){return ft(e)}};function Kn(n,e){var t,r;return(r=(t=Zc(n,e))!=null?t:Zc(e,n))!=null?r:!1}function Zc(n,e){if(n.length===0)return!1;if(e.length<n.length)return null;let t=n[0],r=0,i=0;for(;i<e.length;i++){let o=e[i];if(o.systemId!==t.systemId)continue;if(o.hash!==t.hash)return!1;let a;t.data instanceof Uint8Array?a=t.data:typeof t.data=="string"?a=at.decode(t.data):a=t.data.initData;let s;if(o.data instanceof Uint8Array?s=o.data:typeof o.data=="string"?s=at.decode(o.data):s=o.data.initData,!me(a,s))return!1;if(e.length-i<n.length)return null;for(r=1;r<n.length;r++){let d=n[r];for(i+=1;i<e.length;i++){let u=e[i];if(d.systemId!==u.systemId)continue;if(d.hash!==u.hash)return!1;let c;d.data instanceof Uint8Array?c=d.data:typeof d.data=="string"?c=at.decode(d.data):c=d.data.initData;let l;if(u.data instanceof Uint8Array?l=u.data:typeof u.data=="string"?l=at.decode(u.data):l=u.data.initData,!me(c,l))return!1;break}if(r===e.length)return null}return!0}return null}function Lg(n){Bl(n,{save:"function",load:"function"},"persistentLicenseConfig")}var oi=class{constructor(e){Lg(e),this._entries=[],this._storage=e;try{let t=this._storage.load();Array.isArray(t)||(t=[]),this._entries=t}catch(t){m.warn("DRM-PSS: Could not get entries from license storage",t instanceof Error?t:""),this.dispose()}}getLength(){return this._entries.length}getAll(){return this._entries}get(e){let t=this._getIndex(e);return t===-1?null:this._entries[t]}getAndReuse(e){let t=this._getIndex(e);if(t===-1)return null;let r=this._entries.splice(t,1)[0];return this._entries.push(r),r}add(e,t,r){var s;if(_(r)||!w(r.sessionId)){m.warn("DRM-PSS: Invalid Persisten Session given.");return}let{sessionId:i}=r,o=this._getIndex(e);if(o>=0){let d=t===void 0?3:4,u=this._entries[o];if(((s=u.version)!=null?s:-1)>=d&&i===u.sessionId)return;m.info("DRM-PSS: Updating session info.",i),this._entries.splice(o,1)}else m.info("DRM-PSS: Add new session",i);let a=Ng(e.values.getFormattedValues());t===void 0?this._entries.push({version:3,sessionId:i,values:a,initDataType:e.type}):this._entries.push({version:4,sessionId:i,keyIds:t.map(d=>new at(d)),values:a,initDataType:e.type}),this._save()}delete(e){let t=-1;for(let i=0;i<this._entries.length;i++)if(this._entries[i].sessionId===e){t=i;break}if(t===-1){m.warn("DRM-PSS: initData to delete not found.");return}let r=this._entries[t];m.warn("DRM-PSS: Delete session from store",r.sessionId),this._entries.splice(t,1),this._save()}deleteOldSessions(e){m.info(`DRM-PSS: Deleting last ${e} sessions.`),!(e<=0)&&(e<=this._entries.length?this._entries.splice(0,e):(m.warn("DRM-PSS: Asked to remove more information that it contains",e,this._entries.length),this._entries=[]),this._save())}dispose(){this._entries=[],this._save()}_getIndex(e){let t=null;function r(){if(t===null){let i=e.values.constructRequestData();t={initData:i,initDataHash:$t(i)}}return t}for(let i=0;i<this._entries.length;i++){let o=this._entries[i];if(o.initDataType===e.type)switch(o.version){case 4:if(e.keyIds!==void 0){if(e.keyIds.every(d=>{let u=Lo(d);for(let c of o.keyIds)if(typeof c=="string"){if(u===c)return!0}else if(me(c.initData,d))return!0;return!1}))return i}else{let s=e.values.getFormattedValues();if(Kn(s,o.values))return i}break;case 3:let a=e.values.getFormattedValues();if(Kn(a,o.values))return i;break;case 2:{let{initData:s,initDataHash:d}=r();if(o.initDataHash===d)try{let u=typeof o.initData=="string"?at.decode(o.initData):o.initData.initData;if(me(u,s))return i}catch(u){m.warn("DRM-PSS: Could not decode initialization data.",u instanceof Error?u:"")}break}case 1:{let{initData:s,initDataHash:d}=r();if(o.initDataHash===d){if(typeof o.initData.length=="undefined")return i;if(me(o.initData,s))return i}break}default:{let{initDataHash:s}=r();if(o.initData===s)return i}}}return-1}_save(){try{this._storage.save(this._entries)}catch(e){let t=e instanceof Error?e:void 0;m.warn("DRM-PSS: Could not save MediaKeySession information",t)}}};function Ng(n){return n.map(({systemId:e,data:t,hash:r})=>({systemId:e,hash:r,data:new at(t)}))}var Yo=new WeakMap,In={prepare(n){Yo.set(n,null)},set(n,e){let t=e instanceof Uint8Array?e:new Uint8Array(e instanceof ArrayBuffer?e:e.buffer),r=$t(t);Yo.set(n,{hash:r,serverCertificate:t})},hasOne(n){let e=Yo.get(n);if(e===void 0)return!1;if(e!==null)return!0},has(n,e){let t=Yo.get(n);if(t==null)return!1;let{hash:r,serverCertificate:i}=t,o=e instanceof Uint8Array?e:new Uint8Array(e instanceof ArrayBuffer?e:e.buffer);if($t(o)!==r||i.length!==o.length)return!1;for(let s=0;s<i.length;s++)if(i[s]!==o[s])return!1;return!0}};function Ug(n){let{persistentLicenseConfig:e}=n;return _(e)?null:(m.debug("DRM: Set the given license storage"),new oi(e))}async function Ws(n,e,t){let r=await Hs(n,e,t);if(t.cancellationError!==null)throw t.cancellationError;let{options:i,mediaKeySystemAccess:o}=r.value,a=Le.getState(n),s=Ug(i);if(Vs()&&a!==null&&r.type==="reuse-media-key-system-access"){let{mediaKeys:c,loadedSessionsStore:l}=a;if(In.hasOne(c)===!1||!_(i.serverCertificate)&&In.has(c,i.serverCertificate))return{mediaKeys:c,mediaKeySystemAccess:o,stores:{loadedSessionsStore:l,persistentSessionsStore:s},options:i}}let d=await Bg(o);m.info("DRM: MediaKeys created with success");let u=new ii(d);return{mediaKeys:d,mediaKeySystemAccess:o,stores:{loadedSessionsStore:u,persistentSessionsStore:s},options:i}}async function Bg(n){m.info("DRM: Calling createMediaKeys on the MediaKeySystemAccess");try{return await n.createMediaKeys()}catch(e){let t=e instanceof Error?e.message:"Unknown error when creating MediaKeys.";throw new fe("CREATE_MEDIA_KEYS_ERROR",t)}}async function Gs(n,e,t){let r=await Ws(n,e,t),{mediaKeys:i}=r;return n.mediaKeys!==null&&n.mediaKeys!==void 0&&i!==n.mediaKeys&&(m.debug("DRM: Disabling old MediaKeys"),await qc(n)),r}function qs(n,e,t){let{baseDelay:r,maxDelay:i,totalRetry:o,shouldRetry:a,onRetry:s}=e,d=0;return u();async function u(){if(t.cancellationError!==null)throw t.cancellationError;try{return await n()}catch(c){if(t.cancellationError!==null)throw t.cancellationError;if(!_(a)&&!a(c)||d++>=o)throw c;typeof s=="function"&&s(c,d);let l=Fg(r,d,i);return await pn(l),u()}}}function Fg(n,e,t){let r=n*Math.pow(2,e-1),i=Rr(r);return Math.min(i,t)}function js(n,e){return n.indexOf("playready")!==-1&&(Kt||ir)?Bo(e):e}var Vn=class n extends Error{constructor(e){super(e.message),Object.setPrototypeOf(this,n.prototype),this.reason=e}},Ys={EXPIRED:"expired",INTERNAL_ERROR:"internal-error",OUTPUT_RESTRICTED:"output-restricted"};function $s(n,e,t){let{onKeyInternalError:r,onKeyOutputRestricted:i,onKeyExpiration:o}=e,a=[],s=[],d=[];n.keyStatuses.forEach((c,l)=>{let[f,p]=typeof c=="string"?[c,l]:[l,c],g=js(t,new Uint8Array(p)),S={keyId:g.buffer,keyStatus:f};switch(m.hasLevel("DEBUG")&&m.debug(`DRM: key status update (${Oe(g)}): ${f}`),f){case Ys.EXPIRED:{let I=new fe("KEY_STATUS_CHANGE_ERROR",`A decryption key expired (${Oe(g)})`,{keyStatuses:[S,...d]});if(o==="error"||o===void 0)throw I;switch(o){case"close-session":throw new Vn(I);case"fallback":a.push(g);break;default:o==="continue"||o===void 0?s.push(g):Xe(o);break}d.push(S);break}case Ys.INTERNAL_ERROR:{let I=new fe("KEY_STATUS_CHANGE_ERROR",`A "${f}" status has been encountered (${Oe(g)})`,{keyStatuses:[S,...d]});switch(r){case void 0:case"error":throw I;case"close-session":throw new Vn(I);case"fallback":a.push(g);break;case"continue":s.push(g);break;default:if(r!==void 0)Xe(r);else throw I}d.push(S);break}case Ys.OUTPUT_RESTRICTED:{let I=new fe("KEY_STATUS_CHANGE_ERROR",`A "${f}" status has been encountered (${Oe(g)})`,{keyStatuses:[S,...d]});switch(i){case void 0:case"error":throw I;case"fallback":a.push(g);break;case"continue":s.push(g);break;default:if(i!==void 0)Xe(i);else throw I}d.push(S);break}default:s.push(g);break}});let u;return d.length>0&&(u=new fe("KEY_STATUS_CHANGE_ERROR","One or several problematic key statuses have been encountered",{keyStatuses:d})),{warning:u,blacklistedKeyIds:a,whitelistedKeyIds:s}}function Qs(n,e,t,r,i){m.info("DRM: Binding session events",n.sessionId);let{getLicenseConfig:o={}}=e,a=new F;a.linkToSignal(i),_(n.closed)||n.closed.then(()=>a.cancel()).catch(c=>{i.isCancelled()||(a.cancel(),r.onError(c))}),xo(n,c=>{a.cancel(),r.onError(new fe("KEY_ERROR",c.type))},a.signal),Ac(n,()=>{m.info("DRM: keystatuseschange event received",n.sessionId);try{s()}catch(c){if(i.isCancelled()||a.isUsed()&&c instanceof ur)return;a.cancel(),r.onError(c)}},a.signal),Mo(n,c=>{let l=c,f=new Uint8Array(l.message),p=w(l.messageType)?l.messageType:"license-request";m.info(`DRM: Received message event, type ${p}`,n.sessionId);let g=u(o.retry);qs(()=>d(f,p),g,a.signal).then(S=>{if(a.isUsed())return Promise.resolve();if(_(S))m.info("DRM: No license given, skipping session.update");else try{return Kg(n,S)}catch(I){a.cancel(),r.onError(I)}}).catch(S=>{if(a.isUsed())return;a.cancel();let I=Jc(S);if(!_(S)){let{fallbackOnLastTry:y}=S;if(y===!0){m.warn("DRM: Last `getLicense` attempt failed. Blacklisting the current session."),r.onError(new zn(I));return}}r.onError(I)})},a.signal),m.info("DRM: transmitting current keystatuses",n.sessionId),s();return;function s(){if(a.isUsed()||n.keyStatuses.size===0)return;let{warning:c,blacklistedKeyIds:l,whitelistedKeyIds:f}=$s(n,e,t);c!==void 0&&(r.onWarning(c),a.isUsed())||r.onKeyUpdate({whitelistedKeyIds:f,blacklistedKeyIds:l})}function d(c,l){let f;return new Promise((p,g)=>{try{m.debug("DRM: Calling `getLicense`",l);let y=e.getLicense(c,l),T=_(o.timeout)?10*1e3:o.timeout;T>=0&&(f=setTimeout(()=>{g(new ai(`"getLicense" timeout exceeded (${T} ms)`))},T)),Promise.resolve(y).then(S,I)}catch(y){I(y)}function S(y){f!==void 0&&clearTimeout(f),p(y)}function I(y){f!==void 0&&clearTimeout(f),g(y)}})}function u(c){return{totalRetry:c!=null?c:2,baseDelay:200,maxDelay:3e3,shouldRetry:l=>l instanceof ai||_(l)||l.noRetry!==!0,onRetry:l=>r.onWarning(Jc(l))}}}function Jc(n){if(n instanceof ai)return new fe("KEY_LOAD_TIMEOUT","The license server took too much time to respond.");let e=new fe("KEY_LOAD_ERROR","An error occured when calling `getLicense`.");return!_(n)&&w(n.message)&&(e.message=n.message),e}async function Kg(n,e){m.info("DRM: Updating MediaKeySession with message");try{await n.update(e)}catch(t){let r=t instanceof Error?t.toString():"`session.update` failed";throw new fe("KEY_UPDATE_ERROR",r)}m.info("DRM: MediaKeySession update succeeded.")}var zn=class n extends Error{constructor(e){super(e.message),Object.setPrototypeOf(this,n.prototype),this.sessionError=e}},ai=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,zn.prototype),this.message=e}};async function Vg(n,e){try{return await n.setServerCertificate(e)}catch(t){m.warn("DRM: mediaKeys.setServerCertificate returned an error",t instanceof Error?t:"");let r=t instanceof Error?t.toString():"`setServerCertificate` error";throw new fe("LICENSE_SERVER_CERTIFICATE_ERROR",r)}}async function Xs(n,e){if(In.hasOne(n)===!0)return m.info("DRM: The MediaKeys already has a server certificate, skipping..."),{type:"already-has-one"};if(typeof n.setServerCertificate!="function")return m.warn("DRM: Could not set the server certificate. mediaKeys.setServerCertificate is not a function"),{type:"method-not-implemented"};m.info("DRM: Setting server certificate on the MediaKeys"),In.prepare(n);try{let t=await Vg(n,e);return In.set(n,e),{type:"success",value:t}}catch(t){return{type:"error",value:zt(t)?t:new fe("LICENSE_SERVER_CERTIFICATE_ERROR","Unknown error when setting the server certificate.")}}}function Zs(n,e){if(isNaN(e)||e<0||e>=n.getLength())return;let t=n.getLength(),r=t-e;m.info("DRM: Too many stored persistent sessions, removing some.",t,r),n.deleteOldSessions(r)}function Js(n){if(qe(n,"com.microsoft.playready")||n==="com.chromecast.playready"||n==="com.youtube.playready")return"9a04f07998404286ab92e65be0885f95";if(n==="com.widevine.alpha")return"edef8ba979d64acea3c827dcd51d21ed";if(qe(n,"com.apple.fps"))return"94ce86fb07ff4f43adb893d2fa968ca2";if(qe(n,"com.nagra."))return"adb41c242dbf4a6d958b4457c0d27b95"}var si=class n{constructor(e){this._innerValues=e,this._lazyFormattedValues=null}constructRequestData(){return te(...this._innerValues.map(e=>e.data))}isCompatibleWith(e){let t=e instanceof n?e.getFormattedValues():e;return Kn(this.getFormattedValues(),t)}getFormattedValues(){return this._lazyFormattedValues===null&&(this._lazyFormattedValues=zg(this._innerValues)),this._lazyFormattedValues}};function zg(n){return n.slice().sort((e,t)=>e.systemId===t.systemId?0:e.systemId===void 0?1:t.systemId===void 0||e.systemId<t.systemId?-1:1).map(({systemId:e,data:t})=>({systemId:e,data:t,hash:$t(t)}))}var di=class extends ie{static hasEmeApis(){return!_(St.requestMediaKeySystemAccess)}constructor(e,t){super(),m.debug("DRM: Starting ContentDecryptor logic.");let r=new F;this._currentSessions=[],this._canceller=r,this._initDataQueue=[],this._stateData={state:0,isMediaKeysAttached:0,isInitDataQueueLocked:!0,data:null},this.error=null,St.onEncrypted(e,i=>{m.debug("DRM: Encrypted event received from media element.");let o=jo(i);o!==null&&this.onInitializationData(o)},r.signal),Gs(e,t,r.signal).then(i=>{let{options:o,mediaKeySystemAccess:a}=i,s;(_(o.persistentLicenseConfig)||o.persistentLicenseConfig.disableRetroCompatibility===!0)&&(s=Js(a.keySystem)),this.systemId=s,this._stateData.state===0&&(this._stateData={state:1,isInitDataQueueLocked:!0,isMediaKeysAttached:0,data:{mediaKeysInfo:i,mediaElement:e}},this.trigger("stateChange",this._stateData.state))}).catch(i=>{this._onFatalError(i)})}getState(){return this._stateData.state}attach(){if(this._stateData.state!==1)throw new Error("`attach` should only be called when in the WaitingForAttachment state");if(this._stateData.isMediaKeysAttached!==0){m.warn("DRM: ContentDecryptor's `attach` method called more than once.");return}let{mediaElement:e,mediaKeysInfo:t}=this._stateData.data,{options:r,mediaKeys:i,mediaKeySystemAccess:o,stores:a}=t;if(r.disableMediaKeysAttachmentLock===!0&&(this._stateData={state:2,isInitDataQueueLocked:!0,isMediaKeysAttached:1,data:{mediaKeysInfo:t,mediaElement:e}},this.trigger("stateChange",this._stateData.state),this._isStopped()))return;this._stateData.isMediaKeysAttached=1;let d={emeImplementation:St,loadedSessionsStore:a.loadedSessionsStore,mediaKeySystemAccess:o,mediaKeys:i,keySystemOptions:r};m.debug("DRM: Attaching current MediaKeys"),Us(e,d,this._canceller.signal).then(async()=>{this._stateData.isMediaKeysAttached=2;let{serverCertificate:u}=r;if(!_(u)){let l=await Xs(i,u);l.type==="error"&&this.trigger("warning",l.value)}if(this._isStopped())return;let c=this._stateData.state;this._stateData={state:2,isMediaKeysAttached:2,isInitDataQueueLocked:!1,data:{mediaKeysData:t}},c!==2&&this.trigger("stateChange",2),this._isStopped()||this._processCurrentInitDataQueue()}).catch(u=>{this._onFatalError(u)})}dispose(){this.removeEventListener(),this._stateData={state:4,isMediaKeysAttached:void 0,isInitDataQueueLocked:void 0,data:null},this._canceller.cancel(),this.trigger("stateChange",this._stateData.state)}onInitializationData(e){if(this._stateData.isInitDataQueueLocked!==!1){if(this._isStopped())throw new Error("ContentDecryptor either disposed or stopped.");this._initDataQueue.push(e);return}let{mediaKeysData:t}=this._stateData.data,r=Se(ce({},e),{values:new si(e.values)});this._processInitializationData(r,t).catch(i=>{this._onFatalError(i)})}async _processInitializationData(e,t){var S,I,y;m.hasLevel("DEBUG")&&m.debug("DRM: processing init data",(S=e.content)==null?void 0:S.adaptation.type,(I=e.content)==null?void 0:I.representation.bitrate,((y=e.keyIds)!=null?y:[]).map(T=>Oe(T)).join(", "));let{mediaKeySystemAccess:r,stores:i,options:o}=t;if(this._tryToUseAlreadyCreatedSession(e,t)||this._isStopped())return;if(o.singleLicensePer==="content"){let T=X(this._currentSessions,v=>v.source==="created-session");if(T!==void 0){let v=e.keyIds;if(v===void 0){e.content===void 0?m.warn("DRM: Unable to fallback from a non-decipherable quality."):(m.debug("DRM: Blacklisting new init data (due to singleLicensePer content policy)"),this.trigger("blackListProtectionData",e));return}if(T.record.associateKeyIds(v),e.content===void 0)m.warn("DRM: Unable to fallback from a non-decipherable quality.");else{if(m.hasLevel("DEBUG")){let E=v.reduce((R,k)=>`${R}, ${Oe(k)}`,"");m.debug("DRM: Blacklisting new key ids",E)}this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:[],blacklistedKeyIds:v,delistedKeyIds:[]})}return}}else if(o.singleLicensePer==="periods"&&e.content!==void 0){let{period:T}=e.content,v=this._currentSessions.filter(R=>R.source==="created-session"),E=new Set;td(E,T);for(let R of v){let k=Array.from(E);for(let A of k)if(R.record.isAssociatedWithKeyId(A)){R.record.associateKeyIds(E.values());for(let C of k)!R.keyStatuses.whitelisted.some(x=>me(x,C))&&!R.keyStatuses.blacklisted.some(x=>me(x,C))&&R.keyStatuses.blacklisted.push(C);m.hasLevel("DEBUG")&&m.debug("DRM: Session already created for",Oe(A),'under singleLicensePer "periods" policy'),this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:R.keyStatuses.whitelisted,blacklistedKeyIds:R.keyStatuses.blacklisted,delistedKeyIds:[]});return}}}this._lockInitDataQueue();let a;_(o.persistentLicenseConfig)?a="temporary":Hg(r)?a="persistent-license":(m.warn('DRM: Cannot create "persistent-license" session: not supported'),a="temporary");let{EME_DEFAULT_MAX_SIMULTANEOUS_MEDIA_KEY_SESSIONS:s,EME_MAX_STORED_PERSISTENT_SESSION_INFORMATION:d}=B.getCurrent(),u=typeof o.maxSessionCacheSize=="number"?o.maxSessionCacheSize:s,c=await Ks(e,i,a,u,this._canceller.signal);if(this._isStopped())return;let l={record:c.value.keySessionRecord,source:c.type,keyStatuses:{whitelisted:[],blacklisted:[]},blacklistedSessionError:null};this._currentSessions.push(l);let{mediaKeySession:f,sessionType:p}=c.value,g=!1;if(Qs(f,o,r.keySystem,{onKeyUpdate:T=>{let v=qg(e,l.record,o.singleLicensePer,l.source==="created-session",T.whitelistedKeyIds,T.blacklistedKeyIds);if(l.record.associateKeyIds(v.whitelisted),l.record.associateKeyIds(v.blacklisted),l.keyStatuses={whitelisted:v.whitelisted,blacklisted:v.blacklisted},l.record.getAssociatedKeyIds().length!==0&&p==="persistent-license"&&i.persistentSessionsStore!==null&&!g){let{persistentSessionsStore:E}=i;Zs(E,d-1),E.add(e,l.record.getAssociatedKeyIds(),f),g=!0}e.content!==void 0&&this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:v.whitelisted,blacklistedKeyIds:v.blacklisted,delistedKeyIds:[]}),this._unlockInitDataQueue()},onWarning:T=>{this.trigger("warning",T)},onError:T=>{var v;if(T instanceof Vn){m.warn("DRM: A session's closing condition has been triggered"),this._lockInitDataQueue();let E=this._currentSessions.indexOf(l);E>=0&&this._currentSessions.splice(E),e.content!==void 0&&this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:[],blacklistedKeyIds:[],delistedKeyIds:l.record.getAssociatedKeyIds()}),(v=i.persistentSessionsStore)==null||v.delete(f.sessionId),i.loadedSessionsStore.closeSession(f).catch(R=>{let k=R instanceof Error?R:"unknown error";m.warn("DRM: failed to close expired session",k)}).then(()=>this._unlockInitDataQueue()).catch(R=>this._onFatalError(R)),this._isStopped()||this.trigger("warning",T.reason);return}if(!(T instanceof zn)){this._onFatalError(T);return}l.blacklistedSessionError=T,e.content!==void 0&&(m.info("DRM: blacklisting Representations based on protection data."),this.trigger("blackListProtectionData",e)),this._unlockInitDataQueue()}},this._canceller.signal),(o.singleLicensePer===void 0||o.singleLicensePer==="init-data")&&this._unlockInitDataQueue(),c.type==="created-session"){let T=e.values.constructRequestData();try{await i.loadedSessionsStore.generateLicenseRequest(f,e.type,T)}catch(v){let E=i.loadedSessionsStore.getEntryForSession(f);if(E===null||E.closingStatus.type!=="none"){let R=this._currentSessions.indexOf(l);return R>=0&&this._currentSessions.splice(R,1),Promise.resolve()}throw new fe("KEY_GENERATE_REQUEST_ERROR",v instanceof Error?v.toString():"Unknown error")}}return Promise.resolve()}_tryToUseAlreadyCreatedSession(e,t){let{stores:r,options:i}=t,o=X(this._currentSessions,u=>u.record.isCompatibleWith(e));if(o===void 0)return!1;let a=o.blacklistedSessionError;if(!_(a))return e.type===void 0||e.content===void 0?(m.error("DRM: This initialization data has already been blacklisted but the current content is not known."),!0):(m.info("DRM: This initialization data has already been blacklisted. Blacklisting the related content."),this.trigger("blackListProtectionData",e),!0);if(e.keyIds!==void 0){let u;if(i.singleLicensePer===void 0||i.singleLicensePer==="init-data"){let{blacklisted:c}=o.keyStatuses;u=Xc(e.keyIds,c)}else{let{whitelisted:c}=o.keyStatuses;u=!Fn(e.keyIds,c)}if(u)return e.content===void 0?(m.error("DRM: Cannot forbid key id, the content is unknown."),!0):(m.info("DRM: Current initialization data is linked to blacklisted keys. Marking Representations as not decipherable"),this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:[],blacklistedKeyIds:e.keyIds,delistedKeyIds:[]}),!0)}if(r.loadedSessionsStore.reuse(e)!==null)return m.debug("DRM: Init data already processed. Skipping it."),!0;let d=this._currentSessions.indexOf(o);return d===-1?m.error("DRM: Unable to remove processed init data: not found."):(m.debug("DRM: A session from a processed init data is not available anymore. Re-processing it."),this._currentSessions.splice(d,1)),!1}_onFatalError(e){if(this._canceller.isUsed())return;let t=e instanceof Error?e:new Ve("NONE","Unknown decryption error");this.error=t,this._initDataQueue.length=0,this._stateData={state:3,isMediaKeysAttached:void 0,isInitDataQueueLocked:void 0,data:null},this._canceller.cancel(),this.trigger("error",t),this._stateData.state===3&&this.trigger("stateChange",this._stateData.state)}_isStopped(){return this._stateData.state===4||this._stateData.state===3}_processCurrentInitDataQueue(){for(;this._stateData.isInitDataQueueLocked===!1;){let e=this._initDataQueue.shift();if(e===void 0)return;this.onInitializationData(e)}}_lockInitDataQueue(){this._stateData.isInitDataQueueLocked===!1&&(this._stateData.isInitDataQueueLocked=!0)}_unlockInitDataQueue(){if(this._stateData.isMediaKeysAttached!==2){m.error("DRM: Trying to unlock in the wrong state");return}this._stateData.isInitDataQueueLocked=!1,this._processCurrentInitDataQueue()}};function Hg(n){let{sessionTypes:e}=n.getConfiguration();return e!==void 0&&$(e,"persistent-license")}function ef(n,e){return n.filter(t=>!e.some(r=>me(r,t)))}function Wg(n,e){let t=n.getAssociatedKeyIds(),r=ef(t,e);return r.length>0&&m.hasLevel("DEBUG")&&m.debug("DRM: KeySessionRecord's keys missing in the license, blacklisting them",r.map(i=>Oe(i)).join(", ")),r}function Gg(n,e){let t=[],{keyIds:r}=n;return r!==void 0&&(t=ef(r,e)),t.length>0&&m.hasLevel("DEBUG")&&m.debug("DRM: init data keys missing in the license, blacklisting them",t.map(i=>Oe(i)).join(", ")),t}function qg(n,e,t,r,i,o){var u;let a=[...i,...o],s=Wg(e,a),d=a.concat(s);if(t!==void 0&&t!=="init-data"){let c=Gg(n,d);d.push(...c);let{content:l}=n;if(r&&l!==void 0){if(t==="content"){let f=new Set,{manifest:p}=l;for(let g of p.periods)td(f,g);ed(f,d)}else if(t==="periods"){let{manifest:f}=l;for(let p of f.periods){let g=new Set;if(td(g,p),((u=n.content)==null?void 0:u.period.id)===p.id)ed(g,d);else{let S=Array.from(g);for(let I of S)if(d.some(T=>me(T,I))){ed(g,d);break}}}}}}return{whitelisted:i,blacklisted:d.slice(i.length)}}function ed(n,e){let t=Array.from(n.values());for(let r of t)e.some(o=>me(o,r))||e.push(r)}function td(n,e){let t=e.adaptations,r=hr(t).reduce((i,o)=>_(o)?i:i.concat(o),[]);for(let i of r)for(let o of i.representations)if(o.contentProtections!==void 0&&o.contentProtections.keyIds!==void 0)for(let a of o.contentProtections.keyIds)n.add(a.keyId)}function Hn(n){let e=Le.getState(n);return e===null?null:[e.mediaKeySystemAccess.keySystem,e.mediaKeySystemAccess.getConfiguration()]}var tf=di;var Wn=class extends ie{};function nd(n,e){let t={audio:null,video:null,text:null};if(e!==null&&(t.text=e.getBufferedRanges()),n===null)return t;let r=X(n.sourceBuffers,s=>s.type==="audio"),i=X(n.sourceBuffers,s=>s.type==="video"),o=r==null?void 0:r.getBuffered();o!==void 0&&(t.audio=o);let a=i==null?void 0:i.getBuffered();return a!==void 0&&(t.video=a),t}function rd(n,{autoPlay:e,initialPlayPerformed:t,manifest:r,mediaSource:i,speed:o,textDisplayer:a},s){return n.deriveReadOnlyObserver(function(u,c){let l=new F;l.linkToSignal(c),l.linkToSignal(s);let f=new W(p(),l.signal);return o.onUpdate(g,{clearSignal:l.signal,emitCurrentValue:!1}),u.onUpdate(g,{clearSignal:l.signal,emitCurrentValue:!1}),f;function p(){let S=u.getValue(),I=o.getValue();return jg(S,r),{maximumPosition:It(r),bufferGap:S.bufferGap,position:S.position,buffered:nd(i,a),duration:S.duration,rebuffering:S.rebuffering,freezing:S.freezing,paused:{last:S.paused,pending:Yg(t,e)},readyState:S.readyState,speed:I}}function g(){f.setValue(p())}})}function jg(n,e){if(!e.isDynamic||e.isLastPeriodKnown){let t=e.periods[e.periods.length-1];if(t!==void 0&&t.end!==void 0){let r=n.position.getWanted();if(r>=t.start&&r>=t.end-1){let i=n.buffered;(i.length===0||i.end(i.length-1)<n.duration-1)&&n.position.forceWantedPosition(t.end-1)}}}}function Yg(n,e){return n.getValue()?void 0:!e}function Gn(n){let{textTracks:e}=n;if(!_(e)){for(let t=0;t<e.length;t++)e[t].mode="disabled";if(n.hasChildNodes()){let{childNodes:t}=n;for(let r=t.length-1;r>=0;r--)if(t[r].nodeName==="track")try{n.removeChild(t[r])}catch(i){m.warn("Compat: Could not remove text track child from element.")}}}n.src="",n.removeAttribute("src")}var Qt=re,yn=Qt===void 0?void 0:_(Qt.MediaSource)?_(Qt.MozMediaSource)?_(Qt.WebKitMediaSource)?Qt.MSMediaSource:Qt.WebKitMediaSource:Qt.MozMediaSource:Qt.MediaSource;function id(n,e){if(typeof n.changeType=="function"){try{n.changeType(e)}catch(t){return m.warn("Could not call 'changeType' on the given SourceBuffer:",t instanceof Error?t:""),!1}return!0}return!1}function $g(n){let e=[];for(let t=0;t<n.length;t++){let r=n[t];r.updating&&e.push(r)}return e}function ui(n,e){if(m.debug("Init: Trying to call endOfStream"),n.readyState!=="open"){m.debug("Init: MediaSource not open, cancel endOfStream");return}let{sourceBuffers:t}=n,r=$g(t);if(r.length===0){m.info("Init: Triggering end of stream");try{n.endOfStream()}catch(o){m.error("Unable to call endOfStream",o instanceof Error?o:new Error("Unknown error"))}return}m.debug("Init: Waiting SourceBuffers to be updated before calling endOfStream.");let i=new F;i.linkToSignal(e);for(let o of r)Rc(o,()=>{i.cancel(),ui(n,e)},i.signal);kc(t,()=>{i.cancel(),ui(n,e)},i.signal)}function nf(n,e){let t=new F;t.linkToSignal(e),Un(n,()=>{m.debug("Init: MediaSource re-opened while end-of-stream is active"),t.cancel(),t=new F,t.linkToSignal(e),ui(n,t.signal)},e),ui(n,t.signal)}function od(){return sn}var Qg=365*24*3600,li=class{constructor(e){this._mediaSource=e,this._currentMediaSourceDurationUpdateCanceller=null}updateDuration(e,t){this._currentMediaSourceDurationUpdateCanceller!==null&&this._currentMediaSourceDurationUpdateCanceller.cancel(),this._currentMediaSourceDurationUpdateCanceller=new F;let r=this._mediaSource,i=this._currentMediaSourceDurationUpdateCanceller.signal,o=Jg(r,i),a=new F;a.linkToSignal(i),o.onUpdate(s,{emitCurrentValue:!0,clearSignal:i});function s(){if(a.cancel(),!o.getValue())return;a=new F,a.linkToSignal(i);let d=Zg(r.sourceBuffers,a.signal),u=new F;return u.linkToSignal(a.signal),d.onUpdate(c=>{u.cancel(),u=new F,u.linkToSignal(a.signal),!c&&of(r,e,t,u.signal)},{clearSignal:a.signal,emitCurrentValue:!0})}}stopUpdating(){this._currentMediaSourceDurationUpdateCanceller!==null&&(this._currentMediaSourceDurationUpdateCanceller.cancel(),this._currentMediaSourceDurationUpdateCanceller=null)}};function Xg(n,e,t){let r=e;t||(r=od()?1/0:rf(e));let i=0;for(let o=0;o<n.sourceBuffers.length;o++){let a=n.sourceBuffers[o],s=a.buffered.length;s>0&&(i=Math.max(a.buffered.end(s-1)))}if(r===n.duration)return"success";if(i>r){if(i<n.duration)try{m.info("Init: Updating duration to what is currently buffered",i),n.duration=i}catch(o){return m.warn("Duration Updater: Can't update duration on the MediaSource.",o instanceof Error?o:""),"failed"}return"partial"}else{let o=n.duration;try{if(m.info("Init: Updating duration",r),n.duration=r,n.readyState==="open"&&!isFinite(r)){let s=rf(e);m.info("Init: calling `mediaSource.setLiveSeekableRange`",s),n.setLiveSeekableRange(0,s)}}catch(s){return m.warn("Duration Updater: Can't update duration on the MediaSource.",s instanceof Error?s:""),"failed"}let a=Math.abs(n.duration-r);if(a>=.1){let s=Math.abs(n.duration-o);return a<s?"partial":"failed"}return"success"}}function Zg(n,e){if(n.length===0){let i=new W(!1);return i.finish(),i}let t=new W(!1,e);r();for(let i=0;i<n.length;i++){let o=n[i];o.addEventListener("updatestart",r),o.addEventListener("update",r),e.register(()=>{o.removeEventListener("updatestart",r),o.removeEventListener("update",r)})}return t;function r(){for(let i=0;i<n.length;i++)if(n[i].updating){t.setValueIfChanged(!0);return}t.setValueIfChanged(!1)}}function Jg(n,e){let t=new W(n.readyState==="open",e);return Un(n,()=>{m.debug("Init: Reacting to MediaSource open in duration updater"),t.setValueIfChanged(!0)},e),Co(n,()=>{m.debug("Init: Reacting to MediaSource ended in duration updater"),t.setValueIfChanged(!1)},e),Ao(n,()=>{m.debug("Init: Reacting to MediaSource close in duration updater"),t.setValueIfChanged(!1)},e),t}function of(n,e,t,r){if(Xg(n,e,t)==="success")return;let o=setTimeout(()=>{a(),of(n,e,t,r)},2e3),a=r.register(()=>{clearTimeout(o)})}function rf(n){return Math.max(Math.pow(2,32),n+Qg)}var ci=class extends ie{constructor(e){if(super(),this.id=e,this.sourceBuffers=[],this._canceller=new F,_(yn))throw new Z("MEDIA_SOURCE_NOT_SUPPORTED","No MediaSource Object was found in the current browser.");m.info("Init: Creating MediaSource");let t=new yn;this.readyState=t.readyState;let r=t.handle;this.handle=_(r)?{type:"media-source",value:t}:{type:"handle",value:r},this._mediaSource=t,this._durationUpdater=new li(t),this._endOfStreamCanceller=null,Un(t,()=>{this.readyState=t.readyState,this.trigger("mediaSourceOpen",null)},this._canceller.signal),Co(t,()=>{this.readyState=t.readyState,this.trigger("mediaSourceEnded",null)},this._canceller.signal),Ao(t,()=>{this.readyState=t.readyState,this.trigger("mediaSourceClose",null)},this._canceller.signal)}addSourceBuffer(e,t){let r=this._mediaSource.addSourceBuffer(t),i=new ad(e,t,r);return this.sourceBuffers.push(i),i}setDuration(e,t){this._durationUpdater.updateDuration(e,t)}interruptDurationSetting(){this._durationUpdater.stopUpdating()}maintainEndOfStream(){this._endOfStreamCanceller===null&&(this._endOfStreamCanceller=new F,this._endOfStreamCanceller.linkToSignal(this._canceller.signal),m.debug("Init: end-of-stream order received."),nf(this._mediaSource,this._endOfStreamCanceller.signal))}stopEndOfStream(){this._endOfStreamCanceller!==null&&(m.debug("Init: resume-stream order received."),this._endOfStreamCanceller.cancel(),this._endOfStreamCanceller=null)}dispose(){this.sourceBuffers.forEach(e=>e.dispose()),this._canceller.cancel(),eh(this._mediaSource)}},ad=class{constructor(e,t,r){this.type=e,this.codec=t,this._canceller=new F,this._sourceBuffer=r,this._operationQueue=[],this._currentOperations=[];let i=a=>{let s;a instanceof Error?s=a:a.error instanceof Error?s=a.error:s=new Error("Unknown SourceBuffer Error");let d=this._currentOperations;if(this._currentOperations=[],d.length===0)m.error("SBI: error for an unknown operation",s);else{let u=new it(s.name,s.message,s.name==="QuotaExceededError");for(let c of d)c.reject(u)}},o=()=>{let a=this._currentOperations;this._currentOperations=[];try{for(let s of a)s.resolve(Pe(this._sourceBuffer.buffered))}catch(s){for(let d of a)s instanceof Error&&s.name==="InvalidStateError"?d.resolve([]):d.reject(s)}this._performNextOperation()};r.addEventListener("error",i),r.addEventListener("updateend",o),this._canceller.signal.register(()=>{r.removeEventListener("error",i),r.removeEventListener("updateend",o)})}appendBuffer(...e){return m.debug("SBI: receiving order to push data to the SourceBuffer",this.type),this._addToQueue({operationName:0,params:e})}remove(e,t){return m.debug("SBI: receiving order to remove data from the SourceBuffer",this.type,e,t),this._addToQueue({operationName:1,params:[e,t]})}getBuffered(){try{return Pe(this._sourceBuffer.buffered)}catch(e){return m.error("Failed to get buffered time range of SourceBuffer",this.type,e instanceof Error?e:null),[]}}abort(){try{this._sourceBuffer.abort()}catch(e){m.debug("Init: Failed to abort SourceBuffer:",e instanceof Error?e:null)}this._emptyCurrentQueue()}dispose(){try{this._sourceBuffer.abort()}catch(e){}this._emptyCurrentQueue()}_emptyCurrentQueue(){let e=new Ae;this._currentOperations.length>0&&(this._currentOperations.forEach(t=>{t.reject(e)}),this._currentOperations=[]),this._operationQueue.length>0&&(this._operationQueue.forEach(t=>{t.reject(e)}),this._operationQueue=[])}_addToQueue(e){return new Promise((t,r)=>{let i=this._operationQueue.length===0&&this._currentOperations.length===0,o=Y({resolve:t,reject:r},e);this._operationQueue.push(o),i&&this._performNextOperation()})}_performNextOperation(){var t,r,i,o,a;if(this._currentOperations.length!==0||this._sourceBuffer.updating)return;let e=this._operationQueue.shift();if(e!==void 0)if(e.operationName===0){this._currentOperations=[{operationName:0,resolve:e.resolve,reject:e.reject}];let s=e.params[0],d=e.params[1],u=s;if(this._operationQueue.length>0&&this._operationQueue[0].operationName===0){let c;s instanceof ArrayBuffer?c=new Uint8Array(s):s instanceof Uint8Array?c=s:c=new Uint8Array(s.buffer);let l=[c];for(;((t=this._operationQueue[0])==null?void 0:t.operationName)===0;){let f=this._operationQueue[0],p=(r=d.appendWindow)!=null?r:[void 0,void 0],g=(i=f.params[1].appendWindow)!=null?i:[void 0,void 0],S=(o=d.timestampOffset)!=null?o:0,I=(a=f.params[1].timestampOffset)!=null?a:0;if(p[0]===g[0]&&p[1]===g[1]&&d.codec===f.params[1].codec&&S===I){let y=f.params[0],T;y instanceof ArrayBuffer?T=new Uint8Array(y):y instanceof Uint8Array?T=y:T=new Uint8Array(y.buffer),l.push(T),this._operationQueue.splice(0,1),this._currentOperations.push({operationName:0,resolve:f.resolve,reject:f.reject})}else break}l.length>1&&(m.info(`MMSI: Merging ${l.length} segments together for perf`,this.type),u=te(...l))}try{this._appendBufferNow(u,d)}catch(c){let l=c instanceof Error?new it(c.name,c.message,c.name==="QuotaExceededError"):new it("Error","Unknown SourceBuffer Error during appendBuffer",!1);this._currentOperations.forEach(f=>{f.reject(l)}),this._currentOperations=[]}}else{this._currentOperations=[e];let[s,d]=e.params;m.debug("SBI: removing data from SourceBuffer",this.type,s,d);try{this._sourceBuffer.remove(s,d)}catch(u){let c=u instanceof Error?new it(u.name,u.message,!1):new it("Error","Unknown SourceBuffer Error during remove",!1);e.reject(c),this._currentOperations=[]}}}_appendBufferNow(e,t){let r=this._sourceBuffer,{codec:i,timestampOffset:o,appendWindow:a=[]}=t;if(i!==void 0&&i!==this.codec&&(m.debug("SBI: updating codec",i),id(r,i)?this.codec=i:m.debug("SBI: could not update codec",i,this.codec)),o!==void 0&&r.timestampOffset!==o){let s=o;m.debug("SBI: updating timestampOffset",i,r.timestampOffset,s),r.timestampOffset=s}if(a[0]===void 0)r.appendWindowStart>0&&(m.debug("SBI: re-setting `appendWindowStart` to `0`"),r.appendWindowStart=0);else if(a[0]!==r.appendWindowStart){if(a[0]>=r.appendWindowEnd){let s=a[0]+1;m.debug("SBI: pre-updating `appendWindowEnd`",s),r.appendWindowEnd=s}m.debug("SBI: setting `appendWindowStart`",a[0]),r.appendWindowStart=a[0]}a[1]===void 0?r.appendWindowEnd!==1/0&&(m.debug("SBI: re-setting `appendWindowEnd` to `Infinity`"),r.appendWindowEnd=1/0):a[1]!==r.appendWindowEnd&&(m.debug("SBI: setting `appendWindowEnd`",a[1]),r.appendWindowEnd=a[1]),m.debug("SBI: pushing segment",this.type),r.appendBuffer(e)}};function eh(n){if(n.readyState!=="closed"){let{readyState:e,sourceBuffers:t}=n;for(let r=t.length-1;r>=0;r--){let i=t[r];try{if(e==="open"){m.info("Init: Aborting SourceBuffer before removing");try{i.abort()}catch(o){}}m.info("Init: Removing SourceBuffer from mediaSource"),n.removeSourceBuffer(i)}catch(o){}}t.length>0&&m.info("Init: Not all SourceBuffers could have been removed.")}}var th=Je();function sd(n,e){if(e!==null&&n.src===e&&(m.info("Init: Clearing HTMLMediaElement's src"),Gn(n)),e!==null)try{m.debug("Init: Revoking previous URL"),URL.revokeObjectURL(e)}catch(t){m.warn("Init: Error while revoking the media source URL",t instanceof Error?t:"")}}function nh(n,e){let t=w(n.src)?n.src:null;sd(n,t);let r=new ci(th());return e.register(()=>{r.dispose()}),r}function $o(n,e){return ot(e,t=>{let r=nh(n,e);if(r.addEventListener("mediaSourceOpen",()=>{m.info("Init: MediaSource opened"),t(r)},e),m.info("MTCI: Attaching MediaSource URL to the media element"),r.handle.type==="handle")n.srcObject=r.handle.value,e.register(()=>{sd(n,null)});else{let i=URL.createObjectURL(r.handle.value);n.src=i,e.register(()=>{sd(n,i)})}})}function dd(n,e,t){var i;if(!_(t)){let o=ln(n),a=It(n);if(_(t.position))if(_(t.wallClockTime))if(_(t.fromFirstPosition))if(_(t.fromLastPosition))if(_(t.fromLivePosition)){if(!_(t.percentage)){m.debug("Init: using startAt.percentage");let{percentage:s}=t;if(s>100)return a;if(s<0)return o;let d=+s/100,u=a-o;return o+u*d}}else{m.debug("Init: using startAt.fromLivePosition");let s=(i=cn(n))!=null?i:a,{fromLivePosition:d}=t;return d>=0?s:Math.max(o,s+d)}else{m.debug("Init: using startAt.fromLastPosition");let{fromLastPosition:s}=t;return s>=0?a:Math.max(o,a+s)}else{m.debug("Init: using startAt.fromFirstPosition");let{fromFirstPosition:s}=t;return s<=0?o:Math.min(a,o+s)}else{m.debug("Init: using startAt.wallClockTime");let s=n.availabilityStartTime===void 0?0:n.availabilityStartTime,d=t.wallClockTime-s;return Math.max(Math.min(d,a),o)}else return m.debug("Init: using startAt.minimumPosition"),Math.max(Math.min(t.position,a),o)}let r=ln(n);if(n.isLive){let{suggestedPresentationDelay:o,clockOffset:a}=n,s=It(n),d,{DEFAULT_LIVE_GAP:u}=B.getCurrent();if(a===void 0)m.info("Init: no clock offset found for a live content, starting close to maximum available position"),d=s;else{m.info("Init: clock offset found for a live content, checking if we can start close to it");let l=n.availabilityStartTime===void 0?0:n.availabilityStartTime,f=(V()+a)/1e3-l;d=Math.min(s,f)}let c=o!=null?o:e?u.LOW_LATENCY:u.DEFAULT;return m.debug(`Init: ${d} defined as the live time, applying a live gap of ${c}`),Math.max(d-c,r)}return m.info("Init: starting at the minimum available position:",r),r}function fi(){return Ca}function ud(n){return!(n&&an)}function ld(){return sn}function mi(n,e,t,r){let i=new F;i.linkToSignal(r);let o=new W(!1,i.signal);return n.listen(a=>{if(a.rebuffering!==null||a.freezing!==null||a.readyState===0)return;if(!ud(t)){if(isNaN(e.duration))return;if(e.duration>0){o.setValue(!0),i.cancel();return}}let s=ld()?4:3;if(a.readyState>=s&&(a.currentRange!==null||a.ended)&&(!fi()||e.duration>0)){o.setValue(!0),i.cancel();return}},{includeLastObservation:!0,clearSignal:i.signal}),o}var rh=!an,af=rh;var qn=class{constructor(e,t){this._last=e,this._wanted=t}serialize(){return[this._last,this._wanted]}getPolled(){return this._last}getWanted(){var e;return(e=this._wanted)!=null?e:this._last}forceWantedPosition(e){this._wanted=e}isAwaitingFuturePosition(){return this._wanted!==null}};function pi({mediaElement:n,playbackObserver:e,startTime:t,mustAutoPlay:r,isDirectfile:i,onWarning:o},a){let s=new W(!1,a);return{autoPlayResult:new Promise((u,c)=>{let l=a.register(y=>{c(y)});if(a.isCancelled())return;let f=!1,p=y=>{e.setCurrentTime(y),f=!0};if(!i||typeof t=="number"){let y=typeof t=="number"?t:t();y!==0&&p(y),g()}else e.listen((y,T)=>{if(y.readyState>=1){T();let v=typeof t=="number"?t:t();v!==0&&(af?p(v):setTimeout(()=>{p(v)},0)),g()}},{includeLastObservation:!0,clearSignal:a});function g(){let y=!1;e.listen((T,v)=>{if(!y&&(T.seeking!==0||T.event==="seeking"||T.event==="internal-seeking")&&(y=!0),!(f&&!y||T.readyState===0)){if(v(),fi()&&n.duration===0){let E=new Z("MEDIA_ERR_NOT_LOADED_METADATA","Cannot load automatically: your browser falsely announced having loaded the content.");o(E)}a.isCancelled()||S()}},{includeLastObservation:!0,clearSignal:a})}function S(){e.listen((y,T)=>{y.seeking===0&&y.rebuffering===null&&y.readyState>=1&&(T(),I())},{includeLastObservation:!0,clearSignal:a})}function I(){var T;if(m.info("Init: Can begin to play content"),r){if(n.ended)return m.warn("Init: autoplay is enabled but the video is ended. Skipping autoplay to prevent video to start again"),s.setValue(!0),s.finish(),l(),u({type:"skipped"})}else return n.autoplay&&m.warn("Init: autoplay is enabled on HTML media element. Media will play as soon as possible."),s.setValue(!0),s.finish(),l(),u({type:"skipped"});let y;try{y=(T=n.play())!=null?T:Promise.resolve()}catch(v){return l(),c(v)}y.then(()=>{if(!a.isCancelled())return s.setValue(!0),s.finish(),l(),u({type:"autoplay"})}).catch(v=>{if(l(),!a.isCancelled())if(v instanceof Error&&v.name==="NotAllowedError"){m.warn("Init: Media element can't play. It may be due to browser auto-play policies.");let E=new Z("MEDIA_ERR_BLOCKED_AUTOPLAY","Cannot trigger auto-play automatically: your browser does not allow it.");return o(E),a.isCancelled()?void 0:u({type:"autoplay-blocked"})}else c(v)})}}),initialPlayPerformed:s}}function gi(n,e,t,r,i){if(e.length===0)return u("No `keySystems` option given.");if(ue.decrypt===null)return u("EME feature not activated.");let o=new F;o.linkToSignal(i);let a=new W({initializationState:{type:"uninitialized",value:null},drmSystemId:void 0},i),s=ue.decrypt;if(!s.hasEmeApis())return u("EME API not available on the current page.");m.debug("Init: Creating ContentDecryptor");let d=new s(n,e);return d.addEventListener("stateChange",c=>{if(c===1){let l=new W(!1);l.onUpdate((f,p)=>{f&&(p(),c===1&&d.attach())},{clearSignal:o.signal}),a.setValue({initializationState:{type:"awaiting-media-link",value:{isMediaLinked:l}},drmSystemId:d.systemId})}else c===2&&(a.setValue({initializationState:{type:"initialized",value:null},drmSystemId:d.systemId}),d.removeEventListener("stateChange"))}),d.addEventListener("error",c=>{o.cancel(),r.onError(c)}),d.addEventListener("warning",c=>{r.onWarning(c)}),d.addEventListener("blackListProtectionData",c=>{r.onBlackListProtectionData(c)}),d.addEventListener("keyIdsCompatibilityUpdate",c=>{r.onKeyIdsCompatibilityUpdate(c)}),t.onUpdate(c=>{c!==null&&d.onInitializationData(c)},{clearSignal:o.signal}),o.signal.register(()=>{d.dispose()}),a;function u(c){t.onUpdate((f,p)=>{if(f===null)return;p();let g=new fe("MEDIA_IS_ENCRYPTED_ERROR",c);r.onError(g)},{clearSignal:i});let l=new W({initializationState:{type:"initialized",value:null},drmSystemId:void 0});return l.finish(),l}}var hi=class{constructor(e){this._displayer=e}pushTextData(e){try{return Promise.resolve(this._displayer.pushTextData(e))}catch(t){return Promise.reject(t)}}remove(e,t){try{return Promise.resolve(this._displayer.removeBuffer(e,t))}catch(r){return Promise.reject(r)}}reset(){this._displayer.reset()}stop(){this._displayer.stop()}};var Ii=1/60,Sn=class extends ie{constructor(e,t,r){super(),this._playbackObserver=e,this._manifest=t,this._speed=r,this._discontinuitiesStore=[],this._isStarted=!1,this._canceller=new F}start(){if(this._isStarted)return;this._isStarted=!0;let e=new md(this._playbackObserver,this._speed);this._canceller.signal.register(()=>{e.dispose()});let t=null;this._playbackObserver.listen(r=>{let i=this._discontinuitiesStore,{buffered:o,position:a,readyState:s,rebuffering:d,freezing:u}=r,{BUFFER_DISCONTINUITY_THRESHOLD:c,FREEZING_STALLED_DELAY:l,UNFREEZING_SEEK_DELAY:f,UNFREEZING_DELTA_POSITION:p}=B.getCurrent();if(u!==null){let T=V(),v=t===null?u.timestamp:t.attemptTimestamp;if(!a.isAwaitingFuturePosition()&&T-v>f&&(m.warn("Init: trying to seek to un-freeze player"),this._playbackObserver.setCurrentTime(this._playbackObserver.getCurrentTime()+p),t={attemptTimestamp:T}),T-u.timestamp>l){d===null?e.stopRebuffering():e.startRebuffering(),this.trigger("stalled","freezing");return}}else t=null;if(d===null){if(e.stopRebuffering(),s===1){let T;r.seeking!==0?T=r.seeking===1?"internal-seek":"seeking":T="not-ready",this.trigger("stalled",T);return}this.trigger("unstalled",null);return}let g=d.reason==="seeking"&&r.seeking===1?"internal-seek":d.reason;if(a.isAwaitingFuturePosition()){e.stopRebuffering(),m.debug("Init: let rebuffering happen as we're awaiting a future position"),this.trigger("stalled",g);return}if(e.startRebuffering(),this._manifest===null){this.trigger("stalled",g);return}let{position:S}=d;if(S!=null&&this._speed.getValue()>0){let T=ih(i,this._manifest,S);if(T!==null){let v=T+.001;if(v<=this._playbackObserver.getCurrentTime())m.info("Init: position to seek already reached, no seeking",this._playbackObserver.getCurrentTime(),v);else{m.warn("SA: skippable discontinuity found in the stream",a.getPolled(),v),this._playbackObserver.setCurrentTime(v),this.trigger("warning",fd(S,v));return}}}let I=S!=null?S:a.getPolled(),y=Ol(o,I);if(this._speed.getValue()>0&&y<c){let T=I+y+Ii;if(this._playbackObserver.getCurrentTime()<T){m.warn("Init: discontinuity encountered inferior to the threshold",I,T,c),this._playbackObserver.setCurrentTime(T),this.trigger("warning",fd(I,T));return}}for(let T=this._manifest.periods.length-2;T>=0;T--){let v=this._manifest.periods[T];if(v.end!==void 0&&v.end<=I){if(this._manifest.periods[T+1].start>I&&this._manifest.periods[T+1].start>this._playbackObserver.getCurrentTime()){let E=this._manifest.periods[T+1];this._playbackObserver.setCurrentTime(E.start),this.trigger("warning",fd(I,E.start));return}break}}this.trigger("stalled",g)},{includeLastObservation:!0,clearSignal:this._canceller.signal})}updateDiscontinuityInfo(e){this._isStarted||this.start();let t=this._playbackObserver.getReference().getValue();oh(this._discontinuitiesStore,e,t)}onLockedStream(e,t){var s;this._isStarted||this.start();let r=this._playbackObserver.getReference().getValue();if(!r.rebuffering||r.paused||this._speed.getValue()<=0||e!=="audio"&&e!=="video")return;let i=r.position.getWanted(),o=(s=r.rebuffering.position)!=null?s:i,a=t.start;i<a&&Math.abs(o-a)<1&&(m.warn(`Init: rebuffering because of a future locked stream.
4
4
  Trying to unlock by seeking to the next Period`),this._playbackObserver.setCurrentTime(a+.001))}destroy(){this._canceller.cancel()}};function ih(n,e,t){if(n.length===0)return null;let r=null;for(let i of n){let{period:o}=i;if(o.start>t)return r;let a;if(o.end===void 0||o.end>t){let{discontinuity:s,position:d}=i,{start:u,end:c}=s,l=u!=null?u:d;if(t>=l-Ii)if(c===null){let f=ho(e,o);f!==null?a=f.start+Ii:m.warn("Init: discontinuity at Period's end but no next Period")}else t<c+Ii&&(a=c+Ii);a!==void 0&&(m.info("Init: discontinuity found",t,a),r=r!==null&&r>a?r:a)}}return r}function cd(n){return n.discontinuity!==null}function oh(n,e,t){let r=Math.min(t.position.getPolled(),t.position.getWanted());for(;n.length>0&&n[0].period.end!==void 0&&n[0].period.end+10<r;)n.shift();let{period:i,bufferType:o}=e;if(!(o!=="audio"&&o!=="video")){for(let a=0;a<n.length;a++)if(n[a].period.id===i.id){if(n[a].bufferType===o){cd(e)?n[a]=e:n.splice(a,1);return}}else if(n[a].period.start>i.start){cd(e)&&n.splice(a,0,e);return}cd(e)&&n.push(e)}}function fd(n,e){return new Z("DISCONTINUITY_ENCOUNTERED","A discontinuity has been encountered at position "+String(n)+", seeked at position "+String(e))}var md=class{constructor(e,t){this._speedUpdateCanceller=new F,this._isRebuffering=!1,this._playbackObserver=e,this._isDisposed=!1,this._speed=t,this._updateSpeed()}startRebuffering(){this._isRebuffering||this._isDisposed||(this._isRebuffering=!0,this._speedUpdateCanceller.cancel(),m.info("Init: Pause playback to build buffer"),this._playbackObserver.setPlaybackRate(0))}stopRebuffering(){!this._isRebuffering||this._isDisposed||(this._isRebuffering=!1,this._speedUpdateCanceller=new F,this._updateSpeed())}dispose(){this._speedUpdateCanceller.cancel(),this._isDisposed=!0}_updateSpeed(){this._speed.onUpdate(e=>{m.info("Init: Resume playback speed",e),this._playbackObserver.setPlaybackRate(e)},{clearSignal:this._speedUpdateCanceller.signal,emitCurrentValue:!0})}};function ah(n,e){return n.id===e.id&&n.start===e.start&&n.end===e.end}var sf=ah;function sh(n,e){let t=[],{periods:r}=e;for(let i of r){let{streamEvents:o}=i;o.forEach(({start:a,end:s,id:d,data:u})=>{for(let f of n)if(sf(f,{id:d,start:a,end:s})){t.push(f);return}let c;if(u.value.element!==void 0)c=u.value.element;else if(u.value.xmlData!==void 0){let f=u.value.xmlData.namespaces.reduce((g,S)=>g+"xmlns:"+S.key+'="'+S.value+'" ',"<toremove ");f+=">";let p=new DOMParser().parseFromString(f+u.value.xmlData.data+"</toremove>","application/xml").documentElement;c=p.children.length>0?p.children[0]:p.childNodes[0]}else return;let l={type:u.type,value:Se(ce({},u.value),{element:c})};if(s===void 0){let f={start:a,id:d,data:l,publicEvent:{start:a,data:l}};t.push(f)}else{let f={start:a,end:s,id:d,data:l,publicEvent:{start:a,end:s,data:l}};t.push(f)}})}return t}var pd=sh;var yi=class extends ie{constructor(e,t,r){super(),this._manifest=e,this._mediaElement=t,this._playbackObserver=r,this._canceller=null,this._scheduledEventsRef=new W([]),this._eventsBeingPlayed=new WeakMap}start(){if(this._canceller!==null)return;this._canceller=new F;let e=this._canceller.signal,t=this._playbackObserver,r=this._mediaElement,i=!1,o=new F;o.linkToSignal(e),this._scheduledEventsRef.setValue(pd([],this._manifest)),this._scheduledEventsRef.onUpdate(({length:a})=>{if(a===0){i&&(o.cancel(),o=new F,o.linkToSignal(e),i=!1);return}else if(i)return;i=!0;let s=l(),d=()=>{let f=l();this._emitStreamEvents(this._scheduledEventsRef.getValue(),s,f,o.signal),s=f},{STREAM_EVENT_EMITTER_POLL_INTERVAL:u}=B.getCurrent(),c=setInterval(d,u);t.listen(d,{includeLastObservation:!1,clearSignal:o.signal}),o.signal.register(()=>{clearInterval(c)});function l(){let f=t.getReference().getValue(),p=r.currentTime,g=f.seeking!==0;return{currentTime:p,isSeeking:g}}},{emitCurrentValue:!0,clearSignal:e})}onManifestUpdate(e){let t=this._scheduledEventsRef.getValue();this._scheduledEventsRef.setValue(pd(t,e))}stop(){this._canceller!==null&&(this._canceller.cancel(),this._canceller=null)}_emitStreamEvents(e,t,r,i){let{currentTime:o}=t,{isSeeking:a,currentTime:s}=r,d=[],u=[];for(let c=0;c<e.length;c++){let l=e[c],f=l.start,p=gd(l)?l.end:void 0;this._eventsBeingPlayed.has(l)?(f>s||p!==void 0&&s>=p)&&(gd(l)&&u.push(l.publicEvent),this._eventsBeingPlayed.delete(l)):f<=s&&p!==void 0&&s<p?(d.push({type:"stream-event",value:l.publicEvent}),this._eventsBeingPlayed.set(l,!0)):o<f&&s>=(p!=null?p:f)&&(a?d.push({type:"stream-event-skip",value:l.publicEvent}):(d.push({type:"stream-event",value:l.publicEvent}),gd(l)&&u.push(l.publicEvent)))}if(d.length>0){for(let c of d)if(c.type==="stream-event"?this.trigger("event",c.value):this.trigger("eventSkip",c.value),i.isCancelled())return}if(u.length>0){for(let c of u)if(typeof c.onExit=="function"&&c.onExit(),i.isCancelled())return}}};function gd(n){return n.end!==void 0}var df=yi;function Si(n,e,t){if(t.isCancelled())return;n.addEventListener("error",r),t.register(()=>{n.removeEventListener("error",r)});function r(){let i=n.error,o,a;switch(_(i)||(o=i.code,a=i.message),o){case 1:return a=a!=null?a:"The fetching of the associated resource was aborted by the user's request.",e(new Z("MEDIA_ERR_ABORTED",a));case 2:return a=a!=null?a:"A network error occurred which prevented the media from being successfully fetched",e(new Z("MEDIA_ERR_NETWORK",a));case 3:return a=a!=null?a:"An error occurred while trying to decode the media resource",e(new Z("MEDIA_ERR_DECODE",a));case 4:return a=a!=null?a:"The media resource has been found to be unsuitable.",e(new Z("MEDIA_ERR_SRC_NOT_SUPPORTED",a));default:return a=a!=null?a:"The HTMLMediaElement errored due to an unknown reason.",e(new Z("MEDIA_ERR_UNKNOWN",a))}}}var bn=class extends Wn{constructor(e){super(),this._settings=e,this._initCanceller=new F,this._manifest=null;let t=e.url===void 0?void 0:[e.url];this._manifestFetcher=new Qa(t,e.transport,e.manifestRequestSettings)}prepare(){this._manifest===null&&(this._manifest=bc.createAsync(ot(this._initCanceller.signal,(e,t)=>{this._manifestFetcher.addEventListener("warning",r=>this.trigger("warning",r)),this._manifestFetcher.addEventListener("error",r=>{this.trigger("error",r),t(r)}),this._manifestFetcher.addEventListener("manifestReady",r=>{e(r)})})),this._manifestFetcher.start(),this._initCanceller.signal.register(()=>{this._manifestFetcher.dispose()}))}start(e,t){this.prepare(),Si(e,i=>this._onFatalError(i),this._initCanceller.signal);let r=new W(null,this._initCanceller.signal);this._initializeMediaSourceAndDecryption(e,r).then(i=>this._onInitialMediaSourceReady(e,i.mediaSource,t,i.drmSystemId,r,i.unlinkMediaSource)).catch(i=>{this._onFatalError(i)})}updateContentUrls(e,t){this._manifestFetcher.updateContentUrls(e,t)}dispose(){this._initCanceller.cancel()}_onFatalError(e){this._initCanceller.isUsed()||(this._initCanceller.cancel(),this.trigger("error",e))}_initializeMediaSourceAndDecryption(e,t){let r=this._initCanceller;return ot(r.signal,i=>{let{keySystems:o}=this._settings,a=gi(e,o,t,{onWarning:s=>this.trigger("warning",s),onError:s=>this._onFatalError(s),onBlackListProtectionData:s=>{(async()=>{var u;if(this._manifest===null)return;let d=(u=this._manifest.syncValue)!=null?u:await this._manifest.getValueAsAsync();uh(d,s)})().catch(Q)},onKeyIdsCompatibilityUpdate:s=>{(async()=>{var u;if(this._manifest===null)return;let d=(u=this._manifest.syncValue)!=null?u:await this._manifest.getValueAsAsync();dh(d,s.whitelistedKeyIds,s.blacklistedKeyIds,s.delistedKeyIds)})().catch(Q)}},r.signal);a.onUpdate((s,d)=>{if(s.initializationState.type==="uninitialized")return;d();let u=new F;u.linkToSignal(r.signal),$o(e,u.signal).then(c=>{let l=a.getValue();if(l.initializationState.type==="awaiting-media-link")l.initializationState.value.isMediaLinked.setValue(!0),a.onUpdate((f,p)=>{if(f.initializationState.type==="initialized"){p(),i({mediaSource:c,drmSystemId:f.drmSystemId,unlinkMediaSource:u});return}},{emitCurrentValue:!0,clearSignal:r.signal});else if(s.initializationState.type==="initialized"){i({mediaSource:c,drmSystemId:s.drmSystemId,unlinkMediaSource:u});return}}).catch(c=>{u.isUsed()||this._onFatalError(c)})},{emitCurrentValue:!0,clearSignal:r.signal})})}async _onInitialMediaSourceReady(e,t,r,i,o,a){var N;let{adaptiveOptions:s,autoPlay:d,bufferOptions:u,lowLatencyMode:c,segmentRequestOptions:l,speed:f,startAt:p,textTrackOptions:g,transport:S}=this._settings,I=this._initCanceller;J(this._manifest!==null);let y;try{y=(N=this._manifest.syncValue)!=null?N:await this._manifest.getValueAsAsync()}catch(D){return}y.addEventListener("manifestUpdate",D=>{this.trigger("manifestUpdate",D)},I.signal),y.addEventListener("decipherabilityUpdate",D=>{this.trigger("decipherabilityUpdate",D)},I.signal),m.debug("Init: Calculating initial time");let T=dd(y,c,p);m.debug("Init: Initial time calculated:",T);let v=Gl(s),E=Y({textTrackOptions:g,drmSystemId:i},u),R=new es(S,l,I.signal);if(this.trigger("manifestReady",y),I.isUsed())return;let k=this._startBufferingOnMediaSource.bind(this),A=this.trigger.bind(this),C=this._onFatalError.bind(this);x(t,T,d,a);function x(D,L,P,M){k({mediaElement:e,playbackObserver:r,mediaSource:D,initialTime:L,autoPlay:P,manifest:y,representationEstimator:v,segmentFetcherCreator:R,speed:f,protectionRef:o,bufferOptions:E},U,M.signal);function U(H){if(M.cancel(),I.isUsed()||(A("reloadingMediaSource",H),I.isUsed()))return;let q=new F;q.linkToSignal(I.signal),$o(e,q.signal).then(G=>{x(G,H.position,H.autoPlay,q)}).catch(G=>{q.isUsed()||C(G)})}}}_startBufferingOnMediaSource(e,t,r){var L;let{autoPlay:i,bufferOptions:o,initialTime:a,manifest:s,mediaElement:d,mediaSource:u,playbackObserver:c,protectionRef:l,representationEstimator:f,segmentFetcherCreator:p,speed:g}=e,S=(L=s.getPeriodForTime(a))!=null?L:s.getNextPeriod(a);if(S===void 0){let P=new Z("MEDIA_STARTING_TIME_NOT_FOUND","Wanted starting time not found in the Manifest.");return this._onFatalError(P)}let I=null,y=null;if(this._settings.textTrackOptions.textTrackMode==="html"&&ue.htmlTextDisplayer!==null?y=new ue.htmlTextDisplayer(d,this._settings.textTrackOptions.textTrackElement):ue.nativeTextDisplayer!==null&&(y=new ue.nativeTextDisplayer(d)),y!==null){let P=new hi(y);I=P,r.register(()=>{P.stop(),y==null||y.stop()})}let T=new qt(u,d.nodeName==="VIDEO",I);r.register(()=>{T.disposeAll()});let{autoPlayResult:v,initialPlayPerformed:E}=pi({mediaElement:d,playbackObserver:c,startTime:a,mustAutoPlay:i,onWarning:P=>{this.trigger("warning",P)},isDirectfile:!1},r);if(r.isCancelled())return;E.onUpdate((P,M)=>{if(P){M();let O=new df(s,d,c);s.addEventListener("manifestUpdate",()=>{O.onManifestUpdate(s)},r),O.addEventListener("event",U=>{this.trigger("streamEvent",U)},r),O.addEventListener("eventSkip",U=>{this.trigger("streamEventSkip",U)},r),O.start(),r.register(()=>{O.stop()})}},{clearSignal:r,emitCurrentValue:!0});let R=rd(c,{autoPlay:i,manifest:s,mediaSource:u,textDisplayer:y,initialPlayPerformed:E,speed:g},r),k=this._createRebufferingController(c,s,g,r),A=new wr(T);kl&&s.addEventListener("decipherabilityUpdate",P=>{P.some(M=>M.representation.decipherable!==!0)&&D(0,void 0,void 0)},r),c.listen(P=>{if(A.needToReload(P)){let M,O=c.getReference().getValue();O.position.isAwaitingFuturePosition()?M=O.position.getWanted():M=c.getCurrentTime();let U=E.getValue()?!c.getIsPaused():i;t({position:M,autoPlay:U})}},{clearSignal:r}),R.listen(P=>{["video","audio","text"].forEach(M=>{var U;let O=T.getStatus(M);O.type==="initialized"&&O.value.synchronizeInventory((U=P.buffered[M])!=null?U:[])})},{clearSignal:r});let C=ns(s,u,R,T,{onWarning:P=>this.trigger("warning",P),onPeriodChanged:P=>this.trigger("activePeriodChanged",{period:P})},r);v.then(()=>{mi(c,d,!1,r).onUpdate((P,M)=>{P&&(M(),this.trigger("loaded",{getSegmentSinkMetrics:async()=>new Promise(O=>O(T.getSegmentSinksMetrics()))}))},{emitCurrentValue:!0,clearSignal:r})}).catch(P=>{r.isCancelled()||this._onFatalError(P)});let x=this;Sc({manifest:s,initialPeriod:S},R,f,T,p,o,N(),r);function N(){return{needsBufferFlush:P=>{var q;let M,O=c.getCurrentTime(),U=(q=P==null?void 0:P.relativeResumingPosition)!=null?q:0,H=!!(P!=null&&P.relativePosHasBeenDefaulted);U===0&&H?M=O+.001:M=O+U,c.setCurrentTime(M),c.listen((G,K)=>{(G.currentRange!==null||G.position.getPolled()>M+.1)&&(K(),c.setCurrentTime(G.position.getWanted()+.001))},{includeLastObservation:!1,clearSignal:r})},streamStatusUpdate(P){let{period:M,bufferType:O,imminentDiscontinuity:U,position:H}=P;k.updateDiscontinuityInfo({period:M,bufferType:O,discontinuity:U,position:H}),!r.isCancelled()&&s.isLastPeriodKnown&&P.period.id===s.periods[s.periods.length-1].id&&(P.hasFinishedLoading||P.isEmptyStream?C.onLastSegmentFinishedLoading(P.bufferType):C.onLastSegmentLoadingResume(P.bufferType))},needsManifestRefresh:()=>x._manifestFetcher.scheduleManualRefresh({enablePartialRefresh:!0,canUseUnsafeMode:!0}),manifestMightBeOufOfSync:()=>{let{OUT_OF_SYNC_MANIFEST_REFRESH_DELAY:P}=B.getCurrent();x._manifestFetcher.scheduleManualRefresh({enablePartialRefresh:!1,canUseUnsafeMode:!1,delay:P})},lockedStream:P=>k.onLockedStream(P.bufferType,P.period),adaptationChange:P=>{x.trigger("adaptationChange",P),!r.isCancelled()&&C.onAdaptationChange(P.type,P.period,P.adaptation)},representationChange:P=>{x.trigger("representationChange",P),!r.isCancelled()&&C.onRepresentationChange(P.type,P.period)},inbandEvent:P=>x.trigger("inbandEvents",P),warning:P=>x.trigger("warning",P),periodStreamReady:P=>x.trigger("periodStreamReady",P),periodStreamCleared:P=>{C.onPeriodCleared(P.type,P.period),!r.isCancelled()&&x.trigger("periodStreamCleared",P)},bitrateEstimateChange:P=>x.trigger("bitrateEstimateChange",P),needsMediaSourceReload:P=>{D(P.timeOffset,P.minimumPosition,P.maximumPosition)},needsDecipherabilityFlush(){var M,O,U,H;let P=Hn(d);if(wa(P==null?void 0:P[0])){let q=R.getReference().getValue(),G=q.position.isAwaitingFuturePosition()?q.position.getWanted():(M=R.getCurrentTime())!=null?M:q.position.getPolled(),K=(U=(O=q.paused.pending)!=null?O:R.getIsPaused())!=null?U:q.paused.last;t({position:G,autoPlay:!K})}else{let q=R.getReference().getValue(),G=q.position.isAwaitingFuturePosition()?q.position.getWanted():(H=R.getCurrentTime())!=null?H:q.position.getPolled();G+.001<q.duration?c.setCurrentTime(d.currentTime+.001):c.setCurrentTime(G)}},encryptionDataEncountered:P=>{for(let M of P)if(l.setValue(M),r.isCancelled())return},error:P=>x._onFatalError(P)}}function D(P,M,O){var K,ne,j;let U=R.getReference().getValue(),H=U.position.isAwaitingFuturePosition()?U.position.getWanted():(K=R.getCurrentTime())!=null?K:U.position.getPolled(),q=(j=(ne=U.paused.pending)!=null?ne:R.getIsPaused())!=null?j:U.paused.last,G=H+P;M!==void 0&&(G=Math.max(M,G)),O!==void 0&&(G=Math.min(O,G)),t({position:G,autoPlay:!q})}}_createRebufferingController(e,t,r,i){let o=new Sn(e,t,r);return o.addEventListener("stalled",a=>this.trigger("stalled",a)),o.addEventListener("unstalled",()=>this.trigger("unstalled",null)),o.addEventListener("warning",a=>this.trigger("warning",a)),i.register(()=>o.destroy()),o.start(),o}};function dh(n,e,t,r){n.updateRepresentationsDeciperability(i=>{let{representation:o}=i;if(o.contentProtections===void 0)return o.decipherable;let a=o.contentProtections.keyIds;if(a!==void 0)for(let s of a){for(let d of t)if(me(d,s.keyId))return!1;for(let d of e)if(me(d,s.keyId))return!0;for(let d of r)if(me(d,s.keyId))return}return o.decipherable})}function uh(n,e){n.updateRepresentationsDeciperability(t=>{var o,a;let r=t.representation;if(r.decipherable===!1)return!1;let i=(a=(o=r.contentProtections)==null?void 0:o.initData)!=null?a:[];for(let s of i)if((e.type===void 0||s.type===e.type)&&e.values.getFormattedValues().every(u=>s.values.some(c=>(u.systemId===void 0||c.systemId===u.systemId)&&me(c.data,u.data))))return!1;return r.decipherable})}var lh=200,Qo=new Map;function hd(n){if(_(yn))return Bt&&m.error("Compat: Cannot request codec support in a worker without MSE."),!1;if(typeof yn.isTypeSupported=="function"){let e=Qo.get(n);if(e!==void 0)return e;{let t=yn.isTypeSupported(n);return Qo.size>=lh&&Qo.clear(),Qo.set(n,t),t}}return!0}var ch=50,Id=class{constructor(){this._cachedCodecSupport=new Map}isSupported(e,t){let r=`${e!=null?e:""};codecs="${t!=null?t:""}"`,i=this._cachedCodecSupport.get(r);if(i!==void 0)return i;this._cachedCodecSupport.size>=ch&&this._cachedCodecSupport.clear();let o=hd(r);return this._cachedCodecSupport.set(r,o),o}},fh=new Id,Xo=fh;function yd(n,e,t){let{repeatCount:r}=n;if(r>=0)return r;let i;return _(e)?t!==void 0?i=t:i=Number.MAX_VALUE:i=e.start,Math.ceil((i-n.start)/n.duration)-1}function ve(n,e,t){let{start:r,duration:i}=n;if(i<=0)return r;let o=yd(n,e,t);return r+(o+1)*i}function ze(n,e){var t;return n*e.timescale+((t=e.indexTimeOffset)!=null?t:0)}function bt(n,e){var t;return(n-((t=e.indexTimeOffset)!=null?t:0))/e.timescale}function uf(n,e,t){return[n*t,(n+e)*t]}function mh(n,e){let t=0,r=n.length;for(;t<r;){let i=t+r>>>1;n[i].start<=e?t=i+1:r=i}return t-1}function Zo(n,e,t){let{timeline:r}=n,i=ze(e,n);if(i<0)return null;let o=mh(r,i);if(o<0||o>=r.length-1)return null;let a=r[o];if(a.duration<=0)return null;let s=r[o+1];if(s===void 0)return null;let d=s.start,u=ve(a,s,t);return i>=u&&i<d?bt(d,n):null}function At(n,e){var i;let{initialization:t}=n,r={};return e!==void 0&&(r.isEMSGWhitelisted=e),{id:"init",isInit:!0,time:0,end:0,duration:0,timescale:1,range:_(t)?void 0:t.range,indexRange:n.indexRange,url:(i=t==null?void 0:t.url)!=null?i:null,complete:!0,privateInfos:r,timestampOffset:-(n.indexTimeOffset/n.timescale)}}function ph(n,e){let t=n.toString();return t.length>=e?t:(new Array(e+1).join("0")+t).slice(-e)}function Sd(n){return(e,t,r)=>{let i=w(r)?parseInt(r,10):1;return ph(String(n),i)}}function st(n,e,t){return gh(n,e,t)}function gh(n,e,t){return n.indexOf("$")===-1?n:n.replace(/\$\$/g,"$").replace(/\$RepresentationID\$/g,String(e)).replace(/\$Bandwidth(\%0(\d+)d)?\$/g,Sd(t===void 0?0:t))}function Jo(n,e){return function(r){return r.indexOf("$")===-1?r:r.replace(/\$\$/g,"$").replace(/\$Number(\%0(\d+)d)?\$/g,(i,o,a)=>{if(e===void 0)throw new Error("Segment number not defined in a $Number$ scheme");return Sd(e)(i,o,a)}).replace(/\$Time(\%0(\d+)d)?\$/g,(i,o,a)=>{if(n===void 0)throw new Error("Segment time not defined in a $Time$ scheme");return Sd(n)(i,o,a)})}}function hh(n,e,t){let r=t-n;return r>0?Math.floor(r/e):0}function bi(n,e,t,r,i,o){var T;let a=r.getEstimatedMaximumPosition((T=n.availabilityTimeOffset)!=null?T:0),s=Math.min(e+t,a!=null?a:1/0),d=ze(e,n),u=ze(s,n),{timeline:c,timescale:l,segmentUrlTemplate:f,startNumber:p,endNumber:g}=n,S=p!=null?p:1,I=[],y=c.length;for(let v=0;v<y;v++){let E=c[v],{duration:R,start:k,range:A}=E,C;a===void 0?C=i:C=Math.min(a*l,i!=null?i:1/0);let x=yd(E,c[v+1],C),N=n.availabilityTimeComplete!==!1||v!==y-1&&x!==0,D=hh(k,R,d),L=k+D*R;for(;L<u&&D<=x;){let P=S+D;if(g!==void 0&&P>g)break;let M=f===null?null:Jo(L,P)(f),O=L-n.indexTimeOffset,U=R;O<0&&(U=R+O,O=0);let H={id:String(L),time:O/l,end:(O+U)/l,duration:U/l,isInit:!1,range:A,timescale:1,url:M,number:P,timestampOffset:-(n.indexTimeOffset/l),complete:N,privateInfos:{isEMSGWhitelisted:o}};I.push(H),D++,L=k+D*R}if(L>=u||(S+=x+1,g!==void 0&&S>g))return I}return I}function Ih(n,e){if(e.timescale!==n.timescale){let{timescale:t}=n;n.timeline.push({start:e.time/e.timescale*t,duration:e.duration/e.timescale*t,repeatCount:e.count===void 0?0:e.count,range:e.range})}else n.timeline.push({start:e.time,duration:e.duration,repeatCount:e.count===void 0?0:e.count,range:e.range});return!0}var Tn=class{constructor(e,t){var g,S,I,y;let{periodStart:r,periodEnd:i,representationId:o,representationBitrate:a,isEMSGWhitelisted:s}=t,d=(g=e.timescale)!=null?g:1,c=((S=e.presentationTimeOffset)!=null?S:0)-r*d,l=((I=e.initialization)==null?void 0:I.media)===void 0?null:st(e.initialization.media,o,a),f=e.media===void 0?null:st(e.media,o,a),p;e.initialization!==void 0?p=e.initialization.range:e.indexRange!==void 0&&(p=[0,e.indexRange[0]-1]),this._index={indexRange:e.indexRange,indexTimeOffset:c,initialization:{url:l,range:p},segmentUrlTemplate:f,startNumber:e.startNumber,endNumber:e.endNumber,timeline:(y=e.timeline)!=null?y:[],timescale:d},this._manifestBoundsCalculator=t.manifestBoundsCalculator,this._scaledPeriodStart=ze(r,this._index),this._scaledPeriodEnd=_(i)?void 0:ze(i,this._index),this._isInitialized=this._index.timeline.length>0,this._isEMSGWhitelisted=s}getInitSegment(){return At(this._index,this._isEMSGWhitelisted)}getSegments(e,t){return bi(this._index,e,t,this._manifestBoundsCalculator,this._scaledPeriodEnd,this._isEMSGWhitelisted)}shouldRefresh(){return!1}getFirstAvailablePosition(){let e=this._index;return e.timeline.length===0?null:bt(Math.max(this._scaledPeriodStart,e.timeline[0].start),e)}getLastAvailablePosition(){var i;let{timeline:e}=this._index;if(e.length===0)return null;let t=e[e.length-1],r=Math.min(ve(t,null,this._scaledPeriodEnd),(i=this._scaledPeriodEnd)!=null?i:1/0);return bt(r,this._index)}getEnd(){return this.getLastAvailablePosition()}awaitSegmentBetween(){return!1}isSegmentStillAvailable(){return!0}checkDiscontinuity(){return null}canBeOutOfSyncError(){return!1}isStillAwaitingFutureSegments(){return!1}isInitialized(){return this._isInitialized}initialize(e){if(!this._isInitialized){for(let t=0;t<e.length;t++)Ih(this._index,e[t]);this._isInitialized=!0}}addPredictedSegments(){m.warn("Cannot add predicted segments to a `BaseRepresentationIndex`")}_replace(e){this._index=e._index,this._isInitialized=e._isInitialized,this._scaledPeriodEnd=e._scaledPeriodEnd,this._isEMSGWhitelisted=e._isEMSGWhitelisted}_update(){m.error("Base RepresentationIndex: Cannot update a SegmentList")}};var _n=class{constructor(e,t){var p,g,S;if(e.duration===void 0)throw new Error("Invalid SegmentList: no duration");let{periodStart:r,periodEnd:i,representationId:o,representationBitrate:a,isEMSGWhitelisted:s}=t;this._isEMSGWhitelisted=s,this._periodStart=r,this._periodEnd=i;let d=(p=e.presentationTimeOffset)!=null?p:0,u=(g=e.timescale)!=null?g:1,c=d-r*u,l=((S=e.initialization)==null?void 0:S.media)===void 0?null:st(e.initialization.media,o,a),f=e.list.map(I=>({url:I.media===void 0?null:st(I.media,o,a),mediaRange:I.mediaRange}));this._index={list:f,timescale:u,duration:e.duration,indexTimeOffset:c,indexRange:e.indexRange,initialization:_(e.initialization)?void 0:{url:l,range:e.initialization.range}}}getInitSegment(){let e=At(this._index);return e.privateInfos===void 0&&(e.privateInfos={}),e.privateInfos.isEMSGWhitelisted=this._isEMSGWhitelisted,e}getSegments(e,t){let r=this._index,{duration:i,list:o,timescale:a}=r,s=i/a,d=e-this._periodStart,[u,c]=uf(d,t,a),l=Math.min(o.length-1,Math.floor(c/i)),f=[],p=Math.floor(u/i);for(;p<=l;){let g=o[p].mediaRange,S=o[p].url,I=p*s+this._periodStart,y={id:String(p),time:I,isInit:!1,range:g,duration:s,timescale:1,end:I+s,url:S,timestampOffset:-(r.indexTimeOffset/a),complete:!0,privateInfos:{isEMSGWhitelisted:this._isEMSGWhitelisted}};f.push(y),p++}return f}shouldRefresh(e,t){return!1}getFirstAvailablePosition(){return this._periodStart}getLastAvailablePosition(){var i;let e=this._index,{duration:t,list:r}=e;return Math.min(r.length*t/e.timescale+this._periodStart,(i=this._periodEnd)!=null?i:1/0)}getEnd(){return this.getLastAvailablePosition()}awaitSegmentBetween(){return!1}isSegmentStillAvailable(){return!0}checkDiscontinuity(){return null}canBeOutOfSyncError(){return!1}isStillAwaitingFutureSegments(){return!1}isInitialized(){return!0}initialize(){m.error("A `ListRepresentationIndex` does not need to be initialized")}addPredictedSegments(){m.warn("Cannot add predicted segments to a `ListRepresentationIndex`")}_replace(e){this._index=e._index}_update(){m.error("A `ListRepresentationIndex` cannot be updated")}};function jn(n){return B.getCurrent().DEFAULT_MAXIMUM_TIME_ROUNDING_ERROR*n}var En=class{constructor(e,t){var y,T,v;let{availabilityTimeOffset:r,manifestBoundsCalculator:i,isDynamic:o,periodEnd:a,periodStart:s,representationId:d,representationBitrate:u,isEMSGWhitelisted:c}=t,l=(y=e.timescale)!=null?y:1;this._availabilityTimeOffset=r,this._manifestBoundsCalculator=i;let f=(T=e.presentationTimeOffset)!=null?T:0,p=s*l,g=f-p;if(e.duration===void 0)throw new Error("Invalid SegmentTemplate: no duration");let S=((v=e.initialization)==null?void 0:v.media)===void 0?null:st(e.initialization.media,d,u),I=e.media===void 0?null:st(e.media,d,u);this._index={duration:e.duration,timescale:l,indexRange:e.indexRange,indexTimeOffset:g,initialization:_(e.initialization)?void 0:{url:S,range:e.initialization.range},url:I,presentationTimeOffset:f,startNumber:e.startNumber,endNumber:e.endNumber},this._isDynamic=o,this._periodStart=s,this._scaledRelativePeriodEnd=a===void 0?void 0:(a-s)*l,this._isEMSGWhitelisted=c}getInitSegment(){return At(this._index,this._isEMSGWhitelisted)}getSegments(e,t){let r=this._index,{duration:i,startNumber:o,endNumber:a,timescale:s,url:d}=r,u=this._periodStart*s,c=this._scaledRelativePeriodEnd,l=e*s-u,f=(e+t)*s-u,p=this._getFirstSegmentStart(),g=this._getLastSegmentStart();if(_(p)||_(g))return[];let S=Math.max(p,l),I=Math.min(g,f);if(I+i<=S)return[];let y=[],T=o!=null?o:1,v=Math.floor(S/i);for(let E=v*i;E<=I;E+=i){let R=v+T;if(a!==void 0&&R>a)return y;let k=!_(c)&&E+i>c?c-E:i,A=E+u,C=E+this._index.presentationTimeOffset,x=d===null?null:Jo(C,R)(d),N={id:String(R),number:R,time:A/s,end:(A+k)/s,duration:k/s,timescale:1,isInit:!1,scaledDuration:k/s,url:x,timestampOffset:-(r.indexTimeOffset/s),complete:!0,privateInfos:{isEMSGWhitelisted:this._isEMSGWhitelisted}};y.push(N),v++}return y}getFirstAvailablePosition(){let e=this._getFirstSegmentStart();return _(e)?e:e/this._index.timescale+this._periodStart}getLastAvailablePosition(){let e=this._getLastSegmentStart();if(_(e))return e;let t=this._estimateRelativeScaledEnd();return Math.min(e+this._index.duration,t!=null?t:1/0)/this._index.timescale+this._periodStart}getEnd(){if(!this._isDynamic)return this.getLastAvailablePosition();let e=this._estimateRelativeScaledEnd();if(e===void 0)return;let{timescale:t}=this._index;return(e+this._periodStart*t)/t}awaitSegmentBetween(e,t){if(J(e<=t),!this._isDynamic)return!1;let{timescale:r}=this._index,i=jn(r),o=this._periodStart*r,a=e*r-o,s=t*r-o,d=this._getLastSegmentStart();if(_(d)){let l=this._estimateRelativeScaledEnd();return l===void 0?s+i>=0:s+i>=0&&a<l-i}let u=d+this._index.duration,c=this._estimateRelativeScaledEnd();return c===void 0?s>u-i:s>u-i&&a<c-i}shouldRefresh(){return!1}checkDiscontinuity(){return null}isSegmentStillAvailable(e){if(e.isInit)return!0;let t=this.getSegments(e.time,.1);return t.length===0?!1:t[0].time===e.time&&t[0].end===e.end&&t[0].number===e.number}canBeOutOfSyncError(){return!1}isStillAwaitingFutureSegments(){if(!this._isDynamic)return!1;let e=this._estimateRelativeScaledEnd();if(e===void 0)return!0;let{timescale:t}=this._index,r=this._getLastSegmentStart();if(_(r))return!0;let i=r+this._index.duration,o=jn(t);return i+o<e}isInitialized(){return!0}initialize(){m.error("A `TemplateRepresentationIndex` does not need to be initialized")}addPredictedSegments(){m.warn("Cannot add predicted segments to a `TemplateRepresentationIndex`")}_replace(e){this._index=e._index,this._isDynamic=e._isDynamic,this._periodStart=e._periodStart,this._scaledRelativePeriodEnd=e._scaledRelativePeriodEnd,this._manifestBoundsCalculator=e._manifestBoundsCalculator}_update(e){this._replace(e)}_getFirstSegmentStart(){var a;if(!this._isDynamic)return 0;if(this._scaledRelativePeriodEnd===0||this._scaledRelativePeriodEnd===void 0){let s=this._manifestBoundsCalculator.getEstimatedMaximumPosition((a=this._availabilityTimeOffset)!=null?a:0);if(s!==void 0&&s<this._periodStart)return null}let{duration:e,timescale:t}=this._index,r=this._manifestBoundsCalculator.getEstimatedMinimumSegmentTime();if(r===void 0)return;let i=r>this._periodStart?(r-this._periodStart)*t:0;return Math.floor(i/e)*e}_getLastSegmentStart(){var o,a;let{duration:e,timescale:t,endNumber:r,startNumber:i=1}=this._index;if(this._isDynamic){let s=this._manifestBoundsCalculator.getEstimatedLiveEdge();if(s!==void 0&&this._scaledRelativePeriodEnd!==void 0&&this._scaledRelativePeriodEnd<s-this._periodStart*this._index.timescale){let l=Math.ceil(this._scaledRelativePeriodEnd/e);return r!==void 0&&r-i+1<l&&(l=r-i+1),(l-1)*e}let d=this._manifestBoundsCalculator.getEstimatedMaximumPosition((o=this._availabilityTimeOffset)!=null?o:0);if(d===void 0)return;let u=(d-this._periodStart)*t;if(u<0)return null;let c=Math.floor(u/e);return r!==void 0&&r-i+1<c&&(c=r-i+1),c<=0?null:(c-1)*e}else{let s=(a=this._scaledRelativePeriodEnd)!=null?a:0,d=Math.ceil(s/e);r!==void 0&&r-i+1<d&&(d=r-i+1);let u=(d-1)*e,c=B.getCurrent().MINIMUM_SEGMENT_SIZE*t;return r!==void 0||s-u>c||d<2?u:(d-2)*e}}_estimateRelativeScaledEnd(){var e,t;if(this._index.endNumber!==void 0){let r=this._index.endNumber-((e=this._index.startNumber)!=null?e:1)+1;return Math.max(Math.min(r*this._index.duration,(t=this._scaledRelativePeriodEnd)!=null?t:1/0),0)}if(this._scaledRelativePeriodEnd!==void 0)return Math.max(this._scaledRelativePeriodEnd,0)}};function Ti(n,e){let t=0;for(;n.length>0;){let r=n[0];if(r.start>=e||r.repeatCount===-1)return t;if(r.repeatCount===0)n.shift(),t+=1;else{let i=n[1];if(i!==void 0&&i.start<=e)n.shift(),t+=1;else{if(r.duration<=0)return t;let o=r.start+r.duration,a=1;for(;o<e&&a<=r.repeatCount;)o+=r.duration,a++;if(a>r.repeatCount)n.shift(),t=r.repeatCount+1;else{let s=r.repeatCount-a;return r.start=o,r.repeatCount=s,t+=a,t}}}}return t}function _i(n,e){if(n.length===0)return n.push(...e),!0;if(e.length===0)return!1;let t=n.length,r=e[0].start,i=n[t-1];if(ve(i,e[0])<r)throw new Z("MANIFEST_UPDATE_ERROR","Cannot perform partial update: not enough data");for(let c=t-1;c>=0;c--){let l=n[c].start;if(l===r){let f=t-c;return n.splice(c,f,...e),!1}else if(l<r){let f=n[c];if(f.start+f.duration>r)return m.warn("RepresentationIndex: Manifest update removed all previous segments"),n.splice(0,t,...e),!0;if(f.repeatCount===void 0||f.repeatCount<=0)return f.repeatCount<0&&(f.repeatCount=Math.floor((r-f.start)/f.duration)-1),n.splice(c+1,t-(c+1),...e),!1;if(f.start+f.duration*(f.repeatCount+1)<=r)return n.splice(c+1,t-(c+1),...e),!1;let g=(r-f.start)/f.duration-1;if(g%1===0&&f.duration===e[0].duration){let S=e[0].repeatCount<0?-1:e[0].repeatCount+g+1;return n.splice(c,t-c,...e),n[c].start=f.start,n[c].repeatCount=S,!1}return m.warn("RepresentationIndex: Manifest update removed previous segments"),n[c].repeatCount=Math.floor(g),n.splice(c+1,t-(c+1),...e),!1}}let a=n[n.length-1],s=e[e.length-1];if(a.repeatCount!==void 0&&a.repeatCount<0)return a.start>s.start?(m.warn("RepresentationIndex: The new index is older than the previous one"),!1):(m.warn('RepresentationIndex: The new index is "bigger" than the previous one'),n.splice(0,t,...e),!0);let d=a.start+a.duration*(a.repeatCount+1),u=s.start+s.duration*(s.repeatCount+1);return d>=u?(m.warn("RepresentationIndex: The new index is older than the previous one"),!1):(m.warn('RepresentationIndex: The new index is "bigger" than the previous one'),n.splice(0,t,...e),!0)}function Ei(n,e,t){let r=n.start,i=n.duration,o=n.repeatCount;return r===void 0&&(e===null?r=0:_(e.duration)||(r=e.start+e.duration*(e.repeatCount+1))),(i===void 0||isNaN(i))&&t!==null&&t.start!==void 0&&!isNaN(t.start)&&r!==void 0&&!isNaN(r)&&(i=t.start-r),r!==void 0&&!isNaN(r)&&i!==void 0&&!isNaN(i)&&(o===void 0||!isNaN(o))?{start:r,duration:i,repeatCount:o===void 0?0:o}:(m.warn('DASH: A "S" Element could not have been parsed.'),null)}function vi(n){let e={};for(let t of Object.keys(n.attributes)){let r=n.attributes[t];if(!_(r))switch(t){case"t":let i=parseInt(r,10);isNaN(i)?m.warn(`DASH: invalid t ("${r}")`):e.start=i;break;case"d":let o=parseInt(r,10);isNaN(o)?m.warn(`DASH: invalid d ("${r}")`):e.duration=o;break;case"r":let a=parseInt(r,10);isNaN(a)?m.warn(`DASH: invalid r ("${r}")`):e.repeatCount=a;break}}return e}function Ri(n){let e={};for(let t=0;t<n.attributes.length;t++){let r=n.attributes[t];switch(r.name){case"t":let i=parseInt(r.value,10);isNaN(i)?m.warn(`DASH: invalid t ("${r.value}")`):e.start=i;break;case"d":let o=parseInt(r.value,10);isNaN(o)?m.warn(`DASH: invalid d ("${r.value}")`):e.duration=o;break;case"r":let a=parseInt(r.value,10);isNaN(a)?m.warn(`DASH: invalid r ("${r.value}")`):e.repeatCount=a;break}}return e}function Xt(n){let e=[];if(Array.isArray(n))for(let r=0;r<n.length;r++)e.push(vi(n[r]));else for(let r=0;r<n.length;r++)e.push(Ri(n[r]));let t=[];for(let r=0;r<e.length;r++){let i=e[r],o=t[t.length-1]===void 0?null:t[t.length-1],a=e[r+1]===void 0?null:e[r+1],s=Ei(i,o,a);s!==null&&t.push(s)}return t}function bd(n,e){if(n.length===0||e.length===0)return null;let t=n[0].start,r=Array.isArray(e)?e[0].attributes.t:e[0].getAttribute("t"),i=_(r)?null:parseInt(r,10);if(i===null||Number.isNaN(i))return null;if(t===i)return{prevSegmentsIdx:0,newElementsIdx:0,repeatNumberInPrevSegments:0,repeatNumberInNewElements:0};if(t<i){let o=n[0],a=0;for(;;){if(o.repeatCount>0){let s=i-o.start;if(s%o.duration===0&&s/o.duration<=o.repeatCount)return{repeatNumberInPrevSegments:s/o.duration,prevSegmentsIdx:a,newElementsIdx:0,repeatNumberInNewElements:0}}if(a++,a>=n.length)return null;if(o=n[a],o.start===i)return{prevSegmentsIdx:a,newElementsIdx:0,repeatNumberInPrevSegments:0,repeatNumberInNewElements:0};if(o.start>i)return null}}else{let o=0,a=Array.isArray(e)?e[0]:null,s=Array.isArray(e)?null:e[0],d=i;for(;;){let u=a!==null?a.attributes.d:s==null?void 0:s.getAttribute("d"),c=_(u)?null:parseInt(u,10);if(c===null||Number.isNaN(c))return null;let l=a!==null?a.attributes.r:s==null?void 0:s.getAttribute("r"),f=_(l)?null:parseInt(l,10);if(f!==null){if(Number.isNaN(f)||f<0)return null;if(f>0){let S=t-d;if(S%c===0&&S/c<=f)return{repeatNumberInPrevSegments:0,repeatNumberInNewElements:S/c,prevSegmentsIdx:0,newElementsIdx:o}}d+=c*(f+1)}else d+=c;if(o++,o>=e.length)return null;Array.isArray(e)?a=e[o]:s=e[o];let p=a!==null?a.attributes.t:s==null?void 0:s.getAttribute("t"),g=_(p)?null:parseInt(p,10);if(g!==null){if(Number.isNaN(g))return null;d=g}if(d===t)return{newElementsIdx:o,prevSegmentsIdx:0,repeatNumberInPrevSegments:0,repeatNumberInNewElements:0};if(d>i)return null}}}function Td(n,e){var S;let t=bd(e,n);if(t===null)return m.warn('DASH: Cannot perform "based" update. Common segment not found.'),Xt(n);let{prevSegmentsIdx:r,newElementsIdx:i,repeatNumberInPrevSegments:o,repeatNumberInNewElements:a}=t,d=e.length-r+i-1;if(d>=n.length)return m.info('DASH: Cannot perform "based" update. New timeline too short'),Xt(n);let u=e.slice(r);if(o>0){let I=u[0];I.start+=I.duration*o,u[0].repeatCount-=o}if(a>0&&i!==0)return m.info('DASH: Cannot perform "based" update. The new timeline has a different form.'),Xt(n);let c=u[u.length-1],l=Array.isArray(n)?vi(n[d]):Ri(n[d]),f=((S=l.repeatCount)!=null?S:0)-a;if(l.duration!==c.duration||c.repeatCount>f)return m.info('DASH: Cannot perform "based" update. The new timeline has a different form at the beginning.'),Xt(n);l.repeatCount!==void 0&&l.repeatCount>c.repeatCount&&(c.repeatCount=l.repeatCount);let p=[],g=[];if(Array.isArray(n))for(let I=d+1;I<n.length;I++)g.push(vi(n[I]));else for(let I=d+1;I<n.length;I++)g.push(Ri(n[I]));for(let I=0;I<g.length;I++){let y=g[I],T=p[p.length-1]===void 0?c:p[p.length-1],v=g[I+1]===void 0?null:g[I+1],E=Ei(y,T,v);E!==null&&p.push(E)}return u.concat(p)}var ki=class n{constructor(e,t){var E,R,k,A,C;if(!n.isTimelineIndexArgument(e))throw new Error("The given index is not compatible with a TimelineRepresentationIndex.");let{availabilityTimeComplete:r,availabilityTimeOffset:i,manifestBoundsCalculator:o,isDynamic:a,isLastPeriod:s,representationId:d,representationBitrate:u,periodStart:c,periodEnd:l,isEMSGWhitelisted:f}=t,p=(E=e.timescale)!=null?E:1,g=(R=e.presentationTimeOffset)!=null?R:0,S=c*p,I=g-S;this._manifestBoundsCalculator=o,this._isEMSGWhitelisted=f,this._isLastPeriod=s,this._lastUpdate=(k=t.receivedTime)!=null?k:V(),this._unsafelyBaseOnPreviousIndex=null,t.unsafelyBaseOnPreviousRepresentation!==null&&t.unsafelyBaseOnPreviousRepresentation.index instanceof n&&(t.unsafelyBaseOnPreviousRepresentation.index._unsafelyBaseOnPreviousIndex=null,this._unsafelyBaseOnPreviousIndex=t.unsafelyBaseOnPreviousRepresentation.index),this._isDynamic=a,this._parseTimeline=(A=e.timelineParser)!=null?A:null;let y=((C=e.initialization)==null?void 0:C.media)===void 0?null:st(e.initialization.media,d,u),T=e.media===void 0?null:st(e.media,d,u),v;i===void 0&&r===void 0?v=1/0:v=i!=null?i:0,this._index={availabilityTimeComplete:r!=null?r:!0,availabilityTimeOffset:v,indexRange:e.indexRange,indexTimeOffset:I,initialization:_(e.initialization)?void 0:{url:y,range:e.initialization.range},segmentUrlTemplate:T,startNumber:e.startNumber,endNumber:e.endNumber,timeline:e.timeline===void 0?null:_d(e.timeline,e.startNumber,e.endNumber),timescale:p},this._scaledPeriodStart=ze(c,this._index),this._scaledPeriodEnd=l===void 0?void 0:ze(l,this._index)}getInitSegment(){return At(this._index,this._isEMSGWhitelisted)}getSegments(e,t){return this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline()),bi(this._index,e,t,this._manifestBoundsCalculator,this._scaledPeriodEnd,this._isEMSGWhitelisted)}shouldRefresh(){return!1}getFirstAvailablePosition(){this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline());let e=this._index.timeline;return e.length===0?null:bt(Math.max(this._scaledPeriodStart,e[0].start),this._index)}getLastAvailablePosition(){var r;this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline());let e=ea(this._index,this._manifestBoundsCalculator,this._scaledPeriodEnd);if(e===null)return null;let t=Math.min(e.end,(r=this._scaledPeriodEnd)!=null?r:1/0);return bt(t,this._index)}getEnd(){var r;if(this._isDynamic&&!this._isLastPeriod)return;if(this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline()),this._index.timeline.length<=0)return null;let e=this._index.timeline[this._index.timeline.length-1],t=Math.min(ve(e,null,this._scaledPeriodEnd),(r=this._scaledPeriodEnd)!=null?r:1/0);return bt(t,this._index)}awaitSegmentBetween(e,t){var u,c;if(J(e<=t),!this._isDynamic)return!1;this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline());let{timescale:r,timeline:i}=this._index,o=jn(r),a=ze(t,this._index),s=ea(this._index,this._manifestBoundsCalculator,this._scaledPeriodEnd);if(s!==null&&Math.min(s.end,(u=this._scaledPeriodEnd)!=null?u:1/0)+o>=Math.min(a,(c=this._scaledPeriodEnd)!=null?c:1/0))return!1;let d=ze(e,this._index);if(i.length>0&&s!==null&&!s.isLastOfTimeline){let l=i[i.length-1],p=ve(l,null,this._scaledPeriodEnd)+o;if(d<p+o)return!0}return this._isLastPeriod?this._scaledPeriodEnd===void 0?a+o>this._scaledPeriodStart?void 0:!1:d-o<this._scaledPeriodEnd&&a+o>this._scaledPeriodStart:!1}isSegmentStillAvailable(e){return e.isInit?!0:(this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline()),yh(e,this._index,this._manifestBoundsCalculator,this._scaledPeriodEnd))}checkDiscontinuity(e){this._refreshTimeline();let t=this._index.timeline;return t===null&&(t=this._getTimeline(),this._index.timeline=t),Zo({timeline:t,timescale:this._index.timescale,indexTimeOffset:this._index.indexTimeOffset},e,this._scaledPeriodEnd)}canBeOutOfSyncError(e){return this._isDynamic?e instanceof rt&&e.isHttpError(404):!1}_replace(e){this._parseTimeline=e._parseTimeline,this._index=e._index,this._isDynamic=e._isDynamic,this._scaledPeriodStart=e._scaledPeriodStart,this._scaledPeriodEnd=e._scaledPeriodEnd,this._lastUpdate=e._lastUpdate,this._manifestBoundsCalculator=e._manifestBoundsCalculator,this._isLastPeriod=e._isLastPeriod}_update(e){this._index.timeline===null&&(this._index.timeline=this._getTimeline()),e._index.timeline===null&&(e._index.timeline=e._getTimeline()),_i(this._index.timeline,e._index.timeline)&&(this._index.startNumber=e._index.startNumber),this._index.availabilityTimeOffset=e._index.availabilityTimeOffset,this._index.availabilityTimeComplete=e._index.availabilityTimeComplete,this._index.endNumber=e._index.endNumber,this._isDynamic=e._isDynamic,this._scaledPeriodStart=e._scaledPeriodStart,this._scaledPeriodEnd=e._scaledPeriodEnd,this._lastUpdate=e._lastUpdate,this._isLastPeriod=e._isLastPeriod}isStillAwaitingFutureSegments(){var a;if(!this._isDynamic)return!1;this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline());let{timeline:e}=this._index;if(e.length===0){if(this._scaledPeriodEnd!==void 0){let s=this._manifestBoundsCalculator.getEstimatedLiveEdge();if(s!==void 0&&ze(s,this._index)>this._scaledPeriodEnd)return!1}return this._isLastPeriod}let t=jn(this._index.timescale),r=ea(this._index,this._manifestBoundsCalculator,this._scaledPeriodEnd);if(r!==null&&!r.isLastOfTimeline){let s=Math.min(r.end,(a=this._scaledPeriodEnd)!=null?a:1/0);return!(this._scaledPeriodEnd!==void 0&&s+t>=this._scaledPeriodEnd)}if(!this._isLastPeriod)return!1;if(this._scaledPeriodEnd===void 0)return!0;let i=e[e.length-1];return ve(i,null,this._scaledPeriodEnd)+t<this._scaledPeriodEnd}isInitialized(){return!0}initialize(){m.error("A `TimelineRepresentationIndex` does not need to be initialized")}addPredictedSegments(){m.warn("Cannot add predicted segments to a `TimelineRepresentationIndex`")}static isTimelineIndexArgument(e){return typeof e.timelineParser=="function"||Array.isArray(e.timeline)}_refreshTimeline(){if(this._index.timeline===null&&(this._index.timeline=this._getTimeline()),!this._isDynamic)return;let e=this._manifestBoundsCalculator.getEstimatedMinimumSegmentTime();if(_(e))return;let t=ze(e,this._index),r=Ti(this._index.timeline,t);this._index.startNumber!==void 0?this._index.startNumber+=r:this._index.endNumber!==void 0&&(this._index.startNumber=r+1)}_getTimeline(){if(this._parseTimeline===null)return this._index.timeline!==null?this._index.timeline:(m.error("DASH: Timeline already lazily parsed."),[]);let e=this._parseTimeline();this._parseTimeline=null;let{MIN_DASH_S_ELEMENTS_TO_PARSE_UNSAFELY:t}=B.getCurrent();if(this._unsafelyBaseOnPreviousIndex===null||e.length<t)return _d(Xt(e),this._index.startNumber,this._index.endNumber);let r;return this._unsafelyBaseOnPreviousIndex._index.timeline===null?(r=this._unsafelyBaseOnPreviousIndex._getTimeline(),this._unsafelyBaseOnPreviousIndex._index.timeline=r):r=this._unsafelyBaseOnPreviousIndex._index.timeline,this._unsafelyBaseOnPreviousIndex=null,_d(Td(e,r),this._index.startNumber,this._index.endNumber)}};function _d(n,e,t){if(t===void 0)return n;let r=e!=null?e:1;for(let i=0;i<n.length;i++){let o=n[i];if(r+=o.repeatCount+1,r>t){if(r===t+1)return n.slice(0,i+1);{let a=n.slice(0,i),s=ce({},o),d=r-o.repeatCount-1;return s.repeatCount=Math.max(0,t-d),a.push(s),a}}}return n}function yh(n,e,t,r){let i=ea(e,t,r);if(i===null)return!1;for(let o=0;o<e.timeline.length;o++){if(i.timelineIdx<o)return!1;let a=e.timeline[o],s=(a.start-e.indexTimeOffset)/e.timescale;if(s>n.time)return!1;if(s===n.time)return a.range===void 0?n.range===void 0:!_(n.range)&&a.range[0]===n.range[0]&&a.range[1]===n.range[1];if(a.repeatCount>=0&&a.duration!==void 0){let u=(s-a.start)/a.duration-1;return u%1===0&&u<=i.newRepeatCount}}return!1}function ea(n,e,t){if(n.timeline.length<=0)return null;if(n.availabilityTimeOffset===1/0){let i=n.timeline.length-1,o=n.timeline[i];return{isLastOfTimeline:!0,timelineIdx:i,newRepeatCount:o.repeatCount,end:ve(o,null,t)}}let r=e.getEstimatedMaximumPosition(n.availabilityTimeOffset);if(r===void 0){let i=n.timeline.length-1,o=n.timeline[i];return{isLastOfTimeline:!0,timelineIdx:i,newRepeatCount:o.repeatCount,end:ve(o,null,t)}}for(let i=n.timeline.length-1;i>=n.timeline.length;i--){let o=n.timeline[i],a=o.start+o.duration;if(bt(a,n)<=r){let s=ve(o,n.timeline[i+1],t);if(bt(s,n)<=r)return{isLastOfTimeline:i===n.timeline.length-1,timelineIdx:i,newRepeatCount:o.repeatCount,end:a};{let u=ze(r,n)-o.start,c=Math.floor(u/o.duration);return J(c>=1),{isLastOfTimeline:!1,timelineIdx:i,newRepeatCount:c-1,end:o.start+c*o.duration}}}}return null}var ta=ki;var Sh=/^(?:[a-z]+:)?\/\//i,bh=/^(?:([^:\/?#]+):)?(?:\/\/([^\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?$/;function Ai(n){let e=n.lastIndexOf("/");if(e<0)return n.length;if(Sh.test(n)){let r=n.indexOf("/");if(r>=0&&e===r+1)return n.length}let t=n.indexOf("?");return t>=0&&t<e?Ai(n.substring(0,t)):e+1}function Th(n,e){let t=lf(n),r=lf(e);if(r.scheme)return Ed(r);let i={scheme:t.scheme,authority:t.authority,path:"",query:r.query,fragment:r.fragment};return r.authority?(i.authority=r.authority,i.path=vd(r.path),Ed(i)):(r.path===""?(i.path=t.path,r.query||(i.query=t.query)):qe(r.path,"/")?i.path=vd(r.path):i.path=vd(Eh(t,r.path)),Ed(i))}var Pi=new Map,_h=200;function lf(n){var r,i,o,a,s;if(Pi.has(n))return Pi.get(n);let e=n.match(bh),t;return e===null?t={scheme:"",authority:"",path:"",query:"",fragment:""}:t={scheme:(r=e[1])!=null?r:"",authority:(i=e[2])!=null?i:"",path:(o=e[3])!=null?o:"",query:(a=e[4])!=null?a:"",fragment:(s=e[5])!=null?s:""},Pi.size>=_h&&Pi.clear(),Pi.set(n,t),t}function Ed(n){let e="";return n.scheme&&(e+=n.scheme+":"),n.authority&&(e+="//"+n.authority),e+=n.path,n.query&&(e+="?"+n.query),n.fragment&&(e+="#"+n.fragment),e}function vd(n){let e=n.split(/(?=\/)/),t=[];for(let r=0;r<e.length;r++){let i=e[r];if(!(i===".."||i==="."||i==="")){if(i==="/.."){t.pop(),r===e.length-1&&t.push("/");continue}if(i==="/."){r===e.length-1&&t.push("/");continue}t.push(i)}}return t.join("")}function Eh(n,e){if(n.authority&&n.path==="")return"/"+e;let t=n.path;return t.substring(0,t.lastIndexOf("/")+1)+e}function cf(...n){var r,i,o;let e=n.filter(a=>a!==""),t=e.length;if(t===0)return"";if(t===1)return(r=e[0])!=null?r:"";{let a=(i=e[0])!=null?i:"",s=(o=e[1])!=null?o:"",d=Th(a,s),u=e.slice(2);return cf(d,...u)}}var Yn=cf;var Ci=class{constructor(){this._refs=new Map,this._stored=[]}addReferences(e){for(let t of e)t.attributes.refId!==void 0&&this._refs.set(t.attributes.refId,t)}add(e,t){this._tryParsing(e,t,!1)||this._stored.push([e,t]),t.attributes.refId!==void 0&&(this._refs.set(t.attributes.refId,t),this._resolveStoredRefs(!1))}finalize(){this._resolveStoredRefs(!0)}_resolveStoredRefs(e){for(let t=this._stored.length-1;t>=0;t--){let[r,i]=this._stored[t];(this._tryParsing(r,i,e)||e)&&this._stored.splice(t,1)}return this._stored.length===0}_tryParsing(e,t,r){if(t.attributes.ref===void 0)return Rd(e,t),!0;let i=this._getReferenced(t.attributes.ref);return i===void 0?(r&&(m.warn("DASH: forcing the parsing of a referencing ContentProtection"),Rd(e,t)),!1):(t.children.cencPssh.push(...i.children.cencPssh),t.attributes.keyId===void 0&&i.attributes.keyId!==void 0&&(t.attributes.keyId=i.attributes.keyId),t.attributes.schemeIdUri===void 0&&i.attributes.schemeIdUri!==void 0&&(t.attributes.schemeIdUri=i.attributes.schemeIdUri),t.attributes.value===void 0&&i.attributes.value!==void 0&&(t.attributes.value=i.attributes.value),Rd(e,t),!0)}_getReferenced(e){return this._refs.get(e)}};function Rd(n,e){let t;if(e.attributes.schemeIdUri!==void 0&&e.attributes.schemeIdUri.substring(0,9)==="urn:uuid:"&&(t=e.attributes.schemeIdUri.substring(9).replace(/-/g,"").toLowerCase()),e.attributes.keyId!==void 0&&e.attributes.keyId.length>0){let a={keyId:e.attributes.keyId,systemId:t};n.contentProtections===void 0?n.contentProtections={keyIds:[a],initData:[]}:n.contentProtections.keyIds===void 0?n.contentProtections.keyIds=[a]:n.contentProtections.keyIds.push(a)}if(t===void 0)return;let{cencPssh:r}=e.children,i=[];for(let a of r)i.push({systemId:t,data:a});if(i.length===0)return;if(n.contentProtections===void 0){n.contentProtections={keyIds:[],initData:[{type:"cenc",values:i}]};return}let o=X(n.contentProtections.initData,a=>a.type==="cenc");o===void 0?n.contentProtections.initData.push({type:"cenc",values:i}):o.values.push(...i)}function na(n){let e=Date.parse(n)-V();if(isNaN(e)){m.warn("DASH Parser: Invalid clock received: ",n);return}return e}function kd(n){let e=n.children.utcTimings.filter(t=>(t.schemeIdUri==="urn:mpeg:dash:utc:http-iso:2014"||t.schemeIdUri==="urn:mpeg:dash:utc:http-xsdate:2014")&&t.value!==void 0);return e.length>0?e[0].value:void 0}function ra(n){let{representations:e}=n,t=null;for(let r=0;r<e.length;r++){let i=e[r].index.getLastAvailablePosition();if(i===void 0)return;i!==null&&(t=t===null?i:Math.min(t,i))}return t===null?null:t}function Pd(n){for(let e=n.length-1;e>=0;e--){let t=n[e].adaptations,r=t.audio===void 0?void 0:t.audio[0],i=t.video===void 0?void 0:t.video[0];if(r!==void 0||i!==void 0){let o=null,a=null;if(r!==void 0){let s=ra(r);if(s===void 0)return{safe:void 0,unsafe:void 0};o=s}if(i!==void 0){let s=ra(i);if(s===void 0)return{safe:void 0,unsafe:void 0};a=s}if(r!==void 0&&o===null||i!==void 0&&a===null)return m.info("Parser utils: found Period with no segment. ","Going to previous one to calculate last position"),{safe:void 0,unsafe:void 0};if(a!==null)return o!==null?{safe:Math.min(o,a),unsafe:Math.max(o,a)}:{safe:a,unsafe:a};if(o!==null)return{safe:o,unsafe:o}}}return{safe:void 0,unsafe:void 0}}function ia(n){let{representations:e}=n,t=null;for(let r=0;r<e.length;r++){let i=e[r].index.getFirstAvailablePosition();if(i===void 0)return;i!==null&&(t=t===null?i:Math.max(t,i))}return t===null?null:t}function Ad(n){for(let e=0;e<=n.length-1;e++){let t=n[e].adaptations,r=t.audio===void 0?void 0:t.audio[0],i=t.video===void 0?void 0:t.video[0];if(r!==void 0||i!==void 0){let o=null,a=null;if(r!==void 0){let s=ia(r);if(s===void 0)return;o=s}if(i!==void 0){let s=ia(i);if(s===void 0)return;a=s}if(r!==void 0&&o===null||i!==void 0&&a===null){m.info("Parser utils: found Period with no segment. ","Going to next one to calculate first position");return}if(a!==null)return o!==null?Math.max(o,a):a;if(o!==null)return o}}}function Cd(n){if(n.length===0)throw new Error("DASH Parser: no period available for a dynamic content");let e=Ad(n),t=Pd(n);return{minimumSafePosition:e,maximumSafePosition:t.safe,maximumUnsafePosition:t.unsafe}}var Mi=class{constructor(e){this._isDynamic=e.isDynamic,this._timeShiftBufferDepth=!e.isDynamic||e.timeShiftBufferDepth===void 0?null:e.timeShiftBufferDepth,this._serverTimestampOffset=e.serverTimestampOffset,this._availabilityStartTime=e.availabilityStartTime}setLastPosition(e,t){this._lastPosition=e,this._positionTime=t}lastPositionIsKnown(){return this._isDynamic?this._positionTime!==void 0&&this._lastPosition!==void 0:this._lastPosition!==void 0}getEstimatedMinimumSegmentTime(){var r;if(!this._isDynamic||this._timeShiftBufferDepth===null)return 0;let e=(r=this.getEstimatedLiveEdge())!=null?r:this.getEstimatedMaximumPosition(0);return e===void 0?void 0:e-this._timeShiftBufferDepth}getEstimatedLiveEdge(){if(!(!this._isDynamic||this._serverTimestampOffset===void 0))return(V()+this._serverTimestampOffset)/1e3-this._availabilityStartTime}getEstimatedMaximumPosition(e){if(!this._isDynamic)return this._lastPosition;let t=this.getEstimatedLiveEdge();return t!==void 0&&e!==1/0?t+e:this._positionTime!==void 0&&this._lastPosition!==void 0?Math.max(this._lastPosition-this._positionTime+V()/1e3,0):this._lastPosition}};function Md(n,e){return n.type!=="dynamic"?0:_(n.availabilityStartTime)?e!=null?e:0:n.availabilityStartTime}function xd(n){if(n.length===0)return[];let e=[n[0]];for(let t=1;t<n.length;t++){let r=n[t],i=e[e.length-1];for(;(i.duration===void 0||i.start+i.duration>r.start)&&(m.warn("DASH: Updating overlapping Periods.",i==null?void 0:i.start,r.start),i.duration=r.start-i.start,i.end=r.start,!(i.duration>0));){if(e.pop(),e.length===0)break;i=e[e.length-1]}e.push(r)}return e}function wd(n,e){let t=[];return n.forEach((r,i)=>{let o;if(!_(r.attributes.start))o=r.attributes.start;else if(i===0)o=!e.isDynamic||_(e.availabilityStartTime)?0:e.availabilityStartTime;else{let u=t[t.length-1];if(!_(u)&&!_(u.periodEnd))o=u.periodEnd;else throw new Error("Missing start time when parsing periods.")}let a,s=n[i+1];_(r.attributes.duration)?i===n.length-1?a=e.duration:_(s.attributes.start)||(a=s.attributes.start-o):a=r.attributes.duration;let d=_(a)?void 0:o+a;t.push({periodStart:o,periodDuration:a,periodEnd:d})}),t}function vh(n,e){for(let t of e){let{adaptation:r,trickModeAttachedAdaptationIds:i}=t;for(let o of i)for(let a of Ht){let s=n[a];if(s!==void 0)for(let d of s)d.id===o&&(d.trickModeTracks===void 0&&(d.trickModeTracks=[]),d.trickModeTracks.push(r))}}}var ff=vh;var Rh=["subtitle","caption"];function Od(n,e,t,r){function i(a,s){let d=a.split("/")[0];if($(Ht,d))return d;if(a==="application/ttml+xml")return"text";if(a==="application/mp4")return s!==null&&X(s,u=>u.schemeIdUri==="urn:mpeg:dash:role:2011"&&$(Rh,u.value))!==void 0?"text":void 0}function o(a){switch(a.substring(0,3)){case"avc":case"hev":case"hvc":case"vp8":case"vp9":case"av1":return"video";case"vtt":return"text"}switch(a.substring(0,4)){case"mp4a":return"audio";case"wvtt":case"stpp":return"text"}}if(e!==null){let a=i(e,r);if(a!==void 0)return a}if(t!==null){let a=o(t);if(a!==void 0)return a}for(let a=0;a<n.length;a++){let s=n[a],{mimeType:d,codecs:u}=s.attributes;if(d!==void 0){let c=i(d,r);if(c!==void 0)return c}if(u!==void 0){let c=o(u);if(c!==void 0)return c}}}var kh=/[, ]+/g;function mf(n){return w(n)?n.trim().replace(kh,", "):""}function pf(n){let[e,t,r,i,o,a,s,d]=n.split(".");if(e!=="vp08"&&e!=="vp09"&&e!=="vp10")return;let u,c,l;if((i!==void 0&&i==="10"||i==="12")&&(u=parseInt(i,10)),s!==void 0&&(s==="16"?c="pq":s==="18"&&(c="hlg")),a!==void 0&&d!==void 0&&a==="09"&&d==="09"&&(l="rec2020"),!(u===void 0||c===void 0))return{colorDepth:u,eotf:c,colorSpace:l}}function Dd(n,e){var g,S,I;let{availabilityTimeOffset:t,manifestBoundsCalculator:r,isDynamic:i,end:o,start:a,receivedTime:s,unsafelyBaseOnPreviousRepresentation:d,inbandEventStreams:u,isLastPeriod:c}=e,f={availabilityTimeComplete:void 0,availabilityTimeOffset:t,unsafelyBaseOnPreviousRepresentation:d,isEMSGWhitelisted:y=>u===void 0?!1:u.some(({schemeIdUri:T})=>T===y.schemeIdUri),isLastPeriod:c,manifestBoundsCalculator:r,isDynamic:i,periodEnd:o,periodStart:a,receivedTime:s,representationBitrate:n.attributes.bitrate,representationId:n.attributes.id},p;if(n.children.segmentBase!==void 0){let{segmentBase:y}=n.children;p=new Tn(y,f)}else if(n.children.segmentList!==void 0){let{segmentList:y}=n.children;p=new _n(y,f)}else if(n.children.segmentTemplate!==void 0||e.parentSegmentTemplates.length>0){let y=e.parentSegmentTemplates.slice(),T=n.children.segmentTemplate;T!==void 0&&y.push(T);let v=Y({},...y);(v.availabilityTimeOffset!==void 0||e.availabilityTimeOffset!==void 0)&&(f.availabilityTimeOffset=((g=v.availabilityTimeOffset)!=null?g:0)+((S=e.availabilityTimeOffset)!=null?S:0)),(v.availabilityTimeComplete!==void 0||e.availabilityTimeComplete!==void 0)&&(f.availabilityTimeComplete=(I=v.availabilityTimeComplete)!=null?I:e.availabilityTimeComplete),p=ta.isTimelineIndexArgument(v)?new ta(v,f):new En(v,f)}else{let y=e.adaptation.children;if(y.segmentBase!==void 0){let{segmentBase:T}=y;p=new Tn(T,f)}else if(y.segmentList!==void 0){let{segmentList:T}=y;p=new _n(T,f)}else p=new En({duration:Number.MAX_VALUE,timescale:1,startNumber:0,media:""},f)}return p}function Ct(n,e){var i;if(e.length===0)return n;let t=e.map(o=>({url:o.value}));if(n.length===0)return t;let r=[];for(let o=0;o<n.length;o++){let a=n[o];for(let s=0;s<t.length;s++){let d=t[s],u=Yn(a.url,d.url);r.push({url:u,serviceLocation:(i=d.serviceLocation)!=null?i:a.serviceLocation})}}return r}function Ph(n,e){let t=[];if(n.children.inbandEventStreams!==void 0&&t.push(...n.children.inbandEventStreams),e.children.inbandEventStreams!==void 0&&t.push(...e.children.inbandEventStreams),t.length!==0)return t}function Ah({adaptationProfiles:n,essentialProperties:e,supplementalProperties:t,manifestProfiles:r,codecs:i}){if(((n!=null?n:"")+(r!=null?r:"")).indexOf("http://dashif.org/guidelines/dash-if-uhd#hevc-hdr-pq10")!==-1&&(i==="hvc1.2.4.L153.B0"||i==="hev1.2.4.L153.B0"))return{colorDepth:10,eotf:"pq",colorSpace:"rec2020"};let a=X([...e!=null?e:[],...t!=null?t:[]],s=>s.schemeIdUri==="urn:mpeg:mpegB:cicp:TransferCharacteristics");if(a!==void 0)switch(a.value){case"15":return;case"16":return{eotf:"pq"};case"18":return{eotf:"hlg"}}if(i!==void 0&&/^vp(08|09|10)/.exec(i))return pf(i)}function Ld(n,e,t){var i,o,a,s,d,u,c;let r=[];for(let l of n){let f=l.attributes.id!==void 0?l.attributes.id:String(l.attributes.bitrate)+(l.attributes.height!==void 0?`-${l.attributes.height}`:"")+(l.attributes.width!==void 0?`-${l.attributes.width}`:"")+(l.attributes.mimeType!==void 0?`-${l.attributes.mimeType}`:"")+(l.attributes.codecs!==void 0?`-${l.attributes.codecs}`:"");for(;r.some(x=>x.id===f);)f+="-dup";let p=(o=(i=t.unsafelyBaseOnPreviousAdaptation)==null?void 0:i.getRepresentation(f))!=null?o:null,g=Ph(l,e),S=(a=l.attributes.availabilityTimeComplete)!=null?a:t.availabilityTimeComplete,I;(l.attributes.availabilityTimeOffset!==void 0||t.availabilityTimeOffset!==void 0)&&(I=((s=l.attributes.availabilityTimeOffset)!=null?s:0)+((d=t.availabilityTimeOffset)!=null?d:0));let y=Y({},t,{availabilityTimeOffset:I,availabilityTimeComplete:S,unsafelyBaseOnPreviousRepresentation:p,adaptation:e,inbandEventStreams:g}),T=Dd(l,y),v;l.attributes.bitrate===void 0?(m.warn("DASH: No usable bitrate found in the Representation."),v=0):v=l.attributes.bitrate;let E=Ct(t.baseURLs,l.children.baseURLs),R=E.length===0?[{baseUrl:"",id:void 0}]:E.map(x=>({baseUrl:x.url,id:x.serviceLocation})),k={bitrate:v,cdnMetadata:R,index:T,id:f};l.children.supplementalProperties!==void 0&&X(l.children.supplementalProperties,x=>x.schemeIdUri==="tag:dolby.com,2018:dash:EC3_ExtensionType:2018"&&x.value==="JOC")&&(k.isSpatialAudio=!0);let A;l.attributes.codecs!==void 0?A=l.attributes.codecs:e.attributes.codecs!==void 0&&(A=e.attributes.codecs),A!==void 0&&(A=A==="mp4a.40.02"?"mp4a.40.2":A,k.codecs=A);let C;l.attributes.supplementalCodecs!==void 0?C=l.attributes.supplementalCodecs:e.attributes.supplementalCodecs!==void 0&&(C=e.attributes.supplementalCodecs),C!==void 0&&(k.supplementalCodecs=mf(C)),l.attributes.frameRate!==void 0?k.frameRate=l.attributes.frameRate:e.attributes.frameRate!==void 0&&(k.frameRate=e.attributes.frameRate),l.attributes.height!==void 0?k.height=l.attributes.height:e.attributes.height!==void 0&&(k.height=e.attributes.height),l.attributes.mimeType!==void 0?k.mimeType=l.attributes.mimeType:e.attributes.mimeType!==void 0&&(k.mimeType=e.attributes.mimeType),l.attributes.width!==void 0?k.width=l.attributes.width:e.attributes.width!==void 0&&(k.width=e.attributes.width);{let x=[...(u=e.children.contentProtections)!=null?u:[],...(c=l.children.contentProtections)!=null?c:[]];for(let N of x)t.contentProtectionParser.add(k,N)}k.hdrInfo=Ah({adaptationProfiles:e.attributes.profiles,supplementalProperties:e.children.supplementalProperties,essentialProperties:e.children.essentialProperties,manifestProfiles:t.manifestProfiles,codecs:A}),r.push(k)}return r}function Ch(n){if(n===void 0)return!1;let e=n.schemeIdUri==="urn:tva:metadata:cs:AudioPurposeCS:2007"&&n.value==="1",t=n.schemeIdUri==="urn:mpeg:dash:role:2011"&&n.value==="description";return e||t}function Mh(n,e){return!!(n!==void 0&&n.some(r=>r.schemeIdUri==="urn:tva:metadata:cs:AudioPurposeCS:2007"&&r.value==="2")||e!==void 0&&e.some(r=>r.schemeIdUri==="urn:mpeg:dash:role:2011"&&r.value==="caption"))}function xh(n){return n===void 0?!1:n.schemeIdUri==="urn:mpeg:dash:role:2011"&&n.value==="sign"}function wh(n,e){if(w(n.attributes.id))return n.attributes.id;let{isClosedCaption:t,isForcedSubtitle:r,isAudioDescription:i,isSignInterpreted:o,isTrickModeTrack:a,type:s}=e,d=s;return w(n.attributes.language)&&(d+=`-${n.attributes.language}`),t===!0&&(d+="-cc"),r===!0&&(d+="-cc"),i===!0&&(d+="-ad"),o===!0&&(d+="-si"),a&&(d+="-trickMode"),w(n.attributes.contentType)&&(d+=`-${n.attributes.contentType}`),w(n.attributes.codecs)&&(d+=`-${n.attributes.codecs}`),w(n.attributes.mimeType)&&(d+=`-${n.attributes.mimeType}`),n.attributes.frameRate!==void 0&&(d+=`-${String(n.attributes.frameRate)}`),d}function Oh(n){if(!_(n.children.supplementalProperties)){let{supplementalProperties:e}=n.children;for(let t of e)if(t.schemeIdUri==="urn:mpeg:dash:adaptation-set-switching:2016"&&!_(t.value))return t.value.split(",").map(r=>r.trim()).filter(r=>r)}return[]}function Nd(n,e){var s,d,u,c,l,f,p;let t={video:[],audio:[],text:[]},r=[],i={},o=[];for(let g=0;g<n.length;g++){let S=n[g],I=S.children,{essentialProperties:y,roles:T,label:v}=I,E=Array.isArray(T)&&T.some(Re=>Re.value==="main")&&T.some(Re=>Re.schemeIdUri==="urn:mpeg:dash:role:2011"),R=S.children.representations,k=(s=S.attributes.availabilityTimeComplete)!=null?s:e.availabilityTimeComplete,A;(S.attributes.availabilityTimeOffset!==void 0||e.availabilityTimeOffset!==void 0)&&(A=((d=S.attributes.availabilityTimeOffset)!=null?d:0)+((u=e.availabilityTimeOffset)!=null?u:0));let C=S.attributes.mimeType,x=S.attributes.codecs,N=Od(R,w(C)?C:null,w(x)?x:null,_(I.roles)?null:I.roles);if(N===void 0)continue;let D=(c=S.attributes.selectionPriority)!=null?c:1,L=S.attributes.id,P=Oh(S),M=[];e.segmentTemplate!==void 0&&M.push(e.segmentTemplate),S.children.segmentTemplate!==void 0&&M.push(S.children.segmentTemplate);let O={availabilityTimeComplete:k,availabilityTimeOffset:A,baseURLs:Ct(e.baseURLs,I.baseURLs),contentProtectionParser:e.contentProtectionParser,manifestBoundsCalculator:e.manifestBoundsCalculator,end:e.end,isDynamic:e.isDynamic,isLastPeriod:e.isLastPeriod,manifestProfiles:e.manifestProfiles,parentSegmentTemplates:M,receivedTime:e.receivedTime,start:e.start,unsafelyBaseOnPreviousAdaptation:null},U=Array.isArray(y)?X(y,Re=>Re.schemeIdUri==="http://dashif.org/guidelines/trickmode"):void 0,H=(l=U==null?void 0:U.value)==null?void 0:l.split(" "),q=H!==void 0,{accessibilities:G}=I,K;T!==void 0&&T.some(Re=>Re.value==="dub")&&(K=!0);let ne;N!=="text"?ne=!1:ne=Mh(G,T);let j;N==="text"&&T!==void 0&&T.some(Re=>Re.value==="forced-subtitle"||Re.value==="forced_subtitle")&&(j=!0);let se;N!=="audio"?se=!1:G!==void 0&&(se=G.some(Ch));let oe;N!=="video"?oe=!1:G!==void 0&&(oe=G.some(xh));let z=wh(S,{isAudioDescription:se,isForcedSubtitle:j,isClosedCaption:ne,isSignInterpreted:oe,isTrickModeTrack:q,type:N});for(;$(o,z);)z+="-dup";let ae=z;o.push(z),O.unsafelyBaseOnPreviousAdaptation=(p=(f=e.unsafelyBaseOnPreviousPeriod)==null?void 0:f.getAdaptation(z))!=null?p:null;let $e=Ld(R,S,O),ye={id:z,representations:$e,type:N,isTrickModeTrack:q};if(_(S.attributes.language)||(ye.language=S.attributes.language),_(ne)||(ye.closedCaption=ne),_(se)||(ye.audioDescription=se),K===!0&&(ye.isDub=!0),j!==void 0&&(ye.forcedSubtitles=j),oe===!0&&(ye.isSignInterpreted=!0),v!==void 0&&(ye.label=v),H!==void 0)r.push({adaptation:ye,trickModeAttachedAdaptationIds:H});else{let Re=-1;for(let Ut of P){let Qe=i[Ut];if(Qe!==void 0&&Qe.newID!==ae&&$(Qe.adaptationSetSwitchingIDs,L)){Re=pe(t[N],Ke=>Ke[0].id===Ut);let Fe=t[N][Re];if(Fe!==void 0&&Fe[0].audioDescription===ye.audioDescription&&Fe[0].closedCaption===ye.closedCaption&&Fe[0].language===ye.language){m.info('DASH Parser: merging "switchable" AdaptationSets',L,Ut),Fe[0].representations.push(...ye.representations),Fe[1]={priority:Math.max(D,Fe[1].priority),isMainAdaptation:E||Fe[1].isMainAdaptation,indexInMpd:Math.min(g,Fe[1].indexInMpd)};break}}}Re<0&&t[N].push([ye,{priority:D,isMainAdaptation:E,indexInMpd:g}])}!_(L)&&_(i[L])&&(i[L]={newID:ae,adaptationSetSwitchingIDs:P})}let a=Ht.reduce((g,S)=>{let I=t[S];return I.length>0&&(I.sort(gf),g[S]=I.map(([y])=>y)),g},{});return t.video.sort(gf),ff(a,r),a}function gf(n,e){let t=e[1].priority-n[1].priority;return t!==0?t:n[1].isMainAdaptation!==e[1].isMainAdaptation?n[1].isMainAdaptation?-1:1:n[1].indexInMpd-e[1].indexInMpd}var Dh=Je();function Ud(n,e){var a,s,d,u,c;let t=[],r=wd(n,e);if(r.length!==n.length)throw new Error("MPD parsing error: the time information are incoherent.");let{isDynamic:i,manifestBoundsCalculator:o}=e;!i&&!_(e.duration)&&o.setLastPosition(e.duration);for(let l=n.length-1;l>=0;l--){let f=l===n.length-1,p=n[l],g=e.xlinkInfos.get(p),S=Ct(e.baseURLs,p.children.baseURLs),{periodStart:I,periodDuration:y,periodEnd:T}=r[l],v;for(_(p.attributes.id)?(m.warn("DASH: No usable id found in the Period. Generating one."),v="gen-dash-period-"+Dh()):v=p.attributes.id;t.some(U=>U.id===v);)v+="-dup";let E=g!==void 0?g.receivedTime:e.receivedTime,R=(s=(a=e.unsafelyBaseOnPreviousManifest)==null?void 0:a.getPeriod(v))!=null?s:null,k=p.attributes.availabilityTimeComplete,A=p.attributes.availabilityTimeOffset,{manifestProfiles:C,contentProtectionParser:x}=e,{segmentTemplate:N}=p.children;x.addReferences((d=p.children.contentProtections)!=null?d:[]);let D={availabilityTimeComplete:k,availabilityTimeOffset:A,baseURLs:S,contentProtectionParser:x,manifestBoundsCalculator:o,end:T,isDynamic:i,isLastPeriod:f,manifestProfiles:C,receivedTime:E,segmentTemplate:N,start:I,unsafelyBaseOnPreviousPeriod:R},L=Nd(p.children.adaptations,D),P=((u=e.xmlNamespaces)!=null?u:[]).concat((c=p.attributes.namespaces)!=null?c:[]),M=Nh(p.children.eventStreams,I,P),O={id:v,start:I,end:T,duration:y,adaptations:L,streamEvents:M};if(t.unshift(O),!o.lastPositionIsKnown()){let U=Lh(L);if(!i)typeof U=="number"&&o.setLastPosition(U);else if(typeof U=="number"){let H=V()/1e3;o.setLastPosition(U,H)}else{let H=hf(e,I);if(H!==void 0){let[q,G]=H;o.setLastPosition(q,G)}}}}if(e.isDynamic&&!o.lastPositionIsKnown()){let l=hf(e,0);if(l!==void 0){let[f,p]=l;o.setLastPosition(f,p)}}return xd(t)}function hf(n,e){if(_(n.clockOffset)){let t=Date.now()/1e3;if(t>=e){m.warn("DASH Parser: no clock synchronization mechanism found. Using the system clock instead.");let r=t-n.availabilityStartTime,i=V()/1e3;return[r,i]}}else{let t=n.clockOffset/1e3-n.availabilityStartTime,r=V()/1e3,i=r+t;if(i>=e)return[i,r]}}function Lh(n){let e=null,t=!0,r=xn(n).filter(o=>!_(o)),i=Bn(r,o=>o);for(let o of i){let a=o.representations;for(let s of a){let d=s.index.getLastAvailablePosition();d!==null&&(t=!1,typeof d=="number"&&(e=_(e)?d:Math.max(e,d)))}}if(_(e)){if(t)return null}else return e}function Nh(n,e,t){var i,o;let r=[];for(let a of n){let{schemeIdUri:s="",timescale:d=1}=a.attributes,u=t.concat((i=a.attributes.namespaces)!=null?i:[]);for(let c of a.children.events)if(c.eventStreamData!==void 0){let l=((o=c.presentationTime)!=null?o:0)/d+e,f=c.duration===void 0?void 0:l+c.duration/d,p,g;if(!Bt&&c.eventStreamData instanceof Element)p=c.eventStreamData;else try{g={namespaces:u,data:typeof c.eventStreamData=="string"?c.eventStreamData:we(new Uint8Array(c.eventStreamData))}}catch(S){m.error("DASH: Error while parsing event-stream:",S instanceof Error?S.message:"Unknown error")}r.push({start:l,end:f,id:c.id,data:{type:"dash-event-stream",value:{schemeIdUri:s,timescale:d,element:p,xmlData:g}}})}}return r}function $n(n,e,t,r,i=new WeakMap){let{children:o,attributes:a}=n;if(_(e.externalClockOffset)){let d=a.type==="dynamic",u=X(o.utcTimings,f=>f.schemeIdUri==="urn:mpeg:dash:utc:direct:2014"&&!_(f.value)),c=!_(u)&&!_(u.value)?na(u.value):void 0,l=!_(c)&&!isNaN(c)?c:void 0;if(!_(l)&&r!==!0)e.externalClockOffset=l;else if(d&&r!==!0){let f=kd(n);if(!_(f)&&f.length>0)return{type:"needs-clock",value:{url:f,continue:function(g){return g.success?(e.externalClockOffset=na(g.data),$n(n,e,t,!0)):(t.push(g.error),m.warn("DASH Parser: Error on fetching the clock ressource",g.error),$n(n,e,t,!0))}}}}}let s=[];for(let d=0;d<o.periods.length;d++){let{xlinkHref:u,xlinkActuate:c}=o.periods[d].attributes;!_(u)&&c==="onLoad"&&s.push({index:d,ressource:u})}return s.length===0?Uh(n,e,t,i):{type:"needs-xlinks",value:{xlinksUrls:s.map(({ressource:d})=>d),continue:function(u){if(u.length!==s.length)throw new Error("DASH parser: wrong number of loaded ressources.");for(let c=u.length-1;c>=0;c--){let l=s[c].index,{parsed:f,warnings:p,receivedTime:g,sendingTime:S,url:I}=u[c];p.length>0&&t.push(...p);for(let y of f)i.set(y,{receivedTime:g,sendingTime:S,url:I});o.periods.splice(l,1,...f)}return $n(n,e,t,r,i)}}}}function Uh(n,e,t,r){var P,M,O,U,H;let{children:i,attributes:o}=n,a=o.type==="dynamic",s=e.url!==void 0?[{url:e.url.substring(0,Ai(e.url))}]:[],d=Ct(s,i.baseURLs),u=Md(o,e.referenceDateTime),c=o.timeShiftBufferDepth,{externalClockOffset:l,unsafelyBaseOnPreviousManifest:f}=e,{externalClockOffset:p}=e,g=new Mi({availabilityStartTime:u,isDynamic:a,timeShiftBufferDepth:c,serverTimestampOffset:p}),S=new Ci;S.addReferences((P=i.contentProtections)!=null?P:[]);let I={availabilityStartTime:u,baseURLs:d,clockOffset:l,contentProtectionParser:S,duration:o.duration,isDynamic:a,manifestBoundsCalculator:g,manifestProfiles:n.attributes.profiles,receivedTime:e.manifestReceivedTime,timeShiftBufferDepth:c,unsafelyBaseOnPreviousManifest:f,xlinkInfos:r,xmlNamespaces:n.attributes.namespaces},y=Ud(i.periods,I);S.finalize();let T=o.duration,v,E,R=null,k;o.minimumUpdatePeriod!==void 0&&o.minimumUpdatePeriod>=0&&(v=o.minimumUpdatePeriod===0?B.getCurrent().DASH_FALLBACK_LIFETIME_WHEN_MINIMUM_UPDATE_PERIOD_EQUAL_0:o.minimumUpdatePeriod);let{minimumSafePosition:A,maximumSafePosition:C,maximumUnsafePosition:x}=Cd(y),N=V();if(a){let q;C!==void 0?q=C:p===void 0?(m.warn("DASH Parser: use system clock to define maximum position"),q=Date.now()/1e3-u):q=(V()+p)/1e3-u;let G=g.getEstimatedLiveEdge();G===void 0&&(x!==void 0?G=x:G=q),k={isLinear:!0,maximumSafePosition:q,livePosition:G,time:N},E=A,R=c!=null?c:null,R!==null&&E!==void 0&&G-E>R&&(R=G-E)}else{E=A,E===void 0&&(E=(O=(M=y[0])==null?void 0:M.start)!=null?O:0);let q=T!=null?T:1/0;if(y[y.length-1]!==void 0){let G=y[y.length-1],K=(U=G.end)!=null?U:G.duration!==void 0?G.start+G.duration:void 0;K!==void 0&&K<q&&(q=K)}C!==void 0&&C<q&&(q=C),k={isLinear:!1,maximumSafePosition:q,livePosition:void 0,time:N}}let D=!a||n.attributes.minimumUpdatePeriod===void 0&&(((H=y[y.length-1])==null?void 0:H.end)!==void 0||n.attributes.duration!==void 0);return{type:"done",value:{parsed:{availabilityStartTime:u,clockOffset:e.externalClockOffset,isDynamic:a,isLive:a,isLastPeriodKnown:D,periods:y,publishTime:o.publishTime,suggestedPresentationDelay:o.suggestedPresentationDelay,transportType:"dash",timeBounds:{minimumSafePosition:E,timeshiftDepth:R,maximumTimeData:k},lifetime:v,uris:_(e.url)?i.locations:[e.url,...i.locations]},warnings:t}}}var If=$n;function Mt(n){let e=n.textContent,t=[];return e===null||e.length===0?[void 0,t]:[{value:e},t]}var Bh=/^P(([\d.]*)Y)?(([\d.]*)M)?(([\d.]*)D)?T?(([\d.]*)H)?(([\d.]*)M)?(([\d.]*)S)?/,Fh=/([0-9]+)-([0-9]+)/;function He(n,e){return n==="true"?[!0,null]:n==="false"?[!1,null]:[!1,new et(`\`${e}\` property is not a boolean value but "${n}"`)]}function he(n,e){let t=parseInt(n,10);return isNaN(t)?[null,new et(`\`${e}\` property is not an integer value but "${n}"`)]:[t,null]}function Ye(n,e){if(n==="INF")return[1/0,null];let t=parseFloat(n);return isNaN(t)?[null,new et(`\`${e}\` property is invalid: "${n}"`)]:[t,null]}function Bd(n,e){if(n==="true")return[!0,null];if(n==="false")return[!1,null];let t=parseInt(n,10);return isNaN(t)?[null,new et(`\`${e}\` property is not a boolean nor an integer but "${n}"`)]:[t,null]}function oa(n,e){let t=Date.parse(n);return isNaN(t)?[null,new et(`\`${e}\` is in an invalid date format: "${n}"`)]:[new Date(Date.parse(n)).getTime()/1e3,null]}function mt(n,e){if(!w(n))return[0,new et(`\`${e}\` property is empty`)];let t=Bh.exec(n);return t===null?[null,new et(`\`${e}\` property has an unrecognized format "${n}"`)]:[parseFloat(w(t[2])?t[2]:"0")*365*24*60*60+parseFloat(w(t[4])?t[4]:"0")*30*24*60*60+parseFloat(w(t[6])?t[6]:"0")*24*60*60+parseFloat(w(t[8])?t[8]:"0")*60*60+parseFloat(w(t[10])?t[10]:"0")*60+parseFloat(w(t[12])?t[12]:"0"),null]}function vn(n,e){let t=Fh.exec(n);return t===null?[null,new et(`\`${e}\` property has an unrecognized format "${n}"`)]:[[+t[1],+t[2]],null]}function yf(n,e){try{return[ft(n),null]}catch(t){return[null,new et(`\`${e}\` is not a valid base64 string: "${n}"`)]}}function Qn(n,e){let t=/^(\d+)\/(\d+)$/.exec(n);return t!==null?[+t[1]/+t[2],null]:Ye(n,e)}function Be(n){let e,t;for(let r=0;r<n.attributes.length;r++){let i=n.attributes[r];switch(i.name){case"schemeIdUri":e=i.value;break;case"value":t=i.value;break}}return{schemeIdUri:e,value:t}}function Me(n,e){return function(t,{asKey:r,parser:i,dashName:o}){let[a,s]=i(t,o);s!==null&&(m.warn(s.message),e.push(s)),a!==null&&(n[r]=a)}}var et=class n extends Error{constructor(e){super(e),Object.setPrototypeOf(this,n.prototype),this.name="MPDError"}};function Kh(n){let e=[],t=[];for(let r=0;r<n.length;r++)if(n[r].nodeType===Node.ELEMENT_NODE){let i=n[r];if(i.nodeName==="cenc:pssh"){let o=i.textContent;if(o!==null&&o.length>0){let[a,s]=yf(o,"cenc:pssh");s!==null&&(m.warn(s.message),e.push(s)),a!==null&&t.push(a)}}}return[{cencPssh:t},e]}function Vh(n){let e={};for(let t=0;t<n.attributes.length;t++){let r=n.attributes[t];switch(r.name){case"schemeIdUri":e.schemeIdUri=r.value;break;case"value":e.value=r.value;break;case"cenc:default_KID":e.keyId=je(r.value.replace(/-/g,""));break;case"ref":e.ref=r.value;break;case"refId":e.refId=r.value;break}}return e}function xt(n){let[e,t]=Kh(n.childNodes),r=Vh(n);return[{children:e,attributes:r},t]}function Fd(n){let e={};for(let t=0;t<n.attributes.length;t++){let r=n.attributes[t];switch(r.name){case"id":e.id=r.value;break;case"lang":e.language=r.value;break;case"contentType":e.contentType=r.value;break;case"par":e.par=r.value;break}}return e}function Kd(n){let e={},t=[],r=Me(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"range":r(o.value,{asKey:"range",parser:vn,dashName:"range"});break;case"sourceURL":e.media=o.value;break}}return[e,t]}function wt(n){let e={},t=[],r=Me(e,t),i=n.childNodes;for(let o=0;o<i.length;o++)if(i[o].nodeType===Node.ELEMENT_NODE){let a=i[o];if(a.nodeName==="Initialization"){let[s,d]=Kd(a);e.initialization=s,t=t.concat(d)}}for(let o=0;o<n.attributes.length;o++){let a=n.attributes[o];switch(a.name){case"timescale":r(a.value,{asKey:"timescale",parser:he,dashName:"timescale"});break;case"presentationTimeOffset":r(a.value,{asKey:"presentationTimeOffset",parser:Ye,dashName:"presentationTimeOffset"});break;case"indexRange":r(a.value,{asKey:"indexRange",parser:vn,dashName:"indexRange"});break;case"indexRangeExact":r(a.value,{asKey:"indexRangeExact",parser:He,dashName:"indexRangeExact"});break;case"availabilityTimeOffset":r(a.value,{asKey:"availabilityTimeOffset",parser:Ye,dashName:"availabilityTimeOffset"});break;case"availabilityTimeComplete":r(a.value,{asKey:"availabilityTimeComplete",parser:He,dashName:"availabilityTimeComplete"});break;case"duration":r(a.value,{asKey:"duration",parser:he,dashName:"duration"});break;case"startNumber":r(a.value,{asKey:"startNumber",parser:he,dashName:"startNumber"});break;case"endNumber":r(a.value,{asKey:"endNumber",parser:he,dashName:"endNumber"});break}}return[e,t]}function Vd(n){let e={},t=[],r=Me(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"media":e.media=o.value;break;case"indexRange":r(o.value,{asKey:"indexRange",parser:vn,dashName:"indexRange"});break;case"index":e.index=o.value;break;case"mediaRange":r(o.value,{asKey:"mediaRange",parser:vn,dashName:"mediaRange"});break}}return[e,t]}function xi(n){let[e,t]=wt(n),r=t,i=[],o=n.childNodes;for(let s=0;s<o.length;s++)if(o[s].nodeType===Node.ELEMENT_NODE){let d=o[s];if(d.nodeName==="SegmentURL"){let[u,c]=Vd(d);i.push(u),r=r.concat(c)}}return[Y(e,{list:i}),r]}function zd(n){let e=null;return function(){if(e===null){let t=n.getElementsByTagName("S");return e=t,t}return e}}function Rn(n){let[e,t]=wt(n),r=t,i;for(let s=0;s<n.childNodes.length;s++)if(n.childNodes[s].nodeType===Node.ELEMENT_NODE){let d=n.childNodes[s];d.nodeName==="SegmentTimeline"&&(i=zd(d))}let o=Y({},e,{duration:e.duration,timelineParser:i}),a=Me(o,r);for(let s=0;s<n.attributes.length;s++){let d=n.attributes[s];switch(d.nodeName){case"initialization":_(o.initialization)&&(o.initialization={media:d.value});break;case"index":o.index=d.value;break;case"availabilityTimeOffset":a(d.value,{asKey:"availabilityTimeOffset",parser:Ye,dashName:"availabilityTimeOffset"});break;case"availabilityTimeComplete":a(d.value,{asKey:"availabilityTimeComplete",parser:He,dashName:"availabilityTimeComplete"});break;case"media":o.media=d.value;break;case"bitstreamSwitching":a(d.value,{asKey:"bitstreamSwitching",parser:He,dashName:"bitstreamSwitching"});break}}return[o,r]}function zh(n){let e={baseURLs:[]},t=[],r=[];for(let i=0;i<n.length;i++)if(n[i].nodeType===Node.ELEMENT_NODE){let o=n[i];switch(o.nodeName){case"BaseURL":let[a,s]=Mt(o);a!==void 0&&e.baseURLs.push(a),r=r.concat(s);break;case"InbandEventStream":e.inbandEventStreams===void 0&&(e.inbandEventStreams=[]),e.inbandEventStreams.push(Be(o));break;case"SegmentBase":let[d,u]=wt(o);e.segmentBase=d,u.length>0&&(r=r.concat(u));break;case"SegmentList":let[c,l]=xi(o);r=r.concat(l),e.segmentList=c;break;case"SegmentTemplate":let[f,p]=Rn(o);r=r.concat(p),e.segmentTemplate=f;break;case"ContentProtection":let[g,S]=xt(o);S.length>0&&(r=r.concat(S)),g!==void 0&&t.push(g);break;case"SupplementalProperty":_(e.supplementalProperties)?e.supplementalProperties=[Be(o)]:e.supplementalProperties.push(Be(o));break}}return t.length>0&&(e.contentProtections=t),[e,r]}function Hh(n){let e={},t=[],r=Me(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"audioSamplingRate":e.audioSamplingRate=o.value;break;case"bandwidth":r(o.value,{asKey:"bitrate",parser:he,dashName:"bandwidth"});break;case"codecs":e.codecs=o.value;break;case"codingDependency":r(o.value,{asKey:"codingDependency",parser:He,dashName:"codingDependency"});break;case"frameRate":r(o.value,{asKey:"frameRate",parser:Qn,dashName:"frameRate"});break;case"height":r(o.value,{asKey:"height",parser:he,dashName:"height"});break;case"id":e.id=o.value;break;case"maxPlayoutRate":r(o.value,{asKey:"maxPlayoutRate",parser:Ye,dashName:"maxPlayoutRate"});break;case"maximumSAPPeriod":r(o.value,{asKey:"maximumSAPPeriod",parser:Ye,dashName:"maximumSAPPeriod"});break;case"mimeType":e.mimeType=o.value;break;case"profiles":e.profiles=o.value;break;case"qualityRanking":r(o.value,{asKey:"qualityRanking",parser:he,dashName:"qualityRanking"});break;case"scte214:supplementalCodecs":e.supplementalCodecs=o.value;break;case"segmentProfiles":e.segmentProfiles=o.value;break;case"width":r(o.value,{asKey:"width",parser:he,dashName:"width"});break;case"availabilityTimeOffset":r(o.value,{asKey:"availabilityTimeOffset",parser:Ye,dashName:"availabilityTimeOffset"});break;case"availabilityTimeComplete":r(o.value,{asKey:"availabilityTimeComplete",parser:He,dashName:"availabilityTimeComplete"});break}}return e.bitrate===void 0&&t.push(new et("No bitrate found on a Representation")),[e,t]}function Sf(n){let[e,t]=zh(n.childNodes),[r,i]=Hh(n),o=t.concat(i);return[{children:e,attributes:r},o]}function Wh(n){let e={baseURLs:[],representations:[]},t=[],r=[];for(let i=0;i<n.length;i++)if(n[i].nodeType===Node.ELEMENT_NODE){let o=n[i];switch(o.nodeName){case"Accessibility":e.accessibilities===void 0?e.accessibilities=[Be(o)]:e.accessibilities.push(Be(o));break;case"BaseURL":let[a,s]=Mt(o);a!==void 0&&e.baseURLs.push(a),s.length>0&&(r=r.concat(s));break;case"ContentComponent":e.contentComponent=Fd(o);break;case"EssentialProperty":_(e.essentialProperties)?e.essentialProperties=[Be(o)]:e.essentialProperties.push(Be(o));break;case"InbandEventStream":e.inbandEventStreams===void 0&&(e.inbandEventStreams=[]),e.inbandEventStreams.push(Be(o));break;case"Label":let d=o.textContent;d!=null&&(e.label=d);break;case"Representation":let[u,c]=Sf(o);e.representations.push(u),c.length>0&&(r=r.concat(c));break;case"Role":_(e.roles)?e.roles=[Be(o)]:e.roles.push(Be(o));break;case"SupplementalProperty":_(e.supplementalProperties)?e.supplementalProperties=[Be(o)]:e.supplementalProperties.push(Be(o));break;case"SegmentBase":let[l,f]=wt(o);e.segmentBase=l,f.length>0&&(r=r.concat(f));break;case"SegmentList":let[p,g]=xi(o);e.segmentList=p,g.length>0&&(r=r.concat(g));break;case"SegmentTemplate":let[S,I]=Rn(o);e.segmentTemplate=S,I.length>0&&(r=r.concat(I));break;case"ContentProtection":let[y,T]=xt(o);T.length>0&&(r=r.concat(T)),y!==void 0&&t.push(y);break}}return t.length>0&&(e.contentProtections=t),[e,r]}function Gh(n){let e={},t=[],r=Me(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"id":e.id=o.value;break;case"group":r(o.value,{asKey:"group",parser:he,dashName:"group"});break;case"lang":e.language=o.value;break;case"contentType":e.contentType=o.value;break;case"par":e.par=o.value;break;case"minBandwidth":r(o.value,{asKey:"minBitrate",parser:he,dashName:"minBandwidth"});break;case"maxBandwidth":r(o.value,{asKey:"maxBitrate",parser:he,dashName:"maxBandwidth"});break;case"minWidth":r(o.value,{asKey:"minWidth",parser:he,dashName:"minWidth"});break;case"maxWidth":r(o.value,{asKey:"maxWidth",parser:he,dashName:"maxWidth"});break;case"minHeight":r(o.value,{asKey:"minHeight",parser:he,dashName:"minHeight"});break;case"maxHeight":r(o.value,{asKey:"maxHeight",parser:he,dashName:"maxHeight"});break;case"minFrameRate":r(o.value,{asKey:"minFrameRate",parser:Qn,dashName:"minFrameRate"});break;case"maxFrameRate":r(o.value,{asKey:"maxFrameRate",parser:Qn,dashName:"maxFrameRate"});break;case"selectionPriority":r(o.value,{asKey:"selectionPriority",parser:he,dashName:"selectionPriority"});break;case"segmentAlignment":r(o.value,{asKey:"segmentAlignment",parser:Bd,dashName:"segmentAlignment"});break;case"subsegmentAlignment":r(o.value,{asKey:"subsegmentAlignment",parser:Bd,dashName:"subsegmentAlignment"});break;case"bitstreamSwitching":r(o.value,{asKey:"bitstreamSwitching",parser:He,dashName:"bitstreamSwitching"});break;case"audioSamplingRate":e.audioSamplingRate=o.value;break;case"codecs":e.codecs=o.value;break;case"scte214:supplementalCodecs":e.supplementalCodecs=o.value;break;case"codingDependency":r(o.value,{asKey:"codingDependency",parser:He,dashName:"codingDependency"});break;case"frameRate":r(o.value,{asKey:"frameRate",parser:Qn,dashName:"frameRate"});break;case"height":r(o.value,{asKey:"height",parser:he,dashName:"height"});break;case"maxPlayoutRate":r(o.value,{asKey:"maxPlayoutRate",parser:Ye,dashName:"maxPlayoutRate"});break;case"maximumSAPPeriod":r(o.value,{asKey:"maximumSAPPeriod",parser:Ye,dashName:"maximumSAPPeriod"});break;case"mimeType":e.mimeType=o.value;break;case"profiles":e.profiles=o.value;break;case"segmentProfiles":e.segmentProfiles=o.value;break;case"width":r(o.value,{asKey:"width",parser:he,dashName:"width"});break;case"availabilityTimeOffset":r(o.value,{asKey:"availabilityTimeOffset",parser:Ye,dashName:"availabilityTimeOffset"});break;case"availabilityTimeComplete":r(o.value,{asKey:"availabilityTimeComplete",parser:He,dashName:"availabilityTimeComplete"});break}}return[e,t]}function bf(n){let e=n.childNodes,[t,r]=Wh(e),[i,o]=Gh(n),a=r.concat(o);return[{children:t,attributes:i},a]}function Hd(n){let e={children:{events:[]},attributes:{}},t=[],r=Me(e.attributes,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"schemeIdUri":e.attributes.schemeIdUri=o.value;break;case"timescale":r(o.value,{asKey:"timescale",parser:he,dashName:"timescale"});break;case"value":e.attributes.value=o.value;break}}for(let i=0;i<n.childNodes.length;i++)if(n.childNodes[i].nodeType===Node.ELEMENT_NODE){let o=n.childNodes[i];switch(o.nodeName){case"Event":let[a,s]=qh(o);e.children.events.push(a),s.length>0&&(t=t.concat(s));break}}return[e,t]}function qh(n){let e={eventStreamData:n},t=[],r=Me(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"presentationTime":r(o.value,{asKey:"presentationTime",parser:he,dashName:"presentationTime"});break;case"duration":r(o.value,{asKey:"duration",parser:he,dashName:"duration"});break;case"id":e.id=o.value;break}}return[e,t]}function jh(n){let e=[],t=[],r,i=[],o=[],a=[];for(let s=0;s<n.length;s++)if(n[s].nodeType===Node.ELEMENT_NODE){let d=n[s];switch(d.nodeName){case"BaseURL":let[u,c]=Mt(d);u!==void 0&&e.push(u),o=o.concat(c);break;case"AdaptationSet":let[l,f]=bf(d);t.push(l),o=o.concat(f);break;case"EventStream":let[p,g]=Hd(d);a.push(p),o=o.concat(g);break;case"SegmentTemplate":let[S,I]=Rn(d);r=S,I.length>0&&(o=o.concat(I));break;case"ContentProtection":let[y,T]=xt(d);T.length>0&&(o=o.concat(T)),y!==void 0&&i.push(y);break}}return[{baseURLs:e,adaptations:t,eventStreams:a,segmentTemplate:r,contentProtections:i},o]}function Yh(n){let e={},t=[],r=Me(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"id":e.id=o.value;break;case"start":r(o.value,{asKey:"start",parser:mt,dashName:"start"});break;case"duration":r(o.value,{asKey:"duration",parser:mt,dashName:"duration"});break;case"bitstreamSwitching":r(o.value,{asKey:"bitstreamSwitching",parser:He,dashName:"bitstreamSwitching"});break;case"xlink:href":e.xlinkHref=o.value;break;case"xlink:actuate":e.xlinkActuate=o.value;break}}return[e,t]}function aa(n){let[e,t]=jh(n.childNodes),[r,i]=Yh(n),o=t.concat(i);return[{children:e,attributes:r},o]}function $h(n){let e=[],t=[],r=[],i=[],o=[],a=[];for(let s=0;s<n.length;s++)if(n[s].nodeType===Node.ELEMENT_NODE){let d=n[s];switch(d.nodeName){case"BaseURL":let[u,c]=Mt(d);u!==void 0&&e.push(u),a=a.concat(c);break;case"Location":t.push(d.textContent===null?"":d.textContent);break;case"Period":let[l,f]=aa(d);r.push(l),a=a.concat(f);break;case"UTCTiming":let p=Be(d);i.push(p);break;case"ContentProtection":let[g,S]=xt(d);S.length>0&&(a=a.concat(S)),g!==void 0&&o.push(g);break}}return[{baseURLs:e,locations:t,periods:r,utcTimings:i,contentProtections:o},a]}function Qh(n){let e={},t=[],r=Me(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"id":e.id=o.value;break;case"profiles":e.profiles=o.value;break;case"type":e.type=o.value;break;case"availabilityStartTime":r(o.value,{asKey:"availabilityStartTime",parser:oa,dashName:"availabilityStartTime"});break;case"availabilityEndTime":r(o.value,{asKey:"availabilityEndTime",parser:oa,dashName:"availabilityEndTime"});break;case"publishTime":r(o.value,{asKey:"publishTime",parser:oa,dashName:"publishTime"});break;case"mediaPresentationDuration":r(o.value,{asKey:"duration",parser:mt,dashName:"mediaPresentationDuration"});break;case"minimumUpdatePeriod":r(o.value,{asKey:"minimumUpdatePeriod",parser:mt,dashName:"minimumUpdatePeriod"});break;case"minBufferTime":r(o.value,{asKey:"minBufferTime",parser:mt,dashName:"minBufferTime"});break;case"timeShiftBufferDepth":r(o.value,{asKey:"timeShiftBufferDepth",parser:mt,dashName:"timeShiftBufferDepth"});break;case"suggestedPresentationDelay":r(o.value,{asKey:"suggestedPresentationDelay",parser:mt,dashName:"suggestedPresentationDelay"});break;case"maxSegmentDuration":r(o.value,{asKey:"maxSegmentDuration",parser:mt,dashName:"maxSegmentDuration"});break;case"maxSubsegmentDuration":r(o.value,{asKey:"maxSubsegmentDuration",parser:mt,dashName:"maxSubsegmentDuration"});break}}return[e,t]}function Tf(n){let[e,t]=$h(n.childNodes),[r,i]=Qh(n),o=t.concat(i);return[{children:e,attributes:r},o]}function Wd(n,e){let t=n.documentElement;if(_(t)||t.nodeName!=="MPD")throw new Error("DASH Parser: document root should be MPD");let[r,i]=Tf(t),o=If(r,e,i);return a(o);function a(s){if(s.type==="done")return s;if(s.type==="needs-clock")return{type:"needs-resources",value:{urls:[s.value.url],format:"string",continue(d){if(d.length!==1)throw new Error("DASH parser: wrong number of loaded ressources.");let u=s.value.continue(d[0].responseData);return a(u)}}};if(s.type==="needs-xlinks")return{type:"needs-resources",value:{urls:s.value.xlinksUrls,format:"string",continue(d){let u=[];for(let l=0;l<d.length;l++){let{responseData:f,receivedTime:p,sendingTime:g,url:S}=d[l];if(!f.success)throw f.error;let I="<root>"+f.data+"</root>",y=new DOMParser().parseFromString(I,"text/xml");if(_(y)||y.children.length===0)throw new Error("DASH parser: Invalid external ressources");let T=y.children[0].children,v=[],E=[];for(let R=0;R<T.length;R++)if(T[R].nodeType===Node.ELEMENT_NODE){let[k,A]=aa(T[R]);E.push(...A),v.push(k)}u.push({url:S,receivedTime:p,sendingTime:g,parsed:v,warnings:E})}let c=s.value.continue(u);return a(c)}}};Xe(s)}}var _f=Wd;function Gd(n,e){return(t,r,i)=>new Promise((o,a)=>{let s=Date.now()-V(),d=!1,f={reject:S=>{var v,E;if(d||i.isCancelled())return;d=!0,i.deregister(g);let I=S,y=(v=I==null?void 0:I.message)!=null?v:"Unknown error when fetching the Manifest through a custom manifestLoader.",T=new nt(y,(E=I==null?void 0:I.canRetry)!=null?E:!1,I==null?void 0:I.xhr);a(T)},resolve:S=>{if(d||i.isCancelled())return;d=!0,i.deregister(g);let I=S.receivingTime!==void 0?S.receivingTime-s:void 0,y=S.sendingTime!==void 0?S.sendingTime-s:void 0;o({responseData:S.data,size:S.size,requestDuration:S.duration,url:S.url,receivedTime:I,sendingTime:y})},fallback:()=>{d||i.isCancelled()||(d=!0,i.deregister(g),e(t,r,i).then(o,a))}},p=n({url:t,timeout:r.timeout},f);i.register(g);function g(S){d||(d=!0,typeof p=="function"&&p(),a(S))}})}function Xh(n){return function(t,r,i){if(t===void 0)throw new Error("Cannot perform HTTP(s) request. URL not known");switch(n){case"arraybuffer":return be({url:t,responseType:"arraybuffer",timeout:r.timeout,connectionTimeout:r.connectionTimeout,cancelSignal:i});case"text":return be({url:t,responseType:"text",timeout:r.timeout,connectionTimeout:r.connectionTimeout,cancelSignal:i});case"document":return be({url:t,responseType:"document",timeout:r.timeout,connectionTimeout:r.connectionTimeout,cancelSignal:i});default:Xe(n)}}}function wi({customManifestLoader:n},e){let t=Xh(e);return typeof n!="function"?t:Gd(n,t)}function qd(n){let{referenceDateTime:e}=n,t=n.serverSyncInfos!==void 0?n.serverSyncInfos.serverTimestamp-n.serverSyncInfos.clientTime:void 0;return function(i,o,a,s,d){var T;let{responseData:u}=i,c=o.externalClockOffset,l=(T=i.url)!=null?T:o.originalUrl,f=t!=null?t:c,g={unsafelyBaseOnPreviousManifest:o.unsafeMode?o.previousManifest:null,url:l,referenceDateTime:e,externalClockOffset:f},S=ue.dashParsers;if(S.wasm===null||S.wasm.status==="uninitialized"||S.wasm.status==="failure")return m.debug("DASH: WASM MPD Parser not initialized. Running JS one."),I();{let v=nI(u);if(!rI(v))return m.info("DASH: MPD doesn't seem to be UTF-8-encoded. Running JS parser instead of the WASM one."),I();if(S.wasm.status==="initialized"){m.debug("DASH: Running WASM MPD Parser.");let E=S.wasm.runWasmParser(v,g);return y(E)}else return m.debug("DASH: Awaiting WASM initialization before parsing the MPD."),S.wasm.waitForInitialization().catch(()=>{}).then(()=>{if(S.wasm===null||S.wasm.status!=="initialized")return m.warn("DASH: WASM MPD parser initialization failed. Running JS parser instead"),I();m.debug("DASH: Running WASM MPD Parser.");let R=S.wasm.runWasmParser(v,g);return y(R)})}function I(){if(S.fastJs!==null){let v=eI(u),E=S.fastJs(v,g);return y(E)}else if(S.native!==null){let v=tI(u),E=S.native(v,g);return y(E)}else throw new Error("No MPD parser is imported")}function y(v){if(v.type==="done"){if(v.value.warnings.length>0&&a(v.value.warnings),s.isCancelled())return Promise.reject(s.cancellationError);let k=[];return{manifest:new wn(v.value.parsed,n,k),url:l,warnings:k}}let{value:E}=v,R=E.urls.map(k=>d(()=>{let A=B.getCurrent().DEFAULT_REQUEST_TIMEOUT,C=B.getCurrent().DEFAULT_CONNECTION_TIMEOUT;return E.format==="string"?be({url:k,responseType:"text",timeout:A,connectionTimeout:C,cancelSignal:s}):be({url:k,responseType:"arraybuffer",timeout:A,connectionTimeout:C,cancelSignal:s})}).then(A=>{if(E.format==="string"){if(typeof A.responseData!="string")throw new Error("External DASH resources should have been a string");return Y(A,{responseData:{success:!0,data:A.responseData}})}else{if(!(A.responseData instanceof ArrayBuffer))throw new Error("External DASH resources should have been ArrayBuffers");return Y(A,{responseData:{success:!0,data:A.responseData}})}},A=>{let C=xe(A,{defaultCode:"PIPELINE_PARSE_ERROR",defaultReason:"An unknown error occured when parsing ressources."});return Y({},{size:void 0,requestDuration:void 0,responseData:{success:!1,error:C}})}));return Promise.all(R).then(k=>E.format==="string"?(Zh(k),y(E.continue(k))):(Jh(k),y(E.continue(k))))}}}function Zh(n){h.CURRENT_ENV!==h.PRODUCTION&&n.forEach(e=>{let{responseData:t}=e;if(!(t.success&&typeof t.data=="string")&&t.success)throw new Error("Invalid data given to the LoadedRessource")})}function Jh(n){h.CURRENT_ENV!==h.PRODUCTION&&n.forEach(e=>{let{responseData:t}=e;if(!(t.success&&t.data instanceof ArrayBuffer)&&t.success)throw new Error("Invalid data given to the LoadedRessource")})}function eI(n){if(n instanceof ArrayBuffer)return we(new Uint8Array(n));if(typeof n=="string")return n;if(n instanceof Document)return n.documentElement.outerHTML;throw new Error("DASH Manifest Parser: Unrecognized Manifest format")}function tI(n){if(n instanceof ArrayBuffer)return new DOMParser().parseFromString(we(new Uint8Array(n)),"text/xml");if(typeof n=="string")return new DOMParser().parseFromString(n,"text/xml");if(n instanceof Document)return n;throw new Error("DASH Manifest Parser: Unrecognized Manifest format")}function nI(n){if(n instanceof ArrayBuffer)return n;if(typeof n=="string")return _e(n).buffer;if(n instanceof Document)return _e(n.documentElement.innerHTML).buffer;throw new Error("DASH Manifest Parser: Unrecognized Manifest format")}function rI(n){let e=new DataView(n);return e.getUint16(0)===61371&&e.getUint8(2)===191?!0:!(e.getUint16(0)===65279||e.getUint16(0)===65534)}function We([n,e]){return e===1/0?`bytes=${n}-`:`bytes=${n}-${e}`}function pt(n,e){if(n==="audio"||n==="video")return e==="video/mp4"||e==="audio/mp4"?"mp4":e==="video/webm"||e==="audio/webm"?"webm":void 0;if(n==="text")return e==="application/mp4"?"mp4":void 0}function Zt(n,e){if(e){if(yt(n,1718909296)<0)throw new Ve("INTEGRITY_ERROR","Incomplete `ftyp` box");if(yt(n,1836019574)<0)throw new Ve("INTEGRITY_ERROR","Incomplete `moov` box")}else{if(yt(n,1836019558)<0)throw new Ve("INTEGRITY_ERROR","Incomplete `moof` box");if(yt(n,1835295092)<0)throw new Ve("INTEGRITY_ERROR","Incomplete `mdat` box")}}function Oi(n){return(e,t,r,i,o)=>{return new Promise((s,d)=>{let u=new F,c=u.linkToSignal(i);u.signal.register(d),n(e,t,r,u.signal,Se(ce({},o),{onNewChunk(f){try{a(f),o.onNewChunk(f)}catch(p){l(),u.cancel(),d(p)}}})).then(f=>{if(l(),!u.isUsed()){if(f.resultType==="segment-loaded")try{a(f.resultData.responseData)}catch(p){d(p);return}s(f)}},f=>{l(),d(f)});function l(){u.signal.deregister(d),c()}});function a(s){!(s instanceof ArrayBuffer)&&!(s instanceof Uint8Array)||pt(t.type,t.mimeType)!=="mp4"||Zt(new Uint8Array(s),t.segment.isInit)}}}function Di(n,e){return n===null?null:e.url===null?n.baseUrl:Yn(n.baseUrl,e.url)}function Li(n,e,t,r,i){if(e.range===void 0)return be({url:n,responseType:"arraybuffer",timeout:t.timeout,connectionTimeout:t.connectionTimeout,cancelSignal:r,onProgress:i.onProgress}).then(s=>({resultType:"segment-loaded",resultData:s}));if(e.indexRange===void 0)return be({url:n,headers:{Range:We(e.range)},responseType:"arraybuffer",timeout:t.timeout,connectionTimeout:t.connectionTimeout,cancelSignal:r,onProgress:i.onProgress}).then(s=>({resultType:"segment-loaded",resultData:s}));if(e.range[1]+1===e.indexRange[0])return be({url:n,headers:{Range:We([e.range[0],e.indexRange[1]])},responseType:"arraybuffer",timeout:t.timeout,connectionTimeout:t.connectionTimeout,cancelSignal:r,onProgress:i.onProgress}).then(s=>({resultType:"segment-loaded",resultData:s}));let o=be({url:n,headers:{Range:We(e.range)},responseType:"arraybuffer",timeout:t.timeout,connectionTimeout:t.connectionTimeout,cancelSignal:r,onProgress:i.onProgress}),a=be({url:n,headers:{Range:We(e.indexRange)},responseType:"arraybuffer",timeout:t.timeout,connectionTimeout:t.connectionTimeout,cancelSignal:r,onProgress:i.onProgress});return Promise.all([o,a]).then(([s,d])=>{let u=te(new Uint8Array(s.responseData),new Uint8Array(d.responseData)),c=Math.min(s.sendingTime,d.sendingTime),l=Math.max(s.receivedTime,d.receivedTime);return{resultType:"segment-loaded",resultData:{url:n,responseData:u,size:s.size+d.size,requestDuration:l-c,sendingTime:c,receivedTime:l}}})}function Ni(n,e,t,r,i){let{segment:o}=e,a=o.range!==void 0?{Range:We(o.range)}:void 0,s=null;function d(u){let c=new Uint8Array(u.chunk),l=s!==null?te(s,c):c,f=Ho(l),p=f[0];s=f[1],!(p!==null&&(p.forEach(g=>{r.onNewChunk(g)}),i.isCancelled()))&&(r.onProgress({duration:u.duration,size:u.size,totalSize:u.totalSize}),i.isCancelled())}return po({url:n,headers:a,onData:d,timeout:t.timeout,connectionTimeout:t.connectionTimeout,cancelSignal:i}).then(u=>({resultType:"chunk-complete",resultData:u}))}function Ef(n,e,t,r,i,o){if(e.segment.isInit)return Li(n,e.segment,r,o,i);let a=pt(e.type,e.mimeType);if(t&&(a==="mp4"||a===void 0)){if(yr())return Ni(n,e,r,i,o);_t("DASH: Your browser does not have the fetch API. You will have a higher chance of rebuffering when playing close to the live edge")}let{segment:s}=e;return be({url:n,responseType:"arraybuffer",headers:s.range!==void 0?{Range:We(s.range)}:void 0,timeout:r.timeout,connectionTimeout:r.connectionTimeout,cancelSignal:o,onProgress:i.onProgress}).then(d=>({resultType:"segment-loaded",resultData:d}))}function jd({lowLatencyMode:n,segmentLoader:e,checkMediaSegmentIntegrity:t}){return t!==!0?r:Oi(r);function r(i,o,a,s,d){let u=Di(i,o.segment);return u===null?Promise.resolve({resultType:"segment-created",resultData:null}):n||e===void 0?Ef(u,o,n,a,d,s):new Promise((c,l)=>{let f=!1,y={reject:k=>{var N,D;if(f||s.isCancelled())return;f=!0,s.deregister(R);let A=k,C=(N=A==null?void 0:A.message)!=null?N:"Unknown error when fetching a DASH segment through a custom segmentLoader.",x=new nt(C,(D=A==null?void 0:A.canRetry)!=null?D:!1,A==null?void 0:A.xhr);l(x)},resolve:k=>{f||s.isCancelled()||(f=!0,s.deregister(R),c({resultType:"segment-loaded",resultData:{responseData:k.data,size:k.size,requestDuration:k.duration}}))},progress:k=>{f||s.isCancelled()||d.onProgress({duration:k.duration,size:k.size,totalSize:k.totalSize})},fallback:()=>{f||s.isCancelled()||(f=!0,s.deregister(R),Ef(u,o,n,a,d,s).then(c,l))}},T;o.segment.range!==void 0&&(T=[o.segment.range],o.segment.indexRange!==void 0&&T.push(o.segment.indexRange));let v={isInit:o.segment.isInit,timeout:a.timeout,byteRanges:T,trackType:o.type,url:u},E=e(v,y);s.register(R);function R(k){f||(f=!0,typeof E=="function"&&E(),l(k))}})}}var $d=408125543,vf=357149030,iI=2807729,oI=17545,aI=475249515,sI=187,dI=179,uI=183,lI=241;function Jt(n,e,t,[r,i]){let o=r;for(;o<i;){let a=fI(t,o);if(a===null)return null;let{value:s,length:d}=a,u=o+d,c=mI(t,u);if(c===null)return null;let{length:l,value:f}=c,p=u+l,g=p+f;if(s===n)return[p,g];if(e.length>0){for(let S=0;S<e.length;S++)if(s===e[S]){let I=e.slice(S+1,e.length);return Jt(n,I,t,[p,g])}}o=g}return null}function sa(n,e){let t=Jt(iI,[$d,vf],n,[e,n.length]);if(t===null)return null;let r=t[1]-t[0];return 1e9/Yd(n,t[0],r)}function cI(n,e){let t=Jt(oI,[$d,vf],n,[e,n.length]);if(t===null)return null;let r=t[1]-t[0];return r===4?pI(n,t[0]):r===8?gI(n,t[0]):null}function Qd(n,e){let t=Jt($d,[],n,[e,n.length]);if(t===null)return null;let[r,i]=t,o=sa(n,r);if(o===null)return null;let a=cI(n,r);if(a===null)return null;let s=Jt(aI,[],n,[r,i]);if(s===null)return null;let d=[],u=s[0];for(;u<s[1];){let l=Jt(sI,[],n,[u,s[1]]);if(l===null)break;let f=Jt(dI,[],n,[l[0],l[1]]);if(f===null)return null;let p=Yd(n,f[0],f[1]-f[0]),g=Jt(lI,[uI],n,[l[0],l[1]]);if(g===null)return null;let S=Yd(n,g[0],g[1]-g[0])+r;d.push({time:p,rangeStart:S}),u=l[1]}let c=[];for(let l=0;l<d.length;l++){let f=d[l];l===d.length-1?c.push({time:f.time,timescale:o,duration:l===0?a:a-f.time,range:[f.rangeStart,1/0]}):c.push({time:f.time,timescale:o,duration:d[l+1].time-f.time,range:[f.rangeStart,d[l+1].rangeStart-1]})}return c}function Rf(n,e){for(let t=1;t<=8;t++)if(n[e]>=Math.pow(2,8-t))return t}function fI(n,e){let t=Rf(n,e);if(t===void 0)return m.warn("webm: unrepresentable length"),null;if(e+t>n.length)return m.warn("webm: impossible length"),null;let r=0;for(let i=0;i<t;i++)r=n[e+i]*Math.pow(2,(t-i-1)*8)+r;return{length:t,value:r}}function mI(n,e){let t=Rf(n,e);if(t===void 0)return m.warn("webm: unrepresentable length"),null;if(e+t>n.length)return m.warn("webm: impossible length"),null;let r=(n[e]&(1<<8-t)-1)*Math.pow(2,(t-1)*8);for(let i=1;i<t;i++)r=n[e+i]*Math.pow(2,(t-i-1)*8)+r;return{length:t,value:r}}function pI(n,e){return new DataView(n.buffer).getFloat32(e)}function gI(n,e){return new DataView(n.buffer).getFloat64(e)}function Yd(n,e,t){let r=0;for(let i=0;i<t;i++)r=n[e+i]*Math.pow(2,(t-i-1)*8)+r;return r}function Ui(n,e,t,r){let i=Ls(n);if(i===void 0||r===void 0)return null;let o=t.timestampOffset!==void 0?i+t.timestampOffset*r:i,a=Zr(n);if(o<0&&(a!==void 0&&(a+=o),o=0),e||!t.complete)return a===void 0&&m.warn("DASH: Chunked segments should indicate a duration through their trun boxes"),{time:o/r,duration:a!==void 0?a/r:void 0};let s,d=t.duration*r,u=Math.min(r*.9,d/4);return a!==void 0&&Math.abs(a-d)<=u&&(s=a),{time:o/r,duration:s!==void 0?s/r:s}}function hI(n,e){if(n.length<=0)return!1;let t=n.length;for(let r=0;r<t;r++){let i=n[r],o=e,{messageData:a}=i,s=we(a),d=Date.parse(s);if(o===void 0||d===void 0||isNaN(d)||d>=o)return!0}return!1}function Xd(n,e){if(n.length===0)return;let{manifestRefreshEventsFromEMSGs:t,EMSGs:r}=n.reduce((a,s)=>(s.schemeIdUri==="urn:mpeg:dash:event:2012"&&s.value==="1"?(a.manifestRefreshEventsFromEMSGs===void 0&&(a.manifestRefreshEventsFromEMSGs=[]),a.manifestRefreshEventsFromEMSGs.push(s)):(a.EMSGs===void 0&&(a.EMSGs=[]),a.EMSGs.push(s)),a),{manifestRefreshEventsFromEMSGs:void 0,EMSGs:void 0}),i=r==null?void 0:r.map(a=>({type:"emsg",value:a})),o=e===void 0||t===void 0?!1:hI(t,e);return{inbandEvents:i,needsManifestRefresh:o}}function Zd({__priv_patchLastSegmentInSidx:n}){return function(t,r,i){var v,E;let{segment:o,periodStart:a,periodEnd:s}=r,{data:d,isChunked:u}=t,c=[a,s];if(d===null)return o.isInit?{segmentType:"init",initializationData:null,initializationDataSize:0,protectionData:[],initTimescale:void 0}:{segmentType:"media",chunkData:null,chunkSize:0,chunkInfos:null,chunkOffset:0,protectionData:[],appendWindow:c};let l=d instanceof Uint8Array?d:new Uint8Array(d),f=pt(r.type,r.mimeType),p=f==="mp4"||f===void 0,g=[];if(p){let R=Wo(l),k;o.isInit&&(k=(v=Gc(l))!=null?v:void 0),(R.length>0||k!==void 0)&&g.push({initDataType:"cenc",keyId:k,initData:R})}if(!o.isInit){let R=p?Ui(l,u,o,i):null,k=(E=o.timestampOffset)!=null?E:0;if(p){let A=Wc(l);if(A!==void 0){let C=A.filter(N=>o.privateInfos===void 0||o.privateInfos.isEMSGWhitelisted===void 0?!1:o.privateInfos.isEMSGWhitelisted(N)),x=Xd(C,r.manifestPublishTime);if(x!==void 0){let{needsManifestRefresh:N,inbandEvents:D}=x;return{segmentType:"media",chunkData:l,chunkSize:l.length,chunkInfos:R,chunkOffset:k,appendWindow:c,inbandEvents:D,protectionData:g,needsManifestRefresh:N}}}}return{segmentType:"media",chunkData:l,chunkSize:l.length,chunkInfos:R,chunkOffset:k,protectionData:g,appendWindow:c}}let{indexRange:S}=o,I;if(f==="webm")I=Qd(l,0);else if(p&&(I=Xr(l,Array.isArray(S)?S[0]:0),n===!0&&I!==null&&I.length>0)){let R=I[I.length-1];Array.isArray(R.range)&&(R.range[1]=1/0)}let y;p?y=Jr(l):f==="webm"&&(y=sa(l,0));let T=_(y)?void 0:y;return{segmentType:"init",initializationData:l,initializationDataSize:l.length,protectionData:g,initTimescale:T,segmentList:I!=null?I:void 0}}}function Jd({lowLatencyMode:n,checkMediaSegmentIntegrity:e}){return e!==!0?t:Oi(t);function t(r,i,o,a,s){let{segment:d}=i,{range:u}=d,c=Di(r,d);if(c===null)return Promise.resolve({resultType:"segment-created",resultData:null});if(d.isInit)return Li(c,d,o,a,s);let l=pt(i.type,i.mimeType),f=l==="mp4"||l===void 0;if(n&&f){if(yr())return Ni(c,i,o,s,a);_t("DASH: Your browser does not have the fetch API. You will have a higher chance of rebuffering when playing close to the live edge")}return f?be({url:c,responseType:"arraybuffer",headers:Array.isArray(u)?{Range:We(u)}:null,timeout:o.timeout,connectionTimeout:o.connectionTimeout,onProgress:s.onProgress,cancelSignal:a}).then(p=>({resultType:"segment-loaded",resultData:p})):be({url:c,responseType:"text",headers:Array.isArray(u)?{Range:We(u)}:null,timeout:o.timeout,connectionTimeout:o.connectionTimeout,onProgress:s.onProgress,cancelSignal:a}).then(p=>({resultType:"segment-loaded",resultData:p}))}}function II(n){let e=$r(n);return e===null?"":we(e)}function yI(n){if(n===void 0)throw new Error("Cannot parse subtitles: unknown format");switch(n.toLowerCase()){case"stpp":case"stpp.ttml.im1t":return"ttml";case"wvtt":return"vtt"}throw new Error(`The codec used for the subtitles "${n}" is not managed yet.`)}function SI(n,e){switch(e){case"application/ttml+xml":return"ttml";case"application/x-sami":case"application/smil":return"sami";case"text/vtt":return"vtt"}if(n!==void 0&&n.toLowerCase()==="srt")return"srt";throw new Error(`could not find a text-track parser for the type ${e!=null?e:""}`)}function kf({segment:n,language:e,codecs:t},r,i,o){if(n.isInit)return null;let a,s;i===null?o?(a=n.time,s=n.end):m.warn("Transport: Unavailable time data for current text track."):(a=i.time,i.duration!==void 0?s=a+i.duration:!o&&n.complete&&(s=a+n.duration));let d=yI(t);return{data:II(r),type:d,language:e,start:a,end:s}}function Pf(n,e,t){let{segment:r}=n;if(r.isInit)return null;let i,o;t?m.warn("Transport: Unavailable time data for current text track."):(i=r.time,r.complete&&(o=r.time+r.duration));let a=SI(n.codecs,n.mimeType);return{data:e,type:a,language:n.language,start:i,end:o}}function bI(n,e,t,r,i){var f;let{segment:o}=t,{isInit:a,indexRange:s}=o,d;if(typeof n=="string"?d=_e(n):n instanceof Uint8Array?d=n:d=new Uint8Array(n),a){let p=Xr(d,Array.isArray(s)?s[0]:0);if(i===!0&&p!==null&&p.length>0){let S=p[p.length-1];Array.isArray(S.range)&&(S.range[1]=1/0)}let g=Jr(d);return{segmentType:"init",initializationData:null,initializationDataSize:0,protectionData:[],initTimescale:g,segmentList:p!=null?p:void 0}}let u=Ui(d,e,o,r),c=kf(t,d,u,e),l=(f=o.timestampOffset)!=null?f:0;return{segmentType:"media",chunkData:c,chunkSize:d.length,chunkInfos:u,chunkOffset:l,protectionData:[],appendWindow:[t.periodStart,t.periodEnd]}}function TI(n,e,t){let{periodStart:r,periodEnd:i,segment:o}=t,{timestampOffset:a=0}=o;if(o.isInit)return{segmentType:"init",initializationData:null,initializationDataSize:0,protectionData:[],initTimescale:void 0};let s,d;if(typeof n!="string"){let c=n instanceof Uint8Array?n:new Uint8Array(n);s=we(c),d=c.length}else s=n;return{segmentType:"media",chunkData:Pf(t,s,e),chunkSize:d,chunkInfos:null,chunkOffset:a,protectionData:[],appendWindow:[r,i]}}function eu({__priv_patchLastSegmentInSidx:n}){return function(t,r,i){var l;let{periodStart:o,periodEnd:a,segment:s}=r,{data:d,isChunked:u}=t;if(d===null)return s.isInit?{segmentType:"init",initializationData:null,initializationDataSize:0,protectionData:[],initTimescale:void 0}:{segmentType:"media",chunkData:null,chunkSize:0,chunkInfos:null,chunkOffset:(l=s.timestampOffset)!=null?l:0,protectionData:[],appendWindow:[o,a]};let c=pt(r.type,r.mimeType);if(c==="webm")throw new Error("Text tracks with a WEBM container are not yet handled.");return c==="mp4"?bI(d,u,r,i,n):TI(d,u,r)}}function Af(n){let e=wi({customManifestLoader:n.manifestLoader},_I()?"text":"arraybuffer"),t=qd(n),r=jd(n),i=Zd(n),o=Jd(n),a=eu(n);return{manifest:{loadManifest:e,parseManifest:t},audio:{loadSegment:r,parseSegment:i},video:{loadSegment:r,parseSegment:i},text:{loadSegment:o,parseSegment:a}}}function _I(){return ue.dashParsers.wasm!==null&&(ue.dashParsers.wasm.status==="initialized"||ue.dashParsers.wasm.status==="initializing")}var Cf=Af;function tu(n){n.transports.dash===void 0&&(n.transports.dash=Cf),n.dashParsers.native=_f,n.mainThreadMediaSourceInit=bn,n.codecSupportProber=Xo}var EI=typeof MediaSource=="function"&&MediaSource.canConstructInDedicatedWorker===!0,Mf=EI;var Bi=class extends Wn{constructor(e){super(),this._settings=e,this._initCanceller=new F}prepare(){}start(e,t){let r=this._initCanceller.signal,{keySystems:i,speed:o,url:a}=this._settings;Gn(e);let s=new W(null);s.finish();let d=gi(e,i,s,{onError:c=>this._onFatalError(c),onWarning:c=>this.trigger("warning",c),onBlackListProtectionData:Q,onKeyIdsCompatibilityUpdate:Q},r);Si(e,c=>this._onFatalError(c),r);let u=new Sn(t,null,o);u.addEventListener("stalled",c=>this.trigger("stalled",c)),u.addEventListener("unstalled",()=>this.trigger("unstalled",null)),u.addEventListener("warning",c=>this.trigger("warning",c)),r.register(()=>{u.destroy()}),u.start(),d.onUpdate((c,l)=>{c.initializationState.type!=="uninitialized"&&(l(),m.info("Setting URL to HTMLMediaElement",a),e.src=a,r.register(()=>{m.info("Init: Removing directfile src from media element",e.src),Gn(e)}),c.initializationState.type==="awaiting-media-link"?(c.initializationState.value.isMediaLinked.setValue(!0),d.onUpdate((f,p)=>{f.initializationState.type==="initialized"&&(p(),this._seekAndPlay(e,t))},{emitCurrentValue:!0,clearSignal:r})):(J(c.initializationState.type==="initialized"),this._seekAndPlay(e,t)))},{emitCurrentValue:!0,clearSignal:r})}updateContentUrls(e,t){throw new Error("Cannot update content URL of directfile contents")}dispose(){this._initCanceller.cancel()}_onFatalError(e){this._initCanceller.cancel(),this.trigger("error",e)}_seekAndPlay(e,t){let r=this._initCanceller.signal,{autoPlay:i,startAt:o}=this._settings;pi({mediaElement:e,playbackObserver:t,startTime:()=>{m.debug("Init: Calculating initial time");let s=vI(e,o);return m.debug("Init: Initial time calculated:",s),s},mustAutoPlay:i,onWarning:s=>this.trigger("warning",s),isDirectfile:!0},r).autoPlayResult.then(()=>mi(t,e,!0,r).onUpdate((s,d)=>{s&&(d(),this.trigger("loaded",{getSegmentSinkMetrics:null}))},{emitCurrentValue:!0,clearSignal:r})).catch(s=>{r.isCancelled()||this._onFatalError(s)})}};function vI(n,e){if(_(e))return 0;if(_(e.position))if(_(e.wallClockTime)){if(!_(e.fromFirstPosition))return e.fromFirstPosition}else return e.wallClockTime;else return e.position;let t=n.duration;if(typeof e.fromLastPosition=="number")return _(t)||!isFinite(t)?(m.warn("startAt.fromLastPosition set but no known duration, beginning at 0."),0):Math.max(0,t+e.fromLastPosition);if(typeof e.fromLivePosition=="number"){let r=n.seekable.length>0?n.seekable.end(0):t;return _(r)?(m.warn("startAt.fromLivePosition set but no known live position, beginning at 0."),0):Math.max(0,r+e.fromLivePosition)}else if(!_(e.percentage)){if(_(t)||!isFinite(t))return m.warn("startAt.percentage set but no known duration, beginning at 0."),0;let{percentage:r}=e;if(r>=100)return t;if(r<=0)return 0;let i=+r/100;return t*i}return 0}function nu(n,e){for(let t=0;t<n.length;t++)(!or||t!==e)&&(n[t].enabled=!1);return e<0||e>=n.length?!1:(n[e].enabled=!0,!0)}function Xn(n,e){var t;if(e.length!==n.length)return!0;for(let r=0;r<e.length;r++)if(e[r].nativeTrack!==((t=n[r])==null?void 0:t.nativeTrack))return!0;return!1}function ru(n){var r;let e=[],t={};for(let i=0;i<n.length;i++){let o=n[i],a=o.language===""?"nolang":o.language,s=(r=t[a])!=null?r:1,d="gen_audio_"+a+"_"+s.toString();t[a]=s+1;let u={language:o.language,id:d,normalized:Sr(o.language),audioDescription:o.kind==="descriptions"||o.kind==="description",representations:[]};e.push({track:u,nativeTrack:o})}return e}function iu(n){var r;let e=[],t={};for(let i=0;i<n.length;i++){let o=n[i],a=o.language===""?"nolang":o.language,s=(r=t[a])!=null?r:1,d="gen_text_"+a+"_"+s.toString();t[a]=s+1;let u=o.kind==="forced"?!0:void 0,c={language:o.language,forced:u,label:o.label,id:d,normalized:Sr(o.language),closedCaption:o.kind==="captions"};e.push({track:c,nativeTrack:o})}return e}function ou(n){var r;let e=[],t={};for(let i=0;i<n.length;i++){let o=n[i],a=o.language===""?"nolang":o.language,s=(r=t[a])!=null?r:1,d="gen_video_"+a+"_"+s.toString();t[a]=s+1,e.push({track:{id:d,representations:[]},nativeTrack:o})}return e}var Fi=class extends ie{constructor(e){var t,r,i;super(),this._nativeAudioTracks=e.audioTracks,this._nativeVideoTracks=e.videoTracks,this._nativeTextTracks=e.textTracks,this._audioTracks=this._nativeAudioTracks!==void 0?ru(this._nativeAudioTracks):[],this._videoTracks=this._nativeVideoTracks!==void 0?ou(this._nativeVideoTracks):[],this._textTracks=this._nativeTextTracks!==void 0?iu(this._nativeTextTracks):[],this._lastEmittedNativeAudioTrack=(t=this._getCurrentAudioTrack())==null?void 0:t.nativeTrack,this._lastEmittedNativeVideoTrack=(r=this._getCurrentVideoTrack())==null?void 0:r.nativeTrack,this._lastEmittedNativeTextTrack=(i=this._getCurrentTextTrack())==null?void 0:i.nativeTrack,this._handleNativeTracksCallbacks()}setAudioTrackById(e){for(let t=0;t<this._audioTracks.length;t++){let{track:r,nativeTrack:i}=this._audioTracks[t];if(r.id===e){this._enableAudioTrackFromIndex(t),this._audioTrackLockedOn=i;return}}throw new Error("Audio track not found.")}disableTextTrack(){xf(this._textTracks),this._textTrackLockedOn=null}setTextTrackById(e){let t=!1;for(let r=0;r<this._textTracks.length;r++){let{track:i,nativeTrack:o}=this._textTracks[r];i.id===e?(o.mode="showing",t=!0,this._textTrackLockedOn=o):(o.mode==="showing"||o.mode==="hidden")&&(o.mode="disabled")}if(!t)throw new Error("Text track not found.")}disableVideoTrack(){wf(this._videoTracks),this._videoTrackLockedOn=null}setVideoTrackById(e){for(let t=0;t<this._videoTracks.length;t++){let{track:r,nativeTrack:i}=this._videoTracks[t];if(r.id===e){i.selected=!0,this._videoTrackLockedOn=i;return}}throw new Error("Video track not found.")}getChosenAudioTrack(){let e=this._getCurrentAudioTrack();return _(e)?e:e.track}getChosenTextTrack(){let e=this._getCurrentTextTrack();return _(e)?e:e.track}getChosenVideoTrack(){let e=this._getCurrentVideoTrack();return _(e)?e:e.track}getAvailableAudioTracks(){return this._audioTracks.map(({track:e,nativeTrack:t})=>({id:e.id,language:e.language,normalized:e.normalized,audioDescription:e.audioDescription,active:t.enabled,representations:e.representations}))}getAvailableTextTracks(){return this._textTracks.map(({track:e,nativeTrack:t})=>({id:e.id,label:e.label,forced:e.forced,language:e.language,normalized:e.normalized,closedCaption:e.closedCaption,active:t.mode==="showing"}))}getAvailableVideoTracks(){return this._videoTracks.map(({track:e,nativeTrack:t})=>({id:e.id,representations:e.representations,active:t.selected}))}dispose(){this._nativeVideoTracks!==void 0&&(this._nativeVideoTracks.onchange=null,this._nativeVideoTracks.onaddtrack=null,this._nativeVideoTracks.onremovetrack=null),this._nativeAudioTracks!==void 0&&(this._nativeAudioTracks.onchange=null,this._nativeAudioTracks.onaddtrack=null,this._nativeAudioTracks.onremovetrack=null),this._nativeTextTracks!==void 0&&(this._nativeTextTracks.onchange=null,this._nativeTextTracks.onaddtrack=null,this._nativeTextTracks.onremovetrack=null),this.removeEventListener()}_getCurrentAudioTrack(){if(this._nativeAudioTracks!==void 0){for(let e=0;e<this._audioTracks.length;e++){let t=this._audioTracks[e];if(t.nativeTrack.enabled)return t}return null}}_getCurrentVideoTrack(){if(this._nativeVideoTracks!==void 0){for(let e=0;e<this._videoTracks.length;e++){let t=this._videoTracks[e];if(t.nativeTrack.selected)return t}return null}}_getCurrentTextTrack(){if(this._nativeTextTracks!==void 0){for(let e=0;e<this._textTracks.length;e++){let t=this._textTracks[e];if(t.nativeTrack.mode==="showing")return t}return null}}_setPreviouslyLockedAudioTrack(){if(this._audioTrackLockedOn!==void 0)if(this._audioTrackLockedOn===null)for(let e=0;e<this._audioTracks.length;e++){let{nativeTrack:t}=this._audioTracks[e];t.enabled=!1}else for(let e=0;e<this._audioTracks.length;e++){let{nativeTrack:t}=this._audioTracks[e];if(t===this._audioTrackLockedOn){this._enableAudioTrackFromIndex(e);return}}}_setPreviouslyLockedTextTrack(){if(this._textTrackLockedOn!==void 0)if(this._textTrackLockedOn===null){xf(this._textTracks);return}else for(let e=0;e<this._textTracks.length;e++){let{nativeTrack:t}=this._textTracks[e];if(t===this._textTrackLockedOn){RI(this._textTracks,t),t.mode!=="showing"&&(t.mode="showing");return}}}_setPreviouslyLockedVideoTrack(){if(this._videoTrackLockedOn!==void 0)if(this._videoTrackLockedOn===null){wf(this._videoTracks);return}else for(let e=0;e<this._videoTracks.length;e++){let{nativeTrack:t}=this._videoTracks[e];if(t===this._videoTrackLockedOn){t.selected=!0;return}}}_handleNativeTracksCallbacks(){this._nativeAudioTracks!==void 0&&(this._nativeAudioTracks.onaddtrack=()=>{var e,t;if(this._nativeAudioTracks!==void 0){let r=ru(this._nativeAudioTracks);if(Xn(this._audioTracks,r)){this._audioTracks=r,this._setPreviouslyLockedAudioTrack(),this.trigger("availableAudioTracksChange",this.getAvailableAudioTracks());let i=this._getCurrentAudioTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeAudioTrack&&(this.trigger("audioTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeAudioTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeAudioTracks.onremovetrack=()=>{var e,t;if(this._nativeAudioTracks!==void 0){let r=ru(this._nativeAudioTracks);if(Xn(this._audioTracks,r)){this._audioTracks=r,this.trigger("availableAudioTracksChange",this.getAvailableAudioTracks());let i=this._getCurrentAudioTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeAudioTrack&&(this.trigger("audioTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeAudioTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeAudioTracks.onchange=()=>{if(this._audioTracks!==void 0)for(let e=0;e<this._audioTracks.length;e++){let{track:t,nativeTrack:r}=this._audioTracks[e];if(r.enabled){r!==this._lastEmittedNativeAudioTrack&&(this.trigger("audioTrackChange",t),this._lastEmittedNativeAudioTrack=r);return}}this._lastEmittedNativeAudioTrack!==null&&(this.trigger("audioTrackChange",null),this._lastEmittedNativeAudioTrack=null)}),this._nativeTextTracks!==void 0&&(this._nativeTextTracks.onaddtrack=()=>{var e,t;if(this._nativeTextTracks!==void 0){let r=iu(this._nativeTextTracks);if(Xn(this._textTracks,r)){this._textTracks=r,this._setPreviouslyLockedTextTrack(),this.trigger("availableTextTracksChange",this.getAvailableTextTracks());let i=this._getCurrentTextTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeTextTrack&&(this.trigger("textTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeTextTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeTextTracks.onremovetrack=()=>{var e,t;if(this._nativeTextTracks!==void 0){let r=iu(this._nativeTextTracks);if(Xn(this._textTracks,r)){this._textTracks=r,this._setPreviouslyLockedTextTrack(),this.trigger("availableTextTracksChange",this.getAvailableTextTracks());let i=this._getCurrentTextTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeTextTrack&&(this.trigger("textTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeTextTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeTextTracks.onchange=()=>{if(this._textTracks!==void 0)for(let e=0;e<this._textTracks.length;e++){let{track:t,nativeTrack:r}=this._textTracks[e];if(r.mode==="showing"){r!==this._lastEmittedNativeTextTrack&&(this.trigger("textTrackChange",t),this._lastEmittedNativeTextTrack=r);return}}this._lastEmittedNativeTextTrack!==null&&(this.trigger("textTrackChange",null),this._lastEmittedNativeTextTrack=null)}),this._nativeVideoTracks!==void 0&&(this._nativeVideoTracks.onaddtrack=()=>{var e,t;if(this._nativeVideoTracks!==void 0){let r=ou(this._nativeVideoTracks);if(Xn(this._videoTracks,r)){this._videoTracks=r,this._setPreviouslyLockedVideoTrack(),this.trigger("availableVideoTracksChange",this.getAvailableVideoTracks());let i=this._getCurrentVideoTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeVideoTrack&&(this.trigger("videoTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeVideoTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeVideoTracks.onremovetrack=()=>{var e,t;if(this._nativeVideoTracks!==void 0){let r=ou(this._nativeVideoTracks);if(Xn(this._videoTracks,r)){this._videoTracks=r,this._setPreviouslyLockedVideoTrack(),this.trigger("availableVideoTracksChange",this.getAvailableVideoTracks());let i=this._getCurrentVideoTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeVideoTrack&&(this.trigger("videoTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeVideoTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeVideoTracks.onchange=()=>{if(this._videoTracks!==void 0)for(let e=0;e<this._videoTracks.length;e++){let{track:t,nativeTrack:r}=this._videoTracks[e];if(r.selected){r!==this._lastEmittedNativeVideoTrack&&(this.trigger("videoTrackChange",t),this._lastEmittedNativeVideoTrack=r);return}}this._lastEmittedNativeVideoTrack!==null&&(this.trigger("videoTrackChange",null),this._lastEmittedNativeVideoTrack=null)})}_enableAudioTrackFromIndex(e){nu(this._audioTracks.map(({nativeTrack:t})=>t),e)}};function xf(n){for(let e=0;e<n.length;e++){let{nativeTrack:t}=n[e];t.mode="disabled"}}function RI(n,e){for(let t=0;t<n.length;t++){let{nativeTrack:r}=n[t];r!==e&&(r.mode==="showing"||r.mode==="hidden")&&(r.mode="disabled")}}function wf(n){for(let e=0;e<n.length;e++){let{nativeTrack:t}=n[e];t.selected=!1}}function au(n){n.directfile={initDirectFile:Bi,mediaElementTracksStore:Fi}}function su(n){n.decrypt=tf}var Of=re.ResizeObserver;function du(n,e,t){let{height:r,width:i}=n.getBoundingClientRect(),o=new W({height:r,width:i},t),a=r,s=i;if(Of!==void 0){let d=new Of(u=>{if(u.length===0){m.error("Compat: Resized but no observed element.");return}let c=u[0],{height:l,width:f}=c.contentRect;(l!==a||f!==s)&&(a=l,s=f,o.setValue({height:l,width:f}))});d.observe(n),t.register(()=>{d.disconnect()})}else{let d=setInterval(()=>{let{height:u,width:c}=n.getBoundingClientRect();(u!==a||c!==s)&&(a=u,s=c,o.setValue({height:u,width:c}))},e);t.register(()=>{clearInterval(d)})}return o}var kn=class{constructor(){this._ranges=[],this.length=0}insert(e,t){h.CURRENT_ENV===h.DEV&&(J(e>=0,"invalid start time"),J(t-e>0,"invalid end time")),Vt(this._ranges,{start:e,end:t}),this.length=this._ranges.length}remove(e,t){h.CURRENT_ENV===h.DEV&&(J(e>=0,"invalid start time"),J(t-e>0,"invalid end time"));let r=[];e>0&&r.push({start:0,end:e}),t<1/0&&r.push({start:t,end:1/0}),this._ranges=Ul(this._ranges,r),this.length=this._ranges.length}start(e){if(e>=this._ranges.length)throw new Error("INDEX_SIZE_ERROR");return this._ranges[e].start}end(e){if(e>=this._ranges.length)throw new Error("INDEX_SIZE_ERROR");return this._ranges[e].end}};function uu(n,e,t,r){m.debug("HTSB: Finding parser for html text tracks:",n);let i=ue.htmlTextTracksParsers[n];if(typeof i!="function")throw new Error("no parser found for the given text track");m.debug("HTSB: Parser found, parsing...");let o=i(e,t,r);return m.debug("HTTB: Parsed successfully!",o.length),o}function Ot(n,e,t=.2){return Math.abs(n-e)<=Math.min(t,.2)}var kI=.05;function Df(n,e){let t=n.end-n.start,r=e.end-e.start,i=Math.abs(n.start-e.start),o=Math.min(t,r,.2);return i/o<=kI}function Ki(n,e){for(let t=n.length-1;t>=0;t--)if(n[t].start<e)return n.slice(0,t+1);return[]}function Zn(n,e){for(let t=0;t<n.length;t++)if(n[t].end>e)return n.slice(t,n.length);return[]}function lu(n,e,t){let r=Math.max(n.start,e),i=Ki(n.cues,e),o={start:n.start,end:r,cues:i},a=Math.min(t,n.end),s=Zn(n.cues,t),d={start:a,end:n.end,cues:s};return[o,d]}var Lf=.001,PI=5,Vi=class{constructor(){this._cuesBuffer=[]}isEmpty(){return this._cuesBuffer.length===0}get(e){let t=this._cuesBuffer,r=[];for(let i=t.length-1;i>=0;i--){let o=t[i];if(e<o.end&&e>=o.start){let a=o.cues;for(let s of a)e>=s.start&&e<s.end&&r.push(s.element);if(r.length===0&&a.length>0)for(let s of a)(Ot(e,s.start,Lf)||Ot(e,s.end,Lf))&&r.push(s.element);return r}}return[]}remove(e,t){h.CURRENT_ENV===h.DEV&&(J(e>=0),J(t>=0),J(t>e));let r=Math.max(e,t),i=this._cuesBuffer;for(let o=0;o<i.length;o++)if(i[o].end>e){let a=i[o];if(a.start>=r)return;if(a.end>=r){if(e<=a.start)a.cues=Zn(a.cues,r),a.start=r;else{let[s,d]=lu(a,e,r);this._cuesBuffer[o]=s,i.splice(o+1,0,d)}return}a.start>=e?(i.splice(o,1),o--):(a.cues=Ki(a.cues,e),a.end=Math.max(e,a.start))}}insert(e,t,r){let i=this._cuesBuffer,o={start:t,end:r,cues:e},a=Math.abs(t-r)/PI;function s(d){let u=i[d];u===void 0||Ot(o.end,u.end,a)?i[d]=o:(u.start>=o.end||(u.cues=Zn(u.cues,o.end),u.start=o.end),i.splice(d,0,o))}for(let d=0;d<i.length;d++){let u=i[d];if(t<u.end){if(Df(o,u)){if(Ot(r,u.end,a)){i[d]=o;return}else if(r<u.end){u.cues=Zn(u.cues,r),u.start=r,i.splice(d,0,o);return}do i.splice(d,1),u=i[d];while(u!==void 0&&r>u.end);s(d);return}else if(t<u.start){if(r<u.start){i.splice(d,0,o);return}else if(Ot(r,u.start,a)){u.start=r,i.splice(d,0,o);return}else if(Ot(r,u.end,a)){i.splice(d,1,o);return}else if(r<u.end){u.cues=Zn(u.cues,r),u.start=r,i.splice(d,0,o);return}do i.splice(d,1),u=i[d];while(u!==void 0&&r>u.end);s(d);return}if(Ot(u.end,r,a)){u.cues=Ki(u.cues,t),u.end=t,i.splice(d+1,0,o);return}else if(u.end>r){let[c,l]=lu(u,t,r);this._cuesBuffer[d]=c,i.splice(d+1,0,o),i.splice(d+2,0,l);return}else{u.cues=Ki(u.cues,t),u.end=t;let c=d+1;for(u=i[c];u!==void 0&&r>u.end;)i.splice(c,1),u=i[c];s(c);return}}}if(i.length){let d=i[i.length-1];Ot(d.end,t,a)&&(d.end=t)}i.push(o)}};function cu(n,e,t,r){let i=[e/t.columns,n/t.rows],o=r.getElementsByClassName("proportional-style");for(let a=0;a<o.length;a++){let s=o[a];if(s instanceof HTMLElement){let d=s.getAttribute("data-proportional-font-size");d!==null&&!isNaN(+d)&&(s.style.fontSize=String(+d*i[1])+"px");let u=s.getAttribute("data-proportional-width");u!==null&&!isNaN(+u)&&(s.style.width=String(+u*i[0])+"px");let c=s.getAttribute("data-proportional-height");c!==null&&!isNaN(+c)&&(s.style.height=String(+c*i[1])+"px");let l=s.getAttribute("data-proportional-line-height");l!==null&&!isNaN(+l)&&(s.style.lineHeight=String(+l*i[1])+"px");let f=s.getAttribute("data-proportional-left");f!==null&&!isNaN(+f)&&(s.style.left=String(+f*i[0])+"px");let p=s.getAttribute("data-proportional-top");p!==null&&!isNaN(+p)&&(s.style.top=String(+p*i[1])+"px");let g=s.getAttribute("data-proportional-padding-top");g!==null&&!isNaN(+g)&&(s.style.paddingTop=String(+g*i[1])+"px");let S=s.getAttribute("data-proportional-padding-bottom");S!==null&&!isNaN(+S)&&(s.style.paddingBottom=String(+S*i[1])+"px");let I=s.getAttribute("data-proportional-padding-left");I!==null&&!isNaN(+I)&&(s.style.paddingLeft=String(+I*i[0])+"px");let y=s.getAttribute("data-proportional-padding-right");y!==null&&!isNaN(+y)&&(s.style.paddingRight=String(+y*i[0])+"px")}}return o.length>0}function Nf(n,e){try{n.removeChild(e)}catch(t){m.warn("HTD: Can't remove text track: not in the element.")}}function AI(n){let e=n.getAttribute("data-resolution-rows"),t=n.getAttribute("data-resolution-columns");if(e===null||t===null)return null;let r=parseInt(e,10),i=parseInt(t,10);return r===null||i===null?null:{rows:r,columns:i}}var zi=class{constructor(e,t){m.debug("HTD: Creating HTMLTextDisplayer"),this._buffered=new kn,this._videoElement=e,this._textTrackElement=t,this._sizeUpdateCanceller=new F,this._subtitlesIntervalCanceller=new F,this._buffer=new Vi,this._currentCues=[],this._isAutoRefreshing=!1}pushTextData(e){var S,I;m.debug("HTD: Appending new html text tracks");let{timestampOffset:t,appendWindow:r,chunk:i}=e;if(i===null)return Pe(this._buffered);let{start:o,end:a,data:s,type:d,language:u}=i,c=(S=r[0])!=null?S:0,l=(I=r[1])!=null?I:1/0,f=uu(d,s,t,u);if(c!==0&&l!==1/0){let y=0;for(;y<f.length&&f[y].end<=c;)y++;for(f.splice(0,y),y=0;y<f.length&&f[y].start<c;)f[y].start=c,y++;for(y=f.length-1;y>=0&&f[y].start>=l;)y--;for(f.splice(y,f.length),y=f.length-1;y>=0&&f[y].end>l;)f[y].end=l,y--}let p;if(o!==void 0)p=Math.max(c,o);else{if(f.length<=0)return m.warn("HTD: Current text tracks have no cues nor start time. Aborting"),Pe(this._buffered);m.warn("HTD: No start time given. Guessing from cues."),p=f[0].start}let g;if(a!==void 0)g=Math.min(l,a);else{if(f.length<=0)return m.warn("HTD: Current text tracks have no cues nor end time. Aborting"),Pe(this._buffered);m.warn("HTD: No end time given. Guessing from cues."),g=f[f.length-1].end}return g<=p?(m.warn("HTD: Invalid text track appended: ","the start time is inferior or equal to the end time."),Pe(this._buffered)):(this._buffer.insert(f,p,g),this._buffered.insert(p,g),!this._isAutoRefreshing&&!this._buffer.isEmpty()&&this.autoRefreshSubtitles(this._subtitlesIntervalCanceller.signal),Pe(this._buffered))}removeBuffer(e,t){return m.debug("HTD: Removing html text track data",e,t),this._buffer.remove(e,t),this._buffered.remove(e,t),this._isAutoRefreshing&&this._buffer.isEmpty()&&(this.refreshSubtitles(),this._isAutoRefreshing=!1,this._subtitlesIntervalCanceller.cancel(),this._subtitlesIntervalCanceller=new F),Pe(this._buffered)}getBufferedRanges(){return Pe(this._buffered)}reset(){m.debug("HTD: Resetting HTMLTextDisplayer"),this.stop(),this._subtitlesIntervalCanceller=new F}stop(){this._subtitlesIntervalCanceller.isUsed()||(m.debug("HTD: Stopping HTMLTextDisplayer"),this._disableCurrentCues(),this._buffer.remove(0,1/0),this._buffered.remove(0,1/0),this._isAutoRefreshing=!1,this._subtitlesIntervalCanceller.cancel())}_disableCurrentCues(){if(this._sizeUpdateCanceller.cancel(),this._currentCues.length>0){for(let e of this._currentCues)Nf(this._textTrackElement,e.element);this._currentCues=[]}}_displayCues(e){if(this._currentCues.length===e.length&&this._currentCues.every((i,o)=>i.element===e[o]))return;this._sizeUpdateCanceller.cancel();for(let i of this._currentCues)Nf(this._textTrackElement,i.element);this._currentCues=[];for(let i of e){let o=AI(i);this._currentCues.push({element:i,resolution:o}),this._textTrackElement.appendChild(i)}let r=this._currentCues.filter(i=>i.resolution!==null);if(r.length>0){this._sizeUpdateCanceller=new F,this._sizeUpdateCanceller.linkToSignal(this._subtitlesIntervalCanceller.signal);let{TEXT_TRACK_SIZE_CHECKS_INTERVAL:i}=B.getCurrent();du(this._textTrackElement,i,this._sizeUpdateCanceller.signal).onUpdate(({height:a,width:s})=>{for(let d of r){let{resolution:u,element:c}=d;cu(a,s,u,c)}},{clearSignal:this._sizeUpdateCanceller.signal,emitCurrentValue:!0})}}autoRefreshSubtitles(e){if(this._isAutoRefreshing||e.isCancelled())return;let t=null,{MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL:r}=B.getCurrent(),i=()=>{this._isAutoRefreshing=!1,t!==null&&(t.cancel(),t=null)},o=()=>{i(),this._isAutoRefreshing=!0,t=new F,t.linkToSignal(e);let a=setInterval(()=>this.refreshSubtitles(),r);t.signal.register(()=>{clearInterval(a)}),this.refreshSubtitles()};Cc(this._videoElement,()=>{i(),this._disableCurrentCues()},e),Mc(this._videoElement,o,e),xc(this._videoElement,o,e),o()}refreshSubtitles(){let{MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL:e}=B.getCurrent(),t;this._videoElement.paused||this._videoElement.playbackRate<=0?t=this._videoElement.currentTime:t=Math.max(this._videoElement.currentTime+e/1e3/2,0);let r=this._buffer.get(t);r.length===0?this._disableCurrentCues():this._displayCues(r)}};h.CURRENT_ENV===h.DEV&&(CI=function(e){function t(r){}});var CI;var en=zi;var MI=/&#([0-9]+);/g,xI=/<br>/gi,wI=/<style[^>]*>([\s\S]*?)<\/style[^>]*>/i,OI=/\s*<p (?:class=([^>]+))?>(.*)/i,DI=/<sync[^>]+?start="?([0-9]*)"?[^0-9]/i;function LI(n){let e=/\.(\S+)\s*{([^}]*)}/gi,t={},r=e.exec(n);for(;r!==null;){let i=r[1],o=UI(r[2],"lang");!_(i)&&!_(o)&&(t[o]=i),r=e.exec(n)}return t}function NI(n){let t=/p\s*{([^}]*)}/gi.exec(n);return t===null?"":t[1]}function UI(n,e){let t=new RegExp("\\s*"+e+":\\s*(\\S+);","i").exec(n);return Array.isArray(t)?t[1]:null}function BI(n){return n.replace(MI,(e,t)=>String.fromCharCode(Number(t)))}function FI(n,e,t){let r=/<sync[ >]/gi,i=/<sync[ >]|<\/body>/gi,o=[],a=wI.exec(n),s=Array.isArray(a)?a[1]:"",d,u;i.exec(n);let c=LI(s),l=NI(s),f;if(w(t)&&(f=c[t],f===void 0))throw new Error(`sami: could not find lang ${t} in CSS`);for(;d=r.exec(n),u=i.exec(n),!(d===null&&u===null);){if(d===null||u===null||d.index>=u.index)throw new Error("parse error");let g=n.slice(d.index,u.index),S=DI.exec(g);if(!Array.isArray(S))throw new Error("parse error (sync time attribute)");let I=+S[1];if(isNaN(I))throw new Error("parse error (sync time attribute NaN)");p(g.split(`
5
5
  `),I/1e3)}return o;function p(g,S){let I=g.length;for(;--I>=0;){let y=OI.exec(g[I]);if(!Array.isArray(y))continue;let[,T,v]=y;if(f===T)if(v==="&nbsp;")o[o.length-1].end=S;else{let E=document.createElement("DIV");E.className="rxp-texttrack-region";let R=document.createElement("DIV");R.className="rxp-texttrack-div",R.style.position="absolute",R.style.bottom="0",R.style.width="100%",R.style.color="#fff",R.style.textShadow="-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000,1px 1px 0 #000";let k=document.createElement("div");k.className="rxp-texttrack-p",w(l)&&(k.style.cssText=l);let A=v.split(xI);for(let C=0;C<A.length;C++){C!==0&&k.appendChild(document.createElement("BR"));let x=document.createElement("SPAN");x.className="rxp-texttrack-span",x.textContent=BI(A[C]),k.appendChild(x)}R.appendChild(k),E.appendChild(R),o.push({element:E,start:S+e,end:-1})}}}}var Uf=FI;function fu(n){n.htmlTextTracksParsers.sami=Uf,n.htmlTextDisplayer=en}function mu(n,e){let t=e+1;for(;w(n[t]);)t++;return t}function Hi(n){let e=[];for(let t=0;t<n.length;t++)if(w(n[t])){let r=mu(n,t),i=n.slice(t,r);i.length>0&&(i.length===1?i[0].indexOf("-->")>=0&&e.push(i):(i[1].indexOf("-->")>=0||i[0].indexOf("-->")>=0)&&e.push(i)),t=r}return e}function da(n){let e=n.split(":");if(w(e[2])){let t=parseInt(e[0],10),r=parseInt(e[1],10),i=parseFloat(e[2].replace(",","."));return isNaN(t)||isNaN(r)||isNaN(i)?void 0:t*60*60+r*60+i}}function Wi(n,e){if(n.length===0)return null;let t,r,i=[];if(w(n[1])&&n[1].indexOf("-->")!==-1&&([t,r]=n[1].split("-->").map(s=>s.trim()),i=n.slice(2,n.length)),(!w(t)||!w(r))&&([t,r]=n[0].split("-->").map(s=>s.trim()),i=n.slice(1,n.length)),!w(t)||!w(r))return null;let o=da(t),a=da(r);return o===void 0||a===void 0?null:{start:o+e,end:a+e,payload:i}}function pu(n,e){let t=n.split(/\r\n|\n|\r/),r=Hi(t),i=[];for(let o=0;o<r.length;o++){let a=Wi(r[o],e);if(a!==null){let s=KI(a);s!==null&&i.push(s)}}return i}function KI(n){let{start:e,end:t,payload:r}=n,i=document.createElement("div");i.className="rxp-texttrack-p",i.style.fontSize="28px",i.style.position="absolute",i.style.bottom="5%",i.style.width="100%",i.style.textAlign="center",i.style.color="#fff",i.style.textShadow="-1px -1px 2px #000,1px -1px 2px #000,-1px 1px 2px #000,1px 1px 2px #000";for(let o=0;o<r.length;o++){o!==0&&i.appendChild(document.createElement("br"));let a=VI(r[o]);i.appendChild(a)}return{start:e,end:t,element:i}}function VI(n){let e=document.createElement("div");e.innerHTML=n;let t=function(r){let i=r.childNodes,o=document.createElement("span");o.className="rxp-texttrack-span";for(let a=0;a<i.length;a++){let s=i[a];if(s.nodeName==="#text"){let d=s.wholeText.split(`
6
6
  `);for(let u=0;u<d.length;u++)if(u!==0&&o.appendChild(document.createElement("br")),d[u].length>0){let c=document.createTextNode(d[u]);o.appendChild(c)}}else if(s.nodeName==="B"){let d=t(s);d.style.fontWeight="bold",o.appendChild(d)}else if(s.nodeName==="I"){let d=t(s);d.style.fontStyle="italic",o.appendChild(d)}else if(s.nodeName==="U"){let d=t(s);d.style.textDecoration="underline",o.appendChild(d)}else if(zI(s)&&typeof s.color=="string"){let d=t(s);d.style.color=s.color,o.appendChild(d)}else{let d=t(s);o.appendChild(d)}}return o};return t(e)}function zI(n){return n.nodeName==="FONT"&&"color"in n}function gu(n){n.htmlTextTracksParsers.srt=pu,n.htmlTextDisplayer=en}var HI=/(\d+) (\d+)/;function hu(n){let e=n.getAttribute("ttp:frameRate"),t=n.getAttribute("ttp:subFramRate"),r=n.getAttribute("ttp:tickRate"),i=n.getAttribute("ttp:frameRateMultiplier"),o=n.getAttribute("xml:space"),a=n.getAttribute("ttp:cellResolution"),s={columns:32,rows:15};if(a!==null){let S=HI.exec(a);if(S===null||S.length<3)m.warn("TTML Parser: Invalid cellResolution");else{let I=parseInt(S[1],10),y=parseInt(S[2],10);isNaN(I)||isNaN(y)?m.warn("TTML Parser: Invalid cellResolution"):s={columns:I,rows:y}}}if(w(o)&&o!=="default"&&o!=="preserve")throw new Error("Invalid spacing style");let d=Number(e);(isNaN(d)||d<=0)&&(d=30);let u=Number(t);(isNaN(u)||u<=0)&&(u=1);let c=Number(r);(isNaN(c)||c<=0)&&(c=void 0);let l=d,f=u!=null?u:1,p=o!=null?o:"default",g=c!=null?c:d*u;if(i!==null){let S=/^(\d+) (\d+)$/g.exec(i);if(S!==null){let I=Number(S[1]),y=Number(S[2]),T=I/y;l=d*T}}return{cellResolution:s,tickRate:g,frameRate:l,subFrameRate:f,spaceStyle:p}}function Pn(n,e,t,r){let i={},o=n.slice();for(let a=0;a<=e.length-1;a++){let s=e[a];if(s!==void 0){let d,u;if(s.nodeType===Node.ELEMENT_NODE){let c=s;for(let l=0;l<=c.attributes.length-1;l++){let f=c.attributes[l],p=f.name;if(p==="style")d=f.value;else if(p==="region")u=f.value;else{let g=p.substring(4);if($(o,g)&&(i[g]=f.value,o.splice(l,1),o.length===0))return i}}}if(w(d)){let c=X(t,l=>l.id===d);if(c!==void 0)for(let l=0;l<=o.length-1;l++){let f=o[l];if(!w(i[f])&&w(c.style[f])){if(i[f]=c.style[f],o.splice(l,1),o.length===0)return i;l--}}}if(w(u)){let c=X(r,l=>l.id===u);if(c!==void 0)for(let l=0;l<=o.length-1;l++){let f=o[l];if(!w(i[f])&&w(c.style[f])){if(i[f]=c.style[f],o.splice(l,1),o.length===0)return i;l--}}}}}return i}function Iu(n){if(n.nodeType!==Node.ELEMENT_NODE)return{};let e=n,t={};for(let r=0;r<=e.attributes.length-1;r++){let i=e.attributes[r];if(qe(i.name,"tts")){let o=i.name.substring(4);t[o]=i.value}}return t}function yu(n){let e=[];function t(r,i){e.push(i);for(let o=0;o<r.extendsStyles.length;o++){let a=r.extendsStyles[o],s=pe(n,d=>d.id===a);if(s<0)m.warn("TTML Parser: unknown style inheritance: "+a);else{let d=n[s];$(e,s)?m.warn("TTML Parser: infinite style inheritance loop avoided"):t(d,s),r.style=Y({},d.style,r.style)}}r.extendsStyles.length=0}for(let r=0;r<n.length;r++)t(n[r],r),e.length=0}function Bf(n,e){if(!(n.parentNode instanceof Element))return[];function t(r){let i=[];r.tagName.toLowerCase()===e.toLowerCase()&&i.push(r);let o=r.parentNode;return o instanceof Element&&i.push(...t(o)),i}return t(n.parentNode)}function ua(n){let e=Bf(n,"div");if(e.length===0){let t=Bf(n,"tt:div");t.length>0&&(e=t)}return e}function Ff(n){let e=n.getElementsByTagName("body");if(e.length>0)return e[0];let t=n.getElementsByTagName("tt:body");return t.length>0?t[0]:null}function Kf(n){let e=n.getElementsByTagName("style");if(e.length>0)return e;let t=n.getElementsByTagName("tt:style");return t.length>0?t:e}function Vf(n){let e=n.getElementsByTagName("region");if(e.length>0)return e;let t=n.getElementsByTagName("tt:region");return t.length>0?t:e}function zf(n){let e=n.getElementsByTagName("p");if(e.length>0)return e;let t=n.getElementsByTagName("tt:p");return t.length>0?t:e}function la(n){return n.nodeName==="br"||n.nodeName==="tt:br"}function ca(n){return n.nodeName==="span"||n.nodeName==="tt:span"}var Hf=["align","backgroundColor","color","direction","display","displayAlign","extent","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","opacity","origin","overflow","padding","textAlign","textDecoration","textOutline","unicodeBidi","visibility","wrapOption","writingMode"];function Gi(n,e){let t=[],r=new DOMParser().parseFromString(n,"text/xml");if(r!=null){let o=r.getElementsByTagName("tt")[0];if(o===void 0&&(o=r.getElementsByTagNameNS("*","tt")[0],o===void 0))throw new Error("invalid XML");let a=Ff(o),s=Kf(o),d=Vf(o),u=zf(o),c=hu(o),l=[];for(let I=0;I<=s.length-1;I++){let y=s[I];if(y instanceof Element){let T=y.getAttribute("xml:id");if(T!==null){let v=y.getAttribute("style"),E=v===null?[]:v.split(" ");l.push({id:T,style:Iu(y),extendsStyles:E})}}}yu(l);let f=[];for(let I=0;I<=d.length-1;I++){let y=d[I];if(y instanceof Element){let T=y.getAttribute("xml:id");if(T!==null){let v=Iu(y),E=y.getAttribute("style");if(w(E)){let R=X(l,k=>k.id===E);R!==void 0&&(v=Y({},R.style,v))}f.push({id:T,style:v,extendsStyles:[]})}}}let p=Pn(Hf,a!==null?[a]:[],l,f),S=(a!==null?a.getAttribute("xml:space"):void 0)==="default"||c.spaceStyle==="default";for(let I=0;I<u.length;I++){let y=u[I];if(y instanceof Element){let T=ua(y),v=Y({},p,Pn(Hf,[y,...T],l,f)),E=y.getAttribute("xml:space"),R=w(E)?E==="default":S,k={paragraph:y,timeOffset:e,idStyles:l,regionStyles:f,body:a,paragraphStyle:v,ttParams:c,shouldTrimWhiteSpace:R};k!==null&&t.push(k)}}}return t}function Wf(n){return n.extent===void 0&&n.origin===void 0&&n.displayAlign===void 0&&n.display===void 0&&n.textAlign===void 0&&n.fontSize===void 0}function Gf(n){n.extent="70% 20%",n.fontSize="1c",n.origin="15% 80%",n.displayAlign="before",n.textAlign="center"}var Su=/^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/,bu=/^(?:(\d{2,}):)?(\d{2}):(\d{2})$/,Tu=/^(?:(\d{2,}):)?(\d{2}):(\d{2}\.\d{2,})$/,_u=/^(\d*\.?\d*)f$/,Eu=/^(\d*\.?\d*)t$/,vu=/^(?:(\d*\.?\d*)h)?(?:(\d*\.?\d*)m)?(?:(\d*\.?\d*)s)?(?:(\d*\.?\d*)ms)?$/,Ru=/^(\d{1,2}|100)% (\d{1,2}|100)%$/,Ge=/^((?:\+|\-)?\d*(?:\.\d+)?)(px|em|c|%|rh|rw)$/,qf=/^#([0-9A-f]{2})([0-9A-f]{2})([0-9A-f]{2})([0-9A-f]{2})$/,jf=/^#([0-9A-f])([0-9A-f])([0-9A-f])([0-9A-f])$/,Yf=/^rgb\( *(\d+) *, *(\d+) *, *(\d+) *\)/,$f=/^rgba\( *(\d+) *, *(\d+) *, *(\d+) *, *(\d+) *\)/;function WI(n,e){if(Su.test(n))return jI(e,n);if(bu.test(n))return ku(bu,n);if(Tu.test(n))return ku(Tu,n);if(_u.test(n))return GI(e,n);if(Eu.test(n))return qI(e,n);if(vu.test(n))return ku(vu,n)}function GI(n,e){let t=_u.exec(e);return Number(t[1])/n.frameRate}function qI(n,e){let t=Eu.exec(e);return Number(t[1])/n.tickRate}function jI(n,e){let t=Su.exec(e),r=Number(t[1]),i=Number(t[2]),o=Number(t[3]),a=Number(t[4]),s=Number(t[5]);return isNaN(s)&&(s=0),a+=s/n.subFrameRate,o+=a/n.frameRate,o+i*60+r*3600}function ku(n,e){let t=n.exec(e);if(t===null||t[0]==="")return null;let r=Number(t[1]);isNaN(r)&&(r=0);let i=Number(t[2]);isNaN(i)&&(i=0);let o=Number(t[3]);isNaN(o)&&(o=0);let a=Number(t[4]);return isNaN(a)&&(a=0),a/1e3+o+i*60+r*3600}var fa=WI;function qi(n,e){let t=n.getAttribute("begin"),r=n.getAttribute("dur"),i=n.getAttribute("end"),o=w(t)?fa(t,e):null,a=w(r)?fa(r,e):null,s=w(i)?fa(i,e):null;if(_(o)||_(s)&&_(a))throw new Error("Invalid text cue");let d=_(s)?o+a:s;return{start:o,end:d}}var Pu;function ke(n,e){Pu===void 0&&(Pu=n.classList!==void 0&&typeof n.classList.add=="function"),Pu?n.classList.add(e):(" "+n.className+" ").indexOf(" "+e+" ")<0&&(n.className+=" "+e)}function Au(n,e){let t=e.trim();if(t==="auto")return;let r=t.split(" ");if(r.length!==2)return;let i=Ge.exec(r[0]),o=Ge.exec(r[1]);i!==null&&o!==null&&(i[2]==="px"||i[2]==="%"||i[2]==="em"?n.style.width=i[1]+i[2]:i[2]==="c"?(ke(n,"proportional-style"),n.setAttribute("data-proportional-width",i[1])):m.warn("TTML Parser: unhandled extent unit:",i[2]),o[2]==="px"||o[2]==="%"||o[2]==="em"?n.style.height=o[1]+o[2]:o[2]==="c"?(ke(n,"proportional-style"),n.setAttribute("data-proportional-height",o[1])):m.warn("TTML Parser: unhandled extent unit:",o[2]))}function Cu(n,e){let r=e.trim().split(" ");if(r.length===0)return;let i=Ge.exec(r[0]);if(i!==null)if(i[2]==="px"||i[2]==="em")n.style.fontSize=i[1]+i[2];else if(i[2]==="c")n.style.position="relative",ke(n,"proportional-style"),n.setAttribute("data-proportional-font-size",i[1]);else if(i[2]==="%"){let o=Number(i[1]);isNaN(o)?m.warn('TTML Parser: could not parse fontSize value "'+i[1]+'" into a number'):(n.style.position="relative",ke(n,"proportional-style"),n.setAttribute("data-proportional-font-size",String(o/100)))}else m.warn("TTML Parser: unhandled fontSize unit:",i[2])}function Mu(n,e){let t=e.trim(),r=t.split(" ");if(t==="auto")return;let i=Ge.exec(r[0]);i!==null&&(i[2]==="px"||i[2]==="%"||i[2]==="em"?n.style.lineHeight=i[1]+i[2]:i[2]==="c"?(ke(n,"proportional-style"),n.setAttribute("data-proportional-line-height",i[1])):m.warn("TTML Parser: unhandled lineHeight unit:",i[2]))}function xu(n,e){let t=e.trim();if(t==="auto")return;let r=t.split(" ");if(r.length!==2)return;let i=Ge.exec(r[0]),o=Ge.exec(r[1]);i!==null&&o!==null&&(i[2]==="px"||i[2]==="%"||i[2]==="em"?n.style.left=i[1]+i[2]:i[2]==="c"?(ke(n,"proportional-style"),n.setAttribute("data-proportional-left",i[1])):m.warn("TTML Parser: unhandled origin unit:",i[2]),o[2]==="px"||o[2]==="%"||o[2]==="em"?n.style.top=o[1]+o[2]:o[2]==="c"?(ke(n,"proportional-style"),n.setAttribute("data-proportional-top",o[1])):m.warn("TTML Parser: unhandled origin unit:",o[2]))}function wu(n,e){let r=e.trim().split(" ");if(r.length<1)return;let i=Ge.exec(r[0]);if(i===null)return;if(i[2]==="px"||i[2]==="%"||i[2]==="em"){let d=i[1]+i[2];r.length===1?n.style.padding=d:r.length===2?(n.style.paddingTop=d,n.style.paddingBottom=d):n.style.paddingTop=d}else i[2]==="c"?(ke(n,"proportional-style"),r.length===1?(n.setAttribute("data-proportional-padding-top",i[1]),n.setAttribute("data-proportional-padding-bottom",i[1]),n.setAttribute("data-proportional-padding-left",i[1]),n.setAttribute("data-proportional-padding-right",i[1])):r.length===2?(n.setAttribute("data-proportional-padding-top",i[1]),n.setAttribute("data-proportional-padding-bottom",i[1])):n.setAttribute("data-proportional-padding-top",i[1])):m.warn("TTML Parser: unhandled padding unit:",i[2]);if(r.length===1)return;let o=Ge.exec(r[1]);if(o===null)return;if(o[2]==="px"||o[2]==="%"||o[2]==="em"){let d=o[1]+o[2];r.length<4&&(n.style.paddingLeft=d),n.style.paddingRight=d}else o[2]==="c"?(ke(n,"proportional-style"),r.length<4&&n.setAttribute("data-proportional-padding-left",o[1]),n.setAttribute("data-proportional-padding-right",o[1])):m.warn("TTML Parser: unhandled padding unit:",o[2]);if(r.length===2)return;let a=Ge.exec(r[2]);if(a===null)return;if(a[2]==="px"||a[2]==="%"||a[2]==="em"){let d=a[1]+a[2];n.style.paddingBottom=d}else a[2]==="c"?(ke(n,"proportional-style"),n.setAttribute("data-proportional-padding-bottom",a[1])):m.warn("TTML Parser: unhandled padding unit:",a[2]);if(r.length===3)return;let s=Ge.exec(r[3]);if(s!==null)if(s[2]==="px"||s[2]==="%"||s[2]==="em"){let d=s[1]+s[2];n.style.paddingLeft=d}else s[2]==="c"?(ke(n,"proportional-style"),n.setAttribute("data-proportional-padding-left",s[1])):m.warn("TTML Parser: unhandled padding unit:",s[2])}function Jn(n,e){let t=e;return w(e)&&e.trim().endsWith("%")&&(t=e.trim().slice(0,-1),t=(parseInt(t,10)/100).toString()+"em"),`-1px -1px ${t} ${n},1px -1px ${t} ${n},-1px 1px ${t} ${n},1px 1px ${t} ${n}`}function tn(n){let e;return e=qf.exec(n),_(e)?(e=jf.exec(n),_(e)?(e=Yf.exec(n),_(e)?(e=$f.exec(n),_(e)?n:"rgba("+String(+e[1])+","+String(+e[2])+","+String(+e[3])+","+String(+e[4]/255)+")"):"rgb("+String(+e[1])+","+String(+e[2])+","+String(+e[3])+")"):"rgba("+String(parseInt(e[1]+e[1],16))+","+String(parseInt(e[2]+e[2],16))+","+String(parseInt(e[3]+e[3],16))+","+String(parseInt(e[4]+e[4],16)/255)+")"):"rgba("+String(parseInt(e[1],16))+","+String(parseInt(e[2],16))+","+String(parseInt(e[3],16))+","+String(parseInt(e[4],16)/255)+")"}var YI=["color","direction","display","fontFamily","fontSize","fontStyle","fontWeight","textDecoration","textOutline","unicodeBidi","visibility","wrapOption"];function $I(n,e,t){let r=e.color;w(r)&&(n.style.color=tn(r));let i=e.backgroundColor;w(i)&&(n.style.backgroundColor=tn(i));let o=e.textOutline;if(w(o)){let I=o.trim().replace(/\s+/g," ").split(" "),y=I.length;if(y===3){let T=tn(I[0]),v=I[1];n.style.textShadow=Jn(T,v)}else if(w(r)&&y===1){let T=I[0];n.style.textShadow=Jn(r,T)}else if(y===2){let T=/^[#A-Z]/i.test(I[0]),v=/^[0-9]/.test(I[0]);if(T!==v){if(T){let E=tn(I[0]),R=I[1];n.style.textShadow=Jn(E,R)}else if(w(r)){let E=I[0];n.style.textShadow=Jn(r,E)}}}}let a=e.textDecoration;if(w(a))switch(a){case"noUnderline":case"noLineThrough":case"noOverline":n.style.textDecoration="none";break;case"lineThrough":n.style.textDecoration="line-through";break;default:n.style.textDecoration=a;break}let s=e.fontFamily;if(w(s))switch(s){case"proportionalSansSerif":n.style.fontFamily="Arial, Helvetica, Liberation Sans, sans-serif";break;case"monospaceSansSerif":case"sansSerif":n.style.fontFamily="sans-serif";break;case"monospaceSerif":case"default":n.style.fontFamily="Courier New, Liberation Mono, monospace";break;case"proportionalSerif":n.style.fontFamily="serif";break;default:n.style.fontFamily=s}let d=e.fontStyle;w(d)&&(n.style.fontStyle=d);let u=e.fontWeight;w(u)&&(n.style.fontWeight=u);let c=e.fontSize;w(c)?Cu(n,c):(ke(n,"proportional-style"),n.setAttribute("data-proportional-font-size","1"));let l=e.direction;w(l)&&(n.style.direction=l);let f=e.unicodeBidi;if(w(f))switch(f){case"bidiOverride":n.style.unicodeBidi="bidi-override";break;case"embed":n.style.unicodeBidi="embed";break;default:n.style.unicodeBidi="normal"}let p=e.visibility;w(p)&&(n.style.visibility=p),e.display==="none"&&(n.style.display="none"),e.wrapOption==="noWrap"?t?n.style.whiteSpace="nowrap":n.style.whiteSpace="pre":t?n.style.whiteSpace="normal":n.style.whiteSpace="pre-wrap"}function QI(n,e){n.style.color="white",n.style.position="absolute";let t=e.extent;w(t)&&Au(n,t);let r=e.writingMode;w(r);let i=e.overflow;n.style.overflow=w(i)?i:"hidden";let o=e.padding;w(o)&&wu(n,o);let a=e.origin;w(a)&&xu(n,a);let s=e.displayAlign;if(w(s))switch(n.style.display="flex",n.style.flexDirection="column",s){case"before":n.style.justifyContent="flex-start";break;case"center":n.style.justifyContent="center";break;case"after":n.style.justifyContent="flex-end";break}let d=e.opacity;w(d)&&(n.style.opacity=d);let u=e.visibility;w(u)&&(n.style.visibility=u),e.display==="none"&&(n.style.display="none")}function XI(n,e){n.style.margin="0px",ke(n,"proportional-style"),n.setAttribute("data-proportional-font-size","1");let t=e.backgroundColor;w(t)&&(n.style.backgroundColor=tn(t));let r=e.lineHeight;w(r)&&Mu(n,r);let i=e.textAlign;if(w(i))switch(i){case"center":n.style.textAlign="center";break;case"left":case"start":n.style.textAlign="left";break;case"right":case"end":n.style.textAlign="right";break}}function ZI(n,e,t){let r=document.createElement("span"),i=n.textContent===null?"":n.textContent;if(t){let a=i.trim();a=a.replace(/\s+/g," "),i=a}let o=document.createTextNode(i);return r.appendChild(o),r.className="rxp-texttrack-span",$I(r,e,t),r}function JI(n,e,t,r,i){function o(a,s,d,u){let c=a.childNodes,l=[];for(let f=0;f<c.length;f++){let p=c[f];if(p.nodeName==="#text"){let{backgroundColor:g}=Pn(["backgroundColor"],d,t,e);w(g)?s.backgroundColor=g:delete s.backgroundColor;let S=ZI(p,s,u);l.push(S)}else if(la(p)){let g=document.createElement("BR");l.push(g)}else if(ca(p)&&p.nodeType===Node.ELEMENT_NODE&&p.childNodes.length>0){let g=p.getAttribute("xml:space"),S=w(g)?g==="default":u,I=Y({},s,Pn(YI,[p],t,e));l.push(...o(p,I,[p,...d],S))}}return l}return o(n,Y({},r),[],i)}function Ou(n,e,t,r,i,{cellResolution:o,shouldTrimWhiteSpace:a}){let s=ua(n),d=document.createElement("DIV");if(d.className="rxp-texttrack-region",d.setAttribute("data-resolution-columns",String(o.columns)),d.setAttribute("data-resolution-rows",String(o.rows)),QI(d,i),e!==null){let{bodyBackgroundColor:l}=Pn(["backgroundColor"],[...s,e],r,t);w(l)&&(d.style.backgroundColor=tn(l))}let u=document.createElement("p");u.className="rxp-texttrack-p",XI(u,i);let c=JI(n,t,r,i,a);for(let l=0;l<c.length;l++)u.appendChild(c[l]);return d.appendChild(u),d}function Du(n){let{paragraph:e,ttParams:t,body:r,regionStyles:i,idStyles:o,paragraphStyle:a,timeOffset:s,shouldTrimWhiteSpace:d}=n;if(!e.hasAttribute("begin")&&!e.hasAttribute("end")&&/^\s*$/.test(e.textContent===null?"":e.textContent))return null;let{cellResolution:u}=t,{start:c,end:l}=qi(e,t),f=Ou(e,r,i,o,a,{cellResolution:u,shouldTrimWhiteSpace:d});return{start:c+s,end:l+s,element:f}}function Lu(n,e){let t=Gi(n,e),r=[];for(let i=0;i<t.length;i++){let{paragraphStyle:o}=t[i];Wf(o)&&Gf(o);let a=Du(t[i]);a!==null&&r.push(a)}return r}var Qf=Lu;function Nu(n){n.htmlTextTracksParsers.ttml=Qf,n.htmlTextDisplayer=en}function ma(n){let e=0;for(;e<n.length;){if(n[e]==="")return e+1;e++}return e}function Uu(n,e){return typeof n[e]=="string"&&/^STYLE( .*)?$/g.test(n[e])&&(n[e+1]===void 0||n[e+1].indexOf("-->")<0)}function ey(n,e){return typeof n[e]=="string"&&/^NOTE( .*)?$/g.test(n[e])&&(n[e+1]===void 0||n[e+1].indexOf("-->")<0)}function ty(n,e){return typeof n[e]=="string"&&/^REGION( .*)?$/g.test(n[e])&&(n[e+1]===void 0||n[e+1].indexOf("-->")<0)}function Xf(n,e){let t=n[e];if(t===void 0||t===""||Uu(n,e)||ty(n,e)||ey(n,e))return!1;if(t.indexOf("-->")>=0)return!0;let r=n[e+1];return r!==void 0&&r.indexOf("-->")>=0}function Zf(n,e){let t=e+1;for(;w(n[t]);)t++;return t}function ji(n,e){let t=[];for(let r=e;r<n.length;r++)if(Xf(n,r)){let i=Zf(n,r);t.push(n.slice(r,i)),r=i}else if(w(n[r]))for(;w(n[r]);)r++;return t}function Bu(n,e){let t=[];for(let r=e;r<n.length;r++)if(Uu(n,r)){let i=r;for(r++;w(n[r]);)r++;let o=n.slice(i,r);t.push(o)}else if(w(n[r]))for(;w(n[r]);)r++;return t}function pa(n){let e=n.split(":").reverse();if(w(e[2])||w(e[1])){let t=w(e[2])?parseInt(e[2],10):0,r=parseInt(e[1],10),i=parseFloat(e[0].replace(",","."));return isNaN(t)||isNaN(r)||isNaN(i)?void 0:t*60*60+r*60+i}}function ny(n){return n.split(/ |\t/).reduce((t,r)=>{let i=r.split(":");return i.length===2&&(t[i[0]]=i[1]),t},{})}function ry(n){let t=/^([\d:.]+)[ |\t]+-->[ |\t]+([\d:.]+)[ |\t]*(.*)$/.exec(n);if(t===null)return null;let r=pa(t[1]),i=pa(t[2]);if(r===void 0||i===void 0)return null;let o=ny(t[3]);return{start:r,end:i,settings:o}}function Yi(n,e){let t=/-->/,r,i,o;if(t.test(n[0]))r=n[0],i=n.slice(1,n.length);else{if(!t.test(n[1]))return null;o=n[0],r=n[1],i=n.slice(2,n.length)}let a=ry(r);if(a===null)return null;let{start:s,end:d,settings:u}=a;return{start:s+e,end:d+e,settings:u,payload:i,header:o}}var Fu={white:"#ffffff",lime:"#00ff00",cyan:"#00ffff",red:"#ff0000",yellow:"#ffff00",magenta:"#ff00ff",blue:"#0000ff",black:"#000000"};function Ku(){return Object.keys(Fu).reduce((n,e)=>(n[e]=`color: ${Fu[e]};`,n[`bg_${e}`]=`background-color: ${Fu[e]};`,n),{})}function Vu(n){let e=Ku(),t="";return n.forEach(r=>{if(r.length>=2)for(let i=1;i<r.length;i++){let o=r[i];if(Array.isArray(/::cue {/.exec(o)))for(o=r[++i];w(o)&&!(Array.isArray(/}/.exec(o))||o.length===0);)t+=o,o=r[++i];else{let a=[],s=/::cue\(\.?(.*?)\)(?:,| {)/.exec(o);for(;w(o)&&Array.isArray(s);)a.push(s[1]),o=r[++i],s=/::cue\(\.?(.*?)\)(?:,| {)/.exec(o);let d="";for(;w(o)&&!(Array.isArray(/}/.exec(o))||o.length===0);)d+=o,o=r[++i];a.forEach(u=>{e[u]===void 0?e[u]=d:e[u]+=d})}}}),{classes:e,global:t}}function $i(n,e){let t=["u","i","b"],r=["u","i","b","c","#text"],i=n.nodeName.toLowerCase().split(".")[0],o;if($(r,i))if(i==="#text"){let a=n.wholeText.split(`
@@ -14,4 +14,4 @@ Trying to unlock by seeking to the next Period`),this._playbackObserver.setCurre
14
14
  `+qy(t.buffered,t.position.getPolled()),`
15
15
  ${e}`),this._observationRef.setValue(t)}};function Om(n,e){if(n===null)return 0;let t=e?"LOW_LATENCY":"DEFAULT",{RESUME_GAP_AFTER_SEEKING:r,RESUME_GAP_AFTER_NOT_ENOUGH_DATA:i,RESUME_GAP_AFTER_BUFFERING:o}=B.getCurrent();switch(n.reason){case"seeking":return r[t];case"not-ready":return i[t];case"buffering":return o[t]}}function Hy(n,e,t,r,i){let{REBUFFERING_GAP:o}=B.getCurrent(),a=i?"LOW_LATENCY":"DEFAULT";return e===void 0?t&&Math.abs(r-n)<=o[a]:e!==null&&r-e.end<=o[a]}function Dm(n){let{buffered:e,currentTime:t,duration:r,ended:i,paused:o,playbackRate:a,readyState:s,seeking:d}=n;return{buffered:e,position:t,duration:r,ended:i,paused:o,playbackRate:a,readyState:s,seeking:d}}function Wy({previousObservation:n,currentObservation:e,basePosition:t,observationEvent:r,withMediaSource:i,lowLatencyMode:o,bufferGap:a,currentRange:s}){let{REBUFFERING_GAP:d}=B.getCurrent(),{position:u,duration:c,paused:l,readyState:f,ended:p}=e,{rebuffering:g,event:S,position:I}=n,y=Hy(t,s,p,c,o),T=f>=1&&r!=="loadedmetadata"&&g===null&&!(y||p),v=null,E,R,k=o?d.LOW_LATENCY:d.DEFAULT;if(i){if(T)a===1/0?(E=!0,v=t):a===void 0?f<3&&(E=!0,v=void 0):a<=k&&(E=!0,v=t+a);else if(g!==null){let A=Om(g,o);E!==!0&&g!==null&&f>1&&(y||p||a!==void 0&&isFinite(a)&&a>A)||a===void 0&&f>=3?R=!0:a===void 0?v=void 0:a===1/0?v=t:a<=A&&(v=t+a)}}else T&&(!l&&r==="timeupdate"&&S==="timeupdate"&&u===I.getPolled()||r==="seeking"&&(a===1/0||a===void 0&&f<3))?E=!0:g!==null&&(r!=="seeking"&&u!==I.getPolled()||r==="canplay"||a===void 0&&f>=3||a!==void 0&&a<1/0&&(a>Om(g,o)||y||p))&&(R=!0);if(R===!0)return null;if(E===!0||g!==null){let A;return r==="seeking"||g!==null&&g.reason==="seeking"||e.seeking?A="seeking":f===1?A="not-ready":A="buffering",g!==null&&g.reason===A?{reason:g.reason,timestamp:g.timestamp,position:v}:{reason:A,timestamp:V(),position:v}}return null}function Gy(n,e,t,r){let{MINIMUM_BUFFER_AMOUNT_BEFORE_FREEZING:i}=B.getCurrent();return n.freezing?e.ended||e.paused||e.readyState===0||e.playbackRate===0||n.position.getPolled()!==e.position?null:n.freezing:t==="timeupdate"&&r!==void 0&&r>i&&!e.ended&&!e.paused&&e.readyState>=1&&e.playbackRate!==0&&e.position===n.position.getPolled()?{timestamp:V()}:null}function qy(n,e){let t="",r="";for(let i=0;i<n.length;i++){let o=n.start(i),a=n.end(i),s=o.toFixed(2),d=a.toFixed(2),u=(a-o).toFixed(2),c=`${s}|==${u}==|${d}`;if(t+=c,r.length===0&&a>e){let l=t.length-Math.floor(c.length/2);r=" ".repeat(l)+`^${e}`}if(i<n.length-1){let l=n.start(i+1),p=` ~${(l-a).toFixed(2)}~ `;if(t+=p,r.length===0&&e<l){let g=t.length-Math.floor(p.length/2);r=" ".repeat(g)+`^${e}`}}}return r.length===0&&(r=" ".repeat(t.length)+`^${e}`),t+`
16
16
  `+r}function jy(n){let e=Dm(n);return Y(e,{rebuffering:null,event:"init",seeking:0,position:new qn(e.position,null),freezing:null,bufferGap:0,currentRange:null})}var io=class extends ie{constructor(e){super(),this._canceller=new F,this._adaptationRef=e,this._updateToken=!1,this.refresh=Q}start(e){if(this._updateToken=!0,e===null){this._lastEmitted=null,this._updateToken=!1,this._adaptationRef.setValue(null);return}let t=this._constructLockedRepresentationsReference(e);this._updateToken&&(this._lastEmitted={adaptation:e.adaptation,switchingMode:e.switchingMode,lockedRepresentations:null},this._updateToken=!1,this._adaptationRef.setValue({adaptationId:e.adaptation.id,switchingMode:e.switchingMode,representations:t,relativeResumingPosition:void 0}))}updateTrack(e){if(this._updateToken=!0,e===null){if(this._lastEmitted===null)return;this._updateToken=!1,this._canceller.cancel(),this._canceller=new F,this._lastEmitted=null,this._adaptationRef.setValue(null);return}let{adaptation:t,switchingMode:r,relativeResumingPosition:i}=e;this._canceller.cancel(),this._canceller=new F;let o=this._constructLockedRepresentationsReference(e);this._updateToken&&(this._lastEmitted={adaptation:t,switchingMode:r,lockedRepresentations:null},this._updateToken=!1,this._adaptationRef.setValue({adaptationId:t.id,switchingMode:r,representations:o,relativeResumingPosition:i}))}_constructLockedRepresentationsReference(e){let t=new W({representationIds:[],switchingMode:"lazy"}),r=this;return this.refresh=i,this._canceller.signal.register(o),e.lockedRepresentations.onUpdate(i,{clearSignal:this._canceller.signal,emitCurrentValue:!1}),i(),t;function i(){let a=e.lockedRepresentations.getValue(),s,d;if(a===null)d=e.adaptation.representations.filter(l=>l.isSupported===!0&&l.decipherable!==!1),s="lazy";else{let{representationIds:l}=a;if(s=a.switchingMode,d=e.adaptation.representations.filter(p=>$(l,p.id)).filter(p=>p.isSupported===!0&&p.decipherable!==!1),d.length===0){r.trigger("noPlayableLockedRepresentation",null);return}}if(d.length<=0){e.adaptation.isSupported=!1,r.trigger("noPlayableRepresentation",null);return}let u=t.getValue(),c=d.map(l=>l.id).slice().sort();if(c.length!==u.representationIds.length){t.setValue({representationIds:c,switchingMode:s});return}for(let l=0;l<c.length;l++)if(u.representationIds[l]!==c[l]){t.setValue({representationIds:c,switchingMode:s});return}}function o(){r.refresh=Q}}dispose(){this.removeEventListener(),this._canceller.cancel(),this._adaptationRef.finish()}};var oo=class extends ie{constructor(e){var t;super(),this._storedPeriodInfo=[],this._isDisposed=!1,this._cachedPeriodInfo=new WeakMap,this._isTrickModeTrackEnabled=e.preferTrickModeTracks,this._defaultAudioTrackSwitchingMode=(t=e.defaultAudioTrackSwitchingMode)!=null?t:B.getCurrent().DEFAULT_AUDIO_TRACK_SWITCHING_MODE}getAvailablePeriods(){return this._storedPeriodInfo.reduce((e,t)=>(t.isPeriodAdvertised&&e.push(Lt(t.period)),e),[])}onManifestUpdate(e){var a,s,d,u,c,l;let{DEFAULT_VIDEO_TRACK_SWITCHING_MODE:t}=B.getCurrent(),{periods:r}=e;if(h.CURRENT_ENV===h.DEV)for(let f=1;f<r.length;f++)J(r[f-1].start<=r[f].start);let i=[],o=0;for(let f=0;f<this._storedPeriodInfo.length;f++){let p=this._storedPeriodInfo[f].period,g=r[o];if(g===void 0)for(let S=this._storedPeriodInfo.length-1;S>=f;S--)this._storedPeriodInfo[S].inManifest=!1,bl(this._storedPeriodInfo[S])&&this._removePeriodObject(S);else if(p===g){o++;let S=this._storedPeriodInfo[f].text.storedSettings;if(S!==null&&!lt(g,"text").some(E=>E.id===S.adaptation.id)){m.warn("TS: Chosen text Adaptation not available anymore");let E=this._storedPeriodInfo[f];if(E.text.storedSettings=null,this.trigger("trackUpdate",{period:Lt(g),trackType:"text",reason:"missing"}),this._isDisposed)return;let R=dt(this._storedPeriodInfo,E.period.id);R!==void 0&&R.text.storedSettings===null&&((a=R.text.dispatcher)==null||a.updateTrack(null))}let I=this._storedPeriodInfo[f].video.storedSettings;if(I!==null){let T=lt(g,"video");if(!T.some(E=>E.id===I.adaptation.id)){m.warn("TS: Chosen video Adaptation not available anymore");let E=this._storedPeriodInfo[f],R;if(T.length===0)R=null;else{let A=T[0],C=Ra(A,this._isTrickModeTrackEnabled),x=new W(null);R={adaptationBase:A,adaptation:C,switchingMode:t,lockedRepresentations:x}}if(E.video.storedSettings=R,this.trigger("trackUpdate",{period:Lt(g),trackType:"video",reason:"missing"}),this._isDisposed)return;let k=dt(this._storedPeriodInfo,E.period.id);k!==void 0&&k.video.storedSettings===R&&((s=k.video.dispatcher)==null||s.updateTrack(R))}}let y=this._storedPeriodInfo[f].audio.storedSettings;if(y!==null){let T=lt(g,"audio");if(!T.some(E=>E.id===y.adaptation.id)){m.warn("TS: Chosen audio Adaptation not available anymore");let E=this._storedPeriodInfo[f],R=T.length===0?null:{adaptation:T[0],switchingMode:this._defaultAudioTrackSwitchingMode,lockedRepresentations:new W(null)};if(E.audio.storedSettings=R,this.trigger("trackUpdate",{period:Lt(g),trackType:"audio",reason:"missing"}),this._isDisposed)return;let k=dt(this._storedPeriodInfo,E.period.id);k!==void 0&&k.audio.storedSettings===R&&((d=k.audio.dispatcher)==null||d.updateTrack(R))}}}else if(p.start<=g.start)this._storedPeriodInfo[f].inManifest=!1,bl(this._storedPeriodInfo[f])&&(this._removePeriodObject(f),f--);else{let S=Tl(g,!0,this._isTrickModeTrackEnabled,this._defaultAudioTrackSwitchingMode);this._storedPeriodInfo.splice(f,0,S),i.push(S),o++}}if(o<r.length){let f=r.slice(o).map(p=>Tl(p,!0,this._isTrickModeTrackEnabled,this._defaultAudioTrackSwitchingMode));this._storedPeriodInfo.push(...f),i.push(...f)}for(let f of this._storedPeriodInfo)(u=f.audio.dispatcher)==null||u.refresh(),(c=f.video.dispatcher)==null||c.refresh(),(l=f.text.dispatcher)==null||l.refresh()}onDecipherabilityUpdates(){var e,t,r;for(let i of this._storedPeriodInfo)(e=i.audio.dispatcher)==null||e.refresh(),(t=i.video.dispatcher)==null||t.refresh(),(r=i.text.dispatcher)==null||r.refresh()}addTrackReference(e,t,r){let i=dt(this._storedPeriodInfo,t.id);if(i===void 0){i=Tl(t,!1,this._isTrickModeTrackEnabled,this._defaultAudioTrackSwitchingMode);let s=!1;for(let d=0;d<this._storedPeriodInfo.length;d++)this._storedPeriodInfo[d].period.start>t.start&&(this._storedPeriodInfo.splice(d,0,i),s=!0);s||this._storedPeriodInfo.push(i)}if(!i.isPeriodAdvertised&&(i.isPeriodAdvertised=!0,this.trigger("newAvailablePeriods",[{id:t.id,start:t.start,end:t.end}]),this._isDisposed))return;if(i[e].dispatcher!==null){m.error(`TS: Subject already added for ${e} and Period ${t.start}`);return}let o=i[e].storedSettings,a=new io(r);i[e].dispatcher=a,a.addEventListener("noPlayableRepresentation",()=>{var l,f,p,g;let s=X((l=t.adaptations[e])!=null?l:[],S=>S.isSupported===!1?!1:S.representations.filter(y=>y.isSupported===!0&&y.decipherable!==!1).length>0);if(s===void 0){let S=new Z("NO_PLAYABLE_REPRESENTATION",`No ${e} Representation can be played`,{tracks:void 0});this.trigger("error",S),this.dispose();return}let d=(f=dt(this._storedPeriodInfo,t.id))==null?void 0:f[e];if(_(d))return;let u=e==="audio"?this._defaultAudioTrackSwitchingMode:"reload",c={adaptation:s,switchingMode:u,lockedRepresentations:new W(null)};d.storedSettings=c,this.trigger("trackUpdate",{period:Lt(t),trackType:e,reason:"no-playable-representation"}),!this._isDisposed&&(d=(p=dt(this._storedPeriodInfo,t.id))==null?void 0:p[e],!(_(d)||d.storedSettings!==c)&&((g=d.dispatcher)==null||g.updateTrack(c)))}),a.addEventListener("noPlayableLockedRepresentation",()=>{o==null||o.lockedRepresentations.setValue(null),this.trigger("brokenRepresentationsLock",{period:{id:t.id,start:t.start,end:t.end},trackType:e})}),a.start(o)}removeTrackReference(e,t){let r=Yy(this._storedPeriodInfo,t);if(r===void 0){m.warn(`TS: ${e} not found for period`,t.start);return}let i=this._storedPeriodInfo[r],o=i[e];if((o==null?void 0:o.dispatcher)===null){m.warn(`TS: TrackDispatcher already removed for ${e} and Period ${t.start}`);return}o.dispatcher.dispose(),o.dispatcher=null,bl(i)&&this._removePeriodObject(r)}getPeriodObjectFromPeriod(e){let t=dt(this._storedPeriodInfo,e.id);return t===void 0&&e!==void 0?this._cachedPeriodInfo.get(e):t}getPeriodObjectFromId(e){return dt(this._storedPeriodInfo,e)}disableVideoTrickModeTracks(){this._isTrickModeTrackEnabled&&(this._isTrickModeTrackEnabled=!1,this._resetVideoTrackChoices("trickmode-disabled"))}enableVideoTrickModeTracks(){this._isTrickModeTrackEnabled||(this._isTrickModeTrackEnabled=!0,this._resetVideoTrackChoices("trickmode-enabled"))}resetPeriodObjects(){var e,t,r;for(let i=this._storedPeriodInfo.length-1;i>=0;i--){let o=this._storedPeriodInfo[i];(e=o.audio.dispatcher)==null||e.dispose(),o.audio.dispatcher=null,(t=o.video.dispatcher)==null||t.dispose(),o.video.dispatcher=null,(r=o.text.dispatcher)==null||r.dispose(),o.text.dispatcher=null,o.inManifest||this._removePeriodObject(i)}}isTrickModeEnabled(){return this._isTrickModeTrackEnabled}setAudioTrack(e){let{periodRef:t,trackId:r,switchingMode:i,lockedRepresentations:o,relativeResumingPosition:a}=e;return this._setAudioOrTextTrack({bufferType:"audio",periodRef:t,trackId:r,switchingMode:i!=null?i:this._defaultAudioTrackSwitchingMode,lockedRepresentations:o,relativeResumingPosition:a})}setTextTrack(e,t){return this._setAudioOrTextTrack({bufferType:"text",periodRef:e,trackId:t,switchingMode:"direct",lockedRepresentations:null,relativeResumingPosition:void 0})}_setAudioOrTextTrack({bufferType:e,periodRef:t,trackId:r,switchingMode:i,lockedRepresentations:o,relativeResumingPosition:a}){var p,g;let s=t.period,d=X((p=s.adaptations[e])!=null?p:[],({id:S,isSupported:I})=>I===!0&&S===r);if(d===void 0)throw new Error(`Wanted ${e} track not found.`);let u=t[e],c;if(o===null)c=new W(null);else{let S=this._getRepresentationsToLock(d,o),I=e==="audio"?this._defaultAudioTrackSwitchingMode:"direct";c=new W({representationIds:S,switchingMode:I})}let l={adaptation:d,switchingMode:i,lockedRepresentations:c,relativeResumingPosition:a};if(u.storedSettings=l,this.trigger("trackUpdate",{period:Lt(s),trackType:e,reason:"manual"}),this._isDisposed)return;let f=dt(this._storedPeriodInfo,s.id);f!==void 0&&f[e].storedSettings===l&&((g=f[e].dispatcher)==null||g.updateTrack(l))}setVideoTrack(e){var S,I;let{periodRef:t,trackId:r,switchingMode:i,lockedRepresentations:o,relativeResumingPosition:a}=e,s=t.period,d=X((S=s.adaptations.video)!=null?S:[],({id:y,isSupported:T})=>T===!0&&y===r);if(d===void 0)throw new Error("Wanted video track not found.");let{DEFAULT_VIDEO_TRACK_SWITCHING_MODE:u}=B.getCurrent(),c=t.video,l=Ra(d,this._isTrickModeTrackEnabled),f;if(o===null)f=new W(null);else{let y=this._getRepresentationsToLock(d,o),T=u;f=new W({representationIds:y,switchingMode:T})}let p={adaptationBase:d,switchingMode:i!=null?i:u,adaptation:l,relativeResumingPosition:a,lockedRepresentations:f};if(c.storedSettings=p,this.trigger("trackUpdate",{period:Lt(s),trackType:"video",reason:"manual"}),this._isDisposed)return;let g=dt(this._storedPeriodInfo,s.id);g!==void 0&&g.video.storedSettings===p&&((I=g.video.dispatcher)==null||I.updateTrack(p))}disableTrack(e,t){var o,a;let r=e[t];if(r.storedSettings===null||(t!=="text"&&((o=e[t].storedSettings)==null||o.lockedRepresentations.finish()),r.storedSettings=null,this.trigger("trackUpdate",{period:Lt(e.period),trackType:t,reason:"manual"}),this._isDisposed))return;let i=dt(this._storedPeriodInfo,e.period.id);i!==void 0&&i[t].storedSettings===null&&((a=i[t].dispatcher)==null||a.updateTrack(null))}getChosenAudioTrack(e){return e.audio.storedSettings===null?null:Io(e.audio.storedSettings.adaptation,!0)}getChosenTextTrack(e){return e.text.storedSettings===null?null:yo(e.text.storedSettings.adaptation)}getChosenVideoTrack(e){return e.video.storedSettings===null?null:So(e.video.storedSettings.adaptation,!0)}getAvailableAudioTracks(e){let t=e.audio.storedSettings,r=t!==null?t.adaptation.id:null;return lt(e.period,"audio").map(o=>{let a=r===null?!1:r===o.id;return Y(Io(o,!0),{active:a})})}getAvailableTextTracks(e){let t=e.text.storedSettings,r=t!==null?t.adaptation.id:null;return lt(e.period,"text").map(o=>{let a=r===null?!1:r===o.id;return Y(yo(o),{active:a})})}getAvailableVideoTracks(e){let t=e.video.storedSettings,r=t===null?void 0:t.adaptation.id;return lt(e.period,"video").map(o=>{let a=r===null?!1:r===o.id,s=So(o,!0),d=s.trickModeTracks!==void 0?s.trickModeTracks.map(c=>{let l=r===null?!1:r===c.id;return Y(c,{active:l})}):[],u=Y(s,{active:a});return d!==void 0&&(u.trickModeTracks=d),u})}getLockedAudioRepresentations(e){let{storedSettings:t}=e.audio;if(t===null)return null;let r=t.lockedRepresentations.getValue();return r===null?null:r.representationIds}getLockedVideoRepresentations(e){let{storedSettings:t}=e.video;if(t===null)return null;let r=t.lockedRepresentations.getValue();return r===null?null:r.representationIds}lockAudioRepresentations(e,t){var s;let{storedSettings:r}=e.audio;if(r===null)return;let{DEFAULT_AUDIO_REPRESENTATIONS_SWITCHING_MODE:i}=B.getCurrent(),o=this._getRepresentationsToLock(r.adaptation,t.representations),a=(s=t.switchingMode)!=null?s:i;r.lockedRepresentations.setValue({representationIds:o,switchingMode:a})}lockVideoRepresentations(e,t){var s;let{storedSettings:r}=e.video;if(r===null)return;let{DEFAULT_VIDEO_REPRESENTATIONS_SWITCHING_MODE:i}=B.getCurrent(),o=this._getRepresentationsToLock(r.adaptation,t.representations),a=(s=t.switchingMode)!=null?s:i;r.lockedRepresentations.setValue({representationIds:o,switchingMode:a})}unlockAudioRepresentations(e){let{storedSettings:t}=e.audio;t===null||t.lockedRepresentations.getValue()===null||t.lockedRepresentations.setValue(null)}unlockVideoRepresentations(e){let{storedSettings:t}=e.video;t===null||t.lockedRepresentations.getValue()===null||t.lockedRepresentations.setValue(null)}dispose(){for(this._isDisposed=!0;;){let e=this._storedPeriodInfo.pop();if(e===void 0)return;e.isRemoved=!0}}_resetVideoTrackChoices(e){var r;for(let i=0;i<this._storedPeriodInfo.length;i++){let o=this._storedPeriodInfo[i];if(o.video.storedSettings!==null){let a=o.video.storedSettings.adaptationBase;if(a!==null){let s=Ra(a,this._isTrickModeTrackEnabled);o.video.storedSettings.adaptationBase=a,o.video.storedSettings.adaptation=s}}}let t=this._storedPeriodInfo.slice();for(let i=0;i<t.length;i++){let o=t[i].period,s=t[i].video.storedSettings;if(this.trigger("trackUpdate",{period:Lt(o),trackType:"video",reason:e}),this._isDisposed)return;let d=dt(this._storedPeriodInfo,o.id);d!==void 0&&d.video.storedSettings===s&&((r=d.video.dispatcher)==null||r.updateTrack(s))}}_removePeriodObject(e){h.CURRENT_ENV===h.DEV&&J(e<this._storedPeriodInfo.length,"Invalid index for Period removal");let t=this._storedPeriodInfo[e];this._storedPeriodInfo[e].isRemoved=!0,this._storedPeriodInfo.splice(e,1),this._cachedPeriodInfo.set(t.period,t)}_getRepresentationsToLock(e,t){let r=t.reduce((i,o)=>{let a=X(e.representations,s=>s.id===o);return a===void 0?m.warn("API: Wanted locked Representation not found."):i.push(a.id),i},[]);if(r.length===0)throw new Error("Cannot lock Representations: None of the given Representation id are found");return r}};function Yy(n,e){for(let t=0;t<n.length;t++)if(n[t].period.id===e.id)return t}function dt(n,e){for(let t=0;t<n.length;t++){let r=n[t];if(r.period.id===e)return r}}function bl(n){var e,t,r;return!n.inManifest&&((e=n.text)==null?void 0:e.dispatcher)===null&&((t=n.audio)==null?void 0:t.dispatcher)===null&&((r=n.video)==null?void 0:r.dispatcher)===null}function Ra(n,e){var t;return e&&((t=n.trickModeTracks)==null?void 0:t[0])!==void 0?n.trickModeTracks[0]:n}function Tl(n,e,t,r){var p,g;let i=lt(n,"audio")[0],o=lt(n,"video")[0],a=Ra(o,t),{DEFAULT_VIDEO_TRACK_SWITCHING_MODE:s}=B.getCurrent(),d=i!==void 0?{adaptation:i,switchingMode:r,lockedRepresentations:new W(null)}:null,u=a!==void 0?{adaptation:a,adaptationBase:o,switchingMode:s,lockedRepresentations:new W(null)}:null,c=null,l=((p=n.adaptations.text)!=null?p:[]).filter(S=>S.isForcedSubtitles===!0);if(l.length>0){if(i!=null){let S=X(l,I=>I.normalizedLanguage===i.normalizedLanguage);S!==void 0&&(c=S)}c===null&&(c=(g=X(l,S=>S.normalizedLanguage===void 0))!=null?g:null)}let f=null;return c!==null&&(f={adaptation:c,switchingMode:"direct",lockedRepresentations:new W(null)}),{period:n,inManifest:e,isPeriodAdvertised:!1,isRemoved:!1,audio:{storedSettings:d,dispatcher:null},video:{storedSettings:u,dispatcher:null},text:{storedSettings:f,dispatcher:null}}}function Lt(n){return{start:n.start,end:n.end,id:n.id}}var Lm=oo;function Nm(n){let e,t,r,i,o,a,{DEFAULT_BASE_BANDWIDTH:s,DEFAULT_VIDEO_RESOLUTION_LIMIT:d,DEFAULT_MAX_BUFFER_AHEAD:u,DEFAULT_MAX_BUFFER_BEHIND:c,DEFAULT_MAX_VIDEO_BUFFER_SIZE:l,DEFAULT_THROTTLE_VIDEO_BITRATE_WHEN_HIDDEN:f,DEFAULT_WANTED_BUFFER_AHEAD:p}=B.getCurrent();if(_(n.maxBufferAhead))e=u;else if(e=Number(n.maxBufferAhead),isNaN(e))throw new Error("Invalid maxBufferAhead parameter. Should be a number.");if(_(n.maxBufferBehind))t=c;else if(t=Number(n.maxBufferBehind),isNaN(t))throw new Error("Invalid maxBufferBehind parameter. Should be a number.");if(_(n.wantedBufferAhead))r=p;else if(r=Number(n.wantedBufferAhead),isNaN(r))throw new Error("Invalid wantedBufferAhead parameter. Should be a number.");if(_(n.maxVideoBufferSize))i=l;else if(i=Number(n.maxVideoBufferSize),isNaN(i))throw new Error("Invalid maxVideoBufferSize parameter. Should be a number.");let g=_(n.videoResolutionLimit)?d:n.videoResolutionLimit,S=_(n.throttleVideoBitrateWhenHidden)?f:!!n.throttleVideoBitrateWhenHidden;if(_(n.videoElement))o=document.createElement("video");else if(n.videoElement instanceof HTMLMediaElement)o=n.videoElement;else throw new Error("Invalid videoElement parameter. Should be a HTMLMediaElement.");if(_(n.baseBandwidth))a=s;else if(a=Number(n.baseBandwidth),isNaN(a))throw new Error("Invalid baseBandwidth parameter. Should be a number.");return{maxBufferAhead:e,maxBufferBehind:t,videoResolutionLimit:g,videoElement:o,wantedBufferAhead:r,maxVideoBufferSize:i,throttleVideoBitrateWhenHidden:S,baseBandwidth:a}}function Um(n){var e,t,r,i;if(n===null||typeof n!="object"&&n!==void 0)throw new Error("API: reload - Invalid options format.");if((n==null?void 0:n.reloadAt)===null||typeof(n==null?void 0:n.reloadAt)!="object"&&(n==null?void 0:n.reloadAt)!==void 0)throw new Error("API: reload - Invalid 'reloadAt' option format.");if(typeof((e=n==null?void 0:n.reloadAt)==null?void 0:e.position)!="number"&&((t=n==null?void 0:n.reloadAt)==null?void 0:t.position)!==void 0)throw new Error("API: reload - Invalid 'reloadAt.position' option format.");if(typeof((r=n==null?void 0:n.reloadAt)==null?void 0:r.relative)!="number"&&((i=n==null?void 0:n.reloadAt)==null?void 0:i.relative)!==void 0)throw new Error("API: reload - Invalid 'reloadAt.relative' option format.");if(!Array.isArray(n==null?void 0:n.keySystems)&&(n==null?void 0:n.keySystems)!==void 0)throw new Error("API: reload - Invalid 'keySystems' option format.");if((n==null?void 0:n.autoPlay)!==void 0&&typeof n.autoPlay!="boolean")throw new Error("API: reload - Invalid 'autoPlay' option format.")}function Bm(n){var E,R,k;let e,t,r,i,o,a,s,{DEFAULT_AUTO_PLAY:d,DEFAULT_CODEC_SWITCHING_BEHAVIOR:u,DEFAULT_ENABLE_FAST_SWITCHING:c,DEFAULT_TEXT_TRACK_MODE:l}=B.getCurrent();if(_(n))throw new Error("No option set on loadVideo");if(!_(n.url))e=String(n.url);else if(_(n.initialManifest)&&_(n.manifestLoader))throw new Error("Unable to load a content: no url set on loadVideo.\nPlease provide at least either an `url` argument, a `initialManifest` option or a `manifestLoader` option so the RxPlayer can load the content.");if(_(n.transport))throw new Error("No transport set on loadVideo");t=String(n.transport);let f=_(n.autoPlay)?d:!!n.autoPlay;if(_(n.keySystems))r=[];else{r=Array.isArray(n.keySystems)?n.keySystems:[n.keySystems];for(let A of r)if(typeof A.type!="string"||typeof A.getLicense!="function")throw new Error("Invalid key system given: Missing type string or getLicense callback")}let p=n.lowLatencyMode===void 0?!1:!!n.lowLatencyMode,g=n.initialManifest,S=(E=n.minimumManifestUpdateInterval)!=null?E:0,I=(R=n.defaultAudioTrackSwitchingMode)!=null?R:void 0;I!==void 0&&!$(["seamless","direct","reload"],I)&&(m.warn("The `defaultAudioTrackSwitchingMode` loadVideo option must match one of the following strategy name:\n- `seamless`\n- `direct`\n- `reload`"),I=void 0);let y=_(n.onCodecSwitch)?u:n.onCodecSwitch;if($(["continue","reload"],y)||(m.warn("The `onCodecSwitch` loadVideo option must match one of the following string:\n- `continue`\n- `reload`\nIf badly set, "+u+" will be used as default"),y=u),_(n.textTrackMode))i=l;else{if(n.textTrackMode!=="native"&&n.textTrackMode!=="html")throw new Error("Invalid textTrackMode.");i=n.textTrackMode}if(i==="html"){if(_(n.textTrackElement))throw new Error('You have to provide a textTrackElement in "html" textTrackMode.');if(n.textTrackElement instanceof HTMLElement)a=n.textTrackElement;else throw new Error("textTrackElement should be an HTMLElement.")}else _(n.textTrackElement)||m.warn('API: You have set a textTrackElement without being in an "html" textTrackMode. It will be ignored.');if(_(n.mode))o="auto";else{if(!$(["auto","multithread","main"],n.mode))throw new Error("Invalid `mode` option.");o=n.mode}let T=_(n.enableFastSwitching)?c:n.enableFastSwitching;if(!_(n.startAt))if("wallClockTime"in n.startAt&&n.startAt.wallClockTime instanceof Date){let A=n.startAt.wallClockTime.getTime()/1e3;s=Y({},n.startAt,{wallClockTime:A})}else s=n.startAt;let v=(k=n.requestConfig)!=null?k:{};return{__priv_patchLastSegmentInSidx:n.__priv_patchLastSegmentInSidx,__priv_manifestUpdateUrl:n.__priv_manifestUpdateUrl,checkMediaSegmentIntegrity:n.checkMediaSegmentIntegrity,autoPlay:f,defaultAudioTrackSwitchingMode:I,enableFastSwitching:T,initialManifest:g,keySystems:r,lowLatencyMode:p,manifestLoader:n.manifestLoader,minimumManifestUpdateInterval:S,requestConfig:v,onCodecSwitch:y,referenceDateTime:n.referenceDateTime,representationFilter:n.representationFilter,segmentLoader:n.segmentLoader,serverSyncInfos:n.serverSyncInfos,startAt:s,textTrackElement:a,textTrackMode:i,transport:t,mode:o,url:e}}function Fm(n,e,t,r,i){if(i.isCancelled()||n===null)return;let o=e.getReference().getValue().seeking===2;o&&(t(),i.isCancelled())||e.listen(a=>{a.event==="seeking"?(o=!0,t()):o&&a.event==="seeked"&&(o=!1,r())},{includeLastObservation:!0,clearSignal:i})}function Km(n,e,t,r){r.isCancelled()||n===null||(n.addEventListener("play",e),n.addEventListener("pause",t),r.register(()=>{n.removeEventListener("play",e),n.removeEventListener("pause",t)}))}function Vm(n,e,t,r){let i=new W("LOADING",r);n.addEventListener("loaded",()=>{if(i.getValue()==="LOADING"){if(i.setValue("LOADED"),!r.isCancelled()){let s=_l(e,null);s!=="PAUSED"&&i.setValue(s)}}else i.getValue()==="RELOADING"?i.setValue(_l(e,null)):a(null)},r),n.addEventListener("reloadingMediaSource",()=>{rr(i.getValue())&&i.setValueIfChanged("RELOADING")},r);let o=null;return n.addEventListener("stalled",s=>{s!==o&&(a(s),o=s)},r),n.addEventListener("unstalled",()=>{o!==null&&(a(null),o=null)},r),t.listen(s=>{$(["seeking","ended","play","pause"],s.event)&&a(o)},{clearSignal:r}),i;function a(s){if(!rr(i.getValue()))return;let d=_l(e,s);i.getValue()==="LOADED"&&d==="PAUSED"||i.setValueIfChanged(d)}}function _l(n,e){let{FORCED_ENDED_THRESHOLD:t}=B.getCurrent();if(n.ended)return"ENDED";if(e!==null){let r=Math.abs(n.duration-n.currentTime);return!_(t)&&r<t?"ENDED":e==="seeking"?"SEEKING":e==="freezing"?"FREEZING":"BUFFERING"}return n.paused?"PAUSED":"PLAYING"}function rr(n){return n!=="LOADING"&&n!=="RELOADING"&&n!=="STOPPED"}var $y=Je(),Qy=["manifestLoader","segmentLoader"],Nt=class Nt extends ie{static get ErrorTypes(){return Ze}static get ErrorCodes(){return Wa}static get LogLevel(){return m.getLevel()}static set LogLevel(e){m.setLevel(e)}static addFeatures(e){go(e)}static _priv_registerVideoElement(e){Nt._priv_currentlyUsedVideoElements.has(e)&&console.warn(`The video element is already attached to another RxPlayer instance.
17
- Make sure to dispose the previous instance with player.dispose() before creating a new player instance attaching that video element.`),Nt._priv_currentlyUsedVideoElements.add(e)}static _priv_deregisterVideoElement(e){Nt._priv_currentlyUsedVideoElements.has(e)&&Nt._priv_currentlyUsedVideoElements.delete(e)}constructor(e={}){super();let{baseBandwidth:t,videoResolutionLimit:r,maxBufferAhead:i,maxBufferBehind:o,throttleVideoBitrateWhenHidden:a,videoElement:s,wantedBufferAhead:d,maxVideoBufferSize:u}=Nm(e);s.preload="auto",this.version="4.1.0-dev.2024070800",this.log=m,this.state="STOPPED",this.videoElement=s,Nt._priv_registerVideoElement(this.videoElement);let c=new F;this._destroyCanceller=c,this._priv_pictureInPictureRef=Tc(s,c.signal),this._priv_speed=new W(s.playbackRate,this._destroyCanceller.signal),this._priv_preferTrickModeTracks=!1,this._priv_contentLock=new W(!1,this._destroyCanceller.signal),this._priv_bufferOptions={wantedBufferAhead:new W(d,this._destroyCanceller.signal),maxBufferAhead:new W(i,this._destroyCanceller.signal),maxBufferBehind:new W(o,this._destroyCanceller.signal),maxVideoBufferSize:new W(u,this._destroyCanceller.signal)},this._priv_bitrateInfos={lastBitrates:{audio:t,video:t}},this._priv_throttleVideoBitrateWhenHidden=a,this._priv_videoResolutionLimit=r,this._priv_currentError=null,this._priv_contentInfos=null,this._priv_contentEventsMemory={},this._priv_reloadingMetadata={},this._priv_lastAutoPlay=!1,this._priv_worker=null,this._priv_segmentSinkMetricsCallback=null;let l=()=>{this.trigger("volumeChange",{volume:s.volume,muted:s.muted})};s.addEventListener("volumechange",l),c.signal.register(()=>{s.removeEventListener("volumechange",l)})}attachWorker(e){return new Promise((t,r)=>{var o;if(!yl())return m.warn("API: Cannot rely on a WebWorker: Worker API unavailable"),r(new Cn("INCOMPATIBLE_ERROR","Worker unavailable"));if(typeof e.workerUrl=="string")this._priv_worker=new Worker(e.workerUrl);else{let a=URL.createObjectURL(e.workerUrl);this._priv_worker=new Worker(a),URL.revokeObjectURL(a)}this._priv_worker.onerror=a=>{this._priv_worker!==null&&(this._priv_worker.terminate(),this._priv_worker=null),m.error("API: Unexpected worker error",a.error instanceof Error?a.error:void 0),r(new Cn("UNKNOWN_ERROR",'Unexpected Worker "error" event'))};let i=a=>{let s=a.data;s.type==="init-error"?(m.warn("API: Processing InitError worker message: detaching worker"),this._priv_worker!==null&&(this._priv_worker.removeEventListener("message",i),this._priv_worker.terminate(),this._priv_worker=null),r(new Cn("SETUP_ERROR","Worker parser initialization failed: "+s.value.errorMessage))):s.type==="init-success"&&(m.info("API: InitSuccess received from worker."),this._priv_worker!==null&&this._priv_worker.removeEventListener("message",i),t())};this._priv_worker.addEventListener("message",i),m.debug("---> Sending To Worker:","init"),this._priv_worker.postMessage({type:"init",value:{dashWasmUrl:e.dashWasmUrl,logLevel:m.getLevel(),sendBackLogs:Mn(),date:Date.now(),timestamp:V(),hasVideo:((o=this.videoElement)==null?void 0:o.nodeName.toLowerCase())==="video",hasMseInWorker:Mf}}),m.addEventListener("onLogLevelChange",a=>{this._priv_worker!==null&&(m.debug("---> Sending To Worker:","log-level-update"),this._priv_worker.postMessage({type:"log-level-update",value:{logLevel:a,sendBackLogs:Mn()}}))},this._destroyCanceller.signal)})}getCurrentModeInformation(){return this._priv_contentInfos===null?null:{isDirectFile:this._priv_contentInfos.isDirectFile,useWorker:this._priv_contentInfos.useWorker}}addEventListener(e,t){return super.addEventListener(e,t)}stop(){this._priv_contentInfos!==null&&this._priv_contentInfos.currentContentCanceller.cancel(),this._priv_cleanUpCurrentContentState(),this.state!=="STOPPED"&&this._priv_setPlayerState("STOPPED")}dispose(){this.stop(),this.videoElement!==null&&(Nt._priv_deregisterVideoElement(this.videoElement),Nn(this.videoElement).catch(e=>{let t=e instanceof Error?e.message:"Unknown error";m.error("API: Could not dispose decryption resources: "+t)})),this._destroyCanceller.cancel(),this._priv_reloadingMetadata={},this.videoElement=null,this._priv_worker!==null&&(this._priv_worker.terminate(),this._priv_worker=null)}loadVideo(e){let t=Bm(e);m.info("API: Calling loadvideo",t.url,t.transport),this._priv_reloadingMetadata={options:t},this._priv_initializeContentPlayback(t),this._priv_lastAutoPlay=t.autoPlay}reload(e){var c,l,f;let{options:t,manifest:r,reloadPosition:i,reloadInPause:o}=this._priv_reloadingMetadata;if(t===void 0)throw new Error("API: Can't reload without having previously loaded a content.");Um(e);let a;if(((c=e==null?void 0:e.reloadAt)==null?void 0:c.position)!==void 0)a={position:e.reloadAt.position};else if(((l=e==null?void 0:e.reloadAt)==null?void 0:l.relative)!==void 0){if(i===void 0)throw new Error("Can't reload to a relative position when previous content was not loaded.");a={position:e.reloadAt.relative+i}}else i!==void 0&&(a={position:i});let s;(e==null?void 0:e.autoPlay)!==void 0?s=e.autoPlay:o!==void 0&&(s=!o);let d;(e==null?void 0:e.keySystems)!==void 0?d=e.keySystems:((f=this._priv_reloadingMetadata.options)==null?void 0:f.keySystems)!==void 0&&(d=this._priv_reloadingMetadata.options.keySystems);let u=Se(ce({},t),{initialManifest:r});a!==void 0&&(u.startAt=a),s!==void 0&&(u.autoPlay=s),d!==void 0&&(u.keySystems=d),this._priv_initializeContentPlayback(u)}createDebugElement(e){if(ue.createDebugElement===null)throw new Error("Feature `DEBUG_ELEMENT` not added to the RxPlayer");let t=new F;return ue.createDebugElement(e,this,t.signal),{dispose(){t.cancel()}}}_priv_initializeContentPlayback(e){var G,K,ne,j,se,oe;let{autoPlay:t,defaultAudioTrackSwitchingMode:r,enableFastSwitching:i,initialManifest:o,keySystems:a,lowLatencyMode:s,minimumManifestUpdateInterval:d,requestConfig:u,onCodecSwitch:c,startAt:l,transport:f,checkMediaSegmentIntegrity:p,manifestLoader:g,referenceDateTime:S,segmentLoader:I,serverSyncInfos:y,mode:T,__priv_manifestUpdateUrl:v,__priv_patchLastSegmentInSidx:E,url:R}=e;if(this.videoElement===null)throw new Error("the attached video element is disposed");let k=f==="directfile",A=new F,C=this.videoElement,x,N=!1,D=null;if(k){if(ue.directfile===null)throw this.stop(),this._priv_currentError=null,new Error("DirectFile feature not activated in your build.");if(_(R))throw new Error("No URL for a DirectFile content");if(m.info("API: Initializing DirectFile mode in the main thread"),D=this._priv_initializeMediaElementTracksStore(A.signal),A.isUsed())return;x=new ue.directfile.initDirectFile({autoPlay:t,keySystems:a,speed:this._priv_speed,startAt:l,url:R})}else{let z={lowLatencyMode:s,maxRetry:(G=u.manifest)==null?void 0:G.maxRetry,requestTimeout:(K=u.manifest)==null?void 0:K.timeout,connectionTimeout:(ne=u.manifest)==null?void 0:ne.connectionTimeout,minimumManifestUpdateInterval:d,initialManifest:o},ae=Il(),$e={throttleBitrate:{},limitResolution:{}};this._priv_throttleVideoBitrateWhenHidden&&(ae?$e.throttleBitrate={video:dn(_c(this._priv_pictureInPictureRef,A.signal),Ke=>Ke?1/0:0,A.signal)}:m.warn("API: Can't apply throttleVideoBitrateWhenHidden because browser can't be trusted for visibility.")),this._priv_videoResolutionLimit==="videoElement"?ae?$e.limitResolution={video:vc(C,this._priv_pictureInPictureRef,A.signal)}:m.warn("API: Can't apply videoResolutionLimit because browser can't be trusted for video size."):this._priv_videoResolutionLimit==="screen"&&($e.limitResolution={video:Ec(A.signal)});let ye={initialBitrates:this._priv_bitrateInfos.lastBitrates,lowLatencyMode:s,throttlers:$e},Re=e.textTrackMode==="native"?{textTrackMode:"native"}:{textTrackMode:"html",textTrackElement:e.textTrackElement},Ut=Y({enableFastSwitching:i,onCodecSwitch:c},this._priv_bufferOptions),Qe={lowLatencyMode:s,maxRetry:(j=u.segment)==null?void 0:j.maxRetry,requestTimeout:(se=u.segment)==null?void 0:se.timeout,connectionTimeout:(oe=u.segment)==null?void 0:oe.connectionTimeout},Fe=ue.multithread!==null&&this._priv_worker!==null&&f==="dash"&&Qy.every(Ke=>_(e[Ke]))&&typeof e.representationFilter!="function";if(T==="main"||T==="auto"&&!Fe){if(ue.mainThreadMediaSourceInit===null)throw new Error("Cannot load video, neither in a WebWorker nor with the `MEDIA_SOURCE_MAIN` feature");let Ke=ue.transports[f];if(typeof Ke!="function")throw this.stop(),this._priv_currentError=null,new Error(`transport "${f}" not supported`);let gt=typeof e.representationFilter=="string"?Jl(e.representationFilter):e.representationFilter;m.info("API: Initializing MediaSource mode in the main thread");let ht=Ke({lowLatencyMode:s,checkMediaSegmentIntegrity:p,manifestLoader:g,referenceDateTime:S,representationFilter:gt,segmentLoader:I,serverSyncInfos:y,__priv_manifestUpdateUrl:v,__priv_patchLastSegmentInSidx:E});x=new ue.mainThreadMediaSourceInit({adaptiveOptions:ye,autoPlay:t,bufferOptions:Ut,keySystems:a,lowLatencyMode:s,transport:ht,manifestRequestSettings:z,segmentRequestOptions:Qe,speed:this._priv_speed,startAt:l,textTrackOptions:Re,url:R})}else{if(ue.multithread===null)throw new Error("Cannot load video in multithread mode: `MULTI_THREAD` feature not imported.");if(this._priv_worker===null)throw new Error("Cannot load video in multithread mode: `attachWorker` method not called.");J(typeof e.representationFilter!="function"),N=!0,m.info("API: Initializing MediaSource mode in a WebWorker");let Ke={lowLatencyMode:s,checkMediaSegmentIntegrity:p,referenceDateTime:S,serverSyncInfos:y,manifestLoader:void 0,segmentLoader:void 0,representationFilter:e.representationFilter,__priv_manifestUpdateUrl:v,__priv_patchLastSegmentInSidx:E};x=new ue.multithread.init({adaptiveOptions:ye,autoPlay:t,bufferOptions:Ut,keySystems:a,lowLatencyMode:s,transportOptions:Ke,manifestRequestSettings:z,segmentRequestOptions:Qe,speed:this._priv_speed,startAt:l,textTrackOptions:Re,worker:this._priv_worker,url:R})}}let L={contentId:$y(),originalUrl:R,currentContentCanceller:A,defaultAudioTrackSwitchingMode:r,initializer:x,isDirectFile:k,manifest:null,currentPeriod:null,activeAdaptations:null,activeRepresentations:null,tracksStore:null,mediaElementTracksStore:D,useWorker:N};x.addEventListener("error",z=>{this._priv_onFatalError(z,L)}),x.addEventListener("warning",z=>{let ae=xe(z,{defaultCode:"NONE",defaultReason:"An unknown error happened."});m.warn("API: Sending warning:",ae),this.trigger("warning",ae)}),x.addEventListener("reloadingMediaSource",z=>{L.tracksStore!==null&&L.tracksStore.resetPeriodObjects(),this._priv_segmentSinkMetricsCallback=null,this._priv_lastAutoPlay=z.autoPlay}),x.addEventListener("inbandEvents",z=>this.trigger("inbandEvents",z)),x.addEventListener("streamEvent",z=>this.trigger("streamEvent",z)),x.addEventListener("streamEventSkip",z=>this.trigger("streamEventSkip",z)),x.addEventListener("activePeriodChanged",z=>this._priv_onActivePeriodChanged(L,z)),x.addEventListener("periodStreamReady",z=>this._priv_onPeriodStreamReady(L,z)),x.addEventListener("periodStreamCleared",z=>this._priv_onPeriodStreamCleared(L,z)),x.addEventListener("representationChange",z=>this._priv_onRepresentationChange(L,z)),x.addEventListener("adaptationChange",z=>this._priv_onAdaptationChange(L,z)),x.addEventListener("bitrateEstimateChange",z=>this._priv_onBitrateEstimateChange(z)),x.addEventListener("manifestReady",z=>this._priv_onManifestReady(L,z)),x.addEventListener("manifestUpdate",z=>this._priv_onManifestUpdate(L,z)),x.addEventListener("decipherabilityUpdate",z=>this._priv_onDecipherabilityUpdate(L,z)),x.addEventListener("loaded",z=>{this._priv_segmentSinkMetricsCallback=z.getSegmentSinkMetrics}),x.prepare(),this.stop();let P=new ro(C,{withMediaSource:!k,lowLatencyMode:s});A.signal.register(()=>{P.stop()});let M=Vm(x,C,P,A.signal);A.signal.register(()=>{x.dispose()});let O=z=>{switch(z){case"STOPPED":case"RELOADING":case"LOADING":break;case"ENDED":this._priv_reloadingMetadata.reloadInPause=!0,this._priv_reloadingMetadata.reloadPosition=P.getReference().getValue().position.getPolled();break;default:let ae=P.getReference().getValue();this._priv_reloadingMetadata.reloadInPause=ae.paused,this._priv_reloadingMetadata.reloadPosition=ae.position.getWanted();break}},U=null,H=z=>{U!==null&&(U.cancel(),U=null),M.onUpdate((ae,$e)=>{rr(ae)&&($e(),U!==null&&U.cancel(),U=new F,U.linkToSignal(A.signal),z!==!C.paused&&(C.paused?this.trigger("pause",null):this.trigger("play",null)),Km(C,()=>this.trigger("play",null),()=>this.trigger("pause",null),A.signal))},{emitCurrentValue:!1,clearSignal:A.signal})};H(t),x.addEventListener("reloadingMediaSource",z=>{H(z.autoPlay)}),this._priv_currentError=null,this._priv_contentInfos=L;let q=null;M.onUpdate(z=>{O(z),this._priv_setPlayerState(z),!A.isUsed()&&(q!==null?rr(this.state)||(q.cancel(),q=null):rr(this.state)&&(q=new F,q.linkToSignal(A.signal),Fm(C,P,()=>this.trigger("seeking",null),()=>this.trigger("seeked",null),q.signal)))},{emitCurrentValue:!0,clearSignal:A.signal}),P.listen(z=>{O(this.state),this._priv_triggerPositionUpdate(L,z)},{clearSignal:A.signal}),A.signal.register(()=>{x.removeEventListener()}),this._priv_contentLock.onUpdate((z,ae)=>{z||(ae(),x.start(C,P))},{emitCurrentValue:!0,clearSignal:A.signal})}getError(){return this._priv_currentError}getVideoElement(){return this.videoElement}getPlayerState(){return this.state}isContentLoaded(){return!$(["LOADING","RELOADING","STOPPED"],this.state)}isBuffering(){return $(["BUFFERING","SEEKING","LOADING","RELOADING"],this.state)}isPaused(){return this.videoElement?$(["LOADING","RELOADING"],this.state)?!this._priv_lastAutoPlay:this.videoElement.paused:!0}isLive(){if(this._priv_contentInfos===null)return!1;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;return e||t===null?!1:t.isLive}areTrickModeTracksEnabled(){return this._priv_preferTrickModeTracks}getContentUrls(){if(this._priv_contentInfos===null)return;let{isDirectFile:e,manifest:t,originalUrl:r}=this._priv_contentInfos;if(e)return r===void 0?void 0:[r];if(t!==null)return t.uris}updateContentUrls(e,t){if(this._priv_contentInfos===null)throw new Error("No content loaded");let r=(t==null?void 0:t.refresh)===!0;this._priv_contentInfos.initializer.updateContentUrls(e,r)}getMediaDuration(){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.duration}getCurrentBufferGap(){if(this.videoElement===null)throw new Error("Disposed player");let e=this.videoElement,t=Ll(e.buffered,e.currentTime);return t===1/0?0:t}getWallClockTime(){if(this.videoElement===null)throw new Error("Disposed player");if(this._priv_contentInfos===null)return this.videoElement.currentTime;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;if(e){let r=no(this.videoElement);return(r!=null?r:0)+this.videoElement.currentTime}if(t!==null){let r=this.videoElement.currentTime,i=t.availabilityStartTime!==void 0?t.availabilityStartTime:0;return r+i}return 0}getPosition(){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.currentTime}getLastStoredContentPosition(){return this._priv_reloadingMetadata.reloadPosition}getPlaybackRate(){return this._priv_speed.getValue()}setPlaybackRate(e,t){var o;e!==this._priv_speed.getValue()&&this._priv_speed.setValue(e);let r=t==null?void 0:t.preferTrickModeTracks;if(typeof r!="boolean")return;this._priv_preferTrickModeTracks=r;let i=(o=this._priv_contentInfos)==null?void 0:o.tracksStore;_(i)||(r&&!i.isTrickModeEnabled()?i.enableVideoTrickModeTracks():!r&&i.isTrickModeEnabled()&&i.disableVideoTrickModeTracks())}getVideoRepresentation(){let e=this.__priv_getCurrentRepresentations();if(e!==null)return e.video}getAudioRepresentation(){let e=this.__priv_getCurrentRepresentations();if(e!==null)return e.audio}play(){if(this.videoElement===null)throw new Error("Disposed player");let e=this.videoElement.play();return _(e)||typeof e.catch!="function"?Promise.resolve():e.catch(t=>{if(t.name==="NotAllowedError"){let r=new Z("MEDIA_ERR_PLAY_NOT_ALLOWED",t.toString());this.trigger("warning",r)}throw t})}pause(){if(this.videoElement===null)throw new Error("Disposed player");this.videoElement.pause()}seekTo(e){var o;if(this.videoElement===null)throw new Error("Disposed player");if(this._priv_contentInfos===null)throw new Error("player: no content loaded");let{isDirectFile:t,manifest:r}=this._priv_contentInfos;if(!t&&r===null)throw new Error("player: the content did not load yet");let i;if(typeof e=="number")i=e;else if(typeof e=="object"){let a=e,s=this.videoElement.currentTime;if(!_(a.relative))i=s+a.relative;else if(!_(a.position))i=a.position;else{if(_(a.wallClockTime))throw new Error('invalid time object. You must set one of the following properties: "relative", "position" or "wallClockTime"');if(r!==null)i=a.wallClockTime-((o=r.availabilityStartTime)!=null?o:0);else if(t&&this.videoElement!==null){let d=no(this.videoElement);d!==void 0&&(i=a.wallClockTime-d)}i===void 0&&(i=a.wallClockTime)}}if(i===void 0)throw new Error("invalid time given");return m.info("API: API Seek to",i),this.videoElement.currentTime=i,i}getVolume(){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.volume}setVolume(e){if(this.videoElement===null)throw new Error("Disposed player");let t=this.videoElement;e!==t.volume&&(t.volume=e)}isMute(){var e;return((e=this.videoElement)==null?void 0:e.muted)===!0}mute(){if(this.videoElement===null)throw new Error("Disposed player");this.videoElement.muted||(this.videoElement.muted=!0)}unMute(){if(this.videoElement===null)throw new Error("Disposed player");this.videoElement.muted&&(this.videoElement.muted=!1)}setMaxBufferBehind(e){this._priv_bufferOptions.maxBufferBehind.setValue(e)}setMaxBufferAhead(e){this._priv_bufferOptions.maxBufferAhead.setValue(e)}setWantedBufferAhead(e){this._priv_bufferOptions.wantedBufferAhead.setValue(e)}setMaxVideoBufferSize(e){this._priv_bufferOptions.maxVideoBufferSize.setValue(e)}getMaxBufferBehind(){return this._priv_bufferOptions.maxBufferBehind.getValue()}getMaxBufferAhead(){return this._priv_bufferOptions.maxBufferAhead.getValue()}getWantedBufferAhead(){return this._priv_bufferOptions.wantedBufferAhead.getValue()}getMaxVideoBufferSize(){return this._priv_bufferOptions.maxVideoBufferSize.getValue()}getCurrentPeriod(){var t;let e=(t=this._priv_contentInfos)==null?void 0:t.currentPeriod;return _(e)?null:{id:e.id,start:e.start,end:e.end}}getKeySystemConfiguration(){if(this.videoElement===null)throw new Error("Disposed player");let e=Hn(this.videoElement);return e===null?null:{keySystem:e[0],configuration:e[1]}}getAvailablePeriods(){if(this._priv_contentInfos===null)return[];let{isDirectFile:e,tracksStore:t}=this._priv_contentInfos;return e?[]:t===null?[]:t.getAvailablePeriods().slice()}getAvailableAudioTracks(e){var i;if(this._priv_contentInfos===null)return[];let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?(i=r==null?void 0:r.getAvailableAudioTracks())!=null?i:[]:this._priv_callTracksStoreGetterSetter(e,[],(o,a)=>{var s;return(s=o.getAvailableAudioTracks(a))!=null?s:[]})}getAvailableTextTracks(e){var i;if(this._priv_contentInfos===null)return[];let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?(i=r==null?void 0:r.getAvailableTextTracks())!=null?i:[]:this._priv_callTracksStoreGetterSetter(e,[],(o,a)=>{var s;return(s=o.getAvailableTextTracks(a))!=null?s:[]})}getAvailableVideoTracks(e){var i;if(this._priv_contentInfos===null)return[];let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?(i=r==null?void 0:r.getAvailableVideoTracks())!=null?i:[]:this._priv_callTracksStoreGetterSetter(e,[],(o,a)=>{var s;return(s=o.getAvailableVideoTracks(a))!=null?s:[]})}getAudioTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?r===null?void 0:r.getChosenAudioTrack():this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.getChosenAudioTrack(o))}getTextTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?r===null?void 0:r.getChosenTextTrack():this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.getChosenTextTrack(o))}getVideoTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?r===null?void 0:r.getChosenVideoTrack():this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.getChosenVideoTrack(o))}setAudioTrack(e){var u;if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)try{let c=typeof e=="string"?e:e.trackId;r==null||r.setAudioTrackById(c);return}catch(c){throw new Error("player: unknown audio track")}let i,o,a,s=null,d;return typeof e=="string"?o=e:(o=e.trackId,i=e.periodId,a=e.switchingMode,s=(u=e.lockedRepresentations)!=null?u:null,d=e.relativeResumingPosition),this._priv_callTracksStoreGetterSetter(i,void 0,(c,l)=>c.setAudioTrack({periodRef:l,trackId:o,switchingMode:a,lockedRepresentations:s,relativeResumingPosition:d}))}setTextTrack(e){if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)try{let a=typeof e=="string"?e:e.trackId;r==null||r.setTextTrackById(a);return}catch(a){throw new Error("player: unknown text track")}let i,o;return typeof e=="string"?o=e:(o=e.trackId,i=e.periodId),this._priv_callTracksStoreGetterSetter(i,void 0,(a,s)=>a.setTextTrack(s,o))}disableTextTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t){r==null||r.disableTextTrack();return}return this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.disableTrack(o,"text"))}setVideoTrack(e){var u;if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)try{let c=typeof e=="string"?e:e.trackId;r==null||r.setVideoTrackById(c);return}catch(c){throw new Error("player: unknown video track")}let i,o,a,s=null,d;return typeof e=="string"?o=e:(o=e.trackId,i=e.periodId,a=e.switchingMode,s=(u=e.lockedRepresentations)!=null?u:null,d=e.relativeResumingPosition),this._priv_callTracksStoreGetterSetter(i,void 0,(c,l)=>c.setVideoTrack({periodRef:l,trackId:o,switchingMode:a,lockedRepresentations:s,relativeResumingPosition:d}))}disableVideoTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t&&r!==null?r.disableVideoTrack():this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.disableTrack(o,"video"))}lockVideoRepresentations(e){if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t}=this._priv_contentInfos;if(t)throw new Error("Cannot lock video Representations in directfile mode.");let r,i,o;return Array.isArray(e)?(r=e,i=void 0):(r=e.representations,i=e.periodId,o=e.switchingMode),this._priv_callTracksStoreGetterSetter(i,void 0,(a,s)=>a.lockVideoRepresentations(s,{representations:r,switchingMode:o}))}lockAudioRepresentations(e){if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t}=this._priv_contentInfos;if(t)throw new Error("Cannot lock audio Representations in directfile mode.");let r,i,o;return Array.isArray(e)?(r=e,i=void 0):(r=e.representations,i=e.periodId,o=e.switchingMode),this._priv_callTracksStoreGetterSetter(i,void 0,(a,s)=>a.lockAudioRepresentations(s,{representations:r,switchingMode:o}))}getLockedVideoRepresentations(e){if(this._priv_contentInfos===null)return null;let{isDirectFile:t}=this._priv_contentInfos;return t?null:this._priv_callTracksStoreGetterSetter(e,null,(r,i)=>r.getLockedVideoRepresentations(i))}getLockedAudioRepresentations(e){if(this._priv_contentInfos===null)return null;let{isDirectFile:t}=this._priv_contentInfos;return t?null:this._priv_callTracksStoreGetterSetter(e,null,(r,i)=>r.getLockedAudioRepresentations(i))}unlockVideoRepresentations(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t}=this._priv_contentInfos;if(!t)return this._priv_callTracksStoreGetterSetter(e,void 0,(r,i)=>r.unlockVideoRepresentations(i))}unlockAudioRepresentations(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t}=this._priv_contentInfos;if(!t)return this._priv_callTracksStoreGetterSetter(e,void 0,(r,i)=>r.unlockAudioRepresentations(i))}getMinimumPosition(){if(this._priv_contentInfos===null)return null;if(this._priv_contentInfos.isDirectFile)return 0;let{manifest:e}=this._priv_contentInfos;return e!==null?ln(e):null}getLivePosition(){if(this._priv_contentInfos===null)return null;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;if(!e)return(t==null?void 0:t.isLive)!==!0?null:cn(t)}getMaximumPosition(){if(this._priv_contentInfos===null)return null;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;if(e){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.duration}return t!==null?!t.isDynamic&&this.videoElement!==null?this.videoElement.duration:It(t):null}async __priv_getSegmentSinkMetrics(){if(this._priv_segmentSinkMetricsCallback!==null)return this._priv_segmentSinkMetricsCallback()}__priv_getManifest(){return this._priv_contentInfos===null?null:this._priv_contentInfos.manifest}__priv_getCurrentAdaptation(){if(this._priv_contentInfos===null)return null;let{currentPeriod:e,activeAdaptations:t}=this._priv_contentInfos;return e===null||t===null||_(t[e.id])?null:t[e.id]}__priv_getCurrentRepresentations(){if(this._priv_contentInfos===null)return null;let{currentPeriod:e,activeRepresentations:t}=this._priv_contentInfos;return e===null||t===null||_(t[e.id])?null:t[e.id]}_priv_cleanUpCurrentContentState(){var t,r,i,o;m.debug("Locking `contentLock` to clean-up the current content."),this._priv_contentLock.setValue(!0),(r=(t=this._priv_contentInfos)==null?void 0:t.tracksStore)==null||r.dispose(),(o=(i=this._priv_contentInfos)==null?void 0:i.mediaElementTracksStore)==null||o.dispose(),this._priv_contentInfos=null,this._priv_segmentSinkMetricsCallback=null,this._priv_contentEventsMemory={};let e=()=>{this.videoElement!==null&&(m.debug("Unlocking `contentLock`. Next content can begin."),this._priv_contentLock.setValue(!1))};_(this.videoElement)?e():ko(this.videoElement).then(()=>{m.debug("API: DRM session cleaned-up with success!"),e()},a=>{m.error("API: An error arised when trying to clean-up the DRM session:"+(a instanceof Error?a.toString():"Unknown Error")),e()})}_priv_onManifestReady(e,t){var i;if(e.contentId!==((i=this._priv_contentInfos)==null?void 0:i.contentId))return;e.manifest=t,t.manifestFormat===0&&(this._priv_reloadingMetadata.manifest=t);let r=new Lm({preferTrickModeTracks:this._priv_preferTrickModeTracks,defaultAudioTrackSwitchingMode:e.defaultAudioTrackSwitchingMode});e.tracksStore=r,r.addEventListener("newAvailablePeriods",o=>{this.trigger("newAvailablePeriods",o)}),r.addEventListener("brokenRepresentationsLock",o=>{this.trigger("brokenRepresentationsLock",o)}),r.addEventListener("trackUpdate",o=>{var s,d;this.trigger("trackUpdate",o);let a=(d=(s=this._priv_contentInfos)==null?void 0:s.currentPeriod)!=null?d:void 0;o.reason==="no-playable-representation"&&o.period.id===(a==null?void 0:a.id)&&this._priv_onAvailableTracksMayHaveChanged(o.trackType)}),e.tracksStore.addEventListener("warning",o=>{this.trigger("warning",o)}),e.tracksStore.addEventListener("error",o=>{this._priv_onFatalError(o,e)}),e.tracksStore.onManifestUpdate(t)}_priv_onManifestUpdate(e,t){var o,a,s;if(this._priv_contentInfos===null||this._priv_contentInfos.manifest===null)return;_(e==null?void 0:e.tracksStore)||e.tracksStore.onManifestUpdate(this._priv_contentInfos.manifest);let r=(a=(o=this._priv_contentInfos)==null?void 0:o.currentPeriod)!=null?a:void 0,i=(s=this._priv_contentInfos)==null?void 0:s.tracksStore;if(!(r===void 0||_(i))){for(let d of t.updatedPeriods)if(d.period.id===r.id&&(d.result.addedAdaptations.length>0||d.result.removedAdaptations.length>0)){if(i.getPeriodObjectFromPeriod(r)===void 0)return;this._priv_onAvailableTracksMayHaveChanged("audio"),this._priv_onAvailableTracksMayHaveChanged("text"),this._priv_onAvailableTracksMayHaveChanged("video")}}}_priv_onDecipherabilityUpdate(e,t){if(e===null||e.manifest===null)return;_(e==null?void 0:e.tracksStore)||e.tracksStore.onDecipherabilityUpdates();let r=t.reduce((i,o)=>{var s,d,u;if(!(X(i,c=>c[0].id===o.period.id&&c[1]===o.adaptation.type)!==void 0)){let c=e.tracksStore;if(c===null)return i;let l=!1,f=c.getPeriodObjectFromPeriod(o.period);if(f===void 0)return i;switch(o.adaptation.type){case"audio":l=((s=c.getChosenAudioTrack(f))==null?void 0:s.id)===o.adaptation.id;break;case"video":l=((d=c.getChosenVideoTrack(f))==null?void 0:d.id)===o.adaptation.id;break;case"text":l=((u=c.getChosenTextTrack(f))==null?void 0:u.id)===o.adaptation.id;break}l&&i.push([o.period,o.adaptation.type])}return i},[]);for(let[i,o]of r)this._priv_triggerEventIfNotStopped("representationListUpdate",{period:{start:i.start,end:i.end,id:i.id},trackType:o,reason:"decipherability-update"},e.currentContentCanceller.signal)}_priv_onActivePeriodChanged(e,{period:t}){var s,d,u,c,l,f;if(e.contentId!==((s=this._priv_contentInfos)==null?void 0:s.contentId))return;e.currentPeriod=t;let r=e.currentContentCanceller.signal;this._priv_contentEventsMemory.periodChange!==t&&(this._priv_contentEventsMemory.periodChange=t,this._priv_triggerEventIfNotStopped("periodChange",{start:t.start,end:t.end,id:t.id},r)),this._priv_triggerEventIfNotStopped("availableAudioTracksChange",this.getAvailableAudioTracks(),r),this._priv_triggerEventIfNotStopped("availableTextTracksChange",this.getAvailableTextTracks(),r),this._priv_triggerEventIfNotStopped("availableVideoTracksChange",this.getAvailableVideoTracks(),r);let i=(d=this._priv_contentInfos)==null?void 0:d.tracksStore;if(_(i))this._priv_triggerEventIfNotStopped("audioTrackChange",null,r),this._priv_triggerEventIfNotStopped("textTrackChange",null,r),this._priv_triggerEventIfNotStopped("videoTrackChange",null,r);else{let p=i.getPeriodObjectFromPeriod(t);if(p){let g=i.getChosenAudioTrack(p);this._priv_triggerEventIfNotStopped("audioTrackChange",g,r);let S=i.getChosenTextTrack(p);this._priv_triggerEventIfNotStopped("textTrackChange",S,r);let I=i.getChosenVideoTrack(p);this._priv_triggerEventIfNotStopped("videoTrackChange",I,r)}}let o=(c=(u=this.__priv_getCurrentRepresentations())==null?void 0:u.audio)!=null?c:null;this._priv_triggerEventIfNotStopped("audioRepresentationChange",o,r);let a=(f=(l=this.__priv_getCurrentRepresentations())==null?void 0:l.video)!=null?f:null;this._priv_triggerEventIfNotStopped("videoRepresentationChange",a,r)}_priv_onPeriodStreamReady(e,t){var s;if(e.contentId!==((s=this._priv_contentInfos)==null?void 0:s.contentId))return;let{type:r,period:i,adaptationRef:o}=t,a=e.tracksStore;switch(r){case"video":case"audio":case"text":_(a)?(m.error(`API: TracksStore not instanciated for a new ${r} period`),o.setValue(null)):a.addTrackReference(r,i,o);break;default:Xe(r)}}_priv_onPeriodStreamCleared(e,t){var d;if(e.contentId!==((d=this._priv_contentInfos)==null?void 0:d.contentId))return;let{type:r,period:i}=t,o=e.tracksStore;switch(r){case"audio":case"text":case"video":_(o)||o.removeTrackReference(r,i);break}let{activeAdaptations:a,activeRepresentations:s}=e;if(!_(a)&&!_(a[i.id])){let u=a[i.id];delete u[r],Object.keys(u).length===0&&delete a[i.id]}if(!_(s)&&!_(s[i.id])){let u=s[i.id];delete u[r],Object.keys(u).length===0&&delete s[i.id]}}_priv_onAdaptationChange(e,{type:t,adaptation:r,period:i}){var c;if(e.contentId!==((c=this._priv_contentInfos)==null?void 0:c.contentId))return;e.activeAdaptations===null&&(e.activeAdaptations={});let{activeAdaptations:o,currentPeriod:a}=e,s=o[i.id];_(s)?o[i.id]={[t]:r}:s[t]=r;let{tracksStore:d}=e,u=e.currentContentCanceller.signal;if(d!==null&&a!==null&&!_(i)&&i.id===a.id){let l=d.getPeriodObjectFromPeriod(i);if(l===void 0)return;switch(t){case"audio":let f=d.getChosenAudioTrack(l);this._priv_triggerEventIfNotStopped("audioTrackChange",f,u);break;case"text":let p=d.getChosenTextTrack(l);this._priv_triggerEventIfNotStopped("textTrackChange",p,u);break;case"video":let g=d.getChosenVideoTrack(l);this._priv_triggerEventIfNotStopped("videoTrackChange",g,u);break}}}_priv_onRepresentationChange(e,{type:t,period:r,representation:i}){var d;if(e.contentId!==((d=this._priv_contentInfos)==null?void 0:d.contentId))return;e.activeRepresentations===null&&(e.activeRepresentations={});let{activeRepresentations:o,currentPeriod:a}=e,s=o[r.id];if(_(s)?o[r.id]={[t]:i}:s[t]=i,!_(r)&&a!==null&&a.id===r.id){let u=this._priv_contentInfos.currentContentCanceller.signal;t==="video"?this._priv_triggerEventIfNotStopped("videoRepresentationChange",i,u):t==="audio"&&this._priv_triggerEventIfNotStopped("audioRepresentationChange",i,u)}}_priv_onBitrateEstimateChange({type:e,bitrate:t}){t!==void 0&&(this._priv_bitrateInfos.lastBitrates[e]=t),this.trigger("__priv_bitrateEstimateChange",{type:e,bitrate:t})}_priv_setPlayerState(e){this.state!==e&&(this.state=e,m.info("API: playerStateChange event",e),this.trigger("playerStateChange",e))}_priv_triggerPositionUpdate(e,t){var s,d;if(e.contentId!==((s=this._priv_contentInfos)==null?void 0:s.contentId))return;let{isDirectFile:r,manifest:i}=e;if(!r&&i===null||_(t))return;let o=i!==null?It(i):void 0,a={position:t.position.getPolled(),duration:t.duration,playbackRate:t.playbackRate,maximumPosition:o,bufferGap:t.bufferGap===void 0||!isFinite(t.bufferGap)?0:t.bufferGap};if(i!==null&&i.isLive&&t.position.getPolled()>0){let u=(d=i.availabilityStartTime)!=null?d:0;a.wallClockTime=t.position.getPolled()+u;let c=cn(i);c!==void 0&&(a.liveGap=c-t.position.getPolled())}else if(r&&this.videoElement!==null){let u=no(this.videoElement);u!==void 0&&(a.wallClockTime=u+t.position.getPolled())}this.trigger("positionUpdate",a)}_priv_triggerEventIfNotStopped(e,t,r){r.isCancelled()||this.trigger(e,t)}_priv_initializeMediaElementTracksStore(e){var r,i,o;J(ue.directfile!==null,"Initializing `MediaElementTracksStore` without Directfile feature"),J(this.videoElement!==null,"Initializing `MediaElementTracksStore` on a disposed RxPlayer");let t=new ue.directfile.mediaElementTracksStore(this.videoElement);return this._priv_triggerEventIfNotStopped("availableAudioTracksChange",t.getAvailableAudioTracks(),e),this._priv_triggerEventIfNotStopped("availableVideoTracksChange",t.getAvailableVideoTracks(),e),this._priv_triggerEventIfNotStopped("availableTextTracksChange",t.getAvailableTextTracks(),e),this._priv_triggerEventIfNotStopped("audioTrackChange",(r=t.getChosenAudioTrack())!=null?r:null,e),this._priv_triggerEventIfNotStopped("textTrackChange",(i=t.getChosenTextTrack())!=null?i:null,e),this._priv_triggerEventIfNotStopped("videoTrackChange",(o=t.getChosenVideoTrack())!=null?o:null,e),t.addEventListener("availableVideoTracksChange",a=>this.trigger("availableVideoTracksChange",a)),t.addEventListener("availableAudioTracksChange",a=>this.trigger("availableAudioTracksChange",a)),t.addEventListener("availableTextTracksChange",a=>this.trigger("availableTextTracksChange",a)),t.addEventListener("audioTrackChange",a=>this.trigger("audioTrackChange",a)),t.addEventListener("videoTrackChange",a=>this.trigger("videoTrackChange",a)),t.addEventListener("textTrackChange",a=>this.trigger("textTrackChange",a)),t}_priv_callTracksStoreGetterSetter(e,t,r){var d,u;if(this._priv_contentInfos===null||this._priv_contentInfos.tracksStore===null)return m.warn("API: Trying to call track API too soon"),t;let{tracksStore:i}=this._priv_contentInfos,o=(u=(d=this._priv_contentInfos)==null?void 0:d.currentPeriod)!=null?u:void 0,a=e!=null?e:o==null?void 0:o.id;if(a===void 0)return t;let s=a===(o==null?void 0:o.id)?i.getPeriodObjectFromPeriod(o):i.getPeriodObjectFromId(a);return s===void 0?t:r(i,s)}_priv_onAvailableTracksMayHaveChanged(e,t){let r=this._priv_contentInfos;if(r===null)return;let{currentPeriod:i,tracksStore:o,currentContentCanceller:a}=r,s=a.signal;if(_(i)||o===null)return;let d=t!=null?t:o.getPeriodObjectFromPeriod(i);if(d!==void 0)switch(e){case"video":let u=o.getAvailableVideoTracks(d);this._priv_triggerEventIfNotStopped("availableVideoTracksChange",u!=null?u:[],s);break;case"audio":let c=o.getAvailableAudioTracks(d);this._priv_triggerEventIfNotStopped("availableAudioTracksChange",c!=null?c:[],s);break;case"text":let l=o.getAvailableTextTracks(d);this._priv_triggerEventIfNotStopped("availableTextTracksChange",l!=null?l:[],s);break;default:Xe(e)}}_priv_onFatalError(e,t){let r=xe(e,{defaultCode:"NONE",defaultReason:"An unknown error stopped content playback."});r.fatal=!0,t.currentContentCanceller.cancel(),this._priv_cleanUpCurrentContentState(),this._priv_currentError=r,m.error("API: The player stopped because of an error",r),this._priv_setPlayerState("STOPPED"),this._priv_currentError===r&&this.trigger("error",r)}};Nt._priv_currentlyUsedVideoElements=new WeakSet;var ka=Nt;ka.version="4.1.0-dev.2024070800";var zm=ka;var El=zm;Pa();El.addFeatures([hl,tu,au,su,rl,Zu,sl,el,Nu,fu,Yu,gu]);Mn()?m.setLevel("DEBUG"):h.CURRENT_ENV===h.DEV&&m.setLevel(b.CURRENT_LEVEL);var Cie=El;})();
17
+ Make sure to dispose the previous instance with player.dispose() before creating a new player instance attaching that video element.`),Nt._priv_currentlyUsedVideoElements.add(e)}static _priv_deregisterVideoElement(e){Nt._priv_currentlyUsedVideoElements.has(e)&&Nt._priv_currentlyUsedVideoElements.delete(e)}constructor(e={}){super();let{baseBandwidth:t,videoResolutionLimit:r,maxBufferAhead:i,maxBufferBehind:o,throttleVideoBitrateWhenHidden:a,videoElement:s,wantedBufferAhead:d,maxVideoBufferSize:u}=Nm(e);s.preload="auto",this.version="4.1.0",this.log=m,this.state="STOPPED",this.videoElement=s,Nt._priv_registerVideoElement(this.videoElement);let c=new F;this._destroyCanceller=c,this._priv_pictureInPictureRef=Tc(s,c.signal),this._priv_speed=new W(s.playbackRate,this._destroyCanceller.signal),this._priv_preferTrickModeTracks=!1,this._priv_contentLock=new W(!1,this._destroyCanceller.signal),this._priv_bufferOptions={wantedBufferAhead:new W(d,this._destroyCanceller.signal),maxBufferAhead:new W(i,this._destroyCanceller.signal),maxBufferBehind:new W(o,this._destroyCanceller.signal),maxVideoBufferSize:new W(u,this._destroyCanceller.signal)},this._priv_bitrateInfos={lastBitrates:{audio:t,video:t}},this._priv_throttleVideoBitrateWhenHidden=a,this._priv_videoResolutionLimit=r,this._priv_currentError=null,this._priv_contentInfos=null,this._priv_contentEventsMemory={},this._priv_reloadingMetadata={},this._priv_lastAutoPlay=!1,this._priv_worker=null,this._priv_segmentSinkMetricsCallback=null;let l=()=>{this.trigger("volumeChange",{volume:s.volume,muted:s.muted})};s.addEventListener("volumechange",l),c.signal.register(()=>{s.removeEventListener("volumechange",l)})}attachWorker(e){return new Promise((t,r)=>{var o;if(!yl())return m.warn("API: Cannot rely on a WebWorker: Worker API unavailable"),r(new Cn("INCOMPATIBLE_ERROR","Worker unavailable"));if(typeof e.workerUrl=="string")this._priv_worker=new Worker(e.workerUrl);else{let a=URL.createObjectURL(e.workerUrl);this._priv_worker=new Worker(a),URL.revokeObjectURL(a)}this._priv_worker.onerror=a=>{this._priv_worker!==null&&(this._priv_worker.terminate(),this._priv_worker=null),m.error("API: Unexpected worker error",a.error instanceof Error?a.error:void 0),r(new Cn("UNKNOWN_ERROR",'Unexpected Worker "error" event'))};let i=a=>{let s=a.data;s.type==="init-error"?(m.warn("API: Processing InitError worker message: detaching worker"),this._priv_worker!==null&&(this._priv_worker.removeEventListener("message",i),this._priv_worker.terminate(),this._priv_worker=null),r(new Cn("SETUP_ERROR","Worker parser initialization failed: "+s.value.errorMessage))):s.type==="init-success"&&(m.info("API: InitSuccess received from worker."),this._priv_worker!==null&&this._priv_worker.removeEventListener("message",i),t())};this._priv_worker.addEventListener("message",i),m.debug("---> Sending To Worker:","init"),this._priv_worker.postMessage({type:"init",value:{dashWasmUrl:e.dashWasmUrl,logLevel:m.getLevel(),sendBackLogs:Mn(),date:Date.now(),timestamp:V(),hasVideo:((o=this.videoElement)==null?void 0:o.nodeName.toLowerCase())==="video",hasMseInWorker:Mf}}),m.addEventListener("onLogLevelChange",a=>{this._priv_worker!==null&&(m.debug("---> Sending To Worker:","log-level-update"),this._priv_worker.postMessage({type:"log-level-update",value:{logLevel:a,sendBackLogs:Mn()}}))},this._destroyCanceller.signal)})}getCurrentModeInformation(){return this._priv_contentInfos===null?null:{isDirectFile:this._priv_contentInfos.isDirectFile,useWorker:this._priv_contentInfos.useWorker}}addEventListener(e,t){return super.addEventListener(e,t)}stop(){this._priv_contentInfos!==null&&this._priv_contentInfos.currentContentCanceller.cancel(),this._priv_cleanUpCurrentContentState(),this.state!=="STOPPED"&&this._priv_setPlayerState("STOPPED")}dispose(){this.stop(),this.videoElement!==null&&(Nt._priv_deregisterVideoElement(this.videoElement),Nn(this.videoElement).catch(e=>{let t=e instanceof Error?e.message:"Unknown error";m.error("API: Could not dispose decryption resources: "+t)})),this._destroyCanceller.cancel(),this._priv_reloadingMetadata={},this.videoElement=null,this._priv_worker!==null&&(this._priv_worker.terminate(),this._priv_worker=null)}loadVideo(e){let t=Bm(e);m.info("API: Calling loadvideo",t.url,t.transport),this._priv_reloadingMetadata={options:t},this._priv_initializeContentPlayback(t),this._priv_lastAutoPlay=t.autoPlay}reload(e){var c,l,f;let{options:t,manifest:r,reloadPosition:i,reloadInPause:o}=this._priv_reloadingMetadata;if(t===void 0)throw new Error("API: Can't reload without having previously loaded a content.");Um(e);let a;if(((c=e==null?void 0:e.reloadAt)==null?void 0:c.position)!==void 0)a={position:e.reloadAt.position};else if(((l=e==null?void 0:e.reloadAt)==null?void 0:l.relative)!==void 0){if(i===void 0)throw new Error("Can't reload to a relative position when previous content was not loaded.");a={position:e.reloadAt.relative+i}}else i!==void 0&&(a={position:i});let s;(e==null?void 0:e.autoPlay)!==void 0?s=e.autoPlay:o!==void 0&&(s=!o);let d;(e==null?void 0:e.keySystems)!==void 0?d=e.keySystems:((f=this._priv_reloadingMetadata.options)==null?void 0:f.keySystems)!==void 0&&(d=this._priv_reloadingMetadata.options.keySystems);let u=Se(ce({},t),{initialManifest:r});a!==void 0&&(u.startAt=a),s!==void 0&&(u.autoPlay=s),d!==void 0&&(u.keySystems=d),this._priv_initializeContentPlayback(u)}createDebugElement(e){if(ue.createDebugElement===null)throw new Error("Feature `DEBUG_ELEMENT` not added to the RxPlayer");let t=new F;return ue.createDebugElement(e,this,t.signal),{dispose(){t.cancel()}}}_priv_initializeContentPlayback(e){var G,K,ne,j,se,oe;let{autoPlay:t,defaultAudioTrackSwitchingMode:r,enableFastSwitching:i,initialManifest:o,keySystems:a,lowLatencyMode:s,minimumManifestUpdateInterval:d,requestConfig:u,onCodecSwitch:c,startAt:l,transport:f,checkMediaSegmentIntegrity:p,manifestLoader:g,referenceDateTime:S,segmentLoader:I,serverSyncInfos:y,mode:T,__priv_manifestUpdateUrl:v,__priv_patchLastSegmentInSidx:E,url:R}=e;if(this.videoElement===null)throw new Error("the attached video element is disposed");let k=f==="directfile",A=new F,C=this.videoElement,x,N=!1,D=null;if(k){if(ue.directfile===null)throw this.stop(),this._priv_currentError=null,new Error("DirectFile feature not activated in your build.");if(_(R))throw new Error("No URL for a DirectFile content");if(m.info("API: Initializing DirectFile mode in the main thread"),D=this._priv_initializeMediaElementTracksStore(A.signal),A.isUsed())return;x=new ue.directfile.initDirectFile({autoPlay:t,keySystems:a,speed:this._priv_speed,startAt:l,url:R})}else{let z={lowLatencyMode:s,maxRetry:(G=u.manifest)==null?void 0:G.maxRetry,requestTimeout:(K=u.manifest)==null?void 0:K.timeout,connectionTimeout:(ne=u.manifest)==null?void 0:ne.connectionTimeout,minimumManifestUpdateInterval:d,initialManifest:o},ae=Il(),$e={throttleBitrate:{},limitResolution:{}};this._priv_throttleVideoBitrateWhenHidden&&(ae?$e.throttleBitrate={video:dn(_c(this._priv_pictureInPictureRef,A.signal),Ke=>Ke?1/0:0,A.signal)}:m.warn("API: Can't apply throttleVideoBitrateWhenHidden because browser can't be trusted for visibility.")),this._priv_videoResolutionLimit==="videoElement"?ae?$e.limitResolution={video:vc(C,this._priv_pictureInPictureRef,A.signal)}:m.warn("API: Can't apply videoResolutionLimit because browser can't be trusted for video size."):this._priv_videoResolutionLimit==="screen"&&($e.limitResolution={video:Ec(A.signal)});let ye={initialBitrates:this._priv_bitrateInfos.lastBitrates,lowLatencyMode:s,throttlers:$e},Re=e.textTrackMode==="native"?{textTrackMode:"native"}:{textTrackMode:"html",textTrackElement:e.textTrackElement},Ut=Y({enableFastSwitching:i,onCodecSwitch:c},this._priv_bufferOptions),Qe={lowLatencyMode:s,maxRetry:(j=u.segment)==null?void 0:j.maxRetry,requestTimeout:(se=u.segment)==null?void 0:se.timeout,connectionTimeout:(oe=u.segment)==null?void 0:oe.connectionTimeout},Fe=ue.multithread!==null&&this._priv_worker!==null&&f==="dash"&&Qy.every(Ke=>_(e[Ke]))&&typeof e.representationFilter!="function";if(T==="main"||T==="auto"&&!Fe){if(ue.mainThreadMediaSourceInit===null)throw new Error("Cannot load video, neither in a WebWorker nor with the `MEDIA_SOURCE_MAIN` feature");let Ke=ue.transports[f];if(typeof Ke!="function")throw this.stop(),this._priv_currentError=null,new Error(`transport "${f}" not supported`);let gt=typeof e.representationFilter=="string"?Jl(e.representationFilter):e.representationFilter;m.info("API: Initializing MediaSource mode in the main thread");let ht=Ke({lowLatencyMode:s,checkMediaSegmentIntegrity:p,manifestLoader:g,referenceDateTime:S,representationFilter:gt,segmentLoader:I,serverSyncInfos:y,__priv_manifestUpdateUrl:v,__priv_patchLastSegmentInSidx:E});x=new ue.mainThreadMediaSourceInit({adaptiveOptions:ye,autoPlay:t,bufferOptions:Ut,keySystems:a,lowLatencyMode:s,transport:ht,manifestRequestSettings:z,segmentRequestOptions:Qe,speed:this._priv_speed,startAt:l,textTrackOptions:Re,url:R})}else{if(ue.multithread===null)throw new Error("Cannot load video in multithread mode: `MULTI_THREAD` feature not imported.");if(this._priv_worker===null)throw new Error("Cannot load video in multithread mode: `attachWorker` method not called.");J(typeof e.representationFilter!="function"),N=!0,m.info("API: Initializing MediaSource mode in a WebWorker");let Ke={lowLatencyMode:s,checkMediaSegmentIntegrity:p,referenceDateTime:S,serverSyncInfos:y,manifestLoader:void 0,segmentLoader:void 0,representationFilter:e.representationFilter,__priv_manifestUpdateUrl:v,__priv_patchLastSegmentInSidx:E};x=new ue.multithread.init({adaptiveOptions:ye,autoPlay:t,bufferOptions:Ut,keySystems:a,lowLatencyMode:s,transportOptions:Ke,manifestRequestSettings:z,segmentRequestOptions:Qe,speed:this._priv_speed,startAt:l,textTrackOptions:Re,worker:this._priv_worker,url:R})}}let L={contentId:$y(),originalUrl:R,currentContentCanceller:A,defaultAudioTrackSwitchingMode:r,initializer:x,isDirectFile:k,manifest:null,currentPeriod:null,activeAdaptations:null,activeRepresentations:null,tracksStore:null,mediaElementTracksStore:D,useWorker:N};x.addEventListener("error",z=>{this._priv_onFatalError(z,L)}),x.addEventListener("warning",z=>{let ae=xe(z,{defaultCode:"NONE",defaultReason:"An unknown error happened."});m.warn("API: Sending warning:",ae),this.trigger("warning",ae)}),x.addEventListener("reloadingMediaSource",z=>{L.tracksStore!==null&&L.tracksStore.resetPeriodObjects(),this._priv_segmentSinkMetricsCallback=null,this._priv_lastAutoPlay=z.autoPlay}),x.addEventListener("inbandEvents",z=>this.trigger("inbandEvents",z)),x.addEventListener("streamEvent",z=>this.trigger("streamEvent",z)),x.addEventListener("streamEventSkip",z=>this.trigger("streamEventSkip",z)),x.addEventListener("activePeriodChanged",z=>this._priv_onActivePeriodChanged(L,z)),x.addEventListener("periodStreamReady",z=>this._priv_onPeriodStreamReady(L,z)),x.addEventListener("periodStreamCleared",z=>this._priv_onPeriodStreamCleared(L,z)),x.addEventListener("representationChange",z=>this._priv_onRepresentationChange(L,z)),x.addEventListener("adaptationChange",z=>this._priv_onAdaptationChange(L,z)),x.addEventListener("bitrateEstimateChange",z=>this._priv_onBitrateEstimateChange(z)),x.addEventListener("manifestReady",z=>this._priv_onManifestReady(L,z)),x.addEventListener("manifestUpdate",z=>this._priv_onManifestUpdate(L,z)),x.addEventListener("decipherabilityUpdate",z=>this._priv_onDecipherabilityUpdate(L,z)),x.addEventListener("loaded",z=>{this._priv_segmentSinkMetricsCallback=z.getSegmentSinkMetrics}),x.prepare(),this.stop();let P=new ro(C,{withMediaSource:!k,lowLatencyMode:s});A.signal.register(()=>{P.stop()});let M=Vm(x,C,P,A.signal);A.signal.register(()=>{x.dispose()});let O=z=>{switch(z){case"STOPPED":case"RELOADING":case"LOADING":break;case"ENDED":this._priv_reloadingMetadata.reloadInPause=!0,this._priv_reloadingMetadata.reloadPosition=P.getReference().getValue().position.getPolled();break;default:let ae=P.getReference().getValue();this._priv_reloadingMetadata.reloadInPause=ae.paused,this._priv_reloadingMetadata.reloadPosition=ae.position.getWanted();break}},U=null,H=z=>{U!==null&&(U.cancel(),U=null),M.onUpdate((ae,$e)=>{rr(ae)&&($e(),U!==null&&U.cancel(),U=new F,U.linkToSignal(A.signal),z!==!C.paused&&(C.paused?this.trigger("pause",null):this.trigger("play",null)),Km(C,()=>this.trigger("play",null),()=>this.trigger("pause",null),A.signal))},{emitCurrentValue:!1,clearSignal:A.signal})};H(t),x.addEventListener("reloadingMediaSource",z=>{H(z.autoPlay)}),this._priv_currentError=null,this._priv_contentInfos=L;let q=null;M.onUpdate(z=>{O(z),this._priv_setPlayerState(z),!A.isUsed()&&(q!==null?rr(this.state)||(q.cancel(),q=null):rr(this.state)&&(q=new F,q.linkToSignal(A.signal),Fm(C,P,()=>this.trigger("seeking",null),()=>this.trigger("seeked",null),q.signal)))},{emitCurrentValue:!0,clearSignal:A.signal}),P.listen(z=>{O(this.state),this._priv_triggerPositionUpdate(L,z)},{clearSignal:A.signal}),A.signal.register(()=>{x.removeEventListener()}),this._priv_contentLock.onUpdate((z,ae)=>{z||(ae(),x.start(C,P))},{emitCurrentValue:!0,clearSignal:A.signal})}getError(){return this._priv_currentError}getVideoElement(){return this.videoElement}getPlayerState(){return this.state}isContentLoaded(){return!$(["LOADING","RELOADING","STOPPED"],this.state)}isBuffering(){return $(["BUFFERING","SEEKING","LOADING","RELOADING"],this.state)}isPaused(){return this.videoElement?$(["LOADING","RELOADING"],this.state)?!this._priv_lastAutoPlay:this.videoElement.paused:!0}isLive(){if(this._priv_contentInfos===null)return!1;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;return e||t===null?!1:t.isLive}areTrickModeTracksEnabled(){return this._priv_preferTrickModeTracks}getContentUrls(){if(this._priv_contentInfos===null)return;let{isDirectFile:e,manifest:t,originalUrl:r}=this._priv_contentInfos;if(e)return r===void 0?void 0:[r];if(t!==null)return t.uris}updateContentUrls(e,t){if(this._priv_contentInfos===null)throw new Error("No content loaded");let r=(t==null?void 0:t.refresh)===!0;this._priv_contentInfos.initializer.updateContentUrls(e,r)}getMediaDuration(){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.duration}getCurrentBufferGap(){if(this.videoElement===null)throw new Error("Disposed player");let e=this.videoElement,t=Ll(e.buffered,e.currentTime);return t===1/0?0:t}getWallClockTime(){if(this.videoElement===null)throw new Error("Disposed player");if(this._priv_contentInfos===null)return this.videoElement.currentTime;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;if(e){let r=no(this.videoElement);return(r!=null?r:0)+this.videoElement.currentTime}if(t!==null){let r=this.videoElement.currentTime,i=t.availabilityStartTime!==void 0?t.availabilityStartTime:0;return r+i}return 0}getPosition(){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.currentTime}getLastStoredContentPosition(){return this._priv_reloadingMetadata.reloadPosition}getPlaybackRate(){return this._priv_speed.getValue()}setPlaybackRate(e,t){var o;e!==this._priv_speed.getValue()&&this._priv_speed.setValue(e);let r=t==null?void 0:t.preferTrickModeTracks;if(typeof r!="boolean")return;this._priv_preferTrickModeTracks=r;let i=(o=this._priv_contentInfos)==null?void 0:o.tracksStore;_(i)||(r&&!i.isTrickModeEnabled()?i.enableVideoTrickModeTracks():!r&&i.isTrickModeEnabled()&&i.disableVideoTrickModeTracks())}getVideoRepresentation(){let e=this.__priv_getCurrentRepresentations();if(e!==null)return e.video}getAudioRepresentation(){let e=this.__priv_getCurrentRepresentations();if(e!==null)return e.audio}play(){if(this.videoElement===null)throw new Error("Disposed player");let e=this.videoElement.play();return _(e)||typeof e.catch!="function"?Promise.resolve():e.catch(t=>{if(t.name==="NotAllowedError"){let r=new Z("MEDIA_ERR_PLAY_NOT_ALLOWED",t.toString());this.trigger("warning",r)}throw t})}pause(){if(this.videoElement===null)throw new Error("Disposed player");this.videoElement.pause()}seekTo(e){var o;if(this.videoElement===null)throw new Error("Disposed player");if(this._priv_contentInfos===null)throw new Error("player: no content loaded");let{isDirectFile:t,manifest:r}=this._priv_contentInfos;if(!t&&r===null)throw new Error("player: the content did not load yet");let i;if(typeof e=="number")i=e;else if(typeof e=="object"){let a=e,s=this.videoElement.currentTime;if(!_(a.relative))i=s+a.relative;else if(!_(a.position))i=a.position;else{if(_(a.wallClockTime))throw new Error('invalid time object. You must set one of the following properties: "relative", "position" or "wallClockTime"');if(r!==null)i=a.wallClockTime-((o=r.availabilityStartTime)!=null?o:0);else if(t&&this.videoElement!==null){let d=no(this.videoElement);d!==void 0&&(i=a.wallClockTime-d)}i===void 0&&(i=a.wallClockTime)}}if(i===void 0)throw new Error("invalid time given");return m.info("API: API Seek to",i),this.videoElement.currentTime=i,i}getVolume(){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.volume}setVolume(e){if(this.videoElement===null)throw new Error("Disposed player");let t=this.videoElement;e!==t.volume&&(t.volume=e)}isMute(){var e;return((e=this.videoElement)==null?void 0:e.muted)===!0}mute(){if(this.videoElement===null)throw new Error("Disposed player");this.videoElement.muted||(this.videoElement.muted=!0)}unMute(){if(this.videoElement===null)throw new Error("Disposed player");this.videoElement.muted&&(this.videoElement.muted=!1)}setMaxBufferBehind(e){this._priv_bufferOptions.maxBufferBehind.setValue(e)}setMaxBufferAhead(e){this._priv_bufferOptions.maxBufferAhead.setValue(e)}setWantedBufferAhead(e){this._priv_bufferOptions.wantedBufferAhead.setValue(e)}setMaxVideoBufferSize(e){this._priv_bufferOptions.maxVideoBufferSize.setValue(e)}getMaxBufferBehind(){return this._priv_bufferOptions.maxBufferBehind.getValue()}getMaxBufferAhead(){return this._priv_bufferOptions.maxBufferAhead.getValue()}getWantedBufferAhead(){return this._priv_bufferOptions.wantedBufferAhead.getValue()}getMaxVideoBufferSize(){return this._priv_bufferOptions.maxVideoBufferSize.getValue()}getCurrentPeriod(){var t;let e=(t=this._priv_contentInfos)==null?void 0:t.currentPeriod;return _(e)?null:{id:e.id,start:e.start,end:e.end}}getKeySystemConfiguration(){if(this.videoElement===null)throw new Error("Disposed player");let e=Hn(this.videoElement);return e===null?null:{keySystem:e[0],configuration:e[1]}}getAvailablePeriods(){if(this._priv_contentInfos===null)return[];let{isDirectFile:e,tracksStore:t}=this._priv_contentInfos;return e?[]:t===null?[]:t.getAvailablePeriods().slice()}getAvailableAudioTracks(e){var i;if(this._priv_contentInfos===null)return[];let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?(i=r==null?void 0:r.getAvailableAudioTracks())!=null?i:[]:this._priv_callTracksStoreGetterSetter(e,[],(o,a)=>{var s;return(s=o.getAvailableAudioTracks(a))!=null?s:[]})}getAvailableTextTracks(e){var i;if(this._priv_contentInfos===null)return[];let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?(i=r==null?void 0:r.getAvailableTextTracks())!=null?i:[]:this._priv_callTracksStoreGetterSetter(e,[],(o,a)=>{var s;return(s=o.getAvailableTextTracks(a))!=null?s:[]})}getAvailableVideoTracks(e){var i;if(this._priv_contentInfos===null)return[];let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?(i=r==null?void 0:r.getAvailableVideoTracks())!=null?i:[]:this._priv_callTracksStoreGetterSetter(e,[],(o,a)=>{var s;return(s=o.getAvailableVideoTracks(a))!=null?s:[]})}getAudioTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?r===null?void 0:r.getChosenAudioTrack():this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.getChosenAudioTrack(o))}getTextTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?r===null?void 0:r.getChosenTextTrack():this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.getChosenTextTrack(o))}getVideoTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?r===null?void 0:r.getChosenVideoTrack():this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.getChosenVideoTrack(o))}setAudioTrack(e){var u;if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)try{let c=typeof e=="string"?e:e.trackId;r==null||r.setAudioTrackById(c);return}catch(c){throw new Error("player: unknown audio track")}let i,o,a,s=null,d;return typeof e=="string"?o=e:(o=e.trackId,i=e.periodId,a=e.switchingMode,s=(u=e.lockedRepresentations)!=null?u:null,d=e.relativeResumingPosition),this._priv_callTracksStoreGetterSetter(i,void 0,(c,l)=>c.setAudioTrack({periodRef:l,trackId:o,switchingMode:a,lockedRepresentations:s,relativeResumingPosition:d}))}setTextTrack(e){if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)try{let a=typeof e=="string"?e:e.trackId;r==null||r.setTextTrackById(a);return}catch(a){throw new Error("player: unknown text track")}let i,o;return typeof e=="string"?o=e:(o=e.trackId,i=e.periodId),this._priv_callTracksStoreGetterSetter(i,void 0,(a,s)=>a.setTextTrack(s,o))}disableTextTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t){r==null||r.disableTextTrack();return}return this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.disableTrack(o,"text"))}setVideoTrack(e){var u;if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)try{let c=typeof e=="string"?e:e.trackId;r==null||r.setVideoTrackById(c);return}catch(c){throw new Error("player: unknown video track")}let i,o,a,s=null,d;return typeof e=="string"?o=e:(o=e.trackId,i=e.periodId,a=e.switchingMode,s=(u=e.lockedRepresentations)!=null?u:null,d=e.relativeResumingPosition),this._priv_callTracksStoreGetterSetter(i,void 0,(c,l)=>c.setVideoTrack({periodRef:l,trackId:o,switchingMode:a,lockedRepresentations:s,relativeResumingPosition:d}))}disableVideoTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t&&r!==null?r.disableVideoTrack():this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.disableTrack(o,"video"))}lockVideoRepresentations(e){if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t}=this._priv_contentInfos;if(t)throw new Error("Cannot lock video Representations in directfile mode.");let r,i,o;return Array.isArray(e)?(r=e,i=void 0):(r=e.representations,i=e.periodId,o=e.switchingMode),this._priv_callTracksStoreGetterSetter(i,void 0,(a,s)=>a.lockVideoRepresentations(s,{representations:r,switchingMode:o}))}lockAudioRepresentations(e){if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t}=this._priv_contentInfos;if(t)throw new Error("Cannot lock audio Representations in directfile mode.");let r,i,o;return Array.isArray(e)?(r=e,i=void 0):(r=e.representations,i=e.periodId,o=e.switchingMode),this._priv_callTracksStoreGetterSetter(i,void 0,(a,s)=>a.lockAudioRepresentations(s,{representations:r,switchingMode:o}))}getLockedVideoRepresentations(e){if(this._priv_contentInfos===null)return null;let{isDirectFile:t}=this._priv_contentInfos;return t?null:this._priv_callTracksStoreGetterSetter(e,null,(r,i)=>r.getLockedVideoRepresentations(i))}getLockedAudioRepresentations(e){if(this._priv_contentInfos===null)return null;let{isDirectFile:t}=this._priv_contentInfos;return t?null:this._priv_callTracksStoreGetterSetter(e,null,(r,i)=>r.getLockedAudioRepresentations(i))}unlockVideoRepresentations(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t}=this._priv_contentInfos;if(!t)return this._priv_callTracksStoreGetterSetter(e,void 0,(r,i)=>r.unlockVideoRepresentations(i))}unlockAudioRepresentations(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t}=this._priv_contentInfos;if(!t)return this._priv_callTracksStoreGetterSetter(e,void 0,(r,i)=>r.unlockAudioRepresentations(i))}getMinimumPosition(){if(this._priv_contentInfos===null)return null;if(this._priv_contentInfos.isDirectFile)return 0;let{manifest:e}=this._priv_contentInfos;return e!==null?ln(e):null}getLivePosition(){if(this._priv_contentInfos===null)return null;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;if(!e)return(t==null?void 0:t.isLive)!==!0?null:cn(t)}getMaximumPosition(){if(this._priv_contentInfos===null)return null;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;if(e){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.duration}return t!==null?!t.isDynamic&&this.videoElement!==null?this.videoElement.duration:It(t):null}async __priv_getSegmentSinkMetrics(){if(this._priv_segmentSinkMetricsCallback!==null)return this._priv_segmentSinkMetricsCallback()}__priv_getManifest(){return this._priv_contentInfos===null?null:this._priv_contentInfos.manifest}__priv_getCurrentAdaptation(){if(this._priv_contentInfos===null)return null;let{currentPeriod:e,activeAdaptations:t}=this._priv_contentInfos;return e===null||t===null||_(t[e.id])?null:t[e.id]}__priv_getCurrentRepresentations(){if(this._priv_contentInfos===null)return null;let{currentPeriod:e,activeRepresentations:t}=this._priv_contentInfos;return e===null||t===null||_(t[e.id])?null:t[e.id]}_priv_cleanUpCurrentContentState(){var t,r,i,o;m.debug("Locking `contentLock` to clean-up the current content."),this._priv_contentLock.setValue(!0),(r=(t=this._priv_contentInfos)==null?void 0:t.tracksStore)==null||r.dispose(),(o=(i=this._priv_contentInfos)==null?void 0:i.mediaElementTracksStore)==null||o.dispose(),this._priv_contentInfos=null,this._priv_segmentSinkMetricsCallback=null,this._priv_contentEventsMemory={};let e=()=>{this.videoElement!==null&&(m.debug("Unlocking `contentLock`. Next content can begin."),this._priv_contentLock.setValue(!1))};_(this.videoElement)?e():ko(this.videoElement).then(()=>{m.debug("API: DRM session cleaned-up with success!"),e()},a=>{m.error("API: An error arised when trying to clean-up the DRM session:"+(a instanceof Error?a.toString():"Unknown Error")),e()})}_priv_onManifestReady(e,t){var i;if(e.contentId!==((i=this._priv_contentInfos)==null?void 0:i.contentId))return;e.manifest=t,t.manifestFormat===0&&(this._priv_reloadingMetadata.manifest=t);let r=new Lm({preferTrickModeTracks:this._priv_preferTrickModeTracks,defaultAudioTrackSwitchingMode:e.defaultAudioTrackSwitchingMode});e.tracksStore=r,r.addEventListener("newAvailablePeriods",o=>{this.trigger("newAvailablePeriods",o)}),r.addEventListener("brokenRepresentationsLock",o=>{this.trigger("brokenRepresentationsLock",o)}),r.addEventListener("trackUpdate",o=>{var s,d;this.trigger("trackUpdate",o);let a=(d=(s=this._priv_contentInfos)==null?void 0:s.currentPeriod)!=null?d:void 0;o.reason==="no-playable-representation"&&o.period.id===(a==null?void 0:a.id)&&this._priv_onAvailableTracksMayHaveChanged(o.trackType)}),e.tracksStore.addEventListener("warning",o=>{this.trigger("warning",o)}),e.tracksStore.addEventListener("error",o=>{this._priv_onFatalError(o,e)}),e.tracksStore.onManifestUpdate(t)}_priv_onManifestUpdate(e,t){var o,a,s;if(this._priv_contentInfos===null||this._priv_contentInfos.manifest===null)return;_(e==null?void 0:e.tracksStore)||e.tracksStore.onManifestUpdate(this._priv_contentInfos.manifest);let r=(a=(o=this._priv_contentInfos)==null?void 0:o.currentPeriod)!=null?a:void 0,i=(s=this._priv_contentInfos)==null?void 0:s.tracksStore;if(!(r===void 0||_(i))){for(let d of t.updatedPeriods)if(d.period.id===r.id&&(d.result.addedAdaptations.length>0||d.result.removedAdaptations.length>0)){if(i.getPeriodObjectFromPeriod(r)===void 0)return;this._priv_onAvailableTracksMayHaveChanged("audio"),this._priv_onAvailableTracksMayHaveChanged("text"),this._priv_onAvailableTracksMayHaveChanged("video")}}}_priv_onDecipherabilityUpdate(e,t){if(e===null||e.manifest===null)return;_(e==null?void 0:e.tracksStore)||e.tracksStore.onDecipherabilityUpdates();let r=t.reduce((i,o)=>{var s,d,u;if(!(X(i,c=>c[0].id===o.period.id&&c[1]===o.adaptation.type)!==void 0)){let c=e.tracksStore;if(c===null)return i;let l=!1,f=c.getPeriodObjectFromPeriod(o.period);if(f===void 0)return i;switch(o.adaptation.type){case"audio":l=((s=c.getChosenAudioTrack(f))==null?void 0:s.id)===o.adaptation.id;break;case"video":l=((d=c.getChosenVideoTrack(f))==null?void 0:d.id)===o.adaptation.id;break;case"text":l=((u=c.getChosenTextTrack(f))==null?void 0:u.id)===o.adaptation.id;break}l&&i.push([o.period,o.adaptation.type])}return i},[]);for(let[i,o]of r)this._priv_triggerEventIfNotStopped("representationListUpdate",{period:{start:i.start,end:i.end,id:i.id},trackType:o,reason:"decipherability-update"},e.currentContentCanceller.signal)}_priv_onActivePeriodChanged(e,{period:t}){var s,d,u,c,l,f;if(e.contentId!==((s=this._priv_contentInfos)==null?void 0:s.contentId))return;e.currentPeriod=t;let r=e.currentContentCanceller.signal;this._priv_contentEventsMemory.periodChange!==t&&(this._priv_contentEventsMemory.periodChange=t,this._priv_triggerEventIfNotStopped("periodChange",{start:t.start,end:t.end,id:t.id},r)),this._priv_triggerEventIfNotStopped("availableAudioTracksChange",this.getAvailableAudioTracks(),r),this._priv_triggerEventIfNotStopped("availableTextTracksChange",this.getAvailableTextTracks(),r),this._priv_triggerEventIfNotStopped("availableVideoTracksChange",this.getAvailableVideoTracks(),r);let i=(d=this._priv_contentInfos)==null?void 0:d.tracksStore;if(_(i))this._priv_triggerEventIfNotStopped("audioTrackChange",null,r),this._priv_triggerEventIfNotStopped("textTrackChange",null,r),this._priv_triggerEventIfNotStopped("videoTrackChange",null,r);else{let p=i.getPeriodObjectFromPeriod(t);if(p){let g=i.getChosenAudioTrack(p);this._priv_triggerEventIfNotStopped("audioTrackChange",g,r);let S=i.getChosenTextTrack(p);this._priv_triggerEventIfNotStopped("textTrackChange",S,r);let I=i.getChosenVideoTrack(p);this._priv_triggerEventIfNotStopped("videoTrackChange",I,r)}}let o=(c=(u=this.__priv_getCurrentRepresentations())==null?void 0:u.audio)!=null?c:null;this._priv_triggerEventIfNotStopped("audioRepresentationChange",o,r);let a=(f=(l=this.__priv_getCurrentRepresentations())==null?void 0:l.video)!=null?f:null;this._priv_triggerEventIfNotStopped("videoRepresentationChange",a,r)}_priv_onPeriodStreamReady(e,t){var s;if(e.contentId!==((s=this._priv_contentInfos)==null?void 0:s.contentId))return;let{type:r,period:i,adaptationRef:o}=t,a=e.tracksStore;switch(r){case"video":case"audio":case"text":_(a)?(m.error(`API: TracksStore not instanciated for a new ${r} period`),o.setValue(null)):a.addTrackReference(r,i,o);break;default:Xe(r)}}_priv_onPeriodStreamCleared(e,t){var d;if(e.contentId!==((d=this._priv_contentInfos)==null?void 0:d.contentId))return;let{type:r,period:i}=t,o=e.tracksStore;switch(r){case"audio":case"text":case"video":_(o)||o.removeTrackReference(r,i);break}let{activeAdaptations:a,activeRepresentations:s}=e;if(!_(a)&&!_(a[i.id])){let u=a[i.id];delete u[r],Object.keys(u).length===0&&delete a[i.id]}if(!_(s)&&!_(s[i.id])){let u=s[i.id];delete u[r],Object.keys(u).length===0&&delete s[i.id]}}_priv_onAdaptationChange(e,{type:t,adaptation:r,period:i}){var c;if(e.contentId!==((c=this._priv_contentInfos)==null?void 0:c.contentId))return;e.activeAdaptations===null&&(e.activeAdaptations={});let{activeAdaptations:o,currentPeriod:a}=e,s=o[i.id];_(s)?o[i.id]={[t]:r}:s[t]=r;let{tracksStore:d}=e,u=e.currentContentCanceller.signal;if(d!==null&&a!==null&&!_(i)&&i.id===a.id){let l=d.getPeriodObjectFromPeriod(i);if(l===void 0)return;switch(t){case"audio":let f=d.getChosenAudioTrack(l);this._priv_triggerEventIfNotStopped("audioTrackChange",f,u);break;case"text":let p=d.getChosenTextTrack(l);this._priv_triggerEventIfNotStopped("textTrackChange",p,u);break;case"video":let g=d.getChosenVideoTrack(l);this._priv_triggerEventIfNotStopped("videoTrackChange",g,u);break}}}_priv_onRepresentationChange(e,{type:t,period:r,representation:i}){var d;if(e.contentId!==((d=this._priv_contentInfos)==null?void 0:d.contentId))return;e.activeRepresentations===null&&(e.activeRepresentations={});let{activeRepresentations:o,currentPeriod:a}=e,s=o[r.id];if(_(s)?o[r.id]={[t]:i}:s[t]=i,!_(r)&&a!==null&&a.id===r.id){let u=this._priv_contentInfos.currentContentCanceller.signal;t==="video"?this._priv_triggerEventIfNotStopped("videoRepresentationChange",i,u):t==="audio"&&this._priv_triggerEventIfNotStopped("audioRepresentationChange",i,u)}}_priv_onBitrateEstimateChange({type:e,bitrate:t}){t!==void 0&&(this._priv_bitrateInfos.lastBitrates[e]=t),this.trigger("__priv_bitrateEstimateChange",{type:e,bitrate:t})}_priv_setPlayerState(e){this.state!==e&&(this.state=e,m.info("API: playerStateChange event",e),this.trigger("playerStateChange",e))}_priv_triggerPositionUpdate(e,t){var s,d;if(e.contentId!==((s=this._priv_contentInfos)==null?void 0:s.contentId))return;let{isDirectFile:r,manifest:i}=e;if(!r&&i===null||_(t))return;let o=i!==null?It(i):void 0,a={position:t.position.getPolled(),duration:t.duration,playbackRate:t.playbackRate,maximumPosition:o,bufferGap:t.bufferGap===void 0||!isFinite(t.bufferGap)?0:t.bufferGap};if(i!==null&&i.isLive&&t.position.getPolled()>0){let u=(d=i.availabilityStartTime)!=null?d:0;a.wallClockTime=t.position.getPolled()+u;let c=cn(i);c!==void 0&&(a.liveGap=c-t.position.getPolled())}else if(r&&this.videoElement!==null){let u=no(this.videoElement);u!==void 0&&(a.wallClockTime=u+t.position.getPolled())}this.trigger("positionUpdate",a)}_priv_triggerEventIfNotStopped(e,t,r){r.isCancelled()||this.trigger(e,t)}_priv_initializeMediaElementTracksStore(e){var r,i,o;J(ue.directfile!==null,"Initializing `MediaElementTracksStore` without Directfile feature"),J(this.videoElement!==null,"Initializing `MediaElementTracksStore` on a disposed RxPlayer");let t=new ue.directfile.mediaElementTracksStore(this.videoElement);return this._priv_triggerEventIfNotStopped("availableAudioTracksChange",t.getAvailableAudioTracks(),e),this._priv_triggerEventIfNotStopped("availableVideoTracksChange",t.getAvailableVideoTracks(),e),this._priv_triggerEventIfNotStopped("availableTextTracksChange",t.getAvailableTextTracks(),e),this._priv_triggerEventIfNotStopped("audioTrackChange",(r=t.getChosenAudioTrack())!=null?r:null,e),this._priv_triggerEventIfNotStopped("textTrackChange",(i=t.getChosenTextTrack())!=null?i:null,e),this._priv_triggerEventIfNotStopped("videoTrackChange",(o=t.getChosenVideoTrack())!=null?o:null,e),t.addEventListener("availableVideoTracksChange",a=>this.trigger("availableVideoTracksChange",a)),t.addEventListener("availableAudioTracksChange",a=>this.trigger("availableAudioTracksChange",a)),t.addEventListener("availableTextTracksChange",a=>this.trigger("availableTextTracksChange",a)),t.addEventListener("audioTrackChange",a=>this.trigger("audioTrackChange",a)),t.addEventListener("videoTrackChange",a=>this.trigger("videoTrackChange",a)),t.addEventListener("textTrackChange",a=>this.trigger("textTrackChange",a)),t}_priv_callTracksStoreGetterSetter(e,t,r){var d,u;if(this._priv_contentInfos===null||this._priv_contentInfos.tracksStore===null)return m.warn("API: Trying to call track API too soon"),t;let{tracksStore:i}=this._priv_contentInfos,o=(u=(d=this._priv_contentInfos)==null?void 0:d.currentPeriod)!=null?u:void 0,a=e!=null?e:o==null?void 0:o.id;if(a===void 0)return t;let s=a===(o==null?void 0:o.id)?i.getPeriodObjectFromPeriod(o):i.getPeriodObjectFromId(a);return s===void 0?t:r(i,s)}_priv_onAvailableTracksMayHaveChanged(e,t){let r=this._priv_contentInfos;if(r===null)return;let{currentPeriod:i,tracksStore:o,currentContentCanceller:a}=r,s=a.signal;if(_(i)||o===null)return;let d=t!=null?t:o.getPeriodObjectFromPeriod(i);if(d!==void 0)switch(e){case"video":let u=o.getAvailableVideoTracks(d);this._priv_triggerEventIfNotStopped("availableVideoTracksChange",u!=null?u:[],s);break;case"audio":let c=o.getAvailableAudioTracks(d);this._priv_triggerEventIfNotStopped("availableAudioTracksChange",c!=null?c:[],s);break;case"text":let l=o.getAvailableTextTracks(d);this._priv_triggerEventIfNotStopped("availableTextTracksChange",l!=null?l:[],s);break;default:Xe(e)}}_priv_onFatalError(e,t){let r=xe(e,{defaultCode:"NONE",defaultReason:"An unknown error stopped content playback."});r.fatal=!0,t.currentContentCanceller.cancel(),this._priv_cleanUpCurrentContentState(),this._priv_currentError=r,m.error("API: The player stopped because of an error",r),this._priv_setPlayerState("STOPPED"),this._priv_currentError===r&&this.trigger("error",r)}};Nt._priv_currentlyUsedVideoElements=new WeakSet;var ka=Nt;ka.version="4.1.0";var zm=ka;var El=zm;Pa();El.addFeatures([hl,tu,au,su,rl,Zu,sl,el,Nu,fu,Yu,gu]);Mn()?m.setLevel("DEBUG"):h.CURRENT_ENV===h.DEV&&m.setLevel(b.CURRENT_LEVEL);var Cie=El;})();