@flowplayer/spins 0.3.2 → 0.4.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/index.js +51 -51
- package/dist/types.d.ts +6 -0
- package/package.json +7 -1
package/dist/index.js
CHANGED
|
@@ -1,53 +1,36 @@
|
|
|
1
|
-
var Xd=Object.create;var{getPrototypeOf:Jd,defineProperty:tl,getOwnPropertyNames:Qd}=Object;var Zd=Object.prototype.hasOwnProperty;var mn=(o,g,S)=>{S=o!=null?Xd(Jd(o)):{};let R=g||!o||!o.__esModule?tl(S,"default",{value:o,enumerable:!0}):S;for(let L of Qd(o))if(!Zd.call(R,L))tl(R,L,{get:()=>o[L],enumerable:!0});return R};var gn=(o,g)=>()=>(g||o((g={exports:{}}).exports,g),g.exports);var el=(o,g)=>{for(var S in g)tl(o,S,{get:g[S],enumerable:!0,configurable:!0,set:(R)=>g[S]=()=>R})};var Pc=gn((Nc)=>{Object.defineProperty(Nc,"__esModule",{value:!0});var Sh="mount",bh="retry",Th="error",Ah="contextmenu",_h="click",Lh="dblclick",wh="keyup",kh="keydown",Rh="load",Dh="mouseenter",Ch="mouseleave",Ih="mouseup",Oh="mousedown",xh="mousemove",Nh="touchstart",Ph="touchmove",Mh="touchend",Fh="touchcancel",Bh="resize",Uh="scroll",$h="fullscreenenter",Gh="fullscreenexit",Hh="fullscreenchange",Kh="loadedmetadata",Vh="loadeddata",Wh="progress",jh="timeupdate",qh="loadstart",Yh="volumechange",zh="pause",Xh="playing",Jh="play",Qh="waiting",Zh="canplay",tf="ended",ef="seeked",nf="seeking",rf="durationchange",sf="viewenter",af="viewleave",of="src",lf="reap",cf="qualities",df="qualitychange",uf="videoTracks",hf="quality:set",ff="tracks:video:select",mf="recommendationsready",gf="landscape",pf="portrait",vf="dvr",yf="live",Ef="recover",Sf="seek:queued",bf="seek:cancel",Tf="plugin:registered",Af="remotesession:started",_f="remotesession:ended",Lf="intersectionchange",wf="webkitneedkey",kf="renderplugin",Rf="audioonlysource",Df="error:fatal",Cf="config",If="state",Of="beforeplay",xf="beforepause",Nf="content:loadstart",Pf="cuepoints",Mf="cuepointstart",Ff="cuepointend",Bf="flowplayer:error";Nc.AUDIO_ONLY_SOURCE=Rf;Nc.BEFORE_PAUSE=xf;Nc.BEFORE_PLAY=Of;Nc.CAN_PLAY=Zh;Nc.CLICK=_h;Nc.CONFIG=Cf;Nc.CONTENT_REAL_LOAD_START=Nf;Nc.CONTEXT_MENU=Ah;Nc.CUEPOINTS=Pf;Nc.CUEPOINT_END=Ff;Nc.CUEPOINT_START=Mf;Nc.DATA=Vh;Nc.DBL_CLICK=Lh;Nc.DURATION_CHANGE=rf;Nc.DVR=vf;Nc.ENDED=tf;Nc.ERROR=Th;Nc.FULLSCREEN_CHANGE=Hh;Nc.FULLSCREEN_ENTER=$h;Nc.FULLSCREEN_EXIT=Gh;Nc.INTERSECTIONCHANGE=Lf;Nc.KEYDOWN=kh;Nc.KEYUP=wh;Nc.LANDSCAPE=gf;Nc.LIVE=yf;Nc.LOAD=Rh;Nc.LOAD_START=qh;Nc.METADATA=Kh;Nc.MOUNT=Sh;Nc.MOUSE_DOWN=Oh;Nc.MOUSE_ENTER=Dh;Nc.MOUSE_LEAVE=Ch;Nc.MOUSE_MOVE=xh;Nc.MOUSE_UP=Ih;Nc.NON_RECOVERABLE_ERROR=Df;Nc.PAUSE=zh;Nc.PLAY=Jh;Nc.PLAYING=Xh;Nc.PLUGIN_REGISTERED=Tf;Nc.PORTRAIT=pf;Nc.PROGRESS=Wh;Nc.QUALITIES=cf;Nc.QUALITY_CHANGE=df;Nc.REAP=lf;Nc.RECOMMENDATIONS_READY=mf;Nc.RECOVER=Ef;Nc.REMOTE_SESSION_ENDED=_f;Nc.REMOTE_SESSION_STARTED=Af;Nc.RENDER_PLUGIN=kf;Nc.RESIZE=Bh;Nc.RETRY=bh;Nc.SCROLL=Uh;Nc.SEEKED=ef;Nc.SEEKING=nf;Nc.SEEK_CANCEL=bf;Nc.SEEK_QUEUED=Sf;Nc.SET_QUALITY=hf;Nc.SOURCE=of;Nc.STANDARD_ERROR=Bf;Nc.STATE=If;Nc.TIME_UPDATE=jh;Nc.TOUCH_CANCEL=Fh;Nc.TOUCH_END=Mh;Nc.TOUCH_MOVE=Ph;Nc.TOUCH_START=Nh;Nc.VIDEO_TRACKS=uf;Nc.VIDEO_TRACK_SELECT=ff;Nc.VIEW_ENTER=sf;Nc.VIEW_LEAVE=af;Nc.VOLUME_CHANGE=Yh;Nc.WAITING=Qh;Nc.WEBKIT_NEEDKEY=wf});var Kc=gn((to,eo)=>{(function(o,g){typeof to=="object"&&typeof eo!="undefined"?eo.exports=g():typeof define=="function"&&define.amd?define(g):(o=typeof globalThis!="undefined"?globalThis:o||self).flowplayer=g()})(to,function(){let o=[],g=[];function S(){let h=typeof document!="undefined"&&typeof window!="undefined",p=h?navigator.userAgent:"",v=/iP(hone|od)/i.test(p)&&!/iPad/.test(p)&&!/IEMobile/i.test(p),k=/Android/.test(p)&&!/Firefox/.test(p),I=/^((?!chrome|android).)*safari/i.test(p),K=/chrome|crios/i.test(p)&&!/opr|opera|chromium|edg|ucbrowser|googlebot/i.test(p),Y=/firefox|fxios/i.test(p)&&!/seamonkey/i.test(p),$=/edg/i.test(p),Z=/opr|opera/i.test(p),rt=/SamsungBrowser/.test(p),Bt=rt&&/SMART-TV/.test(p);return{controls:!v,video:function(Vt){return h&&document.createElement("video").canPlayType(Vt)},lang:h&&window.navigator.language,android:k,iphone:v,safari:I,edge:$,opera:Z,chrome:K,firefox:Y,ios:h&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,samsung:rt,samsung_tv:rt&&Bt,touch:"ontouchstart"in window,tizen:"tizen"in window,webOS:"webos"in window}}let R="click",L="dblclick",P="mouseleave",F="mousemove",z="touchmove",j="fullscreenenter",Nt="fullscreenexit",ne="loadedmetadata",A="loadeddata",Ft="progress",H="loadstart",ft="pause",Ct="playing",Mt="waiting",lt="canplay",C="ended",W="seeked",G="seeking",J="reap",st="landscape",pt="portrait",at="config",gt="content:loadstart";var Rt=Object.freeze({__proto__:null,MOUNT:"mount",RETRY:"retry",ERROR:"error",CONTEXT_MENU:"contextmenu",CLICK:R,DBL_CLICK:L,KEYUP:"keyup",KEYDOWN:"keydown",LOAD:"load",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:P,MOUSE_UP:"mouseup",MOUSE_DOWN:"mousedown",MOUSE_MOVE:F,TOUCH_START:"touchstart",TOUCH_MOVE:z,TOUCH_END:"touchend",TOUCH_CANCEL:"touchcancel",RESIZE:"resize",SCROLL:"scroll",FULLSCREEN_ENTER:j,FULLSCREEN_EXIT:Nt,FULLSCREEN_CHANGE:"fullscreenchange",METADATA:ne,DATA:A,PROGRESS:Ft,TIME_UPDATE:"timeupdate",LOAD_START:H,VOLUME_CHANGE:"volumechange",PAUSE:ft,PLAYING:Ct,PLAY:"play",WAITING:Mt,CAN_PLAY:lt,ENDED:C,SEEKED:W,SEEKING:G,DURATION_CHANGE:"durationchange",VIEW_ENTER:"viewenter",VIEW_LEAVE:"viewleave",SOURCE:"src",REAP:J,QUALITIES:"qualities",QUALITY_CHANGE:"qualitychange",VIDEO_TRACKS:"videoTracks",SET_QUALITY:"quality:set",VIDEO_TRACK_SELECT:"tracks:video:select",RECOMMENDATIONS_READY:"recommendationsready",LANDSCAPE:st,PORTRAIT:pt,DVR:"dvr",LIVE:"live",RECOVER:"recover",SEEK_QUEUED:"seek:queued",SEEK_CANCEL:"seek:cancel",PLUGIN_REGISTERED:"plugin:registered",REMOTE_SESSION_STARTED:"remotesession:started",REMOTE_SESSION_ENDED:"remotesession:ended",INTERSECTIONCHANGE:"intersectionchange",WEBKIT_NEEDKEY:"webkitneedkey",RENDER_PLUGIN:"renderplugin",AUDIO_ONLY_SOURCE:"audioonlysource",NON_RECOVERABLE_ERROR:"error:fatal",CONFIG:at,STATE:"state",BEFORE_PLAY:"beforeplay",BEFORE_PAUSE:"beforepause",CONTENT_REAL_LOAD_START:gt,CUEPOINTS:"cuepoints",CUEPOINT_START:"cuepointstart",CUEPOINT_END:"cuepointend",STANDARD_ERROR:"flowplayer:error"});let Jt="flowplayer-ui",xt="flowplayer-logo",ce="flowplayer-control",dt="flowplayer-live-status",mt="flowplayer-elapsed-time",Dt="flowplayer-timeline-bar",te="flowplayer-volume-bar",re="flowplayer-header",we="flowplayer-middle",se="flowplayer-middle-zone",q="flowplayer-wait",tt="flowplayer-play-icon",Lt="flowplayer-pause-icon",_t="flowplayer-rewind-icon",Gt="flowplayer-volume-icon";var Oe=Object.freeze({__proto__:null,SUBTITLES_MENU:"flowplayer-subtitles-menu",SHARE_MENU:"flowplayer-share-menu",SPEED_MENU:"flowplayer-speed-menu",QUALITY_MENU:"flowplayer-quality-menu",AUDIO_MENU:"flowplayer-audio-menu",VIDEO_MENU:"flowplayer-video-menu",UI:Jt,LOGO:xt,CONTROL:ce,CONTROL_BUTTONS:"flowplayer-control-buttons",LIVE_STATUS:dt,ELAPSED:mt,TIMELINE:Dt,CHAPTERS_TIMELINE:"flowplayer-chapters-timeline-bar",CONTROL_DURATION:"flowplayer-control-duration",VOLUME_CONTROL:"flowplayer-volume-control",VOLUME_BAR:te,HEADER:re,HEADER_LEFT_ZONE:"flowplayer-header-left-zone",HEADER_RIGHT_ZONE:"flowplayer-header-right-zone",HEADER_DURATION:"flowplayer-header-duration",MIDDLE:we,MIDDLE_ZONE:se,WAIT:q,MIDDLE_BUTTONS:"flowplayer-middle-buttons",MIDDLE_LEFT_ZONE:"flowplayer-middle-left-zone",MIDDLE_RIGHT_ZONE:"flowplayer-middle-right-zone",ENDSCREEN_INTERSTITIAL:"flowplayer-endscreen-interstitial",ENDSCREEN_UP_NEXT:"flowplayer-endscreen-up-next",ENDSCREEN_GRID:"flowplayer-endscreen-grid",PLAYLIST_INTERSTITIAL:"flowplayer-playlist-interstitial",AIRPLAY_ICON:"flowplayer-airplay-icon",CHROMECAST_ICON:"flowplayer-chromecast-icon",SMALL_PLAY_ICON:"flowplayer-small-play-icon",SMALL_PAUSE_ICON:"flowplayer-small-pause-icon",PLAY_ICON:tt,PAUSE_ICON:Lt,FULLSCREEN_ENTER_ICON:"flowplayer-fullscreen-enter-icon",FULLSCREEN_EXIT_ICON:"flowplayer-fullscreen-exit-icon",SKIP_NEXT_ICON:"flowplayer-skip-next-icon",SKIP_PREVIOUS_ICON:"flowplayer-skip-previous-icon",FAST_FORWARD_ICON:"flowplayer-fast-forward-icon",REWIND_ICON:_t,SHARE_ICON:"flowplayer-share-icon",SUBTITLES_MENU_ICON:"flowplayer-subs-menu-icon",MENU_BACK_ICON:"flowplayer-menu-back",VOLUME_ICON:Gt,MUTE_ICON:"flowplayer-mute-icon",UNMUTE_ICON:"flowplayer-unmute-icon",CLOSE_ICON:"flowplayer-close-icon",FACEBOOK_ICON:"flowplayer-facebook-icon",TWITTER_ICON:"flowplayer-twitter-icon",LINK_ICON:"flowplayer-link-icon",EMBED_ICON:"flowplayer-embed-icon",LIVE_COUNTDOWN:"flowplayer-live-countdown",PLAYLIST_CONTROLS:"flowplayer-playlist-controls",THUMBNAILS_CAROUSEL:"flowplayer-thumbnails-carousel",ERROR_COMPONENT:"flowplayer-error",TV_MENU:"flowplayer-tv-menu",CUE_COMPONENT:"flowplayer-cue",SSAI_UI:"flowplayer-ssai-ui",SSAI_CONTROLS:"flowplayer-ssai-controls",SSAI_TIMELINE:"flowplayer-ssai-timeline",SSAI_INDICATOR:"flowplayer-ssai-indicator"});let Re="is-playing",ai="is-paused",Qe="is-loaded",Ge="is-loading",Se="is-starting",si="is-seeking",Xe="is-ended",Ii="is-live",Ze="is-waiting",Je="is-live-seeked",oi="no-timeline",Qt="will-play",qt="will-pause",$t="is-touched",he="is-hovered",de="is-in-viewport",Oi="is-source-processing";var en=Object.freeze({__proto__:null,PLAYING:Re,FULLSCREEN:"is-fullscreen",PAUSED:ai,MUTED:"is-muted",LOADED:Qe,LOADING:Ge,STARTING:Se,SEEKING:si,GRABBING:"is-grabbing",DISABLED:"is-disabled",SMALL:"is-small",TINY:"is-tiny",RTL:"is-rtl",TV:"is-tv",ENDED:Xe,LIVE:Ii,ERRORED:"is-error",WAITING:Ze,AUTOPLAY:"is-autoplay",SEAMLESS:"is-seamless",TOGGLING:"is-toggling",LIVE_SEEKED:Je,NO_DVR:oi,HAS_POSTER:"has-poster",WILL_PLAY:Qt,WILL_PAUSE:qt,MENU_OPENED:"has-menu-opened",TOUCHED:$t,HOVERED:he,TOUCH_DEVICE:"is-touch-device",WILL_SEEK:"will-seek",SEEKABLE:"is-seekable",IN_VIEWPORT:de,NO_CONTROLS:"no-controls",DESTROYED:"is-destroyed",IS_SOURCE_PROCESSING:Oi});function Ai(h){this.message=h}Ai.prototype=new Error,Ai.prototype.name="InvalidCharacterError";var We=typeof window!="undefined"&&window.atob&&window.atob.bind(window)||function(h){var p=String(h).replace(/=+$/,"");if(p.length%4==1)throw new Ai("'atob' failed: The string to be decoded is not correctly encoded.");for(var v,k,I=0,K=0,Y="";k=p.charAt(K++);~k&&(v=I%4?64*v+k:k,I++%4)?Y+=String.fromCharCode(255&v>>(-2*I&6)):0)k="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(k);return Y},cn=function(h){var p=h.replace(/-/g,"+").replace(/_/g,"/");switch(p.length%4){case 0:break;case 2:p+="==";break;case 3:p+="=";break;default:throw"Illegal base64url string!"}try{return function(v){return decodeURIComponent(We(v).replace(/(.)/g,function(k,I){var K=I.charCodeAt(0).toString(16).toUpperCase();return K.length<2&&(K="0"+K),"%"+K}))}(p)}catch(v){return We(p)}};function gi(h){this.message=h}gi.prototype=new Error,gi.prototype.name="InvalidTokenError";var _i=function(h,p){if(typeof h!="string")throw new gi("Invalid token specified");var v=(p=p||{}).header===!0?0:1;try{return JSON.parse(cn(h.split(".")[v]))}catch(k){throw new gi("Invalid token specified: "+k.message)}};_i.InvalidTokenError=gi;let ve=new Map,Li=(h,p)=>new(((v,k)=>{let I=v.get(k);if(!I)throw new Error(`no flowplayer component with the name ${k} exists`);let K=window.customElements.get(k);if(!K)throw new Error(`no default flowplayer component with the name ${k} exists`);let Y=window.customElements.get(I);return typeof Y!="function"?K:Y})(h._customElements,p))(h),pe=(h,p,v)=>{window.customElements.get(p)||window.customElements.define(p,v),h.customElements.get(p)||h.customElements.set(p,p)};var fe,qi;(function(h){h[h.LOW=1]="LOW",h[h.MEDIUM=2]="MEDIUM",h[h.HIGH=4]="HIGH"})(fe||(fe={})),function(h){h[h.OFF=0]="OFF",h[h.ON=1]="ON",h[h.AUDIO_REQUIRED=2]="AUDIO_REQUIRED"}(qi||(qi={}));let Zt={Unknown:"00-00",MediaUnknown:"01-00",MediaUnavailable:"01-01",MediaUnsupportedVideoFormat:"01-02",MediaUnsupportedAudioFormat:"01-03",MediaBitrateExceeded:"01-04",MediaBufferOverread:"01-05",MediaIntegerOverflow:"01-06",MediaQuotaExceeded:"01-07",MediaInvalidCompositionDuration:"01-08",MediaInvalidCompositionSourceDuration:"01-09",MediaInvalidCompositionSourceStartTime:"01-10",MediaMalformedDepth:"01-11",PlaybackUnknown:"02-00",PlaybackVideoBufferUnderRun:"02-01",PlaybackAudioBufferUnderRun:"02-02",PlaybackVideoBufferingTimeout:"02-03",PlaybackAudioBufferingTimeout:"02-04",PlaybackManifestParseError:"02-05",PlaybackVideoDecodeError:"02-06",PlaybackAudioDecodeError:"02-07",PlaybackDroppedFramesExceeded:"02-08",PlaybackPlayheadExceedsDuration:"02-09",PlaybackUnsupportedDevice:"02-10",PlaybackManifestLoadError:"02-11",PlaybackManifestLoadTimeout:"02-12",PlaybackManifestParsingError:"02-13",PlaybackManifestIncompatibleCodecs:"02-14",PlaybackLevelEmptyError:"02-15",PlaybackLevelLoadError:"02-16",PlaybackLevelLoadTimeout:"02-17",PlaybackLevelSwitchError:"02-18",PlaybackAudioTrackLoadError:"02-19",PlaybackAudioTrackLoadTimeout:"02-20",PlaybackFragLoadError:"02-21",PlaybackFragLoadTimeout:"02-22",PlaybackFragDecryptError:"02-23",PlaybackFragParsingError:"02-24",PlaybackFragGap:"02-25",PlaybackRemuxAllocError:"02-26",PlaybackBufferAddCodecError:"02-27",PlaybackBufferIncompatibleCodecs:"02-28",PlaybackBufferAppendError:"02-29",PlaybackBufferStalledError:"02-30",PlaybackBufferFullError:"02-31",PlaybackBufferSeekOverHole:"02-32",PlaybackBufferNudgeOnStall:"02-33",PlaybackInternalException:"02-34",PlaybackInternalAborted:"02-35",PlaybackManifestLoaderFailure:"02-36",PlaybackSegmentBaseLoaderError:"02-37",PlaybackTimeSyncFailed:"02-38",PlaybackFragmentLoaderFailure:"02-39",PlaybackAppendError:"02-40",PlaybackRemoveError:"02-41",PlaybackDataUpdateFailed:"02-42",PlaybackManifestNoStreams:"02-43",PlaybackUnknownManifestType:"02-44",PlaybackDashInsufficientSegmentInfo:"02-45",PlaybackDashNoRepresentations:"02-46",PlaybackDashNoAdaptationSets:"02-47",PlaybackDashNoInitSegment:"02-48",PlaybackDashUnsupportedContainerFormat:"02-49",PlaybackDashKeySystemMismatch:"02-50",PlaybackMultipleKeyIDs:"02-51",PlaybackDashConflictingKeyIDs:"02-52",PlaybackRestrictedStreams:"02-53",PlaybackHlsMasterAndMediaTags:"02-54",PlaybackRepresentationIdConflict:"02-55",PlaybackHlsUnsupportedKeyFormats:"02-56",PlaybackManifestNoVariants:"02-57",PlaybackHlsUndeclaredVariables:"02-58",PlaybackAes128InvalidKeyLength:"02-59",PlaybackDashConflictingAes128Keys:"02-60",PlaybackDashUnsupportedAes128Encryption:"02-61",PlaybackManifestPatchMismatch:"02-62",PlaybackEmptyMediaPlaylist:"02-63",PlaybackNonContiguousCompositionTrack:"02-64",PlaybackDecoderNotFound:"02-65",PlaybackDecoderTemporarilyUnavailable:"02-66",PlaybackIncompatibleAsset:"02-67",PlaybackNoCompatibleExternalDisplay:"02-69",PlaybackOutOfMemory:"02-70",PlaybackToneMappingFailed:"02-71",PlaybackVideoCompositorFailed:"02-72",NetworkUnknown:"03-00",NetworkNoInternet:"03-01",NetworkRequestTimeout:"03-02",NetworkUnableToResolveHost:"03-03",NetworkResourceNotFound:"03-04",NetworkExpiredUrl:"03-05",NetworkUrlResolutionFailed:"03-06",NetworkDownloadErrorIdManifest:"03-07",NetworkDownloadErrorIdSidx:"03-08",NetworkDownloadErrorIdContent:"03-09",NetworkDownloadErrorIdInitialization:"03-10",NetworkDownloadErrorIdXlink:"03-11",NetworkHttpRequestFailed:"03-12",NetworkMaxRetriesExceeded:"03-13",NetworkSegmentMissing:"03-14",NetworkHttp400BadRequest:"03-400",NetworkHttp401Unauthorized:"03-401",NetworkHttp402PaymentRequired:"03-402",NetworkHttp403Forbidden:"03-403",NetworkHttp404NotFound:"03-404",NetworkHttp405MethodNotAllowed:"03-405",NetworkHttp406NotAcceptable:"03-406",NetworkHttp407ProxyAuthenticationRequired:"03-407",NetworkHttp408RequestTimeout:"03-408",NetworkHttp409Conflict:"03-409",NetworkHttp410Gone:"03-410",NetworkHttp411LengthRequired:"03-411",NetworkHttp412PreconditionFailed:"03-412",NetworkHttp413PayloadTooLarge:"03-413",NetworkHttp414URITooLong:"03-414",NetworkHttp415UnsupportedMediaType:"03-415",NetworkHttp416RangeNotSatisfiable:"03-416",NetworkHttp417ExpectationFailed:"03-417",NetworkHttp418ImATeapot:"03-418",NetworkHttp421MisdirectedRequest:"03-421",NetworkHttp422UnprocessableEntity:"03-422",NetworkHttp423Locked:"03-423",NetworkHttp424FailedDependency:"03-424",NetworkHttp425TooEarly:"03-425",NetworkHttp426UpgradeRequired:"03-426",NetworkHttp428PreconditionRequired:"03-428",NetworkHttp429TooManyRequests:"03-429",NetworkHttp431RequestHeaderFieldsTooLarge:"03-431",NetworkHttp451UnavailableForLegalReasons:"03-451",NetworkHttp500InternalServerError:"03-500",NetworkHttp501NotImplemented:"03-501",NetworkHttp502BadGateway:"03-502",NetworkHttp503ServiceUnavailable:"03-503",NetworkHttp504GatewayTimeout:"03-504",NetworkHttp505HTTPVersionNotSupported:"03-505",NetworkHttp506VariantAlsoNegotiates:"03-506",NetworkHttp507InsufficientStorage:"03-507",NetworkHttp508LoopDetected:"03-508",NetworkHttp510NotExtended:"03-510",NetworkHttp511NetworkAuthenticationRequired:"03-511",ContentProtectionUnknown:"04-00",ContentProtectionConcurrentStreamLimitExceeded:"04-01",ContentProtectionEntitlementRefused:"04-02",ContentProtectionLicenseExpired:"04-03",ContentProtectionBadLicenseRequest:"04-04",ContentProtectionLicenseServerTimeout:"04-05",ContentProtectionInsufficientHDCPSupport:"04-06",ContentProtectionGeoRestricted:"04-07",ContentProtectionParentalControlRestricted:"04-08",ContentProtectionCDNUnauthorized:"04-09",ContentProtectionInvalidAccessToken:"04-10",ContentProtectionKeySystemNoKeys:"04-11",ContentProtectionKeySystemNoAccess:"04-12",ContentProtectionKeySystemNoSession:"04-13",ContentProtectionKeySystemNoConfiguredLicense:"04-14",ContentProtectionKeySystemCertificateRequestFailed:"04-15",ContentProtectionKeySystemCertificateUpdateFailed:"04-16",ContentProtectionKeySystemSessionUpdateFailed:"04-17",ContentProtectionKeySystemStatusOutputRestricted:"04-18",ContentProtectionKeySystemStatusInternalError:"04-19",ContentProtectionKeyLoadError:"04-20",ContentProtectionKeyLoadTimeout:"04-21",ContentProtectionCapabilityMediaKeysError:"04-22",ContentProtectionManifestKeySystemUnknown:"04-23",ContentProtectionKeySystemUnavailable:"04-24",ContentProtectionCDMCreationFailed:"04-25",ContentProtectionCDMAttachFailed:"04-26",ContentProtectionCDMServerCertificateRejected:"04-27",ContentProtectionCDMSessionCreationFailed:"04-28",ContentProtectionCDMLicenseRequestFailed:"04-29",ContentProtectionCDMLicenseResponseRejected:"04-30",ContentProtectionManifestMissingDRMInfo:"04-31",ContentProtectionLicenseServerMissing:"04-32",ContentProtectionOfflineSessionRemoved:"04-33",ContentProtectionInitDataTransformationError:"04-34",ContentProtectionServerCertificateRequestFailed:"04-35",ContentProtectionInsufficientHDCPVersion:"04-36",ContentProtectionHDCPVersionCheckFailed:"04-37",AdsUnknown:"08-00",AdsVastParseError:"08-100",AdsInvalidVastSchema:"08-101",AdsVastVersionNotSupported:"08-102",AdsUnexpectedAdType:"08-200",AdsCreativeLinearityMismatch:"08-201",AdsCreativeDurationMismatch:"08-202",AdsCreativeSizeMismatch:"08-203",AdsWrapperVastError:"08-300",AdsVastResponseRedirectTimeout:"08-301",AdsWrapperLimitReached:"08-302",AdsVastResponseEmpty:"08-303",AdsLinearAdDisplayError:"08-400",AdsMediaFileNotFound:"08-401",AdsMediaFileUnavailable:"08-402",AdsUnsupportedMimeType:"08-403",AdsUnableToDisplayMediaFile:"08-405",AdsMezzanineFileMissing:"08-406",AdsMezzanineFileDownloaded:"08-407",AdsRejectedAd:"08-408",AdsInteractiveCreativeError:"08-409",AdsVerificationNodeExecutionError:"08-410",AdsNonLinearAdDisplayError:"08-500",AdsNonLinearAdSizeMismatch:"08-501",AdsNonLinearAdFetchError:"08-502",AdsNonLinearUnsupportedType:"08-503",AdsCompanionAdDisplayError:"08-600",AdsCompanionAdSizeMismatch:"08-601",AdsRequiredCompanionAdError:"08-602",AdsCompanionAdFetchError:"08-603",AdsUndefinedVastError:"08-900",AdsUnknownVpaidError:"08-901",AdsVastDocumentEmpty:"08-999"},Fe=Object.fromEntries(Object.entries(Zt).map(([h,p])=>[p,h])),ti=(h)=>{return h.autoplay&&qi.AUDIO_REQUIRED&((p=h.autoplay)===!0?qi.ON:p===!1?qi.OFF:p);var p};function Hi(h,p,v){let k=typeof v=="boolean";if(typeof v!="boolean"&&(v=!!h.hasState(qt)||h.paused),function(K,Y,$){let Z=K.poll(Y?"beforeplay":"beforepause",{forced:$});return Z&&Z.defaultPrevented}(h,v,k))return Promise.resolve();if(!v)return h.hasState(Qt)?(h.setState(qt,!0),h.setState(Qt,!1),Promise.resolve()):Promise.resolve(h.pause());if(h.reaper==0)return Promise.resolve();let I=h.reaper.get("__pending_play");return h.paused||I?I?(I.src!==De(h.original_src)&&Q(h),I):(function(K){return(K.networkState==0||K.readyState==0)&&K.currentSrc==De(K.original_src)}(h)&&Q(h),function(K){let Y=K.hasState("is-autoplay"),$=Y&&ti(K.opts);return $&&(K.muted&&K.toggleMute(!1),K.volume==0&&(K.volume=1)),Y&&K.setState("is-autoplay",!1),K.play().then(()=>{K.hasState(qt)&&K.togglePlay(!1)}).catch((Z)=>{if(console.warn(Y?$?`[flowplayer/play] autoplay audio required
|
|
1
|
+
var qf=Object.create;var{getPrototypeOf:Xf,defineProperty:lc,getOwnPropertyNames:Jf}=Object;var Qf=Object.prototype.hasOwnProperty;var Ne=(n,o,h)=>{h=n!=null?qf(Xf(n)):{};let v=o||!n||!n.__esModule?lc(h,"default",{value:n,enumerable:!0}):h;for(let E of Jf(n))if(!Qf.call(v,E))lc(v,E,{get:()=>n[E],enumerable:!0});return v};var Ce=(n,o)=>()=>(o||n((o={exports:{}}).exports,o),o.exports);var cc=(n,o)=>{for(var h in o)lc(n,h,{get:o[h],enumerable:!0,configurable:!0,set:(v)=>o[h]=()=>v})};var Sd=Ce((Ty,yd)=>{var yg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function yc(n){this.message=n}yc.prototype=new Error;yc.prototype.name="InvalidCharacterError";function Sg(n){var o=String(n).replace(/=+$/,"");if(o.length%4==1)throw new yc("'atob' failed: The string to be decoded is not correctly encoded.");for(var h=0,v,E,_=0,R="";E=o.charAt(_++);~E&&(v=h%4?v*64+E:E,h++%4)?R+=String.fromCharCode(255&v>>(-2*h&6)):0)E=yg.indexOf(E);return R}yd.exports=typeof window!=="undefined"&&window.atob&&window.atob.bind(window)||Sg});var Ad=Ce((Ay,Td)=>{var bd=Sd();function bg(n){return decodeURIComponent(bd(n).replace(/(.)/g,function(o,h){var v=h.charCodeAt(0).toString(16).toUpperCase();if(v.length<2)v="0"+v;return"%"+v}))}Td.exports=function(n){var o=n.replace(/-/g,"+").replace(/_/g,"/");switch(o.length%4){case 0:break;case 2:o+="==";break;case 3:o+="=";break;default:throw"Illegal base64url string!"}try{return bg(o)}catch(h){return bd(o)}}});var _d=Ce((_y,Sc)=>{var Tg=Ad();function Oa(n){this.message=n}Oa.prototype=new Error;Oa.prototype.name="InvalidTokenError";Sc.exports=function(n,o){if(typeof n!=="string")throw new Oa("Invalid token specified");o=o||{};var h=o.header===!0?0:1;try{return JSON.parse(Tg(n.split(".")[h]))}catch(v){throw new Oa("Invalid token specified: "+v.message)}};Sc.exports.InvalidTokenError=Oa});var An=Ce((Rd)=>{Object.defineProperty(Rd,"__esModule",{value:!0});var Ag="mount",_g="retry",Lg="error",wg="contextmenu",Rg="click",kg="dblclick",Cg="keyup",Dg="keydown",Ig="load",Og="mouseenter",Mg="mouseleave",Ng="mouseup",Pg="mousedown",xg="mousemove",Fg="touchstart",Ug="touchmove",Bg="touchend",$g="touchcancel",Gg="resize",Hg="scroll",Vg="fullscreenenter",Kg="fullscreenexit",Wg="fullscreenchange",Yg="loadedmetadata",jg="loadeddata",zg="progress",qg="timeupdate",Xg="loadstart",Jg="volumechange",Qg="pause",Zg="playing",t0="play",e0="waiting",i0="canplay",r0="ended",n0="seeked",s0="seeking",a0="durationchange",o0="viewenter",l0="viewleave",c0="src",u0="reap",d0="qualities",h0="qualitychange",f0="videoTracks",m0="quality:set",g0="tracks:video:select",p0="recommendationsready",v0="landscape",E0="portrait",y0="dvr",S0="live",b0="recover",T0="seek:queued",A0="seek:cancel",_0="plugin:registered",L0="remotesession:started",w0="remotesession:ended",R0="intersectionchange",k0="webkitneedkey",C0="renderplugin",D0="audioonlysource",I0="error:fatal",O0="config",M0="state",N0="beforeplay",P0="beforepause",x0="content:loadstart",F0="cuepoints",U0="cuepointstart",B0="cuepointend",$0="flowplayer:error";Rd.AUDIO_ONLY_SOURCE=D0;Rd.BEFORE_PAUSE=P0;Rd.BEFORE_PLAY=N0;Rd.CAN_PLAY=i0;Rd.CLICK=Rg;Rd.CONFIG=O0;Rd.CONTENT_REAL_LOAD_START=x0;Rd.CONTEXT_MENU=wg;Rd.CUEPOINTS=F0;Rd.CUEPOINT_END=B0;Rd.CUEPOINT_START=U0;Rd.DATA=jg;Rd.DBL_CLICK=kg;Rd.DURATION_CHANGE=a0;Rd.DVR=y0;Rd.ENDED=r0;Rd.ERROR=Lg;Rd.FULLSCREEN_CHANGE=Wg;Rd.FULLSCREEN_ENTER=Vg;Rd.FULLSCREEN_EXIT=Kg;Rd.INTERSECTIONCHANGE=R0;Rd.KEYDOWN=Dg;Rd.KEYUP=Cg;Rd.LANDSCAPE=v0;Rd.LIVE=S0;Rd.LOAD=Ig;Rd.LOAD_START=Xg;Rd.METADATA=Yg;Rd.MOUNT=Ag;Rd.MOUSE_DOWN=Pg;Rd.MOUSE_ENTER=Og;Rd.MOUSE_LEAVE=Mg;Rd.MOUSE_MOVE=xg;Rd.MOUSE_UP=Ng;Rd.NON_RECOVERABLE_ERROR=I0;Rd.PAUSE=Qg;Rd.PLAY=t0;Rd.PLAYING=Zg;Rd.PLUGIN_REGISTERED=_0;Rd.PORTRAIT=E0;Rd.PROGRESS=zg;Rd.QUALITIES=d0;Rd.QUALITY_CHANGE=h0;Rd.REAP=u0;Rd.RECOMMENDATIONS_READY=p0;Rd.RECOVER=b0;Rd.REMOTE_SESSION_ENDED=w0;Rd.REMOTE_SESSION_STARTED=L0;Rd.RENDER_PLUGIN=C0;Rd.RESIZE=Gg;Rd.RETRY=_g;Rd.SCROLL=Hg;Rd.SEEKED=n0;Rd.SEEKING=s0;Rd.SEEK_CANCEL=A0;Rd.SEEK_QUEUED=T0;Rd.SET_QUALITY=m0;Rd.SOURCE=c0;Rd.STANDARD_ERROR=$0;Rd.STATE=M0;Rd.TIME_UPDATE=qg;Rd.TOUCH_CANCEL=$g;Rd.TOUCH_END=Bg;Rd.TOUCH_MOVE=Ug;Rd.TOUCH_START=Fg;Rd.VIDEO_TRACKS=f0;Rd.VIDEO_TRACK_SELECT=g0;Rd.VIEW_ENTER=o0;Rd.VIEW_LEAVE=l0;Rd.VOLUME_CHANGE=Jg;Rd.WAITING=e0;Rd.WEBKIT_NEEDKEY=k0});var Dd=Ce((Bo,$o)=>{(function(n,o){typeof Bo=="object"&&typeof $o!="undefined"?$o.exports=o():typeof define=="function"&&define.amd?define(o):(n=typeof globalThis!="undefined"?globalThis:n||self).flowplayer=o()})(Bo,function(){let n=[],o=[];function h(){let f=typeof document!="undefined"&&typeof window!="undefined",g=f?navigator.userAgent:"",p=/iP(hone|od)/i.test(g)&&!/iPad/.test(g)&&!/IEMobile/i.test(g),C=/Android/.test(g)&&!/Firefox/.test(g),O=/^((?!chrome|android).)*safari/i.test(g),$=/chrome|crios/i.test(g)&&!/opr|opera|chromium|edg|ucbrowser|googlebot/i.test(g),V=/firefox|fxios/i.test(g)&&!/seamonkey/i.test(g),U=/edg/i.test(g),z=/opr|opera/i.test(g),et=/SamsungBrowser/.test(g),Tt=et&&/SMART-TV/.test(g);return{controls:!p,video:function(kt){return f&&document.createElement("video").canPlayType(kt)},lang:f&&window.navigator.language,android:C,iphone:p,safari:O,edge:U,opera:z,chrome:$,firefox:V,ios:f&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,samsung:et,samsung_tv:et&&Tt,touch:"ontouchstart"in window,tizen:"tizen"in window,webOS:"webos"in window}}let v="click",E="dblclick",_="mouseleave",R="mousemove",A="touchmove",L="fullscreenenter",M="fullscreenexit",X="loadedmetadata",b="loadeddata",H="progress",P="loadstart",W="pause",at="playing",Et="waiting",q="canplay",I="ended",B="seeked",F="seeking",j="reap",tt="landscape",ct="portrait",st="config",lt="content:loadstart";var St=Object.freeze({__proto__:null,MOUNT:"mount",RETRY:"retry",ERROR:"error",CONTEXT_MENU:"contextmenu",CLICK:v,DBL_CLICK:E,KEYUP:"keyup",KEYDOWN:"keydown",LOAD:"load",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:_,MOUSE_UP:"mouseup",MOUSE_DOWN:"mousedown",MOUSE_MOVE:R,TOUCH_START:"touchstart",TOUCH_MOVE:A,TOUCH_END:"touchend",TOUCH_CANCEL:"touchcancel",RESIZE:"resize",SCROLL:"scroll",FULLSCREEN_ENTER:L,FULLSCREEN_EXIT:M,FULLSCREEN_CHANGE:"fullscreenchange",METADATA:X,DATA:b,PROGRESS:H,TIME_UPDATE:"timeupdate",LOAD_START:P,VOLUME_CHANGE:"volumechange",PAUSE:W,PLAYING:at,PLAY:"play",WAITING:Et,CAN_PLAY:q,ENDED:I,SEEKED:B,SEEKING:F,DURATION_CHANGE:"durationchange",VIEW_ENTER:"viewenter",VIEW_LEAVE:"viewleave",SOURCE:"src",REAP:j,QUALITIES:"qualities",QUALITY_CHANGE:"qualitychange",VIDEO_TRACKS:"videoTracks",SET_QUALITY:"quality:set",VIDEO_TRACK_SELECT:"tracks:video:select",RECOMMENDATIONS_READY:"recommendationsready",LANDSCAPE:tt,PORTRAIT:ct,DVR:"dvr",LIVE:"live",RECOVER:"recover",SEEK_QUEUED:"seek:queued",SEEK_CANCEL:"seek:cancel",PLUGIN_REGISTERED:"plugin:registered",REMOTE_SESSION_STARTED:"remotesession:started",REMOTE_SESSION_ENDED:"remotesession:ended",INTERSECTIONCHANGE:"intersectionchange",WEBKIT_NEEDKEY:"webkitneedkey",RENDER_PLUGIN:"renderplugin",AUDIO_ONLY_SOURCE:"audioonlysource",NON_RECOVERABLE_ERROR:"error:fatal",CONFIG:st,STATE:"state",BEFORE_PLAY:"beforeplay",BEFORE_PAUSE:"beforepause",CONTENT_REAL_LOAD_START:lt,CUEPOINTS:"cuepoints",CUEPOINT_START:"cuepointstart",CUEPOINT_END:"cuepointend",STANDARD_ERROR:"flowplayer:error"});let Pt="flowplayer-ui",$t="flowplayer-logo",zt="flowplayer-control",nt="flowplayer-live-status",dt="flowplayer-elapsed-time",bt="flowplayer-timeline-bar",Bt="flowplayer-volume-bar",Kt="flowplayer-header",ce="flowplayer-middle",jt="flowplayer-middle-zone",K="flowplayer-wait",it="flowplayer-play-icon",pt="flowplayer-pause-icon",gt="flowplayer-rewind-icon",Lt="flowplayer-volume-icon";var ve=Object.freeze({__proto__:null,SUBTITLES_MENU:"flowplayer-subtitles-menu",SHARE_MENU:"flowplayer-share-menu",SPEED_MENU:"flowplayer-speed-menu",QUALITY_MENU:"flowplayer-quality-menu",AUDIO_MENU:"flowplayer-audio-menu",VIDEO_MENU:"flowplayer-video-menu",UI:Pt,LOGO:$t,CONTROL:zt,CONTROL_BUTTONS:"flowplayer-control-buttons",LIVE_STATUS:nt,ELAPSED:dt,TIMELINE:bt,CHAPTERS_TIMELINE:"flowplayer-chapters-timeline-bar",CONTROL_DURATION:"flowplayer-control-duration",VOLUME_CONTROL:"flowplayer-volume-control",VOLUME_BAR:Bt,HEADER:Kt,HEADER_LEFT_ZONE:"flowplayer-header-left-zone",HEADER_RIGHT_ZONE:"flowplayer-header-right-zone",HEADER_DURATION:"flowplayer-header-duration",MIDDLE:ce,MIDDLE_ZONE:jt,WAIT:K,MIDDLE_BUTTONS:"flowplayer-middle-buttons",MIDDLE_LEFT_ZONE:"flowplayer-middle-left-zone",MIDDLE_RIGHT_ZONE:"flowplayer-middle-right-zone",ENDSCREEN_INTERSTITIAL:"flowplayer-endscreen-interstitial",ENDSCREEN_UP_NEXT:"flowplayer-endscreen-up-next",ENDSCREEN_GRID:"flowplayer-endscreen-grid",PLAYLIST_INTERSTITIAL:"flowplayer-playlist-interstitial",AIRPLAY_ICON:"flowplayer-airplay-icon",CHROMECAST_ICON:"flowplayer-chromecast-icon",SMALL_PLAY_ICON:"flowplayer-small-play-icon",SMALL_PAUSE_ICON:"flowplayer-small-pause-icon",PLAY_ICON:it,PAUSE_ICON:pt,FULLSCREEN_ENTER_ICON:"flowplayer-fullscreen-enter-icon",FULLSCREEN_EXIT_ICON:"flowplayer-fullscreen-exit-icon",SKIP_NEXT_ICON:"flowplayer-skip-next-icon",SKIP_PREVIOUS_ICON:"flowplayer-skip-previous-icon",FAST_FORWARD_ICON:"flowplayer-fast-forward-icon",REWIND_ICON:gt,SHARE_ICON:"flowplayer-share-icon",SUBTITLES_MENU_ICON:"flowplayer-subs-menu-icon",MENU_BACK_ICON:"flowplayer-menu-back",VOLUME_ICON:Lt,MUTE_ICON:"flowplayer-mute-icon",UNMUTE_ICON:"flowplayer-unmute-icon",CLOSE_ICON:"flowplayer-close-icon",FACEBOOK_ICON:"flowplayer-facebook-icon",TWITTER_ICON:"flowplayer-twitter-icon",LINK_ICON:"flowplayer-link-icon",EMBED_ICON:"flowplayer-embed-icon",LIVE_COUNTDOWN:"flowplayer-live-countdown",PLAYLIST_CONTROLS:"flowplayer-playlist-controls",THUMBNAILS_CAROUSEL:"flowplayer-thumbnails-carousel",ERROR_COMPONENT:"flowplayer-error",TV_MENU:"flowplayer-tv-menu",CUE_COMPONENT:"flowplayer-cue",SSAI_UI:"flowplayer-ssai-ui",SSAI_CONTROLS:"flowplayer-ssai-controls",SSAI_TIMELINE:"flowplayer-ssai-timeline",SSAI_INDICATOR:"flowplayer-ssai-indicator"});let ue="is-playing",Je="is-paused",xe="is-loaded",ke="is-loading",ne="is-starting",Ve="is-seeking",Qe="is-ended",ui="is-live",Ke="is-waiting",Ci="is-live-seeked",We="no-timeline",xt="will-play",Nt="will-pause",_t="is-touched",Xt="is-hovered",se="is-in-viewport",di="is-source-processing";var ar=Object.freeze({__proto__:null,PLAYING:ue,FULLSCREEN:"is-fullscreen",PAUSED:Je,MUTED:"is-muted",LOADED:xe,LOADING:ke,STARTING:ne,SEEKING:Ve,GRABBING:"is-grabbing",DISABLED:"is-disabled",SMALL:"is-small",TINY:"is-tiny",RTL:"is-rtl",TV:"is-tv",ENDED:Qe,LIVE:ui,ERRORED:"is-error",WAITING:Ke,AUTOPLAY:"is-autoplay",SEAMLESS:"is-seamless",TOGGLING:"is-toggling",LIVE_SEEKED:Ci,NO_DVR:We,HAS_POSTER:"has-poster",WILL_PLAY:xt,WILL_PAUSE:Nt,MENU_OPENED:"has-menu-opened",TOUCHED:_t,HOVERED:Xt,TOUCH_DEVICE:"is-touch-device",WILL_SEEK:"will-seek",SEEKABLE:"is-seekable",IN_VIEWPORT:se,NO_CONTROLS:"no-controls",DESTROYED:"is-destroyed",IS_SOURCE_PROCESSING:di});function Di(f){this.message=f}Di.prototype=new Error,Di.prototype.name="InvalidCharacterError";var Fe=typeof window!="undefined"&&window.atob&&window.atob.bind(window)||function(f){var g=String(f).replace(/=+$/,"");if(g.length%4==1)throw new Di("'atob' failed: The string to be decoded is not correctly encoded.");for(var p,C,O=0,$=0,V="";C=g.charAt($++);~C&&(p=O%4?64*p+C:C,O++%4)?V+=String.fromCharCode(255&p>>(-2*O&6)):0)C="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(C);return V},or=function(f){var g=f.replace(/-/g,"+").replace(/_/g,"/");switch(g.length%4){case 0:break;case 2:g+="==";break;case 3:g+="=";break;default:throw"Illegal base64url string!"}try{return function(p){return decodeURIComponent(Fe(p).replace(/(.)/g,function(C,O){var $=O.charCodeAt(0).toString(16).toUpperCase();return $.length<2&&($="0"+$),"%"+$}))}(g)}catch(p){return Fe(g)}};function Ze(f){this.message=f}Ze.prototype=new Error,Ze.prototype.name="InvalidTokenError";var ni=function(f,g){if(typeof f!="string")throw new Ze("Invalid token specified");var p=(g=g||{}).header===!0?0:1;try{return JSON.parse(or(f.split(".")[p]))}catch(C){throw new Ze("Invalid token specified: "+C.message)}};ni.InvalidTokenError=Ze;let zr=new Map,yi=(f,g)=>new(((p,C)=>{let O=p.get(C);if(!O)throw new Error(`no flowplayer component with the name ${C} exists`);let $=window.customElements.get(C);if(!$)throw new Error(`no default flowplayer component with the name ${C} exists`);let V=window.customElements.get(O);return typeof V!="function"?$:V})(f._customElements,g))(f),oe=(f,g,p)=>{window.customElements.get(g)||window.customElements.define(g,p),f.customElements.get(g)||f.customElements.set(g,g)};var ye,Ii;(function(f){f[f.LOW=1]="LOW",f[f.MEDIUM=2]="MEDIUM",f[f.HIGH=4]="HIGH"})(ye||(ye={})),function(f){f[f.OFF=0]="OFF",f[f.ON=1]="ON",f[f.AUDIO_REQUIRED=2]="AUDIO_REQUIRED"}(Ii||(Ii={}));let Ft={Unknown:"00-00",MediaUnknown:"01-00",MediaUnavailable:"01-01",MediaUnsupportedVideoFormat:"01-02",MediaUnsupportedAudioFormat:"01-03",MediaBitrateExceeded:"01-04",MediaBufferOverread:"01-05",MediaIntegerOverflow:"01-06",MediaQuotaExceeded:"01-07",MediaInvalidCompositionDuration:"01-08",MediaInvalidCompositionSourceDuration:"01-09",MediaInvalidCompositionSourceStartTime:"01-10",MediaMalformedDepth:"01-11",PlaybackUnknown:"02-00",PlaybackVideoBufferUnderRun:"02-01",PlaybackAudioBufferUnderRun:"02-02",PlaybackVideoBufferingTimeout:"02-03",PlaybackAudioBufferingTimeout:"02-04",PlaybackManifestParseError:"02-05",PlaybackVideoDecodeError:"02-06",PlaybackAudioDecodeError:"02-07",PlaybackDroppedFramesExceeded:"02-08",PlaybackPlayheadExceedsDuration:"02-09",PlaybackUnsupportedDevice:"02-10",PlaybackManifestLoadError:"02-11",PlaybackManifestLoadTimeout:"02-12",PlaybackManifestParsingError:"02-13",PlaybackManifestIncompatibleCodecs:"02-14",PlaybackLevelEmptyError:"02-15",PlaybackLevelLoadError:"02-16",PlaybackLevelLoadTimeout:"02-17",PlaybackLevelSwitchError:"02-18",PlaybackAudioTrackLoadError:"02-19",PlaybackAudioTrackLoadTimeout:"02-20",PlaybackFragLoadError:"02-21",PlaybackFragLoadTimeout:"02-22",PlaybackFragDecryptError:"02-23",PlaybackFragParsingError:"02-24",PlaybackFragGap:"02-25",PlaybackRemuxAllocError:"02-26",PlaybackBufferAddCodecError:"02-27",PlaybackBufferIncompatibleCodecs:"02-28",PlaybackBufferAppendError:"02-29",PlaybackBufferStalledError:"02-30",PlaybackBufferFullError:"02-31",PlaybackBufferSeekOverHole:"02-32",PlaybackBufferNudgeOnStall:"02-33",PlaybackInternalException:"02-34",PlaybackInternalAborted:"02-35",PlaybackManifestLoaderFailure:"02-36",PlaybackSegmentBaseLoaderError:"02-37",PlaybackTimeSyncFailed:"02-38",PlaybackFragmentLoaderFailure:"02-39",PlaybackAppendError:"02-40",PlaybackRemoveError:"02-41",PlaybackDataUpdateFailed:"02-42",PlaybackManifestNoStreams:"02-43",PlaybackUnknownManifestType:"02-44",PlaybackDashInsufficientSegmentInfo:"02-45",PlaybackDashNoRepresentations:"02-46",PlaybackDashNoAdaptationSets:"02-47",PlaybackDashNoInitSegment:"02-48",PlaybackDashUnsupportedContainerFormat:"02-49",PlaybackDashKeySystemMismatch:"02-50",PlaybackMultipleKeyIDs:"02-51",PlaybackDashConflictingKeyIDs:"02-52",PlaybackRestrictedStreams:"02-53",PlaybackHlsMasterAndMediaTags:"02-54",PlaybackRepresentationIdConflict:"02-55",PlaybackHlsUnsupportedKeyFormats:"02-56",PlaybackManifestNoVariants:"02-57",PlaybackHlsUndeclaredVariables:"02-58",PlaybackAes128InvalidKeyLength:"02-59",PlaybackDashConflictingAes128Keys:"02-60",PlaybackDashUnsupportedAes128Encryption:"02-61",PlaybackManifestPatchMismatch:"02-62",PlaybackEmptyMediaPlaylist:"02-63",PlaybackNonContiguousCompositionTrack:"02-64",PlaybackDecoderNotFound:"02-65",PlaybackDecoderTemporarilyUnavailable:"02-66",PlaybackIncompatibleAsset:"02-67",PlaybackNoCompatibleExternalDisplay:"02-69",PlaybackOutOfMemory:"02-70",PlaybackToneMappingFailed:"02-71",PlaybackVideoCompositorFailed:"02-72",NetworkUnknown:"03-00",NetworkNoInternet:"03-01",NetworkRequestTimeout:"03-02",NetworkUnableToResolveHost:"03-03",NetworkResourceNotFound:"03-04",NetworkExpiredUrl:"03-05",NetworkUrlResolutionFailed:"03-06",NetworkDownloadErrorIdManifest:"03-07",NetworkDownloadErrorIdSidx:"03-08",NetworkDownloadErrorIdContent:"03-09",NetworkDownloadErrorIdInitialization:"03-10",NetworkDownloadErrorIdXlink:"03-11",NetworkHttpRequestFailed:"03-12",NetworkMaxRetriesExceeded:"03-13",NetworkSegmentMissing:"03-14",NetworkHttp400BadRequest:"03-400",NetworkHttp401Unauthorized:"03-401",NetworkHttp402PaymentRequired:"03-402",NetworkHttp403Forbidden:"03-403",NetworkHttp404NotFound:"03-404",NetworkHttp405MethodNotAllowed:"03-405",NetworkHttp406NotAcceptable:"03-406",NetworkHttp407ProxyAuthenticationRequired:"03-407",NetworkHttp408RequestTimeout:"03-408",NetworkHttp409Conflict:"03-409",NetworkHttp410Gone:"03-410",NetworkHttp411LengthRequired:"03-411",NetworkHttp412PreconditionFailed:"03-412",NetworkHttp413PayloadTooLarge:"03-413",NetworkHttp414URITooLong:"03-414",NetworkHttp415UnsupportedMediaType:"03-415",NetworkHttp416RangeNotSatisfiable:"03-416",NetworkHttp417ExpectationFailed:"03-417",NetworkHttp418ImATeapot:"03-418",NetworkHttp421MisdirectedRequest:"03-421",NetworkHttp422UnprocessableEntity:"03-422",NetworkHttp423Locked:"03-423",NetworkHttp424FailedDependency:"03-424",NetworkHttp425TooEarly:"03-425",NetworkHttp426UpgradeRequired:"03-426",NetworkHttp428PreconditionRequired:"03-428",NetworkHttp429TooManyRequests:"03-429",NetworkHttp431RequestHeaderFieldsTooLarge:"03-431",NetworkHttp451UnavailableForLegalReasons:"03-451",NetworkHttp500InternalServerError:"03-500",NetworkHttp501NotImplemented:"03-501",NetworkHttp502BadGateway:"03-502",NetworkHttp503ServiceUnavailable:"03-503",NetworkHttp504GatewayTimeout:"03-504",NetworkHttp505HTTPVersionNotSupported:"03-505",NetworkHttp506VariantAlsoNegotiates:"03-506",NetworkHttp507InsufficientStorage:"03-507",NetworkHttp508LoopDetected:"03-508",NetworkHttp510NotExtended:"03-510",NetworkHttp511NetworkAuthenticationRequired:"03-511",ContentProtectionUnknown:"04-00",ContentProtectionConcurrentStreamLimitExceeded:"04-01",ContentProtectionEntitlementRefused:"04-02",ContentProtectionLicenseExpired:"04-03",ContentProtectionBadLicenseRequest:"04-04",ContentProtectionLicenseServerTimeout:"04-05",ContentProtectionInsufficientHDCPSupport:"04-06",ContentProtectionGeoRestricted:"04-07",ContentProtectionParentalControlRestricted:"04-08",ContentProtectionCDNUnauthorized:"04-09",ContentProtectionInvalidAccessToken:"04-10",ContentProtectionKeySystemNoKeys:"04-11",ContentProtectionKeySystemNoAccess:"04-12",ContentProtectionKeySystemNoSession:"04-13",ContentProtectionKeySystemNoConfiguredLicense:"04-14",ContentProtectionKeySystemCertificateRequestFailed:"04-15",ContentProtectionKeySystemCertificateUpdateFailed:"04-16",ContentProtectionKeySystemSessionUpdateFailed:"04-17",ContentProtectionKeySystemStatusOutputRestricted:"04-18",ContentProtectionKeySystemStatusInternalError:"04-19",ContentProtectionKeyLoadError:"04-20",ContentProtectionKeyLoadTimeout:"04-21",ContentProtectionCapabilityMediaKeysError:"04-22",ContentProtectionManifestKeySystemUnknown:"04-23",ContentProtectionKeySystemUnavailable:"04-24",ContentProtectionCDMCreationFailed:"04-25",ContentProtectionCDMAttachFailed:"04-26",ContentProtectionCDMServerCertificateRejected:"04-27",ContentProtectionCDMSessionCreationFailed:"04-28",ContentProtectionCDMLicenseRequestFailed:"04-29",ContentProtectionCDMLicenseResponseRejected:"04-30",ContentProtectionManifestMissingDRMInfo:"04-31",ContentProtectionLicenseServerMissing:"04-32",ContentProtectionOfflineSessionRemoved:"04-33",ContentProtectionInitDataTransformationError:"04-34",ContentProtectionServerCertificateRequestFailed:"04-35",ContentProtectionInsufficientHDCPVersion:"04-36",ContentProtectionHDCPVersionCheckFailed:"04-37",AdsUnknown:"08-00",AdsVastParseError:"08-100",AdsInvalidVastSchema:"08-101",AdsVastVersionNotSupported:"08-102",AdsUnexpectedAdType:"08-200",AdsCreativeLinearityMismatch:"08-201",AdsCreativeDurationMismatch:"08-202",AdsCreativeSizeMismatch:"08-203",AdsWrapperVastError:"08-300",AdsVastResponseRedirectTimeout:"08-301",AdsWrapperLimitReached:"08-302",AdsVastResponseEmpty:"08-303",AdsLinearAdDisplayError:"08-400",AdsMediaFileNotFound:"08-401",AdsMediaFileUnavailable:"08-402",AdsUnsupportedMimeType:"08-403",AdsUnableToDisplayMediaFile:"08-405",AdsMezzanineFileMissing:"08-406",AdsMezzanineFileDownloaded:"08-407",AdsRejectedAd:"08-408",AdsInteractiveCreativeError:"08-409",AdsVerificationNodeExecutionError:"08-410",AdsNonLinearAdDisplayError:"08-500",AdsNonLinearAdSizeMismatch:"08-501",AdsNonLinearAdFetchError:"08-502",AdsNonLinearUnsupportedType:"08-503",AdsCompanionAdDisplayError:"08-600",AdsCompanionAdSizeMismatch:"08-601",AdsRequiredCompanionAdError:"08-602",AdsCompanionAdFetchError:"08-603",AdsUndefinedVastError:"08-900",AdsUnknownVpaidError:"08-901",AdsVastDocumentEmpty:"08-999"},Rn=Object.fromEntries(Object.entries(Ft).map(([f,g])=>[g,f])),Va=(f)=>{return f.autoplay&&Ii.AUDIO_REQUIRED&((g=f.autoplay)===!0?Ii.ON:g===!1?Ii.OFF:g);var g};function Ns(f,g,p){let C=typeof p=="boolean";if(typeof p!="boolean"&&(p=!!f.hasState(Nt)||f.paused),function($,V,U){let z=$.poll(V?"beforeplay":"beforepause",{forced:U});return z&&z.defaultPrevented}(f,p,C))return Promise.resolve();if(!p)return f.hasState(xt)?(f.setState(Nt,!0),f.setState(xt,!1),Promise.resolve()):Promise.resolve(f.pause());if(f.reaper==0)return Promise.resolve();let O=f.reaper.get("__pending_play");return f.paused||O?O?(O.src!==Ka(f.original_src)&&Wt(f),O):(function($){return($.networkState==0||$.readyState==0)&&$.currentSrc==Ka($.original_src)}(f)&&Wt(f),function($){let V=$.hasState("is-autoplay"),U=V&&Va($.opts);return U&&($.muted&&$.toggleMute(!1),$.volume==0&&($.volume=1)),V&&$.setState("is-autoplay",!1),$.play().then(()=>{$.hasState(Nt)&&$.togglePlay(!1)}).catch((z)=>{if(console.warn(V?U?`[flowplayer/play] autoplay audio required
|
|
2
2
|
%s`:`[flowplayer/play] attempting muted autoplay
|
|
3
|
-
%s`:"",
|
|
4
|
-
instance:`,K),Y&&!$)return K.muted=!0,K.play()})}(h)):(h.setState(qt,!1),!h.hasState(Re)&&h.setState(Qt,!0),Promise.resolve())}function Q(h){h.opts.is_native&&(h.hasState(Qe)||(h.hasState(Ge)||h.emit(gt),h.setState(Ge,!0),h.load()))}function De(h){let p=document.createElement("a");return p.href=h,p.href}function Tr(h,p){var v={};for(var k in h)Object.prototype.hasOwnProperty.call(h,k)&&p.indexOf(k)<0&&(v[k]=h[k]);if(h!=null&&typeof Object.getOwnPropertySymbols=="function"){var I=0;for(k=Object.getOwnPropertySymbols(h);I<k.length;I++)p.indexOf(k[I])<0&&Object.prototype.propertyIsEnumerable.call(h,k[I])&&(v[k[I]]=h[k[I]])}return v}function Fs(h){let p=document.createElement("a");p.href=h;let v=p.pathname&&p.pathname.split(".");return v.length>1&&v[v.length-1]}function Ar(h){switch(h){case"video/mpd":return"application/dash+xml";case"video/m3u8":return"application/x-mpegurl";default:return h}}let kn=(h)=>{var{src:p}=h,v=Tr(h,["src"]);return[Object.assign({src:p,type:p?Ar("video/"+Fs(p)):""},v)]};function pi(h){return kn({src:h})}function _r(h){var{src:p,type:v}=h,k=Tr(h,["src","type"]);return p&&v?[Object.assign({src:p,type:v},k)]:v&&!p?[Object.assign({type:v},k)]:kn(Object.assign({src:p},k))}var Yi;function li(h,p,v,k={safari:!1}){let I=function(K){return typeof K=="string"?pi(K):Array.isArray(K)||typeof K!="object"?K.reduce(function(Y,$){return typeof $=="string"&&($=pi($)),typeof $!="object"||Array.isArray($)||($=_r($)),Y.concat($)},[]):_r(K)}(v);return function(K){[si,qt,Qt,Re,ai,Ge,Qe,Je].forEach((Y)=>K.setState(Y,!1)),K.setState(Se,!0)}(h),Array(...Array(I.length)).map((K,Y)=>Y).some((K)=>{let Y=I[K];if(Yi.Ok==function($,Z,rt){$.emit("src",rt),Z.playback_token&&typeof rt.src=="string"&&rt.src.startsWith("https://")&&(rt.src=function(Vt,oe){let ke=new URL(Vt);return ke.pathname=`/pt:${oe}${ke.pathname}`,ke.toString()}(rt.src,Z.playback_token)),typeof rt.src=="string"&&($.original_src=rt.src);let Bt=function(Vt,oe,ke){return Vt.plugins.filter((Ke)=>{return(Te=Ke)&&"wants"in Te;var Te}).find((Ke)=>Ke.wants(ke.src||"",ke,oe))}($,Z,rt);return $.setOpts({is_native:!Bt}),Bt?(Bt.onload(Z,$.root,$,rt),Yi.Ok):Yi.Err}(h,p,Y)||Yi.Ok==function($,Z,rt,Bt={safari:!1}){var Vt;if(/^audio\//.test(rt.type||"")&&$.emit("audioonlysource"),Z.start_time&&(rt.src=rt.src+"#t="+Z.start_time),$.canPlayType(rt.type||"")=="")return Yi.Err;if(rt.drm&&(!rt.drm["com.apple.fps.1_0"]||!Bt.safari))return Yi.Err;return typeof rt.src=="string"&&($.preload=(Vt=Z.preload)!==null&&Vt!==void 0?Vt:"auto",$.src=rt.src),Yi.Ok}(h,p,Y,k))return!0;K==I.length-1&&typeof Y.src=="string"&&(h.src=Y.src)}),h}(function(h){h[h.Err=0]="Err",h[h.Ok=1]="Ok"})(Yi||(Yi={}));let Rn=[J,G,"src","seek:cancel"];var nn;function Jr(h,p,v){return isNaN(h.duration)||isNaN(h.currentTime)?{}:(p.offset+=v,p.offset==0?Xn(h,p):(p.timer&&clearTimeout(p.timer),p.timer=setTimeout(function(){h.reaper!=0&&(h.currentTime=function(k,I,K=0){return Math.max(Math.min(I,k),K)}(h.currentTime+p.offset,h.duration),p.timer=0,Xn(h,p))},1000),function(k,I){k.setState("will-seek",!0),k.setState(nn.BACKWARD,I.offset<0),k.setState(nn.FORWARD,I.offset>0)}(h,p),h.emit("seek:queued",p),p))}function Xn(h,p){p.timer&&clearTimeout(p.timer),p.timer=p.offset=0,function(v){v.setState(nn.FORWARD,!1),v.setState(nn.BACKWARD,!1),v.setState("will-seek",!1)}(h)}function Qr(){if(typeof document=="undefined")return!1;let h=document.documentElement;return h&&h.getAttribute("dir")=="rtl"}function vi(...h){let p=document.createElement("div");return h.length==0||p.classList.add(...h),p}function xi(h,p,v){let k=function(I){return Array.isArray(I)?I.slice(0):I.split(".")}(p);for(;k.length;){if(h==null)return v;let I=k.shift();if(typeof I!="string")return v;h=h[I]}return h==null?v:h}function Dn(h){let p=typeof h=="number"?h:parseInt(h,10);return(p>9?"":"0")+p}function Ni(h){if(isNaN(h)||h>=Number.MAX_SAFE_INTEGER)return"";let p=h<0?"-":"";h=Math.round(Math.abs(h));let v=Math.floor(h/3600),k=Math.floor(h/60);return h-=60*k,v>=1?(k-=60*v,p+v+":"+Dn(k)+":"+Dn(h)):p+Dn(k)+":"+Dn(h)}(function(h){h.FORWARD="forward",h.BACKWARD="backward"})(nn||(nn={}));let ci=navigator.languages||[navigator.language];function Cn(h,p,v){let k={};return v=p.lang||v,h[v]&&(k[v]=h[v]),function(){try{return ci.reduce((I,K)=>~K.indexOf("-")?I.concat(K,K.split("-")[0]):I.concat(K),[])}catch(I){return[]}}().forEach(function(I){h[I]&&!k[I]&&(k[I]=h[I])}),Object.values(k)}let zi=[1e7]+"-1000-4000-8000-100000000000",Ne=()=>typeof crypto=="undefined"?"":zi.replace(/[018]/g,(h)=>(h^crypto.getRandomValues(new Uint8Array(1))[0]&15>>h/4).toString(16)),Xi="";(function(){let h=!1;try{let p=Object.defineProperty({},"passive",{get:function(){h=!0}});window.addEventListener("testPassive",null,p),window.removeEventListener("testPassive",null,p)}catch(p){}})();let In=["touchstart","touchmove"];function Jn(h,p){let v=new CustomEvent(h,{detail:p,cancelable:!0});return p&&Object.defineProperty(v,"data",{get:()=>p}),v}function Pi(h,p,v){let k=Jn(p,v);return h.dispatchEvent(k),h}function dn(h,p,v){let k=Jn(p,v);return h.dispatchEvent(k),k}function Ue(h,p,v,k){Array.isArray(p)?p.forEach((I)=>On(h,I,v,k)):On(h,p,v,k)}function On(h,p,v,k){if(I=p,!~In.indexOf(I))return h.addEventListener(p,v,k),h;var I;let K=Object.assign(k||{},{passive:!0});return h.addEventListener(p,v,K),h}function Ji(h,p,v,k){return Ue(h,p,v,Object.assign(k||{},{once:!0}))}class Lr{constructor(h,p){this.implementation=h,p&&p.keys().forEach((v)=>{typeof p.implementation[v]=="string"&&this.implementation.setItem(v,p.implementation[v])})}keys(){var h;let p=[];for(var v=0;v<this.implementation.length;v++)((h=this.implementation.key(v))===null||h===void 0?void 0:h.startsWith("flowplayer/"))&&p.push(this.implementation.key(v));return p}removeItem(h){try{this.implementation.removeItem("flowplayer/"+h)}catch(p){}}getItem(h){try{return this.implementation.getItem("flowplayer/"+h)}catch(p){return null}}setItem(h,p){try{this.implementation.setItem("flowplayer/"+h,p)}catch(v){}}clear(){try{this.keys().forEach((h)=>this.implementation.removeItem(h))}catch(h){}}get length(){try{return this.keys().length}catch(h){return 0}}key(h){try{return this.implementation.key(h)}catch(p){return null}}}class xn{constructor(){this.pairs=[]}get length(){return this.pairs.length}clear(){this.pairs=[]}getItem(h){var p;return((p=this.pairs.find((v)=>v[0]===h))===null||p===void 0?void 0:p[1])||null}key(h){return this.pairs[h][0]||null}removeItem(h){this.pairs=this.pairs.filter((p)=>p[0]!==h)}setItem(h,p){this.removeItem(h),this.pairs.push([h,p])}}let Zr={preload:"auto",rtl:!1,controls:!0},ts=["muted","preload"];function Qn(h,p,v){let k;v.live_state={dvr_window:void 0,get dvr(){return k},set dvr($){k=$;let Z=!(!h.live||$);v.hasState(oi)!=Z&&v.setState(oi,Z)}},v._storage=new Lr(["localStorage","sessionStorage"].map(($)=>{try{let Z=window[$];return Z.getItem(""),Z}catch(Z){return console.debug(`Access to window.${$} denied, trying next option`),null}}).find(($)=>!!$)||new xn),v.toJSON=function(){return{duration:v.duration,volume:v.volume,currentTime:v.currentTime,states:v.root.className}},v.setSrc=function($){return li(v,h,$,S())},v.playerState=v.playerState||{},v.setState=function($,Z){if(v.playerState[$]===!!Z)return v;let rt=Object.assign({},v.playerState,{[$]:Z});return v.playerState=rt,Pi(v,"state",v.playerState),v},v.createComponents=function(...$){return Array.from({length:$.length}).map((Z,rt)=>Li(this,$[rt]))},v.hasState=function($){return!!v.playerState[$]},v.transitionState=function($,Z,rt){!v.hasState($)&&v.hasState(Z)||(rt=0),rt&&v.setState("is-toggling",!0),v.setState(Z,!1),v.setState($,!0),rt&&setTimeout(function(){v.setState("is-toggling",!1)},rt)},v.emit=($,Z)=>(Pi(v,$,Z),v),v.on=($,Z)=>(Ue(v,$,Z),v),v.once=($,Z)=>(Ji(v,$,Z),v),v.off=($,Z)=>{var rt,Bt;return rt=$,Bt=Z,v.removeEventListener(rt,Bt),v},v.poll=($,Z)=>dn(v,$,Z),v.togglePlay=function($){return v.hasState("is-error")?Promise.reject():Hi(v,0,$)},v.toggleMute=function($){$=$==null?!v.muted:!!$,v.muted=$,v.muted||v.volume||(v.volume=1),Pi(v,"volumechange")},v.toggleDisable=function($){$=$==null?!v.disabled:!!$,v.setState("is-disabled",$),v.disabled=$},v.destroy=function(){v.pause();let $=g.indexOf(v);~$&&g.splice($,1),setTimeout(function(){v.setSrc([]),v.reaper&&v.reaper.clear(),Pi(v,J),v.setState("is-destroyed",!0)},0)},v.setAttrs=function($){return ts.forEach((Z)=>{if(!(Z in $))return;let rt=$[Z];rt?v.setAttribute(Z,rt.toString()):v.removeAttribute(Z)}),v},v.opt=function($,Z){return Z=Z===void 0?xi(Zr,$):Z,xi(h,$,Z)},v.i18n=function($,Z){if(!v.reaper)return"";let rt=v.reaper.get("translations");return rt?function Bt(Vt,oe,ke,Ke){return(Ke=Ke||0)>=Vt.length?ke:xi(Vt[Ke],oe,Bt(Vt,oe,ke,Ke+1))}(rt,$,Z||""):Z||""},v.setOpts=function($){Object.assign(h,$),h.live&&!v.hasState(Ii)&&(v.setState(oi,!0),Pi(v,"live")),"disabled"in $&&$.disabled!==void 0&&v.toggleDisable($.disabled),"muted"in $&&$.muted!==void 0&&v.toggleMute($.muted),"dvr"in h&&(v.live_state.dvr=v.opt("dvr")),v.setState("is-rtl",v.opt("rtl",function(Z){if(!Z)return Qr();let rt=Z.getAttribute("dir");return rt?rt=="rtl":Qr()}(p))),v.setState(Ii,!!h.live),v.setState("has-poster",typeof h.poster=="string"&&h.poster.length>0),v.setState("is-seekable",!!h.seekable),v.setState("no-controls",h.controls==0),p.style.backgroundImage=v.hasState("has-poster")?"url('"+h.poster+"')":"",Pi(v,at,h)},v.renderPlugin=function($){dn(v,"renderplugin",$).defaultPrevented||v.root.appendChild($)};let I={offset:0,timer:0};var K,Y;Y=I,(K=v).on(Rn,function(){Xn(K,Y)}),v.enqueueSeek=function($){if(v.opts.seekable!=0&&!(v.opts.disabled==1&&$>0))return Jr(v,I,$)},v.deviceId=function(){return function($){if(Xi)return Xi;try{let Z=$.getItem("flowplayer/uuid");if(Z)return Z;let rt=Ne();return $.setItem("flowplayer/uuid",rt),rt}catch(Z){return Xi=Ne()}}(v._storage)}}function Nn(h,p){let v=p.querySelector("video"),k=v||(h._video_element_callback?h._video_element_callback(h):document.createElement("video"));return k.classList.add("fp-engine"),k.playsInline=!0,v||p.append(k),k}var Zn=typeof global!="undefined"?global:typeof self!="undefined"?self:typeof window!="undefined"?window:{};function Pn(){return typeof window!="undefined"?window:Zn!==void 0?Zn:{}}let Pe=["localhost","127.0.0.1","0.0.0.0","s.codepen.io","cdpn.io","try.flowplayer.com"];function di(h,p){return!!~Pe.indexOf(h)||h.indexOf(p)===h.length-p.length}di.check_whitelist=function(h){return!!~Pe.indexOf(h)};let Mn="production";function Mi(h,p){let v={valid_jwt:!1,raw:"",data:{acl:0},exp:0},k={c:"{}",exp:0};p=p||{};try{k=_i(h),v.valid_jwt=!0}catch(I){}return v.raw=h,v.data=JSON.parse(k.c),v.exp=k.exp,p.require_valid_token&&Mi.validate(v),v}function tr(h){try{return Mi.validate(h),{success:!0,message:""}}catch(p){return{success:!1,message:p.message}}}var Ki;function qe(h){return{grant:h,is_granted:(p)=>(h&p)===p}}function wr({root:h,video:p,data:v}){p&&p.destroy(),console.error(new Error(v.details||v.reason)),h.innerHTML="",h.classList.remove("flowplayer"),h.classList.add("flowplayer-fatal"),h.style.removeProperty("background-image");let k=document.createElement("h2");k.textContent="Playback Error";let I=document.createElement("p");I.textContent="Are you the site owner?";let K=document.createElement("a");K.classList.add("troubleshoot"),K.target="_blank",K.href="https://docs.flowplayer.com/troubleshooting/player#"+v.reason,K.textContent="Troubleshoot?";let Y=document.createElement("img");Y.src="https://flowplayer.com/user/pages/images/logo-white.png",h.append(k,I,K,Y)}function Qi(h){return(p)=>{setTimeout(function(){if(!p.defaultPrevented&&!p.prevented)return h(p)},0)}}Mi.validate=function(h){if(typeof h=="string"&&(h=Mi(h)),!h||!h.raw){if(di.check_whitelist(window.location.hostname)||Mn.toString()==="dev")return!0;throw new Error("No token provided in configuration")}if(!h.valid_jwt)throw new Error("Invalid token provided");let p=window.location.hostname,v=di.bind(null,p);if(Mn.toString()!=="dev"&&h.data.domain&&h.data.domain.length&&!h.data.domain.some(v))throw new Error("Domain not allowed");if(Mn.toString()!=="dev"&&1000*h.exp-Date.now()<0)throw new Error("Expired token");return!0},Mi.id=function(h){if(h)return typeof h=="string"&&(h=Mi(h)),h.data.id},function(h){h[h.ADS=2]="ADS",h[h.ANALYTICS=4]="ANALYTICS",h[h.NO_METERING=8]="NO_METERING",h[h.DEVELOPER_PLAN=16]="DEVELOPER_PLAN",h[h.WOWZA_VIDEO=32]="WOWZA_VIDEO"}(Ki||(Ki={})),qe.of=qe,qe.from_token=function(h){let p=Mi(h,{require_valid_token:!0});return qe.of(p.data.acl)},qe.permissions=Ki;function Vi(h,p){if(!h.parentElement)return;let v=h.clientWidth/h.parentElement.clientWidth*100/2;h.style.left=p-v+"%",h.style.display="block"}function yi(h,p){if(isNaN(h.duration))return;let v=h.buffered;v.length&&(p.style.width=Math.min(v.end(v.length-1)/h.duration*100,100)+"%")}function Fi(h,p){h.style.width="0",p.style.display="none"}function me(h,p){let v=h.seekable;if(typeof h.opts!="object"||v.length==0)return{head:0,tail:0};let k=kr(h),I=p||h.live_state.dvr_window;return{head:k,tail:typeof I!="number"||k-I<0?v.start(0):k-I}}function ei(h){return h.opt("live",!1)||h.duration>=Number.MAX_SAFE_INTEGER}function Bi(h){return isFinite(h.duration)?h.duration:h.seekable.length==0?0:me(h).head}function kr(h){var p;let v=h.seekable;return v.length?h.hasState("is-chromecast-playing")||!((p=h.hls)===null||p===void 0?void 0:p.liveSyncPosition)?v.end(v.length-1):h.hls.liveSyncPosition:0}function er(h,p,v){if(!p.seekable||p.seekable.length==0)return;Vi(v,h);let k=me(p),I=(100-Math.max(0,Math.min(h,100)))/100*(k.head-k.tail);v.innerText="-"+Ni(I)}function Rr(h){h.currentTime=me(h).tail}function ir(h){try{h.dvr_offset=0,h.currentTime=kr(h)}catch(p){console.warn("failed to seek to now: %j",p)}}function Dr(h,p){h/=100,p.currentTime=function(v,k){if(k>1||k<0)return console.warn("cannot calculate a percent outside of range(0..1)"),0;let I=me(v);return I.tail+k*(I.head-I.tail)}(p,h)}function Ui(h,p){h.style.width="0",p.style.display="none"}function nr(h,p){let v=p.clientWidth;p.classList.toggle("is-small",v<600),p.classList.toggle("is-tiny",v<400)}function rr(h,p,v){let k=!0;p.classList.add("flowplayer"),nr(0,p),Ue(v,H,()=>{if(!v.hasState(Ge)&&!v.hasState(Qe)&&h.is_native&&h.preload!=="none")return h.preload==="metadata"?(v.setState(Ge,!0),v.emit(gt)):void Q(v)}),Ue(v,ne,()=>{h.is_native&&h.preload==="metadata"&&v.paused&&v.emit(lt)}),Ue(v,[H,"resize"],function(){nr(0,p)}),Ue(v,"state",function(){Object.entries(v.playerState).forEach(function([I,K]){p.classList.toggle(I,K)})}),Ue(v,"timeupdate",function(){v.setState(Ze,!v.hasState("is-casting")&&!v.hasState(Se)&&v.readyState<3)}),Ue(v,C,function(I){let K=v.original_src;Qi(()=>{if(K===v.original_src){if(v.setState(Xe,!0),Ji(v,"timeupdate",function(){v.setState(Xe,!1),K===v.original_src&&v.setState(Se,!h.loop&&!!h.rewind&&v.paused)}),h.loop)return v.togglePlay(!0);h.rewind&&(v.currentTime=0)}})(I)}),Ue(v,[G,W],function(I){v.setState(si,I.type==G)}),Ue(v,"remotesession:ended",function(I){setTimeout(()=>{I.defaultPrevented||(v.currentTime=I.detail.currentTime)},0)}),Ue(v,C,function(){v.setState(Re,!1),k=!0}),Ue(v,Ft,()=>{if(!v.opts.live||!v.opts.is_native)return;let I=v.seekable;I.length!=0&&v.emit("dvr/window",I.end(I.length-1)-I.start(0))}),Ue(v,A,function(){v.setState(Qe,!0),v.setState(Ge,!1)}),Ue(v,"play",()=>{v.setState(Qt,!0)}),Ue(v,[Mt,lt,H],function(I){if(!v.hasState(si)&&(I.type!=lt||h.autoplay||v.setState(Ze,!1),I.type!=H||v.opt("preload")!="none"||h.autoplay)){if(I.type==H&&h.autoplay)return Ji(v,Ct,function(){v.setState(Ze,!1)});I.type!=Mt||v.hasState(Qe)||v.setState(Ge,!0),v.setState(Xe,!1),v.setState(Ze,I.type==Mt)}}),Ue(v,[Ct,ft],function(I){setTimeout(()=>{let Bt=new CustomEvent("flowplayer/"+I.type,{detail:v});document.dispatchEvent(Bt)},0);let K=I.type==Ct,Y=v.currentTime==v.duration,$=K&&k&&h.autoplay||v.hasState(Ze);if(K&&(v.started=!0,k=!1),v.setState(Ze,!1).setState(Qt,!1),!K&&v.setState(qt,!1),Y)return;let Z=K?Re:ai,rt=K?ai:Re;v.transitionState(Z,rt,$?0:300),!v.hasState(Se)||v.root.classList.contains("ad-hide-first-frame")||v.root.classList.contains("preroll-ios")||function(Bt,Vt){if(!Bt.hasState(Ii)||![void 0,0,-1].includes(Vt)||!Bt.seekable.length||Bt.hasState("has-casted"))return Bt.setState(Se,!1);Bt.once(W,()=>Bt.setState(Se,!1)),Vt===0?Rr(Bt):ir(Bt)}(v,h.start_time)})}let Fn=[0].concat(Array.from({length:100}).map((h,p)=>(p+1)/100));function c(h,p,v){if(!window.IntersectionObserver)return;let k={should_resume:!!h.autoplay,locked:!1};Ue(v,"play",function(){k.locked||(k.should_resume=!0)});let I=()=>{if(!h.autoplay)return;if(v.hasState(de)&&k.should_resume)return v.togglePlay(!0);let $=v.currentSrc;h.autopause||v.hasState(de)||!k.should_resume||Ji(v,"viewenter",()=>{h.autoplay&&k.should_resume&&$===v.currentSrc&&v.togglePlay(!0)})},K=()=>{if(!h.autoplay)return;if(!h.is_native)return;if(h.preload==="auto")return;if(v.hasState(de))return Q(v);let $=v.currentSrc;Ji(v,"viewenter",()=>{$!==v.currentSrc||v.readyState>1||!v.paused||Q(v)})};Ue(v,"src",function(){k.should_resume=!!h.autoplay,v.off(H,K),v.once(H,K),v.off(lt,I),v.once(lt,I)}),Ue(v,ft,function(){k.locked||(k.should_resume=!1)});let Y=new IntersectionObserver(($)=>{$.forEach((Z)=>{setTimeout(()=>{let rt=Z.intersectionRatio,Bt=v.hasState(de);if(v.setState(de,rt>=0.2),v.emit("intersectionchange",{ratio:rt}),Bt===v.hasState(de))return;let Vt=v.hasState(de)?"viewenter":"viewleave";v.emit(Vt)},0)})},{threshold:Fn});Y.observe(p),v.on(J,()=>Y.disconnect()),Ue(v,"viewenter",function(){!k.should_resume||!h.autopause||m()||v.opts.autoplay&&!v.readyState||v.togglePlay(!0)}),Ue(v,"viewleave",function(){if(!h.autopause||m())return;let $=!v.paused;k.locked=!0,v.pause(),setTimeout(function(){k.should_resume=$,k.locked=!1},0)})}function m(){return g.find((h)=>h.hasState("is-casting"))}function y(h,p){if(!window.ResizeObserver)return;let v=new ResizeObserver((k)=>{let I=k[k.length-1];p.emit("resize",I)});v.observe(h),p.on(J,()=>v.disconnect())}function O(h){if(typeof h=="number"&&!isNaN(h))return Number(h);if(typeof h=="string"){let p=h.split(":");return Number(p[1])/Number(p[0])}return h}function N(h,p,v){let k=!!h.ratio,I=document.createElement("div");I.classList.add("fp-ratio"),p.append(I);let K=O(h.ratio||0.5625);I.style.paddingTop=100*K+"%";let Y=[A,ne];v.on(Y,function(){if(k)return;let $=v.videoHeight&&v.videoWidth&&v.videoHeight/v.videoWidth;$&&v.setOpts({ratio:$})}),v.on(at,function(){let $=v.videoHeight&&v.videoWidth&&v.videoHeight/v.videoWidth,Z=O((h==null?void 0:h.ratio)||$||0.5625);K!==Z&&(K=Z,I.style.paddingTop=100*Z+"%")})}class U{constructor(){this.cleanUp=this.cleanUp.bind(this),this.render=this.render.bind(this),this.wireUp=this.wireUp.bind(this)}init(h,p,v){this.root=p,this.player=v,this.wireUp()}wireUp(){var h,p;this.cleanUp(),(h=this.player)===null||h===void 0||h.once(Ct,this.render),(p=this.player)===null||p===void 0||p.once(C,this.wireUp)}cleanUp(){var h,p,v,k;(p=(h=this._logo)===null||h===void 0?void 0:h.parentElement)===null||p===void 0||p.removeChild(this._logo),(v=this.player)===null||v===void 0||v.off(Ct,this.render),(k=this.player)===null||k===void 0||k.off(C,this.wireUp)}render(){var h,p,v;(p=(h=this._logo)===null||h===void 0?void 0:h.parentElement)===null||p===void 0||p.removeChild(this._logo);let k=((v=this.root)===null||v===void 0?void 0:v.querySelector(".fp-ui"))||this.root;if(!k)return;let I=this._logo=document.createElement("a");I.href="https://explorer.flowplayer.com",I.target="_blank",Object.entries(B).forEach(([K,Y])=>{I.style.setProperty(K,Y,"important")}),k.appendChild(I)}}U.pluginName="explorer-plan";let B={display:"block",opacity:"1",visibility:"visible",width:"33%","padding-top":"9%",position:"absolute","z-index":"9999",bottom:"25%",left:"10%","background-size":"cover","background-image":"url(https://static.flowplayer.com/explorer/explorer.svg)"},ut="flowplayer/"+Ct;function ct(h){let p=(v)=>{v.detail!==h&&h.opt("multiplay")===!1&&h.togglePlay(!1)};h.on(J,()=>document.removeEventListener(ut,p)),document.addEventListener(ut,p)}function It(h,p){let v=[];h.addEventListener("contextmenu",(k)=>{let I=k.timeStamp;for(v.push(I);v.length>3;)v.shift();v.length>=3&&v.every((K)=>K-I<3000)&&(console.debug("flowplayer/debug rendering info"),function(K,Y){var $;(function(Vt){let oe=Vt.querySelector(".debug-info");oe==null||oe.remove()})(K);let Z=document.createElement("div");Z.classList.add("debug-info");let rt=yt("flowplayer.version","3.28.2");Z.append(rt);let Bt=($=Y==null?void 0:Y.hls)===null||$===void 0?void 0:$.constructor;if(Bt&&Bt.version){let Vt=yt("hls.version",Bt.version);Z.append(Vt)}K.appendChild(Z)}(h,p))})}let yt=(h,p)=>{let v=document.createElement("div");v.classList.add("row",h);let k=document.createElement("span");k.classList.add("attr"),k.textContent=h;let I=document.createElement("span");return I.textContent=p,I.classList.add("value"),v.append(k,I),v};function Pt(h,p){let v=function(){try{return localStorage.getItem("flowplayer/debug")}catch(I){return""}}(),k=(I,...K)=>{try{let Y=(p==null?void 0:p.debug)||v;Y&&h.match(Y)&&console.log(`flowplayer/${h} -- ${I}`,...K)}catch(Y){console.warn(Y)}};return k.log=k,k}let Ot="without_recovery",Et="off";class Tt extends Error{static getErrorKey(h){return h in Fe?Fe[h]:Fe["00-00"]}constructor(h,p,v={}){super(h),this.message=h,this.flowplayerErrorCode=p,this.config=v,this.id=Ne(),this.isFatal=!!v.isFatal,this.errorKey=Tt.getErrorKey(this.flowplayerErrorCode)||"unknown"}toJSON(){return{message:this.message,flowplayer_error_code:this.flowplayerErrorCode,id:this.id,root_error_id:this.config.rootErrorId,resource:this.config.resource,is_fatal:this.isFatal,is_retry:!!this.config.isRetry}}}let ie=Pt("core/retry");function _e(h,p){let v={pending:void 0,count:0};h.on("flowplayer:error",(k)=>{var I,K,Y,$,Z;let rt=(I=k.detail)===null||I===void 0?void 0:I.error;rt.config.isRetry=!!v.count,v.pending===void 0&&((Y=(K=rt.config)===null||K===void 0?void 0:K.retryOpts)===null||Y===void 0?void 0:Y.retry)!==Et&&(p.retry||((Z=($=rt.config)===null||$===void 0?void 0:$.retryOpts)===null||Z===void 0?void 0:Z.retry))&&(++v.count,v.pending=function(Bt,Vt,oe){var ke,Ke;return setTimeout(()=>{var Te;Bt.hasState("is-destroyed")||(Vt.pending=void 0,((Te=oe.config.retryOpts)===null||Te===void 0?void 0:Te.retry)!==Ot&&Bt.emit("recover"),Bt.emit("retry",{error:oe}),ie("%s try",Vt.count))},(Ke=(ke=oe.config.retryOpts)===null||ke===void 0?void 0:ke.retryTimeout)!==null&&Ke!==void 0?Ke:3000*Vt.count)}(h,v,rt))}),h.on(Ct,()=>{v.count=0}),h.on(["src","recover"],(k)=>{k.type==="src"&&(v.count=0),clearTimeout(v.pending),v.pending=void 0}),h.on("retry",Qi(()=>{h.load()}))}let Be="rebuffer",He="rebuffer:ended",wi="insights:ttff",sr="insights:time_to_first_frag_loaded",Bn="insights:watched_interval";var Cr=Object.freeze({__proto__:null,RECORD:"health:record",REBUFFER:Be,REBUFFER_ENDED:He,DISPLAY:"display",TIME_TO_FIRST_FRAME:wi,TIME_TO_FIRST_FRAGMENT_LOADED:sr,WATCHED_INTERVAL:Bn});let _a=[gt,"error","src"];function Bs(h){try{return!!new URL(h)}catch(p){return!1}}let es=navigator;function La(h){var p,v;let k=(p=h.hls)===null||p===void 0?void 0:p.bandwidthEstimate;return k?0.000001*k:((v=es.connection)===null||v===void 0?void 0:v.downlink)||-1}function Us(h,p){return async function(v,k){try{await fetch(v,{body:k,method:"POST",mode:"no-cors"})}catch(I){}}(h,JSON.stringify({events:p}))}let wa=(h)=>{switch(h){case!0:return qi.ON;case!1:return qi.OFF;default:return h}};function ar(){try{let h=window.location!==window.parent.location?document.referrer:document.location.href;return typeof h=="string"&&h.slice(0,200)}catch(h){return!1}}let Ir=[],or="https://ihi.flowplayer.com/v1/health/events";function Un(h){if(h.suspended)return;let p=Ir.slice(0);Ir.length=0,p.length!=0&&(h.logger.log(`:dispatch events={${p.length}}`),Us(function(){try{return typeof window=="undefined"?or:window.__FLOWPLAYER_INSIGHTS_URL?window.__FLOWPLAYER_INSIGHTS_URL:or}catch(v){return or}}(),p))}async function ki(h,p,v){let k=await un();Ir.push(Object.assign(p,k)),h.logger.log(":enqueue",p.event,p),Ir.length<10&&!v||Un(h)}let $s=()=>{var h,p;try{let v=window;return(p=(h=v==null?void 0:v.google)===null||h===void 0?void 0:h.ima)===null||p===void 0?void 0:p.VERSION}catch(v){return}},un=async()=>({client_time:Date.now()}),Or=(h,p)=>Object.assign(h,{detail:p}),ui=(h,{event:p,media_session_id:v,session_id:k,play_range_id:I})=>({event:p,media_session_id:v,session_id:k,play_range_id:I,device_id:h.deviceId(),version:"3.28.2",commit:"4a1bfbd8cc190b9064b5dbb5e786f1b1229b7b94",ima_sdk_version:$s(),preload:h.opt("preload"),autoplay:wa(h.opt("autoplay")),live:h.opt("live"),dvr:!!h.live_state.dvr,source:h.original_src,downlink_mbs:La(h),page_url:ar(),player_id:h.opt("metadata.player_id"),media_id:h.opt("metadata.media_id")||h.opt("metadata.stream_target_id"),site_id:h.opt("metadata.site_id"),category_id:h.opt("metadata.category_id"),sitegroup_id:h.opt("metadata.sitegroup_id"),token:h.token,plugins:h.plugins.map((K)=>K.constructor.name).sort((K,Y)=>K.localeCompare(Y)),current_time:h.currentTime,external_media_id:h.opt("external_media_id")}),$n=(h)=>({bitrate:h==null?void 0:h.bitrate,resolution:h==null?void 0:h.attrs.RESOLUTION,frame_rate:h==null?void 0:h.attrs["FRAME-RATE"]});function Gs(h,p,v,k){let I=ui(p,h.eventInfo(v)),{before:K,after:Y}=k;ki(h,(($,Z,rt)=>Object.assign($,{state:{before:Z,after:rt}}))(I,$n(K),$n(Y)))}let Hs=(h,p)=>{let v=null;return(...k)=>{v!==null&&(clearTimeout(v),v=null),v=setTimeout(()=>p(...k),h)}};var ii;(function(h){h[h.Starting=0]="Starting",h[h.ConfigFinalized=1]="ConfigFinalized",h[h.TimerStartedWithAutoplay=2]="TimerStartedWithAutoplay",h[h.TimerStartedWithUserGesture=3]="TimerStartedWithUserGesture",h[h.MetricReported=4]="MetricReported"})(ii||(ii={}));let Gn=[R,"touchend"];class Ks{constructor(h=ii.Starting,p=!1){this.state=h,this.loadedAd=p}reset(){this.state=ii.Starting,this.loadedAd=!1,this.start=void 0,this.end=void 0,this.adDetails=void 0}adInfo(){let{ad_tag_id:h,vast_ad_id:p}=this.adDetails||{};return{ad_tag_id:h,vast_ad_id:p}}toJSON(){return Object.assign({ad_was_requested:this.loadedAd,ms_to_first_frame:Math.round(this.end&&this.start?this.end-this.start:-1)},this.adInfo())}startTimer(h){this.state==ii.ConfigFinalized&&(this.state=h,this.start=performance.now())}hasStarted(){return[ii.TimerStartedWithAutoplay,ii.TimerStartedWithUserGesture].includes(this.state)}stopTimer(h){this.hasStarted()&&(this.end||(this.end=performance.now()),this.state=ii.MetricReported,h())}}function is(h){return Math.round(1000*h)/1000}class Vs{constructor(h){this.tickInterval=h,this.ewma=0,this.startTime=Date.now()}decay(){let h=Date.now()-this.startTime;return Math.pow(2,-h/(4*this.tickInterval))}update(h){let p=this.decay();return this.ewma=p*this.ewma+(1-p)*h,this.ewma}toJSON(){return this.ewma}}let bo={skipUnreliableSegments:!0};class bn{constructor(h){this.player=h,this.marchingInterval=void 0,this.lastWatchedPoint=void 0,this.watchedSum=0,this.lastReportedSum=0,this.ewmaTickWatched=new Vs(bn.AccuracyMilliseconds)}reset(){this.onNotWatching(),this.watchedSum=0,this.lastReportedSum=0,this.lastWatchedPoint=void 0}onNotWatching(){this.marchingInterval&&(this.updateWatched(),this.marchingInterval=clearInterval(this.marchingInterval))}onWatching(){this.marchingInterval||(this.lastWatchedPoint=this.createWatchedPoint(),this.marchingInterval=setInterval(()=>{this.updateWatched()},bn.AccuracyMilliseconds))}createWatchedPoint(){return{currentTime:this.player.currentTime,paused:this.player.paused}}updateWatched(){let h=this.createWatchedPoint();this.lastWatchedPoint&&this.calculateTimeWatched(this.lastWatchedPoint,h),this.lastWatchedPoint=h}calculateTimeWatched(h,p){var v,k;let I=p.currentTime-h.currentTime,K=this.ewmaTickWatched.update(I);if(!(I<0)&&!(((k=(v=this.player.opts)===null||v===void 0?void 0:v.health)===null||k===void 0?void 0:k.skipUnreliableSegments)!==!1&&1000*I>1.3*bn.AccuracyMilliseconds)&&(this.watchedSum+=I,this.watchedSum!=this.lastReportedSum&&(this.watchedSum>this.lastReportedSum+bn.ReportingIntervalSeconds||this.player.ended))){let Y=is(K),$={total_watched_seconds:is(this.watchedSum),tick_watched_seconds:Y,batch_watched_seconds:is(this.watchedSum-this.lastReportedSum)};this.lastReportedSum=this.watchedSum,this.player.emit(Bn,$)}}}bn.ReportingIntervalSeconds=5,bn.AccuracyMilliseconds=160;let To=Ne();class Ei{constructor(h,p){let v;this.session_id=To,this.suspended=!1,this.logger=Pt("health",p.opts),this.media_session_id=Ne(),this.play_range_id=Ne(),this.analyticsLoop=setInterval(()=>Un(this),2000),p.on(J,()=>clearInterval(this.analyticsLoop)),p.on(Ct,()=>{v!==this.media_session_id&&(v=this.media_session_id,this.first_playing_event_timestamp=Date.now()),this.play_range_id=Ne()});let k=Date.now()-1000;p.on("timeupdate",(K)=>{if(v!==this.media_session_id)return;let Y=Date.now();if(Y<k)return;k=Date.now()+5000;let $=ui(p,this.eventInfo(K.type)),Z=Or($,{duration:(rt=p.duration,Number.isFinite(rt)?rt:rt===1/0?-1:void 0)});var rt;this.first_playing_event_timestamp&&(Object.assign(Z,{ms_since_first_playing:Y-this.first_playing_event_timestamp}),this.first_playing_event_timestamp=void 0),ki(this,Z)});let I=this;if(p.health={get media_session_id(){return I.media_session_id},set media_session_id(K){I.media_session_id=K},get session_id(){return I.session_id},set session_id(K){I.session_id=K},toggle(K){K?I.resume():I.suspend()}},!Ei._UNLOAD_SUBSCRIBED){Ei._UNLOAD_SUBSCRIBED=!0;let K=(Y)=>h.instances.forEach(($)=>$.emit(Y.type));document.addEventListener("visibilitychange",(Y)=>{document.visibilityState=="hidden"&&K(Y)}),window.addEventListener("pagehide",K)}}eventInfo(h){return{event:h,media_session_id:this.media_session_id,session_id:this.session_id,play_range_id:this.play_range_id}}suspend(){this.suspended=!0,clearInterval(this.analyticsLoop)}resume(){this.suspended=!1,this.analyticsLoop=setInterval(()=>Un(this),2000)}init(h,p,v){if(ar().toString().startsWith("data:"))return this.suspend();(function(k){let I=null,K=()=>{I=null};k.on(Mt,function(Y){k.seeking||k.networkState===k.NETWORK_LOADING&&(k.readyState<HTMLMediaElement.HAVE_CURRENT_DATA||k.emit(Be))}),k.on(Be,(Y)=>{I=Y}),k.on(lt,(Y)=>{if(I){let $=Y.timeStamp-I.timeStamp;if(K(),$<31)return;if($>300000)return;k.emit(He,{rebuffer_duration:$/1000})}}),_a.forEach((Y)=>k.on(Y,K))})(v),function(k){let I;[lt,gt].forEach((K)=>{k.on(K,(Y)=>{let $=Date.now();switch(Y.type){case gt:return I=$;case lt:if(I)return k.emit(sr,{ms_since_loading_started:$-I}),I=null}})})}(v),function(k){if(window.performance===void 0)return;let I=new Ks;k.on("src",()=>{if(!k.opt("metadata.media_id"))return I.reset();I.reset(),I.state=ii.ConfigFinalized}),k.on(gt,()=>{(k.root.classList.contains("ad-hide-first-frame")||k.opt("autoplay"))&&I.startTimer(ii.TimerStartedWithAutoplay)}),Gn.forEach((K)=>{k.on(K,()=>{k.opt("autoplay")||I.startTimer(ii.TimerStartedWithUserGesture)})}),k.on("ad-requested",()=>{I.loadedAd=!0}),k.on("timeupdate",()=>{if(!(k.readyState<HTMLMediaElement.HAVE_CURRENT_DATA)){if(k.root.classList.contains("ad-hide-first-frame"))return!I.end&&(I.end=performance.now());switch(I.state){case ii.TimerStartedWithAutoplay:case ii.TimerStartedWithUserGesture:return I.stopTimer(()=>k.emit(wi,I.toJSON()))}}}),k.on("ad-started",(K)=>{switch(I.end=void 0,I.adDetails=K.detail,I.state){case ii.TimerStartedWithAutoplay:case ii.TimerStartedWithUserGesture:return I.stopTimer(()=>k.emit(wi,I.toJSON()))}})}(v),function(k){let I=new bn(k);k.on(gt,()=>I.reset()),k.on(Ct,()=>I.onWatching()),k.on(He,()=>!k.paused&&I.onWatching()),k.on(Be,()=>I.onNotWatching()),k.on(ft,()=>I.onNotWatching()),k.on(G,()=>I.onNotWatching()),k.on(C,()=>I.updateWatched()),k.on("visibilitychange",()=>I.updateWatched())}(v),v.on("display",(k)=>{ki(this,ui(v,this.eventInfo(k.type)),!0)}),v.on("health:record",({detail:k})=>{let I=ui(v,this.eventInfo(k.event));Object.assign(I,k.detail||{}),ki(this,I)}),[H,ne,A,Ft,Mt,Be].forEach((k)=>{v.on(k,(I)=>{ki(this,ui(v,this.eventInfo(I.type)))})}),[He,wi,sr,Bn].forEach((k)=>{v.on(k,(I)=>{let K=ui(v,this.eventInfo(I.type));ki(this,Object.assign(K,I.detail))})}),[Ct,ft,G,W,C,j,Nt,lt,gt].forEach((k)=>{v.on(k,(I)=>{ki(this,ui(v,this.eventInfo(I.type)))})}),v.on("volumechange",Hs(800,(k)=>{let I=ui(v,this.eventInfo(k.type));ki(this,Or(I,{volume:parseFloat(v.volume.toFixed(2)),muted:v.muted}))})),v.on("resize",Hs(800,(k)=>{let I=ui(v,this.eventInfo(k.type));ki(this,Or(I,{height:p.clientHeight,width:p.clientWidth}))})),v.on("hls/failover",(k)=>{let I=ui(v,this.eventInfo(k.type)),K=k.detail,{reason:Y,from:$}=K;ki(this,Or(I,{reason:Y,from:$}))}),v.on("qualitychange",({type:k,detail:I})=>{switch(I.plugin){case"hls":return Gs(this,v,k,I)}}),v.on("flowplayer:error",(k)=>{let I=ui(v,this.eventInfo(k.type)),K=k.detail.error;if(!K)return ki(this,I,!0);return ki(this,Or(I,K.toJSON()),!0)}),v.on("src",(k)=>{var I;let K=(I=k.detail)===null||I===void 0?void 0:I.src;if(typeof K!="string")return;if(!Bs(v.original_src))return;if(!Bs(K))return;if(K==v.original_src)return;this.media_session_id=Ne(),ki(this,ui(v,this.eventInfo(k.type))),Un(this),v.setOpts({health:Object.assign(Object.assign({},v.opts.health),bo)})}),v.on("visibilitychange",(k)=>{ki(this,ui(v,this.eventInfo(k.type))),Un(this)})}}function rn(h,p){return function(v){return v.extensions.reduce((k,I)=>k.find((K)=>K.pluginName===I.pluginName)?(console.warn("flowplayer: duplicate plugin %s detected, plugin names should be unique",I.name),k):(k.push(I),k),[])}(h).map((v)=>new v(h,p))}function lr(h){h.on("error",Qi((p)=>{let v=p instanceof MediaError?p:h.error;v&&h.emit("flowplayer:error",{error:cr(v,{resource:h.original_src})})}))}function cr(h,p={}){var v,k,I,K,Y,$;switch(h.code){case MediaError.MEDIA_ERR_ABORTED:return new Tt((v=h.message)!==null&&v!==void 0?v:"The playback was aborted, typically by the user.",Zt.PlaybackInternalAborted,Object.assign({isFatal:!1,retryOpts:{retry:Et}},p));case MediaError.MEDIA_ERR_NETWORK:return new Tt((k=h.message)!==null&&k!==void 0?k:"A network error prevented media from being downloaded.",Zt.NetworkHttpRequestFailed,Object.assign({isFatal:!0},p));case MediaError.MEDIA_ERR_DECODE:return new Tt((I=h.message)!==null&&I!==void 0?I:"An error occurred while decoding the media.",Zt.PlaybackVideoDecodeError,Object.assign({isFatal:!0},p));case MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED:return new Tt((K=h.message)!==null&&K!==void 0?K:"The media could not be loaded because the format is not supported.",Zt.MediaUnsupportedVideoFormat,Object.assign({isFatal:!0},p));case 5:return new Tt((Y=h.message)!==null&&Y!==void 0?Y:"Encrypted content could not be played due to missing keys or unsupported protection scheme.",Zt.ContentProtectionKeySystemNoKeys,Object.assign({isFatal:!0},p));default:return new Tt(($=h.message)!==null&&$!==void 0?$:"An unknown playback error occurred.",Zt.PlaybackUnknown,Object.assign({isFatal:!0},p))}}Ei.pluginName="health",Ei.events=Cr,Ei._UNLOAD_SUBSCRIBED=!1;let ka=function(){let h=Pn(),p=h.flowplayer?h.flowplayer:{extensions:[]};return Array.isArray(p.extensions)||(p.extensions=[]),p}();function Ri(h,p){if(typeof h=="function")return o.push(...[...arguments].filter((Z)=>typeof Z=="function")),Ri;typeof p=="string"&&(p={src:p}),p||(p={}),p.token||typeof window.__FLOWPLAYER_TOKEN!="string"||(p.token=window.__FLOWPLAYER_TOKEN);let v=typeof h=="string"?document.querySelector(h):h;if(!v)return console.error(new Error("Flowplayer: '"+h.toString()+"' not found"));let k=v.querySelector("video.fp-engine");if(k)return k;let I=tr(p.token);if(!I.success)return wr({root:v,data:{reason:"token",details:I.message}});let K=new Map,Y=Nn(p,v);Y.reaper=K,Y._customElements=ve,Object.defineProperty(Y,"token",{value:typeof p.token=="string"?Mi.id(p.token):"",writable:!1}),Y.addEventListener(J,()=>{K.clear(),Y.reaper=0,delete Y.root}),Y.root=v,p.token&&qe.from_token(p.token).is_granted(qe.permissions.DEVELOPER_PLAN)&&o.push(U),!~g.indexOf(Y)&&g.push(Y),Qn(p,v,Y),Y.setAttrs(p),Y.plugins=rn(Ri,Y),rr(p,v,Y),c(p,v,Y),y(v,Y),N(p,v,Y),ct(Y),It(v,Y),_e(Y,p),lr(Y),Y.plugins.forEach((Z)=>{try{Z.init(p,v,Y)}catch(rt){console.log("Error(plugin/%s)",Z.constructor.name,rt)}}),Y.setOpts(p),Y.opts=p,p.src&&Y.setSrc(p.src);let $=Y.readyState;return $>0&&Y.currentSrc&&Y.emit(ne),$>2&&Y.currentSrc&&Y.emit(lt),Y.emit("mount"),Y.on("error:fatal",function(Z){wr({root:v,video:Y,data:Z.data||{}})}),setTimeout(Pi,0,document,"flowplayer:player:created",Y),Y}Object.assign(Ri,ka),function(h){Array.isArray(h.extensions)&&h.extensions.forEach((p)=>o.push(p)),h.customElements=ve,h.defaultElements=Oe,h.version="3.28.2",h.commit="4a1bfbd8cc190b9064b5dbb5e786f1b1229b7b94",h.instances=g,h.extensions=o,h.support=S,h.events=Rt,h.states=en,h.errors=Zt,h.jwt=_i,h.autoplay=qi,h.quality=fe}(Ri),typeof document=="object"&&setTimeout(Pi,0,document,"flowplayer:umd",Ri),Ri.extensions.unshift.apply(Ri.extensions,[Ei]);let xr=(...h)=>h.reduce((p,v)=>Object.assign(Object.assign({},p),v),{}),Hn=(h,p)=>{let v=h.lastIndexOf(p);return~v&&h.splice(v,1),h};class Ie{static of(){return new Ie}static is_empty(h){return h.pending.length==0}static is_high_water(h){return h.open.length==Ie.MAX_OPEN_REQUESTS}static maybe_spawn_req(h){if(Ie.is_empty(h))return h;if(Ie.is_high_water(h))return h;try{let p=Ie.lpop(h);p&&Ie.request(h,p)}catch(p){}}static increment_failures(h){return h.stats.failures++,h.stats.failures>Ie.MAX_FAILURE_COUNT&&(h.stats.ttl=Date.now()+Ie.REQUEST_TTL_MS),h}static handle_error(h,p){Ie.rm(h,p),Ie.increment_failures(h)}static request(h,[p,v,k]){if(Date.now()<h.stats.ttl)return;let I=new XMLHttpRequest;h.open.push(I),I.timeout=Ie.REQUEST_TIMEOUT_MS,I.ontimeout=function(){Ie.handle_error(h,I)},I.onerror=function(K){Ie.handle_error(h,I)},I.onreadystatechange=function(){I.readyState==XMLHttpRequest.DONE&&Ie.rm(h,I),Math.floor(I.status/100)},I.onload=function(){Ie.rm(h,I),h.stats.failures&&h.stats.failures--},I.open(v,p),I.setRequestHeader("Content-Type","text/plain;charset=UTF-8");try{I.send(JSON.stringify(k))}catch(K){}}static rpush(h,...p){return p.forEach((v)=>{h.pending.length>=Ie.MAX_PENDING||(h.pending.push(v),Ie.maybe_spawn_req(h))}),h}static lpop(h){return h.pending.shift()}static rm(h,p){return Hn(h.open,p),h}constructor(){this.pending=[],this.open=[],this.stats={failures:0,ttl:0}}}Ie.MAX_OPEN_REQUESTS=3,Ie.MAX_PENDING=5,Ie.REQUEST_TIMEOUT_MS=4000,Ie.REQUEST_TTL_MS=5000,Ie.MAX_FAILURE_COUNT=3;var Ws=Ie.of();let ns=/:([a-zA-Z_]+)/g;class Si{static prepare(h,p){let v=document.createEvent("Event");return v.initEvent(h,!1,!0),v.ns=h,v.data=p,v}static of(h){return new Si(h)}constructor(h){this.emitter=h}info(h){this.emitter.dispatchEvent(Si.prepare(Si.NAMESPACE.INFO,h))}error(h){this.emitter.dispatchEvent(Si.prepare(Si.NAMESPACE.ERROR,h))}warn(h){this.emitter.dispatchEvent(Si.prepare(Si.NAMESPACE.WARN,h))}}var js;Si.NAMESPACE={INFO:"tracker:info",ERROR:"tracker:err",WARN:"tracker:warn"},function(h){h.POST="POST",h.PUT="PUT",h.GET="GET"}(js||(js={}));class ye{static of(h,p){return new ye(h,p)}static ensure_required_keys(h,p){return h.required_keys.filter((v)=>!(v in p))}static pluck_valid_keys(h,p){return((v,...k)=>Object.keys(v).filter((I)=>~k.indexOf(I)).reduce((I,K)=>xr(I,{[K]:v[K]}),{}))(p,...h.valid_keys)}static merge_metadata(h,p={}){return h.metadata=ye.pluck_valid_keys(h,xr(h.metadata,p)),h}static assert_emitter_api(h){if(typeof(h||{}).addEventListener!="function")throw new Error("Tracker() received an emitter that does not implement the addEventListener method");if(typeof(h||{}).removeEventListener!="function")throw new Error("Tracker() received an emitter that does not implement the removeEventListener method")}static create_listener(h,p,v){var k;h.listeners.push([p,v]),(k=h.emitter)===null||k===void 0||k.addEventListener(p,v)}constructor(h,p={}){let v=this;if(this.emitter=h,this.url=p.url,this.log=Si.of(this.emitter),this.verb=p.verb,this.metadata=xr({},p.metadata||{}),this.rq=p.rq||Ws,this.events=p.events||[],this.required_keys=p.required_keys||[],this.optional_keys=p.optional_keys||[],this.listeners=[],this.valid_keys=this.required_keys.slice(0).concat(this.optional_keys),ye.assert_emitter_api(this.emitter),ye.verb[this.verb]===void 0)throw new Error(`invalid HTTP verb[${this.verb}] passed`);if(typeof this.url!="string")throw new Error(`invalid API url[${this.url}] passed`);ye.TRACKERS.push(this),v.events.forEach((k)=>{ye.create_listener(this,k,(I={})=>{let K=xr(v.metadata,{event_type:k},I.data||I),Y=function(rt,Bt){return rt.replace(ns,(Vt)=>{let oe=Vt.slice(1,Vt.length);return oe in Bt?Bt[oe].toString():Vt})}(v.url,K),$=ye.pluck_valid_keys(v,K),Z=ye.ensure_required_keys(v,$);if(Z.length)return v.log.error(`Tracker.validate_metadata() failed for
|
|
5
|
-
Event[${
|
|
6
|
-
missing keys: ${
|
|
3
|
+
%s`:"",z.message,`
|
|
4
|
+
instance:`,$),V&&!U)return $.muted=!0,$.play()})}(f)):(f.setState(Nt,!1),!f.hasState(ue)&&f.setState(xt,!0),Promise.resolve())}function Wt(f){f.opts.is_native&&(f.hasState(xe)||(f.hasState(ke)||f.emit(lt),f.setState(ke,!0),f.load()))}function Ka(f){let g=document.createElement("a");return g.href=f,g.href}function Ps(f,g){var p={};for(var C in f)Object.prototype.hasOwnProperty.call(f,C)&&g.indexOf(C)<0&&(p[C]=f[C]);if(f!=null&&typeof Object.getOwnPropertySymbols=="function"){var O=0;for(C=Object.getOwnPropertySymbols(f);O<C.length;O++)g.indexOf(C[O])<0&&Object.prototype.propertyIsEnumerable.call(f,C[O])&&(p[C[O]]=f[C[O]])}return p}function Ll(f){let g=document.createElement("a");g.href=f;let p=g.pathname&&g.pathname.split(".");return p.length>1&&p[p.length-1]}function xs(f){switch(f){case"video/mpd":return"application/dash+xml";case"video/m3u8":return"application/x-mpegurl";default:return f}}let qr=(f)=>{var{src:g}=f,p=Ps(f,["src"]);return[Object.assign({src:g,type:g?xs("video/"+Ll(g)):""},p)]};function hi(f){return qr({src:f})}function Fs(f){var{src:g,type:p}=f,C=Ps(f,["src","type"]);return g&&p?[Object.assign({src:g,type:p},C)]:p&&!g?[Object.assign({type:p},C)]:qr(Object.assign({src:g},C))}var Oi;function si(f,g,p,C={safari:!1}){let O=function($){return typeof $=="string"?hi($):Array.isArray($)||typeof $!="object"?$.reduce(function(V,U){return typeof U=="string"&&(U=hi(U)),typeof U!="object"||Array.isArray(U)||(U=Fs(U)),V.concat(U)},[]):Fs($)}(p);return function($){[Ve,Nt,xt,ue,Je,ke,xe,Ci].forEach((V)=>$.setState(V,!1)),$.setState(ne,!0)}(f),Array(...Array(O.length)).map(($,V)=>V).some(($)=>{let V=O[$];if(Oi.Ok==function(U,z,et){U.emit("src",et),z.playback_token&&typeof et.src=="string"&&et.src.startsWith("https://")&&(et.src=function(kt,Ht){let ae=new URL(kt);return ae.pathname=`/pt:${Ht}${ae.pathname}`,ae.toString()}(et.src,z.playback_token)),typeof et.src=="string"&&(U.original_src=et.src);let Tt=function(kt,Ht,ae){return kt.plugins.filter((ge)=>{return(te=ge)&&"wants"in te;var te}).find((ge)=>ge.wants(ae.src||"",ae,Ht))}(U,z,et);return U.setOpts({is_native:!Tt}),Tt?(Tt.onload(z,U.root,U,et),Oi.Ok):Oi.Err}(f,g,V)||Oi.Ok==function(U,z,et,Tt={safari:!1}){var kt;if(/^audio\//.test(et.type||"")&&U.emit("audioonlysource"),z.start_time&&(et.src=et.src+"#t="+z.start_time),U.canPlayType(et.type||"")=="")return Oi.Err;if(et.drm&&(!et.drm["com.apple.fps.1_0"]||!Tt.safari))return Oi.Err;return typeof et.src=="string"&&(U.preload=(kt=z.preload)!==null&&kt!==void 0?kt:"auto",U.src=et.src),Oi.Ok}(f,g,V,C))return!0;$==O.length-1&&typeof V.src=="string"&&(f.src=V.src)}),f}(function(f){f[f.Err=0]="Err",f[f.Ok=1]="Ok"})(Oi||(Oi={}));let Wa=[j,F,"src","seek:cancel"];var Lr;function Ya(f,g,p){return isNaN(f.duration)||isNaN(f.currentTime)?{}:(g.offset+=p,g.offset==0?kn(f,g):(g.timer&&clearTimeout(g.timer),g.timer=setTimeout(function(){f.reaper!=0&&(f.currentTime=function(C,O,$=0){return Math.max(Math.min(O,C),$)}(f.currentTime+g.offset,f.duration),g.timer=0,kn(f,g))},1000),function(C,O){C.setState("will-seek",!0),C.setState(Lr.BACKWARD,O.offset<0),C.setState(Lr.FORWARD,O.offset>0)}(f,g),f.emit("seek:queued",g),g))}function kn(f,g){g.timer&&clearTimeout(g.timer),g.timer=g.offset=0,function(p){p.setState(Lr.FORWARD,!1),p.setState(Lr.BACKWARD,!1),p.setState("will-seek",!1)}(f)}function ja(){if(typeof document=="undefined")return!1;let f=document.documentElement;return f&&f.getAttribute("dir")=="rtl"}function ti(...f){let g=document.createElement("div");return f.length==0||g.classList.add(...f),g}function fi(f,g,p){let C=function(O){return Array.isArray(O)?O.slice(0):O.split(".")}(g);for(;C.length;){if(f==null)return p;let O=C.shift();if(typeof O!="string")return p;f=f[O]}return f==null?p:f}function Xr(f){let g=typeof f=="number"?f:parseInt(f,10);return(g>9?"":"0")+g}function Mi(f){if(isNaN(f)||f>=Number.MAX_SAFE_INTEGER)return"";let g=f<0?"-":"";f=Math.round(Math.abs(f));let p=Math.floor(f/3600),C=Math.floor(f/60);return f-=60*C,p>=1?(C-=60*p,g+p+":"+Xr(C)+":"+Xr(f)):g+Xr(C)+":"+Xr(f)}(function(f){f.FORWARD="forward",f.BACKWARD="backward"})(Lr||(Lr={}));let Ye=navigator.languages||[navigator.language];function Us(f,g,p){let C={};return p=g.lang||p,f[p]&&(C[p]=f[p]),function(){try{return Ye.reduce((O,$)=>~$.indexOf("-")?O.concat($,$.split("-")[0]):O.concat($),[])}catch(O){return[]}}().forEach(function(O){f[O]&&!C[O]&&(C[O]=f[O])}),Object.values(C)}let za=[1e7]+"-1000-4000-8000-100000000000",zi=()=>typeof crypto=="undefined"?"":za.replace(/[018]/g,(f)=>(f^crypto.getRandomValues(new Uint8Array(1))[0]&15>>f/4).toString(16)),Ni="";(function(){let f=!1;try{let g=Object.defineProperty({},"passive",{get:function(){f=!0}});window.addEventListener("testPassive",null,g),window.removeEventListener("testPassive",null,g)}catch(g){}})();let Cn=["touchstart","touchmove"];function Dn(f,g){let p=new CustomEvent(f,{detail:g,cancelable:!0});return g&&Object.defineProperty(p,"data",{get:()=>g}),p}function mi(f,g,p){let C=Dn(g,p);return f.dispatchEvent(C),f}function wr(f,g,p){let C=Dn(g,p);return f.dispatchEvent(C),C}function Ee(f,g,p,C){Array.isArray(g)?g.forEach((O)=>Jr(f,O,p,C)):Jr(f,g,p,C)}function Jr(f,g,p,C){if(O=g,!~Cn.indexOf(O))return f.addEventListener(g,p,C),f;var O;let $=Object.assign(C||{},{passive:!0});return f.addEventListener(g,p,$),f}function lr(f,g,p,C){return Ee(f,g,p,Object.assign(C||{},{once:!0}))}class qa{constructor(f,g){this.implementation=f,g&&g.keys().forEach((p)=>{typeof g.implementation[p]=="string"&&this.implementation.setItem(p,g.implementation[p])})}keys(){var f;let g=[];for(var p=0;p<this.implementation.length;p++)((f=this.implementation.key(p))===null||f===void 0?void 0:f.startsWith("flowplayer/"))&&g.push(this.implementation.key(p));return g}removeItem(f){try{this.implementation.removeItem("flowplayer/"+f)}catch(g){}}getItem(f){try{return this.implementation.getItem("flowplayer/"+f)}catch(g){return null}}setItem(f,g){try{this.implementation.setItem("flowplayer/"+f,g)}catch(p){}}clear(){try{this.keys().forEach((f)=>this.implementation.removeItem(f))}catch(f){}}get length(){try{return this.keys().length}catch(f){return 0}}key(f){try{return this.implementation.key(f)}catch(g){return null}}}class Qr{constructor(){this.pairs=[]}get length(){return this.pairs.length}clear(){this.pairs=[]}getItem(f){var g;return((g=this.pairs.find((p)=>p[0]===f))===null||g===void 0?void 0:g[1])||null}key(f){return this.pairs[f][0]||null}removeItem(f){this.pairs=this.pairs.filter((g)=>g[0]!==f)}setItem(f,g){this.removeItem(f),this.pairs.push([f,g])}}let Xa={preload:"auto",rtl:!1,controls:!0},Ja=["muted","preload"];function Qa(f,g,p){let C;p.live_state={dvr_window:void 0,get dvr(){return C},set dvr(U){C=U;let z=!(!f.live||U);p.hasState(We)!=z&&p.setState(We,z)}},p._storage=new qa(["localStorage","sessionStorage"].map((U)=>{try{let z=window[U];return z.getItem(""),z}catch(z){return console.debug(`Access to window.${U} denied, trying next option`),null}}).find((U)=>!!U)||new Qr),p.toJSON=function(){return{duration:p.duration,volume:p.volume,currentTime:p.currentTime,states:p.root.className}},p.setSrc=function(U){return si(p,f,U,h())},p.playerState=p.playerState||{},p.setState=function(U,z){if(p.playerState[U]===!!z)return p;let et=Object.assign({},p.playerState,{[U]:z});return p.playerState=et,mi(p,"state",p.playerState),p},p.createComponents=function(...U){return Array.from({length:U.length}).map((z,et)=>yi(this,U[et]))},p.hasState=function(U){return!!p.playerState[U]},p.transitionState=function(U,z,et){!p.hasState(U)&&p.hasState(z)||(et=0),et&&p.setState("is-toggling",!0),p.setState(z,!1),p.setState(U,!0),et&&setTimeout(function(){p.setState("is-toggling",!1)},et)},p.emit=(U,z)=>(mi(p,U,z),p),p.on=(U,z)=>(Ee(p,U,z),p),p.once=(U,z)=>(lr(p,U,z),p),p.off=(U,z)=>{var et,Tt;return et=U,Tt=z,p.removeEventListener(et,Tt),p},p.poll=(U,z)=>wr(p,U,z),p.togglePlay=function(U){return p.hasState("is-error")?Promise.reject():Ns(p,0,U)},p.toggleMute=function(U){U=U==null?!p.muted:!!U,p.muted=U,p.muted||p.volume||(p.volume=1),mi(p,"volumechange")},p.toggleDisable=function(U){U=U==null?!p.disabled:!!U,p.setState("is-disabled",U),p.disabled=U},p.destroy=function(){p.pause();let U=o.indexOf(p);~U&&o.splice(U,1),setTimeout(function(){p.setSrc([]),p.reaper&&p.reaper.clear(),mi(p,j),p.setState("is-destroyed",!0)},0)},p.setAttrs=function(U){return Ja.forEach((z)=>{if(!(z in U))return;let et=U[z];et?p.setAttribute(z,et.toString()):p.removeAttribute(z)}),p},p.opt=function(U,z){return z=z===void 0?fi(Xa,U):z,fi(f,U,z)},p.i18n=function(U,z){if(!p.reaper)return"";let et=p.reaper.get("translations");return et?function Tt(kt,Ht,ae,ge){return(ge=ge||0)>=kt.length?ae:fi(kt[ge],Ht,Tt(kt,Ht,ae,ge+1))}(et,U,z||""):z||""},p.setOpts=function(U){Object.assign(f,U),f.live&&!p.hasState(ui)&&(p.setState(We,!0),mi(p,"live")),"disabled"in U&&U.disabled!==void 0&&p.toggleDisable(U.disabled),"muted"in U&&U.muted!==void 0&&p.toggleMute(U.muted),"dvr"in f&&(p.live_state.dvr=p.opt("dvr")),p.setState("is-rtl",p.opt("rtl",function(z){if(!z)return ja();let et=z.getAttribute("dir");return et?et=="rtl":ja()}(g))),p.setState(ui,!!f.live),p.setState("has-poster",typeof f.poster=="string"&&f.poster.length>0),p.setState("is-seekable",!!f.seekable),p.setState("no-controls",f.controls==0),g.style.backgroundImage=p.hasState("has-poster")?"url('"+f.poster+"')":"",mi(p,st,f)},p.renderPlugin=function(U){wr(p,"renderplugin",U).defaultPrevented||p.root.appendChild(U)};let O={offset:0,timer:0};var $,V;V=O,($=p).on(Wa,function(){kn($,V)}),p.enqueueSeek=function(U){if(p.opts.seekable!=0&&!(p.opts.disabled==1&&U>0))return Ya(p,O,U)},p.deviceId=function(){return function(U){if(Ni)return Ni;try{let z=U.getItem("flowplayer/uuid");if(z)return z;let et=zi();return U.setItem("flowplayer/uuid",et),et}catch(z){return Ni=zi()}}(p._storage)}}function wl(f,g){let p=g.querySelector("video"),C=p||(f._video_element_callback?f._video_element_callback(f):document.createElement("video"));return C.classList.add("fp-engine"),C.playsInline=!0,p||g.append(C),C}var Bs=typeof global!="undefined"?global:typeof self!="undefined"?self:typeof window!="undefined"?window:{};function Za(){return typeof window!="undefined"?window:Bs!==void 0?Bs:{}}let gi=["localhost","127.0.0.1","0.0.0.0","s.codepen.io","cdpn.io","try.flowplayer.com"];function In(f,g){return!!~gi.indexOf(f)||f.indexOf(g)===f.length-g.length}In.check_whitelist=function(f){return!!~gi.indexOf(f)};let On="production";function Si(f,g){let p={valid_jwt:!1,raw:"",data:{acl:0},exp:0},C={c:"{}",exp:0};g=g||{};try{C=ni(f),p.valid_jwt=!0}catch(O){}return p.raw=f,p.data=JSON.parse(C.c),p.exp=C.exp,g.require_valid_token&&Si.validate(p),p}function to(f){try{return Si.validate(f),{success:!0,message:""}}catch(g){return{success:!1,message:g.message}}}var Mn;function ai(f){return{grant:f,is_granted:(g)=>(f&g)===g}}function $s({root:f,video:g,data:p}){g&&g.destroy(),console.error(new Error(p.details||p.reason)),f.innerHTML="",f.classList.remove("flowplayer"),f.classList.add("flowplayer-fatal"),f.style.removeProperty("background-image");let C=document.createElement("h2");C.textContent="Playback Error";let O=document.createElement("p");O.textContent="Are you the site owner?";let $=document.createElement("a");$.classList.add("troubleshoot"),$.target="_blank",$.href="https://docs.flowplayer.com/troubleshooting/player#"+p.reason,$.textContent="Troubleshoot?";let V=document.createElement("img");V.src="https://flowplayer.com/user/pages/images/logo-white.png",f.append(C,O,$,V)}function qi(f){return(g)=>{setTimeout(function(){if(!g.defaultPrevented&&!g.prevented)return f(g)},0)}}Si.validate=function(f){if(typeof f=="string"&&(f=Si(f)),!f||!f.raw){if(In.check_whitelist(window.location.hostname)||On.toString()==="dev")return!0;throw new Error("No token provided in configuration")}if(!f.valid_jwt)throw new Error("Invalid token provided");let g=window.location.hostname,p=In.bind(null,g);if(On.toString()!=="dev"&&f.data.domain&&f.data.domain.length&&!f.data.domain.some(p))throw new Error("Domain not allowed");if(On.toString()!=="dev"&&1000*f.exp-Date.now()<0)throw new Error("Expired token");return!0},Si.id=function(f){if(f)return typeof f=="string"&&(f=Si(f)),f.data.id},function(f){f[f.ADS=2]="ADS",f[f.ANALYTICS=4]="ANALYTICS",f[f.NO_METERING=8]="NO_METERING",f[f.DEVELOPER_PLAN=16]="DEVELOPER_PLAN",f[f.WOWZA_VIDEO=32]="WOWZA_VIDEO"}(Mn||(Mn={})),ai.of=ai,ai.from_token=function(f){let g=Si(f,{require_valid_token:!0});return ai.of(g.data.acl)},ai.permissions=Mn;function Pi(f,g){if(!f.parentElement)return;let p=f.clientWidth/f.parentElement.clientWidth*100/2;f.style.left=g-p+"%",f.style.display="block"}function ei(f,g){if(isNaN(f.duration))return;let p=f.buffered;p.length&&(g.style.width=Math.min(p.end(p.length-1)/f.duration*100,100)+"%")}function pi(f,g){f.style.width="0",g.style.display="none"}function ie(f,g){let p=f.seekable;if(typeof f.opts!="object"||p.length==0)return{head:0,tail:0};let C=Gs(f),O=g||f.live_state.dvr_window;return{head:C,tail:typeof O!="number"||C-O<0?p.start(0):C-O}}function Ue(f){return f.opt("live",!1)||f.duration>=Number.MAX_SAFE_INTEGER}function bi(f){return isFinite(f.duration)?f.duration:f.seekable.length==0?0:ie(f).head}function Gs(f){var g;let p=f.seekable;return p.length?f.hasState("is-chromecast-playing")||!((g=f.hls)===null||g===void 0?void 0:g.liveSyncPosition)?p.end(p.length-1):f.hls.liveSyncPosition:0}function Nn(f,g,p){if(!g.seekable||g.seekable.length==0)return;Pi(p,f);let C=ie(g),O=(100-Math.max(0,Math.min(f,100)))/100*(C.head-C.tail);p.innerText="-"+Mi(O)}function eo(f){f.currentTime=ie(f).tail}function Hs(f){try{f.dvr_offset=0,f.currentTime=Gs(f)}catch(g){console.warn("failed to seek to now: %j",g)}}function io(f,g){f/=100,g.currentTime=function(p,C){if(C>1||C<0)return console.warn("cannot calculate a percent outside of range(0..1)"),0;let O=ie(p);return O.tail+C*(O.head-O.tail)}(g,f)}function cr(f,g){f.style.width="0",g.style.display="none"}function Pn(f,g){let p=g.clientWidth;g.classList.toggle("is-small",p<600),g.classList.toggle("is-tiny",p<400)}function xn(f,g,p){let C=!0;g.classList.add("flowplayer"),Pn(0,g),Ee(p,P,()=>{if(!p.hasState(ke)&&!p.hasState(xe)&&f.is_native&&f.preload!=="none")return f.preload==="metadata"?(p.setState(ke,!0),p.emit(lt)):void Wt(p)}),Ee(p,X,()=>{f.is_native&&f.preload==="metadata"&&p.paused&&p.emit(q)}),Ee(p,[P,"resize"],function(){Pn(0,g)}),Ee(p,"state",function(){Object.entries(p.playerState).forEach(function([O,$]){g.classList.toggle(O,$)})}),Ee(p,"timeupdate",function(){p.setState(Ke,!p.hasState("is-casting")&&!p.hasState(ne)&&p.readyState<3)}),Ee(p,I,function(O){let $=p.original_src;qi(()=>{if($===p.original_src){if(p.setState(Qe,!0),lr(p,"timeupdate",function(){p.setState(Qe,!1),$===p.original_src&&p.setState(ne,!f.loop&&!!f.rewind&&p.paused)}),f.loop)return p.togglePlay(!0);f.rewind&&(p.currentTime=0)}})(O)}),Ee(p,[F,B],function(O){p.setState(Ve,O.type==F)}),Ee(p,"remotesession:ended",function(O){setTimeout(()=>{O.defaultPrevented||(p.currentTime=O.detail.currentTime)},0)}),Ee(p,I,function(){p.setState(ue,!1),C=!0}),Ee(p,H,()=>{if(!p.opts.live||!p.opts.is_native)return;let O=p.seekable;O.length!=0&&p.emit("dvr/window",O.end(O.length-1)-O.start(0))}),Ee(p,b,function(){p.setState(xe,!0),p.setState(ke,!1)}),Ee(p,"play",()=>{p.setState(xt,!0)}),Ee(p,[Et,q,P],function(O){if(!p.hasState(Ve)&&(O.type!=q||f.autoplay||p.setState(Ke,!1),O.type!=P||p.opt("preload")!="none"||f.autoplay)){if(O.type==P&&f.autoplay)return lr(p,at,function(){p.setState(Ke,!1)});O.type!=Et||p.hasState(xe)||p.setState(ke,!0),p.setState(Qe,!1),p.setState(Ke,O.type==Et)}}),Ee(p,[at,W],function(O){setTimeout(()=>{let Tt=new CustomEvent("flowplayer/"+O.type,{detail:p});document.dispatchEvent(Tt)},0);let $=O.type==at,V=p.currentTime==p.duration,U=$&&C&&f.autoplay||p.hasState(Ke);if($&&(p.started=!0,C=!1),p.setState(Ke,!1).setState(xt,!1),!$&&p.setState(Nt,!1),V)return;let z=$?ue:Je,et=$?Je:ue;p.transitionState(z,et,U?0:300),!p.hasState(ne)||p.root.classList.contains("ad-hide-first-frame")||p.root.classList.contains("preroll-ios")||function(Tt,kt){if(!Tt.hasState(ui)||![void 0,0,-1].includes(kt)||!Tt.seekable.length||Tt.hasState("has-casted"))return Tt.setState(ne,!1);Tt.once(B,()=>Tt.setState(ne,!1)),kt===0?eo(Tt):Hs(Tt)}(p,f.start_time)})}let Zr=[0].concat(Array.from({length:100}).map((f,g)=>(g+1)/100));function Rl(f,g,p){if(!window.IntersectionObserver)return;let C={should_resume:!!f.autoplay,locked:!1};Ee(p,"play",function(){C.locked||(C.should_resume=!0)});let O=()=>{if(!f.autoplay)return;if(p.hasState(se)&&C.should_resume)return p.togglePlay(!0);let U=p.currentSrc;f.autopause||p.hasState(se)||!C.should_resume||lr(p,"viewenter",()=>{f.autoplay&&C.should_resume&&U===p.currentSrc&&p.togglePlay(!0)})},$=()=>{if(!f.autoplay)return;if(!f.is_native)return;if(f.preload==="auto")return;if(p.hasState(se))return Wt(p);let U=p.currentSrc;lr(p,"viewenter",()=>{U!==p.currentSrc||p.readyState>1||!p.paused||Wt(p)})};Ee(p,"src",function(){C.should_resume=!!f.autoplay,p.off(P,$),p.once(P,$),p.off(q,O),p.once(q,O)}),Ee(p,W,function(){C.locked||(C.should_resume=!1)});let V=new IntersectionObserver((U)=>{U.forEach((z)=>{setTimeout(()=>{let et=z.intersectionRatio,Tt=p.hasState(se);if(p.setState(se,et>=0.2),p.emit("intersectionchange",{ratio:et}),Tt===p.hasState(se))return;let kt=p.hasState(se)?"viewenter":"viewleave";p.emit(kt)},0)})},{threshold:Zr});V.observe(g),p.on(j,()=>V.disconnect()),Ee(p,"viewenter",function(){!C.should_resume||!f.autopause||Rr()||p.opts.autoplay&&!p.readyState||p.togglePlay(!0)}),Ee(p,"viewleave",function(){if(!f.autopause||Rr())return;let U=!p.paused;C.locked=!0,p.pause(),setTimeout(function(){C.should_resume=U,C.locked=!1},0)})}function Rr(){return o.find((f)=>f.hasState("is-casting"))}function Vs(f,g){if(!window.ResizeObserver)return;let p=new ResizeObserver((C)=>{let O=C[C.length-1];g.emit("resize",O)});p.observe(f),g.on(j,()=>p.disconnect())}function Ks(f){if(typeof f=="number"&&!isNaN(f))return Number(f);if(typeof f=="string"){let g=f.split(":");return Number(g[1])/Number(g[0])}return f}function Fn(f,g,p){let C=!!f.ratio,O=document.createElement("div");O.classList.add("fp-ratio"),g.append(O);let $=Ks(f.ratio||0.5625);O.style.paddingTop=100*$+"%";let V=[b,X];p.on(V,function(){if(C)return;let U=p.videoHeight&&p.videoWidth&&p.videoHeight/p.videoWidth;U&&p.setOpts({ratio:U})}),p.on(st,function(){let U=p.videoHeight&&p.videoWidth&&p.videoHeight/p.videoWidth,z=Ks((f==null?void 0:f.ratio)||U||0.5625);$!==z&&($=z,O.style.paddingTop=100*z+"%")})}class tn{constructor(){this.cleanUp=this.cleanUp.bind(this),this.render=this.render.bind(this),this.wireUp=this.wireUp.bind(this)}init(f,g,p){this.root=g,this.player=p,this.wireUp()}wireUp(){var f,g;this.cleanUp(),(f=this.player)===null||f===void 0||f.once(at,this.render),(g=this.player)===null||g===void 0||g.once(I,this.wireUp)}cleanUp(){var f,g,p,C;(g=(f=this._logo)===null||f===void 0?void 0:f.parentElement)===null||g===void 0||g.removeChild(this._logo),(p=this.player)===null||p===void 0||p.off(at,this.render),(C=this.player)===null||C===void 0||C.off(I,this.wireUp)}render(){var f,g,p;(g=(f=this._logo)===null||f===void 0?void 0:f.parentElement)===null||g===void 0||g.removeChild(this._logo);let C=((p=this.root)===null||p===void 0?void 0:p.querySelector(".fp-ui"))||this.root;if(!C)return;let O=this._logo=document.createElement("a");O.href="https://explorer.flowplayer.com",O.target="_blank",Object.entries(ro).forEach(([$,V])=>{O.style.setProperty($,V,"important")}),C.appendChild(O)}}tn.pluginName="explorer-plan";let ro={display:"block",opacity:"1",visibility:"visible",width:"33%","padding-top":"9%",position:"absolute","z-index":"9999",bottom:"25%",left:"10%","background-size":"cover","background-image":"url(https://static.flowplayer.com/explorer/explorer.svg)"},Ws="flowplayer/"+at;function Ys(f){let g=(p)=>{p.detail!==f&&f.opt("multiplay")===!1&&f.togglePlay(!1)};f.on(j,()=>document.removeEventListener(Ws,g)),document.addEventListener(Ws,g)}function Un(f,g){let p=[];f.addEventListener("contextmenu",(C)=>{let O=C.timeStamp;for(p.push(O);p.length>3;)p.shift();p.length>=3&&p.every(($)=>$-O<3000)&&(console.debug("flowplayer/debug rendering info"),function($,V){var U;(function(kt){let Ht=kt.querySelector(".debug-info");Ht==null||Ht.remove()})($);let z=document.createElement("div");z.classList.add("debug-info");let et=js("flowplayer.version","3.28.2");z.append(et);let Tt=(U=V==null?void 0:V.hls)===null||U===void 0?void 0:U.constructor;if(Tt&&Tt.version){let kt=js("hls.version",Tt.version);z.append(kt)}$.appendChild(z)}(f,g))})}let js=(f,g)=>{let p=document.createElement("div");p.classList.add("row",f);let C=document.createElement("span");C.classList.add("attr"),C.textContent=f;let O=document.createElement("span");return O.textContent=g,O.classList.add("value"),p.append(C,O),p};function no(f,g){let p=function(){try{return localStorage.getItem("flowplayer/debug")}catch(O){return""}}(),C=(O,...$)=>{try{let V=(g==null?void 0:g.debug)||p;V&&f.match(V)&&console.log(`flowplayer/${f} -- ${O}`,...$)}catch(V){console.warn(V)}};return C.log=C,C}let kl="without_recovery",zs="off";class Ti extends Error{static getErrorKey(f){return f in Rn?Rn[f]:Rn["00-00"]}constructor(f,g,p={}){super(f),this.message=f,this.flowplayerErrorCode=g,this.config=p,this.id=zi(),this.isFatal=!!p.isFatal,this.errorKey=Ti.getErrorKey(this.flowplayerErrorCode)||"unknown"}toJSON(){return{message:this.message,flowplayer_error_code:this.flowplayerErrorCode,id:this.id,root_error_id:this.config.rootErrorId,resource:this.config.resource,is_fatal:this.isFatal,is_retry:!!this.config.isRetry}}}let ur=no("core/retry");function so(f,g){let p={pending:void 0,count:0};f.on("flowplayer:error",(C)=>{var O,$,V,U,z;let et=(O=C.detail)===null||O===void 0?void 0:O.error;et.config.isRetry=!!p.count,p.pending===void 0&&((V=($=et.config)===null||$===void 0?void 0:$.retryOpts)===null||V===void 0?void 0:V.retry)!==zs&&(g.retry||((z=(U=et.config)===null||U===void 0?void 0:U.retryOpts)===null||z===void 0?void 0:z.retry))&&(++p.count,p.pending=function(Tt,kt,Ht){var ae,ge;return setTimeout(()=>{var te;Tt.hasState("is-destroyed")||(kt.pending=void 0,((te=Ht.config.retryOpts)===null||te===void 0?void 0:te.retry)!==kl&&Tt.emit("recover"),Tt.emit("retry",{error:Ht}),ur("%s try",kt.count))},(ge=(ae=Ht.config.retryOpts)===null||ae===void 0?void 0:ae.retryTimeout)!==null&&ge!==void 0?ge:3000*kt.count)}(f,p,et))}),f.on(at,()=>{p.count=0}),f.on(["src","recover"],(C)=>{C.type==="src"&&(p.count=0),clearTimeout(p.pending),p.pending=void 0}),f.on("retry",qi(()=>{f.load()}))}let dr="rebuffer",en="rebuffer:ended",Bn="insights:ttff",$n="insights:time_to_first_frag_loaded",rn="insights:watched_interval";var ao=Object.freeze({__proto__:null,RECORD:"health:record",REBUFFER:dr,REBUFFER_ENDED:en,DISPLAY:"display",TIME_TO_FIRST_FRAME:Bn,TIME_TO_FIRST_FRAGMENT_LOADED:$n,WATCHED_INTERVAL:rn});let oo=[lt,"error","src"];function qs(f){try{return!!new URL(f)}catch(g){return!1}}let Gn=navigator;function lo(f){var g,p;let C=(g=f.hls)===null||g===void 0?void 0:g.bandwidthEstimate;return C?0.000001*C:((p=Gn.connection)===null||p===void 0?void 0:p.downlink)||-1}function Xs(f,g){return async function(p,C){try{await fetch(p,{body:C,method:"POST",mode:"no-cors"})}catch(O){}}(f,JSON.stringify({events:g}))}let co=(f)=>{switch(f){case!0:return Ii.ON;case!1:return Ii.OFF;default:return f}};function kr(){try{let f=window.location!==window.parent.location?document.referrer:document.location.href;return typeof f=="string"&&f.slice(0,200)}catch(f){return!1}}let nn=[],Cr="https://ihi.flowplayer.com/v1/health/events";function hr(f){if(f.suspended)return;let g=nn.slice(0);nn.length=0,g.length!=0&&(f.logger.log(`:dispatch events={${g.length}}`),Xs(function(){try{return typeof window=="undefined"?Cr:window.__FLOWPLAYER_INSIGHTS_URL?window.__FLOWPLAYER_INSIGHTS_URL:Cr}catch(p){return Cr}}(),g))}async function je(f,g,p){let C=await xi();nn.push(Object.assign(g,C)),f.logger.log(":enqueue",g.event,g),nn.length<10&&!p||hr(f)}let Js=()=>{var f,g;try{let p=window;return(g=(f=p==null?void 0:p.google)===null||f===void 0?void 0:f.ima)===null||g===void 0?void 0:g.VERSION}catch(p){return}},xi=async()=>({client_time:Date.now()}),sn=(f,g)=>Object.assign(f,{detail:g}),De=(f,{event:g,media_session_id:p,session_id:C,play_range_id:O})=>({event:g,media_session_id:p,session_id:C,play_range_id:O,device_id:f.deviceId(),version:"3.28.2",commit:"4a1bfbd8cc190b9064b5dbb5e786f1b1229b7b94",ima_sdk_version:Js(),preload:f.opt("preload"),autoplay:co(f.opt("autoplay")),live:f.opt("live"),dvr:!!f.live_state.dvr,source:f.original_src,downlink_mbs:lo(f),page_url:kr(),player_id:f.opt("metadata.player_id"),media_id:f.opt("metadata.media_id")||f.opt("metadata.stream_target_id"),site_id:f.opt("metadata.site_id"),category_id:f.opt("metadata.category_id"),sitegroup_id:f.opt("metadata.sitegroup_id"),token:f.token,plugins:f.plugins.map(($)=>$.constructor.name).sort(($,V)=>$.localeCompare(V)),current_time:f.currentTime,external_media_id:f.opt("external_media_id")}),fr=(f)=>({bitrate:f==null?void 0:f.bitrate,resolution:f==null?void 0:f.attrs.RESOLUTION,frame_rate:f==null?void 0:f.attrs["FRAME-RATE"]});function Qs(f,g,p,C){let O=De(g,f.eventInfo(p)),{before:$,after:V}=C;je(f,((U,z,et)=>Object.assign(U,{state:{before:z,after:et}}))(O,fr($),fr(V)))}let Zs=(f,g)=>{let p=null;return(...C)=>{p!==null&&(clearTimeout(p),p=null),p=setTimeout(()=>g(...C),f)}};var _e;(function(f){f[f.Starting=0]="Starting",f[f.ConfigFinalized=1]="ConfigFinalized",f[f.TimerStartedWithAutoplay=2]="TimerStartedWithAutoplay",f[f.TimerStartedWithUserGesture=3]="TimerStartedWithUserGesture",f[f.MetricReported=4]="MetricReported"})(_e||(_e={}));let mr=[v,"touchend"];class ta{constructor(f=_e.Starting,g=!1){this.state=f,this.loadedAd=g}reset(){this.state=_e.Starting,this.loadedAd=!1,this.start=void 0,this.end=void 0,this.adDetails=void 0}adInfo(){let{ad_tag_id:f,vast_ad_id:g}=this.adDetails||{};return{ad_tag_id:f,vast_ad_id:g}}toJSON(){return Object.assign({ad_was_requested:this.loadedAd,ms_to_first_frame:Math.round(this.end&&this.start?this.end-this.start:-1)},this.adInfo())}startTimer(f){this.state==_e.ConfigFinalized&&(this.state=f,this.start=performance.now())}hasStarted(){return[_e.TimerStartedWithAutoplay,_e.TimerStartedWithUserGesture].includes(this.state)}stopTimer(f){this.hasStarted()&&(this.end||(this.end=performance.now()),this.state=_e.MetricReported,f())}}function Hn(f){return Math.round(1000*f)/1000}class ea{constructor(f){this.tickInterval=f,this.ewma=0,this.startTime=Date.now()}decay(){let f=Date.now()-this.startTime;return Math.pow(2,-f/(4*this.tickInterval))}update(f){let g=this.decay();return this.ewma=g*this.ewma+(1-g)*f,this.ewma}toJSON(){return this.ewma}}let Cl={skipUnreliableSegments:!0};class Xi{constructor(f){this.player=f,this.marchingInterval=void 0,this.lastWatchedPoint=void 0,this.watchedSum=0,this.lastReportedSum=0,this.ewmaTickWatched=new ea(Xi.AccuracyMilliseconds)}reset(){this.onNotWatching(),this.watchedSum=0,this.lastReportedSum=0,this.lastWatchedPoint=void 0}onNotWatching(){this.marchingInterval&&(this.updateWatched(),this.marchingInterval=clearInterval(this.marchingInterval))}onWatching(){this.marchingInterval||(this.lastWatchedPoint=this.createWatchedPoint(),this.marchingInterval=setInterval(()=>{this.updateWatched()},Xi.AccuracyMilliseconds))}createWatchedPoint(){return{currentTime:this.player.currentTime,paused:this.player.paused}}updateWatched(){let f=this.createWatchedPoint();this.lastWatchedPoint&&this.calculateTimeWatched(this.lastWatchedPoint,f),this.lastWatchedPoint=f}calculateTimeWatched(f,g){var p,C;let O=g.currentTime-f.currentTime,$=this.ewmaTickWatched.update(O);if(!(O<0)&&!(((C=(p=this.player.opts)===null||p===void 0?void 0:p.health)===null||C===void 0?void 0:C.skipUnreliableSegments)!==!1&&1000*O>1.3*Xi.AccuracyMilliseconds)&&(this.watchedSum+=O,this.watchedSum!=this.lastReportedSum&&(this.watchedSum>this.lastReportedSum+Xi.ReportingIntervalSeconds||this.player.ended))){let V=Hn($),U={total_watched_seconds:Hn(this.watchedSum),tick_watched_seconds:V,batch_watched_seconds:Hn(this.watchedSum-this.lastReportedSum)};this.lastReportedSum=this.watchedSum,this.player.emit(rn,U)}}}Xi.ReportingIntervalSeconds=5,Xi.AccuracyMilliseconds=160;let Dl=zi();class Be{constructor(f,g){let p;this.session_id=Dl,this.suspended=!1,this.logger=no("health",g.opts),this.media_session_id=zi(),this.play_range_id=zi(),this.analyticsLoop=setInterval(()=>hr(this),2000),g.on(j,()=>clearInterval(this.analyticsLoop)),g.on(at,()=>{p!==this.media_session_id&&(p=this.media_session_id,this.first_playing_event_timestamp=Date.now()),this.play_range_id=zi()});let C=Date.now()-1000;g.on("timeupdate",($)=>{if(p!==this.media_session_id)return;let V=Date.now();if(V<C)return;C=Date.now()+5000;let U=De(g,this.eventInfo($.type)),z=sn(U,{duration:(et=g.duration,Number.isFinite(et)?et:et===1/0?-1:void 0)});var et;this.first_playing_event_timestamp&&(Object.assign(z,{ms_since_first_playing:V-this.first_playing_event_timestamp}),this.first_playing_event_timestamp=void 0),je(this,z)});let O=this;if(g.health={get media_session_id(){return O.media_session_id},set media_session_id($){O.media_session_id=$},get session_id(){return O.session_id},set session_id($){O.session_id=$},toggle($){$?O.resume():O.suspend()}},!Be._UNLOAD_SUBSCRIBED){Be._UNLOAD_SUBSCRIBED=!0;let $=(V)=>f.instances.forEach((U)=>U.emit(V.type));document.addEventListener("visibilitychange",(V)=>{document.visibilityState=="hidden"&&$(V)}),window.addEventListener("pagehide",$)}}eventInfo(f){return{event:f,media_session_id:this.media_session_id,session_id:this.session_id,play_range_id:this.play_range_id}}suspend(){this.suspended=!0,clearInterval(this.analyticsLoop)}resume(){this.suspended=!1,this.analyticsLoop=setInterval(()=>hr(this),2000)}init(f,g,p){if(kr().toString().startsWith("data:"))return this.suspend();(function(C){let O=null,$=()=>{O=null};C.on(Et,function(V){C.seeking||C.networkState===C.NETWORK_LOADING&&(C.readyState<HTMLMediaElement.HAVE_CURRENT_DATA||C.emit(dr))}),C.on(dr,(V)=>{O=V}),C.on(q,(V)=>{if(O){let U=V.timeStamp-O.timeStamp;if($(),U<31)return;if(U>300000)return;C.emit(en,{rebuffer_duration:U/1000})}}),oo.forEach((V)=>C.on(V,$))})(p),function(C){let O;[q,lt].forEach(($)=>{C.on($,(V)=>{let U=Date.now();switch(V.type){case lt:return O=U;case q:if(O)return C.emit($n,{ms_since_loading_started:U-O}),O=null}})})}(p),function(C){if(window.performance===void 0)return;let O=new ta;C.on("src",()=>{if(!C.opt("metadata.media_id"))return O.reset();O.reset(),O.state=_e.ConfigFinalized}),C.on(lt,()=>{(C.root.classList.contains("ad-hide-first-frame")||C.opt("autoplay"))&&O.startTimer(_e.TimerStartedWithAutoplay)}),mr.forEach(($)=>{C.on($,()=>{C.opt("autoplay")||O.startTimer(_e.TimerStartedWithUserGesture)})}),C.on("ad-requested",()=>{O.loadedAd=!0}),C.on("timeupdate",()=>{if(!(C.readyState<HTMLMediaElement.HAVE_CURRENT_DATA)){if(C.root.classList.contains("ad-hide-first-frame"))return!O.end&&(O.end=performance.now());switch(O.state){case _e.TimerStartedWithAutoplay:case _e.TimerStartedWithUserGesture:return O.stopTimer(()=>C.emit(Bn,O.toJSON()))}}}),C.on("ad-started",($)=>{switch(O.end=void 0,O.adDetails=$.detail,O.state){case _e.TimerStartedWithAutoplay:case _e.TimerStartedWithUserGesture:return O.stopTimer(()=>C.emit(Bn,O.toJSON()))}})}(p),function(C){let O=new Xi(C);C.on(lt,()=>O.reset()),C.on(at,()=>O.onWatching()),C.on(en,()=>!C.paused&&O.onWatching()),C.on(dr,()=>O.onNotWatching()),C.on(W,()=>O.onNotWatching()),C.on(F,()=>O.onNotWatching()),C.on(I,()=>O.updateWatched()),C.on("visibilitychange",()=>O.updateWatched())}(p),p.on("display",(C)=>{je(this,De(p,this.eventInfo(C.type)),!0)}),p.on("health:record",({detail:C})=>{let O=De(p,this.eventInfo(C.event));Object.assign(O,C.detail||{}),je(this,O)}),[P,X,b,H,Et,dr].forEach((C)=>{p.on(C,(O)=>{je(this,De(p,this.eventInfo(O.type)))})}),[en,Bn,$n,rn].forEach((C)=>{p.on(C,(O)=>{let $=De(p,this.eventInfo(O.type));je(this,Object.assign($,O.detail))})}),[at,W,F,B,I,L,M,q,lt].forEach((C)=>{p.on(C,(O)=>{je(this,De(p,this.eventInfo(O.type)))})}),p.on("volumechange",Zs(800,(C)=>{let O=De(p,this.eventInfo(C.type));je(this,sn(O,{volume:parseFloat(p.volume.toFixed(2)),muted:p.muted}))})),p.on("resize",Zs(800,(C)=>{let O=De(p,this.eventInfo(C.type));je(this,sn(O,{height:g.clientHeight,width:g.clientWidth}))})),p.on("hls/failover",(C)=>{let O=De(p,this.eventInfo(C.type)),$=C.detail,{reason:V,from:U}=$;je(this,sn(O,{reason:V,from:U}))}),p.on("qualitychange",({type:C,detail:O})=>{switch(O.plugin){case"hls":return Qs(this,p,C,O)}}),p.on("flowplayer:error",(C)=>{let O=De(p,this.eventInfo(C.type)),$=C.detail.error;if(!$)return je(this,O,!0);return je(this,sn(O,$.toJSON()),!0)}),p.on("src",(C)=>{var O;let $=(O=C.detail)===null||O===void 0?void 0:O.src;if(typeof $!="string")return;if(!qs(p.original_src))return;if(!qs($))return;if($==p.original_src)return;this.media_session_id=zi(),je(this,De(p,this.eventInfo(C.type))),hr(this),p.setOpts({health:Object.assign(Object.assign({},p.opts.health),Cl)})}),p.on("visibilitychange",(C)=>{je(this,De(p,this.eventInfo(C.type))),hr(this)})}}function Ai(f,g){return function(p){return p.extensions.reduce((C,O)=>C.find(($)=>$.pluginName===O.pluginName)?(console.warn("flowplayer: duplicate plugin %s detected, plugin names should be unique",O.name),C):(C.push(O),C),[])}(f).map((p)=>new p(f,g))}function Dr(f){f.on("error",qi((g)=>{let p=g instanceof MediaError?g:f.error;p&&f.emit("flowplayer:error",{error:Ir(p,{resource:f.original_src})})}))}function Ir(f,g={}){var p,C,O,$,V,U;switch(f.code){case MediaError.MEDIA_ERR_ABORTED:return new Ti((p=f.message)!==null&&p!==void 0?p:"The playback was aborted, typically by the user.",Ft.PlaybackInternalAborted,Object.assign({isFatal:!1,retryOpts:{retry:zs}},g));case MediaError.MEDIA_ERR_NETWORK:return new Ti((C=f.message)!==null&&C!==void 0?C:"A network error prevented media from being downloaded.",Ft.NetworkHttpRequestFailed,Object.assign({isFatal:!0},g));case MediaError.MEDIA_ERR_DECODE:return new Ti((O=f.message)!==null&&O!==void 0?O:"An error occurred while decoding the media.",Ft.PlaybackVideoDecodeError,Object.assign({isFatal:!0},g));case MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED:return new Ti(($=f.message)!==null&&$!==void 0?$:"The media could not be loaded because the format is not supported.",Ft.MediaUnsupportedVideoFormat,Object.assign({isFatal:!0},g));case 5:return new Ti((V=f.message)!==null&&V!==void 0?V:"Encrypted content could not be played due to missing keys or unsupported protection scheme.",Ft.ContentProtectionKeySystemNoKeys,Object.assign({isFatal:!0},g));default:return new Ti((U=f.message)!==null&&U!==void 0?U:"An unknown playback error occurred.",Ft.PlaybackUnknown,Object.assign({isFatal:!0},g))}}Be.pluginName="health",Be.events=ao,Be._UNLOAD_SUBSCRIBED=!1;let uo=function(){let f=Za(),g=f.flowplayer?f.flowplayer:{extensions:[]};return Array.isArray(g.extensions)||(g.extensions=[]),g}();function ze(f,g){if(typeof f=="function")return n.push(...[...arguments].filter((z)=>typeof z=="function")),ze;typeof g=="string"&&(g={src:g}),g||(g={}),g.token||typeof window.__FLOWPLAYER_TOKEN!="string"||(g.token=window.__FLOWPLAYER_TOKEN);let p=typeof f=="string"?document.querySelector(f):f;if(!p)return console.error(new Error("Flowplayer: '"+f.toString()+"' not found"));let C=p.querySelector("video.fp-engine");if(C)return C;let O=to(g.token);if(!O.success)return $s({root:p,data:{reason:"token",details:O.message}});let $=new Map,V=wl(g,p);V.reaper=$,V._customElements=zr,Object.defineProperty(V,"token",{value:typeof g.token=="string"?Si.id(g.token):"",writable:!1}),V.addEventListener(j,()=>{$.clear(),V.reaper=0,delete V.root}),V.root=p,g.token&&ai.from_token(g.token).is_granted(ai.permissions.DEVELOPER_PLAN)&&n.push(tn),!~o.indexOf(V)&&o.push(V),Qa(g,p,V),V.setAttrs(g),V.plugins=Ai(ze,V),xn(g,p,V),Rl(g,p,V),Vs(p,V),Fn(g,p,V),Ys(V),Un(p,V),so(V,g),Dr(V),V.plugins.forEach((z)=>{try{z.init(g,p,V)}catch(et){console.log("Error(plugin/%s)",z.constructor.name,et)}}),V.setOpts(g),V.opts=g,g.src&&V.setSrc(g.src);let U=V.readyState;return U>0&&V.currentSrc&&V.emit(X),U>2&&V.currentSrc&&V.emit(q),V.emit("mount"),V.on("error:fatal",function(z){$s({root:p,video:V,data:z.data||{}})}),setTimeout(mi,0,document,"flowplayer:player:created",V),V}Object.assign(ze,uo),function(f){Array.isArray(f.extensions)&&f.extensions.forEach((g)=>n.push(g)),f.customElements=zr,f.defaultElements=ve,f.version="3.28.2",f.commit="4a1bfbd8cc190b9064b5dbb5e786f1b1229b7b94",f.instances=o,f.extensions=n,f.support=h,f.events=St,f.states=ar,f.errors=Ft,f.jwt=ni,f.autoplay=Ii,f.quality=ye}(ze),typeof document=="object"&&setTimeout(mi,0,document,"flowplayer:umd",ze),ze.extensions.unshift.apply(ze.extensions,[Be]);let an=(...f)=>f.reduce((g,p)=>Object.assign(Object.assign({},g),p),{}),gr=(f,g)=>{let p=f.lastIndexOf(g);return~p&&f.splice(p,1),f};class de{static of(){return new de}static is_empty(f){return f.pending.length==0}static is_high_water(f){return f.open.length==de.MAX_OPEN_REQUESTS}static maybe_spawn_req(f){if(de.is_empty(f))return f;if(de.is_high_water(f))return f;try{let g=de.lpop(f);g&&de.request(f,g)}catch(g){}}static increment_failures(f){return f.stats.failures++,f.stats.failures>de.MAX_FAILURE_COUNT&&(f.stats.ttl=Date.now()+de.REQUEST_TTL_MS),f}static handle_error(f,g){de.rm(f,g),de.increment_failures(f)}static request(f,[g,p,C]){if(Date.now()<f.stats.ttl)return;let O=new XMLHttpRequest;f.open.push(O),O.timeout=de.REQUEST_TIMEOUT_MS,O.ontimeout=function(){de.handle_error(f,O)},O.onerror=function($){de.handle_error(f,O)},O.onreadystatechange=function(){O.readyState==XMLHttpRequest.DONE&&de.rm(f,O),Math.floor(O.status/100)},O.onload=function(){de.rm(f,O),f.stats.failures&&f.stats.failures--},O.open(p,g),O.setRequestHeader("Content-Type","text/plain;charset=UTF-8");try{O.send(JSON.stringify(C))}catch($){}}static rpush(f,...g){return g.forEach((p)=>{f.pending.length>=de.MAX_PENDING||(f.pending.push(p),de.maybe_spawn_req(f))}),f}static lpop(f){return f.pending.shift()}static rm(f,g){return gr(f.open,g),f}constructor(){this.pending=[],this.open=[],this.stats={failures:0,ttl:0}}}de.MAX_OPEN_REQUESTS=3,de.MAX_PENDING=5,de.REQUEST_TIMEOUT_MS=4000,de.REQUEST_TTL_MS=5000,de.MAX_FAILURE_COUNT=3;var ia=de.of();let Vn=/:([a-zA-Z_]+)/g;class $e{static prepare(f,g){let p=document.createEvent("Event");return p.initEvent(f,!1,!0),p.ns=f,p.data=g,p}static of(f){return new $e(f)}constructor(f){this.emitter=f}info(f){this.emitter.dispatchEvent($e.prepare($e.NAMESPACE.INFO,f))}error(f){this.emitter.dispatchEvent($e.prepare($e.NAMESPACE.ERROR,f))}warn(f){this.emitter.dispatchEvent($e.prepare($e.NAMESPACE.WARN,f))}}var ra;$e.NAMESPACE={INFO:"tracker:info",ERROR:"tracker:err",WARN:"tracker:warn"},function(f){f.POST="POST",f.PUT="PUT",f.GET="GET"}(ra||(ra={}));class Jt{static of(f,g){return new Jt(f,g)}static ensure_required_keys(f,g){return f.required_keys.filter((p)=>!(p in g))}static pluck_valid_keys(f,g){return((p,...C)=>Object.keys(p).filter((O)=>~C.indexOf(O)).reduce((O,$)=>an(O,{[$]:p[$]}),{}))(g,...f.valid_keys)}static merge_metadata(f,g={}){return f.metadata=Jt.pluck_valid_keys(f,an(f.metadata,g)),f}static assert_emitter_api(f){if(typeof(f||{}).addEventListener!="function")throw new Error("Tracker() received an emitter that does not implement the addEventListener method");if(typeof(f||{}).removeEventListener!="function")throw new Error("Tracker() received an emitter that does not implement the removeEventListener method")}static create_listener(f,g,p){var C;f.listeners.push([g,p]),(C=f.emitter)===null||C===void 0||C.addEventListener(g,p)}constructor(f,g={}){let p=this;if(this.emitter=f,this.url=g.url,this.log=$e.of(this.emitter),this.verb=g.verb,this.metadata=an({},g.metadata||{}),this.rq=g.rq||ia,this.events=g.events||[],this.required_keys=g.required_keys||[],this.optional_keys=g.optional_keys||[],this.listeners=[],this.valid_keys=this.required_keys.slice(0).concat(this.optional_keys),Jt.assert_emitter_api(this.emitter),Jt.verb[this.verb]===void 0)throw new Error(`invalid HTTP verb[${this.verb}] passed`);if(typeof this.url!="string")throw new Error(`invalid API url[${this.url}] passed`);Jt.TRACKERS.push(this),p.events.forEach((C)=>{Jt.create_listener(this,C,(O={})=>{let $=an(p.metadata,{event_type:C},O.data||O),V=function(et,Tt){return et.replace(Vn,(kt)=>{let Ht=kt.slice(1,kt.length);return Ht in Tt?Tt[Ht].toString():kt})}(p.url,$),U=Jt.pluck_valid_keys(p,$),z=Jt.ensure_required_keys(p,U);if(z.length)return p.log.error(`Tracker.validate_metadata() failed for
|
|
5
|
+
Event[${C}]
|
|
6
|
+
missing keys: ${z}
|
|
7
7
|
payload:
|
|
8
|
-
${JSON.stringify($,null,2)}`);this.rq&&Ie.rpush(this.rq,[Y,this.verb,$])})})}destroy(){this.listeners.forEach(([h,p])=>{var v;return(v=this.emitter)===null||v===void 0?void 0:v.removeEventListener(h,p)}),delete this.rq,delete this.emitter,Hn(ye.TRACKERS,this)}put(h={}){return ye.merge_metadata(this,h),this}}ye.TRACKERS=[],ye.QUEUE=Ws,ye.verb=js;var dr="ping",Nr="display",rs="view";let Ra=["sitegroup_id","session_id","media_id","site_id","player_id","video_type"],Ao=["created","position"],ss=["player_version","created","source","category","category_id","autoplay","muted","customer_user_id"];function qs(h,p){return h.duration/1===h.duration&&Object.assign(p,function(v){let k=v/100;return{segment_duration:k,breakpoints:Array(...Array(100)).map(function(I,K){return Math.floor(K*k*1000)/1000})}}(h.duration))}function Da(h,p,v){if(!p.segment_duration&&!qs(h,p))return;let k=function(I,K,Y){let $=K.last_idx,Z=Y?99:Ys(I,K);return K.last_idx=Z,Z<=$?[]:K.breakpoints.slice($,Z==99?100:Z).map(function(rt){return K.breakpoints.indexOf(rt)})}(h,p,v);k.length!=0&&h.emit(dr,{position:k})}function Ys(h,p){return Math.min(Math.floor(h.currentTime/p.segment_duration),99)}var zs;let sn="vod",Ca="live",Ia=[Nr,dr,rs];function as(h,p,v){switch(p==null?void 0:p.kind){case"live":return function(k,I){let K=Date.now();K-I.last_tracked_ts<60000||(I.last_tracked_ts=K,++I.ticks,k.emit(dr,{position:60*I.ticks}))}(h,p);case"vod":return Da(h,p,typeof v=="boolean"&&v)}}function Pr(h){let p=h.ads;return p!==void 0&&(p.schedule!==void 0&&(typeof p.hasPreroll=="function"&&(p.currentRequests?p.currentRequests:!!p.adPlaying||!(!p.hasPreroll()||p.nextIndex!=0))))}let _o=((zs=class h{init(p,v,k){if(!qe.from_token(p.token||"").is_granted(qe.permissions.ANALYTICS))return;if(k.hasState("consent-no-tracking"))return;if(k.analytics)return;let I=k.analytics={ticker:void 0,last_media_id:"",ended:!1},K={locked:void 0,ttl:6000,task:()=>{as(k,I.ticker)}},Y={session_id:k.deviceId(),autoplay:k.autoplay,muted:k.muted,player_id:p.player_id,customer_user_id:p.customer_user_id,player_version:"3.28.2"},$=ye.of(k,{verb:ye.verb.POST,url:"https://ptm.flowplayer.com/:video_type/:sitegroup_id/:event_type",events:Ia,required_keys:Ra,optional_keys:ss.concat(Ao).slice(0),metadata:Y});k.on(J,function(){$&&$.destroy()}),k.on(at,function(rt){if(!$)return;let Bt=xi(rt,"data.metadata",{});if(!Bt.media_id)return;let Vt=xi($,"metadata.media_id");if(Vt&&Bt.media_id==Vt)return;let oe=xi(p,"analytics",{});$.put(Bt),$.put(oe);let ke=xi(p,"metadata.live_start_time",p.live)?Ca:sn;$.put({video_type:ke,source:p.source||ar()||""}),I.ticker=p.live?{ticks:0,last_tracked_ts:Date.now(),kind:"live"}:{last_idx:0,segment_duration:0,breakpoints:[],kind:"vod"},I.ended=!1,k.emit(Nr)});let Z=0;k.on(Ct,function(){if(!$)return;if(Z||function(Bt,Vt){return Bt.metadata.media_id&&Bt.metadata.media_id==Vt.last_media_id}($,I))return;$.put({muted:k.muted});let rt=Pr(k);if(rt)return Z=Promise.resolve(rt).then(function(){I.last_media_id=$.metadata.media_id,k.emit(rs),Z=0}).catch(function(){Z=0});I.last_media_id=$.metadata.media_id,k.emit(rs)}),k.on("timeupdate",function(){var rt;$&&(Z||Pr(k)||I.ended||(!p.live&&k.currentTime+0.25>=k.duration&&as(k,I.ticker,!0),(rt=K).locked||(rt.locked=setTimeout(function(){return rt.task(),function(Bt){return Bt.locked=void 0,Bt}(rt)},rt.ttl))))}),k.on(W,function(){$&&I.ticker&&I.ticker.kind=="vod"&&function(rt,Bt){qs(rt,Bt),Bt.last_idx=Ys(rt,Bt)}(k,I.ticker)}),k.on(C,function(){$&&function(rt,Bt){Bt.ended||(Bt.ended=!0,as(rt,Bt.ticker))}(k,I)})}}).pluginName="analytics",zs),Wi=function(h,p){if(typeof to=="object"&&typeof eo!="undefined")return p;if(document.currentScript===null)return p;"flowplayer"in h||(h.flowplayer={extensions:[]});let v=h.flowplayer;return typeof v=="function"?(v(p),p):(Array.isArray(v.extensions)||(v.extensions=[]),~v.extensions.indexOf(p)||v.extensions.push(p),p)}(Pn(),_o);typeof window!="undefined"&&typeof window.matchMedia=="function"&&[st,pt].forEach(function(h){window.matchMedia("(orientation: "+h+")").addListener(function(p){g.length&&g.forEach(function(v){p.matches&&v.emit(h)})})});let be=[H,"recover"];function Xs(h,p){let v=Li(p,"flowplayer-error");h.append(v),p.on("flowplayer:error",(k)=>{if(!document.body.contains(h))return;let I=k.detail.error;I.config.showErrorUI!==!1&&(I.isFatal||I.config.showErrorUI)&&(p.setState("is-error",!0),console.warn(I),Pi(v,"flowplayer:error",{error:I}),Pi(v,"error",{error:I}))}),be.forEach((k)=>p.on(k,()=>{(function(I){if(!I.hasState("is-error"))return;I.setState(Ze,!0),I.setState("is-error",!1)})(p)}))}var ur=Object.freeze({__proto__:null,NO_FULLSCREEN:1,NO_VOLUME_CONTROL:2,NO_MUTE:4,LOGO_ON_RIGHT:8,USE_DRAG_HANDLE:16,USE_PLAY_2:32,USE_PLAY_3:64,USE_THIN_CONTROLBAR:128,NO_TITLE:256,NO_DESCRIPTION:512,NO_CONTROLS:1024,NO_DURATION:2048,NO_HEADER:4096,AUDIO_ONLY:8192,NO_TOUCH_ZONES:16384,LOGO_ON_BOTTOM:32768});function hr(h,p,v){let k=()=>document.fullscreenElement,I="fullscreenchange";if(!Element.prototype.requestFullscreen){let Y=Element.prototype,$=document;Y.webkitRequestFullScreen&&(Y.requestFullscreen=Y.webkitRequestFullScreen,$.fullscreenEnabled=!0),$.webkitCancelFullScreen&&(document.exitFullscreen=$.webkitCancelFullScreen),I="webkit"+I,k=()=>$.webkitCurrentFullScreenElement}let K=()=>v.getFullsceenTarget?v.getFullsceenTarget():p;v.toggleFullScreen=function(Y,$){if(v.ios_fullscreen_disabled)return;if(typeof Y!="boolean"&&(Y=!v.hasState("is-fullscreen")),fr(v)&&(Y?function(rt,Bt){rt.getAttribute("playsinline")&&rt.removeAttribute("playsinline"),rt.getAttribute("webkit-playsinline")&&rt.removeAttribute("webkit-playsinline"),Bt||rt.webkitEnterFullScreen()}(v,$):function(rt,Bt){rt.getAttribute("playsinline")||rt.setAttribute("playsinline",""),rt.getAttribute("webkit-playsinline")||rt.setAttribute("webkit-playsinline",""),Bt||rt.webkitExitFullScreen(),rt.togglePlay(!1),rt.hasState($t)||rt.setState($t,!0)}(v,$)),!document.fullscreenEnabled)return;let Z=K();if(Y)return Z.requestFullscreen();k()===Z&&document.exitFullscreen()},fr(v)&&(v.ios_fullscreen_disabled=!0,v.once("beforeplay",function(){v.ios_fullscreen_disabled=!1}),v.on(["webkitendfullscreen","webkitbeginfullscreen"],(Y)=>{let $=Y.type==="webkitbeginfullscreen";v.setState("is-fullscreen",$).emit($?j:Nt).toggleFullScreen($,!0)})),setTimeout(()=>{let Y=K();Y.addEventListener(I,function(){let $=k(),Z=$===Y||$==v;v.emit(Z?j:Nt),v.setState("is-fullscreen",Z)})},0),h.doubleclick!==!1&&p.addEventListener(L,function(Y){var $;Y.target&&(($=Y.target)===null||$===void 0?void 0:$.classList.contains("fp-ui"))&&v.toggleFullScreen()})}function fr(h){return!document.fullscreenEnabled&&typeof h.webkitEnterFullScreen=="function"&&typeof h.webkitExitFullScreen=="function"}function hn(h,p,v){if(!v.reaper)return;let k=document.createDocumentFragment(),I=Li(v,Jt),K=Li(v,xt);p.append(K),k.append(I),v.reaper.set("ui",I),~p.className.indexOf("use-play-")||p.classList.add("use-play-1"),function(Z,rt,Bt){let Vt=vi("fp-footer");rt.append(Vt),Bt.on(at,function(oe){var ke,Ke;let Te=(ke=oe.data)===null||ke===void 0?void 0:ke.description,bi=(Ke=oe.data)===null||Ke===void 0?void 0:Ke.title;if(Vt.innerHTML="",typeof bi=="string"){let $i=vi("fp-title");$i.innerText=bi,Vt.append($i)}if(typeof Te=="string"){let $i=Te.split(" "),gr=vi("fp-desc");for(gr.innerText=$i.join(" "),Vt.append(gr);$i.length>1&&gr.scrollHeight>gr.offsetHeight;)$i.pop(),gr.innerText=$i.join(" ")+"..."}})}(0,p,v),Xs(I,v),p.appendChild(k);let Y=null;[F,z,P].forEach((Z)=>{p.addEventListener(Z,function(rt){if(!v.hasState("is-touch-device")||rt.type===z){if(clearTimeout(Y),rt.type===P)return v.setState(he,!1);v.setState(he,!0),Y=setTimeout(function(){v.setState("is-hovered",!1)},2000)}})}),hr(h,p,v),v.on("volumechange",function(){let Z=v.volume==0||v.muted;v.muted=Z,v.setState("is-muted",Z),v._storage.setItem("mute",Z.toString())}),v._storage.getItem("mute")=="true"&&(v.muted=!0,v.setState("is-muted",v.muted));let $=v._storage.getItem("volume");$&&!isNaN(Number($))&&(v.volume=Number($)),v.emit("volumechange"),v.on("dvr/window",(Z)=>{h.live&&(v.live_state.dvr=v.seekable.length>0&&function(rt,Bt,Vt){if(Bt==0)return!0;let oe=me(rt,Vt);return oe.head-oe.tail>=Bt}(v,h.seconds_to_dvr||60,Z.detail),v.live_state.dvr_window=Z.detail)}),v.on("live",()=>{let Z=setInterval(()=>{if(v.opts.live&&!v.hasState("is-error")&&v.reaper!=0||clearInterval(Z),v.seekable.length==0)return;let rt=function(Bt){let Vt=Bt.currentTime,oe=me(Bt);return{progress:Math.min(100,Math.max(0,(Vt-oe.tail)/(oe.head-oe.tail)*100)),is_live:Vt-oe.head>=-10}}(v);v.hasState(Je)==rt.is_live&&v.setState(Je,!rt.is_live),v.live_state.dvr&&v.emit("dvr",rt.progress)},200)}),v.on(ne,function(){v.setOpts({live:ei(v)})}),v.on("durationchange",function(Z){let rt=ei(v),Bt=rt?Bi(v):Z.data||v.duration;isNaN(Bt)||v.setOpts({live:rt,duration:Bt})}),v.on(["playlist/advance","src"],(Z)=>{if(v.setState("is-autoplay",!!h.autoplay),v.root.classList.contains("is-livecountdown"))return Mr(v,h);(v.currentSrc||v.srcObject)&&(Z.type==="src"&&["is-playlist",Oi].some((rt)=>v.root.classList.contains(rt))||Mr(v,h))}),v.on(at,function(Z){var rt,Bt;h.seekable=((rt=Z==null?void 0:Z.data)===null||rt===void 0?void 0:rt.seekable)===void 0||Z.data.seekable;let Vt=(Bt=Z.data)===null||Bt===void 0?void 0:Bt.ui;if(typeof Vt!="number")return;let oe=p.classList;oe.toggle("use-play-1",!(32&Vt||64&Vt)),oe.toggle("use-play-2",(32&Vt)>0),oe.toggle("use-play-3",(64&Vt)>0),oe.toggle("use-thin-controlbar",(128&Vt)>0),oe.toggle("no-title",(256&Vt)>0),oe.toggle("no-description",(512&Vt)>0),oe.toggle("logo-on-right",(8&Vt)>0),oe.toggle("logo-on-bottom",(32768&Vt)>0),oe.toggle("use-drag-handle",(16&Vt)>0),oe.toggle("no-controls",(1024&Vt)>0),oe.toggle("no-duration",(2048&Vt)>0),oe.toggle("no-header",(4096&Vt)>0),oe.toggle("no-mute",(4&Vt)>0),oe.toggle("no-volume",(2&Vt)>0),oe.toggle("no-fullscreen",(1&Vt)>0),oe.toggle("no-touch-zones",(16384&Vt)>0)})}function Mr(h,p){delete p.live_start_time,h.setOpts({live:!1}),h.live_state.dvr=void 0,h.live_state.dvr_window=void 0,delete p.live,delete p.poster,delete p.duration,delete p.title,delete p.description,"metadata"in p&&delete p.metadata}function Fr(h,p,v){if(qe.from_token(h.token||"").is_granted(qe.permissions.NO_METERING))return;Mi.id(h.token||"")&&v.once(Ct,async()=>await async function k(I,K){let Y=Mi.id(K||"");if(I.once("src",()=>{I.once(Ct,()=>k(I,K))}),(await fetch("https://pmi.flowplayer.com/in",{method:"POST",body:JSON.stringify({token_id:Y,factor:1,rnd:Math.random().toString(36).substring(2)})})).status==401)return I.emit("error:fatal",{reason:"token",details:"The token online validation failed"})}(v,h.token||""))}var mr={ads:{ad:"Ad",ads:"Ads",advertisement:"Advertisement"},audio:{button_txt:"Audio",menu_title:"Audio"},core:{exit_fullscreen:"Exit fullscreen",fullscreen:"Fullscreen",mute:"Mute",pause:"Pause",play:"Play",unmute:"Unmute",volume:"Volume"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Cancel",up_next:"Up next"},qsel:{menu_title:"Quality"},share:{clipboard_failure:"Access to clipboard failed",clipboard_success:"The text is now on your clipboard",embed:"Embed",link:"Link",menu_title:"Share"},speed:{menu_title:"Speed"}};class an{init(h,p,v){v.reaper&&v.reaper.set("translations",Cn(an,h,"en"))}}an.pluginName="i18n",an.en=mr;class Me extends HTMLElement{constructor(h){super(),this.player=h}}class Br extends Me{constructor(h){super(h),this.classList.add("fp-logo");let p={logo:""};h.on(at,(v)=>{var k;let I=p.logo,K=((k=v==null?void 0:v.data)===null||k===void 0?void 0:k.logo)||"";I!=K&&(p.logo=K,this.set_logo(K,v.detail.logo_alt_text,v.detail.logo_href))})}set_logo(h,p,v){this.innerHTML="";let k=document.createElement("img");if(!h)return;if(k.src=h,p&&(k.alt=p),!v)return this.append(k);let I=document.createElement("a");I.href=v,I.append(k),this.append(I)}}class os extends Me{constructor(h){super(h),this.classList.add("fp-duration"),h.on(at,(p)=>{var v;let k=((v=p==null?void 0:p.data)===null||v===void 0?void 0:v.duration)||NaN;this.innerText=isFinite(k)?Ni(k):""})}}let on={name:"fp-fullscreen",translation_key:"core.fullscreen"},ls={name:"fp-fullscreen-exit",translation_key:"core.exit_fullscreen"},Lo={name:"fp-play",translation_key:"core.play"},Oa={name:"fp-pause",translation_key:"core.pause"},xa={translation_key:"core.mute",name:"fp-volume-mute-unmute"},Js={translation_key:"core.play",name:"fp-small-play"},cs={translation_key:"core.pause",name:"fp-small-pause"},wo={name:"fp-fast-forward"},Na={name:"fp-rewind"};class Zi extends Me{constructor(h,p){super(h),this.classList.add("fp-icon",p.name),p.title&&this.setAttribute("title",p.title),p.title&&this.setAttribute("aria-label",p.title),p.translation_key&&this.setAttribute("aria-label",h.i18n(p.translation_key)),this.setAttribute("tabindex","0"),this.setAttribute("focusable","true")}}function Kn(){}document.addEventListener(R,function(h){this.active_menu&&!h.composedPath().includes(this.active_menu)&&(Array.from(document.querySelectorAll(".fp-engine")).forEach((p)=>{var v;let k=p.root.querySelector("details[open].fp-menu-container");k&&(k.open=!1,(v=k.querySelector("summary"))===null||v===void 0||v.removeAttribute("aria-expanded"),p.root.classList.toggle("has-menu-opened",!1))}),this.active_menu=void 0)});let Vn={passive:!0};var Ye;function Pa(h,p){let v=0,k=-1,I=-1,K=Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5),Y=h.classList;h.id=K,Y.remove(Ye.GRABBING),Y.remove(Ye.TOUCHING);let $=p.onseek||Kn,Z=p.onstart||Kn,rt=p.onend||Kn,Bt=p.onmouse||Kn,Vt=p.ontouch||Kn,oe=p.ontouchend||Kn;function ke(Te){(function(){let $i=h.getBoundingClientRect();v=$i.left,k=$i.width})();let bi=(function($i){return typeof window.TouchEvent=="function"&&$i instanceof TouchEvent}(Te)?Te.changedTouches[0].pageX:Te.pageX)-v;return bi>k&&(bi=k),bi<0&&(bi=0),bi/k*100}function Ke(Te){let bi=ke(Te);bi!=I&&($(h,bi),I=bi)}return h.addEventListener("touchstart",function(Te){Ma(h,Te)&&(Y.add(Ye.TOUCHING),Fa(h.parentElement)&&(Y.add(Ye.GRABBING),Vt(h,ke(Te)),Z(h,ke(Te)),Ke(Te)))},Vn),h.addEventListener(z,function(Te){Ke(Te),Bt(h,ke(Te))},Vn),h.addEventListener("touchend",function(Te){setTimeout(function(){Y.remove(Ye.TOUCHING)},500),Ma(h,Te)&&(Y.remove(Ye.GRABBING),oe(h,ke(Te)),rt(h,ke(Te)),k=0)},Vn),h.addEventListener("touchcancel",function(){Y.remove(Ye.GRABBING,Ye.TOUCHING),k=0},Vn),h.addEventListener("mousedown",function(Te){Y.contains(Ye.TOUCHING)||(document.addEventListener(F,Ke),Y.add(Ye.GRABBING),Z(h,ke(Te)),Te.preventDefault(),Ke(Te))}),h.addEventListener(F,function(Te){Y.contains(Ye.TOUCHING)||Bt(h,ke(Te))}),document.addEventListener("mouseup",function(Te){Y.contains(Ye.TOUCHING)||(document.removeEventListener(F,Ke),Y.contains(Ye.GRABBING)&&(Y.remove(Ye.GRABBING),rt(h,ke(Te)),k=0))}),h}function Ma(h,p){let v=p.target;return!!v&&(v&&!v.closest(h.id)||!Fa(h.parentElement)||!h.classList.contains(Ye.TOUCHING))}function Fa(h){if(!h)return!1;let p=window.getComputedStyle(h);return p.width!=="0"&&p.height!=="0"&&p.opacity!=="0"&&p.display!=="none"&&p.visibility!=="hidden"}(function(h){h.GRABBING="has-grab",h.TOUCHING="has-touch"})(Ye||(Ye={}));class Qs extends Me{constructor(h){super(h),this.className="fp-volume";let p=h.root.classList,v=p.contains("is-tiny")?6:p.contains("is-small")?8:10,k=Array.from({length:v}).map(()=>{let I=document.createElement("i");return I.className="fp-tick",I});this.append(...k),Pa(this,{onseek:(I,K)=>{K>0&&(h.muted=!1,h._storage.removeItem("mute")),h._storage.setItem("volume",(h.volume=K/100).toString()),this.adjustVolumeSlider(h.volume)}}),this.setAttribute("tabindex","0"),this.setAttribute("role","slider"),this.setAttribute("aria-valuemin","0"),this.setAttribute("aria-valuemax","1"),this.setAttribute("aria-label",h.i18n("core.volume","volume")),h.on("volumechange",()=>{let I=h.volume==0||h.muted;I&&this.adjustVolumeSlider(0);let K=h.opt("ui");this.classList.contains(Ye.GRABBING)||I&&typeof K=="number"&&(4&K)>0||this.adjustVolumeSlider(h.volume)})}adjustVolumeSlider(h){this.setAttribute("aria-valuenow",h.toString()),this.setAttribute("aria-valuetext",Math.round(100*h)+"%");let p=Array.from(this.querySelectorAll(".fp-tick")),v=Math.round(h*p.length);p.forEach((k,I)=>{k.classList.toggle("fp-color",I<v)})}}class Zs extends Me{constructor(h){let p;super(h),this.bufferEle=vi("fp-buffer"),this.progress=vi("fp-progress","fp-color"),this.tooltipEle=vi("fp-timestamp"),this.proposedSeekBar=vi("fp-hover"),this.dragger=vi("fp-dragger","fp-color"),this.classList.add("fp-timeline","fp-bar"),this.tooltipEle.style.display="none",this.setAttribute("role","slider"),this.setAttribute("tabindex","0"),this.setAttribute("aria-label",h.i18n("core.timeline_aria_label","Seek slider")),this.setAttribute("aria-valuenow","0"),this.progress.append(this.dragger),this.append(this.bufferEle,this.progress,this.proposedSeekBar,this.tooltipEle);let v=requestAnimationFrame,k=void 0,I=()=>{var Y;h.reaper==0||p.live||(Y=h,this.progress.style.width=Y.currentTime/Y.duration*100+"%",k=void 0,h.paused||this.classList.contains(Ye.GRABBING)||k||(k=setTimeout(I,200)))},K=()=>!!this.player.opt("seekable",!0)&&!isNaN(this.player.duration);Pa(this,{onseek:(Y,$)=>{if(K())switch(!!p.live){case!0:er($,h,this.tooltipEle);break;case!1:(function(Z,rt,Bt){let Vt=rt.duration*(Z/100);if(rt.disabled&&Vt>rt.currentTime)return!1;Bt.style.width=Z+"%",rt.currentTime=Vt})($,h,this.progress),Vi(this.tooltipEle,$)}},onstart:()=>{K()&&(h.emit("timeline/gesture/start"),!h.hasState("is-casting")&&h.setState(si,!0),p.live||function(Y){Y.style.display="block"}(this.tooltipEle))},onend:function(Y,$){v(I),p.seekable!=0&&p.live&&Dr($,h)},ontouchend:()=>{p.live?Ui(this.proposedSeekBar,this.tooltipEle):Fi(this.proposedSeekBar,this.tooltipEle),setTimeout(()=>h.emit("timeline/gesture/end"),0)},onmouse:(Y,$)=>{if(K()&&(h.emit("timeline/gesture/move",{percent:$}),!this.classList.contains(Ye.GRABBING)))switch(!!p.live){case!0:(function(Z,rt){rt.style.width=Z+"%"})($,this.proposedSeekBar),er($,h,this.tooltipEle);break;case!1:(function(Z,rt){rt.style.width=Z+"%"})($,this.proposedSeekBar),function(Z,rt,Bt){isNaN(Z)||isNaN(rt.duration)||(Vi(Bt,Z),Bt.textContent=Ni(Z/100*rt.duration))}($,h,this.tooltipEle)}}}),h.on(at,function(Y){Y.data&&(p=Y.data)}),h.on(Ct,()=>v(I)),h.on(Ft,()=>{h.reaper==0||p.live||yi(h,this.bufferEle)}),h.on("dvr",(Y)=>{this.progress.style.width=Y.detail+"%"}),h.on("timeupdate",()=>{h.reaper!=0&&(v(I),this.setAttribute("aria-valuenow",h.currentTime+""),this.setAttribute("aria-valuetext",Math.round(h.currentTime)+" "+h.i18n("core.seconds","Seconds")),p.live||yi(h,this.bufferEle))}),h.on(ne,()=>{h.reaper!=0&&(p.live||yi(h,this.bufferEle))}),h.on("durationchange",(Y)=>{if(h.reaper==0)return;let $=ei(h)?Bi(h):Y.data||h.duration;isNaN($)||(this.setAttribute("aria-valuemax",$+""),this.setAttribute("aria-valuemin","0"))}),this.addEventListener(P,()=>{h.emit("timeline/gesture/end"),p.live?Ui(this.proposedSeekBar,this.tooltipEle):Fi(this.proposedSeekBar,this.tooltipEle)})}}class ds extends Me{constructor(h){super(h),this.classList.add("fp-live-status");let p=vi("fp-live-text"),v=vi("fp-live-indicator","fp-color");p.textContent="live",this.setAttribute("tabindex","0"),this.setAttribute("role","button"),this.append(v,p),this.addEventListener(R,function(){ir(h)})}}class ta extends Me{constructor(h){let p;super(h),this.classList.add("fp-duration"),this.setAttribute("aria-hidden","true"),h.on(at,(v)=>{if(h.reaper==0||!v.data)return;p=v.data;let k=ei(h)?NaN:v.data.duration||0;if(isNaN(k)||k>=Number.MAX_SAFE_INTEGER)return this.style.display="none";this.style.display="inline-block",this.innerText=Ni(k)}),h.on(ne,()=>{var v,k;h.reaper==0||p.live||(k=this,(v=h).duration&&(k.innerText=Ni(v.duration)))})}}class ea extends Me{constructor(h){let p;super(h),this.classList.add("fp-elapsed"),this.innerText=Ni(0),this.setAttribute("aria-hidden","true"),h.on(at,(v)=>{v.data&&(p=v.data)}),h.on("timeupdate",()=>{var v;h.reaper!=0&&(p.live?(v=h,this.innerText=Ni(v.currentTime)):function(k,I){I.innerText=Ni(k.currentTime)}(h,this))})}}class Ba extends Me{constructor(h){super(h),this.classList.add("fp-btns","fp-small-switch");let p=Li(h,"flowplayer-small-pause-icon"),v=Li(h,"flowplayer-small-play-icon");p.addEventListener("click",function(){h.togglePlay(),setTimeout(function(){v.focus&&v.focus()},100)}),v.addEventListener("click",function(){h.togglePlay(),setTimeout(function(){p.focus&&p.focus()},100)}),this.append(p,v)}}class us extends Me{constructor(h,p){super(h),this.classList.add(p);let v=this.classList.contains("fp-left-zone")?-1:1,k=document.createElement("span"),I=Li(h,this.classList.contains("fp-left-zone")?_t:"flowplayer-fast-forward-icon");I.removeAttribute("tabindex"),k.classList.add("fp-zone-seconds"),this.append(k,I),h.on(W,()=>{k.innerText=""}),h.on("seek:queued",(K)=>{let Y=K.data;if(!Y)return;if(typeof Y.offset!="number")return;let $=Y.offset;if($==0)return this.reset_zone();$>0&&this.classList.contains("fp-right-zone")||$<0&&!this.classList.contains("fp-right-zone")?this.render_zone_state($):this.reset_zone()}),h.on("seek:cancel",()=>{this.reset_zone()}),this.reset_zone(),this.addEventListener("touchend",function(K){isNaN(h.duration)||isNaN(h.currentTime)||16384&h.opt("ui")||h.hasState(oi)||!h.hasState("will-seek")&&!h.hasState($t)||h.enqueueSeek(5*v)&&(K.stopPropagation(),K.preventDefault())})}reset_zone(){let h=this.querySelector(".fp-zone-seconds");h&&(h.innerText="")}render_zone_state(h){let p=this.querySelector(".fp-zone-seconds");p&&(p.innerText=Math.abs(h)+"")}}class ia extends Me{constructor(h){super(h),this.className="fp-error",this.message=document.createElement("p"),this.message.className="error-message",this.errorId=document.createElement("p"),this.errorId.className="error-id",this.errorKey=document.createElement("p"),this.errorKey.className="error-key",this.append(this.errorKey,this.message,this.errorId),this.addEventListener("flowplayer:error",(p)=>{if(h.opts.live&&h.currentTime==0&&p.detail.error.flowplayerErrorCode==Zt.PlaybackManifestLoadError)return void(this.message.textContent="stream offline");let v=p.detail.error;this.message.textContent=v.message,this.errorKey.textContent=v.errorKey,console.warn("flowplayer encountered an %s error while loading %s id:%s",v.errorKey,v.config.resource,v.id)})}}class hs extends Me{constructor(h,p,...v){super(h),this.className=p;let k=h.createComponents(...v);this.append(...k),p!=="fp-left"&&k.forEach((I)=>{I.addEventListener(R,()=>h.toggleFullScreen())})}}class fs extends Me{constructor(h){super(h),this.classList.add("fp-wait"),Array(...Array(4)).map((p,v)=>v).forEach(()=>{this.append(document.createElement("b"))})}}class na extends Me{constructor(h){super(h),this.classList.add("fp-middle-zone");let p=h.createComponents(q,"flowplayer-middle-buttons");this.append(...p)}}class ra extends Me{constructor(h){super(h),this.classList.add("fp-switch"),[tt,Lt].forEach((p)=>{let v=Li(h,p);v.removeAttribute("tabindex"),this.append(v)})}}class fn extends Me{constructor(h){super(h),this.classList.add("fp-volume-control");let p=Li(h,Gt);this.append(p),!S().ios&&this.append(Li(h,te)),p instanceof Zi&&p.addEventListener(R,function(){h.toggleMute()})}}class ms extends Me{constructor(h){super(h),this.classList.add("fp-header"),this.append(...h.createComponents("flowplayer-header-left-zone","flowplayer-header-right-zone")),h.reaper&&h.reaper.set("header",this)}}class Ua extends Me{constructor(h){super(h),this.classList.add("fp-controls","fp-togglable"),this.append(...h.createComponents("flowplayer-control-buttons",dt,mt,Dt,"flowplayer-control-duration","flowplayer-volume-control"))}}class sa extends Zi{constructor(h,p){super(h,p),this.setAttribute("role","button")}}class gs extends Me{constructor(h){super(h),this.classList.add("fp-middle"),this.append(...h.createComponents("flowplayer-middle-left-zone",se,"flowplayer-middle-right-zone")),this.setAttribute("tabindex","0"),h.reaper&&h.reaper.set("middle",this),this.handleClick(h),this.handleTouch(h),h.once("beforeplay",()=>{this.removeAttribute("tabindex"),this.removeAttribute("role"),this.removeAttribute("aria-label")})}handleClick(h){[R,L].forEach((p)=>this.addEventListener(p,function(v){if(!(v.defaultPrevented||h.root.classList.contains("is-endscreen")||p===L&&h.root.classList.contains("no-fullscreen")))return v.preventDefault(),h.emit(v.type),!1})),h.on(R,function(p){setTimeout(function(){p.defaultPrevented||h.togglePlay()},0)}),h.on(L,function(p){setTimeout(function(){p.defaultPrevented||h.toggleFullScreen()},0)})}handleTouch(h){let p=!1;this.addEventListener("touchend",function(v){v.cancelable&&!h.hasState("is-endscreen")&&(v.preventDefault(),h.emit(v.type,{source:v}))}),h.on("touchend",function(v){setTimeout(function(){if(v.defaultPrevented)return;if(h.ended)return h.togglePlay(!0);let k=h.hasState(Se);p&&clearTimeout(p),(k||h.hasState($t))&&(h.hasState($t)&&(h.setState($t,!1),h.setState(he,!1)),h.togglePlay(),k)||(h.setState($t,!0),h.paused||(p=setTimeout(function(){p=!1,h.setState($t,!1),h.setState(he,!1)},2000)))},0)})}}class Wn extends Me{constructor(h){super(h),this.classList.add("fp-ui"),this.append(...h.createComponents(re,we,ce))}}class Ur{constructor(h){pe(h,Jt,Wn),pe(h,"flowplayer-error",ia),pe(h,ce,Ua),pe(h,dt,ds),pe(h,"flowplayer-control-duration",ta),pe(h,Dt,Zs),pe(h,mt,ea),pe(h,te,Qs),pe(h,"flowplayer-volume-control",fn),pe(h,"flowplayer-control-buttons",Ba),pe(h,re,ms),pe(h,xt,Br),pe(h,"flowplayer-header-duration",os),pe(h,"flowplayer-header-left-zone",class extends hs{constructor(p){super(p,"fp-left","flowplayer-header-duration")}}),pe(h,"flowplayer-header-right-zone",class extends hs{constructor(p){super(p,"fp-right fp-togglable","flowplayer-fullscreen-enter-icon","flowplayer-fullscreen-exit-icon")}}),pe(h,we,gs),pe(h,se,na),pe(h,q,fs),pe(h,"flowplayer-middle-buttons",ra),pe(h,"flowplayer-middle-right-zone",class extends us{constructor(p){super(p,"fp-right-zone")}}),pe(h,"flowplayer-middle-left-zone",class extends us{constructor(p){super(p,"fp-left-zone")}}),pe(h,"flowplayer-small-play-icon",class extends Zi{constructor(p){super(p,Js),this.setAttribute("role","button")}}),pe(h,"flowplayer-small-pause-icon",class extends Zi{constructor(p){super(p,cs),this.setAttribute("role","button")}}),pe(h,tt,class extends Zi{constructor(p){super(p,Lo),this.setAttribute("role","button")}}),pe(h,Lt,class extends Zi{constructor(p){super(p,Oa),this.setAttribute("role","button")}}),pe(h,"flowplayer-fullscreen-enter-icon",class extends sa{constructor(p){super(p,on)}}),pe(h,"flowplayer-fullscreen-exit-icon",class extends sa{constructor(p){super(p,ls)}}),pe(h,"flowplayer-fast-forward-icon",class extends Zi{constructor(p){super(p,wo)}}),pe(h,_t,class extends Zi{constructor(p){super(p,Na)}}),pe(h,Gt,class extends Zi{constructor(p){super(p,xa),this.classList.add("fp-volumebtn"),this.setAttribute("role","switch"),p.on("volumechange",()=>{let v=p.volume==0||p.muted;this.setAttribute("aria-label",p.i18n("core.muted","Muted")),this.setAttribute("aria-checked",v?"true":"false")})}})}init(h,p,v){var k;Fr(h,0,v),hn(h,p,v),k=v,typeof window!="undefined"&&"ontouchstart"in window&&k.setState("is-touch-device",!0),k.setState("is-accessibility",!1)}}return Ur.pluginName="default",Ri.extensions.unshift.apply(Ri.extensions,[an,Wi,Ur]),Object.assign(Ri,{ui:ur,i18n:an})})});var Vc=gn((io,no)=>{(function(o,g){typeof io=="object"&&typeof no!="undefined"?no.exports=g():typeof define=="function"&&define.amd?define(g):((o=typeof globalThis!="undefined"?globalThis:o||self).flowplayer=o.flowplayer||{},o.flowplayer.ads=g())})(io,function(){var o;(function(c){c[c.ADS=2]="ADS",c[c.ANALYTICS=4]="ANALYTICS",c[c.NO_METERING=8]="NO_METERING",c[c.DEVELOPER_PLAN=16]="DEVELOPER_PLAN",c[c.WOWZA_VIDEO=32]="WOWZA_VIDEO"})(o||(o={}));let g=["localhost","127.0.0.1","0.0.0.0","s.codepen.io","cdpn.io","try.flowplayer.com"];function S(c,m){return!!~g.indexOf(c)||c.indexOf(m)===c.length-m.length}S.check_whitelist=function(c){return!!~g.indexOf(c)};function R(c){this.message=c}R.prototype=new Error,R.prototype.name="InvalidCharacterError";var L=typeof window!="undefined"&&window.atob&&window.atob.bind(window)||function(c){var m=String(c).replace(/=+$/,"");if(m.length%4==1)throw new R("'atob' failed: The string to be decoded is not correctly encoded.");for(var y,O,N=0,U=0,B="";O=m.charAt(U++);~O&&(y=N%4?64*y+O:O,N++%4)?B+=String.fromCharCode(255&y>>(-2*N&6)):0)O="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(O);return B},P=function(c){var m=c.replace(/-/g,"+").replace(/_/g,"/");switch(m.length%4){case 0:break;case 2:m+="==";break;case 3:m+="=";break;default:throw"Illegal base64url string!"}try{return function(y){return decodeURIComponent(L(y).replace(/(.)/g,function(O,N){var U=N.charCodeAt(0).toString(16).toUpperCase();return U.length<2&&(U="0"+U),"%"+U}))}(m)}catch(y){return L(m)}};function F(c){this.message=c}F.prototype=new Error,F.prototype.name="InvalidTokenError";var z=function(c,m){if(typeof c!="string")throw new F("Invalid token specified");var y=(m=m||{}).header===!0?0:1;try{return JSON.parse(P(c.split(".")[y]))}catch(O){throw new F("Invalid token specified: "+O.message)}};z.InvalidTokenError=F;let j="production";function Nt(c,m){let y={valid_jwt:!1,raw:"",data:{acl:0},exp:0},O={c:"{}",exp:0};m=m||{};try{O=z(c),y.valid_jwt=!0}catch(N){}return y.raw=c,y.data=JSON.parse(O.c),y.exp=O.exp,m.require_valid_token&&Nt.validate(y),y}function ne(c){return{grant:c,is_granted:(m)=>(c&m)===m}}function A(){let c=typeof document!="undefined"&&typeof window!="undefined",m=c?navigator.userAgent:"",y=/iP(hone|od)/i.test(m)&&!/iPad/.test(m)&&!/IEMobile/i.test(m),O=/Android/.test(m)&&!/Firefox/.test(m),N=/^((?!chrome|android).)*safari/i.test(m),U=/chrome|crios/i.test(m)&&!/opr|opera|chromium|edg|ucbrowser|googlebot/i.test(m),B=/firefox|fxios/i.test(m)&&!/seamonkey/i.test(m),ut=/edg/i.test(m),ct=/opr|opera/i.test(m),It=/SamsungBrowser/.test(m),yt=It&&/SMART-TV/.test(m);return{controls:!y,video:function(Pt){return c&&document.createElement("video").canPlayType(Pt)},lang:c&&window.navigator.language,android:O,iphone:y,safari:N,edge:ut,opera:ct,chrome:U,firefox:B,ios:c&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,samsung:It,samsung_tv:It&&yt,touch:"ontouchstart"in window,tizen:"tizen"in window,webOS:"webos"in window}}function Ft(c){return{width:c.clientWidth,height:c.clientHeight}}function H(c,m,y){return typeof y=="number"&&(y+="px"),c.style.setProperty(m,y),c}Nt.validate=function(c){if(typeof c=="string"&&(c=Nt(c)),!c||!c.raw){if(S.check_whitelist(window.location.hostname)||j.toString()==="dev")return!0;throw new Error("No token provided in configuration")}if(!c.valid_jwt)throw new Error("Invalid token provided");let m=window.location.hostname,y=S.bind(null,m);if(j.toString()!=="dev"&&c.data.domain&&c.data.domain.length&&!c.data.domain.some(y))throw new Error("Domain not allowed");if(j.toString()!=="dev"&&1000*c.exp-Date.now()<0)throw new Error("Expired token");return!0},Nt.id=function(c){if(c)return typeof c=="string"&&(c=Nt(c)),c.data.id},ne.of=ne,ne.from_token=function(c){let m=Nt(c,{require_valid_token:!0});return ne.of(m.data.acl)},ne.permissions=o;let ft="ad-initialized";var Ct=Object.freeze({__proto__:null,AD_INIT:ft,AD_PLAYBACK_ERROR:"ad-playback-error",AD_TEARDOWN:"ad-teardown",AD_VIDEOTAG_ATTACHED:"ad-videotag-attached",AD_BLOCKED:"ad-blocked",AD_REQUEST_ERROR:"ad-request-error",AD_REQUESTED:"ad-requested",AD_REQUEST_COMPLETED:"ad-request-completed",AD_PAUSE_CONTENT:"ad-pause-content",AD_STARTED:"ad-started",AD_COMPLETED:"ad-completed",AD_PAUSED:"ad-paused",AD_RESUMED:"ad-resumed",AD_WAITING:"ad-waiting",AD_PROGRESS:"ad-progress",AD_SKIPPED:"ad-skipped",AD_MUTED:"ad-muted",AD_VOLUME_CHANGED:"ad-volume-changed",AD_FULLSCREEN:"ad-fullscreen",AD_TIMEOUT:"ad-timeout",AD_BREAK_COMPLETED:"ad-break-completed",AD_POSTROLL_FINISHED:"ad-postroll-finished",AD_PREROLL_FINSIHED:"ad-preroll-finished",AD_MIDROLL_FINISHED:"ad-midroll-finished",VPAID_INIT:"vpaid-init",IMA_ADAPTER_INIT:"ad-ima-adapter-init",IMA_BEFORE_ADS_REQUEST:"ad-ima-before-ads-request",IMA_ADS_RENDERING_SETTINGS:"ad-ima-rendering-settings",ADAPTER_INIT_FAILED:"ad-adapter-init-failed",AD_PLAY_REQUESTED:"ad-play-requested",RELOAD_AD_REQUESTED:"reload-ad-requested",AD_ERROR:"ad-error",REQUEST_AD_PAUSE:"request/ad/pause",REQUEST_AD_PLAY:"request/ad/play",REQUEST_AD_MUTE_UNMUTE:"request/ad/muteunmute",AD_SHOW_FIRST_FRAME:"ad/show-first-frame",AD_RESIZE:"ad/resize",AD_SET_UI_FLAGS:"ad/set-ui-flags",PBJS_AVAILABLE:"ad/pbjs"});let Mt="is-in-viewport";function lt(c,m,y){let O=function(N,U){let B=new CustomEvent(N,{detail:U,cancelable:!0});return U&&Object.defineProperty(B,"data",{get:()=>U}),B}(m,y);return c.dispatchEvent(O),c}var C;(function(){let c=!1;try{let m=Object.defineProperty({},"passive",{get:function(){c=!0}});window.addEventListener("testPassive",null,m),window.removeEventListener("testPassive",null,m)}catch(m){}})(),function(c){c[c.OFF=0]="OFF",c[c.ON=1]="ON",c[c.AUDIO_REQUIRED=2]="AUDIO_REQUIRED"}(C||(C={}));function W(c){let m=typeof c=="number"?c:parseInt(c,10);return(m>9?"":"0")+m}function G(c){return function(m,y){let O=m.seekable;if(typeof m.opts!="object"||O.length==0)return{head:0,tail:0};let N=J(m),U=y||m.live_state.dvr_window;return{head:N,tail:typeof U!="number"||N-U<0?O.start(0):N-U}}(c).tail}function J(c){var m;let y=c.seekable;return y.length?c.hasState("is-chromecast-playing")||!((m=c.hls)===null||m===void 0?void 0:m.liveSyncPosition)?y.end(y.length-1):c.hls.liveSyncPosition:0}function st(c){try{c.dvr_offset=0,c.currentTime=J(c)}catch(m){console.warn("failed to seek to now: %j",m)}}function pt(c,m){if(!c.hasState("is-live")||![void 0,0,-1].includes(m)||!c.seekable.length||c.hasState("has-casted"))return c.setState("is-starting",!1);c.once("seeked",()=>c.setState("is-starting",!1)),m===0?function(y){y.currentTime=G(y)}(c):st(c)}function at(c,m){let y=function(){try{return localStorage.getItem("flowplayer/debug")}catch(N){return""}}(),O=(N,...U)=>{try{let B=(m==null?void 0:m.debug)||y;B&&c.match(B)&&console.log(`flowplayer/${c} -- ${N}`,...U)}catch(B){console.warn(B)}};return O.log=O,O}let gt=(c,m)=>new(((y,O)=>{let N=y.get(O);if(!N)throw new Error(`no flowplayer component with the name ${O} exists`);let U=window.customElements.get(O);if(!U)throw new Error(`no default flowplayer component with the name ${O} exists`);let B=window.customElements.get(N);return typeof B!="function"?U:B})(c._customElements,m))(c),Rt=(c,m,y)=>{window.customElements.get(m)||window.customElements.define(m,y),c.customElements.get(m)||c.customElements.set(m,m)},Jt="flowplayer-ad-ui",xt=at("ads/lifecycle"),ce=["ad-playback-error","ad-teardown","ad-break-completed"];async function dt({config:c,root:m,content:y,ads:O,ima:N}){var U;xt("LifeCycle::initLifeCycle",c,m,y,O,N),y.autoplay=!1;let B=c.autoplay===C.AUDIO_REQUIRED,ut=function(Ot,Et){return{muted:!(Et||!Ot.muted),volume:Ot.volume}}(y,B);y.on("volumechange",()=>{ut.volume=y.volume,ut.muted=y.muted}),y.on("ad/show-first-frame",()=>{xt("showFirstFrame"),m.classList.toggle("ad-hide-first-frame",!1)});let ct=gt(y,Jt),It=ct;y.emit("ad/set-ui-flags",{ui_flags:(U=c.ads)===null||U===void 0?void 0:U.ui}),y.renderPlugin(ct);let yt={listening:!1,preload:N==null?void 0:N.preload_ads};if(xt("initial",ut),O.setVideoTag(y),c.autoplay)xt("Trying to autoplay"),m.classList.add("ad-hide-first-frame"),xt("hideFirstFrame"),await async function Ot(Et,Tt){let[ie,_e]=[Et.muted,Et.volume];xt("Lifecycle::peek_content(:muted => %s, :volume => %s)",ie,_e);let Be=()=>new Promise((He)=>setTimeout(He,0,!1));Tt&&(Et.muted=!1,Et.volume=Et.volume?Et.volume:1);try{if(await async function(He){return xt("Lifecycle::wait_for_source"),new Promise((wi,sr)=>{let Bn=0,Cr=setInterval(()=>{if(++Bn>40)return clearInterval(Cr),sr(new Error("No source in 2000ms, giving up"));He.currentSrc&&(wi(null),clearInterval(Cr))},50)})}(Et),await function(He){return new Promise((wi)=>{if(He.hasState(Mt))return wi(null);He.once("viewenter",()=>wi(null))})}(Et),xt("Lifecycle::peek_content::play"),Et.volume&&(Et.volume=0.01),await new Promise((He)=>setTimeout(()=>{Tt&&(Et.opts.autoplay=2),Et.setState("is-autoplay",!0),He(Et.togglePlay(!0))})),Et.paused)throw new Error("content failed to play");return xt("Lifecycle::peek_content::pause"),await new Promise((He)=>setTimeout(()=>He(Et.togglePlay(!1)))),Et.volume=_e,xt("Lifecycle::peek_content::true"),!0}catch(He){return Et.volume=_e,Tt?(Et.muted=!1,Et.volume==0&&(Et.volume=1),await Be()):ie||!_e?(xt("Lifecycle::peek_content::false"),await Be()):(xt("Lifecycle::peek_content::recover"),Et.muted=!0,!!await Ot(Et)||(Et.muted=ie,xt("Lifecycle::peek_content::false"),await Be()))}}(y,B)?(xt("Can autoplay, start ad"),y.opts.autoplay=1,mt({ads:O,content:y,state:yt,adContainer:It,ima:N,config:c})):(xt("cannot autoplay(audioRequired: %s), fallback to poster state",B),c.autoplay=0,y.emit("ad/show-first-frame",{root:m}),y.setState("is-starting",!0));c.autoplay||O.hasPreroll()&&function({content:Ot,ads:Et,config:Tt,state:ie,initial:_e,adContainer:Be,ima:He}){Ot.once("beforeplay",async function(wi){(Ot.hasState(Mt)||wi.type!="touchend")&&Et.shallPlayAd(0)&&(Et.adapter.setAttemptingPrerollOnIOS(Et.adapter.isCustomPlaybackEnabled()),Et.adapter.isCustomPlaybackEnabled()||wi.preventDefault(),we({ads:Et,content:Ot,state:ie}),xt("user_gesture(:intercept) -> shallPlayAd(0: %s)",Et.shallPlayAd(0)),Tt.muted=_e.muted,await mt({ads:Et,content:Ot,state:ie,adContainer:Be,ima:He,config:Tt}),se({ads:Et,content:Ot}))})}({content:y,ads:O,config:c,state:yt,initial:ut,adContainer:It,ima:N}),!c.autoplay&&O.hasPreroll()&&yt.preload&&mt({ads:O,content:y,state:yt,adContainer:It,ima:N,config:c}),re({config:c,root:m,content:y,ads:O,state:yt,adContainer:It,ui:ct,ima:N,initial:ut});let Pt=async(Ot)=>{y.removeEventListener("beforeplay",Pt),O.resetScheduleCounter(),O.hasPreroll()&&(O.adapter.setAttemptingPrerollOnIOS(O.adapter.isCustomPlaybackEnabled()),Ot.preventDefault(),await O.setCurrentTime(0))};y.on("src",()=>{yt.started&&(y.removeEventListener("beforeplay",Pt),y.addEventListener("beforeplay",Pt))}),y.on("beforeplay",(Ot)=>{(O.adBreak||O.adPlaying||O.adRequesting)&&(O.adBreak&&!O.adLinear||(xt("prevented content from starting because ad break is active"),Ot.preventDefault()))})}async function mt(c){c.state.started||(c.content.hasState(Mt)?await Dt(c):c.content.once("viewenter",async()=>{await Dt(c)}))}async function Dt({ads:c,content:m,adContainer:y,ima:O,state:N,config:U}){var B;N.started=!0;let ut=function(Pt,Ot){var Et={};for(var Tt in Pt)Object.prototype.hasOwnProperty.call(Pt,Tt)&&Ot.indexOf(Tt)<0&&(Et[Tt]=Pt[Tt]);if(Pt!=null&&typeof Object.getOwnPropertySymbols=="function"){var ie=0;for(Tt=Object.getOwnPropertySymbols(Pt);ie<Tt.length;ie++)Ot.indexOf(Tt[ie])<0&&Object.prototype.propertyIsEnumerable.call(Pt,Tt[ie])&&(Et[Tt[ie]]=Pt[Tt[ie]])}return Et}(O,["ads"]),ct=Ft(m.root),It=(U==null?void 0:U.muted)||m.muted,yt=Object.assign(Object.assign(Object.assign({container:y,volume:It?0:m.volume,muted:It,autoplay:(U==null?void 0:U.autoplay)||!1,video_source:m.original_src,preload_ads:(B=U==null?void 0:U.ima)===null||B===void 0?void 0:B.preload_ads},ut),ct));xt("start():",yt,N),await c.initialize(!1,yt,N.preload)}function te(c,m){var y,O;return{content_width:c.clientWidth||((y=c.parentNode)===null||y===void 0?void 0:y.clientWidth)||m.clientWidth,content_height:c.clientHeight||((O=c.parentNode)===null||O===void 0?void 0:O.clientHeight)||m.clientHeight}}function re({config:c,root:m,content:y,ads:O,initial:N,adContainer:U,state:B,ui:ut,ima:ct}){xt("addUIListeners()");let It=async()=>{if(O){if(!(O.adapter.isAttemptingPrerollOnIOS()||O.adapter.isCustomPlaybackEnabled()&&y.currentSrc!==y.original_src)){if(y.off("playing",It),xt("addUIListeners() -> content started playing"),we({ads:O,content:y,state:B}),!O.shallPlayAd(0)||!O.adapter.isLinearAd())return xt("addUIListeners() -> no more preroll ads -> resume content"),y.emit("ad/show-first-frame",{root:m}),await mt({ads:O,content:y,state:B,adContainer:U,ima:ct,config:c});y.togglePlay(!1),await mt({ads:O,content:y,state:B,adContainer:U,ima:ct,config:c}),O.shallPlayAd(0)&&O.adapter.isLinearAd()&&(ut.classList.add("on","linear"),m.classList.add("is-waiting"),se({ads:O,content:y}))}}else y.off("playing",It)};y.on("playing",It),y.on(["portrait","landscape"],function(){if(!O)return;let{content_width:Ot,content_height:Et}=te(y,m);O.resize({height:Et,width:Ot})}),y.on("resize",(Ot)=>{if(!O||!Ot.detail)return;let{width:Et,height:Tt}=Ot.detail.contentRect;O.resize({width:Et,height:Tt})}),y.on("ended",(Ot)=>{var Et;let Tt=()=>{Ot.preventDefault(),Object.assign(Ot,{prevented:!0})};if(m.classList.contains("ad-linear")&&m.classList.contains("ads-custom-playback-enabled"))return Tt();O&&(xt("ui_listeners(:%s, event: %o)",Ot.type,Ot.detail),((Et=Ot==null?void 0:Ot.detail)===null||Et===void 0?void 0:Et.from)!==O&&(Tt(),O.finished(function(){y.emit("ended",{from:O})})))}),O.on("ad-requested",()=>{m.classList.toggle("is-waiting",!0)}),O.once("ad-started",()=>{y.on(["beforeplay","beforepause"],(Ot)=>{var Et;if(!O.adBreak||!O.adapter.isLinearAd())return;Ot.preventDefault();let Tt=((Et=Ot.detail)===null||Et===void 0?void 0:Et.forced)?Ot.type==="beforeplay":!O.adPlaying;Tt&&O.paused&&O.resume(),Tt||O.paused||O.pause()})}),O.on("ad-started",(Ot)=>{let Et=Ot.detail,{linear:Tt,ad:ie,ad_type:_e}=Et,Be;if(xt(`Ad[linear: ${Tt}, currentTime: ${y.currentTime}] starting`,ie),_e=="preroll"&&!Tt&&y.paused&&y.togglePlay(!0),Tt&&(Be=te(y,m)),O.resize({width:Be?Be.content_width:ie.width,height:Be?Be.content_height:ie.height,linear:Tt,resize_non_linear:!0}),y.emit("ad/resize",{opts:{linear:Tt,resizeContainerAlso:!0,width:Tt?void 0:ie.width,height:Tt?void 0:ie.height}}),m.classList.remove("is-waiting"),y.setState("ad-linear",Tt),y.setState("ad-non-linear",!Tt),!Tt){xt("non-linear ad / restarting content");try{y.togglePlay(!0),y.volume=N.volume,y.muted=N.muted}catch(He){xt(He)}}y.hasState(Mt)||y.hasState("is-popped-out")||!Tt||O.pause()}),O.on("ad-pause-content",()=>{y.emit("ad/resize",{opts:{linear:!0,width:0,height:0}})}),y.on(ce,(Ot)=>async function({root:Et,content:Tt,ads:ie,eventName:_e,err:Be={reason:""}}){xt("teardown(event: %s)",_e),ie.adapter.isAttemptingPrerollOnIOS()&&(ie.adapter.setAttemptingPrerollOnIOS(!1),!Tt.paused&&Tt.hasState("is-starting")&&Tt.hasState("is-playing")&&pt(Tt,Tt.opts.start_time)),Et.classList.add("is-seamless"),Et.classList.remove("is-waiting"),["ad-non-linear","ad-linear"].forEach((wi)=>Tt.setState(wi,!1)),Be.reason&&xt("teardown(:err, reason: %s) %o",Be.reason);let He=ie.getLastAd();if(Tt.emit("ad/show-first-frame",{root:Et}),!ie.shouldRestartContent())return xt("Lifecycle.teardown(:skip_restart, reason: %s)","Ad prevented restarting content"),q(Et);if(Tt.currentTime>0&&Tt.currentTime>=Tt.duration||ie.ad_type=="postroll"||(He==null?void 0:He.restart)===!1)return xt("Lifecycle.teardown(:skip_restart, reason: %s)","was a postroll ad"),q(Et);if(Tt.currentSrc===""&&Tt.setSrc(Tt.original_src),Tt.paused&&ie.shouldRestartContent()&&(xt("Lifecycle.teardown(:toggle_play, %s)","attempting to restart content"),await Tt.togglePlay(!0)),!Tt.paused)return xt("Lifecycle.teardown(:ok)","restarted video content"),q(Et)}({root:m,content:y,ads:O,ui:ut,err:Ot.detail,eventName:Ot.type}));let yt=!!c.autoplay;var Pt;y.on("viewenter",()=>{yt&&ct.autopause!==!1&&O.resume()}),y.on("viewleave",(Pt=()=>{ct.autopause!==!1&&(yt=!O.paused,O.pause())},(Ot)=>{setTimeout(function(){if(!Ot.defaultPrevented&&!Ot.prevented)return Pt(Ot)},0)}))}function we({ads:c,content:m,state:y}){y.listening||(m.on(["timeupdate","seeked","playing","seeking"],(O)=>{c.adapter.isCustomPlaybackEnabled()&&(c.adPlaying||c.paused)||(c.adPlaying&&c.adapter.isLinearAd()&&!m.paused&&m.pause(),se({ads:c,content:m,seek:O.type==="seeking"}))}),y.listening=!0)}function se({ads:c,content:m,seek:y=!1}){c&&c.setCurrentTime(m.currentTime,void 0,y)}function q(c){c.classList.remove("is-seamless")}let tt=at("ads/timers");class Lt{constructor(c={},m={}){this.intervals=c,this.timers=m}}let _t=-1;function Gt(c,m,y){let O=setInterval(y,m);if(tt("TimerRegistry.createInterval() -> "+O,c.intervals),typeof O=="object"){let N=++_t;return c.intervals[N]=N,N}return c.intervals[O]=O,O}function Oe(c){if(c)return tt("TimerRegistry.empty()",Object.keys(c.timers),Object.keys(c.intervals)),Object.keys(c.intervals).forEach((m)=>function(y,O){return tt("TimerRegistry.removeInterval() -> "+O,y.intervals),clearInterval(y.intervals[O]),delete y.intervals[O],y}(c,m)),Object.keys(c.timers).forEach((m)=>function(y,O){return tt("TimerRegistry.removeTimeout() -> "+O,y.timers),clearTimeout(y.timers[O]),delete y.timers[O],y}(c,m)),c}function Re(c){try{return c.getAdPodInfo().getPodIndex()}catch(m){return}}class ai{adRequestStart(c){typeof c=="number"&&typeof this.requestStart!="number"&&(this.requestStart=performance.now())}adRequestEnd(){this.requestStart=void 0}getRemainingAdLoadTime(c,m){return typeof m!="number"||typeof this.requestStart!="number"?c:Math.max(0,m-(performance.now()-this.requestStart))}}function Qe(c){return function(m){return!document.fullscreenEnabled&&typeof m.webkitEnterFullScreen=="function"&&typeof m.webkitExitFullScreen=="function"}(c)&&!c.root.classList.contains("no-fullscreen")}class Ge{constructor(c){this.eventHandler=c,this.log=at("ads/adapter/ima"),this.google=window.google,this._adHandlers=[],this._timers=new Lt,this._started=!1,this._volumeLevel=0,this._adLoaded=!1,this.customPlaybackEnabled=!1,this._paused=!1,this._all_ads_completed=!1,this._currentDuration=0,this._currentRemaining=0,this._currentDisplayTs=0,this._isInitialized=!1,this._adBreakTime=0,this._prepared=!1,this.opts={},this.loadingController=new ai}async init(c){this.log("init",this.videoTag,c),this.opts=c,this._dimensions={width:c.width,height:c.height,linear:c.linear},this._prepared=!0,!this._isInitialized&&this.videoTag&&await this.initAdapter()}async initAdapter(){this.log("initAdapter",this.opts);try{await this.initialize(this.opts),this._isInitialized=!0}catch(c){this.log("initAdapter failed:",c),this._prepared=!1,this.eventHandler.trigger("ad-adapter-init-failed")}}isReady(){return!!this._isInitialized}setVideoTag(c){this.videoTag=c,this.customPlaybackEnabled=Qe(c),c.root.classList.toggle("ads-custom-playback-enabled",this.customPlaybackEnabled)}setAdBreakTime(c){this._adBreakTime=c}getAdBreakTime(){return this._adBreakTime}isCustomPlaybackEnabled(){return this.customPlaybackEnabled}isAttemptingPrerollOnIOS(){var c;return!!((c=this==null?void 0:this.videoTag)===null||c===void 0?void 0:c.root.classList.contains("preroll-ios"))}setAttemptingPrerollOnIOS(c){var m;(m=this==null?void 0:this.videoTag)===null||m===void 0||m.root.classList.toggle("preroll-ios",c)}isLinearAd(){return!!this._adLinear}getVideoTag(){return this.videoTag}getDimensions(){return this._dimensions||{}}getOpts(){return this.opts}isPaused(){return this._paused}destroy(){Oe(this._timers),this._adHandlers&&this._adHandlers.forEach((c)=>c()),this._adHandlers=void 0,this._adDisplayContainer&&this._adDisplayContainer.destroy(),this._adDisplayContainer=void 0,this._adsLoader&&this._adsLoader.destroy(),this._adsLoader=void 0,this._adsManager&&this._adsManager.destroy(),this._adsManager=void 0}stop(){this._adsManager&&this._adsManager.stop()}initialize(c){let m=this.isAdPod(),y=this._adLoaded||m;if(this.cleanup(),!this.videoTag)return console.warn("videoTag not set during initialization");this.opts=c,this._volumeLevel=c.volume;let O=this.google.ima.settings;if(c.NumRedirects=c.NumRedirects||c.redirects,O.setVpaidMode(c.VpaidMode||this.google.ima.ImaSdkSettings.VpaidMode.INSECURE),O.setDisableCustomPlaybackForIOS10Plus(!this.customPlaybackEnabled),"NumRedirects"in c&&O.setNumRedirects(c.NumRedirects),"AutoPlayAdBreaks"in c&&O.setAutoPlayAdBreaks(c.AutoPlayAdBreaks),"Locale"in c&&O.setLocale(c.Locale),"Ppid"in c&&O.setPpid(c.Ppid),!document.body.contains(c.container))throw new Error("AdDisplayContainer was not found in the document.body");this._adDisplayContainer=new this.google.ima.AdDisplayContainer(c.container,A().tizen||A().webOS?void 0:this.videoTag),this._adDisplayContainer.initialize(),this._adsLoader=new this.google.ima.AdsLoader(this._adDisplayContainer),this.log("ima.initialise(:wait -> ADS_MANAGER_LOADED)",Object.assign(Object.assign({},c),{volume:this.videoTag.volume,muted:this.videoTag.muted})),this._adsLoader.addEventListener(this.google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,(N)=>{if(!this.videoTag)return;this.log(`ima.initialise(:done -> ADS_MANAGER_LOADED)
|
|
9
|
-
%o`,Object.assign(Object.assign({},c),{volume:this.videoTag.volume,muted:this.videoTag.muted}));let U=new this.google.ima.AdsRenderingSettings;this.log("ima.rendering(preload: %s)",!!c.preload_ads),U.useStyledNonLinearAds=!0,U.enablePreloading=!!c.preload_ads,U.loadVideoTimeout=c.media_timeout||-1,U.restoreCustomPlaybackStateOnAdBreakComplete=this.customPlaybackEnabled,this.customPlaybackEnabled&&(U.playAdsAfterTime=this.videoTag.currentTime),this.eventHandler.trigger("ad-ima-rendering-settings",U);let B=this._adsManager=N.getAdsManager(this.videoTag,U);this.eventHandler.trigger("ad-ima-adapter-init",B),B.addEventListener(this.google.ima.AdEvent.Type.LOADED,()=>{this.log("debug(ima.adsManager): google.ima.AdEvent.Type.LOADED")}),B.addEventListener(this.google.ima.AdErrorEvent.Type.AD_ERROR,()=>{this.log("debug(ima.adsManager): google.ima.AdErrorEvent.Type.AD_ERROR")}),B.addEventListener(this.google.ima.AdEvent.Type.STARTED,()=>{this.log("debug(ima.adsManager): google.ima.AdEvent.Type.STARTED")}),B.addEventListener(this.google.ima.AdEvent.Type.AD_PROGRESS,(yt)=>{var Pt,Ot;let Et=(Pt=yt.getAdData())===null||Pt===void 0?void 0:Pt.duration,Tt=(Ot=yt.getAdData())===null||Ot===void 0?void 0:Ot.currentTime;isNaN(Et)||isNaN(Tt)||(this._currentRemaining=Et-Tt,this.eventHandler.trigger("ad-progress",{remaining:this._currentRemaining,duration:Et}))}),B.addEventListener(this.google.ima.AdEvent.Type.STARTED,(yt)=>{this._currentRemaining=-1,this.debugEvent(yt);let Pt=yt.getAd();Pt&&(this._currentDuration=Pt.getDuration(),this._currentDisplayTs=Date.now(),this.emitWithAd("ad-started",Pt),Pt.isLinear()&&Ge.pollRemaining({ima:this,adsManager:B}))}),B.addEventListener(this.google.ima.AdEvent.Type.COMPLETE,(yt)=>{this.debugEvent(yt);let Pt=yt.getAd();Pt&&this.emitWithAd("ad-completed",Pt),Oe(this._timers)}),B.addEventListener(this.google.ima.AdEvent.Type.SKIPPED,(yt)=>{this.debugEvent(yt);let Pt=yt.getAd();Pt&&this.emitWithAd("ad-skipped",Pt)}),B.addEventListener(this.google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED,(yt)=>{if(this.isAdPod()&&this.videoTag){let Ot=Math.abs(this.videoTag.currentTime-this.videoTag.duration)<1?-1:this.videoTag.currentTime;this.setAdBreakTime(Ot)}this.debugEvent(yt);let Pt=yt.getAd();Pt&&this.emitWithAd("ad-pause-content",Pt)}),B.addEventListener(this.google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED,(yt)=>{this.debugEvent(yt),this._started=!1,this._currentDisplayTs=0,this.eventHandler.trigger("ad-break-completed",{force:!0})}),B.addEventListener(this.google.ima.AdEvent.Type.VOLUME_CHANGED,(yt)=>{this.log("IMA::volume(type: %s, event: %o)",yt);let Pt=B.getVolume();this._volumeLevel=Pt,this.eventHandler.trigger("ad-volume-changed",Pt)});let ut=(yt)=>{this._paused=yt,this.eventHandler.trigger(yt?"ad-paused":"ad-resumed")};B.addEventListener(this.google.ima.AdEvent.Type.PAUSED,()=>ut(!0)),B.addEventListener(this.google.ima.AdEvent.Type.RESUMED,()=>ut(!1)),B.addEventListener(this.google.ima.AdEvent.Type.STARTED,()=>ut(!1)),B.addEventListener(this.google.ima.AdEvent.Type.VOLUME_MUTED,(yt)=>{this.log("IMA::volume(type: %s, event: %o)","mute",yt),this.eventHandler.trigger("ad-muted")});let{width:ct,height:It}=c;ct&&It&&(B.init(ct,It,this.google.ima.ViewMode.NORMAL),this.log("ima.initialise: done initializing"))}),y&&(this.log("Event(reload: %s)","reload-ad-requested"),this.eventHandler.trigger("reload-ad-requested",m)),this.eventHandler.trigger(ft,this)}destroyManager(c="unknown"){if(!this._adsManager)return this.log("ima::destroyManager(:skip, label: %s)",c);this.log("ima::destroyManager(:ok, label: %s)",c),this._adsManager.destroy()}reset(){this.destroyManager("reset"),Oe(this._timers),this.clearAdHandlers(),this._started=!1,this._adLoaded=!1}cleanup(){this.destroyManager("cleanup"),this._adsLoader&&this._adsLoader.destroy(),this._adDisplayContainer&&this._adDisplayContainer.destroy(),this._adLoaded=!1}waitForAdsManager(){return new Promise((c)=>{this.log("ima.waitForAdsManager:",this._adsManager),this.once(this._adsLoader,this.google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,()=>{this.log("ima.waitForAdsManager(:ok)",this._adsManager),c(this._adsManager)})})}async initAd(c,m=5000){var y;this.log(`ima.initAd(adTag: ${c}, timeout: ${m})`),this.customPlaybackEnabled||this.loadingController.adRequestStart(this.opts.total_loading_timeout);try{if(await this.requestAd(c,this.loadingController.getRemainingAdLoadTime(m,this.opts.total_loading_timeout)),this._adLoaded=!0,this.customPlaybackEnabled)return;(y=this._adsManager)===null||y===void 0||y.updateAdsRenderingSettings({loadVideoTimeout:this.loadingController.getRemainingAdLoadTime(this.opts.media_timeout||-1,this.opts.total_loading_timeout)})}catch(O){throw this.log("ima.initAd:",O),this._adLoaded=!1,O}finally{Oe(this._timers)}}async requestAd(c,m){if(this.destroyManager("requestAd"),!this.videoTag)return;this.setAdBreakTime(this.videoTag.currentTime);let{autoplay:y=!1}=this.opts,O=Date.now(),N=this.videoTag.muted;this._volumeLevel=this.videoTag.volume;let U=N||this._volumeLevel==0;this._all_ads_completed=!1,this.log("ima.requestAd(%o)",Object.assign(Object.assign({},this.opts),{autoplay:y,muted:N,timeout:m,adTag:c,_volumeLevel:this._volumeLevel,manager:this._adsManager})),this.clearAdHandlers();let B=new this.google.ima.AdsRequest;B.adTagUrl=c;let{height:ut,width:ct}=this.opts;return ct&&(B.linearAdSlotWidth=ct),ut&&(B.linearAdSlotHeight=ut),!this.opts.disable_non_linear_ads&&ct&&(B.nonLinearAdSlotWidth=ct),!this.opts.disable_non_linear_ads&&ut&&(B.nonLinearAdSlotHeight=ut-50),B.setAdWillAutoPlay(y),B.setAdWillPlayMuted(U),B.vastLoadTimeout=m,this.eventHandler.trigger("ad-ima-before-ads-request",{request:B}),this._adsLoader?new Promise(async(It,yt)=>{var Pt;let Ot=this.waitForAdsManager();(Pt=this._adsLoader)===null||Pt===void 0||Pt.requestAds(B),this.once(this._adsLoader,this.google.ima.AdErrorEvent.Type.AD_ERROR,(Et)=>{yt(()=>(this.emitError("ad-request-error",Et),Promise.reject(new Error("Ad load failed"))))}),setTimeout(()=>{yt(()=>{Ot.then((Tt)=>{Tt.destroy(),this._adsManager===Tt&&(this._adsManager=void 0)});let Et=new Error("Ad internal timeout reached");return this.eventHandler.trigger("ad-timeout",Et),Promise.reject(Et)})},m),It(await Ot)}).then((It)=>new Promise((yt,Pt)=>{this.volume(U?0:this._volumeLevel),this.eventHandler.trigger("ad-volume-changed",this._volumeLevel);let Ot=this.cuepoints();if(Ot&&Ot.length&&Ot[0]!==0)return yt({ad:!1,adsManager:It});this.once(It,this.google.ima.AdErrorEvent.Type.AD_ERROR,(Et)=>{Pt(()=>(this.emitError("ad-request-error",Et),Promise.reject(Et)))}),this.once(It,this.google.ima.AdEvent.Type.ALL_ADS_COMPLETED,()=>{this._all_ads_completed=!0,yt(null)}),this.once(It,this.google.ima.AdEvent.Type.LOADED,(Et)=>{this.eventHandler.trigger("ad-request-completed",{request_load_time:Date.now()-O});let Tt=Et.getAd();Tt&&(this.log("ima.requestAd: AD_REQUEST_COMPLETED",Tt.getContentType()),Tt.getContentType()=="application/javascript"&&this.eventHandler.trigger("vpaid-init",Tt),yt(null))}),this.once(It,this.google.ima.AdEvent.Type.CLICK,()=>{this.log("ima.requestAd: click event"),this.pause()})}),(It)=>It()):void 0}async playAd(){if(this.log("ima.playAd()",this),!this._adsManager||!this._adLoaded)return;let c=this.currentAd();if(c&&(!this.customPlaybackEnabled||c.isLinear()))try{await this.startAndWaitForAdCompletion(this._adsManager,c.isLinear())}catch(m){throw this.log("ima.playAd",m),m}finally{this._adLoaded=!1,Oe(this._timers)}}startAndWaitForAdCompletion(c,m){if(!this._started)return this.log("ima.startAndWaitForAdCompletion(manager: %o)",{volume:c.getVolume()}),new Promise((y,O)=>{let N=!1;this.once(c,this.google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED,()=>{if(this.log("ima.startAndWaitForAdCompletion: CONTENT_RESUME_REQUESTED <<< happened"),this._started=!1,N)return this.log("ima.startAndWaitForAdCompletion: Content resume requested, but trying to recover from ad error");y()}),this.once(c,this.google.ima.AdErrorEvent.Type.AD_ERROR,async(ut)=>{this.log("ima.startAndWaitForAdCompletion: beginning error recovery ->",ut),N=!0;try{let{ok:ct}=await Ge.pollForFatalError({err:ut,ima:this});ct&&(N=!1)}catch(ct){this._started=!1,O(ut)}});let U=this.getVideoTag();if(!U)return;let B=()=>{m&&(this._started=!0),c.start(),this.eventHandler.trigger("ad-play-requested")};if(!m||U.hasState(Mt)||U.hasState("is-popped-out"))return B();U.paused||U.pause(),U.once("viewenter",()=>B())})}pause(){this.log("ima.pause()"),this._adsManager&&this._adsManager.pause()}resume(){this.log("ima.resume()"),this._adsManager&&this._adsManager.resume()}volume(c){if(this._adsManager)try{return arguments.length>0&&typeof c=="number"&&this._adsManager.setVolume(c),this._volumeLevel=this._adsManager.getVolume()}catch(m){this.log("ima.volume() failed (%o)",m)}}onResize({width:c,height:m,linear:y,silent:O,resize_non_linear:N}){this._adsManager&&(this._adLinear=y===void 0?this._adLinear:y,this.opts&&(c||m)&&(y===!1&&(c+=10,m+=10),this._dimensions={width:c,height:m,linear:y},y&&(this.opts.width=c,this.opts.height=m),(this._adLinear||N)&&(O||this.log("ima.onResize %s x %s",c,m),this._adsManager.resize(c,m,this.google.ima.ViewMode.NORMAL))))}onAdRequestEnd(){var c;this.customPlaybackEnabled||(this.loadingController.adRequestEnd(),(c=this._adsManager)===null||c===void 0||c.updateAdsRenderingSettings({loadVideoTimeout:this.opts.media_timeout||-1}))}getAdInfo(){let c=this.currentAd();if(c)return{duration:c.getDuration(),currentTime:this._currentRemaining}}currentAd(){let c=this._adsManager;if(c)return c.getCurrentAd()}isAdPod(){let c=this.cuepoints();return!!(c&&c.length>1)}cuepoints(){return this._adsManager&&this._adsManager.getCuePoints()}async contentComplete(){this.log("ima.contentComplete() -> ",this),this._adsLoader&&this._adsLoader.contentComplete();let c=this.cuepoints();c&&c.indexOf(-1)!==-1&&await new Promise((m)=>{Ge.race(this.eventHandler,["ad-break-completed","ad-error"],m)})}isUiDisabled(){try{let c=this.currentAd();return c&&c.isUiDisabled()}catch(c){return null}}getAdPodInfo(){try{let c=this.currentAd();return c&&c.getAdPodInfo()}catch(c){return null}}canDismissNonLinear(){let c=this.currentAd();if(!c||c.isLinear()||!this._adsManager||!this._currentDisplayTs)return!0;let m=Date.now(),y=c.getMinSuggestedDuration();return m-this._currentDisplayTs>1000*y}static unwrapError(c,m){if(!c)return"";if(typeof c.getMessage=="function")return c.getMessage();return c.message?c.message:m||""}static pollForFatalError({err:c,ima:m}){let y;try{let N=c.getError(),U=N.getInnerError();y={reason:U?Ge.unwrapError(U,N.message):"",type:N.getType(),code:N.getErrorCode()}}catch(N){}let O=m._currentRemaining;return new Promise((N,U)=>{let B=setTimeout(()=>{m.eventHandler&&m.eventHandler.trigger("ad-playback-error",y),U(new Error("Ad not progressing"))},2500);m.eventHandler.once("ad-progress",(ut)=>{let ct=ut.detail.remaining;ct!==-1&&ct<O&&(clearTimeout(B),N({ok:1}))})})}static pollRemaining({ima:c,adsManager:m}){let y=-1;return Gt(c._timers,250,function(){let O=m.getRemainingTime();c._currentRemaining!=-1&&c._currentRemaining<=O||(c._currentRemaining=m.getRemainingTime(),y!=c._currentRemaining&&(y=c._currentRemaining,c.eventHandler.trigger("ad-progress",{remaining:c._currentRemaining,duration:c._currentDuration})))})}once(c,m,y){this._adHandlers.push(function(O,N,U){let B=(ut)=>{U(ut),O.removeEventListener(N,B)};return O.addEventListener(N,B),()=>O.removeEventListener(N,B)}(c,m,y))}static race(c,m,y){m.forEach((O)=>{let N=(...U)=>{m.forEach((B)=>c.removeListener(B,N)),y(U)};c.on(O,N)})}clearAdHandlers(){this.log("ima.clearAdHandlers"),this._adHandlers.forEach((c)=>c()),this._adHandlers=[]}emitWithAd(c,m){if(this.log("ima.emitWithAd",c,m),!this._adsManager)return;let y=function(U){try{return U.getAdPodInfo().getAdPosition()}catch(B){return}}(m),O=function(U){try{return U.getAdPodInfo().getTotalAds()}catch(B){return}}(m),N={ad:{duration:m.getDuration(),width:m.getWidth(),height:m.getHeight(),position:y,totals:O},volume:this._adsManager.getVolume(),vast_ad_id:m.getAdId(),linear:m.isLinear(),mime_type:m.getContentType(),ima_event:!0};this.log(`emitWithAd::event(name: ${c}, data: %o, ad: %o)`,N,m),this.eventHandler.trigger(c,N)}emitError(c,m){let y={vast_error_type:m.getError().getType(),reason:m.getError().getMessage(),vast_error:m.getError().getErrorCode()};this.log(`ima.error(${c})`,y),this.eventHandler.trigger(c,y)}debugEvent(c){try{let m=c.getAd();if(!m)return;this.log(`ima.event.${c.type} ->`,{event:c,data:c.getAdData(),position:Re(m),ad:m})}catch(m){}}}var Se=function(c){var m={exports:{}};return c(m,m.exports),m.exports}(function(c,m){var y=function(){for(var N=new Array(256),U=0;U<256;++U)N[U]="%"+((U<16?"0":"")+U.toString(16)).toUpperCase();return N}(),O=Object.prototype.hasOwnProperty;m.arrayToObject=function(N,U){for(var B=U.plainObjects?Object.create(null):{},ut=0;ut<N.length;++ut)N[ut]!==void 0&&(B[ut]=N[ut]);return B},m.merge=function(N,U,B){if(!U)return N;if(typeof U!="object"){if(Array.isArray(N))N.push(U);else{if(typeof N!="object")return[N,U];(B.plainObjects||B.allowPrototypes||!O.call(Object.prototype,U))&&(N[U]=!0)}return N}if(typeof N!="object")return[N].concat(U);var ut=N;return Array.isArray(N)&&!Array.isArray(U)&&(ut=m.arrayToObject(N,B)),Object.keys(U).reduce(function(ct,It){var yt=U[It];return O.call(ct,It)?ct[It]=m.merge(ct[It],yt,B):ct[It]=yt,ct},ut)},m.decode=function(N){try{return decodeURIComponent(N.replace(/\+/g," "))}catch(U){return N}},m.encode=function(N){if(N.length===0)return N;for(var U=typeof N=="string"?N:String(N),B="",ut=0;ut<U.length;++ut){var ct=U.charCodeAt(ut);ct===45||ct===46||ct===95||ct===126||ct>=48&&ct<=57||ct>=65&&ct<=90||ct>=97&&ct<=122?B+=U.charAt(ut):ct<128?B+=y[ct]:ct<2048?B+=y[192|ct>>6]+y[128|63&ct]:ct<55296||ct>=57344?B+=y[224|ct>>12]+y[128|ct>>6&63]+y[128|63&ct]:(ut+=1,ct=65536+((1023&ct)<<10|1023&U.charCodeAt(ut)),B+=y[240|ct>>18]+y[128|ct>>12&63]+y[128|ct>>6&63]+y[128|63&ct])}return B},m.compact=function(N,U){if(typeof N!="object"||N===null)return N;var B=U||[],ut=B.indexOf(N);if(ut!==-1)return B[ut];if(B.push(N),Array.isArray(N)){for(var ct=[],It=0;It<N.length;++It)N[It]&&typeof N[It]=="object"?ct.push(m.compact(N[It],B)):N[It]!==void 0&&ct.push(N[It]);return ct}for(var yt=Object.keys(N),Pt=0;Pt<yt.length;++Pt){var Ot=yt[Pt];N[Ot]=m.compact(N[Ot],B)}return N},m.isRegExp=function(N){return Object.prototype.toString.call(N)==="[object RegExp]"},m.isBuffer=function(N){return N!=null&&!!(N.constructor&&N.constructor.isBuffer&&N.constructor.isBuffer(N))}}),si={brackets:function(c){return c+"[]"},indices:function(c,m){return c+"["+m+"]"},repeat:function(c){return c}},Xe={delimiter:"&",strictNullHandling:!1,skipNulls:!1,encode:!0,encoder:Se.encode},Ii=function c(m,y,O,N,U,B,ut,ct,It){var yt=m;if(typeof ut=="function")yt=ut(y,yt);else if(yt instanceof Date)yt=yt.toISOString();else if(yt===null){if(N)return B?B(y):y;yt=""}if(typeof yt=="string"||typeof yt=="number"||typeof yt=="boolean"||Se.isBuffer(yt))return B?[B(y)+"="+B(yt)]:[y+"="+String(yt)];var Pt,Ot=[];if(yt===void 0)return Ot;if(Array.isArray(ut))Pt=ut;else{var Et=Object.keys(yt);Pt=ct?Et.sort(ct):Et}for(var Tt=0;Tt<Pt.length;++Tt){var ie=Pt[Tt];U&&yt[ie]===null||(Ot=Array.isArray(yt)?Ot.concat(c(yt[ie],O(y,ie),O,N,U,B,ut,ct,It)):Ot.concat(c(yt[ie],y+(It?"."+ie:"["+ie+"]"),O,N,U,B,ut,ct,It)))}return Ot},Ze=Object.prototype.hasOwnProperty,Je={delimiter:"&",depth:5,arrayLimit:20,parameterLimit:1000,strictNullHandling:!1,plainObjects:!1,allowPrototypes:!1,allowDots:!1,decoder:Se.decode},oi=function(c,m,y){if(c){var O=y.allowDots?c.replace(/\.([^.[]+)/g,"[$1]"):c,N=/(\[[^[\]]*])/g,U=/(\[[^[\]]*])/.exec(O),B=U?O.slice(0,U.index):O,ut=[];if(B){if(!y.plainObjects&&Ze.call(Object.prototype,B)&&!y.allowPrototypes)return;ut.push(B)}for(var ct=0;(U=N.exec(O))!==null&&ct<y.depth;){if(ct+=1,!y.plainObjects&&Ze.call(Object.prototype,U[1].slice(1,-1))&&!y.allowPrototypes)return;ut.push(U[1])}return U&&ut.push("["+O.slice(U.index)+"]"),function It(yt,Pt,Ot){if(!yt.length)return Pt;var Et,Tt=yt.shift();if(Tt==="[]")Et=(Et=[]).concat(It(yt,Pt,Ot));else{Et=Ot.plainObjects?Object.create(null):{};var ie=Tt.charAt(0)==="["&&Tt.charAt(Tt.length-1)==="]"?Tt.slice(1,-1):Tt,_e=parseInt(ie,10);!isNaN(_e)&&Tt!==ie&&String(_e)===ie&&_e>=0&&Ot.parseArrays&&_e<=Ot.arrayLimit?(Et=[])[_e]=It(yt,Pt,Ot):Et[ie]=It(yt,Pt,Ot)}return Et}(ut,m,y)}},Qt=function(c,m){var y,O,N=c,U=m||{},B=U.delimiter===void 0?Xe.delimiter:U.delimiter,ut=typeof U.strictNullHandling=="boolean"?U.strictNullHandling:Xe.strictNullHandling,ct=typeof U.skipNulls=="boolean"?U.skipNulls:Xe.skipNulls,It=(typeof U.encode=="boolean"?U.encode:Xe.encode)?typeof U.encoder=="function"?U.encoder:Xe.encoder:null,yt=typeof U.sort=="function"?U.sort:null,Pt=U.allowDots!==void 0&&U.allowDots;if(U.encoder!==null&&U.encoder!==void 0&&typeof U.encoder!="function")throw new TypeError("Encoder has to be a function.");typeof U.filter=="function"?N=(O=U.filter)("",N):Array.isArray(U.filter)&&(y=O=U.filter);var Ot,Et=[];if(typeof N!="object"||N===null)return"";Ot=U.arrayFormat in si?U.arrayFormat:("indices"in U)?U.indices?"indices":"repeat":"indices";var Tt=si[Ot];y||(y=Object.keys(N)),yt&&y.sort(yt);for(var ie=0;ie<y.length;++ie){var _e=y[ie];ct&&N[_e]===null||(Et=Et.concat(Ii(N[_e],_e,Tt,ut,ct,It,O,yt,Pt)))}return Et.join(B)},qt=function(c,m){var y=m||{};if(y.decoder!==null&&y.decoder!==void 0&&typeof y.decoder!="function")throw new TypeError("Decoder has to be a function.");if(y.delimiter=typeof y.delimiter=="string"||Se.isRegExp(y.delimiter)?y.delimiter:Je.delimiter,y.depth=typeof y.depth=="number"?y.depth:Je.depth,y.arrayLimit=typeof y.arrayLimit=="number"?y.arrayLimit:Je.arrayLimit,y.parseArrays=y.parseArrays!==!1,y.decoder=typeof y.decoder=="function"?y.decoder:Je.decoder,y.allowDots=typeof y.allowDots=="boolean"?y.allowDots:Je.allowDots,y.plainObjects=typeof y.plainObjects=="boolean"?y.plainObjects:Je.plainObjects,y.allowPrototypes=typeof y.allowPrototypes=="boolean"?y.allowPrototypes:Je.allowPrototypes,y.parameterLimit=typeof y.parameterLimit=="number"?y.parameterLimit:Je.parameterLimit,y.strictNullHandling=typeof y.strictNullHandling=="boolean"?y.strictNullHandling:Je.strictNullHandling,c===""||c==null)return y.plainObjects?Object.create(null):{};for(var O=typeof c=="string"?function(It,yt){for(var Pt={},Ot=It.split(yt.delimiter,yt.parameterLimit===1/0?void 0:yt.parameterLimit),Et=0;Et<Ot.length;++Et){var Tt,ie,_e=Ot[Et],Be=_e.indexOf("]=")===-1?_e.indexOf("="):_e.indexOf("]=")+1;Be===-1?(Tt=yt.decoder(_e),ie=yt.strictNullHandling?null:""):(Tt=yt.decoder(_e.slice(0,Be)),ie=yt.decoder(_e.slice(Be+1))),Ze.call(Pt,Tt)?Pt[Tt]=[].concat(Pt[Tt]).concat(ie):Pt[Tt]=ie}return Pt}(c,y):c,N=y.plainObjects?Object.create(null):{},U=Object.keys(O),B=0;B<U.length;++B){var ut=U[B],ct=oi(ut,O[ut],y);N=Se.merge(N,ct,y)}return Se.compact(N)};let $t=at("fpads:macros"),he=/\[([\s\S]+?)\]/g;class de{static run(c){try{return c()}catch(m){return void console.error(m)}}static merge(...c){return c.reduce((m,y)=>Object.assign(m,y),{})}static cast(c){return c===void 0?"":typeof c=="function"?encodeURIComponent(de.run(c)||""):typeof c=="string"?encodeURIComponent(c):typeof c=="number"||typeof c=="boolean"?c.toString():""}static normalize(c){return c.trim()}static process_obj(c,m,y){return Object.keys(c).reduce((O,N)=>{let U=de.process_str(N,m,y,!0),B=c[N];return B===null?(O[U]=B,O):typeof B=="object"?(O[U]=de.process_obj(B,m,y),O):typeof B=="string"?(O[U]=de.process_str(B,m,y),O):(console.error(new Error(`${B} at ${N} not a handled Macro type`)),O)},{})}static process_str(c,m,y,O=!1){return c.replace(m.pattern,(N,U)=>{let B=de.normalize(U);if(!(B in y)||y[B]===void 0)return N;let ut=y[B],ct=O?ut:de.cast(ut);return $t("Macro.replace(raw: %s, macro: %s, value: %s)",O,U,ct),ct})}constructor(c={},m=he){this.vars=c,this.pattern=m}fork(c={},m=this.pattern){let y=de.merge(this.vars,c);return new de(y,m)}compile(c,m={}){let y=de.merge(this.vars,m),[O,N]=c.split("?"),U=qt(N||"",{strictNullHandling:!0,decoder:(ut)=>ut}),B=Qt(de.process_obj(U,this,y),{encode:!1,strictNullHandling:!0});return de.process_str(O,this,y,!0)+"?"+B}}function Oi(c,m={width:0,height:0}){let y,O;try{let ct=document.createElement("a");ct.href=y=window.location!=window.parent.location?document.referrer:document.location.href,O=ct.hostname}catch(ct){console.error(ct)}let{width:N,height:U}=m,{video_source:B}=c||{},ut=function(){let ct=window;return typeof ct.__flowplayerAdParameters=="object"?ct.__flowplayerAdParameters:{}}();return Object.assign({random:Date.now(),page_url:y,domain:O,player_width:N,player_height:U,video_url:B,videourl:B},ut)}de.patterns={BRACKETS:he,CURLY:/\{([\s\S]+?)\}/g,UNDERSCORE:/__([\s\S]+?)__/g};let en=/^flowplayer:\/\/(.+)/;async function Ai(c){if(typeof c=="string"&&en.test(c)){let m=en.exec(c),y=m&&window[m[1]];if(y)return Ai(y)}if(typeof c!="function")return c;try{return await c()}catch(m){return""}}class We{constructor(c,m={}){this._ads=c,this._opts=m,this._nextIndex=0,this._postroll=void 0,this._loadPending=!1,this._postrollActive=!1,this.reset(this._ads)}toJSON(){let c=(this._ads||[]).slice(this._nextIndex);return this._postroll&&c.push(this._postroll),c}reset(c){this.setAds(c),this._nextIndex=0,this._postrollActive=!1}resetCounter(){this._nextIndex=0,this._postrollActive=!1}setAds(c){this._ads=c||[],this.sort()}getAds(){return this._ads}getNextAd(c){return this._ads[this._nextIndex]||c}getCurrentAd(){return this._postrollActive?this._postroll:this._loadPending?0:this._ads[this._nextIndex-1]}getPostroll(){return this._postroll}isDrained(){return this._nextIndex+1>this._ads.length}setPostrollActive(){this._postrollActive=!0}updateContentDuration(c){this._opts.content_duration=c}increment(){++this._nextIndex}decrement(){this._nextIndex>0&&--this._nextIndex}getNextIndex(){return this._nextIndex}getCurrentType(){let c=this.getCurrentAd();if(c)return We.kindOf(c.time)}sort(){this._postroll=this._ads.find((c)=>c.time===-1),this._ads=this._ads.filter((c)=>c!==this._postroll).sort((c,m)=>c.time===m.time?this._ads.indexOf(c)-this._ads.indexOf(m):c.time-m.time)}shallPlayAd(c){if(this._loadPending)return!1;let m=this.getCurrentAd()||this.getNextAd();return!!(m&&m.time<=c&&m.time!==-1)}shallPlayNext(){let c=this.getNextAd(),m=this.getCurrentAd();return!(!c||!m||c.time!==m.time)}waitForLoad(c,m,y){if(this._loadPending=!1,!m)return!1;let O=y?this._opts.preload_advance:0;return m.time>=0?this._loadPending=c<m.time-O:m.time===-1&&(this._loadPending=this._opts.content_duration>0&&c!==-1?c<this._opts.content_duration-O:c!==-1),this._loadPending}static hasPreroll(c){return!!c.find((m)=>m.time===0)}static isOutstream(c){return We.hasPreroll(c)&&!!c[0].outstream}static kindOf(c){switch(c){case 0:return"preroll";case-1:return"postroll";default:return"midroll"}}}let{prototype:cn,getPrototypeOf:gi}=Object,_i=at("fpads:ads:state");var ve;(function(c){c[c.IDLE=0]="IDLE",c[c.INITIALIZING=1]="INITIALIZING",c[c.FETCHING_AD=2]="FETCHING_AD",c[c.AD_AVAILABLE=4]="AD_AVAILABLE",c[c.BREAK_ACTIVE=8]="BREAK_ACTIVE",c[c.PLAYING=16]="PLAYING",c[c.FATAL_ERROR=32]="FATAL_ERROR"})(ve||(ve={}));class Li{static of(){return new Li}constructor(c=0){this._state=c}reset(){this._state=0}toggleState(c,m){return c===void 0&&_i(new Error("AdState cannot toggleState for `undefined`")),m===void 0?this._state^=c:m?void(this._state|=c):this._state&=~c}hasAll(c){return this._state==(this._state|c)}hasAny(c){return!!(this._state&c)}get state(){return this._state}}let pe={ok:at("fpads:analytics:request-queue"),err:at("fpads:analytics:request-queue:err"),warn:at("fpads:analytics:request-queue:warn")};class fe{static of(){return new fe}static is_empty(c){return c.pending.length==0}static is_high_water(c){return c.open.length==fe.MAX_OPEN_REQUESTS}static maybe_spawn_req(c){if(fe.is_empty(c))return pe.ok("maybe_spawn_req called Queue that is EMPTY"),c;if(fe.is_high_water(c))return pe.warn("maybe_spawn_req called on Queue that is HIGH_WATER"),c;try{let m=fe.lpop(c);m&&fe.request(c,m)}catch(m){pe.err(m)}}static increment_failures(c){return c.stats.failures++,c.stats.failures>fe.MAX_FAILURE_COUNT&&(c.stats.ttl=Date.now()+fe.REQUEST_TTL_MS),c}static handle_error(c,m){fe.rm(c,m),fe.increment_failures(c)}static request(c,[m,y,O]){if(pe.ok(`Request[${O.event_type}] request`,O,c.stats),Date.now()<c.stats.ttl)return pe.warn(`Request[${O.event_type}] skipping because too many errors too quickly`,c.stats);let N=new XMLHttpRequest;c.open.push(N),N.timeout=fe.REQUEST_TIMEOUT_MS,N.ontimeout=function(){fe.handle_error(c,N),pe.warn(`Request[${O.event_type}] timed out in ${N.timeout}ms`,c.stats)},N.onerror=function(U){fe.handle_error(c,N),U&&pe.err(U),pe.warn(`Request[${O.event_type}] encountered an Error`,N.responseText,c.stats)},N.onreadystatechange=function(){N.readyState==XMLHttpRequest.DONE&&fe.rm(c,N),Math.floor(N.status/100)},N.onload=function(){fe.rm(c,N),c.stats.failures&&c.stats.failures--,pe.ok(`Request[${O.event_type}] :ok`,N.status)},N.open(y,m),N.setRequestHeader("Content-Type","text/plain;charset=UTF-8");try{N.send(JSON.stringify(O))}catch(U){pe.err(U)}}static rpush(c,...m){return m.forEach((y)=>{if(fe.is_high_water(c))return pe.warn("Too many open requests, skipping",c.stats);c.pending.push(y),fe.maybe_spawn_req(c)}),c}static lpop(c){return c.pending.shift()}static rm(c,m){let y=c.open.lastIndexOf(m);return~y&&c.open.splice(y,1),c}constructor(c=[],m=[],y={failures:0,ttl:0}){this.pending=c,this.open=m,this.stats=y}}fe.MAX_OPEN_REQUESTS=3,fe.REQUEST_TIMEOUT_MS=4000,fe.REQUEST_TTL_MS=5000,fe.MAX_FAILURE_COUNT=3;let qi={"Amazon Silk":"amazon_silk","Android Browser":"android",Bada:"bada",BlackBerry:"blackberry",Chrome:"chrome",Chromium:"chromium",Electron:"electron",Epiphany:"epiphany",Firefox:"firefox",Focus:"focus",Generic:"generic","Google Search":"google_search",Googlebot:"googlebot","Internet Explorer":"ie","K-Meleon":"k_meleon",Maxthon:"maxthon","Microsoft Edge":"edge","MZ Browser":"mz","NAVER Whale Browser":"naver",Opera:"opera","Opera Coast":"opera_coast",PhantomJS:"phantomjs",Puffin:"puffin",QupZilla:"qupzilla",QQ:"qq",QQLite:"qqlite",Safari:"safari",Sailfish:"sailfish","Samsung Internet for Android":"samsung_internet",SeaMonkey:"seamonkey",Sleipnir:"sleipnir",Swing:"swing",Tizen:"tizen","UC Browser":"uc",Vivaldi:"vivaldi","WebOS Browser":"webos",WeChat:"wechat","Yandex Browser":"yandex",Roku:"roku"},Zt={amazon_silk:"Amazon Silk",android:"Android Browser",bada:"Bada",blackberry:"BlackBerry",chrome:"Chrome",chromium:"Chromium",electron:"Electron",epiphany:"Epiphany",firefox:"Firefox",focus:"Focus",generic:"Generic",googlebot:"Googlebot",google_search:"Google Search",ie:"Internet Explorer",k_meleon:"K-Meleon",maxthon:"Maxthon",edge:"Microsoft Edge",mz:"MZ Browser",naver:"NAVER Whale Browser",opera:"Opera",opera_coast:"Opera Coast",phantomjs:"PhantomJS",puffin:"Puffin",qupzilla:"QupZilla",qq:"QQ Browser",qqlite:"QQ Browser Lite",safari:"Safari",sailfish:"Sailfish",samsung_internet:"Samsung Internet for Android",seamonkey:"SeaMonkey",sleipnir:"Sleipnir",swing:"Swing",tizen:"Tizen",uc:"UC Browser",vivaldi:"Vivaldi",webos:"WebOS Browser",wechat:"WeChat",yandex:"Yandex Browser"},Fe={tablet:"tablet",mobile:"mobile",desktop:"desktop",tv:"tv"},ti={WindowsPhone:"Windows Phone",Windows:"Windows",MacOS:"macOS",iOS:"iOS",Android:"Android",WebOS:"WebOS",BlackBerry:"BlackBerry",Bada:"Bada",Tizen:"Tizen",Linux:"Linux",ChromeOS:"Chrome OS",PlayStation4:"PlayStation 4",Roku:"Roku"},Hi={EdgeHTML:"EdgeHTML",Blink:"Blink",Trident:"Trident",Presto:"Presto",Gecko:"Gecko",WebKit:"WebKit"};class Q{static getFirstMatch(c,m){let y=m.match(c);return y&&y.length>0&&y[1]||""}static getSecondMatch(c,m){let y=m.match(c);return y&&y.length>1&&y[2]||""}static matchAndReturnConst(c,m,y){if(c.test(m))return y}static getWindowsVersionName(c){switch(c){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}}static getMacOSVersionName(c){let m=c.split(".").splice(0,2).map((y)=>parseInt(y,10)||0);if(m.push(0),m[0]===10)switch(m[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}}static getAndroidVersionName(c){let m=c.split(".").splice(0,2).map((y)=>parseInt(y,10)||0);if(m.push(0),!(m[0]===1&&m[1]<5))return m[0]===1&&m[1]<6?"Cupcake":m[0]===1&&m[1]>=6?"Donut":m[0]===2&&m[1]<2?"Eclair":m[0]===2&&m[1]===2?"Froyo":m[0]===2&&m[1]>2?"Gingerbread":m[0]===3?"Honeycomb":m[0]===4&&m[1]<1?"Ice Cream Sandwich":m[0]===4&&m[1]<4?"Jelly Bean":m[0]===4&&m[1]>=4?"KitKat":m[0]===5?"Lollipop":m[0]===6?"Marshmallow":m[0]===7?"Nougat":m[0]===8?"Oreo":m[0]===9?"Pie":void 0}static getVersionPrecision(c){return c.split(".").length}static compareVersions(c,m,y=!1){let O=Q.getVersionPrecision(c),N=Q.getVersionPrecision(m),U=Math.max(O,N),B=0,ut=Q.map([c,m],(ct)=>{let It=U-Q.getVersionPrecision(ct),yt=ct+new Array(It+1).join(".0");return Q.map(yt.split("."),(Pt)=>new Array(20-Pt.length).join("0")+Pt).reverse()});for(y&&(B=U-Math.min(O,N)),U-=1;U>=B;){if(ut[0][U]>ut[1][U])return 1;if(ut[0][U]===ut[1][U]){if(U===B)return 0;U-=1}else if(ut[0][U]<ut[1][U])return-1}}static map(c,m){let y=[],O;if(Array.prototype.map)return Array.prototype.map.call(c,m);for(O=0;O<c.length;O+=1)y.push(m(c[O]));return y}static find(c,m){let y,O;if(Array.prototype.find)return Array.prototype.find.call(c,m);for(y=0,O=c.length;y<O;y+=1){let N=c[y];if(m(N,y))return N}}static assign(c,...m){let y=c,O,N;if(Object.assign)return Object.assign(c,...m);for(O=0,N=m.length;O<N;O+=1){let U=m[O];if(typeof U=="object"&&U!==null)Object.keys(U).forEach((B)=>{y[B]=U[B]})}return c}static getBrowserAlias(c){return qi[c]}static getBrowserTypeByAlias(c){return Zt[c]||""}}let De=/version\/(\d+(\.?_?\d+)+)/i,Tr=[{test:[/googlebot/i],describe(c){let m={name:"Googlebot"},y=Q.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,c)||Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/opera/i],describe(c){let m={name:"Opera"},y=Q.getFirstMatch(De,c)||Q.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/opr\/|opios/i],describe(c){let m={name:"Opera"},y=Q.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,c)||Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/SamsungBrowser/i],describe(c){let m={name:"Samsung Internet for Android"},y=Q.getFirstMatch(De,c)||Q.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/Whale/i],describe(c){let m={name:"NAVER Whale Browser"},y=Q.getFirstMatch(De,c)||Q.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/MZBrowser/i],describe(c){let m={name:"MZ Browser"},y=Q.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,c)||Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/focus/i],describe(c){let m={name:"Focus"},y=Q.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,c)||Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/swing/i],describe(c){let m={name:"Swing"},y=Q.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,c)||Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/coast/i],describe(c){let m={name:"Opera Coast"},y=Q.getFirstMatch(De,c)||Q.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe(c){let m={name:"Opera Touch"},y=Q.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,c)||Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/yabrowser/i],describe(c){let m={name:"Yandex Browser"},y=Q.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,c)||Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/ucbrowser/i],describe(c){let m={name:"UC Browser"},y=Q.getFirstMatch(De,c)||Q.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/Maxthon|mxios/i],describe(c){let m={name:"Maxthon"},y=Q.getFirstMatch(De,c)||Q.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/epiphany/i],describe(c){let m={name:"Epiphany"},y=Q.getFirstMatch(De,c)||Q.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/puffin/i],describe(c){let m={name:"Puffin"},y=Q.getFirstMatch(De,c)||Q.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/sleipnir/i],describe(c){let m={name:"Sleipnir"},y=Q.getFirstMatch(De,c)||Q.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/k-meleon/i],describe(c){let m={name:"K-Meleon"},y=Q.getFirstMatch(De,c)||Q.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/micromessenger/i],describe(c){let m={name:"WeChat"},y=Q.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,c)||Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/qqbrowser/i],describe(c){let m={name:/qqbrowserlite/i.test(c)?"QQ Browser Lite":"QQ Browser"},y=Q.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,c)||Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/msie|trident/i],describe(c){let m={name:"Internet Explorer"},y=Q.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/\sedg\//i],describe(c){let m={name:"Microsoft Edge"},y=Q.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/edg([ea]|ios)/i],describe(c){let m={name:"Microsoft Edge"},y=Q.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/vivaldi/i],describe(c){let m={name:"Vivaldi"},y=Q.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/seamonkey/i],describe(c){let m={name:"SeaMonkey"},y=Q.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/sailfish/i],describe(c){let m={name:"Sailfish"},y=Q.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,c);return y&&(m.version=y),m}},{test:[/silk/i],describe(c){let m={name:"Amazon Silk"},y=Q.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/phantom/i],describe(c){let m={name:"PhantomJS"},y=Q.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/slimerjs/i],describe(c){let m={name:"SlimerJS"},y=Q.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(c){let m={name:"BlackBerry"},y=Q.getFirstMatch(De,c)||Q.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/(web|hpw)[o0]s/i],describe(c){let m={name:"WebOS Browser"},y=Q.getFirstMatch(De,c)||Q.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/bada/i],describe(c){let m={name:"Bada"},y=Q.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/tizen/i],describe(c){let m={name:"Tizen"},y=Q.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,c)||Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/qupzilla/i],describe(c){let m={name:"QupZilla"},y=Q.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,c)||Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/firefox|iceweasel|fxios/i],describe(c){let m={name:"Firefox"},y=Q.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/electron/i],describe(c){let m={name:"Electron"},y=Q.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/MiuiBrowser/i],describe(c){let m={name:"Miui"},y=Q.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/chromium/i],describe(c){let m={name:"Chromium"},y=Q.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,c)||Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/chrome|crios|crmo/i],describe(c){let m={name:"Chrome"},y=Q.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/GSA/i],describe(c){let m={name:"Google Search"},y=Q.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test(c){let m=!c.test(/like android/i),y=c.test(/android/i);return m&&y},describe(c){let m={name:"Android Browser"},y=Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/playstation 4/i],describe(c){let m={name:"PlayStation 4"},y=Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/safari|applewebkit/i],describe(c){let m={name:"Safari"},y=Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/.*/i],describe(c){let m=c.search("\\(")!==-1?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:Q.getFirstMatch(m,c),version:Q.getSecondMatch(m,c)}}}];var Fs=[{test:[/Roku\/DVP/],describe(c){let m=Q.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,c);return{name:ti.Roku,version:m}}},{test:[/windows phone/i],describe(c){let m=Q.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,c);return{name:ti.WindowsPhone,version:m}}},{test:[/windows /i],describe(c){let m=Q.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,c),y=Q.getWindowsVersionName(m);return{name:ti.Windows,version:m,versionName:y}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe(c){let m={name:ti.iOS},y=Q.getSecondMatch(/(Version\/)(\d[\d.]+)/,c);return y&&(m.version=y),m}},{test:[/macintosh/i],describe(c){let m=Q.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,c).replace(/[_\s]/g,"."),y=Q.getMacOSVersionName(m),O={name:ti.MacOS,version:m};return y&&(O.versionName=y),O}},{test:[/(ipod|iphone|ipad)/i],describe(c){let m=Q.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,c).replace(/[_\s]/g,".");return{name:ti.iOS,version:m}}},{test(c){let m=!c.test(/like android/i),y=c.test(/android/i);return m&&y},describe(c){let m=Q.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,c),y=Q.getAndroidVersionName(m),O={name:ti.Android,version:m};return y&&(O.versionName=y),O}},{test:[/(web|hpw)[o0]s/i],describe(c){let m=Q.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,c),y={name:ti.WebOS};return m&&m.length&&(y.version=m),y}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(c){let m=Q.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,c)||Q.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,c)||Q.getFirstMatch(/\bbb(\d+)/i,c);return{name:ti.BlackBerry,version:m}}},{test:[/bada/i],describe(c){let m=Q.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,c);return{name:ti.Bada,version:m}}},{test:[/tizen/i],describe(c){let m=Q.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,c);return{name:ti.Tizen,version:m}}},{test:[/linux/i],describe:()=>({name:ti.Linux})},{test:[/CrOS/],describe:()=>({name:ti.ChromeOS})},{test:[/PlayStation 4/],describe(c){let m=Q.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,c);return{name:ti.PlayStation4,version:m}}}],Ar=[{test:[/googlebot/i],describe:()=>({type:"bot",vendor:"Google"})},{test:[/huawei/i],describe(c){let m=Q.getFirstMatch(/(can-l01)/i,c)&&"Nova",y={type:Fe.mobile,vendor:"Huawei"};return m&&(y.model=m),y}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:()=>({type:Fe.tablet,vendor:"Nexus"})},{test:[/ipad/i],describe:()=>({type:Fe.tablet,vendor:"Apple",model:"iPad"})},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:()=>({type:Fe.tablet,vendor:"Apple",model:"iPad"})},{test:[/kftt build/i],describe:()=>({type:Fe.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"})},{test:[/silk/i],describe:()=>({type:Fe.tablet,vendor:"Amazon"})},{test:[/tablet(?! pc)/i],describe:()=>({type:Fe.tablet})},{test(c){let m=c.test(/ipod|iphone/i),y=c.test(/like (ipod|iphone)/i);return m&&!y},describe(c){let m=Q.getFirstMatch(/(ipod|iphone)/i,c);return{type:Fe.mobile,vendor:"Apple",model:m}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:()=>({type:Fe.mobile,vendor:"Nexus"})},{test:[/[^-]mobi/i],describe:()=>({type:Fe.mobile})},{test:(c)=>c.getBrowserName(!0)==="blackberry",describe:()=>({type:Fe.mobile,vendor:"BlackBerry"})},{test:(c)=>c.getBrowserName(!0)==="bada",describe:()=>({type:Fe.mobile})},{test:(c)=>c.getBrowserName()==="windows phone",describe:()=>({type:Fe.mobile,vendor:"Microsoft"})},{test(c){let m=Number(String(c.getOSVersion()).split(".")[0]);return c.getOSName(!0)==="android"&&m>=3},describe:()=>({type:Fe.tablet})},{test:(c)=>c.getOSName(!0)==="android",describe:()=>({type:Fe.mobile})},{test:(c)=>c.getOSName(!0)==="macos",describe:()=>({type:Fe.desktop,vendor:"Apple"})},{test:(c)=>c.getOSName(!0)==="windows",describe:()=>({type:Fe.desktop})},{test:(c)=>c.getOSName(!0)==="linux",describe:()=>({type:Fe.desktop})},{test:(c)=>c.getOSName(!0)==="playstation 4",describe:()=>({type:Fe.tv})},{test:(c)=>c.getOSName(!0)==="roku",describe:()=>({type:Fe.tv})}],kn=[{test:(c)=>c.getBrowserName(!0)==="microsoft edge",describe(c){if(/\sedg\//i.test(c))return{name:Hi.Blink};let m=Q.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,c);return{name:Hi.EdgeHTML,version:m}}},{test:[/trident/i],describe(c){let m={name:Hi.Trident},y=Q.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:(c)=>c.test(/presto/i),describe(c){let m={name:Hi.Presto},y=Q.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test(c){let m=c.test(/gecko/i),y=c.test(/like gecko/i);return m&&!y},describe(c){let m={name:Hi.Gecko},y=Q.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/(apple)?webkit\/537\.36/i],describe:()=>({name:Hi.Blink})},{test:[/(apple)?webkit/i],describe(c){let m={name:Hi.WebKit},y=Q.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}}];class pi{constructor(c,m=!1){if(c==null||c==="")throw new Error("UserAgent parameter can't be empty");this._ua=c,this.parsedResult={},m!==!0&&this.parse()}getUA(){return this._ua}test(c){return c.test(this._ua)}parseBrowser(){this.parsedResult.browser={};let c=Q.find(Tr,(m)=>{if(typeof m.test=="function")return m.test(this);if(m.test instanceof Array)return m.test.some((y)=>this.test(y));throw new Error("Browser's test function is not valid")});return c&&(this.parsedResult.browser=c.describe(this.getUA())),this.parsedResult.browser}getBrowser(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()}getBrowserName(c){return c?String(this.getBrowser().name).toLowerCase()||"":this.getBrowser().name||""}getBrowserVersion(){return this.getBrowser().version}getOS(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()}parseOS(){this.parsedResult.os={};let c=Q.find(Fs,(m)=>{if(typeof m.test=="function")return m.test(this);if(m.test instanceof Array)return m.test.some((y)=>this.test(y));throw new Error("Browser's test function is not valid")});return c&&(this.parsedResult.os=c.describe(this.getUA())),this.parsedResult.os}getOSName(c){let{name:m}=this.getOS();return c?String(m).toLowerCase()||"":m||""}getOSVersion(){return this.getOS().version}getPlatform(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()}getPlatformType(c=!1){let{type:m}=this.getPlatform();return c?String(m).toLowerCase()||"":m||""}parsePlatform(){this.parsedResult.platform={};let c=Q.find(Ar,(m)=>{if(typeof m.test=="function")return m.test(this);if(m.test instanceof Array)return m.test.some((y)=>this.test(y));throw new Error("Browser's test function is not valid")});return c&&(this.parsedResult.platform=c.describe(this.getUA())),this.parsedResult.platform}getEngine(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()}getEngineName(c){return c?String(this.getEngine().name).toLowerCase()||"":this.getEngine().name||""}parseEngine(){this.parsedResult.engine={};let c=Q.find(kn,(m)=>{if(typeof m.test=="function")return m.test(this);if(m.test instanceof Array)return m.test.some((y)=>this.test(y));throw new Error("Browser's test function is not valid")});return c&&(this.parsedResult.engine=c.describe(this.getUA())),this.parsedResult.engine}parse(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this}getResult(){return Q.assign({},this.parsedResult)}satisfies(c){let m={},y=0,O={},N=0;if(Object.keys(c).forEach((U)=>{let B=c[U];typeof B=="string"?(O[U]=B,N+=1):typeof B=="object"&&(m[U]=B,y+=1)}),y>0){let U=Object.keys(m),B=Q.find(U,(ct)=>this.isOS(ct));if(B){let ct=this.satisfies(m[B]);if(ct!==void 0)return ct}let ut=Q.find(U,(ct)=>this.isPlatform(ct));if(ut){let ct=this.satisfies(m[ut]);if(ct!==void 0)return ct}}if(N>0){let U=Object.keys(O),B=Q.find(U,(ut)=>this.isBrowser(ut,!0));if(B!==void 0)return this.compareVersion(O[B])}}isBrowser(c,m=!1){let y=this.getBrowserName().toLowerCase(),O=c.toLowerCase(),N=Q.getBrowserTypeByAlias(O);return m&&N&&(O=N.toLowerCase()),O===y}compareVersion(c){let m=[0],y=c,O=!1,N=this.getBrowserVersion();if(typeof N=="string")return c[0]===">"||c[0]==="<"?(y=c.substr(1),c[1]==="="?(O=!0,y=c.substr(2)):m=[],c[0]===">"?m.push(1):m.push(-1)):c[0]==="="?y=c.substr(1):c[0]==="~"&&(O=!0,y=c.substr(1)),m.indexOf(Q.compareVersions(N,y,O))>-1}isOS(c){return this.getOSName(!0)===String(c).toLowerCase()}isPlatform(c){return this.getPlatformType(!0)===String(c).toLowerCase()}isEngine(c){return this.getEngineName(!0)===String(c).toLowerCase()}is(c,m=!1){return this.isBrowser(c,m)||this.isOS(c)||this.isPlatform(c)}some(c=[]){return c.some((m)=>this.is(m))}}/*!
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
* MIT License | (c) Denis Demchenko 2015-2019
|
|
14
|
-
*/let _r=class c{static getParser(m,y=!1){if(typeof m!="string")throw new Error("UserAgent should be a string");return new pi(m,y)}static parse(m){return new pi(m).getResult()}static get BROWSER_MAP(){return Zt}static get ENGINE_MAP(){return Hi}static get OS_MAP(){return ti}static get PLATFORMS_MAP(){return Fe}}.parse(window.navigator.userAgent),{platform:Yi,os:li,browser:Rn}=_r,nn=(c)=>c&&c.toLowerCase();var Jr={rnd:Math.random().toString(36).substr(2,32),os:nn(li.name+(li.versionName?" "+li.versionName:"")),device:nn(Yi.type),browser:nn(Rn.name),browser_version:(Rn&&Rn.version?Rn.version:"unknown").split(".").shift(),plugin_version:"3.28.2"};let Xn="https://fp-eu-w1-aai.flowplayer.com/in",Qr="POST",vi=["ad-requested","ad-request-error","ad-request-completed","ad-completed","ad-started","ad-error","ad-skipped"],xi=["event_type","ad_tag_id","media_id","player_id","site_id","sitegroup_id","rnd","os","device","browser","browser_version","plugin_version","player_version"],Dn=["vast_error","reason","request_load_time","ad_type","vast_ad_id"],Ni=at("ads/analytics"),ci=fe.of(),Cn=(...c)=>Object.assign({},...c);class zi{static of(c,m){return new zi(c,m)}static ensure_required_keys(c,m){return c.required_keys.filter((y)=>!(y in m))}static pluck_valid_keys(c,m){return((y,...O)=>Object.keys(y).filter((N)=>~O.indexOf(N)).reduce((N,U)=>Object.assign(N,{[U]:y[U]}),{}))(m,...c.valid_keys)}static mergeMetadata(c,m={}){return c.metadata=zi.pluck_valid_keys(c,Cn(c.metadata,m,{player_version:"3.28.2"})),c}constructor(c,m={}){this.emitter=c,this.metadata=Cn(Jr,m.metadata||{}),this.emitter=c,this.events=m.events||[],this.required_keys=m.required_keys||[],this.optional_keys=m.optional_keys||[],this.valid_keys=this.required_keys.slice(0).concat(this.optional_keys),Ni(this),this.wireup()}wireup(){this.events.forEach((c)=>{this.emitter.on(c,(m)=>{let y=m.detail,O=Cn(this.metadata,{event_type:c},y),N=zi.pluck_valid_keys(this,O),U=zi.ensure_required_keys(this,N);if(Ni(`Event[${c}]`,{payload:N,observation:y}),U.length)return Ni(`Analytics.validate_metadata() failed for
|
|
15
|
-
Event[${c}]
|
|
16
|
-
missing keys: ${U}`,N);fe.rpush(ci,[Xn,Qr,N])})})}destroy(){this.emitter=this.metadata=this.events=this.required_keys=this.optional_keys=this.valid_keys=void 0}}let Ne=at("ads/controller"),Xi={show_all_ads_on_seek:!1,timeout:5000,preload_advance:10};class In extends class c{constructor(m=document.createElement("div"),y=[]){this._bus=m,this._listeners=y}removeAllListeners(){this._listeners.length=0,this._bus=document.createElement("div")}emit(m,y){let O=new CustomEvent(m,{detail:y||{}});this._bus.dispatchEvent(O)}on(m,y){this._listeners.push([m,y]),this._bus.addEventListener(m,y,{passive:!0})}once(m,y){this._bus.addEventListener(m,y,{once:!0})}removeListener(m,y){this._bus.removeEventListener(m,y)}}{constructor(c={}){var m;super(),this.adapter=function(y,O){return y.adapter?new y.adapter(O):new Ge(O)}(c,this),this.opts=Object.assign(Object.assign({},Xi),c),this.analytics=(m=this,zi.of(m,{required_keys:xi,optional_keys:Dn,events:vi})),this._state=Li.of(),this._schedule=void 0,this._lastAd=void 0,this._macros=new de(c.parameters||{}),this.wireup(),this.content_processing_src=!1}reset(){return this.removeAllListeners(),this.wireup(),this.analytics&&this.analytics.wireup(),this._state.reset(),this.adapter.reset(),this}destroy(){this.removeAllListeners(),this.analytics&&this.analytics.destroy(),this.adapter&&this.adapter.destroy(),this.analytics=void 0,this.opts=void 0,this.adapter=void 0,this._state=void 0,this._schedule=void 0,this._lastAd=void 0,this._macros=void 0}stop(){this.adapter&&this.adapter.stop()}onContentNewSrc(){this._state.reset(),this.adapter.destroyManager(),this.adapter.contentComplete()}wireup(){let c=()=>{var y,O;this.adapter.onAdRequestEnd(),(y=this.videoTag)===null||y===void 0||y.setState("ad-paused",!1),(O=this.videoTag)===null||O===void 0||O.setState("ad-playing",!0),this._state.toggleState(ve.PLAYING,!0)};this.on("ad-play-requested",c),this.on("ad-started",c),this.on("ad-resumed",c);let m=(y)=>{var O,N;(y==null?void 0:y.type)!=="ad-request-error"&&this.adapter.onAdRequestEnd(),(O=this.videoTag)===null||O===void 0||O.setState("ad-paused",(y==null?void 0:y.type)==="ad-paused"),(N=this.videoTag)===null||N===void 0||N.setState("ad-playing",!1),this.adPlaying&&this._state.toggleState(ve.PLAYING,!1)};this.on("ad-break-completed",m),this.on("ad-teardown",m),this.on("ad-playback-error",m),this.on("ad-request-error",m),this.on("ad-paused",m),this.on("ad-skipped",m),this.on("ad-completed",m),this.on("ad-break-completed",()=>{requestAnimationFrame(()=>{this._state.toggleState(ve.BREAK_ACTIVE,!1)})}),this.on("ad-adapter-init-failed",()=>{console.error("Adapter init failed"),m(),this._state.toggleState(ve.FATAL_ERROR,!0)}),this.on("reload-ad-requested",async(y)=>{if(Ne("Ads.on(RELOAD_AD_REQUESTED)",y),this._schedule){if(m(),y)return this._schedule.reset(this._schedule.getAds());this._state.hasAny(ve.AD_AVAILABLE)&&(this._schedule.decrement(),this._state.toggleState(ve.AD_AVAILABLE,!1))}})}async initialize(c,m={},y){return Ne("Ads.initialize():",c,m,y),this._state.toggleState(ve.INITIALIZING,!0),Object.assign(this.opts,m),Array.isArray(c)&&this.setSchedule(c),await this.adapter.init(this.opts),this._macros=this._macros.fork(Object.assign({},m.parameters||{},{autoplay:m.autoplay,muted:m.muted})),this.adapter.isReady()&&await this.adapterInitialized(y),this}get videoTag(){return this.adapter.getVideoTag()}get adInfo(){return this.adapter.getAdInfo()}async setVideoTag(c){Ne("Ads.setVideoTag():",c),await this.adapter.setVideoTag(c),this.trigger("ad-videotag-attached",c),this.adapter.isReady()&&await this.adapterInitialized(),c.on("request/ad/pause",()=>this.adapter.pause()),c.on("request/ad/play",()=>this.adapter.resume()),c.on("request/ad/muteunmute",()=>c.toggleMute()),c.on("volumechange",()=>{this.adapter.volume(c.muted?0:c.volume==0?0.1:c.volume)}),c.on("src",()=>c.hasState("ad-playing")||c.hasState("ad-paused")?(this.stop(),this.adapter.isLinearAd()?(this.setIsContentProcessingNewSrc(!0),void this.once("ad-break-completed",()=>{setTimeout(()=>{this.setIsContentProcessingNewSrc(!1),this.onContentNewSrc()},0)})):this.onContentNewSrc()):this.onContentNewSrc())}waitForVideoTag(){return new Promise((c)=>{let m=this.adapter.getVideoTag();if(m)return c(m);this.on("ad-videotag-attached",(y)=>{this.once(ft,()=>c(y))})})}async adapterInitialized(c){Ne("Ads.adapterInitialized()"),this._state.toggleState(ve.INITIALIZING,!1),this._state.toggleState(ve.BREAK_ACTIVE,!!this.hasPreroll()),await this.setCurrentTime(0,c),this.checkIfBreakComplete(),this.adapter.isAdPod()||c&&!this.opts.autoplay||this.trigger("ad-teardown")}async fetchNextAd(c,m=0){var y,O;if(!this._schedule)return;if(!this.adapter.isReady())return;if(m>50)throw this._state.toggleState(ve.FATAL_ERROR,!0),this._state.toggleState(ve.FETCHING_AD,!1),new Error("Ads.fetchNextAd() :max_recursion_depth");let N=((y=this._schedule)===null||y===void 0?void 0:y.getNextAd())||((O=this._schedule)===null||O===void 0?void 0:O.getPostroll());if(!N||this.adapter.canDismissNonLinear()||c===-1)if(this._schedule.waitForLoad(c,N,this.opts.preload_ads))this._state.toggleState(ve.FETCHING_AD,!1);else if(N!==this._schedule.getPostroll()||(this._schedule.setPostrollActive(),c===-1))if(this._schedule.isDrained()||this._schedule.increment(),N){Ne("Ads.fetchNextAd",N),this._state.toggleState(ve.FETCHING_AD,!0);try{return await this.requestAd(N),this._state.toggleState(ve.AD_AVAILABLE,!0),void this._state.toggleState(ve.FETCHING_AD,!1)}catch(U){return Ne("Ads.fetchNextAd(err: %o, ad: %o)",U,N),this.setLastAd(N),N!==this._schedule.getPostroll()?await this.fetchNextAd(c,++m):void this._state.toggleState(ve.FETCHING_AD,!1)}}else this._state.toggleState(ve.FETCHING_AD,!1);else this._state.toggleState(ve.FETCHING_AD,!1)}skipAdsOnSeek(c){if(!this._schedule)return;let m=this._schedule.getNextAd();for(;m&&m.time<c;)this._schedule.increment(),m=this._schedule.getNextAd()}async setCurrentTime(c,m=!1,y=!1){if(!this._schedule)return;if(!this.adapter.isReady())return;if(this._state.hasAny(ve.FETCHING_AD))return;if(this._state.hasAny(ve.PLAYING)&&this.adapter.isLinearAd())return;let O=c===0&&this._schedule.getNextIndex()===0;try{if(y&&!this.opts.show_all_ads_on_seek&&this.skipAdsOnSeek(c),this._state.hasAny(ve.AD_AVAILABLE)||await this.fetchNextAd(c),!this._state.hasAny(ve.AD_AVAILABLE)||!this.shallPlayAd(c)||m)return;await this.playAd(),await this.setCurrentTime(c),this.checkIfBreakComplete()}catch(N){Ne("setCurrentTime: Error(from: setCurrentTime, message: %s)",N.message)}finally{O&&this.trigger("ad-preroll-finished")}}async playAd(){var c;if(!this._state.hasAny(ve.AD_AVAILABLE))return;this._state.toggleState(ve.AD_AVAILABLE,!1),this._state.toggleState(ve.BREAK_ACTIVE,!0);let m=(c=this._schedule)===null||c===void 0?void 0:c.getCurrentAd();try{await this.adapter.playAd()}catch(y){console.error("Ads.playAd: error",y)}finally{m&&this.setLastAd(m)}}checkIfBreakComplete(){if(!this._state.hasAny(ve.BREAK_ACTIVE))return Ne("Ads.checkIfBreakComplete(:bail, ad: %o)",this.getLastAd());Ne("Ads.checkIfBreakComplete(:run, ad: %o)",this.getLastAd()),this._state.toggleState(ve.BREAK_ACTIVE,!1),this.adapter.isAdPod()||this.trigger("ad-break-completed")}resetScheduleCounter(){this._schedule&&this._schedule.resetCounter()}setSchedule(c,m){if(m&&!isNaN(m)&&this._schedule&&this._schedule.updateContentDuration(m),this._schedule&&this._schedule.getNextIndex()>0)return this._schedule.setAds(c);this._schedule=new We(c,{preload_advance:this.opts.preload_advance,content_duration:m?0:m})}toJSON(){return this._schedule?this._schedule.toJSON():[]}trigger(c,m={}){var y;if(!this.adapter.getVideoTag())return;if(!this._state)return;if(c==="ad-break-completed"&&this._state.hasAny(ve.BREAK_ACTIVE)&&!this.adapter.isAdPod()&&!m.force)return Ne("skipping AD_BREAK_COMPLETE reason: %s pod=%s",this._state.toString(),this.adapter.isAdPod());if((O=m)===null||typeof O!="object"||gi(O)!==cn)return this.dispatch(c,m);var O;let N=Object.assign({},this.adapter.getOpts()||{},((y=this._schedule)===null||y===void 0?void 0:y.getCurrentAd())||{},{ad_type:this.ad_type},m);return this.dispatch(c,N)}dispatch(c,m){let y=this.adapter.getVideoTag();if(y){Ne(":dispatch",c,m),this.adapter.isAdPod()&&typeof m=="object"&&"time"in m&&m.ad_type!=="preroll"&&(m.time=this.adapter.getAdBreakTime());try{let O={event:"ads/"+c,detail:{outstream:m.outstream,ad_type:m.ad_type,ad_break_time:m.time,ad_remaining_seconds:m.remaining,ad_muted:m.muted,ad_duration_seconds:m.duration,ad_error_reason:m.reason,ad_vast_error:m.vast_error,ad_vast_error_type:m.vast_error_type,ad_request_load_type:m.request_load_time}};y.dispatchEvent(new CustomEvent("health:record",{detail:O}))}catch(O){Ne(":error",O)}lt(y,c,m),this.emit(c,m)}}get ad_type(){if(!this.videoTag)return;if(!this.adapter.isAdPod())return this._schedule&&this._schedule.getCurrentType();let c=this.adapter.getAdBreakTime();return c===-1?"postroll":this.videoTag.hasState("is-live")||c<1?"preroll":"midroll"}shouldRestartContent(){if(this.getIsContentProcessingNewSrc())return!1;if(this.adapter.isAdPod())return!0;let c=this.getLastAd();return!c||!c.outstream&&c.restart!==!1}async finished(c){if(this._schedule&&(Ne("Ads.finished"),!(this.adapter.isCustomPlaybackEnabled()&&this._state.hasAny(ve.PLAYING)&&this.adapter.isLinearAd()))){Ne("Ads.finished: trying to play postroll");try{if(!this._schedule.getPostroll())return Ne("Ads.finished: no postroll found"),await this.adapter.contentComplete();this._state.hasAny(ve.AD_AVAILABLE)||await this.fetchNextAd(-1),await this.playAd(),this.adapter.contentComplete()}catch(m){Ne("Ads.finished: postroll failed:",m)}finally{this.trigger("ad-postroll-finished"),this.checkIfBreakComplete(),typeof c=="function"&&c()}}}hasPreroll(){return this._schedule&&We.hasPreroll(this._schedule.getAds())}shallPlayAd(c){var m;return(!this.adapter||!this.adapter.isAdPod())&&(!(!this._state||this._state.hasAny(ve.FATAL_ERROR))&&!!((m=this._schedule)===null||m===void 0?void 0:m.shallPlayAd(c)))}setLastAd(c){return this._lastAd=c,this}setIsContentProcessingNewSrc(c){this.content_processing_src=c}getLastAd(){return this._lastAd}getIsContentProcessingNewSrc(){return this.content_processing_src}mergeMacros(c={}){return this._macros=this._macros.fork(Object.assign({},c)),this}get paused(){return this.adapter&&this.adapter.isPaused()}pause(){this.adapter&&this.adapter.pause()}resume(){this.adapter&&this.adapter.resume()}resize(c){this.adapter&&this.adapter.onResize(c)}async requestAd(c,m=0,y=this.opts.timeout){if(!this._state)return;Ne("Ads.requestAd(ad: %o)",{ad:c,timeout:y,idx:m});let O=await async function U(B){if(typeof B=="function")return[await Ai(B)];if(typeof B=="string")return[await Ai(B)];if(Array.isArray(B)){let ut=B;return await Promise.all(ut.map(Ai))}if(typeof B=="object"&&B&&B.adTag)return await U(B.adTag);throw new Error(`
|
|
17
|
-
unhandled ads type ${typeof B}:
|
|
18
|
-
${JSON.stringify(B)}
|
|
19
|
-
can be:
|
|
20
|
-
| Array<string>
|
|
21
|
-
| string
|
|
22
|
-
| function
|
|
23
|
-
| {adTag: Array<string>|string|function}
|
|
24
|
-
`)}(c);if(O[m]===void 0)return setTimeout(()=>this.trigger("ad-teardown"),0),Promise.reject(new Error("Ad failed, no fallbacks left"));if(!O[m])return await this.requestAd(O,m+1,y);this.trigger("ad-requested",c);let N=this._macros.compile(O[m],Oi(this.opts,this.adapter.getDimensions()));try{return void await this.adapter.initAd(N,y)}catch(U){return Ne(`Ads.requestAd(:fallback, idx: ${m}, length: ${O.length}, adTag: ${O[m]})
|
|
25
|
-
Error `,{adTag:O,err:U}),this.requestAd(O,m+1,y)}}resetSchedule(c){this._schedule&&this._schedule.reset(c)}get adPlaying(){return this._state&&this._state.hasAny(ve.PLAYING)}get adBreak(){return this._state&&this._state.hasAny(ve.BREAK_ACTIVE)}get adRequesting(){return this._state.hasAny(ve.FETCHING_AD)}get adLinear(){return this.adBreak&&this.adapter.isLinearAd()}}var Jn=new Blob([new Uint8Array([255,227,24,196,0,0,0,3,72,1,64,0,0,4,132,16,31,227,192,225,76,255,67,12,255,221,27,255,228,97,73,63,255,195,131,69,192,232,223,255,255,207,102,239,255,255,255,101,158,206,70,20,59,255,254,95,70,149,66,4,16,128,0,2,2,32,240,138,255,36,106,183,255,227,24,196,59,11,34,62,80,49,135,40,0,253,29,191,209,200,141,71,7,255,252,152,74,15,130,33,185,6,63,255,252,195,70,203,86,53,15,255,255,247,103,76,121,64,32,47,255,34,227,194,209,138,76,65,77,69,51,46,57,55,170,170,170,170,170,170,170,170,170,170,255,227,24,196,73,13,153,210,100,81,135,56,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170])],{type:"audio/mpeg"}),Pi=new Blob([new Uint8Array([0,0,0,28,102,116,121,112,105,115,111,109,0,0,2,0,105,115,111,109,105,115,111,50,109,112,52,49,0,0,0,8,102,114,101,101,0,0,2,239,109,100,97,116,33,16,5,32,164,27,255,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,167,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,33,16,5,32,164,27,255,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,167,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,2,194,109,111,111,118,0,0,0,108,109,118,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,232,0,0,0,47,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,1,236,116,114,97,107,0,0,0,92,116,107,104,100,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,101,100,116,115,0,0,0,28,101,108,115,116,0,0,0,0,0,0,0,1,0,0,0,47,0,0,0,0,0,1,0,0,0,0,1,100,109,100,105,97,0,0,0,32,109,100,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,68,0,0,8,0,85,196,0,0,0,0,0,45,104,100,108,114,0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0,0,0,1,15,109,105,110,102,0,0,0,16,115,109,104,100,0,0,0,0,0,0,0,0,0,0,0,36,100,105,110,102,0,0,0,28,100,114,101,102,0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1,0,0,0,211,115,116,98,108,0,0,0,103,115,116,115,100,0,0,0,0,0,0,0,1,0,0,0,87,109,112,52,97,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,16,0,0,0,0,172,68,0,0,0,0,0,51,101,115,100,115,0,0,0,0,3,128,128,128,34,0,2,0,4,128,128,128,20,64,21,0,0,0,0,1,244,0,0,1,243,249,5,128,128,128,2,18,16,6,128,128,128,1,2,0,0,0,24,115,116,116,115,0,0,0,0,0,0,0,1,0,0,0,2,0,0,4,0,0,0,0,28,115,116,115,99,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,28,115,116,115,122,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,115,0,0,1,116,0,0,0,20,115,116,99,111,0,0,0,0,0,0,0,1,0,0,0,44,0,0,0,98,117,100,116,97,0,0,0,90,109,101,116,97,0,0,0,0,0,0,0,33,104,100,108,114,0,0,0,0,0,0,0,0,109,100,105,114,97,112,112,108,0,0,0,0,0,0,0,0,0,0,0,0,45,105,108,115,116,0,0,0,37,169,116,111,111,0,0,0,29,100,97,116,97,0,0,0,1,0,0,0,0,76,97,118,102,53,54,46,52,48,46,49,48,49])],{type:"video/mp4"});function dn(c){return Object.assign({muted:!1,timeout:250,inline:!1},c)}function Ue(c,m){var{muted:y,timeout:O,inline:N}=c,U=m(),B=U.element,ut=U.source,ct=void 0,It=void 0,yt=void 0;return B.muted=y,y===!0&&B.setAttribute("muted","muted"),N===!0&&B.setAttribute("playsinline","playsinline"),B.src=ut,new Promise(function(Pt){ct=B.play(),It=setTimeout(function(){yt(!1,new Error("Timeout "+O+" ms has been reached"))},O),yt=function(Ot){var Et=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;B.remove(),B.srcObject=null,clearTimeout(It),Pt({result:Ot,error:Et})},ct!==void 0?ct.then(function(){return yt(!0)}).catch(function(Ot){return yt(!1,Ot)}):yt(!0)})}var On={audio:function(c){return Ue(c=dn(c),function(){return{element:document.createElement("audio"),source:URL.createObjectURL(Jn)}})},video:function(c){return Ue(c=dn(c),function(){return{element:document.createElement("video"),source:URL.createObjectURL(Pi)}})}};let Ji=void 0;async function Lr(c=!0){return Ji||(Ji=await On.video({timeout:500,muted:c}),Ji)}let xn=new Blob([new Uint8Array([0,0,0,28,102,116,121,112,105,115,111,109,0,0,2,0,105,115,111,109,105,115,111,50,109,112,52,49,0,0,0,8,102,114,101,101,0,0,2,239,109,100,97,116,33,16,5,32,164,27,255,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,167,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,33,16,5,32,164,27,255,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,167,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,2,194,109,111,111,118,0,0,0,108,109,118,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,232,0,0,0,47,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,1,236,116,114,97,107,0,0,0,92,116,107,104,100,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,101,100,116,115,0,0,0,28,101,108,115,116,0,0,0,0,0,0,0,1,0,0,0,47,0,0,0,0,0,1,0,0,0,0,1,100,109,100,105,97,0,0,0,32,109,100,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,68,0,0,8,0,85,196,0,0,0,0,0,45,104,100,108,114,0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0,0,0,1,15,109,105,110,102,0,0,0,16,115,109,104,100,0,0,0,0,0,0,0,0,0,0,0,36,100,105,110,102,0,0,0,28,100,114,101,102,0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1,0,0,0,211,115,116,98,108,0,0,0,103,115,116,115,100,0,0,0,0,0,0,0,1,0,0,0,87,109,112,52,97,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,16,0,0,0,0,172,68,0,0,0,0,0,51,101,115,100,115,0,0,0,0,3,128,128,128,34,0,2,0,4,128,128,128,20,64,21,0,0,0,0,1,244,0,0,1,243,249,5,128,128,128,2,18,16,6,128,128,128,1,2,0,0,0,24,115,116,116,115,0,0,0,0,0,0,0,1,0,0,0,2,0,0,4,0,0,0,0,28,115,116,115,99,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,28,115,116,115,122,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,115,0,0,1,116,0,0,0,20,115,116,99,111,0,0,0,0,0,0,0,1,0,0,0,44,0,0,0,98,117,100,116,97,0,0,0,90,109,101,116,97,0,0,0,0,0,0,0,33,104,100,108,114,0,0,0,0,0,0,0,0,109,100,105,114,97,112,112,108,0,0,0,0,0,0,0,0,0,0,0,0,45,105,108,115,116,0,0,0,37,169,116,111,111,0,0,0,29,100,97,116,97,0,0,0,1,0,0,0,0,76,97,118,102,53,54,46,52,48,46,49,48,49])],{type:"video/mp4"});var Zr=Object.freeze({__proto__:null,STICKY_CONTROLS:1,NO_FULLSCREEN:2,NO_AD_INDICATOR:4,AD_ATTRIBUTION:8,AD_CHOICES:16,REMAINING_TIME:32,VOLUME_BAR:64});let ts=["progress","duration","remaining"];class Qn extends HTMLElement{static get observedAttributes(){return ts}constructor(c){super(),this.player=c,this.className="fp-ad-ui",this.append(...c.createComponents("flowplayer-ad-controls","flowplayer-ad-countdown")),c.on("ad/set-ui-flags",(m)=>{let{ui_flags:y}=m.detail;if(y=y||0,(8&y)>0){let O=document.createElement("div");O.classList.add("ad-attribution"),O.textContent=this.player.i18n("ads.advertisement","Advertisement"),this.append(O)}})}}let Nn=at("fpads:native:outstream"),Zn={OUTSTREAM:"is-outstream",HIDDEN:"is-outstream-hidden",SHOWING:"is-outstream-visible",DONE:"is-outstream-done"};var Pn,Pe;(function(c){c.OUTSTREAM_VISIBLE="ads-outstream-visible",c.OUTSTREAM_VIEWPORT_UPDATE="ads-outstream-viewport-update",c.OUTSTREAM_TEARDOWN="ads-outstream-teardown",c.OUTSTREAM_ENDSCREEN_READY="ads-outstream-endscreen-ready"})(Pn||(Pn={})),function(c){c[c.None=0]="None",c[c.Booting=1]="Booting",c[c.Ready=2]="Ready",c[c.Disposed=3]="Disposed"}(Pe||(Pe={}));class di{constructor({ads:c,root:m,content:y,ima:O}){this.state=Pe.None,Nn("creating Outstream instance"),this.content=y,this.ads=c,this.root=m,this.ima=O,this.aspectRatio=y.videoHeight/y.videoWidth,this.dimensions=function(B){if(B.clientWidth>0||B.clientHeight)return Ft(B);let ut={height:B.style.height};H(B,"opacity",0),H(B,"display","absolute"),H(B,"display","inline-block"),H(B,"height","auto");let ct=Ft(B);return H(B,"height",ut.height),H(B,"opacity",1),ct}(this.root),this.adUi=new Qn(y),this.initialVolumeState={},m.classList.add(Zn.OUTSTREAM),m.append(this.adUi),this.hide(),this.ads.on("ad-pause-content",(B)=>{var ut;if(this.state==Pe.Disposed)return;let ct=!!((ut=B.detail)===null||ut===void 0?void 0:ut.linear);this.ads.resize(Object.assign(Object.assign({},this.dimensions),{linear:ct}))}),y.on("resize",(B)=>{if(this.state==Pe.Disposed)return;let ut=B.detail;ut&&(this.dimensions={width:ut.contentRect.width,height:ut.contentRect.height},this.ads.resize(this.dimensions))});let N=1,U=!0;y.on("intersectionchange",(B)=>{if(this.state==Pe.Disposed)return;let ut=B.detail;if(ut)switch(this.state){case Pe.Booting:return Nn(":boot skipping intersectionchange");case Pe.None:return this.state=Pe.Booting,this.begin_life_cycle();case Pe.Ready:if(N=ut.ratio,ut.ratio>=0.5&&this.ads.adPlaying)return;ut.ratio>=0.5&&U&&this.ads.resume(),ut.ratio<0.5&&this.ads.pause()}}),this.content.on("ad-paused",()=>U=N<0.5),this.setup(),setTimeout(()=>(this.state=Pe.Booting,this.begin_life_cycle()),0)}hide(){return this}restore_aspect_ratio(){return Nn(`Outstream.restore_aspect_ratio(${this.aspectRatio})`),this.content.setOpts({ratio:this.aspectRatio}),this}show(){this.root.classList.remove(di.CLASS.HIDDEN),this.root.classList.add(di.CLASS.SHOWING),this.content.setState("ad-linear",!0)}async begin_life_cycle(){var c;this.state=Pe.Ready;let{error:m,result:y}=await Lr(!1),{result:O}=await Lr(!0);this.content.emit("ad/set-ui-flags",{ui_flags:(c=this.content.opts.ads)===null||c===void 0?void 0:c.ui}),this.attach_ad_listeners(),this.initialVolumeState={can_autoplay:!(!y&&!O),muted:!y},Nn("Outstream.show() :autoplay >> sound="+y),m&&this.content&&!y&&(this.content.muted=!0,this.content.volume=0),await this.ads.setVideoTag(this.content),await mt({ads:this.ads,content:this.content,adContainer:this.adUi,ima:this.ima,state:{listening:!1},config:this.content.opts}),se({content:this.content,ads:this.ads}),this.state=Pe.Ready}attach_ad_listeners(){this.ads.once("ad-pause-content",()=>{this.show(),this.ads.adPlaying&&this.ads.pause()});let c=()=>{ce.forEach((y)=>this.ads.removeListener(y,c));let m=new CustomEvent(Pn.OUTSTREAM_TEARDOWN);Nn("Outstream(:teardown)",m),this.content.dispatchEvent(m)};ce.forEach((m)=>this.ads.once(m,c)),this.content.once(Pn.OUTSTREAM_TEARDOWN,(m)=>{setTimeout(()=>{if(m.defaultPrevented)return this.handle_endscreen();this.dispose()},0)})}handle_endscreen(){this.reset_ui(),this.ads.reset(),re({config:this.content.opts,ui:this.adUi,ads:this.ads,adContainer:this.adUi,ima:this.ima,content:this.content,root:this.content.root,state:{started:!0,listening:!1},initial:{muted:!0,volume:1}})}empty_src(){this.content.setSrc({type:"video/mp4",src:URL.createObjectURL(xn)})}setup(){this.root.classList.add(di.CLASS.OUTSTREAM),this.root.classList.add(di.CLASS.HIDDEN),this.content.setState("ad-linear",!1),this.empty_src()}reset_ui(){let c=this.root;c.classList.remove(di.CLASS.SHOWING),c.classList.remove(di.CLASS.OUTSTREAM)}dispose(){if(this.state==Pe.Disposed)return;let c=this.root,m=this.content;this.reset_ui(),c.classList.add(di.CLASS.OUTSTREAM),c.classList.add(di.CLASS.DONE),this.video=this.container=this.ads=0,this.state=Pe.Disposed,m.destroy(),c.innerHTML=""}}function Mn(c){return c&&typeof c.time=="number"}function Mi(c){return c&&typeof c.percentage=="number"&&typeof c.time!="number"}di.CLASS=Zn;let tr=at("ads/ima/sdk");var Ki,qe;async function wr(c,m){var y;let O=(y=window===null||window===void 0?void 0:window.google)===null||y===void 0?void 0:y.ima;if(m?O==null?void 0:O.dai:O)return void tr(":noop");let N=m?"https://imasdk.googleapis.com/js/sdkloader/ima3_dai.js":c._storage.getItem("ima/debug")?"https://imasdk.googleapis.com/js/sdkloader/ima3_debug.js":"https://imasdk.googleapis.com/js/sdkloader/ima3.js";try{return await async function(U){return new Promise((B,ut)=>{let ct=document.querySelector(`script[src='${U}']`);if(ct)return Qi(ct,B,ut);ct=document.createElement("script"),ct.setAttribute("state",Ki.LOADING),Qi(ct,B,ut),ct.src=U,document.head.appendChild(ct)})}(N),void tr(":loaded")}catch(U){tr(":error "+U.message,U)}}function Qi(c,m,y){let O=c.getAttribute("state");if(O&&[Ki.ERROR,Ki.LOADED].includes(O))return m(void 0);c.addEventListener("load",()=>{c.setAttribute("state",Ki.LOADED),m(void 0)},{once:!0}),["error","abort"].forEach((N)=>{c.addEventListener(N,()=>{c.setAttribute("state",Ki.ERROR),y("script failed to load")},{once:!0})})}(function(c){c.LOADING="loading",c.LOADED="loaded",c.ERROR="error"})(Ki||(Ki={})),function(c){c.LOADING="loading",c.LOADED="loaded",c.ERROR="error"}(qe||(qe={}));let Vi=at("ads/ima/sdk"),yi="https://cdn.jsdelivr.net/npm/prebid.js@latest/dist/not-for-prod/prebid.js";async function Fi(c){var m;let y=c._storage.getItem("prebid/debug")?yi:"https://cdn.jsdelivr.net/npm/prebid.js@latest/dist/not-for-prod/prebid.js";if((m=window===null||window===void 0?void 0:window.pbjs)===null||m===void 0?void 0:m.version)Vi(":noop");else if(!document.querySelector(`script[src='${y}']`))try{return await async function(O){return new Promise((N,U)=>{let B=document.querySelector(`script[src='${O}']`);B||(B=document.createElement("script")),B.setAttribute("state",qe.LOADING);let ut=B.getAttribute("state");if(ut&&[qe.ERROR,qe.LOADED].includes(ut))return N(void 0);B.addEventListener("load",()=>{B.setAttribute("state",qe.LOADED),N(void 0)},{once:!0}),["error","abort"].forEach((ct)=>{B.addEventListener(ct,()=>{B.setAttribute("state",qe.ERROR),U("script failed to load")},{once:!0})}),B.src=O,document.head.appendChild(B)})}(y),void Vi(":loaded")}catch(O){console.warn(":error / failed to load prebid.js / "+O.message,O)}}let me=window.pbjs=window.pbjs||{};me.que=me.que||[];class ei{constructor(c,m){this.player=c,this.config=m,this.player=c,this.bestOffer="",me.que.push(()=>{var y,O;let N=this.createAdUnit();me.addAdUnits(N);let U=((O=(y=m.ads)===null||y===void 0?void 0:y.prebid)===null||O===void 0?void 0:O.pbjs)||{};me.setConfig(Object.assign({enableSendAllBids:!0},U)),c.emit("ad/pbjs",{pbjs:me}),me.requestBids({bidsBackHandler:(B)=>{var ut,ct,It,yt,Pt;let Ot=(ut=B[this.prebidCode()])===null||ut===void 0?void 0:ut.bids;if(!Ot)return;if(Ot.length==0)return;let Et=Ot[0];if(Et&&Et.vastUrl)return this.bestOffer=Et.vastUrl;let Tt=me.adServers.dfp.buildVideoUrl({adUnit:N,params:{iu:(It=(ct=m.ads)===null||ct===void 0?void 0:ct.prebid)===null||It===void 0?void 0:It.iu,cust_params:(Pt=(yt=m.ads)===null||yt===void 0?void 0:yt.prebid)===null||Pt===void 0?void 0:Pt.custom_params,output:"vast"}});this.bestOffer=Tt}})})}prebidCode(){var c,m;return((m=(c=this.config.ads)===null||c===void 0?void 0:c.prebid)===null||m===void 0?void 0:m.code)||this.player.root.id}videoInfo(){var c,m;return((m=(c=this.config.ads)===null||c===void 0?void 0:c.prebid)===null||m===void 0?void 0:m.video)||{context:"instream",playerSize:[[this.player.videoWidth||640,this.player.videoHeight||480]]}}createAdUnit(){var c,m;return{code:this.prebidCode(),mediaTypes:{video:this.videoInfo()},bids:(m=(c=this.config.ads)===null||c===void 0?void 0:c.prebid)===null||m===void 0?void 0:m.bidders}}vastGenerator(){return async()=>this.bestOffer}}function Bi(c,m){var y,O;let N=(y=m.ads)===null||y===void 0?void 0:y.prebid;if(!N)return;if(((O=c.prebidController)===null||O===void 0?void 0:O.config)===m)return;c.prebidController||(c.prebidController=new ei(c,m),Fi(c));let U=c.prebidController;if(U){let B=N.breaks.map((ut)=>({adTag:U.vastGenerator(),time:ut}));c.setOpts({ima:{ads:B}})}}let kr=at("ads/index");async function er(c,m,y){var O;let N;if(y.on("config",()=>{var It,yt,Pt;N===void 0&&c.autoplay&&!y.currentSrc&&(Pt=c.autoplay,N=Pt===!0?C.ON:Pt===!1?C.OFF:Pt,c.autoplay=0),((It=c.ads)===null||It===void 0?void 0:It.prebid)&&Bi(y,c),Array.isArray((yt=c==null?void 0:c.ima)===null||yt===void 0?void 0:yt.ads)&&Qe(y)&&Object.assign(c,{hls:{native:!0}}),y.ads&&ct()}),y.once("loadstart",()=>{setTimeout(()=>{var It;if(!Array.isArray((It=c==null?void 0:c.ima)===null||It===void 0?void 0:It.ads)&&N!==void 0){if(c.autoplay=N,y.setState("is-autoplay",!0),!y.hasState(Mt))return y.once("viewenter",()=>y.togglePlay(!0));y.togglePlay(!0)}},0)}),await wr(y),!("google"in window))return console.warn("google.ima unavailable");let U=!1,B=y.ads=new In,ut=B.analytics;function ct(){let It=c.ima;if(!It||!Array.isArray(It.ads))return;let yt=c.duration||y.duration;if(It.ads=function(Pt,Ot){return Array.isArray(Pt)?Pt.filter((Et)=>Mn(Et)||Mi(Et)).reduce((Et,Tt)=>{if(Mn(Tt))return Et.push(Tt),Et;if(Tt.lazy)return Et.push(Tt),Et;if(Mi(Tt)){let ie=Object.assign({},Tt),_e=Tt.percentage?Tt.percentage*Ot:0;return isNaN(_e)||(ie.time=_e<0||_e===Ot?-1:_e),Et.push(ie),Et}return Et},[]):(console.warn("AdSchedule was not an Array"),[])}(It.ads,yt),B.setSchedule(It.ads,yt),c.metadata&&zi.mergeMetadata(ut,c.metadata),c.metadata&&B.mergeMacros(c.metadata),c.metadata&&It.parameters&&(It.parameters=Object.assign(Object.assign({},It.parameters),c.metadata)),zi.mergeMetadata(ut,{muted:c.muted||!1,autoplay:c.autoplay||!1}),!U){if(U=!0,c.lang&&!It.Locale&&(It.Locale=c.lang),We.isOutstream(It.ads))return kr("is outstream, returning"),new di({root:m,content:y,ads:B,ima:It});dt({config:Object.assign(Object.assign({},c),{autoplay:N}),root:m,content:y,ads:B,ima:It})}}B.resize(Ft(m)),B.on("ad-postroll-finished",()=>{B.adapter.isCustomPlaybackEnabled()&&B.once("ad-break-completed",()=>{y.src=y.original_src,y.once("canplay",()=>{y.togglePlay(!1)}),y.webkitExitFullscreen()})}),y.on("reap",function(){B&&B.destroy()}),((O=c.ads)===null||O===void 0?void 0:O.prebid)&&Bi(y,c),ct()}class Rr extends HTMLElement{constructor(c){super(),this.player=c,this.classList.add("fp-ad-controls"),this.append(this.adRemainingTime(),gt(this.player,"flowplayer-ad-indicator"),this.playbackButtons(),this.volumeBtn(),gt(this.player,"flowplayer-volume-bar"),...this.fullscreenIcons(),this.adChoices()),c.on("ad/set-ui-flags",this.applyStyleFlags.bind(this))}fullscreenIcons(){return this.player.createComponents("flowplayer-fullscreen-enter-icon","flowplayer-fullscreen-exit-icon").map((c)=>(c.onclick=()=>this.player.toggleFullScreen(),c))}volumeBtn(){let c=gt(this.player,"flowplayer-volume-icon");return c.onclick=()=>this.player.emit("request/ad/muteunmute"),c}playbackButtons(){let c=document.createElement("div");c.classList.add("ad-playback-controls");let m=gt(this.player,"flowplayer-small-play-icon"),y=gt(this.player,"flowplayer-small-pause-icon");return m.addEventListener("click",()=>{this.player.emit("request/ad/play"),setTimeout(function(){y.focus&&y.focus()},100)}),y.addEventListener("click",()=>{this.player.emit("request/ad/pause"),setTimeout(function(){m.focus&&m.focus()},100)}),c.append(m,y),c}adChoices(){let c=document.createElement("div");return c.classList.add("fp-ad-choices"),c.textContent=this.player.i18n("ads.adchoices","AdChoices"),c.addEventListener("click",(m)=>{m.preventDefault(),this.player.togglePlay(!1),window.open("https://adssettings.google.com","_blank")}),c}adRemainingTime(){let c=document.createElement("div");return c.classList.add("fp-ad-remaining","fp-color-text"),this.prepend(c),this.player.on("ad-progress",(m)=>{let y=m.detail.remaining;c.textContent=function(O){if(isNaN(O)||O>=Number.MAX_SAFE_INTEGER)return"";let N=O<0?"-":"";O=Math.round(Math.abs(O));let U=Math.floor(O/3600),B=Math.floor(O/60);return O-=60*B,U>=1?(B-=60*U,N+U+":"+W(B)+":"+W(O)):N+W(B)+":"+W(O)}(parseFloat(y+""))}),c}applyStyleFlags(c){var m;let y=(m=c.detail.ui_flags)!==null&&m!==void 0?m:0;this.classList.toggle("is-ad-controls-sticky",(1&y)>0),this.classList.toggle("no-indicator",(4&y)>0),this.classList.toggle("is-ad-choices",(16&y)>0),this.classList.toggle("no-volume-bar",(64&y)==0),this.classList.toggle("is-ad-remaining",(32&y)>0),this.classList.toggle("no-fullscreen",(2&y)>0)}}class ir extends HTMLElement{static get observedAttributes(){return["remaining"]}constructor(c){super(),this.player=c,this.className="fp-ad-countdown",c.on("ad-progress",(m)=>{let{duration:y,remaining:O}=m.detail;this.setAttribute("duration",y+""),this.setAttribute("remaining",O+"")}),c.on("ad-started",(m)=>{m.detail.linear&&(this.style.setProperty("--ad-percent-previous","0"),this.style.setProperty("--ad-percent-complete","0"))}),this.addEventListener("animationend",()=>{let m=this.style.getPropertyValue("--ad-percent-complete")||"0";this.style.setProperty("--ad-percent-previous",m)})}attributeChangedCallback(c,m,y){switch(c){case"remaining":return this.onRemaining(y)}}onRemaining(c){let m=parseFloat(this.getAttribute("duration")||"0");c||(c=m+"");let y=parseFloat(c),O=this.style.getPropertyValue("--ad-percent-complete")||"0";this.style.setProperty("--ad-percent-previous",O),this.classList.remove("go");let N=((m-y)/m*100).toFixed(3);requestAnimationFrame(()=>{this.style.setProperty("--ad-percent-complete",N),this.classList.add("go")})}}class Dr extends HTMLElement{static get observedAttributes(){return["position","totals"]}constructor(c){super(),this.player=c,this.render(),c.on("ad-started",(m)=>{let{position:y,totals:O}=m.detail.ad;this.setAttribute("position",y+""),this.setAttribute("totals",O+"")})}attributeChangedCallback(c,m){switch(c){case"position":case"totals":return this.updateText()}}updateText(){if(!this.element)return;let c=parseFloat(this.getAttribute("position")||"0"),m=parseFloat(this.getAttribute("totals")||"0");this.element.textContent=`${this.player.i18n("ads.indicator","ADS")} ${c} / ${m}`}render(){this.element=document.createElement("div"),this.element.classList.add("ad-indicator","fp-color-text"),this.element.textContent=this.player.i18n("ads.indicator","ADS"),this.append(this.element)}}var Ui,nr=Object.freeze({__proto__:null,SINGlE_INLINE_LINEAR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dlinear&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_SKIPPABLE_INLINE:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_preroll_skippable&sz=640x480&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_REDIRECT_LINEAR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dredirectlinear&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_REDIRECT_ERROR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dredirecterror&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_REDIRECT_BROKEN:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dredirecterror&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&nofb=1&correlator=",SINGLE_VPAID_20_LINEAR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dlinearvpaid2js&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_VPAID_20_NON_LINEAR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dnonlinearvpaid2js&ciu_szs=728x90%2C300x250&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_NON_LINEAR_INLINE:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/nonlinear_ad_samples&sz=480x70&cust_params=sample_ct%3Dnonlinear&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_SESSION_AD_RULE_PREROLL:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sar%3Da0f2&ciu_szs=300x250&ad_rule=1&gdfp_req=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_PREROLL:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sample_ar%3Dpreonly&ciu_szs=300x250%2C728x90&gdfp_req=1&ad_rule=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_PREROLL_BUMPER:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sample_ar%3Dpreonlybumper&ciu_szs=300x250&gdfp_req=1&ad_rule=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_POSTROLL:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sample_ar%3Dpostonly&ciu_szs=300x250&gdfp_req=1&ad_rule=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_POSTROLL_BUMPER:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sample_ar%3Dpostonlybumper&ciu_szs=300x250&gdfp_req=1&ad_rule=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator="});let{samsung_tv:rr}=A(),Fn=((Ui=class c{constructor(m){this.umd=m,Rt(m,Jt,Qn),Rt(m,"flowplayer-ad-controls",Rr),Rt(m,"flowplayer-ad-countdown",ir),Rt(m,"flowplayer-ad-indicator",Dr)}init(m,y,O){if(ne.from_token(m.token||"").is_granted(ne.permissions.ADS)&&!rr)return er(m,y,O)}}).pluginName="ads",Ui.events=Ct,Ui.ui=Zr,Ui.tags=nr,Ui);return function(c,m){if(typeof io=="object"&&typeof no!="undefined")return m;if(document.currentScript===null)return m;"flowplayer"in c||(c.flowplayer={extensions:[]});let y=c.flowplayer;return typeof y=="function"?(y(m),m):(Array.isArray(y.extensions)||(y.extensions=[]),~y.extensions.indexOf(m)||y.extensions.push(m),m)}(window,Fn)})});var Wc=gn((ro,so)=>{(function(o,g){typeof ro=="object"&&typeof so!="undefined"?so.exports=g():typeof define=="function"&&define.amd?define(g):((o=typeof globalThis!="undefined"?globalThis:o||self).flowplayer=o.flowplayer||{},o.flowplayer.asel=g())})(ro,function(){var S=Object.freeze({__proto__:null,SET:"audio:set",SWITCH:"audio:update",TRACKS:"audio:tracks"});function R(C,W,G){let J=function(st){return Array.isArray(st)?st.slice(0):st.split(".")}(W);for(;J.length;){if(C==null)return G;let st=J.shift();if(typeof st!="string")return G;C=C[st]}return C==null?G:C}let L=navigator.languages||[navigator.language];function P(C,W){C.emit("audio:set",W),W.autoselect&&C._storage.setItem("@flowplayer/audio/track",W.lang)}function F(C){return C.toLowerCase()}function z(C,W,G){W=W.slice(0);let J={},st=C.getItem("@flowplayer/audio/track"),pt=function(){try{return L.reduce((gt,Rt)=>~Rt.indexOf("-")?gt.concat(Rt,Rt.split("-")[0]):gt.concat(Rt),[])}catch(gt){return[]}}().map(F),at=-1;if(typeof G=="number")return G;for(typeof G=="string"&&(G=G.toLowerCase(),~pt.indexOf(G)&&pt.splice(pt.indexOf(G),1),pt.unshift(F(G))),Array.isArray(G)&&(pt=G.map(F));W.length;){++at;let gt=W.shift();if(gt==null?void 0:gt.autoselect){if(st==gt.lang)return console.debug("restoring lang from previous session: ",st),at;if(gt.default&&(J.fallback=[at,gt]),gt.lang&&~pt.indexOf(gt.lang.toLowerCase())){let Rt=pt.indexOf(gt.lang);if(Rt<R(J,"by_lang.2",1/0)&&(J.by_lang=[at,gt,Rt]),Rt===0)break}}}return R(J,"by_lang.0",R(J,"fallback.0",void 0))}let j=(C,W)=>new(((G,J)=>{let st=G.get(J);if(!st)throw new Error(`no flowplayer component with the name ${J} exists`);let pt=window.customElements.get(J);if(!pt)throw new Error(`no default flowplayer component with the name ${J} exists`);let at=window.customElements.get(st);return typeof at!="function"?pt:at})(C._customElements,W))(C);class Nt extends HTMLElement{constructor(C){super(),this.player=C}}let ne="fp-on",A="fp-invis";class Ft extends Nt{constructor(C){super(C),this.player=C,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=ft(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener("click",(W)=>{if(W.defaultPrevented)return;W.preventDefault();let G=this.menuContainer.open;G||(H(),document.active_menu=this.menuContainer),this.menuContainer.open=!G,C.root.classList.toggle("has-menu-opened",!G),this.summaryEle.setAttribute("aria-expanded",G?"false":"true")}),this.addEventListener("focusin",(W)=>{let G=W.target;G instanceof HTMLLIElement&&G.setAttribute("aria-selected","true")}),this.addEventListener("focusout",(W)=>{let G=W.target;G instanceof HTMLLIElement&&G.setAttribute("aria-selected","false")}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(C){if(this.className=C.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=C.id||ft()),this.summaryEle.setAttribute("aria-label",C.menuTitle||"Menu"),C.summaryTitle&&(this.summaryEle.textContent=C.summaryTitle),C.summaryIcon){let W=j(this.player,C.summaryIcon);W.setAttribute("tabindex",""),this.summaryEle.append(W)}C.menuTitle&&(this.menuTitle.textContent=C.menuTitle),this.menu.classList.toggle("fp-icons",!!C.icons),this.addEventListener(C.options_event,(W)=>{this.render(W.data)}),C.item_selected_event&&this.addEventListener(C.item_selected_event,(W)=>{W.data!==void 0&&this.select_item(W.data.selected_index)})}render(C){this.olEle&&(this.olEle.innerHTML="",C&&C.forEach(this.menuOption,this),this.toggle_visibility(!(C==null?void 0:C.length)))}menuOption(C,W){let G=document.createElement("li");G.setAttribute("role","menuitem"),G.setAttribute("aria-selected","false"),G.setAttribute("tabindex","0"),C.icon&&G.append(C.icon);let J=document.createElement("span");J.textContent=C.text,G.append(J),G.addEventListener("click",()=>{this.select_item(W),typeof C.onclick=="function"&&C.onclick()}),this.olEle.appendChild(G),C.selected&&this.select_item(W)}select_item(C){this.options.forEach((W,G)=>{W.classList.toggle(ne,G===C)})}unselect_item(){this.options.forEach((C)=>{C.classList.remove(ne)})}toggle_visibility(C){this.classList.toggle(A,C),this.menu.style.setProperty("display",C?"none":"flex")}}function H(){Array.from(document.querySelectorAll(".fp-engine")).forEach((C)=>{var W;let G=C.root.querySelector("details[open].fp-menu-container");G&&(G.open=!1,(W=G.querySelector("summary"))===null||W===void 0||W.removeAttribute("aria-expanded"),C.root.classList.toggle("has-menu-opened",!1))})}function ft(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function Ct(C,W,G){let J=function(st,pt){let at=new CustomEvent(st,{detail:pt,cancelable:!0});return pt&&Object.defineProperty(at,"data",{get:()=>pt}),at}(W,G);return C.dispatchEvent(J),C}document.addEventListener("click",function(C){this.active_menu&&!C.composedPath().includes(this.active_menu)&&(H(),this.active_menu=void 0)}),function(){let C=!1;try{let W=Object.defineProperty({},"passive",{get:function(){C=!0}});window.addEventListener("testPassive",null,W),window.removeEventListener("testPassive",null,W)}catch(W){}}();var Mt;let lt=((Mt=class C{constructor(W){((G,J,st)=>{window.customElements.get(J)||window.customElements.define(J,st),G.customElements.get(J)||G.customElements.set(J,J)})(W,"flowplayer-audio-menu",Ft)}init(W,G,J){if(W.asel===!1)return;let st=[],pt=j(J,"flowplayer-audio-menu");pt instanceof Ft&&pt.setMenuAttrs({summaryTitle:J.i18n("audio.button_txt"),menuTitle:J.i18n("audio.menu_title"),class:"fp-asel",options_event:Mt.events.TRACKS,item_selected_event:Mt.events.SWITCH});let at=function(gt){let Rt={tracks:[],events:S};return Object.assign(Rt,{set:function(Jt){if(!(typeof Jt!="number"||Jt<0||Jt>Rt.tracks.length-1))return gt.emit("audio:set",Rt.tracks[Jt]),Rt},get:function(Jt){if(typeof Jt=="number")return Rt.tracks[Jt]}}),Rt}(J);J.asel=at,J.on("mount",function(){var gt;(gt=function(Rt,Jt){let xt=Rt._customElements.get(Jt);return xt&&Rt.root.querySelector(xt)||void 0}(J,J.hasState("is-tv")?"flowplayer-tv-menu":"flowplayer-control"))===null||gt===void 0||gt.append(pt)}),J.on("src",()=>{at.tracks=[],at.active_track=void 0,Ct(pt,Mt.events.TRACKS,[])}),J.on("audio:tracks",function(gt){if(!Array.isArray(gt.data)||gt.data.length===st.length&>.data.every((xt,ce)=>xt===st[ce]))return;st=gt.data,at.tracks=st.slice();let Rt=R(W,"asel.sort");typeof Rt=="function"&&at.tracks.sort(Rt),Ct(pt,Mt.events.TRACKS,Array.from({length:at.tracks.length}).map((xt,ce)=>{let dt=at.tracks[ce];return{text:dt.name||dt.label||dt.lang,onclick:P.bind(0,J,dt)}})),at.active_track=at.tracks.find((xt)=>xt.enabled),at.active_track&&Ct(pt,Mt.events.SWITCH,{selected_index:at.tracks.indexOf(at.active_track)});let Jt=z(J._storage,at.tracks,R(W,"asel.default_lang",!1));return pt instanceof Ft&&pt.toggle_visibility(gt.data.length<2),Jt!==void 0?at.set(Jt):void 0}),J.on("audio:update",function(gt){var Rt;(Rt=J.asel)===null||Rt===void 0||Rt.tracks.find((Jt,xt)=>{var ce,dt;Jt!==gt.detail&&Jt.id!==((dt=(ce=gt.detail)===null||ce===void 0?void 0:ce.id)!==null&&dt!==void 0?dt:-1)||(J.asel.active_track=Jt,Ct(pt,Mt.events.SWITCH,{selected_index:xt}))})}),J.audioTracks&&(J.audioTracks.addEventListener("addtrack",function(){J.hls||J.emit("audio:tracks",Array.from(J.audioTracks))}),J.on("audio:set",function(gt){if(J.hls)return;let Rt=gt.detail;at.active_track=Rt,Rt&&Array.from(J.audioTracks).forEach((Jt)=>{Jt.enabled=Rt.id===Jt.id,Jt.enabled&&Ct(pt,Mt.events.SWITCH,{selected_index:at.tracks.indexOf(Rt)})})}))}}).pluginName="asel",Mt.events=S,Mt);return function(C,W){if(typeof ro=="object"&&typeof so!="undefined")return W;if(document.currentScript===null)return W;"flowplayer"in C||(C.flowplayer={extensions:[]});let G=C.flowplayer;return typeof G=="function"?(G(W),W):(Array.isArray(G.extensions)||(G.extensions=[]),~G.extensions.indexOf(W)||G.extensions.push(W),W)}(window,lt)})});var jc=gn((ao,oo)=>{(function(o,g){typeof ao=="object"&&typeof oo!="undefined"?oo.exports=g():typeof define=="function"&&define.amd?define(g):((o=typeof globalThis!="undefined"?globalThis:o||self).flowplayer=o.flowplayer||{},o.flowplayer.consent=g())})(ao,function(){class o{constructor(P,F){this.implementation=P,F&&F.keys().forEach((z)=>{typeof F.implementation[z]=="string"&&this.implementation.setItem(z,F.implementation[z])})}keys(){var P;let F=[];for(var z=0;z<this.implementation.length;z++)((P=this.implementation.key(z))===null||P===void 0?void 0:P.startsWith("flowplayer/"))&&F.push(this.implementation.key(z));return F}removeItem(P){try{this.implementation.removeItem("flowplayer/"+P)}catch(F){}}getItem(P){try{return this.implementation.getItem("flowplayer/"+P)}catch(F){return null}}setItem(P,F){try{this.implementation.setItem("flowplayer/"+P,F)}catch(z){}}clear(){try{this.keys().forEach((P)=>this.implementation.removeItem(P))}catch(P){}}get length(){try{return this.keys().length}catch(P){return 0}}key(P){try{return this.implementation.key(P)}catch(F){return null}}}var g,S,R;(function(P){P[P.ALL=1]="ALL",P[P.NONE=2]="NONE"})(g||(g={})),function(P){P[P.ALL=8]="ALL",P[P.NONE=16]="NONE"}(S||(S={}));let L=((R=class P{constructor(F,z){let j=z._storage.getItem("consent"),Nt=this.current_value=j&&!isNaN(Number(j))?Number(z._storage.getItem("consent")):g.NONE|S.NONE;this.player=z,this.adapt(Object.assign({consent:Nt},z.opts))}init(F,z,j){this.adapt(F),j.on("config",(ne)=>{this.adapt(ne.detail)});let Nt=(ne)=>{j.setOpts({consent:ne.detail})};document.addEventListener("flowplayer/consent",Nt),j.on("reap",()=>document.removeEventListener("flowplayer/consent",Nt))}adapt(F){let z=F.consent===void 0?this.current_value:F.consent;S.ALL&z?this.setStorage(S.ALL):S.NONE&z&&this.setStorage(S.NONE),g.ALL&z?this.setTracking(g.ALL):g.NONE&z&&this.setTracking(g.NONE),this.player._storage.setItem("consent",z.toString())}setStorage(F){try{let z=this.player._storage;switch(this.player.setState("consent-no-storage",F===S.NONE),F){case S.ALL:this.player._storage=new o(localStorage,this.player._storage);break;case S.NONE:this.player._storage=new o(sessionStorage,z),z.clear()}}catch(z){console.debug(z)}}setTracking(F){var z,j;switch(this.player.setState("consent-no-tracking",F===g.NONE),F){case g.ALL:(z=this.player.health)===null||z===void 0||z.toggle(!0);break;case g.NONE:(j=this.player.health)===null||j===void 0||j.toggle(!1)}}}).pluginName="consent",R.tracking=g,R.storage=S,R);return function(P,F){if(typeof ao=="object"&&typeof oo!="undefined")return F;if(document.currentScript===null)return F;"flowplayer"in P||(P.flowplayer={extensions:[]});let z=P.flowplayer;return typeof z=="function"?(z(F),F):(Array.isArray(z.extensions)||(z.extensions=[]),~z.extensions.indexOf(F)||z.extensions.push(F),F)}(window,L)})});var qc=gn((lo,co)=>{(function(o,g){typeof lo=="object"&&typeof co!="undefined"?co.exports=g():typeof define=="function"&&define.amd?define(g):((o=typeof globalThis!="undefined"?globalThis:o||self).flowplayer=o.flowplayer||{},o.flowplayer.hls=g())})(lo,function(){function o(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var g={exports:{}};(function(t,e){var i,n,r,s,a;i=/^(?=((?:[a-zA-Z0-9+\-.]+:)?))\1(?=((?:\/\/[^\/?#]*)?))\2(?=((?:(?:[^?#\/]*\/)*[^;?#\/]*)?))\3((?:;[^?#]*)?)(\?[^#]*)?(#[^]*)?$/,n=/^(?=([^\/?#]*))\1([^]*)$/,r=/(?:\/|^)\.(?=\/)/g,s=/(?:\/|^)\.\.\/(?!\.\.\/)[^\/]*(?=\/)/g,a={buildAbsoluteURL:function(l,d,u){if(u=u||{},l=l.trim(),!(d=d.trim())){if(!u.alwaysNormalize)return l;var f=a.parseURL(l);if(!f)throw new Error("Error trying to parse base URL.");return f.path=a.normalizePath(f.path),a.buildURLFromParts(f)}var E=a.parseURL(d);if(!E)throw new Error("Error trying to parse relative URL.");if(E.scheme)return u.alwaysNormalize?(E.path=a.normalizePath(E.path),a.buildURLFromParts(E)):d;var b=a.parseURL(l);if(!b)throw new Error("Error trying to parse base URL.");if(!b.netLoc&&b.path&&b.path[0]!=="/"){var T=n.exec(b.path);b.netLoc=T[1],b.path=T[2]}b.netLoc&&!b.path&&(b.path="/");var _={scheme:b.scheme,netLoc:E.netLoc,path:null,params:E.params,query:E.query,fragment:E.fragment};if(!E.netLoc&&(_.netLoc=b.netLoc,E.path[0]!=="/"))if(E.path){var D=b.path,w=D.substring(0,D.lastIndexOf("/")+1)+E.path;_.path=a.normalizePath(w)}else _.path=b.path,E.params||(_.params=b.params,E.query||(_.query=b.query));return _.path===null&&(_.path=u.alwaysNormalize?a.normalizePath(E.path):E.path),a.buildURLFromParts(_)},parseURL:function(l){var d=i.exec(l);return d?{scheme:d[1]||"",netLoc:d[2]||"",path:d[3]||"",params:d[4]||"",query:d[5]||"",fragment:d[6]||""}:null},normalizePath:function(l){for(l=l.split("").reverse().join("").replace(r,"");l.length!==(l=l.replace(s,"")).length;);return l.split("").reverse().join("")},buildURLFromParts:function(l){return l.scheme+l.netLoc+l.path+l.params+l.query+l.fragment}},t.exports=a})(g);var S=g.exports;function R(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),i.push.apply(i,n)}return i}function L(t){for(var e=1;e<arguments.length;e++){var i=arguments[e]!=null?arguments[e]:{};e%2?R(Object(i),!0).forEach(function(n){F(t,n,i[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):R(Object(i)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(i,n))})}return t}function P(t){var e=function(i,n){if(typeof i!="object"||!i)return i;var r=i[Symbol.toPrimitive];if(r!==void 0){var s=r.call(i,n||"default");if(typeof s!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(i)}(t,"string");return typeof e=="symbol"?e:String(e)}function F(t,e,i){return(e=P(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function z(){return(z=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var i=arguments[e];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t}).apply(this,arguments)}let j=Number.isFinite||function(t){return typeof t=="number"&&isFinite(t)},Nt=Number.isSafeInteger||function(t){return typeof t=="number"&&Math.abs(t)<=ne},ne=Number.MAX_SAFE_INTEGER||9007199254740991,A=function(t){return t.MEDIA_ATTACHING="hlsMediaAttaching",t.MEDIA_ATTACHED="hlsMediaAttached",t.MEDIA_DETACHING="hlsMediaDetaching",t.MEDIA_DETACHED="hlsMediaDetached",t.BUFFER_RESET="hlsBufferReset",t.BUFFER_CODECS="hlsBufferCodecs",t.BUFFER_CREATED="hlsBufferCreated",t.BUFFER_APPENDING="hlsBufferAppending",t.BUFFER_APPENDED="hlsBufferAppended",t.BUFFER_EOS="hlsBufferEos",t.BUFFER_FLUSHING="hlsBufferFlushing",t.BUFFER_FLUSHED="hlsBufferFlushed",t.MANIFEST_LOADING="hlsManifestLoading",t.MANIFEST_LOADED="hlsManifestLoaded",t.MANIFEST_PARSED="hlsManifestParsed",t.LEVEL_SWITCHING="hlsLevelSwitching",t.LEVEL_SWITCHED="hlsLevelSwitched",t.LEVEL_LOADING="hlsLevelLoading",t.LEVEL_LOADED="hlsLevelLoaded",t.LEVEL_UPDATED="hlsLevelUpdated",t.LEVEL_PTS_UPDATED="hlsLevelPtsUpdated",t.LEVELS_UPDATED="hlsLevelsUpdated",t.AUDIO_TRACKS_UPDATED="hlsAudioTracksUpdated",t.AUDIO_TRACK_SWITCHING="hlsAudioTrackSwitching",t.AUDIO_TRACK_SWITCHED="hlsAudioTrackSwitched",t.AUDIO_TRACK_LOADING="hlsAudioTrackLoading",t.AUDIO_TRACK_LOADED="hlsAudioTrackLoaded",t.SUBTITLE_TRACKS_UPDATED="hlsSubtitleTracksUpdated",t.SUBTITLE_TRACKS_CLEARED="hlsSubtitleTracksCleared",t.SUBTITLE_TRACK_SWITCH="hlsSubtitleTrackSwitch",t.SUBTITLE_TRACK_LOADING="hlsSubtitleTrackLoading",t.SUBTITLE_TRACK_LOADED="hlsSubtitleTrackLoaded",t.SUBTITLE_FRAG_PROCESSED="hlsSubtitleFragProcessed",t.CUES_PARSED="hlsCuesParsed",t.NON_NATIVE_TEXT_TRACKS_FOUND="hlsNonNativeTextTracksFound",t.INIT_PTS_FOUND="hlsInitPtsFound",t.FRAG_LOADING="hlsFragLoading",t.FRAG_LOAD_EMERGENCY_ABORTED="hlsFragLoadEmergencyAborted",t.FRAG_LOADED="hlsFragLoaded",t.FRAG_DECRYPTED="hlsFragDecrypted",t.FRAG_PARSING_INIT_SEGMENT="hlsFragParsingInitSegment",t.FRAG_PARSING_USERDATA="hlsFragParsingUserdata",t.FRAG_PARSING_METADATA="hlsFragParsingMetadata",t.FRAG_PARSED="hlsFragParsed",t.FRAG_BUFFERED="hlsFragBuffered",t.FRAG_CHANGED="hlsFragChanged",t.FPS_DROP="hlsFpsDrop",t.FPS_DROP_LEVEL_CAPPING="hlsFpsDropLevelCapping",t.MAX_AUTO_LEVEL_UPDATED="hlsMaxAutoLevelUpdated",t.ERROR="hlsError",t.DESTROYING="hlsDestroying",t.KEY_LOADING="hlsKeyLoading",t.KEY_LOADED="hlsKeyLoaded",t.LIVE_BACK_BUFFER_REACHED="hlsLiveBackBufferReached",t.BACK_BUFFER_REACHED="hlsBackBufferReached",t.STEERING_MANIFEST_LOADED="hlsSteeringManifestLoaded",t}({}),Ft=function(t){return t.NETWORK_ERROR="networkError",t.MEDIA_ERROR="mediaError",t.KEY_SYSTEM_ERROR="keySystemError",t.MUX_ERROR="muxError",t.OTHER_ERROR="otherError",t}({}),H=function(t){return t.KEY_SYSTEM_NO_KEYS="keySystemNoKeys",t.KEY_SYSTEM_NO_ACCESS="keySystemNoAccess",t.KEY_SYSTEM_NO_SESSION="keySystemNoSession",t.KEY_SYSTEM_NO_CONFIGURED_LICENSE="keySystemNoConfiguredLicense",t.KEY_SYSTEM_LICENSE_REQUEST_FAILED="keySystemLicenseRequestFailed",t.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED="keySystemServerCertificateRequestFailed",t.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED="keySystemServerCertificateUpdateFailed",t.KEY_SYSTEM_SESSION_UPDATE_FAILED="keySystemSessionUpdateFailed",t.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED="keySystemStatusOutputRestricted",t.KEY_SYSTEM_STATUS_INTERNAL_ERROR="keySystemStatusInternalError",t.MANIFEST_LOAD_ERROR="manifestLoadError",t.MANIFEST_LOAD_TIMEOUT="manifestLoadTimeOut",t.MANIFEST_PARSING_ERROR="manifestParsingError",t.MANIFEST_INCOMPATIBLE_CODECS_ERROR="manifestIncompatibleCodecsError",t.LEVEL_EMPTY_ERROR="levelEmptyError",t.LEVEL_LOAD_ERROR="levelLoadError",t.LEVEL_LOAD_TIMEOUT="levelLoadTimeOut",t.LEVEL_PARSING_ERROR="levelParsingError",t.LEVEL_SWITCH_ERROR="levelSwitchError",t.AUDIO_TRACK_LOAD_ERROR="audioTrackLoadError",t.AUDIO_TRACK_LOAD_TIMEOUT="audioTrackLoadTimeOut",t.SUBTITLE_LOAD_ERROR="subtitleTrackLoadError",t.SUBTITLE_TRACK_LOAD_TIMEOUT="subtitleTrackLoadTimeOut",t.FRAG_LOAD_ERROR="fragLoadError",t.FRAG_LOAD_TIMEOUT="fragLoadTimeOut",t.FRAG_DECRYPT_ERROR="fragDecryptError",t.FRAG_PARSING_ERROR="fragParsingError",t.FRAG_GAP="fragGap",t.REMUX_ALLOC_ERROR="remuxAllocError",t.KEY_LOAD_ERROR="keyLoadError",t.KEY_LOAD_TIMEOUT="keyLoadTimeOut",t.BUFFER_ADD_CODEC_ERROR="bufferAddCodecError",t.BUFFER_INCOMPATIBLE_CODECS_ERROR="bufferIncompatibleCodecsError",t.BUFFER_APPEND_ERROR="bufferAppendError",t.BUFFER_APPENDING_ERROR="bufferAppendingError",t.BUFFER_STALLED_ERROR="bufferStalledError",t.BUFFER_FULL_ERROR="bufferFullError",t.BUFFER_SEEK_OVER_HOLE="bufferSeekOverHole",t.BUFFER_NUDGE_ON_STALL="bufferNudgeOnStall",t.INTERNAL_EXCEPTION="internalException",t.INTERNAL_ABORTED="aborted",t.UNKNOWN="unknown",t}({}),ft=function(){},Ct={trace:ft,debug:ft,log:ft,warn:ft,info:ft,error:ft},Mt=Ct;function lt(t,...e){e.forEach(function(i){Mt[i]=t[i]?t[i].bind(t):function(n){let r=self.console[n];return r?r.bind(self.console,`[${n}] >`):ft}(i)})}let C=Mt,W=/^(\d+)x(\d+)$/,G=/(.+?)=(".*?"|.*?)(?:,|$)/g;class J{constructor(t){typeof t=="string"&&(t=J.parseAttrList(t)),z(this,t)}get clientAttrs(){return Object.keys(this).filter((t)=>t.substring(0,2)==="X-")}decimalInteger(t){let e=parseInt(this[t],10);return e>Number.MAX_SAFE_INTEGER?1/0:e}hexadecimalInteger(t){if(this[t]){let e=(this[t]||"0x").slice(2);e=(1&e.length?"0":"")+e;let i=new Uint8Array(e.length/2);for(let n=0;n<e.length/2;n++)i[n]=parseInt(e.slice(2*n,2*n+2),16);return i}return null}hexadecimalIntegerAsNumber(t){let e=parseInt(this[t],16);return e>Number.MAX_SAFE_INTEGER?1/0:e}decimalFloatingPoint(t){return parseFloat(this[t])}optionalFloat(t,e){let i=this[t];return i?parseFloat(i):e}enumeratedString(t){return this[t]}bool(t){return this[t]==="YES"}decimalResolution(t){let e=W.exec(this[t]);if(e!==null)return{width:parseInt(e[1],10),height:parseInt(e[2],10)}}static parseAttrList(t){let e,i={};for(G.lastIndex=0;(e=G.exec(t))!==null;){let n=e[2];n.indexOf('"')===0&&n.lastIndexOf('"')===n.length-1&&(n=n.slice(1,-1)),i[e[1].trim()]=n}return i}}function st(t){return t==="SCTE35-OUT"||t==="SCTE35-IN"}class pt{constructor(t,e){if(this.attr=void 0,this._startDate=void 0,this._endDate=void 0,this._badValueForSameId=void 0,e){let i=e.attr;for(let n in i)if(Object.prototype.hasOwnProperty.call(t,n)&&t[n]!==i[n]){C.warn(`DATERANGE tag attribute: "${n}" does not match for tags with ID: "${t.ID}"`),this._badValueForSameId=n;break}t=z(new J({}),i,t)}if(this.attr=t,this._startDate=new Date(t["START-DATE"]),"END-DATE"in this.attr){let i=new Date(this.attr["END-DATE"]);j(i.getTime())&&(this._endDate=i)}}get id(){return this.attr.ID}get class(){return this.attr.CLASS}get startDate(){return this._startDate}get endDate(){if(this._endDate)return this._endDate;let t=this.duration;return t!==null?new Date(this._startDate.getTime()+1000*t):null}get duration(){if("DURATION"in this.attr){let t=this.attr.decimalFloatingPoint("DURATION");if(j(t))return t}else if(this._endDate)return(this._endDate.getTime()-this._startDate.getTime())/1000;return null}get plannedDuration(){return"PLANNED-DURATION"in this.attr?this.attr.decimalFloatingPoint("PLANNED-DURATION"):null}get endOnNext(){return this.attr.bool("END-ON-NEXT")}get isValid(){return!!this.id&&!this._badValueForSameId&&j(this.startDate.getTime())&&(this.duration===null||this.duration>=0)&&(!this.endOnNext||!!this.class)}}class at{constructor(){this.aborted=!1,this.loaded=0,this.retry=0,this.total=0,this.chunkCount=0,this.bwEstimate=0,this.loading={start:0,first:0,end:0},this.parsing={start:0,end:0},this.buffering={start:0,first:0,end:0}}}var gt="audio",Rt="video",Jt="audiovideo";class xt{constructor(t){this._byteRange=null,this._url=null,this.baseurl=void 0,this.relurl=void 0,this.elementaryStreams={[gt]:null,[Rt]:null,[Jt]:null},this.baseurl=t}setByteRange(t,e){let i=t.split("@",2),n;n=i.length===1?(e==null?void 0:e.byteRangeEndOffset)||0:parseInt(i[1]),this._byteRange=[n,parseInt(i[0])+n]}get byteRange(){return this._byteRange?this._byteRange:[]}get byteRangeStartOffset(){return this.byteRange[0]}get byteRangeEndOffset(){return this.byteRange[1]}get url(){return!this._url&&this.baseurl&&this.relurl&&(this._url=S.buildAbsoluteURL(this.baseurl,this.relurl,{alwaysNormalize:!0})),this._url||""}set url(t){this._url=t}}class ce extends xt{constructor(t,e){super(e),this._decryptdata=null,this.rawProgramDateTime=null,this.programDateTime=null,this.tagList=[],this.duration=0,this.sn=0,this.levelkeys=void 0,this.type=void 0,this.loader=null,this.keyLoader=null,this.level=-1,this.cc=0,this.startPTS=void 0,this.endPTS=void 0,this.startDTS=void 0,this.endDTS=void 0,this.start=0,this.deltaPTS=void 0,this.maxStartPTS=void 0,this.minEndPTS=void 0,this.stats=new at,this.data=void 0,this.bitrateTest=!1,this.title=null,this.initSegment=null,this.endList=void 0,this.gap=void 0,this.urlId=0,this.type=t}get decryptdata(){let{levelkeys:t}=this;if(!t&&!this._decryptdata)return null;if(!this._decryptdata&&this.levelkeys&&!this.levelkeys.NONE){let e=this.levelkeys.identity;if(e)this._decryptdata=e.getDecryptData(this.sn);else{let i=Object.keys(this.levelkeys);if(i.length===1)return this._decryptdata=this.levelkeys[i[0]].getDecryptData(this.sn)}}return this._decryptdata}get end(){return this.start+this.duration}get endProgramDateTime(){if(this.programDateTime===null)return null;if(!j(this.programDateTime))return null;let t=j(this.duration)?this.duration:0;return this.programDateTime+1000*t}get encrypted(){var t;if((t=this._decryptdata)!=null&&t.encrypted)return!0;if(this.levelkeys){let e=Object.keys(this.levelkeys),i=e.length;if(i>1||i===1&&this.levelkeys[e[0]].encrypted)return!0}return!1}setKeyFormat(t){if(this.levelkeys){let e=this.levelkeys[t];e&&!this._decryptdata&&(this._decryptdata=e.getDecryptData(this.sn))}}abortRequests(){var t,e;(t=this.loader)==null||t.abort(),(e=this.keyLoader)==null||e.abort()}setElementaryStreamInfo(t,e,i,n,r,s=!1){let{elementaryStreams:a}=this,l=a[t];l?(l.startPTS=Math.min(l.startPTS,e),l.endPTS=Math.max(l.endPTS,i),l.startDTS=Math.min(l.startDTS,n),l.endDTS=Math.max(l.endDTS,r)):a[t]={startPTS:e,endPTS:i,startDTS:n,endDTS:r,partial:s}}clearElementaryStreamInfo(){let{elementaryStreams:t}=this;t[gt]=null,t[Rt]=null,t[Jt]=null}}class dt extends xt{constructor(t,e,i,n,r){super(i),this.fragOffset=0,this.duration=0,this.gap=!1,this.independent=!1,this.relurl=void 0,this.fragment=void 0,this.index=void 0,this.stats=new at,this.duration=t.decimalFloatingPoint("DURATION"),this.gap=t.bool("GAP"),this.independent=t.bool("INDEPENDENT"),this.relurl=t.enumeratedString("URI"),this.fragment=e,this.index=n;let s=t.enumeratedString("BYTERANGE");s&&this.setByteRange(s,r),r&&(this.fragOffset=r.fragOffset+r.duration)}get start(){return this.fragment.start+this.fragOffset}get end(){return this.start+this.duration}get loaded(){let{elementaryStreams:t}=this;return!!(t.audio||t.video||t.audiovideo)}}class mt{constructor(t){this.PTSKnown=!1,this.alignedSliding=!1,this.averagetargetduration=void 0,this.endCC=0,this.endSN=0,this.fragments=void 0,this.fragmentHint=void 0,this.partList=null,this.dateRanges=void 0,this.live=!0,this.ageHeader=0,this.advancedDateTime=void 0,this.updated=!0,this.advanced=!0,this.availabilityDelay=void 0,this.misses=0,this.startCC=0,this.startSN=0,this.startTimeOffset=null,this.targetduration=0,this.totalduration=0,this.type=null,this.url=void 0,this.m3u8="",this.version=null,this.canBlockReload=!1,this.canSkipUntil=0,this.canSkipDateRanges=!1,this.skippedSegments=0,this.recentlyRemovedDateranges=void 0,this.partHoldBack=0,this.holdBack=0,this.partTarget=0,this.preloadHint=void 0,this.renditionReports=void 0,this.tuneInGoal=0,this.deltaUpdateFailed=void 0,this.driftStartTime=0,this.driftEndTime=0,this.driftStart=0,this.driftEnd=0,this.encryptedFragments=void 0,this.playlistParsingError=null,this.variableList=null,this.hasVariableRefs=!1,this.fragments=[],this.encryptedFragments=[],this.dateRanges={},this.url=t}reloaded(t){if(!t)return this.advanced=!0,void(this.updated=!0);let e=this.lastPartSn-t.lastPartSn,i=this.lastPartIndex-t.lastPartIndex;this.updated=this.endSN!==t.endSN||!!i||!!e||!this.live,this.advanced=this.endSN>t.endSN||e>0||e===0&&i>0,this.updated||this.advanced?this.misses=Math.floor(0.6*t.misses):this.misses=t.misses+1,this.availabilityDelay=t.availabilityDelay}get hasProgramDateTime(){return!!this.fragments.length&&j(this.fragments[this.fragments.length-1].programDateTime)}get levelTargetDuration(){return this.averagetargetduration||this.targetduration||10}get drift(){let t=this.driftEndTime-this.driftStartTime;if(t>0)return 1000*(this.driftEnd-this.driftStart)/t;return 1}get edge(){return this.partEnd||this.fragmentEnd}get partEnd(){var t;return(t=this.partList)!=null&&t.length?this.partList[this.partList.length-1].end:this.fragmentEnd}get fragmentEnd(){var t;return(t=this.fragments)!=null&&t.length?this.fragments[this.fragments.length-1].end:0}get age(){return this.advancedDateTime?Math.max(Date.now()-this.advancedDateTime,0)/1000:0}get lastPartIndex(){var t;return(t=this.partList)!=null&&t.length?this.partList[this.partList.length-1].index:-1}get lastPartSn(){var t;return(t=this.partList)!=null&&t.length?this.partList[this.partList.length-1].fragment.sn:this.endSN}}function Dt(t){return Uint8Array.from(atob(t),(e)=>e.charCodeAt(0))}function te(t){let e=t.split(":"),i=null;if(e[0]==="data"&&e.length===2){let n=e[1].split(";"),r=n[n.length-1].split(",");if(r.length===2){let s=r[0]==="base64",a=r[1];s?(n.splice(-1,1),i=Dt(a)):i=function(l){let d=re(l).subarray(0,16),u=new Uint8Array(16);return u.set(d,16-d.length),u}(a)}}return i}function re(t){return Uint8Array.from(unescape(encodeURIComponent(t)),(e)=>e.charCodeAt(0))}let we=typeof self!="undefined"?self:void 0;var se={CLEARKEY:"org.w3.clearkey",FAIRPLAY:"com.apple.fps",PLAYREADY:"com.microsoft.playready",WIDEVINE:"com.widevine.alpha"},q="org.w3.clearkey",tt="com.apple.streamingkeydelivery",Lt="com.microsoft.playready",_t="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed";function Gt(t){switch(t){case tt:return se.FAIRPLAY;case Lt:return se.PLAYREADY;case _t:return se.WIDEVINE;case q:return se.CLEARKEY}}var Oe="edef8ba979d64acea3c827dcd51d21ed";function Re(t){switch(t){case se.FAIRPLAY:return tt;case se.PLAYREADY:return Lt;case se.WIDEVINE:return _t;case se.CLEARKEY:return q}}function ai(t){let{drmSystems:e,widevineLicenseUrl:i}=t,n=e?[se.FAIRPLAY,se.WIDEVINE,se.PLAYREADY,se.CLEARKEY].filter((r)=>!!e[r]):[];return!n[se.WIDEVINE]&&i&&n.push(se.WIDEVINE),n}let Qe=we!=null&&(Ge=we.navigator)!=null&&Ge.requestMediaKeySystemAccess?self.navigator.requestMediaKeySystemAccess.bind(self.navigator):null;var Ge;function Se(t,e,i){return Uint8Array.prototype.slice?t.slice(e,i):new Uint8Array(Array.prototype.slice.call(t,e,i))}let si=(t,e)=>e+10<=t.length&&t[e]===73&&t[e+1]===68&&t[e+2]===51&&t[e+3]<255&&t[e+4]<255&&t[e+6]<128&&t[e+7]<128&&t[e+8]<128&&t[e+9]<128,Xe=(t,e)=>e+10<=t.length&&t[e]===51&&t[e+1]===68&&t[e+2]===73&&t[e+3]<255&&t[e+4]<255&&t[e+6]<128&&t[e+7]<128&&t[e+8]<128&&t[e+9]<128,Ii=(t,e)=>{let i=e,n=0;for(;si(t,e);)n+=10,n+=Ze(t,e+6),Xe(t,e+10)&&(n+=10),e+=n;if(n>0)return t.subarray(i,i+n)},Ze=(t,e)=>{let i=0;return i=(127&t[e])<<21,i|=(127&t[e+1])<<14,i|=(127&t[e+2])<<7,i|=127&t[e+3],i},Je=(t,e)=>si(t,e)&&Ze(t,e+6)+10<=t.length-e,oi=(t)=>{let e=$t(t);for(let i=0;i<e.length;i++){let n=e[i];if(Qt(n))return Ai(n)}},Qt=(t)=>t&&t.key==="PRIV"&&t.info==="com.apple.streaming.transportStreamTimestamp",qt=(t)=>{let e=String.fromCharCode(t[0],t[1],t[2],t[3]),i=Ze(t,4);return{type:e,size:i,data:t.subarray(10,10+i)}},$t=(t)=>{let e=0,i=[];for(;si(t,e);){let n=Ze(t,e+6);e+=10;let r=e+n;for(;e+8<r;){let s=qt(t.subarray(e)),a=he(s);a&&i.push(a),e+=s.size+10}Xe(t,e)&&(e+=10)}return i},he=(t)=>t.type==="PRIV"?de(t):t.type[0]==="W"?en(t):Oi(t),de=(t)=>{if(t.size<2)return;let e=We(t.data,!0),i=new Uint8Array(t.data.subarray(e.length+1));return{key:t.type,info:e,data:i.buffer}},Oi=(t)=>{if(t.size<2)return;if(t.type==="TXXX"){let i=1,n=We(t.data.subarray(i),!0);i+=n.length+1;let r=We(t.data.subarray(i));return{key:t.type,info:n,data:r}}let e=We(t.data.subarray(1));return{key:t.type,data:e}},en=(t)=>{if(t.type==="WXXX"){if(t.size<2)return;let i=1,n=We(t.data.subarray(i),!0);i+=n.length+1;let r=We(t.data.subarray(i));return{key:t.type,info:n,data:r}}let e=We(t.data);return{key:t.type,data:e}},Ai=(t)=>{if(t.data.byteLength===8){let e=new Uint8Array(t.data),i=1&e[3],n=(e[4]<<23)+(e[5]<<15)+(e[6]<<7)+e[7];return n/=45,i&&(n+=47721858.84),Math.round(n)}},We=(t,e=!1)=>{let i=gi();if(i){let u=i.decode(t);if(e){let f=u.indexOf("\x00");return f!==-1?u.substring(0,f):u}return u.replace(/\0/g,"")}let n=t.length,r,s,a,l="",d=0;for(;d<n;){if(r=t[d++],r===0&&e)return l;if(r!==0&&r!==3)switch(r>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:l+=String.fromCharCode(r);break;case 12:case 13:s=t[d++],l+=String.fromCharCode((31&r)<<6|63&s);break;case 14:s=t[d++],a=t[d++],l+=String.fromCharCode((15&r)<<12|(63&s)<<6|(63&a)<<0)}}return l},cn;function gi(){if(!navigator.userAgent.includes("PlayStation 4"))return cn||self.TextDecoder===void 0||(cn=new self.TextDecoder("utf-8")),cn}let _i=function(t){let e="";for(let i=0;i<t.length;i++){let n=t[i].toString(16);n.length<2&&(n="0"+n),e+=n}return e},ve=Math.pow(2,32)-1,Li=[].push,pe={video:1,audio:2,id3:3,text:4};function fe(t){return String.fromCharCode.apply(null,t)}function qi(t,e){let i=t[e]<<8|t[e+1];return i<0?65536+i:i}function Zt(t,e){let i=ti(t,e);return i<0?4294967296+i:i}function Fe(t,e){let i=Zt(t,e);return i*=Math.pow(2,32),i+=Zt(t,e+4),i}function ti(t,e){return t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3]}function Hi(t,e,i){t[e]=i>>24,t[e+1]=i>>16&255,t[e+2]=i>>8&255,t[e+3]=255&i}function Q(t,e){let i=[];if(!e.length)return i;let n=t.byteLength;for(let r=0;r<n;){let s=Zt(t,r),a=s>1?r+s:n;if(fe(t.subarray(r+4,r+8))===e[0])if(e.length===1)i.push(t.subarray(r+8,a));else{let l=Q(t.subarray(r+8,a),e.slice(1));l.length&&Li.apply(i,l)}r=a}return i}function De(t){let e=[],i=t[0],n=8,r=Zt(t,n);n+=4;let s=0,a=0;i===0?(s=Zt(t,n),a=Zt(t,n+4),n+=8):(s=Fe(t,n),a=Fe(t,n+8),n+=16),n+=2;let l=t.length+a,d=qi(t,n);n+=2;for(let u=0;u<d;u++){let f=n,E=Zt(t,f);f+=4;let b=2147483647&E;if((2147483648&E)>>>31===1)return C.warn("SIDX has hierarchical references (not supported)"),null;let T=Zt(t,f);f+=4,e.push({referenceSize:b,subsegmentDuration:T,info:{duration:T/r,start:l,end:l+b-1}}),l+=b,f+=4,n=f}return{earliestPresentationTime:s,timescale:r,version:i,referencesCount:d,references:e}}function Tr(t){let e=[],i=Q(t,["moov","trak"]);for(let n=0;n<i.length;n++){let r=i[n],s=Q(r,["tkhd"])[0];if(s){let a=s[0],l=Zt(s,a===0?12:20),d=Q(r,["mdia","mdhd"])[0];if(d){a=d[0];let u=Zt(d,a===0?12:20),f=Q(r,["mdia","hdlr"])[0];if(f){let E=fe(f.subarray(8,12)),b={soun:gt,vide:Rt}[E];if(b){let T=Fs(Q(r,["mdia","minf","stbl","stsd"])[0]);e[l]={timescale:u,type:b},e[b]=L({timescale:u,id:l},T)}}}}}return Q(t,["moov","mvex","trex"]).forEach((n)=>{let r=Zt(n,4),s=e[r];s&&(s.default={duration:Zt(n,12),flags:Zt(n,20)})}),e}function Fs(t){let e=t.subarray(8),i=e.subarray(86),n=fe(e.subarray(4,8)),r=n,s=n==="enca"||n==="encv";if(s){let a=Q(e,[n])[0];Q(a.subarray(n==="enca"?28:78),["sinf"]).forEach((l)=>{let d=Q(l,["schm"])[0];if(d){let u=fe(d.subarray(4,8));if(u==="cbcs"||u==="cenc"){let f=Q(l,["frma"])[0];f&&(r=fe(f))}}})}switch(r){case"avc1":case"avc2":case"avc3":case"avc4":{let a=Q(i,["avcC"])[0];r+="."+kn(a[1])+kn(a[2])+kn(a[3]);break}case"mp4a":{let a=Q(e,[n])[0],l=Q(a.subarray(28),["esds"])[0];if(l&&l.length>12){let d=4;if(l[d++]!==3)break;d=Ar(l,d),d+=2;let u=l[d++];if(128&u&&(d+=2),64&u&&(d+=l[d++]),l[d++]!==4)break;d=Ar(l,d);let f=l[d++];if(f!==64)break;if(r+="."+kn(f),d+=12,l[d++]!==5)break;d=Ar(l,d);let E=l[d++],b=(248&E)>>3;b===31&&(b+=1+((7&E)<<3)+((224&l[d])>>5)),r+="."+b}break}case"hvc1":case"hev1":{let a=Q(i,["hvcC"])[0],l=a[1],d=["","A","B","C"][l>>6],u=31&l,f=Zt(a,2),E=(32&l)>>5?"H":"L",b=a[12],T=a.subarray(6,12);r+="."+d+u,r+="."+f.toString(16).toUpperCase(),r+="."+E+b;let _="";for(let D=T.length;D--;){let w=T[D];if(w||_)_="."+w.toString(16).toUpperCase()+_}r+=_;break}case"dvh1":case"dvhe":{let a=Q(i,["dvcC"])[0],l=a[2]>>1&127,d=a[2]<<5&32|a[3]>>3&31;r+="."+pi(l)+"."+pi(d);break}case"vp09":{let a=Q(i,["vpcC"])[0],l=a[4],d=a[5],u=a[6]>>4&15;r+="."+pi(l)+"."+pi(d)+"."+pi(u);break}case"av01":{let a=Q(i,["av1C"])[0],l=a[1]>>>5,d=31&a[1],u=a[2]>>>7?"H":"M",f=(64&a[2])>>6,E=(32&a[2])>>5,b=l===2&&f?E?12:10:f?10:8,T=(16&a[2])>>4,_=(8&a[2])>>3,D=(4&a[2])>>2,w=3&a[2];r+="."+l+"."+pi(d)+u+"."+pi(b)+"."+T+"."+_+D+w+"."+pi(1)+"."+pi(1)+"."+pi(1)+".0";break}}return{codec:r,encrypted:s}}function Ar(t,e){let i=e+5;for(;128&t[e++]&&e<i;);return e}function kn(t){return("0"+t.toString(16).toUpperCase()).slice(-2)}function pi(t){return(t<10?"0":"")+t}function _r(t){let e=Q(t,["schm"])[0];if(e){let i=fe(e.subarray(4,8));if(i==="cbcs"||i==="cenc")return Q(t,["schi","tenc"])[0]}return C.error("[eme] missing 'schm' box"),null}function Yi(t){let e=Zt(t,0),i=8;1&e&&(i+=4),4&e&&(i+=4);let n=0,r=Zt(t,4);for(let s=0;s<r;s++){if(256&e)n+=Zt(t,i),i+=4;512&e&&(i+=4),1024&e&&(i+=4),2048&e&&(i+=4)}return n}function li(t,e){let i=new Uint8Array(t.length+e.length);return i.set(t),i.set(e,t.length),i}function Rn(t,e){let i=[],n=e.samples,r=e.timescale,s=e.id,a=!1;return Q(n,["moof"]).map((l)=>{let d=l.byteOffset-8;Q(l,["traf"]).map((u)=>{let f=Q(u,["tfdt"]).map((E)=>{let b=E[0],T=Zt(E,4);return b===1&&(T*=Math.pow(2,32),T+=Zt(E,8)),T/r})[0];return f!==void 0&&(t=f),Q(u,["tfhd"]).map((E)=>{let b=Zt(E,4),T=16777215&Zt(E,0),_=0,D=(16&T)!=0,w=0,x=(32&T)!=0,M=8;b===s&&((1&T)!=0&&(M+=8),(2&T)!=0&&(M+=4),(8&T)!=0&&(_=Zt(E,M),M+=4),D&&(w=Zt(E,M),M+=4),x&&(M+=4),e.type==="video"&&(a=function(V){if(!V)return!1;let X=V.indexOf("."),ot=X<0?V:V.substring(0,X);return ot==="hvc1"||ot==="hev1"||ot==="dvh1"||ot==="dvhe"}(e.codec)),Q(u,["trun"]).map((V)=>{let X=V[0],ot=16777215&Zt(V,0),et=(1&ot)!=0,vt=0,St=(4&ot)!=0,nt=(256&ot)!=0,it=0,jt=(512&ot)!=0,At=0,Kt=(1024&ot)!=0,zt=(2048&ot)!=0,Xt=0,ht=Zt(V,4),wt=8;et&&(vt=Zt(V,wt),wt+=4),St&&(wt+=4);let Wt=vt+d;for(let Yt=0;Yt<ht;Yt++){if(nt?(it=Zt(V,wt),wt+=4):it=_,jt?(At=Zt(V,wt),wt+=4):At=w,Kt&&(wt+=4),zt&&(Xt=X===0?Zt(V,wt):ti(V,wt),wt+=4),e.type===Rt){let ae=0;for(;ae<At;){let Ce=Zt(n,Wt);if(Wt+=4,nn(a,n[Wt]))Jr(n.subarray(Wt,Wt+Ce),a?2:1,t+Xt/r,i);Wt+=Ce,ae+=Ce+4}}t+=it/r}}))})})}),i}function nn(t,e){if(t){let i=e>>1&63;return i===39||i===40}return(31&e)===6}function Jr(t,e,i,n){let r=Xn(t),s=0;s+=e;let a=0,l=0,d=0;for(;s<r.length;){a=0;do{if(s>=r.length)break;d=r[s++],a+=d}while(d===255);l=0;do{if(s>=r.length)break;d=r[s++],l+=d}while(d===255);let u=r.length-s,f=s;if(l<u)s+=l;else if(l>u){C.error(`Malformed SEI payload. ${l} is too small, only ${u} bytes left to parse.`);break}if(a===4){if(r[f++]===181){let E=qi(r,f);if(f+=2,E===49){let b=Zt(r,f);if(f+=4,b===1195456820){let T=r[f++];if(T===3){let _=r[f++],D=31&_,w=64&_,x=w?2+3*D:0,M=new Uint8Array(x);if(w){M[0]=_;for(let V=1;V<x;V++)M[V]=r[f++]}n.push({type:T,payloadType:a,pts:i,bytes:M})}}}}}else if(a===5&&l>16){let E=[];for(let _=0;_<16;_++){let D=r[f++].toString(16);E.push(D.length==1?"0"+D:D),_!==3&&_!==5&&_!==7&&_!==9||E.push("-")}let b=l-16,T=new Uint8Array(b);for(let _=0;_<b;_++)T[_]=r[f++];n.push({payloadType:a,pts:i,uuid:E.join(""),userData:We(T),userDataBytes:T})}}}function Xn(t){let e=t.byteLength,i=[],n=1;for(;n<e-2;)t[n]===0&&t[n+1]===0&&t[n+2]===3?(i.push(n+2),n+=2):n++;if(i.length===0)return t;let r=e-i.length,s=new Uint8Array(r),a=0;for(n=0;n<r;a++,n++)a===i[0]&&(a++,i.shift()),s[n]=t[a];return s}function Qr(t,e,i){if(t.byteLength!==16)throw new RangeError("Invalid system id");let n,r,s;if(e){n=1,r=new Uint8Array(16*e.length);for(let l=0;l<e.length;l++){let d=e[l];if(d.byteLength!==16)throw new RangeError("Invalid key");r.set(d,16*l)}}else n=0,r=new Uint8Array;n>0?(s=new Uint8Array(4),e.length>0&&new DataView(s.buffer).setUint32(0,e.length,!1)):s=new Uint8Array;let a=new Uint8Array(4);return i&&i.byteLength>0&&new DataView(a.buffer).setUint32(0,i.byteLength,!1),function(l,...d){let u=d.length,f=8,E=u;for(;E--;)f+=d[E].byteLength;let b=new Uint8Array(f);for(b[0]=f>>24&255,b[1]=f>>16&255,b[2]=f>>8&255,b[3]=255&f,b.set(l,4),E=0,f=8;E<u;E++)b.set(d[E],f),f+=d[E].byteLength;return b}([112,115,115,104],new Uint8Array([n,0,0,0]),t,s,r,a,i||new Uint8Array)}let vi={};class xi{static clearKeyUriToKeyIdMap(){vi={}}constructor(t,e,i,n=[1],r=null){this.uri=void 0,this.method=void 0,this.keyFormat=void 0,this.keyFormatVersions=void 0,this.encrypted=void 0,this.isCommonEncryption=void 0,this.iv=null,this.key=null,this.keyId=null,this.pssh=null,this.method=t,this.uri=e,this.keyFormat=i,this.keyFormatVersions=n,this.iv=r,this.encrypted=!!t&&t!=="NONE",this.isCommonEncryption=this.encrypted&&t!=="AES-128"}isSupported(){if(this.method){if(this.method==="AES-128"||this.method==="NONE")return!0;if(this.keyFormat==="identity")return this.method==="SAMPLE-AES";switch(this.keyFormat){case tt:case _t:case Lt:case q:return["ISO-23001-7","SAMPLE-AES","SAMPLE-AES-CENC","SAMPLE-AES-CTR"].indexOf(this.method)!==-1}}return!1}getDecryptData(t){if(!this.encrypted||!this.uri)return null;if(this.method==="AES-128"&&this.uri&&!this.iv){typeof t!="number"&&(this.method!=="AES-128"||this.iv||C.warn(`missing IV for initialization segment with method="${this.method}" - compliance issue`),t=0);let i=function(n){let r=new Uint8Array(16);for(let s=12;s<16;s++)r[s]=n>>8*(15-s)&255;return r}(t);return new xi(this.method,this.uri,"identity",this.keyFormatVersions,i)}let e=te(this.uri);if(e)switch(this.keyFormat){case _t:this.pssh=e,e.length>=22&&(this.keyId=e.subarray(e.length-22,e.length-6));break;case Lt:{let i=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]);this.pssh=Qr(i,null,e);let n=new Uint16Array(e.buffer,e.byteOffset,e.byteLength/2),r=String.fromCharCode.apply(null,Array.from(n)),s=r.substring(r.indexOf("<"),r.length),a=new DOMParser().parseFromString(s,"text/xml").getElementsByTagName("KID")[0];if(a){let l=a.childNodes[0]?a.childNodes[0].nodeValue:a.getAttribute("VALUE");if(l){let d=Dt(l).subarray(0,16);(function(u){let f=function(E,b,T){let _=E[b];E[b]=E[T],E[T]=_};f(u,0,3),f(u,1,2),f(u,4,5),f(u,6,7)})(d),this.keyId=d}}break}default:{let i=e.subarray(0,16);if(i.length!==16){let n=new Uint8Array(16);n.set(i,16-i.length),i=n}this.keyId=i;break}}if(!this.keyId||this.keyId.byteLength!==16){let i=vi[this.uri];if(!i){let n=Object.keys(vi).length%Number.MAX_SAFE_INTEGER;i=new Uint8Array(16),new DataView(i.buffer,12,4).setUint32(0,n),vi[this.uri]=i}this.keyId=i}return this}}let Dn=/\{\$([a-zA-Z0-9-_]+)\}/g;function Ni(t){return Dn.test(t)}function ci(t,e,i){if(t.variableList!==null||t.hasVariableRefs)for(let n=i.length;n--;){let r=i[n],s=e[r];s&&(e[r]=Cn(t,s))}}function Cn(t,e){if(t.variableList!==null||t.hasVariableRefs){let i=t.variableList;return e.replace(Dn,(n)=>{let r=n.substring(2,n.length-1),s=i==null?void 0:i[r];return s===void 0?(t.playlistParsingError||(t.playlistParsingError=new Error(`Missing preceding EXT-X-DEFINE tag for Variable Reference: "${r}"`)),n):s})}return e}function zi(t,e,i){let n,r,s=t.variableList;if(s||(t.variableList=s={}),"QUERYPARAM"in e){n=e.QUERYPARAM;try{let a=new self.URL(i).searchParams;if(!a.has(n))throw new Error(`"${n}" does not match any query parameter in URI: "${i}"`);r=a.get(n)}catch(a){t.playlistParsingError||(t.playlistParsingError=new Error("EXT-X-DEFINE QUERYPARAM: "+a.message))}}else n=e.NAME,r=e.VALUE;n in s?t.playlistParsingError||(t.playlistParsingError=new Error(`EXT-X-DEFINE duplicate Variable Name declarations: "${n}"`)):s[n]=r||""}function Ne(t,e,i){let n=e.IMPORT;if(i&&n in i){let r=t.variableList;r||(t.variableList=r={}),r[n]=i[n]}else t.playlistParsingError||(t.playlistParsingError=new Error(`EXT-X-DEFINE IMPORT attribute not found in Multivariant Playlist: "${n}"`))}function Xi(t=!0){if(typeof self=="undefined")return;return(t||!self.MediaSource)&&self.ManagedMediaSource||self.MediaSource||self.WebKitMediaSource}let In={audio:{a3ds:1,"ac-3":0.95,"ac-4":1,alac:0.9,alaw:1,dra1:1,"dts+":1,"dts-":1,dtsc:1,dtse:1,dtsh:1,"ec-3":0.9,enca:1,fLaC:0.9,flac:0.9,FLAC:0.9,g719:1,g726:1,m4ae:1,mha1:1,mha2:1,mhm1:1,mhm2:1,mlpa:1,mp4a:1,"raw ":1,Opus:1,opus:1,samr:1,sawb:1,sawp:1,sevc:1,sqcp:1,ssmv:1,twos:1,ulaw:1},video:{avc1:1,avc2:1,avc3:1,avc4:1,avcp:1,av01:0.8,drac:1,dva1:1,dvav:1,dvh1:0.7,dvhe:0.7,encv:1,hev1:0.75,hvc1:0.75,mjp2:1,mp4v:1,mvc1:1,mvc2:1,mvc3:1,mvc4:1,resv:1,rv60:1,s263:1,svc1:1,svc2:1,"vc-1":1,vp08:1,vp09:0.9},text:{stpp:1,wvtt:1}};function Jn(t,e,i=!0){return!t.split(",").some((n)=>!Pi(n,e,i))}function Pi(t,e,i=!0){var n;let r=Xi(i);return(n=r==null?void 0:r.isTypeSupported(dn(t,e)))!=null&&n}function dn(t,e){return`${e}/mp4;codecs="${t}"`}function Ue(t){if(t){let e=t.substring(0,4);return In.video[e]}return 2}function On(t){return t.split(",").reduce((e,i)=>{let n=In.video[i];return n?(2*n+e)/(e?3:2):(In.audio[i]+e)/(e?2:1)},0)}let Ji={},Lr=/flac|opus/i;function xn(t,e=!0){return t.replace(Lr,(i)=>function(n,r=!0){if(Ji[n])return Ji[n];let s={flac:["flac","fLaC","FLAC"],opus:["opus","Opus"]}[n];for(let a=0;a<s.length;a++)if(Pi(s[a],"audio",r))return Ji[n]=s[a],s[a];return n}(i.toLowerCase(),e))}function Zr(t,e){return t&&t!=="mp4a"?t:e?e.split(",")[0]:e}let ts=/#EXT-X-STREAM-INF:([^\r\n]*)(?:[\r\n](?:#[^\r\n]*)?)*([^\r\n]+)|#EXT-X-(SESSION-DATA|SESSION-KEY|DEFINE|CONTENT-STEERING|START):([^\r\n]*)[\r\n]+/g,Qn=/#EXT-X-MEDIA:(.*)/g,Nn=/^#EXT(?:INF|-X-TARGETDURATION):/m,Zn=new RegExp([/#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source,/(?!#) *(\S[\S ]*)/.source,/#EXT-X-BYTERANGE:*(.+)/.source,/#EXT-X-PROGRAM-DATE-TIME:(.+)/.source,/#.*/.source].join("|"),"g"),Pn=new RegExp([/#(EXTM3U)/.source,/#EXT-X-(DATERANGE|DEFINE|KEY|MAP|PART|PART-INF|PLAYLIST-TYPE|PRELOAD-HINT|RENDITION-REPORT|SERVER-CONTROL|SKIP|START):(.+)/.source,/#EXT-X-(BITRATE|DISCONTINUITY-SEQUENCE|MEDIA-SEQUENCE|TARGETDURATION|VERSION): *(\d+)/.source,/#EXT-X-(DISCONTINUITY|ENDLIST|GAP|INDEPENDENT-SEGMENTS)/.source,/(#)([^:]*):(.*)/.source,/(#)(.*)(?:.*)\r?\n?/.source].join("|"));class Pe{static findGroup(t,e){for(let i=0;i<t.length;i++){let n=t[i];if(n.id===e)return n}}static resolve(t,e){return S.buildAbsoluteURL(e,t,{alwaysNormalize:!0})}static isMediaPlaylist(t){return Nn.test(t)}static parseMasterPlaylist(t,e){let i={contentSteering:null,levels:[],playlistParsingError:null,sessionData:null,sessionKeys:null,startTimeOffset:null,variableList:null,hasVariableRefs:Ni(t)},n=[],r;for(ts.lastIndex=0;(r=ts.exec(t))!=null;)if(r[1]){var s;let l=new J(r[1]);ci(i,l,["CODECS","SUPPLEMENTAL-CODECS","ALLOWED-CPC","PATHWAY-ID","STABLE-VARIANT-ID","AUDIO","VIDEO","SUBTITLES","CLOSED-CAPTIONS","NAME"]);let d=Cn(i,r[2]),u={attrs:l,bitrate:l.decimalInteger("BANDWIDTH")||l.decimalInteger("AVERAGE-BANDWIDTH"),name:l.NAME,url:Pe.resolve(d,e)},f=l.decimalResolution("RESOLUTION");f&&(u.width=f.width,u.height=f.height),Mi(l.CODECS,u),(s=u.unknownCodecs)!=null&&s.length||n.push(u),i.levels.push(u)}else if(r[3]){let l=r[3],d=r[4];switch(l){case"SESSION-DATA":{let u=new J(d);ci(i,u,["DATA-ID","LANGUAGE","VALUE","URI"]);let f=u["DATA-ID"];f&&(i.sessionData===null&&(i.sessionData={}),i.sessionData[f]=u);break}case"SESSION-KEY":{let u=di(d,e,i);u.encrypted&&u.isSupported()?(i.sessionKeys===null&&(i.sessionKeys=[]),i.sessionKeys.push(u)):C.warn(`[Keys] Ignoring invalid EXT-X-SESSION-KEY tag: "${d}"`);break}case"DEFINE":{let u=new J(d);ci(i,u,["NAME","VALUE","QUERYPARAM"]),zi(i,u,e)}break;case"CONTENT-STEERING":{let u=new J(d);ci(i,u,["SERVER-URI","PATHWAY-ID"]),i.contentSteering={uri:Pe.resolve(u["SERVER-URI"],e),pathwayId:u["PATHWAY-ID"]||"."};break}case"START":i.startTimeOffset=Mn(d)}}let a=n.length>0&&n.length<i.levels.length;return i.levels=a?n:i.levels,i.levels.length===0&&(i.playlistParsingError=new Error("no levels found in manifest")),i}static parseMasterPlaylistMedia(t,e,i){let n,r={},s=i.levels,a={AUDIO:s.map((d)=>({id:d.attrs.AUDIO,audioCodec:d.audioCodec})),SUBTITLES:s.map((d)=>({id:d.attrs.SUBTITLES,textCodec:d.textCodec})),"CLOSED-CAPTIONS":[]},l=0;for(Qn.lastIndex=0;(n=Qn.exec(t))!==null;){let d=new J(n[1]),u=d.TYPE;if(u){let f=a[u],E=r[u]||[];r[u]=E,ci(i,d,["URI","GROUP-ID","LANGUAGE","ASSOC-LANGUAGE","STABLE-RENDITION-ID","NAME","INSTREAM-ID","CHARACTERISTICS","CHANNELS"]);let b=d.LANGUAGE,T=d["ASSOC-LANGUAGE"],_=d.CHANNELS,D=d.CHARACTERISTICS,w=d["INSTREAM-ID"],x={attrs:d,bitrate:0,id:l++,groupId:d["GROUP-ID"]||"",name:d.NAME||b||"",type:u,default:d.bool("DEFAULT"),autoselect:d.bool("AUTOSELECT"),forced:d.bool("FORCED"),lang:b,url:d.URI?Pe.resolve(d.URI,e):""};if(T&&(x.assocLang=T),_&&(x.channels=_),D&&(x.characteristics=D),w&&(x.instreamId=w),f!=null&&f.length){let M=Pe.findGroup(f,x.groupId)||f[0];tr(x,M,"audioCodec"),tr(x,M,"textCodec")}E.push(x)}}return r}static parseLevelPlaylist(t,e,i,n,r,s){let a=new mt(e),l=a.fragments,d,u,f,E=null,b=0,T=0,_=0,D=0,w=null,x=new ce(n,e),M=-1,V=!1,X=null;for(Zn.lastIndex=0,a.m3u8=t,a.hasVariableRefs=Ni(t);(d=Zn.exec(t))!==null;){V&&(V=!1,x=new ce(n,e),x.start=_,x.sn=b,x.cc=D,x.level=i,E&&(x.initSegment=E,x.rawProgramDateTime=E.rawProgramDateTime,E.rawProgramDateTime=null,X&&(x.setByteRange(X),X=null)));let St=d[1];if(St){x.duration=parseFloat(St);let nt=(" "+d[2]).slice(1);x.title=nt||null,x.tagList.push(nt?["INF",St,nt]:["INF",St])}else if(d[3]){if(j(x.duration)){x.start=_,f&&wr(x,f,a),x.sn=b,x.level=i,x.cc=D,l.push(x);let nt=(" "+d[3]).slice(1);x.relurl=Cn(a,nt),Ki(x,w),w=x,_+=x.duration,b++,T=0,V=!0}}else if(d[4]){let nt=(" "+d[4]).slice(1);w?x.setByteRange(nt,w):x.setByteRange(nt)}else if(d[5])x.rawProgramDateTime=(" "+d[5]).slice(1),x.tagList.push(["PROGRAM-DATE-TIME",x.rawProgramDateTime]),M===-1&&(M=l.length);else{if(d=d[0].match(Pn),!d){C.warn("No matches on slow regex match for level playlist!");continue}for(u=1;u<d.length&&d[u]===void 0;u++);let nt=(" "+d[u]).slice(1),it=(" "+d[u+1]).slice(1),jt=d[u+2]?(" "+d[u+2]).slice(1):"";switch(nt){case"PLAYLIST-TYPE":a.type=it.toUpperCase();break;case"MEDIA-SEQUENCE":b=a.startSN=parseInt(it);break;case"SKIP":{let At=new J(it);ci(a,At,["RECENTLY-REMOVED-DATERANGES"]);let Kt=At.decimalInteger("SKIPPED-SEGMENTS");if(j(Kt)){a.skippedSegments=Kt;for(let Xt=Kt;Xt--;)l.unshift(null);b+=Kt}let zt=At.enumeratedString("RECENTLY-REMOVED-DATERANGES");zt&&(a.recentlyRemovedDateranges=zt.split("\t"));break}case"TARGETDURATION":a.targetduration=Math.max(parseInt(it),1);break;case"VERSION":a.version=parseInt(it);break;case"INDEPENDENT-SEGMENTS":case"EXTM3U":break;case"ENDLIST":a.live=!1;break;case"#":(it||jt)&&x.tagList.push(jt?[it,jt]:[it]);break;case"DISCONTINUITY":D++,x.tagList.push(["DIS"]);break;case"GAP":x.gap=!0,x.tagList.push([nt]);break;case"BITRATE":x.tagList.push([nt,it]);break;case"DATERANGE":{let At=new J(it);ci(a,At,["ID","CLASS","START-DATE","END-DATE","SCTE35-CMD","SCTE35-OUT","SCTE35-IN"]),ci(a,At,At.clientAttrs);let Kt=new pt(At,a.dateRanges[At.ID]);Kt.isValid||a.skippedSegments?a.dateRanges[Kt.id]=Kt:C.warn(`Ignoring invalid DATERANGE tag: "${it}"`),x.tagList.push(["EXT-X-DATERANGE",it]);break}case"DEFINE":{let At=new J(it);ci(a,At,["NAME","VALUE","IMPORT","QUERYPARAM"]),"IMPORT"in At?Ne(a,At,s):zi(a,At,e)}break;case"DISCONTINUITY-SEQUENCE":D=parseInt(it);break;case"KEY":{let At=di(it,e,a);if(At.isSupported()){if(At.method==="NONE"){f=void 0;break}f||(f={}),f[At.keyFormat]&&(f=z({},f)),f[At.keyFormat]=At}else C.warn(`[Keys] Ignoring invalid EXT-X-KEY tag: "${it}"`);break}case"START":a.startTimeOffset=Mn(it);break;case"MAP":{let At=new J(it);if(ci(a,At,["BYTERANGE","URI"]),x.duration){let Kt=new ce(n,e);qe(Kt,At,i,f),E=Kt,x.initSegment=E,E.rawProgramDateTime&&!x.rawProgramDateTime&&(x.rawProgramDateTime=E.rawProgramDateTime)}else{let Kt=x.byteRangeEndOffset;if(Kt){let zt=x.byteRangeStartOffset;X=`${Kt-zt}@${zt}`}else X=null;qe(x,At,i,f),E=x,V=!0}break}case"SERVER-CONTROL":{let At=new J(it);a.canBlockReload=At.bool("CAN-BLOCK-RELOAD"),a.canSkipUntil=At.optionalFloat("CAN-SKIP-UNTIL",0),a.canSkipDateRanges=a.canSkipUntil>0&&At.bool("CAN-SKIP-DATERANGES"),a.partHoldBack=At.optionalFloat("PART-HOLD-BACK",0),a.holdBack=At.optionalFloat("HOLD-BACK",0);break}case"PART-INF":{let At=new J(it);a.partTarget=At.decimalFloatingPoint("PART-TARGET");break}case"PART":{let At=a.partList;At||(At=a.partList=[]);let Kt=T>0?At[At.length-1]:void 0,zt=T++,Xt=new J(it);ci(a,Xt,["BYTERANGE","URI"]);let ht=new dt(Xt,x,e,zt,Kt);At.push(ht),x.duration+=ht.duration;break}case"PRELOAD-HINT":{let At=new J(it);ci(a,At,["URI"]),a.preloadHint=At;break}case"RENDITION-REPORT":{let At=new J(it);ci(a,At,["URI"]),a.renditionReports=a.renditionReports||[],a.renditionReports.push(At);break}default:C.warn("line parsed but not handled: "+d)}}}w&&!w.relurl?(l.pop(),_-=w.duration,a.partList&&(a.fragmentHint=w)):a.partList&&(Ki(x,w),x.cc=D,a.fragmentHint=x,f&&wr(x,f,a));let ot=l.length,et=l[0],vt=l[ot-1];if(_+=a.skippedSegments*a.targetduration,_>0&&ot&&vt){a.averagetargetduration=_/ot;let St=vt.sn;a.endSN=St!=="initSegment"?St:0,a.live||(vt.endList=!0),et&&(a.startCC=et.cc)}else a.endSN=0,a.startCC=0;return a.fragmentHint&&(_+=a.fragmentHint.duration),a.totalduration=_,a.endCC=D,M>0&&function(St,nt){let it=St[nt];for(let jt=nt;jt--;){let At=St[jt];if(!At)return;At.programDateTime=it.programDateTime-1000*At.duration,it=At}}(l,M),a}}function di(t,e,i){var n,r;let s=new J(t);ci(i,s,["KEYFORMAT","KEYFORMATVERSIONS","URI","IV","URI"]);let a=(n=s.METHOD)!=null?n:"",l=s.URI,d=s.hexadecimalInteger("IV"),u=s.KEYFORMATVERSIONS,f=(r=s.KEYFORMAT)!=null?r:"identity";l&&s.IV&&!d&&C.error("Invalid IV: "+s.IV);let E=l?Pe.resolve(l,e):"",b=(u||"1").split("/").map(Number).filter(Number.isFinite);return new xi(a,E,f,b,d)}function Mn(t){let e=new J(t).decimalFloatingPoint("TIME-OFFSET");return j(e)?e:null}function Mi(t,e){let i=(t||"").split(/[ ,]+/).filter((n)=>n);["video","audio","text"].forEach((n)=>{let r=i.filter((s)=>function(a,l){let d=In[l];return!!d&&!!d[a.slice(0,4)]}(s,n));r.length&&(e[n+"Codec"]=r.join(","),i=i.filter((s)=>r.indexOf(s)===-1))}),e.unknownCodecs=i}function tr(t,e,i){let n=e[i];n&&(t[i]=n)}function Ki(t,e){t.rawProgramDateTime?t.programDateTime=Date.parse(t.rawProgramDateTime):e!=null&&e.programDateTime&&(t.programDateTime=e.endProgramDateTime),j(t.programDateTime)||(t.programDateTime=null,t.rawProgramDateTime=null)}function qe(t,e,i,n){t.relurl=e.URI,e.BYTERANGE&&t.setByteRange(e.BYTERANGE),t.level=i,t.sn="initSegment",n&&(t.levelkeys=n),t.initSegment=null}function wr(t,e,i){t.levelkeys=e;let{encryptedFragments:n}=i;n.length&&n[n.length-1].levelkeys===e||!Object.keys(e).some((r)=>e[r].isCommonEncryption)||n.push(t)}var Qi="manifest",Vi="level",yi="audioTrack",Fi="subtitleTrack",me="main",ei="audio",Bi="subtitle";function kr(t){let{type:e}=t;switch(e){case yi:return ei;case Fi:return Bi;default:return me}}function er(t,e){let i=t.url;return i!==void 0&&i.indexOf("data:")!==0||(i=e.url),i}class Rr{constructor(t){this.hls=void 0,this.loaders=Object.create(null),this.variableList=null,this.hls=t,this.registerListeners()}startLoad(t){}stopLoad(){this.destroyInternalLoaders()}registerListeners(){let{hls:t}=this;t.on(A.MANIFEST_LOADING,this.onManifestLoading,this),t.on(A.LEVEL_LOADING,this.onLevelLoading,this),t.on(A.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),t.on(A.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this)}unregisterListeners(){let{hls:t}=this;t.off(A.MANIFEST_LOADING,this.onManifestLoading,this),t.off(A.LEVEL_LOADING,this.onLevelLoading,this),t.off(A.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),t.off(A.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this)}createInternalLoader(t){let e=this.hls.config,i=e.pLoader,n=e.loader,r=new(i||n)(e);return this.loaders[t.type]=r,r}getInternalLoader(t){return this.loaders[t.type]}resetInternalLoader(t){this.loaders[t]&&delete this.loaders[t]}destroyInternalLoaders(){for(let t in this.loaders){let e=this.loaders[t];e&&e.destroy(),this.resetInternalLoader(t)}}destroy(){this.variableList=null,this.unregisterListeners(),this.destroyInternalLoaders()}onManifestLoading(t,e){let{url:i}=e;this.variableList=null,this.load({id:null,level:0,responseType:"text",type:Qi,url:i,deliveryDirectives:null})}onLevelLoading(t,e){let{id:i,level:n,pathwayId:r,url:s,deliveryDirectives:a}=e;this.load({id:i,level:n,pathwayId:r,responseType:"text",type:Vi,url:s,deliveryDirectives:a})}onAudioTrackLoading(t,e){let{id:i,groupId:n,url:r,deliveryDirectives:s}=e;this.load({id:i,groupId:n,level:null,responseType:"text",type:yi,url:r,deliveryDirectives:s})}onSubtitleTrackLoading(t,e){let{id:i,groupId:n,url:r,deliveryDirectives:s}=e;this.load({id:i,groupId:n,level:null,responseType:"text",type:Fi,url:r,deliveryDirectives:s})}load(t){var e;let i=this.hls.config,n,r=this.getInternalLoader(t);if(r){let d=r.context;if(d&&d.url===t.url&&d.level===t.level)return void C.trace("[playlist-loader]: playlist request ongoing");C.log("[playlist-loader]: aborting previous loader for type: "+t.type),r.abort()}if(n=t.type===Qi?i.manifestLoadPolicy.default:z({},i.playlistLoadPolicy.default,{timeoutRetry:null,errorRetry:null}),r=this.createInternalLoader(t),j((e=t.deliveryDirectives)==null?void 0:e.part)){let d;if(t.type===Vi&&t.level!==null?d=this.hls.levels[t.level].details:t.type===yi&&t.id!==null?d=this.hls.audioTracks[t.id].details:t.type===Fi&&t.id!==null&&(d=this.hls.subtitleTracks[t.id].details),d){let{partTarget:u,targetduration:f}=d;if(u&&f){let E=1000*Math.max(3*u,0.8*f);n=z({},n,{maxTimeToFirstByteMs:Math.min(E,n.maxTimeToFirstByteMs),maxLoadTimeMs:Math.min(E,n.maxTimeToFirstByteMs)})}}}let s=n.errorRetry||n.timeoutRetry||{},a={loadPolicy:n,timeout:n.maxLoadTimeMs,maxRetry:s.maxNumRetry||0,retryDelay:s.retryDelayMs||0,maxRetryDelay:s.maxRetryDelayMs||0},l={onSuccess:(d,u,f,E)=>{let b=this.getInternalLoader(f);this.resetInternalLoader(f.type);let T=d.data;T.indexOf("#EXTM3U")===0?(u.parsing.start=performance.now(),Pe.isMediaPlaylist(T)?this.handleTrackOrLevelPlaylist(d,u,f,E||null,b):this.handleMasterPlaylist(d,u,f,E)):this.handleManifestParsingError(d,f,new Error("no EXTM3U delimiter"),E||null,u)},onError:(d,u,f,E)=>{this.handleNetworkError(u,f,!1,d,E)},onTimeout:(d,u,f)=>{this.handleNetworkError(u,f,!0,void 0,d)}};r.load(t,a,l)}handleMasterPlaylist(t,e,i,n){let r=this.hls,s=t.data,a=er(t,i),l=Pe.parseMasterPlaylist(s,a);if(l.playlistParsingError)return void this.handleManifestParsingError(t,i,l.playlistParsingError,n,e);let{contentSteering:d,levels:u,sessionData:f,sessionKeys:E,startTimeOffset:b,variableList:T}=l;this.variableList=T;let{AUDIO:_=[],SUBTITLES:D,"CLOSED-CAPTIONS":w}=Pe.parseMasterPlaylistMedia(s,a,l);if(_.length)_.some((x)=>!x.url)||!u[0].audioCodec||u[0].attrs.AUDIO||(C.log("[playlist-loader]: audio codec signaled in quality level, but no embedded audio track signaled, create one"),_.unshift({type:"main",name:"main",groupId:"main",default:!1,autoselect:!1,forced:!1,id:-1,attrs:new J({}),bitrate:0,url:""}));r.trigger(A.MANIFEST_LOADED,{levels:u,audioTracks:_,subtitles:D,captions:w,contentSteering:d,url:a,stats:e,networkDetails:n,sessionData:f,sessionKeys:E,startTimeOffset:b,variableList:T})}handleTrackOrLevelPlaylist(t,e,i,n,r){let s=this.hls,{id:a,level:l,type:d}=i,u=er(t,i),f=j(l)?l:j(a)?a:0,E=kr(i),b=Pe.parseLevelPlaylist(t.data,u,f,E,0,this.variableList);if(d===Qi){let T={attrs:new J({}),bitrate:0,details:b,name:"",url:u};s.trigger(A.MANIFEST_LOADED,{levels:[T],audioTracks:[],url:u,stats:e,networkDetails:n,sessionData:null,sessionKeys:null,contentSteering:null,startTimeOffset:null,variableList:null})}e.parsing.end=performance.now(),i.levelDetails=b,this.handlePlaylistLoaded(b,t,e,i,n,r)}handleManifestParsingError(t,e,i,n,r){this.hls.trigger(A.ERROR,{type:Ft.NETWORK_ERROR,details:H.MANIFEST_PARSING_ERROR,fatal:e.type===Qi,url:t.url,err:i,error:i,reason:i.message,response:t,context:e,networkDetails:n,stats:r})}handleNetworkError(t,e,i=!1,n,r){let s=`A network ${i?"timeout":"error"+(n?" (status "+n.code+")":"")} occurred while loading ${t.type}`;t.type===Vi?s+=`: ${t.level} id: ${t.id}`:t.type!==yi&&t.type!==Fi||(s+=` id: ${t.id} group-id: "${t.groupId}"`);let a=new Error(s);C.warn("[playlist-loader]: "+s);let l=H.UNKNOWN,d=!1,u=this.getInternalLoader(t);switch(t.type){case Qi:l=i?H.MANIFEST_LOAD_TIMEOUT:H.MANIFEST_LOAD_ERROR,d=!0;break;case Vi:l=i?H.LEVEL_LOAD_TIMEOUT:H.LEVEL_LOAD_ERROR,d=!1;break;case yi:l=i?H.AUDIO_TRACK_LOAD_TIMEOUT:H.AUDIO_TRACK_LOAD_ERROR,d=!1;break;case Fi:l=i?H.SUBTITLE_TRACK_LOAD_TIMEOUT:H.SUBTITLE_LOAD_ERROR,d=!1}u&&this.resetInternalLoader(t.type);let f={type:Ft.NETWORK_ERROR,details:l,fatal:d,url:t.url,loader:u,context:t,error:a,networkDetails:e,stats:r};if(n){let E=(e==null?void 0:e.url)||t.url;f.response=L({url:E,data:void 0},n)}this.hls.trigger(A.ERROR,f)}handlePlaylistLoaded(t,e,i,n,r,s){let a=this.hls,{type:l,level:d,id:u,groupId:f,deliveryDirectives:E}=n,b=er(e,n),T=kr(n),_=typeof n.level=="number"&&T===me?d:void 0;if(!t.fragments.length){let w=new Error("No Segments found in Playlist");return void a.trigger(A.ERROR,{type:Ft.NETWORK_ERROR,details:H.LEVEL_EMPTY_ERROR,fatal:!1,url:b,error:w,reason:w.message,response:e,context:n,level:_,parent:T,networkDetails:r,stats:i})}t.targetduration||(t.playlistParsingError=new Error("Missing Target Duration"));let D=t.playlistParsingError;if(D)a.trigger(A.ERROR,{type:Ft.NETWORK_ERROR,details:H.LEVEL_PARSING_ERROR,fatal:!1,url:b,error:D,reason:D.message,response:e,context:n,level:_,parent:T,networkDetails:r,stats:i});else switch(t.live&&s&&(s.getCacheAge&&(t.ageHeader=s.getCacheAge()||0),s.getCacheAge&&!isNaN(t.ageHeader)||(t.ageHeader=0)),l){case Qi:case Vi:a.trigger(A.LEVEL_LOADED,{details:t,level:_||0,id:u||0,stats:i,networkDetails:r,deliveryDirectives:E});break;case yi:a.trigger(A.AUDIO_TRACK_LOADED,{details:t,id:u||0,groupId:f||"",stats:i,networkDetails:r,deliveryDirectives:E});break;case Fi:a.trigger(A.SUBTITLE_TRACK_LOADED,{details:t,id:u||0,groupId:f||"",stats:i,networkDetails:r,deliveryDirectives:E})}}}function ir(t,e){let i;try{i=new Event("addtrack")}catch(n){i=document.createEvent("Event"),i.initEvent("addtrack",!1,!1)}i.track=t,e.dispatchEvent(i)}function Dr(t,e){let i=t.mode;if(i==="disabled"&&(t.mode="hidden"),t.cues&&!t.cues.getCueById(e.id))try{if(t.addCue(e),!t.cues.getCueById(e.id))throw new Error("addCue is failed for: "+e)}catch(n){C.debug("[texttrack-utils]: "+n);try{let r=new self.TextTrackCue(e.startTime,e.endTime,e.text);r.id=e.id,t.addCue(r)}catch(r){C.debug("[texttrack-utils]: Legacy TextTrackCue fallback failed: "+r)}}i==="disabled"&&(t.mode=i)}function Ui(t){let e=t.mode;if(e==="disabled"&&(t.mode="hidden"),t.cues)for(let i=t.cues.length;i--;)t.removeCue(t.cues[i]);e==="disabled"&&(t.mode=e)}function nr(t,e,i,n){let r=t.mode;if(r==="disabled"&&(t.mode="hidden"),t.cues&&t.cues.length>0){let s=function(a,l,d){let u=[],f=function(E,b){if(b<E[0].startTime)return 0;let T=E.length-1;if(b>E[T].endTime)return-1;let _=0,D=T;for(;_<=D;){let w=Math.floor((D+_)/2);if(b<E[w].startTime)D=w-1;else{if(!(b>E[w].startTime&&_<T))return w;_=w+1}}return E[_].startTime-b<b-E[D].startTime?_:D}(a,l);if(f>-1)for(let E=f,b=a.length;E<b;E++){let T=a[E];if(T.startTime>=l&&T.endTime<=d)u.push(T);else if(T.startTime>d)return u}return u}(t.cues,e,i);for(let a=0;a<s.length;a++)n&&!n(s[a])||t.removeCue(s[a])}r==="disabled"&&(t.mode=r)}function rr(t){let e=[];for(let i=0;i<t.length;i++){let n=t[i];n.kind!=="subtitles"&&n.kind!=="captions"||!n.label||e.push(t[i])}return e}var Fn="org.id3",c="com.apple.quicktime.HLS",m="https://aomedia.org/emsg/ID3";function y(){if(typeof self!="undefined")return self.VTTCue||self.TextTrackCue}function O(t,e,i,n,r){let s=new t(e,i,"");try{s.value=n,r&&(s.type=r)}catch(a){s=new t(e,i,JSON.stringify(r?L({type:r},n):n))}return s}let N=(()=>{let t=y();try{t&&new t(0,Number.POSITIVE_INFINITY,"")}catch(e){return Number.MAX_VALUE}return Number.POSITIVE_INFINITY})();function U(t,e){return t.getTime()/1000-e}class B{constructor(t){this.hls=void 0,this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=t,this._registerListeners()}destroy(){this._unregisterListeners(),this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=null}_registerListeners(){let{hls:t}=this;t.on(A.MEDIA_ATTACHED,this.onMediaAttached,this),t.on(A.MEDIA_DETACHING,this.onMediaDetaching,this),t.on(A.MANIFEST_LOADING,this.onManifestLoading,this),t.on(A.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),t.on(A.BUFFER_FLUSHING,this.onBufferFlushing,this),t.on(A.LEVEL_UPDATED,this.onLevelUpdated,this)}_unregisterListeners(){let{hls:t}=this;t.off(A.MEDIA_ATTACHED,this.onMediaAttached,this),t.off(A.MEDIA_DETACHING,this.onMediaDetaching,this),t.off(A.MANIFEST_LOADING,this.onManifestLoading,this),t.off(A.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),t.off(A.BUFFER_FLUSHING,this.onBufferFlushing,this),t.off(A.LEVEL_UPDATED,this.onLevelUpdated,this)}onMediaAttached(t,e){this.media=e.media}onMediaDetaching(){this.id3Track&&(Ui(this.id3Track),this.id3Track=null,this.media=null,this.dateRangeCuesAppended={})}onManifestLoading(){this.dateRangeCuesAppended={}}createTrack(t){let e=this.getID3Track(t.textTracks);return e.mode="hidden",e}getID3Track(t){if(this.media){for(let e=0;e<t.length;e++){let i=t[e];if(i.kind==="metadata"&&i.label==="id3")return ir(i,this.media),i}return this.media.addTextTrack("metadata","id3")}}onFragParsingMetadata(t,e){if(!this.media)return;let{hls:{config:{enableEmsgMetadataCues:i,enableID3MetadataCues:n}}}=this;if(!i&&!n)return;let{samples:r}=e;this.id3Track||(this.id3Track=this.createTrack(this.media));let s=y();if(s)for(let a=0;a<r.length;a++){let l=r[a].type;if(l===m&&!i||!n)continue;let d=$t(r[a].data);if(d){let u=r[a].pts,f=u+r[a].duration;f>N&&(f=N),f-u<=0&&(f=u+0.25);for(let E=0;E<d.length;E++){let b=d[E];if(!Qt(b)){this.updateId3CueEnds(u,l);let T=O(s,u,f,b,l);T&&this.id3Track.addCue(T)}}}}}updateId3CueEnds(t,e){var i;let n=(i=this.id3Track)==null?void 0:i.cues;if(n)for(let r=n.length;r--;){let s=n[r];s.type===e&&s.startTime<t&&s.endTime===N&&(s.endTime=t)}}onBufferFlushing(t,{startOffset:e,endOffset:i,type:n}){let{id3Track:r,hls:s}=this;if(!s)return;let{config:{enableEmsgMetadataCues:a,enableID3MetadataCues:l}}=s;if(r&&(a||l)){let d;d=n==="audio"?(u)=>u.type===Fn&&l:n==="video"?(u)=>u.type===m&&a:(u)=>u.type===Fn&&l||u.type===m&&a,nr(r,e,i,d)}}onLevelUpdated(t,{details:e}){if(!this.media||!e.hasProgramDateTime||!this.hls.config.enableDateRangeMetadataCues)return;let{dateRangeCuesAppended:i,id3Track:n}=this,{dateRanges:r}=e,s=Object.keys(r);if(n){let E=Object.keys(i).filter((b)=>!s.includes(b));for(let b=E.length;b--;){let T=E[b];Object.keys(i[T].cues).forEach((_)=>{n.removeCue(i[T].cues[_])}),delete i[T]}}let a=e.fragments[e.fragments.length-1];if(s.length===0||!j(a==null?void 0:a.programDateTime))return;this.id3Track||(this.id3Track=this.createTrack(this.media));let l=a.programDateTime/1000-a.start,d=y();for(let E=0;E<s.length;E++){let b=s[E],T=r[b],_=U(T.startDate,l),D=i[b],w=(D==null?void 0:D.cues)||{},x=(D==null?void 0:D.durationKnown)||!1,M=N,V=T.endDate;if(V)M=U(V,l),x=!0;else if(T.endOnNext&&!x){let ot=s.reduce((et,vt)=>{if(vt!==T.id){let St=r[vt];if(St.class===T.class&&St.startDate>T.startDate&&(!et||T.startDate<et.startDate))return St}return et},null);ot&&(M=U(ot.startDate,l),x=!0)}let X=Object.keys(T.attr);for(let ot=0;ot<X.length;ot++){let et=X[ot];if((f=et)==="ID"||f==="CLASS"||f==="START-DATE"||f==="DURATION"||f==="END-DATE"||f==="END-ON-NEXT")continue;let vt=w[et];if(vt)x&&!D.durationKnown&&(vt.endTime=M);else if(d){let St=T.attr[et];st(et)&&(u=St,St=Uint8Array.from(u.replace(/^0x/,"").replace(/([\da-fA-F]{2}) ?/g,"0x$1 ").replace(/ +$/,"").split(" ")).buffer);let nt=O(d,_,M,{key:et,data:St},c);nt&&(nt.id=b,this.id3Track.addCue(nt),w[et]=nt)}}i[b]={cues:w,dateRange:T,durationKnown:x}}var u,f}}class ut{constructor(t){this.hls=void 0,this.config=void 0,this.media=null,this.levelDetails=null,this.currentTime=0,this.stallCount=0,this._latency=null,this.timeupdateHandler=()=>this.timeupdate(),this.hls=t,this.config=t.config,this.registerListeners()}get latency(){return this._latency||0}get maxLatency(){let{config:t,levelDetails:e}=this;return t.liveMaxLatencyDuration!==void 0?t.liveMaxLatencyDuration:e?t.liveMaxLatencyDurationCount*e.targetduration:0}get targetLatency(){let{levelDetails:t}=this;if(t===null)return null;let{holdBack:e,partHoldBack:i,targetduration:n}=t,{liveSyncDuration:r,liveSyncDurationCount:s,lowLatencyMode:a}=this.config,l=this.hls.userConfig,d=a&&i||e;(l.liveSyncDuration||l.liveSyncDurationCount||d===0)&&(d=r!==void 0?r:s*n);let u=n;return d+Math.min(1*this.stallCount,u)}get liveSyncPosition(){let t=this.estimateLiveEdge(),e=this.targetLatency,i=this.levelDetails;if(t===null||e===null||i===null)return null;let n=i.edge,r=t-e-this.edgeStalled,s=n-i.totalduration,a=n-(this.config.lowLatencyMode&&i.partTarget||i.targetduration);return Math.min(Math.max(s,r),a)}get drift(){let{levelDetails:t}=this;return t===null?1:t.drift}get edgeStalled(){let{levelDetails:t}=this;if(t===null)return 0;let e=3*(this.config.lowLatencyMode&&t.partTarget||t.targetduration);return Math.max(t.age-e,0)}get forwardBufferLength(){let{media:t,levelDetails:e}=this;if(!t||!e)return 0;let i=t.buffered.length;return(i?t.buffered.end(i-1):e.edge)-this.currentTime}destroy(){this.unregisterListeners(),this.onMediaDetaching(),this.levelDetails=null,this.hls=this.timeupdateHandler=null}registerListeners(){this.hls.on(A.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(A.MEDIA_DETACHING,this.onMediaDetaching,this),this.hls.on(A.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.on(A.LEVEL_UPDATED,this.onLevelUpdated,this),this.hls.on(A.ERROR,this.onError,this)}unregisterListeners(){this.hls.off(A.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.off(A.MEDIA_DETACHING,this.onMediaDetaching,this),this.hls.off(A.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.off(A.LEVEL_UPDATED,this.onLevelUpdated,this),this.hls.off(A.ERROR,this.onError,this)}onMediaAttached(t,e){this.media=e.media,this.media.addEventListener("timeupdate",this.timeupdateHandler)}onMediaDetaching(){this.media&&(this.media.removeEventListener("timeupdate",this.timeupdateHandler),this.media=null)}onManifestLoading(){this.levelDetails=null,this._latency=null,this.stallCount=0}onLevelUpdated(t,{details:e}){this.levelDetails=e,e.advanced&&this.timeupdate(),!e.live&&this.media&&this.media.removeEventListener("timeupdate",this.timeupdateHandler)}onError(t,e){var i;e.details===H.BUFFER_STALLED_ERROR&&(this.stallCount++,(i=this.levelDetails)!=null&&i.live&&C.warn("[playback-rate-controller]: Stall detected, adjusting target latency"))}timeupdate(){let{media:t,levelDetails:e}=this;if(!t||!e)return;this.currentTime=t.currentTime;let i=this.computeLatency();if(i===null)return;this._latency=i;let{lowLatencyMode:n,maxLiveSyncPlaybackRate:r}=this.config;if(!n||r===1||!e.live)return;let s=this.targetLatency;if(s===null)return;let a=i-s;if(a<Math.min(this.maxLatency,s+e.targetduration)&&a>0.05&&this.forwardBufferLength>1){let l=Math.min(2,Math.max(1,r)),d=Math.round(2/(1+Math.exp(-0.75*a-this.edgeStalled))*20)/20;t.playbackRate=Math.min(l,Math.max(1,d))}else t.playbackRate!==1&&t.playbackRate!==0&&(t.playbackRate=1)}estimateLiveEdge(){let{levelDetails:t}=this;return t===null?null:t.edge+t.age}computeLatency(){let t=this.estimateLiveEdge();return t===null?null:t-this.currentTime}}let ct=["NONE","TYPE-0","TYPE-1",null],It=["SDR","PQ","HLG"];var yt="",Pt="YES",Ot="v2";function Et(t){let{canSkipUntil:e,canSkipDateRanges:i,age:n}=t;return e&&n<e/2?i?Ot:Pt:yt}class Tt{constructor(t,e,i){this.msn=void 0,this.part=void 0,this.skip=void 0,this.msn=t,this.part=e,this.skip=i}addDirectives(t){let e=new self.URL(t);return this.msn!==void 0&&e.searchParams.set("_HLS_msn",this.msn.toString()),this.part!==void 0&&e.searchParams.set("_HLS_part",this.part.toString()),this.skip&&e.searchParams.set("_HLS_skip",this.skip),e.href}}class ie{constructor(t){this._attrs=void 0,this.audioCodec=void 0,this.bitrate=void 0,this.codecSet=void 0,this.url=void 0,this.frameRate=void 0,this.height=void 0,this.id=void 0,this.name=void 0,this.videoCodec=void 0,this.width=void 0,this.details=void 0,this.fragmentError=0,this.loadError=0,this.loaded=void 0,this.realBitrate=0,this.supportedPromise=void 0,this.supportedResult=void 0,this._avgBitrate=0,this._audioGroups=void 0,this._subtitleGroups=void 0,this._urlId=0,this.url=[t.url],this._attrs=[t.attrs],this.bitrate=t.bitrate,t.details&&(this.details=t.details),this.id=t.id||0,this.name=t.name,this.width=t.width||0,this.height=t.height||0,this.frameRate=t.attrs.optionalFloat("FRAME-RATE",0),this._avgBitrate=t.attrs.decimalInteger("AVERAGE-BANDWIDTH"),this.audioCodec=t.audioCodec,this.videoCodec=t.videoCodec,this.codecSet=[t.videoCodec,t.audioCodec].filter((e)=>!!e).map((e)=>e.substring(0,4)).join(","),this.addGroupId("audio",t.attrs.AUDIO),this.addGroupId("text",t.attrs.SUBTITLES)}get maxBitrate(){return Math.max(this.realBitrate,this.bitrate)}get averageBitrate(){return this._avgBitrate||this.realBitrate||this.bitrate}get attrs(){return this._attrs[0]}get codecs(){return this.attrs.CODECS||""}get pathwayId(){return this.attrs["PATHWAY-ID"]||"."}get videoRange(){return this.attrs["VIDEO-RANGE"]||"SDR"}get score(){return this.attrs.optionalFloat("SCORE",0)}get uri(){return this.url[0]||""}hasAudioGroup(t){return _e(this._audioGroups,t)}hasSubtitleGroup(t){return _e(this._subtitleGroups,t)}get audioGroups(){return this._audioGroups}get subtitleGroups(){return this._subtitleGroups}addGroupId(t,e){if(e){if(t==="audio"){let i=this._audioGroups;i||(i=this._audioGroups=[]),i.indexOf(e)===-1&&i.push(e)}else if(t==="text"){let i=this._subtitleGroups;i||(i=this._subtitleGroups=[]),i.indexOf(e)===-1&&i.push(e)}}}get urlId(){return 0}set urlId(t){}get audioGroupIds(){return this.audioGroups?[this.audioGroupId]:void 0}get textGroupIds(){return this.subtitleGroups?[this.textGroupId]:void 0}get audioGroupId(){var t;return(t=this.audioGroups)==null?void 0:t[0]}get textGroupId(){var t;return(t=this.subtitleGroups)==null?void 0:t[0]}addFallback(){}}function _e(t,e){return!(!e||!t)&&t.indexOf(e)!==-1}function Be(t,e){let i=e.startPTS;if(j(i)){let n,r=0;e.sn>t.sn?(r=i-t.start,n=t):(r=t.start-i,n=e),n.duration!==r&&(n.duration=r)}else if(e.sn>t.sn)t.cc===e.cc&&t.minEndPTS?e.start=t.start+(t.minEndPTS-t.start):e.start=t.start+t.duration;else e.start=Math.max(t.start-e.duration,0)}function He(t,e,i,n,r,s){n-i<=0&&(C.warn("Fragment should have a positive duration",e),n=i+e.duration,s=r+e.duration);let a=i,l=n,d=e.startPTS,u=e.endPTS;if(j(d)){let D=Math.abs(d-i);j(e.deltaPTS)?e.deltaPTS=Math.max(D,e.deltaPTS):e.deltaPTS=D,a=Math.max(i,d),i=Math.min(i,d),r=Math.min(r,e.startDTS),l=Math.min(n,u),n=Math.max(n,u),s=Math.max(s,e.endDTS)}let f=i-e.start;e.start!==0&&(e.start=i),e.duration=n-e.start,e.startPTS=i,e.maxStartPTS=a,e.startDTS=r,e.endPTS=n,e.minEndPTS=l,e.endDTS=s;let E=e.sn;if(!t||E<t.startSN||E>t.endSN)return 0;let b,T=E-t.startSN,_=t.fragments;for(_[T]=e,b=T;b>0;b--)Be(_[b],_[b-1]);for(b=T;b<_.length-1;b++)Be(_[b],_[b+1]);return t.fragmentHint&&Be(_[_.length-1],t.fragmentHint),t.PTSKnown=t.alignedSliding=!0,f}function wi(t,e){let i=null,n=t.fragments;for(let d=n.length-1;d>=0;d--){let u=n[d].initSegment;if(u){i=u;break}}t.fragmentHint&&delete t.fragmentHint.endPTS;let r,s=0;if(function(d,u,f){let E=u.skippedSegments,b=Math.max(d.startSN,u.startSN)-u.startSN,T=(d.fragmentHint?1:0)+(E?u.endSN:Math.min(d.endSN,u.endSN))-u.startSN,_=u.startSN-d.startSN,D=u.fragmentHint?u.fragments.concat(u.fragmentHint):u.fragments,w=d.fragmentHint?d.fragments.concat(d.fragmentHint):d.fragments;for(let x=b;x<=T;x++){let M=w[_+x],V=D[x];E&&!V&&x<E&&(V=u.fragments[x]=M),M&&V&&f(M,V)}}(t,e,(d,u)=>{d.relurl&&(s=d.cc-u.cc),j(d.startPTS)&&j(d.endPTS)&&(u.start=u.startPTS=d.startPTS,u.startDTS=d.startDTS,u.maxStartPTS=d.maxStartPTS,u.endPTS=d.endPTS,u.endDTS=d.endDTS,u.minEndPTS=d.minEndPTS,u.duration=d.endPTS-d.startPTS,u.duration&&(r=u),e.PTSKnown=e.alignedSliding=!0),u.elementaryStreams=d.elementaryStreams,u.loader=d.loader,u.stats=d.stats,d.initSegment&&(u.initSegment=d.initSegment,i=d.initSegment)}),i)(e.fragmentHint?e.fragments.concat(e.fragmentHint):e.fragments).forEach((d)=>{var u;!d||d.initSegment&&d.initSegment.relurl!==((u=i)==null?void 0:u.relurl)||(d.initSegment=i)});if(e.skippedSegments)if(e.deltaUpdateFailed=e.fragments.some((d)=>!d),e.deltaUpdateFailed){C.warn("[level-helper] Previous playlist missing segments skipped in delta playlist");for(let d=e.skippedSegments;d--;)e.fragments.shift();e.startSN=e.fragments[0].sn,e.startCC=e.fragments[0].cc}else e.canSkipDateRanges&&(e.dateRanges=function(d,u,f){let E=z({},d);return f&&f.forEach((b)=>{delete E[b]}),Object.keys(u).forEach((b)=>{let T=new pt(u[b].attr,E[b]);T.isValid?E[b]=T:C.warn(`Ignoring invalid Playlist Delta Update DATERANGE tag: "${JSON.stringify(u[b].attr)}"`)}),E}(t.dateRanges,e.dateRanges,e.recentlyRemovedDateranges));let a=e.fragments;if(s){C.warn("discontinuity sliding from playlist, take drift into account");for(let d=0;d<a.length;d++)a[d].cc+=s}e.skippedSegments&&(e.startCC=e.fragments[0].cc),function(d,u,f){if(d&&u){let E=0;for(let b=0,T=d.length;b<=T;b++){let _=d[b],D=u[b+E];_&&D&&_.index===D.index&&_.fragment.sn===D.fragment.sn?f(_,D):E--}}}(t.partList,e.partList,(d,u)=>{u.elementaryStreams=d.elementaryStreams,u.stats=d.stats}),r?He(e,r,r.startPTS,r.endPTS,r.startDTS,r.endDTS):sr(t,e),a.length&&(e.totalduration=e.edge-a[0].start),e.driftStartTime=t.driftStartTime,e.driftStart=t.driftStart;let l=e.advancedDateTime;if(e.advanced&&l){let d=e.edge;e.driftStart||(e.driftStartTime=l,e.driftStart=d),e.driftEndTime=l,e.driftEnd=d}else e.driftEndTime=t.driftEndTime,e.driftEnd=t.driftEnd,e.advancedDateTime=t.advancedDateTime}function sr(t,e){let i=e.startSN+e.skippedSegments-t.startSN,n=t.fragments;i<0||i>=n.length||Bn(e,n[i].start)}function Bn(t,e){if(e){let i=t.fragments;for(let n=t.skippedSegments;n<i.length;n++)i[n].start+=e;t.fragmentHint&&(t.fragmentHint.start+=e)}}function Cr(t,e,i){var n;return t!=null&&t.details?_a((n=t.details)==null?void 0:n.partList,e,i):null}function _a(t,e,i){if(t)for(let n=t.length;n--;){let r=t[n];if(r.index===i&&r.fragment.sn===e)return r}return null}function Bs(t){t.forEach((e,i)=>{let{details:n}=e;n!=null&&n.fragments&&n.fragments.forEach((r)=>{r.level=i})})}function es(t){switch(t.details){case H.FRAG_LOAD_TIMEOUT:case H.KEY_LOAD_TIMEOUT:case H.LEVEL_LOAD_TIMEOUT:case H.MANIFEST_LOAD_TIMEOUT:return!0}return!1}function La(t,e){let i=es(e);return t.default[(i?"timeout":"error")+"Retry"]}function Us(t,e){let i=t.backoff==="linear"?1:Math.pow(2,e);return Math.min(i*t.retryDelayMs,t.maxRetryDelayMs)}function wa(t){return L(L({},t),{errorRetry:null,timeoutRetry:null})}function ar(t,e,i,n){if(!t)return!1;let r=n==null?void 0:n.code,s=e<t.maxNumRetry&&(function(a){return a===0&&navigator.onLine===!1||!!a&&(a<400||a>499)}(r)||!!i);return t.shouldRetry?t.shouldRetry(t,e,i,n,s):s}let Ir=function(t,e){let i=0,n=t.length-1,r=null,s=null;for(;i<=n;){r=(i+n)/2|0,s=t[r];let a=e(s);if(a>0)i=r+1;else{if(!(a<0))return s;n=r-1}}return null};function or(t,e,i=0,n=0){let r=null;if(t){r=e[t.sn-e[0].sn+1]||null;let a=t.endDTS-i;a>0&&a<0.0000015&&(i+=0.0000015)}else i===0&&e[0].start===0&&(r=e[0]);if(r&&(!t||t.level===r.level)&&Un(i,n,r)===0)return r;let s=Ir(e,Un.bind(null,i,n));return!s||s===t&&r?r:s}function Un(t=0,e=0,i){if(i.start<=t&&i.start+i.duration>t)return 0;let n=Math.min(e,i.duration+(i.deltaPTS?i.deltaPTS:0));return i.start+i.duration-n<=t?1:i.start-n>t&&i.start?-1:0}function ki(t,e,i){let n=1000*Math.min(e,i.duration+(i.deltaPTS?i.deltaPTS:0));return(i.endProgramDateTime||0)-n>t}var $s=0,un=2,Or=3,ui=5,$n=0,Gs=1,Hs=2;class ii{constructor(t,e){this.hls=void 0,this.timer=-1,this.requestScheduled=-1,this.canLoad=!1,this.log=void 0,this.warn=void 0,this.log=C.log.bind(C,e+":"),this.warn=C.warn.bind(C,e+":"),this.hls=t}destroy(){this.clearTimer(),this.hls=this.log=this.warn=null}clearTimer(){this.timer!==-1&&(self.clearTimeout(this.timer),this.timer=-1)}startLoad(){this.canLoad=!0,this.requestScheduled=-1,this.loadPlaylist()}stopLoad(){this.canLoad=!1,this.clearTimer()}switchParams(t,e,i){let n=e==null?void 0:e.renditionReports;if(n){let r=-1;for(let s=0;s<n.length;s++){let a=n[s],l;try{l=new self.URL(a.URI,e.url).href}catch(d){C.warn("Could not construct new URL for Rendition Report: "+d),l=a.URI||""}if(l===t){r=s;break}l===t.substring(0,l.length)&&(r=s)}if(r!==-1){let s=n[r],a=parseInt(s["LAST-MSN"])||(e==null?void 0:e.lastPartSn),l=parseInt(s["LAST-PART"])||(e==null?void 0:e.lastPartIndex);if(this.hls.config.lowLatencyMode){let u=Math.min(e.age-e.partTarget,e.targetduration);l>=0&&u>e.partTarget&&(l+=1)}let d=i&&Et(i);return new Tt(a,l>=0?l:void 0,d)}}}loadPlaylist(t){this.requestScheduled===-1&&(this.requestScheduled=self.performance.now())}shouldLoadPlaylist(t){return this.canLoad&&!!t&&!!t.url&&(!t.details||t.details.live)}shouldReloadPlaylist(t){return this.timer===-1&&this.requestScheduled===-1&&this.shouldLoadPlaylist(t)}playlistLoaded(t,e,i){let{details:n,stats:r}=e,s=self.performance.now(),a=r.loading.first?Math.max(0,s-r.loading.first):0;if(n.advancedDateTime=Date.now()-a,n.live||i!=null&&i.live){if(n.reloaded(i),i&&this.log(`live playlist ${t} ${n.advanced?"REFRESHED "+n.lastPartSn+"-"+n.lastPartIndex:n.updated?"UPDATED":"MISSED"}`),i&&n.fragments.length>0&&wi(i,n),!this.canLoad||!n.live)return;let l,d=void 0,u=void 0;if(n.canBlockReload&&n.endSN&&n.advanced){let _=this.hls.config.lowLatencyMode,D=n.lastPartSn,w=n.endSN,x=n.lastPartIndex,M=D===w,V=_?0:x;x!==-1?(d=M?w+1:D,u=M?V:x+1):d=w+1;let X=n.age,ot=X+n.ageHeader,et=Math.min(ot-n.partTarget,1.5*n.targetduration);if(et>0){if(i&&et>i.tuneInGoal)this.warn(`CDN Tune-in goal increased from: ${i.tuneInGoal} to: ${et} with playlist age: ${n.age}`),et=0;else{let vt=Math.floor(et/n.targetduration);if(d+=vt,u!==void 0)u+=Math.round(et%n.targetduration/n.partTarget);this.log(`CDN Tune-in age: ${n.ageHeader}s last advanced ${X.toFixed(2)}s goal: ${et} skip sn ${vt} to part ${u}`)}n.tuneInGoal=et}if(l=this.getDeliveryDirectives(n,e.deliveryDirectives,d,u),_||!M)return void this.loadPlaylist(l)}else(n.canBlockReload||n.canSkipUntil)&&(l=this.getDeliveryDirectives(n,e.deliveryDirectives,d,u));let f=this.hls.mainForwardBufferInfo,E=f?f.end-f.len:0,b=function(_,D=1/0){let w=1000*_.targetduration;if(_.updated){let x=_.fragments;if(x.length&&w*4>D){let V=1000*x[x.length-1].duration;V<w&&(w=V)}}else w/=2;return Math.round(w)}(n,1000*(n.edge-E));n.updated&&s>this.requestScheduled+b&&(this.requestScheduled=r.loading.start),d!==void 0&&n.canBlockReload?this.requestScheduled=r.loading.first+b-(1000*n.partTarget||1000):this.requestScheduled===-1||this.requestScheduled+b<s?this.requestScheduled=s:this.requestScheduled-s<=0&&(this.requestScheduled+=b);let T=this.requestScheduled-s;T=Math.max(0,T),this.log(`reload live playlist ${t} in ${Math.round(T)} ms`),this.timer=self.setTimeout(()=>this.loadPlaylist(l),T)}else this.clearTimer()}getDeliveryDirectives(t,e,i,n){let r=Et(t);return e!=null&&e.skip&&t.deltaUpdateFailed&&(i=e.msn,n=e.part,r=yt),new Tt(i,n,r)}checkRetry(t){let e=t.details,i=es(t),n=t.errorAction,{action:r,retryCount:s=0,retryConfig:a}=n||{},l=!!n&&!!a&&(r===ui||!n.resolved&&r===un);if(l){var d;if(this.requestScheduled=-1,s>=a.maxNumRetry)return!1;if(i&&(d=t.context)!=null&&d.deliveryDirectives)this.warn(`Retrying playlist loading ${s+1}/${a.maxNumRetry} after "${e}" without delivery-directives`),this.loadPlaylist();else{let u=Us(a,s);this.timer=self.setTimeout(()=>this.loadPlaylist(),u),this.warn(`Retrying playlist loading ${s+1}/${a.maxNumRetry} after "${e}" in ${u}ms`)}t.levelRetry=!0,n.resolved=!0}return l}}class Gn{constructor(t,e=0,i=0){this.halfLife=void 0,this.alpha_=void 0,this.estimate_=void 0,this.totalWeight_=void 0,this.halfLife=t,this.alpha_=t?Math.exp(Math.log(0.5)/t):0,this.estimate_=e,this.totalWeight_=i}sample(t,e){let i=Math.pow(this.alpha_,t);this.estimate_=e*(1-i)+i*this.estimate_,this.totalWeight_+=t}getTotalWeight(){return this.totalWeight_}getEstimate(){if(this.alpha_){let t=1-Math.pow(this.alpha_,this.totalWeight_);if(t)return this.estimate_/t}return this.estimate_}}class Ks{constructor(t,e,i,n=100){this.defaultEstimate_=void 0,this.minWeight_=void 0,this.minDelayMs_=void 0,this.slow_=void 0,this.fast_=void 0,this.defaultTTFB_=void 0,this.ttfb_=void 0,this.defaultEstimate_=i,this.minWeight_=0.001,this.minDelayMs_=50,this.slow_=new Gn(t),this.fast_=new Gn(e),this.defaultTTFB_=n,this.ttfb_=new Gn(t)}update(t,e){let{slow_:i,fast_:n,ttfb_:r}=this;i.halfLife!==t&&(this.slow_=new Gn(t,i.getEstimate(),i.getTotalWeight())),n.halfLife!==e&&(this.fast_=new Gn(e,n.getEstimate(),n.getTotalWeight())),r.halfLife!==t&&(this.ttfb_=new Gn(t,r.getEstimate(),r.getTotalWeight()))}sample(t,e){let i=(t=Math.max(t,this.minDelayMs_))/1000,n=8*e/i;this.fast_.sample(i,n),this.slow_.sample(i,n)}sampleTTFB(t){let e=t/1000,i=Math.sqrt(2)*Math.exp(-Math.pow(e,2)/2);this.ttfb_.sample(i,Math.max(t,5))}canEstimate(){return this.fast_.getTotalWeight()>=this.minWeight_}getEstimate(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_}getEstimateTTFB(){return this.ttfb_.getTotalWeight()>=this.minWeight_?this.ttfb_.getEstimate():this.defaultTTFB_}destroy(){}}let is={supported:!0,configurations:[],decodingInfoResults:[{supported:!0,powerEfficient:!0,smooth:!0}]},Vs={};function bo(t,e,i,n,r,s){let a=t.audioCodec?t.audioGroups:null,l=s==null?void 0:s.audioCodec,d=s==null?void 0:s.channels,u=d?parseInt(d):l?1/0:2,f=null;if(a!=null&&a.length)try{f=a.length===1&&a[0]?e.groups[a[0]].channels:a.reduce((E,b)=>{if(b){let T=e.groups[b];if(!T)throw new Error(`Audio track group ${b} not found`);Object.keys(T.channels).forEach((_)=>{E[_]=(E[_]||0)+T.channels[_]})}return E},{2:0})}catch(E){return!0}return t.videoCodec!==void 0&&(t.width>1920&&t.height>1088||t.height>1920&&t.width>1088||t.frameRate>Math.max(n,30)||t.videoRange!=="SDR"&&t.videoRange!==i||t.bitrate>Math.max(r,8000000))||!!f&&j(u)&&Object.keys(f).some((E)=>parseInt(E)>u)}function bn(t,e,i){let{videoCodec:n,audioCodec:r}=t;if(!n||!r||!i)return Promise.resolve(is);let s={width:t.width,height:t.height,bitrate:Math.ceil(Math.max(0.9*t.bitrate,t.averageBitrate)),framerate:t.frameRate||30},a=t.videoRange;a!=="SDR"&&(s.transferFunction=a.toLowerCase());let l=n.split(",").map((d)=>({type:"media-source",video:L(L({},s),{},{contentType:dn(d,"video")})}));return r&&t.audioGroups&&t.audioGroups.forEach((d)=>{var u;d&&((u=e.groups[d])==null||u.tracks.forEach((f)=>{if(f.groupId===d){let E=f.channels||"",b=parseFloat(E);j(b)&&b>2&&l.push.apply(l,r.split(",").map((T)=>({type:"media-source",audio:{contentType:dn(T,"audio"),channels:""+b}})))}}))}),Promise.all(l.map((d)=>{let u=function(f){let{audio:E,video:b}=f,T=b||E;if(T){let _=T.contentType.split('"')[1];if(b)return`r${b.height}x${b.width}f${Math.ceil(b.framerate)}${b.transferFunction||"sd"}_${_}_${Math.ceil(b.bitrate/1e5)}`;if(E)return`c${E.channels}${E.spatialRendering?"s":"n"}_${_}`}return""}(d);return Vs[u]||(Vs[u]=i.decodingInfo(d))})).then((d)=>({supported:!d.some((u)=>!u.supported),configurations:l,decodingInfoResults:d})).catch((d)=>({supported:!1,configurations:l,decodingInfoResults:[],error:d}))}function To(t,e){let i=!1,n=[];return t&&(i=t!=="SDR",n=[t]),e&&(n=e.allowedVideoRanges||It.slice(0),i=e.preferHDR!==void 0?e.preferHDR:function(){if(typeof matchMedia=="function"){let r=matchMedia("(dynamic-range: high)"),s=matchMedia("bad query");if(r.media!==s.media)return r.matches===!0}return!1}(),n=i?n.filter((r)=>r!=="SDR"):["SDR"]),{preferHDR:i,allowedVideoRanges:n}}function Ei(t,e){C.log(`[abr] start candidates with "${t}" ignored because ${e}`)}function rn(t,e,i){if("attrs"in t){let n=e.indexOf(t);if(n!==-1)return n}for(let n=0;n<e.length;n++)if(lr(t,e[n],i))return n;return-1}function lr(t,e,i){let{groupId:n,name:r,lang:s,assocLang:a,characteristics:l,default:d}=t,u=t.forced;return(n===void 0||e.groupId===n)&&(r===void 0||e.name===r)&&(s===void 0||e.lang===s)&&(s===void 0||e.assocLang===a)&&(d===void 0||e.default===d)&&(u===void 0||e.forced===u)&&(l===void 0||function(f,E=""){let b=f.split(","),T=E.split(",");return b.length===T.length&&!b.some((_)=>T.indexOf(_)===-1)}(l,e.characteristics))&&(i===void 0||i(t,e))}function cr(t,e){let{audioCodec:i,channels:n}=t;return!(i!==void 0&&(e.audioCodec||"").substring(0,4)!==i.substring(0,4)||n!==void 0&&n!==(e.channels||"2"))}function ka(t,e,i){for(let n=e;n;n--)if(i(t[n]))return n;for(let n=e+1;n<t.length;n++)if(i(t[n]))return n;return-1}var Ri="NOT_LOADED",xr="APPENDING",Hn="PARTIAL",Ie="OK";class Ws{constructor(t){this.activePartLists=Object.create(null),this.endListFragments=Object.create(null),this.fragments=Object.create(null),this.timeRanges=Object.create(null),this.bufferPadding=0.2,this.hls=void 0,this.hasGaps=!1,this.hls=t,this._registerListeners()}_registerListeners(){let{hls:t}=this;t.on(A.BUFFER_APPENDED,this.onBufferAppended,this),t.on(A.FRAG_BUFFERED,this.onFragBuffered,this),t.on(A.FRAG_LOADED,this.onFragLoaded,this)}_unregisterListeners(){let{hls:t}=this;t.off(A.BUFFER_APPENDED,this.onBufferAppended,this),t.off(A.FRAG_BUFFERED,this.onFragBuffered,this),t.off(A.FRAG_LOADED,this.onFragLoaded,this)}destroy(){this._unregisterListeners(),this.fragments=this.activePartLists=this.endListFragments=this.timeRanges=null}getAppendedFrag(t,e){let i=this.activePartLists[e];if(i)for(let n=i.length;n--;){let r=i[n];if(!r)break;let s=r.end;if(r.start<=t&&s!==null&&t<=s)return r}return this.getBufferedFrag(t,e)}getBufferedFrag(t,e){let{fragments:i}=this,n=Object.keys(i);for(let r=n.length;r--;){let s=i[n[r]];if((s==null?void 0:s.body.type)===e&&s.buffered){let a=s.body;if(a.start<=t&&t<=a.end)return a}}return null}detectEvictedFragments(t,e,i,n){this.timeRanges&&(this.timeRanges[t]=e);let r=(n==null?void 0:n.fragment.sn)||-1;Object.keys(this.fragments).forEach((s)=>{let a=this.fragments[s];if(!a)return;if(r>=a.body.sn)return;if(!a.buffered&&!a.loaded)return void(a.body.type===i&&this.removeFragment(a.body));let l=a.range[t];l&&l.time.some((d)=>{let u=!this.isTimeBuffered(d.startPTS,d.endPTS,e);return u&&this.removeFragment(a.body),u})})}detectPartialFragments(t){let e=this.timeRanges,{frag:i,part:n}=t;if(!e||i.sn==="initSegment")return;let r=Si(i),s=this.fragments[r];if(!s||s.buffered&&i.gap)return;let a=!i.relurl;if(Object.keys(e).forEach((l)=>{let d=i.elementaryStreams[l];if(!d)return;let u=e[l],f=a||d.partial===!0;s.range[l]=this.getBufferedTimes(i,n,f,u)}),s.loaded=null,Object.keys(s.range).length)s.buffered=!0,(s.body.endList=i.endList||s.body.endList)&&(this.endListFragments[s.body.type]=s),ns(s)||this.removeParts(i.sn-1,i.type);else this.removeFragment(s.body)}removeParts(t,e){let i=this.activePartLists[e];i&&(this.activePartLists[e]=i.filter((n)=>n.fragment.sn>=t))}fragBuffered(t,e){let i=Si(t),n=this.fragments[i];!n&&e&&(n=this.fragments[i]={body:t,appendedPTS:null,loaded:null,buffered:!1,range:Object.create(null)},t.gap&&(this.hasGaps=!0)),n&&(n.loaded=null,n.buffered=!0)}getBufferedTimes(t,e,i,n){let r={time:[],partial:i},s=t.start,a=t.end,l=t.minEndPTS||a,d=t.maxStartPTS||s;for(let u=0;u<n.length;u++){let f=n.start(u)-this.bufferPadding,E=n.end(u)+this.bufferPadding;if(d>=f&&l<=E){r.time.push({startPTS:Math.max(s,n.start(u)),endPTS:Math.min(a,n.end(u))});break}if(s<E&&a>f){let b=Math.max(s,n.start(u)),T=Math.min(a,n.end(u));T>b&&(r.partial=!0,r.time.push({startPTS:b,endPTS:T}))}else if(a<=f)break}return r}getPartialFragment(t){let e,i,n,r=null,s=0,{bufferPadding:a,fragments:l}=this;return Object.keys(l).forEach((d)=>{let u=l[d];u&&ns(u)&&(i=u.body.start-a,n=u.body.end+a,t>=i&&t<=n&&(e=Math.min(t-i,n-t),s<=e&&(r=u.body,s=e)))}),r}isEndListAppended(t){let e=this.endListFragments[t];return e!==void 0&&(e.buffered||ns(e))}getState(t){let e=Si(t),i=this.fragments[e];return i?i.buffered?ns(i)?Hn:Ie:xr:Ri}isTimeBuffered(t,e,i){let n,r;for(let s=0;s<i.length;s++){if(n=i.start(s)-this.bufferPadding,r=i.end(s)+this.bufferPadding,t>=n&&e<=r)return!0;if(e<=n)return!1}return!1}onFragLoaded(t,e){let{frag:i,part:n}=e;if(i.sn==="initSegment"||i.bitrateTest)return;let r=n?null:e,s=Si(i);this.fragments[s]={body:i,appendedPTS:null,loaded:r,buffered:!1,range:Object.create(null)}}onBufferAppended(t,e){let{frag:i,part:n,timeRanges:r}=e;if(i.sn==="initSegment")return;let s=i.type;if(n){let a=this.activePartLists[s];a||(this.activePartLists[s]=a=[]),a.push(n)}this.timeRanges=r,Object.keys(r).forEach((a)=>{let l=r[a];this.detectEvictedFragments(a,l,s,n)})}onFragBuffered(t,e){this.detectPartialFragments(e)}hasFragment(t){let e=Si(t);return!!this.fragments[e]}hasParts(t){var e;return!((e=this.activePartLists[t])==null||!e.length)}removeFragmentsInRange(t,e,i,n,r){n&&!this.hasGaps||Object.keys(this.fragments).forEach((s)=>{let a=this.fragments[s];if(!a)return;let l=a.body;l.type!==i||n&&!l.gap||l.start<e&&l.end>t&&(a.buffered||r)&&this.removeFragment(l)})}removeFragment(t){let e=Si(t);t.stats.loaded=0,t.clearElementaryStreamInfo();let i=this.activePartLists[t.type];if(i){let n=t.sn;this.activePartLists[t.type]=i.filter((r)=>r.fragment.sn!==n)}delete this.fragments[e],t.endList&&delete this.endListFragments[t.type]}removeAllFragments(){this.fragments=Object.create(null),this.endListFragments=Object.create(null),this.activePartLists=Object.create(null),this.hasGaps=!1}}function ns(t){var e,i,n;return t.buffered&&(t.body.gap||((e=t.range.video)==null?void 0:e.partial)||((i=t.range.audio)==null?void 0:i.partial)||((n=t.range.audiovideo)==null?void 0:n.partial))}function Si(t){return`${t.type}_${t.level}_${t.sn}`}let js={length:0,start:()=>0,end:()=>0};class ye{static isBuffered(t,e){try{if(t){let i=ye.getBuffered(t);for(let n=0;n<i.length;n++)if(e>=i.start(n)&&e<=i.end(n))return!0}}catch(i){}return!1}static bufferInfo(t,e,i){try{if(t){let n=ye.getBuffered(t),r=[],s;for(s=0;s<n.length;s++)r.push({start:n.start(s),end:n.end(s)});return this.bufferedInfo(r,e,i)}}catch(n){}return{len:0,start:e,end:e,nextStart:void 0}}static bufferedInfo(t,e,i){e=Math.max(0,e),t.sort(function(d,u){return d.start-u.start||u.end-d.end});let n=[];if(i)for(let d=0;d<t.length;d++){let u=n.length;if(u){let f=n[u-1].end;t[d].start-f<i?t[d].end>f&&(n[u-1].end=t[d].end):n.push(t[d])}else n.push(t[d])}else n=t;let r,s=0,a=e,l=e;for(let d=0;d<n.length;d++){let u=n[d].start,f=n[d].end;if(e+i>=u&&e<f)a=u,l=f,s=l-e;else if(e+i<u){r=u;break}}return{len:s,start:a||0,end:l||0,nextStart:r}}static getBuffered(t){try{return t.buffered}catch(e){return C.log("failed to get media.buffered",e),js}}}class dr{constructor(t,e,i,n=0,r=-1,s=!1){this.level=void 0,this.sn=void 0,this.part=void 0,this.id=void 0,this.size=void 0,this.partial=void 0,this.transmuxing={start:0,executeStart:0,executeEnd:0,end:0},this.buffering={audio:{start:0,executeStart:0,executeEnd:0,end:0},video:{start:0,executeStart:0,executeEnd:0,end:0},audiovideo:{start:0,executeStart:0,executeEnd:0,end:0}},this.level=t,this.sn=e,this.id=i,this.size=n,this.part=r,this.partial=s}}function Nr(t,e){for(let n=0,r=t.length;n<r;n++){var i;if(((i=t[n])==null?void 0:i.cc)===e)return t[n]}return null}function rs(t,e){if(t){let i=t.start+e;t.start=t.startPTS=i,t.endPTS=i+t.duration}}function Ra(t,e){let i=e.fragments;for(let n=0,r=i.length;n<r;n++)rs(i[n],t);e.fragmentHint&&rs(e.fragmentHint,t),e.alignedSliding=!0}function Ao(t,e,i){e&&(function(n,r,s){if(function(a,l,d){return!(!l||!(d.endCC>d.startCC||a&&a.cc<d.startCC))}(n,s,r)){let a=function(l,d){let u=l.fragments,f=d.fragments;if(!f.length||!u.length)return void C.log("No fragments to align");let E=Nr(u,f[0].cc);if(E&&(!E||E.startPTS))return E;C.log("No frag in previous level to align on")}(s,r);a&&j(a.start)&&(C.log("Adjusting PTS using last level due to CC increase within current level "+r.url),Ra(a.start,r))}}(t,i,e),!i.alignedSliding&&e&&ss(i,e),i.alignedSliding||!e||i.skippedSegments||sr(e,i))}function ss(t,e){if(!t.hasProgramDateTime||!e.hasProgramDateTime)return;let i=t.fragments,n=e.fragments;if(!i.length||!n.length)return;let r,s,a=Math.min(e.endCC,t.endCC);e.startCC<a&&t.startCC<a&&(r=Nr(n,a),s=Nr(i,a)),r&&s||(r=n[Math.floor(n.length/2)],s=Nr(i,r.cc)||i[Math.floor(i.length/2)]);let l=r.programDateTime,d=s.programDateTime;if(!l||!d)return;Ra((d-l)/1000-(s.start-r.start),t)}let qs=Math.pow(2,17);class Da{constructor(t){this.config=void 0,this.loader=null,this.partLoadTimeout=-1,this.config=t}destroy(){this.loader&&(this.loader.destroy(),this.loader=null)}abort(){this.loader&&this.loader.abort()}load(t,e){let i=t.url;if(!i)return Promise.reject(new sn({type:Ft.NETWORK_ERROR,details:H.FRAG_LOAD_ERROR,fatal:!1,frag:t,error:new Error("Fragment does not have a "+(i?"part list":"url")),networkDetails:null}));this.abort();let n=this.config,r=n.fLoader,s=n.loader;return new Promise((a,l)=>{if(this.loader&&this.loader.destroy(),t.gap){if(t.tagList.some((b)=>b[0]==="GAP"))return void l(zs(t));t.gap=!1}let d=this.loader=t.loader=r?new r(n):new s(n),u=Ys(t),f=wa(n.fragLoadPolicy.default),E={loadPolicy:f,timeout:f.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:t.sn==="initSegment"?1/0:qs};t.stats=d.stats,d.load(u,E,{onSuccess:(b,T,_,D)=>{this.resetLoader(t,d);let w=b.data;_.resetIV&&t.decryptdata&&(t.decryptdata.iv=new Uint8Array(w.slice(0,16)),w=w.slice(16)),a({frag:t,part:null,payload:w,networkDetails:D})},onError:(b,T,_,D)=>{this.resetLoader(t,d),l(new sn({type:Ft.NETWORK_ERROR,details:H.FRAG_LOAD_ERROR,fatal:!1,frag:t,response:L({url:i,data:void 0},b),error:new Error(`HTTP Error ${b.code} ${b.text}`),networkDetails:_,stats:D}))},onAbort:(b,T,_)=>{this.resetLoader(t,d),l(new sn({type:Ft.NETWORK_ERROR,details:H.INTERNAL_ABORTED,fatal:!1,frag:t,error:new Error("Aborted"),networkDetails:_,stats:b}))},onTimeout:(b,T,_)=>{this.resetLoader(t,d),l(new sn({type:Ft.NETWORK_ERROR,details:H.FRAG_LOAD_TIMEOUT,fatal:!1,frag:t,error:new Error(`Timeout after ${E.timeout}ms`),networkDetails:_,stats:b}))},onProgress:(b,T,_,D)=>{e&&e({frag:t,part:null,payload:_,networkDetails:D})}})})}loadPart(t,e,i){this.abort();let n=this.config,r=n.fLoader,s=n.loader;return new Promise((a,l)=>{if(this.loader&&this.loader.destroy(),t.gap||e.gap)return void l(zs(t,e));let d=this.loader=t.loader=r?new r(n):new s(n),u=Ys(t,e),f=wa(n.fragLoadPolicy.default),E={loadPolicy:f,timeout:f.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:qs};e.stats=d.stats,d.load(u,E,{onSuccess:(b,T,_,D)=>{this.resetLoader(t,d),this.updateStatsFromPart(t,e);let w={frag:t,part:e,payload:b.data,networkDetails:D};i(w),a(w)},onError:(b,T,_,D)=>{this.resetLoader(t,d),l(new sn({type:Ft.NETWORK_ERROR,details:H.FRAG_LOAD_ERROR,fatal:!1,frag:t,part:e,response:L({url:u.url,data:void 0},b),error:new Error(`HTTP Error ${b.code} ${b.text}`),networkDetails:_,stats:D}))},onAbort:(b,T,_)=>{t.stats.aborted=e.stats.aborted,this.resetLoader(t,d),l(new sn({type:Ft.NETWORK_ERROR,details:H.INTERNAL_ABORTED,fatal:!1,frag:t,part:e,error:new Error("Aborted"),networkDetails:_,stats:b}))},onTimeout:(b,T,_)=>{this.resetLoader(t,d),l(new sn({type:Ft.NETWORK_ERROR,details:H.FRAG_LOAD_TIMEOUT,fatal:!1,frag:t,part:e,error:new Error(`Timeout after ${E.timeout}ms`),networkDetails:_,stats:b}))}})})}updateStatsFromPart(t,e){let i=t.stats,n=e.stats,r=n.total;if(i.loaded+=n.loaded,r){let l=Math.round(t.duration/e.duration),d=Math.min(Math.round(i.loaded/r),l),u=(l-d)*Math.round(i.loaded/d);i.total=i.loaded+u}else i.total=Math.max(i.loaded,i.total);let s=i.loading,a=n.loading;s.start?s.first+=a.first-a.start:(s.start=a.start,s.first=a.first),s.end=a.end}resetLoader(t,e){t.loader=null,this.loader===e&&(self.clearTimeout(this.partLoadTimeout),this.loader=null),e.destroy()}}function Ys(t,e=null){let i=e||t,n={frag:t,part:e,responseType:"arraybuffer",url:i.url,headers:{},rangeStart:0,rangeEnd:0},r=i.byteRangeStartOffset,s=i.byteRangeEndOffset;if(j(r)&&j(s)){var a;let l=r,d=s;if(t.sn==="initSegment"&&((a=t.decryptdata)==null?void 0:a.method)==="AES-128"){let u=s-r;u%16&&(d=s+(16-u%16)),r!==0&&(n.resetIV=!0,l=r-16)}n.rangeStart=l,n.rangeEnd=d}return n}function zs(t,e){let i=new Error(`GAP ${t.gap?"tag":"attribute"} found`),n={type:Ft.MEDIA_ERROR,details:H.FRAG_GAP,fatal:!1,frag:t,error:i,networkDetails:null};return e&&(n.part=e),(e||t).stats.aborted=!0,new sn(n)}class sn extends Error{constructor(t){super(t.error.message),this.data=void 0,this.data=t}}class Ca{constructor(t,e){this.subtle=void 0,this.aesIV=void 0,this.subtle=t,this.aesIV=e}decrypt(t,e){return this.subtle.decrypt({name:"AES-CBC",iv:this.aesIV},e,t)}}class Ia{constructor(t,e){this.subtle=void 0,this.key=void 0,this.subtle=t,this.key=e}expandKey(){return this.subtle.importKey("raw",this.key,{name:"AES-CBC"},!1,["encrypt","decrypt"])}}class as{constructor(){this.rcon=[0,1,2,4,8,16,32,64,128,27,54],this.subMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.invSubMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.sBox=new Uint32Array(256),this.invSBox=new Uint32Array(256),this.key=new Uint32Array(0),this.ksRows=0,this.keySize=0,this.keySchedule=void 0,this.invKeySchedule=void 0,this.initTable()}uint8ArrayToUint32Array_(t){let e=new DataView(t),i=new Uint32Array(4);for(let n=0;n<4;n++)i[n]=e.getUint32(4*n);return i}initTable(){let t=this.sBox,e=this.invSBox,i=this.subMix,n=i[0],r=i[1],s=i[2],a=i[3],l=this.invSubMix,d=l[0],u=l[1],f=l[2],E=l[3],b=new Uint32Array(256),T=0,_=0,D=0;for(D=0;D<256;D++)b[D]=D<128?D<<1:D<<1^283;for(D=0;D<256;D++){let w=_^_<<1^_<<2^_<<3^_<<4;w=w>>>8^255&w^99,t[T]=w,e[w]=T;let x=b[T],M=b[x],V=b[M],X=257*b[w]^16843008*w;n[T]=X<<24|X>>>8,r[T]=X<<16|X>>>16,s[T]=X<<8|X>>>24,a[T]=X,X=16843009*V^65537*M^257*x^16843008*T,d[w]=X<<24|X>>>8,u[w]=X<<16|X>>>16,f[w]=X<<8|X>>>24,E[w]=X,T?(T=x^b[b[b[V^x]]],_^=b[b[_]]):T=_=1}}expandKey(t){let e=this.uint8ArrayToUint32Array_(t),i=!0,n=0;for(;n<e.length&&i;)i=e[n]===this.key[n],n++;if(i)return;this.key=e;let r=this.keySize=e.length;if(r!==4&&r!==6&&r!==8)throw new Error("Invalid aes key size="+r);let s=this.ksRows=4*(r+6+1),a,l,d=this.keySchedule=new Uint32Array(s),u=this.invKeySchedule=new Uint32Array(s),f=this.sBox,E=this.rcon,b=this.invSubMix,T=b[0],_=b[1],D=b[2],w=b[3],x,M;for(a=0;a<s;a++)a<r?x=d[a]=e[a]:(M=x,a%r==0?(M=M<<8|M>>>24,M=f[M>>>24]<<24|f[M>>>16&255]<<16|f[M>>>8&255]<<8|f[255&M],M^=E[a/r|0]<<24):r>6&&a%r==4&&(M=f[M>>>24]<<24|f[M>>>16&255]<<16|f[M>>>8&255]<<8|f[255&M]),d[a]=x=(d[a-r]^M)>>>0);for(l=0;l<s;l++)a=s-l,M=3&l?d[a]:d[a-4],u[l]=l<4||a<=4?M:T[f[M>>>24]]^_[f[M>>>16&255]]^D[f[M>>>8&255]]^w[f[255&M]],u[l]=u[l]>>>0}networkToHostOrderSwap(t){return t<<24|(65280&t)<<8|(16711680&t)>>8|t>>>24}decrypt(t,e,i){let n=this.keySize+6,r=this.invKeySchedule,s=this.invSBox,a=this.invSubMix,l=a[0],d=a[1],u=a[2],f=a[3],E=this.uint8ArrayToUint32Array_(i),b=E[0],T=E[1],_=E[2],D=E[3],w=new Int32Array(t),x=new Int32Array(w.length),M,V,X,ot,et,vt,St,nt,it,jt,At,Kt,zt,Xt,ht=this.networkToHostOrderSwap;for(;e<w.length;){for(it=ht(w[e]),jt=ht(w[e+1]),At=ht(w[e+2]),Kt=ht(w[e+3]),et=it^r[0],vt=Kt^r[1],St=At^r[2],nt=jt^r[3],zt=4,Xt=1;Xt<n;Xt++)M=l[et>>>24]^d[vt>>16&255]^u[St>>8&255]^f[255&nt]^r[zt],V=l[vt>>>24]^d[St>>16&255]^u[nt>>8&255]^f[255&et]^r[zt+1],X=l[St>>>24]^d[nt>>16&255]^u[et>>8&255]^f[255&vt]^r[zt+2],ot=l[nt>>>24]^d[et>>16&255]^u[vt>>8&255]^f[255&St]^r[zt+3],et=M,vt=V,St=X,nt=ot,zt+=4;M=s[et>>>24]<<24^s[vt>>16&255]<<16^s[St>>8&255]<<8^s[255&nt]^r[zt],V=s[vt>>>24]<<24^s[St>>16&255]<<16^s[nt>>8&255]<<8^s[255&et]^r[zt+1],X=s[St>>>24]<<24^s[nt>>16&255]<<16^s[et>>8&255]<<8^s[255&vt]^r[zt+2],ot=s[nt>>>24]<<24^s[et>>16&255]<<16^s[vt>>8&255]<<8^s[255&St]^r[zt+3],x[e]=ht(M^b),x[e+1]=ht(ot^T),x[e+2]=ht(X^_),x[e+3]=ht(V^D),b=it,T=jt,_=At,D=Kt,e+=4}return x.buffer}}class Pr{constructor(t,{removePKCS7Padding:e=!0}={}){if(this.logEnabled=!0,this.removePKCS7Padding=void 0,this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null,this.useSoftware=void 0,this.useSoftware=t.enableSoftwareAES,this.removePKCS7Padding=e,e)try{let i=self.crypto;i&&(this.subtle=i.subtle||i.webkitSubtle)}catch(i){}this.subtle===null&&(this.useSoftware=!0)}destroy(){this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null}isSync(){return this.useSoftware}flush(){let{currentResult:t,remainderData:e}=this;if(!t||e)return this.reset(),null;let i=new Uint8Array(t);return this.reset(),this.removePKCS7Padding?function(n){let r=n.byteLength,s=r&&new DataView(n.buffer).getUint8(r-1);return s?Se(n,0,r-s):n}(i):i}reset(){this.currentResult=null,this.currentIV=null,this.remainderData=null,this.softwareDecrypter&&(this.softwareDecrypter=null)}decrypt(t,e,i){return this.useSoftware?new Promise((n,r)=>{this.softwareDecrypt(new Uint8Array(t),e,i);let s=this.flush();s?n(s.buffer):r(new Error("[softwareDecrypt] Failed to decrypt data"))}):this.webCryptoDecrypt(new Uint8Array(t),e,i)}softwareDecrypt(t,e,i){let{currentIV:n,currentResult:r,remainderData:s}=this;this.logOnce("JS AES decrypt"),s&&(t=li(s,t),this.remainderData=null);let a=this.getValidChunk(t);if(!a.length)return null;n&&(i=n);let l=this.softwareDecrypter;l||(l=this.softwareDecrypter=new as),l.expandKey(e);let d=r;return this.currentResult=l.decrypt(a.buffer,0,i),this.currentIV=Se(a,-16).buffer,d||null}webCryptoDecrypt(t,e,i){let n=this.subtle;return this.key===e&&this.fastAesKey||(this.key=e,this.fastAesKey=new Ia(n,e)),this.fastAesKey.expandKey().then((r)=>{if(!n)return Promise.reject(new Error("web crypto not initialized"));return this.logOnce("WebCrypto AES decrypt"),new Ca(n,new Uint8Array(i)).decrypt(t.buffer,r)}).catch((r)=>(C.warn(`[decrypter]: WebCrypto Error, disable WebCrypto API, ${r.name}: ${r.message}`),this.onWebCryptoError(t,e,i)))}onWebCryptoError(t,e,i){this.useSoftware=!0,this.logEnabled=!0,this.softwareDecrypt(t,e,i);let n=this.flush();if(n)return n.buffer;throw new Error("WebCrypto and softwareDecrypt: failed to decrypt data")}getValidChunk(t){let e=t,i=t.length-t.length%16;return i!==t.length&&(e=Se(t,0,i),this.remainderData=Se(t,i)),e}logOnce(t){this.logEnabled&&(C.log("[decrypter]: "+t),this.logEnabled=!1)}}let _o=function(t){let e="",i=t.length;for(let n=0;n<i;n++)e+=`[${t.start(n).toFixed(3)}-${t.end(n).toFixed(3)}]`;return e},Wi="STOPPED",be="IDLE",Xs="KEY_LOADING",ur="FRAG_LOADING",hr="FRAG_LOADING_WAITING_RETRY",fr="WAITING_TRACK",hn="PARSING",Mr="PARSED",Fr="ENDED",mr="ERROR",an="WAITING_INIT_PTS",Me="WAITING_LEVEL";class Br extends class t{constructor(){this._boundTick=void 0,this._tickTimer=null,this._tickInterval=null,this._tickCallCount=0,this._boundTick=this.tick.bind(this)}destroy(){this.onHandlerDestroying(),this.onHandlerDestroyed()}onHandlerDestroying(){this.clearNextTick(),this.clearInterval()}onHandlerDestroyed(){}hasInterval(){return!!this._tickInterval}hasNextTick(){return!!this._tickTimer}setInterval(e){return!this._tickInterval&&(this._tickCallCount=0,this._tickInterval=self.setInterval(this._boundTick,e),!0)}clearInterval(){return!!this._tickInterval&&(self.clearInterval(this._tickInterval),this._tickInterval=null,!0)}clearNextTick(){return!!this._tickTimer&&(self.clearTimeout(this._tickTimer),this._tickTimer=null,!0)}tick(){this._tickCallCount++,this._tickCallCount===1&&(this.doTick(),this._tickCallCount>1&&this.tickImmediate(),this._tickCallCount=0)}tickImmediate(){this.clearNextTick(),this._tickTimer=self.setTimeout(this._boundTick,0)}doTick(){}}{constructor(t,e,i,n,r){super(),this.hls=void 0,this.fragPrevious=null,this.fragCurrent=null,this.fragmentTracker=void 0,this.transmuxer=null,this._state=Wi,this.playlistType=void 0,this.media=null,this.mediaBuffer=null,this.config=void 0,this.bitrateTest=!1,this.lastCurrentTime=0,this.nextLoadPosition=0,this.startPosition=0,this.startTimeOffset=null,this.loadedmetadata=!1,this.retryDate=0,this.levels=null,this.fragmentLoader=void 0,this.keyLoader=void 0,this.levelLastLoaded=null,this.startFragRequested=!1,this.decrypter=void 0,this.initPTS=[],this.onvseeking=null,this.onvended=null,this.logPrefix="",this.log=void 0,this.warn=void 0,this.playlistType=r,this.logPrefix=n,this.log=C.log.bind(C,n+":"),this.warn=C.warn.bind(C,n+":"),this.hls=t,this.fragmentLoader=new Da(t.config),this.keyLoader=i,this.fragmentTracker=e,this.config=t.config,this.decrypter=new Pr(t.config),t.on(A.MANIFEST_LOADED,this.onManifestLoaded,this)}doTick(){this.onTickEnd()}onTickEnd(){}startLoad(t){}stopLoad(){this.fragmentLoader.abort(),this.keyLoader.abort(this.playlistType);let t=this.fragCurrent;t!=null&&t.loader&&(t.abortRequests(),this.fragmentTracker.removeFragment(t)),this.resetTransmuxer(),this.fragCurrent=null,this.fragPrevious=null,this.clearInterval(),this.clearNextTick(),this.state=Wi}_streamEnded(t,e){if(e.live||t.nextStart||!t.end||!this.media)return!1;let i=e.partList;if(i!=null&&i.length){let r=i[i.length-1];return ye.isBuffered(this.media,r.start+r.duration/2)}let n=e.fragments[e.fragments.length-1].type;return this.fragmentTracker.isEndListAppended(n)}getLevelDetails(){var t;if(this.levels&&this.levelLastLoaded!==null)return(t=this.levelLastLoaded)==null?void 0:t.details}onMediaAttached(t,e){let i=this.media=this.mediaBuffer=e.media;this.onvseeking=this.onMediaSeeking.bind(this),this.onvended=this.onMediaEnded.bind(this),i.addEventListener("seeking",this.onvseeking),i.addEventListener("ended",this.onvended);let n=this.config;this.levels&&n.autoStartLoad&&this.state===Wi&&this.startLoad(n.startPosition)}onMediaDetaching(){let t=this.media;t!=null&&t.ended&&(this.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0),t&&this.onvseeking&&this.onvended&&(t.removeEventListener("seeking",this.onvseeking),t.removeEventListener("ended",this.onvended),this.onvseeking=this.onvended=null),this.keyLoader&&this.keyLoader.detach(),this.media=this.mediaBuffer=null,this.loadedmetadata=!1,this.fragmentTracker.removeAllFragments(),this.stopLoad()}onMediaSeeking(){let{config:t,fragCurrent:e,media:i,mediaBuffer:n,state:r}=this,s=i?i.currentTime:0,a=ye.bufferInfo(n||i,s,t.maxBufferHole);if(this.log(`media seeking to ${j(s)?s.toFixed(3):s}, state: ${r}`),this.state===Fr)this.resetLoadingState();else if(e){let l=t.maxFragLookUpTolerance,d=e.start-l,u=e.start+e.duration+l;if(!a.len||u<a.start||d>a.end){let f=s>u;(s<d||f)&&(f&&e.loader&&(this.log("seeking outside of buffer while fragment load in progress, cancel fragment load"),e.abortRequests(),this.resetLoadingState()),this.fragPrevious=null)}}i&&(this.fragmentTracker.removeFragmentsInRange(s,1/0,this.playlistType,!0),this.lastCurrentTime=s),this.loadedmetadata||a.len||(this.nextLoadPosition=this.startPosition=s),this.tickImmediate()}onMediaEnded(){this.startPosition=this.lastCurrentTime=0}onManifestLoaded(t,e){this.startTimeOffset=e.startTimeOffset,this.initPTS=[]}onHandlerDestroying(){this.hls.off(A.MANIFEST_LOADED,this.onManifestLoaded,this),this.stopLoad(),super.onHandlerDestroying(),this.hls=null}onHandlerDestroyed(){this.state=Wi,this.fragmentLoader&&this.fragmentLoader.destroy(),this.keyLoader&&this.keyLoader.destroy(),this.decrypter&&this.decrypter.destroy(),this.hls=this.log=this.warn=this.decrypter=this.keyLoader=this.fragmentLoader=this.fragmentTracker=null,super.onHandlerDestroyed()}loadFragment(t,e,i){this._loadFragForPlayback(t,e,i)}_loadFragForPlayback(t,e,i){this._doFragLoad(t,e,i,(n)=>{if(this.fragContextChanged(t))return this.warn(`Fragment ${t.sn}${n.part?" p: "+n.part.index:""} of level ${t.level} was dropped during download.`),void this.fragmentTracker.removeFragment(t);t.stats.chunkCount++,this._handleFragmentLoadProgress(n)}).then((n)=>{if(!n)return;let r=this.state;this.fragContextChanged(t)?(r===ur||!this.fragCurrent&&r===hn)&&(this.fragmentTracker.removeFragment(t),this.state=be):(("payload"in n)&&(this.log(`Loaded fragment ${t.sn} of level ${t.level}`),this.hls.trigger(A.FRAG_LOADED,n)),this._handleFragmentLoadComplete(n))}).catch((n)=>{this.state!==Wi&&this.state!==mr&&(this.warn(n),this.resetFragmentLoading(t))})}clearTrackerIfNeeded(t){var e;let{fragmentTracker:i}=this;if(i.getState(t)===xr){let n=t.type,r=this.getFwdBufferInfo(this.mediaBuffer,n),s=Math.max(t.duration,r?r.len:this.config.maxBufferLength);this.reduceMaxBufferLength(s)&&i.removeFragment(t)}else((e=this.mediaBuffer)==null?void 0:e.buffered.length)===0?i.removeAllFragments():i.hasParts(t.type)&&(i.detectPartialFragments({frag:t,part:null,stats:t.stats,id:t.type}),i.getState(t)===Hn&&i.removeFragment(t))}checkLiveUpdate(t){if(t.updated&&!t.live){let e=t.fragments[t.fragments.length-1];this.fragmentTracker.detectPartialFragments({frag:e,part:null,stats:e.stats,id:e.type})}t.fragments[0]||(t.deltaUpdateFailed=!0)}flushMainBuffer(t,e,i=null){if(!(t-e))return;let n={startOffset:t,endOffset:e,type:i};this.hls.trigger(A.BUFFER_FLUSHING,n)}_loadInitSegment(t,e){this._doFragLoad(t,e).then((i)=>{if(!i||this.fragContextChanged(t)||!this.levels)throw new Error("init load aborted");return i}).then((i)=>{let{hls:n}=this,{payload:r}=i,s=t.decryptdata;if(r&&r.byteLength>0&&s!=null&&s.key&&s.iv&&s.method==="AES-128"){let a=self.performance.now();return this.decrypter.decrypt(new Uint8Array(r),s.key.buffer,s.iv.buffer).catch((l)=>{throw n.trigger(A.ERROR,{type:Ft.MEDIA_ERROR,details:H.FRAG_DECRYPT_ERROR,fatal:!1,error:l,reason:l.message,frag:t}),l}).then((l)=>{let d=self.performance.now();return n.trigger(A.FRAG_DECRYPTED,{frag:t,payload:l,stats:{tstart:a,tdecrypt:d}}),i.payload=l,this.completeInitSegmentLoad(i)})}return this.completeInitSegmentLoad(i)}).catch((i)=>{this.state!==Wi&&this.state!==mr&&(this.warn(i),this.resetFragmentLoading(t))})}completeInitSegmentLoad(t){let{levels:e}=this;if(!e)throw new Error("init load aborted, missing levels");let i=t.frag.stats;this.state=be,t.frag.data=new Uint8Array(t.payload),i.parsing.start=i.buffering.start=self.performance.now(),i.parsing.end=i.buffering.end=self.performance.now(),this.tick()}fragContextChanged(t){let{fragCurrent:e}=this;return!t||!e||t.sn!==e.sn||t.level!==e.level}fragBufferedComplete(t,e){var i,n,r,s;let a=this.mediaBuffer?this.mediaBuffer:this.media;if(this.log(`Buffered ${t.type} sn: ${t.sn}${e?" part: "+e.index:""} of ${this.playlistType===me?"level":"track"} ${t.level} (frag:[${((i=t.startPTS)!=null?i:NaN).toFixed(3)}-${((n=t.endPTS)!=null?n:NaN).toFixed(3)}] > buffer:${a?_o(ye.getBuffered(a)):"(detached)"})`),t.sn!=="initSegment"){var l;if(t.type!==Bi){let u=t.elementaryStreams;if(!Object.keys(u).some((f)=>!!u[f]))return void(this.state=be)}let d=(l=this.levels)==null?void 0:l[t.level];d!=null&&d.fragmentError&&(this.log(`Resetting level fragment error count of ${d.fragmentError} on frag buffered`),d.fragmentError=0)}this.state=be,a&&(!this.loadedmetadata&&t.type==me&&a.buffered.length&&((r=this.fragCurrent)==null?void 0:r.sn)===((s=this.fragPrevious)==null?void 0:s.sn)&&(this.loadedmetadata=!0,this.seekToStartPos()),this.tick())}seekToStartPos(){}_handleFragmentLoadComplete(t){let{transmuxer:e}=this;if(!e)return;let{frag:i,part:n,partsLoaded:r}=t,s=!r||r.length===0||r.some((l)=>!l),a=new dr(i.level,i.sn,i.stats.chunkCount+1,0,n?n.index:-1,!s);e.flush(a)}_handleFragmentLoadProgress(t){}_doFragLoad(t,e,i=null,n){var r;let s=e==null?void 0:e.details;if(!this.levels||!s)throw new Error(`frag load aborted, missing level${s?"":" detail"}s`);let a=null;if(!t.encrypted||(r=t.decryptdata)!=null&&r.key?!t.encrypted&&s.encryptedFragments.length&&this.keyLoader.loadClear(t,s.encryptedFragments):(this.log(`Loading key for ${t.sn} of [${s.startSN}-${s.endSN}], ${this.logPrefix==="[stream-controller]"?"level":"track"} ${t.level}`),this.state=Xs,this.fragCurrent=t,a=this.keyLoader.load(t).then((u)=>{if(!this.fragContextChanged(u.frag))return this.hls.trigger(A.KEY_LOADED,u),this.state===Xs&&(this.state=be),u}),this.hls.trigger(A.KEY_LOADING,{frag:t}),this.fragCurrent===null&&(a=Promise.reject(new Error("frag load aborted, context changed in KEY_LOADING")))),i=Math.max(t.start,i||0),this.config.lowLatencyMode&&t.sn!=="initSegment"){let u=s.partList;if(u&&n){i>t.end&&s.fragmentHint&&(t=s.fragmentHint);let f=this.getNextPart(u,t,i);if(f>-1){let E=u[f],b;return this.log(`Loading part sn: ${t.sn} p: ${E.index} cc: ${t.cc} of playlist [${s.startSN}-${s.endSN}] parts [0-${f}-${u.length-1}] ${this.logPrefix==="[stream-controller]"?"level":"track"}: ${t.level}, target: ${parseFloat(i.toFixed(3))}`),this.nextLoadPosition=E.start+E.duration,this.state=ur,b=a?a.then((T)=>!T||this.fragContextChanged(T.frag)?null:this.doFragPartsLoad(t,E,e,n)).catch((T)=>this.handleFragLoadError(T)):this.doFragPartsLoad(t,E,e,n).catch((T)=>this.handleFragLoadError(T)),this.hls.trigger(A.FRAG_LOADING,{frag:t,part:E,targetBufferTime:i}),this.fragCurrent===null?Promise.reject(new Error("frag load aborted, context changed in FRAG_LOADING parts")):b}if(!t.url||this.loadedEndOfParts(u,i))return Promise.resolve(null)}}this.log(`Loading fragment ${t.sn} cc: ${t.cc} ${s?"of ["+s.startSN+"-"+s.endSN+"] ":""}${this.logPrefix==="[stream-controller]"?"level":"track"}: ${t.level}, target: ${parseFloat(i.toFixed(3))}`),j(t.sn)&&!this.bitrateTest&&(this.nextLoadPosition=t.start+t.duration),this.state=ur;let l=this.config.progressive,d;return d=l&&a?a.then((u)=>!u||this.fragContextChanged(u==null?void 0:u.frag)?null:this.fragmentLoader.load(t,n)).catch((u)=>this.handleFragLoadError(u)):Promise.all([this.fragmentLoader.load(t,l?n:void 0),a]).then(([u])=>(!l&&u&&n&&n(u),u)).catch((u)=>this.handleFragLoadError(u)),this.hls.trigger(A.FRAG_LOADING,{frag:t,targetBufferTime:i}),this.fragCurrent===null?Promise.reject(new Error("frag load aborted, context changed in FRAG_LOADING")):d}doFragPartsLoad(t,e,i,n){return new Promise((r,s)=>{var a;let l=[],d=(a=i.details)==null?void 0:a.partList,u=(f)=>{this.fragmentLoader.loadPart(t,f,n).then((E)=>{l[f.index]=E;let b=E.part;this.hls.trigger(A.FRAG_LOADED,E);let T=Cr(i,t.sn,f.index+1)||_a(d,t.sn,f.index+1);if(!T)return r({frag:t,part:b,partsLoaded:l});u(T)}).catch(s)};u(e)})}handleFragLoadError(t){if("data"in t){let e=t.data;t.data&&e.details===H.INTERNAL_ABORTED?this.handleFragLoadAborted(e.frag,e.part):this.hls.trigger(A.ERROR,e)}else this.hls.trigger(A.ERROR,{type:Ft.OTHER_ERROR,details:H.INTERNAL_EXCEPTION,err:t,error:t,fatal:!0});return null}_handleTransmuxerFlush(t){let e=this.getCurrentContext(t);if(!e||this.state!==hn)return void(this.fragCurrent||this.state===Wi||this.state===mr||(this.state=be));let{frag:i,part:n,level:r}=e,s=self.performance.now();i.stats.parsing.end=s,n&&(n.stats.parsing.end=s),this.updateLevelTiming(i,n,r,t.partial)}getCurrentContext(t){let{levels:e,fragCurrent:i}=this,{level:n,sn:r,part:s}=t;if(e==null||!e[n])return this.warn(`Levels object was unset while buffering fragment ${r} of level ${n}. The current chunk will not be buffered.`),null;let a=e[n],l=s>-1?Cr(a,r,s):null,d=l?l.fragment:function(u,f,E){if(u==null||!u.details)return null;let b=u.details,T=b.fragments[f-b.startSN];return T||(T=b.fragmentHint,T&&T.sn===f?T:f<b.startSN&&E&&E.sn===f?E:null)}(a,r,i);return d?(i&&i!==d&&(d.stats=i.stats),{frag:d,part:l,level:a}):null}bufferFragmentData(t,e,i,n,r){var s;if(!t||this.state!==hn)return;let{data1:a,data2:l}=t,d=a;if(a&&l&&(d=li(a,l)),(s=d)==null||!s.length)return;let u={type:t.type,frag:e,part:i,chunkMeta:n,parent:e.type,data:d};if(this.hls.trigger(A.BUFFER_APPENDING,u),t.dropped&&t.independent&&!i){if(r)return;this.flushBufferGap(e)}}flushBufferGap(t){let e=this.media;if(!e)return;if(!ye.isBuffered(e,e.currentTime))return void this.flushMainBuffer(0,t.start);let i=e.currentTime,n=ye.bufferInfo(e,i,0),r=t.duration,s=Math.min(2*this.config.maxFragLookUpTolerance,0.25*r),a=Math.max(Math.min(t.start-s,n.end-s),i+s);t.start-a>s&&this.flushMainBuffer(a,t.start)}getFwdBufferInfo(t,e){let i=this.getLoadPosition();return j(i)?this.getFwdBufferInfoAtPos(t,i,e):null}getFwdBufferInfoAtPos(t,e,i){let{config:{maxBufferHole:n}}=this,r=ye.bufferInfo(t,e,n);if(r.len===0&&r.nextStart!==void 0){let s=this.fragmentTracker.getBufferedFrag(e,i);if(s&&r.nextStart<s.end)return ye.bufferInfo(t,e,Math.max(r.nextStart,n))}return r}getMaxBufferLength(t){let{config:e}=this,i;return i=t?Math.max(8*e.maxBufferSize/t,e.maxBufferLength):e.maxBufferLength,Math.min(i,e.maxMaxBufferLength)}reduceMaxBufferLength(t){let e=this.config,i=t||e.maxBufferLength;return e.maxMaxBufferLength>=i&&(e.maxMaxBufferLength/=2,this.warn(`Reduce max buffer length to ${e.maxMaxBufferLength}s`),!0)}getAppendedFrag(t,e=me){let i=this.fragmentTracker.getAppendedFrag(t,me);return i&&"fragment"in i?i.fragment:i}getNextFragment(t,e){let i=e.fragments,n=i.length;if(!n)return null;let{config:r}=this,s=i[0].start,a;if(e.live){let l=r.initialLiveManifestSize;if(n<l)return this.warn(`Not enough fragments to start playback (have: ${n}, need: ${l})`),null;(!e.PTSKnown&&!this.startFragRequested&&this.startPosition===-1||t<s)&&(a=this.getInitialLiveFragment(e,i),this.startPosition=this.nextLoadPosition=a?this.hls.liveSyncPosition||a.start:t)}else t<=s&&(a=i[0]);if(!a){let l=r.lowLatencyMode?e.partEnd:e.fragmentEnd;a=this.getFragmentAtPosition(t,l,e)}return this.mapToInitFragWhenRequired(a)}isLoopLoading(t,e){let i=this.fragmentTracker.getState(t);return(i===Ie||i===Hn&&!!t.gap)&&this.nextLoadPosition>e}getNextFragmentLoopLoading(t,e,i,n,r){let s=t.gap,a=this.getNextFragment(this.nextLoadPosition,e);if(a===null)return a;if(t=a,s&&t&&!t.gap&&i.nextStart){let l=this.getFwdBufferInfoAtPos(this.mediaBuffer?this.mediaBuffer:this.media,i.nextStart,n);if(l!==null&&i.len+l.len>=r)return this.log(`buffer full after gaps in "${n}" playlist starting at sn: ${t.sn}`),null}return t}mapToInitFragWhenRequired(t){return t==null||!t.initSegment||t!=null&&t.initSegment.data||this.bitrateTest?t:t.initSegment}getNextPart(t,e,i){let n=-1,r=!1,s=!0;for(let a=0,l=t.length;a<l;a++){let d=t[a];if(s=s&&!d.independent,n>-1&&i<d.start)break;let u=d.loaded;u?n=-1:(r||d.independent||s)&&d.fragment===e&&(n=a),r=u}return n}loadedEndOfParts(t,e){let i=t[t.length-1];return i&&e>i.start&&i.loaded}getInitialLiveFragment(t,e){let i=this.fragPrevious,n=null;if(i){if(t.hasProgramDateTime&&(this.log("Live playlist, switching playlist, load frag with same PDT: "+i.programDateTime),n=function(r,s,a){if(s===null||!Array.isArray(r)||!r.length||!j(s))return null;if(s<(r[0].programDateTime||0))return null;if(s>=(r[r.length-1].endProgramDateTime||0))return null;a=a||0;for(let l=0;l<r.length;++l){let d=r[l];if(ki(s,a,d))return d}return null}(e,i.endProgramDateTime,this.config.maxFragLookUpTolerance)),!n){let r=i.sn+1;if(r>=t.startSN&&r<=t.endSN){let s=e[r-t.startSN];i.cc===s.cc&&(n=s,this.log("Live playlist, switching playlist, load frag with next SN: "+n.sn))}n||(n=function(s,a){return Ir(s,(l)=>l.cc<a?1:l.cc>a?-1:0)}(e,i.cc),n&&this.log("Live playlist, switching playlist, load frag with same CC: "+n.sn))}}else{let r=this.hls.liveSyncPosition;r!==null&&(n=this.getFragmentAtPosition(r,this.bitrateTest?t.fragmentEnd:t.edge,t))}return n}getFragmentAtPosition(t,e,i){let{config:n}=this,{fragPrevious:r}=this,{fragments:s,endSN:a}=i,{fragmentHint:l}=i,d=n.maxFragLookUpTolerance,u=i.partList,f=!!(n.lowLatencyMode&&u!=null&&u.length&&l),E;if(f&&l&&!this.bitrateTest&&(s=s.concat(l),a=l.sn),t<e)E=or(r,s,t,t>e-d?0:d);else E=s[s.length-1];if(E){let b=E.sn-i.startSN,T=this.fragmentTracker.getState(E);if((T===Ie||T===Hn&&E.gap)&&(r=E),r&&E.sn===r.sn&&(!f||u[0].fragment.sn>E.sn)){if(r&&E.level===r.level){let _=s[b+1];E=E.sn<a&&this.fragmentTracker.getState(_)!==Ie?_:null}}}return E}synchronizeToLiveEdge(t){let{config:e,media:i}=this;if(!i)return;let n=this.hls.liveSyncPosition,r=i.currentTime,s=t.fragments[0].start,a=t.edge,l=r>=s-e.maxFragLookUpTolerance&&r<=a;if(n!==null&&i.duration>n&&(r<n||!l)){let d=e.liveMaxLatencyDuration!==void 0?e.liveMaxLatencyDuration:e.liveMaxLatencyDurationCount*t.targetduration;(!l&&i.readyState<4||r<a-d)&&(this.loadedmetadata||(this.nextLoadPosition=n),i.readyState&&(this.warn(`Playback: ${r.toFixed(3)} is located too far from the end of live sliding playlist: ${a}, reset currentTime to : ${n.toFixed(3)}`),i.currentTime=n))}}alignPlaylists(t,e,i){let n=t.fragments.length;if(!n)return this.warn("No fragments in live playlist"),0;let r=t.fragments[0].start,s=!e,a=t.alignedSliding&&j(r);if(s||!a&&!r){let{fragPrevious:l}=this;Ao(l,i,t);let d=t.fragments[0].start;return this.log(`Live playlist sliding: ${d.toFixed(2)} start-sn: ${e?e.startSN:"na"}->${t.startSN} prev-sn: ${l?l.sn:"na"} fragments: ${n}`),d}return r}waitForCdnTuneIn(t){return t.live&&t.canBlockReload&&t.partTarget&&t.tuneInGoal>Math.max(t.partHoldBack,3*t.partTarget)}setStartPosition(t,e){let i=this.startPosition;if(i<e&&(i=-1),i===-1||this.lastCurrentTime===-1){let n=this.startTimeOffset!==null,r=n?this.startTimeOffset:t.startTimeOffset;r!==null&&j(r)?(i=e+r,r<0&&(i+=t.totalduration),i=Math.min(Math.max(e,i),e+t.totalduration),this.log(`Start time offset ${r} found in ${n?"multivariant":"media"} playlist, adjust startPosition to ${i}`),this.startPosition=i):t.live?i=this.hls.liveSyncPosition||e:this.startPosition=i=0,this.lastCurrentTime=i}this.nextLoadPosition=i}getLoadPosition(){let{media:t}=this,e=0;return this.loadedmetadata&&t?e=t.currentTime:this.nextLoadPosition&&(e=this.nextLoadPosition),e}handleFragLoadAborted(t,e){this.transmuxer&&t.sn!=="initSegment"&&t.stats.aborted&&(this.warn(`Fragment ${t.sn}${e?" part "+e.index:""} of level ${t.level} was aborted`),this.resetFragmentLoading(t))}resetFragmentLoading(t){this.fragCurrent&&(this.fragContextChanged(t)||this.state===hr)||(this.state=be)}onFragmentOrKeyLoadError(t,e){if(e.chunkMeta&&!e.frag){let u=this.getCurrentContext(e.chunkMeta);u&&(e.frag=u.frag)}let i=e.frag;if(!i||i.type!==t||!this.levels)return;var n;if(this.fragContextChanged(i))return void this.warn(`Frag load error must match current frag to retry ${i.url} > ${(n=this.fragCurrent)==null?void 0:n.url}`);let r=e.details===H.FRAG_GAP;r&&this.fragmentTracker.fragBuffered(i,!0);let s=e.errorAction,{action:a,retryCount:l=0,retryConfig:d}=s||{};if(s&&a===ui&&d){this.resetStartWhenNotLoaded(this.levelLastLoaded);let u=Us(d,l);this.warn(`Fragment ${i.sn} of ${t} ${i.level} errored with ${e.details}, retrying loading ${l+1}/${d.maxNumRetry} in ${u}ms`),s.resolved=!0,this.retryDate=self.performance.now()+u,this.state=hr}else if(d&&s){if(this.resetFragmentErrors(t),!(l<d.maxNumRetry))return void C.warn(`${e.details} reached or exceeded max retry (${l})`);r||a===Or||(s.resolved=!0)}else(s==null?void 0:s.action)===un?this.state=Me:this.state=mr;this.tickImmediate()}reduceLengthAndFlushBuffer(t){if(this.state===hn||this.state===Mr){let e=t.parent,i=this.getFwdBufferInfo(this.mediaBuffer,e),n=i&&i.len>0.5;n&&this.reduceMaxBufferLength(i.len);let r=!n;return r&&this.warn(`Buffer full error while media.currentTime is not buffered, flush ${e} buffer`),t.frag&&(this.fragmentTracker.removeFragment(t.frag),this.nextLoadPosition=t.frag.start),this.resetLoadingState(),r}return!1}resetFragmentErrors(t){t===ei&&(this.fragCurrent=null),this.loadedmetadata||(this.startFragRequested=!1),this.state!==Wi&&(this.state=be)}afterBufferFlushed(t,e,i){if(!t)return;let n=ye.getBuffered(t);this.fragmentTracker.detectEvictedFragments(e,n,i),this.state===Fr&&this.resetLoadingState()}resetLoadingState(){this.log("Reset loading state"),this.fragCurrent=null,this.fragPrevious=null,this.state=be}resetStartWhenNotLoaded(t){if(!this.loadedmetadata){this.startFragRequested=!1;let e=t?t.details:null;e!=null&&e.live?(this.startPosition=-1,this.setStartPosition(e,0),this.resetLoadingState()):this.nextLoadPosition=this.startPosition}}resetWhenMissingContext(t){this.warn(`The loading context changed while buffering fragment ${t.sn} of level ${t.level}. This chunk will not be buffered.`),this.removeUnbufferedFrags(),this.resetStartWhenNotLoaded(this.levelLastLoaded),this.resetLoadingState()}removeUnbufferedFrags(t=0){this.fragmentTracker.removeFragmentsInRange(t,1/0,this.playlistType,!1,!0)}updateLevelTiming(t,e,i,n){var r;let s=i.details;if(!s)return void this.warn("level.details undefined");if(!Object.keys(t.elementaryStreams).reduce((a,l)=>{let d=t.elementaryStreams[l];if(d){let u=d.endPTS-d.startPTS;if(u<=0)return this.warn(`Could not parse fragment ${t.sn} ${l} duration reliably (${u})`),a||!1;let f=n?0:He(s,t,d.startPTS,d.endPTS,d.startDTS,d.endDTS);return this.hls.trigger(A.LEVEL_PTS_UPDATED,{details:s,level:i,drift:f,type:l,frag:t,start:d.startPTS,end:d.endPTS}),!0}return a},!1)&&((r=this.transmuxer)==null?void 0:r.error)===null){let a=new Error(`Found no media in fragment ${t.sn} of level ${t.level} resetting transmuxer to fallback to playlist timing`);if(i.fragmentError===0&&(i.fragmentError++,t.gap=!0,this.fragmentTracker.removeFragment(t),this.fragmentTracker.fragBuffered(t,!0)),this.warn(a.message),this.hls.trigger(A.ERROR,{type:Ft.MEDIA_ERROR,details:H.FRAG_PARSING_ERROR,fatal:!1,error:a,frag:t,reason:`Found no media in msn ${t.sn} of level "${i.url}"`}),!this.hls)return;this.resetTransmuxer()}this.state=Mr,this.hls.trigger(A.FRAG_PARSED,{frag:t,part:e})}resetTransmuxer(){this.transmuxer&&(this.transmuxer.destroy(),this.transmuxer=null)}recoverWorkerError(t){t.event==="demuxerWorker"&&(this.fragmentTracker.removeAllFragments(),this.resetTransmuxer(),this.resetStartWhenNotLoaded(this.levelLastLoaded),this.resetLoadingState())}set state(t){let e=this._state;e!==t&&(this._state=t,this.log(`${e}->${t}`))}get state(){return this._state}}class os{constructor(){this.chunks=[],this.dataLength=0}push(t){this.chunks.push(t),this.dataLength+=t.length}flush(){let{chunks:t,dataLength:e}=this,i;return t.length?(i=t.length===1?t[0]:function(n,r){let s=new Uint8Array(r),a=0;for(let l=0;l<n.length;l++){let d=n[l];s.set(d,a),a+=d.length}return s}(t,e),this.reset(),i):new Uint8Array(0)}reset(){this.chunks.length=0,this.dataLength=0}}function on(t="",e=90000){return{type:t,id:-1,pid:-1,inputTimeScale:e,sequenceNumber:-1,samples:[],dropped:0}}class ls{constructor(){this._audioTrack=void 0,this._id3Track=void 0,this.frameIndex=0,this.cachedData=null,this.basePTS=null,this.initPTS=null,this.lastPTS=null}resetInitSegment(t,e,i,n){this._id3Track={type:"id3",id:3,pid:-1,inputTimeScale:90000,sequenceNumber:0,samples:[],dropped:0}}resetTimeStamp(t){this.initPTS=t,this.resetContiguity()}resetContiguity(){this.basePTS=null,this.lastPTS=null,this.frameIndex=0}canParse(t,e){return!1}appendFrame(t,e,i){}demux(t,e){this.cachedData&&(t=li(this.cachedData,t),this.cachedData=null);let i,n=Ii(t,0),r=n?n.length:0,s=this._audioTrack,a=this._id3Track,l=n?oi(n):void 0,d=t.length;for((this.basePTS===null||this.frameIndex===0&&j(l))&&(this.basePTS=Lo(l,e,this.initPTS),this.lastPTS=this.basePTS),this.lastPTS===null&&(this.lastPTS=this.basePTS),n&&n.length>0&&a.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:n,type:Fn,duration:Number.POSITIVE_INFINITY});r<d;){if(this.canParse(t,r)){let u=this.appendFrame(s,t,r);u?(this.frameIndex++,this.lastPTS=u.sample.pts,r+=u.length,i=r):r=d}else Je(t,r)?(n=Ii(t,r),a.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:n,type:Fn,duration:Number.POSITIVE_INFINITY}),r+=n.length,i=r):r++;if(r===d&&i!==d){let u=Se(t,i);this.cachedData?this.cachedData=li(this.cachedData,u):this.cachedData=u}}return{audioTrack:s,videoTrack:on(),id3Track:a,textTrack:on()}}demuxSampleAes(t,e,i){return Promise.reject(new Error(`[${this}] This demuxer does not support Sample-AES decryption`))}flush(t){let e=this.cachedData;return e&&(this.cachedData=null,this.demux(e,0)),{audioTrack:this._audioTrack,videoTrack:on(),id3Track:this._id3Track,textTrack:on()}}destroy(){}}let Lo=(t,e,i)=>{if(j(t))return 90*t;return 90000*e+(i?90000*i.baseTime/i.timescale:0)};function Oa(t,e){return t[e]===255&&(246&t[e+1])==240}function xa(t,e){return 1&t[e+1]?7:9}function Js(t,e){return(3&t[e+3])<<11|t[e+4]<<3|(224&t[e+5])>>>5}function cs(t,e){return e+1<t.length&&Oa(t,e)}function wo(t,e){if(cs(t,e)){let i=xa(t,e);if(e+i>=t.length)return!1;let n=Js(t,e);if(n<=i)return!1;let r=e+n;return r===t.length||cs(t,r)}return!1}function Na(t,e,i,n,r){if(!t.samplerate){let s=function(a,l,d,u){let f,E,b,T,_=navigator.userAgent.toLowerCase(),D=u,w=[96000,88200,64000,48000,44100,32000,24000,22050,16000,12000,11025,8000,7350];f=1+((192&l[d+2])>>>6);let x=(60&l[d+2])>>>2;if(!(x>w.length-1))return b=(1&l[d+2])<<2,b|=(192&l[d+3])>>>6,C.log(`manifest codec:${u}, ADTS type:${f}, samplingIndex:${x}`),/firefox/i.test(_)?x>=6?(f=5,T=new Array(4),E=x-3):(f=2,T=new Array(2),E=x):_.indexOf("android")!==-1?(f=2,T=new Array(2),E=x):(f=5,T=new Array(4),u&&(u.indexOf("mp4a.40.29")!==-1||u.indexOf("mp4a.40.5")!==-1)||!u&&x>=6?E=x-3:((u&&u.indexOf("mp4a.40.2")!==-1&&(x>=6&&b===1||/vivaldi/i.test(_))||!u&&b===1)&&(f=2,T=new Array(2)),E=x)),T[0]=f<<3,T[0]|=(14&x)>>1,T[1]|=(1&x)<<7,T[1]|=b<<3,f===5&&(T[1]|=(14&E)>>1,T[2]=(1&E)<<7,T[2]|=8,T[3]=0),{config:T,samplerate:w[x],channelCount:b,codec:"mp4a.40."+f,manifestCodec:D};{let M=new Error("invalid ADTS sampling index:"+x);a.emit(A.ERROR,A.ERROR,{type:Ft.MEDIA_ERROR,details:H.FRAG_PARSING_ERROR,fatal:!0,error:M,reason:M.message})}}(e,i,n,r);if(!s)return;t.config=s.config,t.samplerate=s.samplerate,t.channelCount=s.channelCount,t.codec=s.codec,t.manifestCodec=s.manifestCodec,C.log(`parsed codec:${t.codec}, rate:${s.samplerate}, channels:${s.channelCount}`)}}function Zi(t){return 92160000/t}function Kn(t,e,i,n,r){let s=n+r*Zi(t.samplerate),a=function(u,f){let E=xa(u,f);if(f+E<=u.length){let b=Js(u,f)-E;if(b>0)return{headerLength:E,frameLength:b}}}(e,i),l;if(a){let{frameLength:u,headerLength:f}=a,E=f+u,b=Math.max(0,i+E-e.length);b?(l=new Uint8Array(E-f),l.set(e.subarray(i+f,e.length),0)):l=e.subarray(i+f,i+E);let T={unit:l,pts:s};return b||t.samples.push(T),{sample:T,length:E,missing:b}}let d=e.length-i;return l=new Uint8Array(d),l.set(e.subarray(i,e.length),0),{sample:{unit:l,pts:s},length:d,missing:-1}}let Vn=null,Ye=[32,64,96,128,160,192,224,256,288,320,352,384,416,448,32,48,56,64,80,96,112,128,160,192,224,256,320,384,32,40,48,56,64,80,96,112,128,160,192,224,256,320,32,48,56,64,80,96,112,128,144,160,176,192,224,256,8,16,24,32,40,48,56,64,80,96,112,128,144,160],Pa=[44100,48000,32000,22050,24000,16000,11025,12000,8000],Ma=[[0,72,144,12],[0,0,0,0],[0,72,144,12],[0,144,144,12]],Fa=[0,1,1,4];function Qs(t,e,i,n,r){if(i+24>e.length)return;let s=Zs(e,i);if(s&&i+s.frameLength<=e.length){let a=n+r*(90000*s.samplesPerFrame/s.sampleRate),l={unit:e.subarray(i,i+s.frameLength),pts:a,dts:a};return t.config=[],t.channelCount=s.channelCount,t.samplerate=s.sampleRate,t.samples.push(l),{sample:l,length:s.frameLength,missing:0}}}function Zs(t,e){let i=t[e+1]>>3&3,n=t[e+1]>>1&3,r=t[e+2]>>4&15,s=t[e+2]>>2&3;if(i!==1&&r!==0&&r!==15&&s!==3){let a=t[e+2]>>1&1,l=t[e+3]>>6,d=1000*Ye[14*(i===3?3-n:n===3?3:4)+r-1],u=Pa[3*(i===3?0:i===2?1:2)+s],f=l===3?1:2,E=Ma[i][n],b=Fa[n],T=8*E*b,_=Math.floor(E*d/u+a)*b;if(Vn===null){let D=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);Vn=D?parseInt(D[1]):0}return!!Vn&&Vn<=87&&n===2&&d>=224000&&l===0&&(t[e+3]=128|t[e+3]),{sampleRate:u,channelCount:f,frameLength:_,samplesPerFrame:T}}}function ds(t,e){return t[e]===255&&(224&t[e+1])==224&&(6&t[e+1])!=0}function ta(t,e){return e+1<t.length&&ds(t,e)}function ea(t,e){if(e+1<t.length&&ds(t,e)){let n=Zs(t,e),r=4;n!=null&&n.frameLength&&(r=n.frameLength);let s=e+r;return s===t.length||ta(t,s)}return!1}let Ba=/\/emsg[-/]ID3/i,us=(t,e)=>{let i=0,n=5;e+=n;let r=new Uint32Array(1),s=new Uint32Array(1),a=new Uint8Array(1);for(;n>0;){a[0]=t[e];let l=Math.min(n,8),d=8-l;s[0]=4278190080>>>24+d<<d,r[0]=(a[0]&s[0])>>d,i=i?i<<l|r[0]:r[0],e+=1,n-=l}return i};class ia extends ls{constructor(t){super(),this.observer=void 0,this.observer=t}resetInitSegment(t,e,i,n){super.resetInitSegment(t,e,i,n),this._audioTrack={container:"audio/ac-3",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"ac3",samples:[],manifestCodec:e,duration:n,inputTimeScale:90000,dropped:0}}canParse(t,e){return e+64<t.length}appendFrame(t,e,i){let n=hs(t,e,i,this.basePTS,this.frameIndex);if(n!==-1)return{sample:t.samples[t.samples.length-1],length:n,missing:0}}static probe(t){if(!t)return!1;let e=Ii(t,0);if(!e)return!1;let i=e.length;return t[i]===11&&t[i+1]===119&&oi(e)!==void 0&&us(t,i)<16}}function hs(t,e,i,n,r){if(i+8>e.length)return-1;if(e[i]!==11||e[i+1]!==119)return-1;let s=e[i+4]>>6;if(s>=3)return-1;let a=[48000,44100,32000][s],l=63&e[i+4],d=2*[64,69,96,64,70,96,80,87,120,80,88,120,96,104,144,96,105,144,112,121,168,112,122,168,128,139,192,128,140,192,160,174,240,160,175,240,192,208,288,192,209,288,224,243,336,224,244,336,256,278,384,256,279,384,320,348,480,320,349,480,384,417,576,384,418,576,448,487,672,448,488,672,512,557,768,512,558,768,640,696,960,640,697,960,768,835,1152,768,836,1152,896,975,1344,896,976,1344,1024,1114,1536,1024,1115,1536,1152,1253,1728,1152,1254,1728,1280,1393,1920,1280,1394,1920][3*l+s];if(i+d>e.length)return-1;let u=e[i+6]>>5,f=0;u===2?f+=2:(1&u&&u!==1&&(f+=2),4&u&&(f+=2));let E=(e[i+6]<<8|e[i+7])>>12-f&1,b=[2,1,2,3,3,4,4,5][u]+E,T=e[i+5]>>3,_=7&e[i+5],D=new Uint8Array([s<<6|T<<1|_>>2,(3&_)<<6|u<<3|E<<2|l>>4,l<<4&224]),w=n+r*(1536/a*90000),x=e.subarray(i,i+d);return t.config=D,t.channelCount=b,t.samplerate=a,t.samples.push({unit:x,pts:w}),d}class fs{constructor(t){this.data=void 0,this.bytesAvailable=void 0,this.word=void 0,this.bitsAvailable=void 0,this.data=t,this.bytesAvailable=t.byteLength,this.word=0,this.bitsAvailable=0}loadWord(){let t=this.data,e=this.bytesAvailable,i=t.byteLength-e,n=new Uint8Array(4),r=Math.min(4,e);if(r===0)throw new Error("no bytes available");n.set(t.subarray(i,i+r)),this.word=new DataView(n.buffer).getUint32(0),this.bitsAvailable=8*r,this.bytesAvailable-=r}skipBits(t){let e;t=Math.min(t,8*this.bytesAvailable+this.bitsAvailable),this.bitsAvailable>t?(this.word<<=t,this.bitsAvailable-=t):(e=(t-=this.bitsAvailable)>>3,t-=e<<3,this.bytesAvailable-=e,this.loadWord(),this.word<<=t,this.bitsAvailable-=t)}readBits(t){let e=Math.min(this.bitsAvailable,t),i=this.word>>>32-e;if(t>32&&C.error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=e,this.bitsAvailable>0)this.word<<=e;else{if(!(this.bytesAvailable>0))throw new Error("no bits available");this.loadWord()}return e=t-e,e>0&&this.bitsAvailable?i<<e|this.readBits(e):i}skipLZ(){let t;for(t=0;t<this.bitsAvailable;++t)if((this.word&2147483648>>>t)!=0)return this.word<<=t,this.bitsAvailable-=t,t;return this.loadWord(),t+this.skipLZ()}skipUEG(){this.skipBits(1+this.skipLZ())}skipEG(){this.skipBits(1+this.skipLZ())}readUEG(){let t=this.skipLZ();return this.readBits(t+1)-1}readEG(){let t=this.readUEG();return 1&t?1+t>>>1:-1*(t>>>1)}readBoolean(){return this.readBits(1)===1}readUByte(){return this.readBits(8)}readUShort(){return this.readBits(16)}readUInt(){return this.readBits(32)}skipScalingList(t){let e,i=8,n=8;for(let r=0;r<t;r++)n!==0&&(e=this.readEG(),n=(i+e+256)%256),i=n===0?i:n}readSPS(){let t,e,i,n=0,r=0,s=0,a=0,l=this.readUByte.bind(this),d=this.readBits.bind(this),u=this.readUEG.bind(this),f=this.readBoolean.bind(this),E=this.skipBits.bind(this),b=this.skipEG.bind(this),T=this.skipUEG.bind(this),_=this.skipScalingList.bind(this);l();let D=l();if(d(5),E(3),l(),T(),D===100||D===110||D===122||D===244||D===44||D===83||D===86||D===118||D===128){let ot=u();if(ot===3&&E(1),T(),T(),E(1),f())for(e=ot!==3?8:12,i=0;i<e;i++)f()&&_(i<6?16:64)}T();let w=u();if(w===0)u();else if(w===1)for(E(1),b(),b(),t=u(),i=0;i<t;i++)b();T(),E(1);let x=u(),M=u(),V=d(1);V===0&&E(1),E(1),f()&&(n=u(),r=u(),s=u(),a=u());let X=[1,1];if(f()&&f())switch(l()){case 1:X=[1,1];break;case 2:X=[12,11];break;case 3:X=[10,11];break;case 4:X=[16,11];break;case 5:X=[40,33];break;case 6:X=[24,11];break;case 7:X=[20,11];break;case 8:X=[32,11];break;case 9:X=[80,33];break;case 10:X=[18,11];break;case 11:X=[15,11];break;case 12:X=[64,33];break;case 13:X=[160,99];break;case 14:X=[4,3];break;case 15:X=[3,2];break;case 16:X=[2,1];break;case 255:X=[l()<<8|l(),l()<<8|l()]}return{width:Math.ceil(16*(x+1)-2*n-2*r),height:(2-V)*(M+1)*16-(V?2:4)*(s+a),pixelRatio:X}}readSliceType(){return this.readUByte(),this.readUEG(),this.readUEG()}}class na extends class t{constructor(){this.VideoSample=null}createVideoSample(e,i,n,r){return{key:e,frame:!1,pts:i,dts:n,units:[],debug:r,length:0}}getLastNalUnit(e){var i;let n,r=this.VideoSample;if(r&&r.units.length!==0||(r=e[e.length-1]),(i=r)!=null&&i.units){let s=r.units;n=s[s.length-1]}return n}pushAccessUnit(e,i){if(e.units.length&&e.frame){if(e.pts===void 0){let n=i.samples,r=n.length;if(!r)return void i.dropped++;{let s=n[r-1];e.pts=s.pts,e.dts=s.dts}}i.samples.push(e)}e.debug.length&&C.log(e.pts+"/"+e.dts+":"+e.debug)}}{parseAVCPES(t,e,i,n,r){let s=this.parseAVCNALu(t,i.data),a,l=this.VideoSample,d=!1;i.data=null,l&&s.length&&!t.audFound&&(this.pushAccessUnit(l,t),l=this.VideoSample=this.createVideoSample(!1,i.pts,i.dts,"")),s.forEach((u)=>{var f;switch(u.type){case 1:{let _=!1;a=!0;let D=u.data;if(d&&D.length>4){let w=new fs(D).readSliceType();w!==2&&w!==4&&w!==7&&w!==9||(_=!0)}var E;if(_)(E=l)!=null&&E.frame&&!l.key&&(this.pushAccessUnit(l,t),l=this.VideoSample=null);l||(l=this.VideoSample=this.createVideoSample(!0,i.pts,i.dts,"")),l.frame=!0,l.key=_;break}case 5:a=!0,(f=l)!=null&&f.frame&&!l.key&&(this.pushAccessUnit(l,t),l=this.VideoSample=null),l||(l=this.VideoSample=this.createVideoSample(!0,i.pts,i.dts,"")),l.key=!0,l.frame=!0;break;case 6:a=!0,Jr(u.data,1,i.pts,e.samples);break;case 7:{var b,T;a=!0,d=!0;let _=u.data,D=new fs(_).readSPS();if(!t.sps||t.width!==D.width||t.height!==D.height||((b=t.pixelRatio)==null?void 0:b[0])!==D.pixelRatio[0]||((T=t.pixelRatio)==null?void 0:T[1])!==D.pixelRatio[1]){t.width=D.width,t.height=D.height,t.pixelRatio=D.pixelRatio,t.sps=[_],t.duration=r;let w=_.subarray(1,4),x="avc1.";for(let M=0;M<3;M++){let V=w[M].toString(16);V.length<2&&(V="0"+V),x+=V}t.codec=x}break}case 8:a=!0,t.pps=[u.data];break;case 9:a=!0,t.audFound=!0,l&&this.pushAccessUnit(l,t),l=this.VideoSample=this.createVideoSample(!1,i.pts,i.dts,"");break;case 12:a=!0;break;default:a=!1,l&&(l.debug+="unknown NAL "+u.type+" ")}if(l&&a)l.units.push(u)}),n&&l&&(this.pushAccessUnit(l,t),this.VideoSample=null)}parseAVCNALu(t,e){let i=e.byteLength,n=t.naluState||0,r=n,s=[],a,l,d,u=0,f=-1,E=0;for(n===-1&&(f=0,E=31&e[0],n=0,u=1);u<i;)if(a=e[u++],n)if(n!==1)if(a)if(a===1){if(l=u-n-1,f>=0){let b={data:e.subarray(f,l),type:E};s.push(b)}else{let b=this.getLastNalUnit(t.samples);b&&(r&&u<=4-r&&b.state&&(b.data=b.data.subarray(0,b.data.byteLength-r)),l>0&&(b.data=li(b.data,e.subarray(0,l)),b.state=0))}u<i?(d=31&e[u],f=u,E=d,n=0):n=-1}else n=0;else n=3;else n=a?0:2;else n=a?0:1;if(f>=0&&n>=0){let b={data:e.subarray(f,i),type:E,state:n};s.push(b)}if(s.length===0){let b=this.getLastNalUnit(t.samples);b&&(b.data=li(b.data,e))}return t.naluState=n,s}}class ra{constructor(t,e,i){this.keyData=void 0,this.decrypter=void 0,this.keyData=i,this.decrypter=new Pr(e,{removePKCS7Padding:!1})}decryptBuffer(t){return this.decrypter.decrypt(t,this.keyData.key.buffer,this.keyData.iv.buffer)}decryptAacSample(t,e,i){let n=t[e].unit;if(n.length<=16)return;let r=n.subarray(16,n.length-n.length%16),s=r.buffer.slice(r.byteOffset,r.byteOffset+r.length);this.decryptBuffer(s).then((a)=>{let l=new Uint8Array(a);n.set(l,16),this.decrypter.isSync()||this.decryptAacSamples(t,e+1,i)})}decryptAacSamples(t,e,i){for(;;e++){if(e>=t.length)return void i();if(!(t[e].unit.length<32)&&(this.decryptAacSample(t,e,i),!this.decrypter.isSync()))return}}getAvcEncryptedData(t){let e=16*Math.floor((t.length-48)/160)+16,i=new Int8Array(e),n=0;for(let r=32;r<t.length-16;r+=160,n+=16)i.set(t.subarray(r,r+16),n);return i}getAvcDecryptedUnit(t,e){let i=new Uint8Array(e),n=0;for(let r=32;r<t.length-16;r+=160,n+=16)t.set(i.subarray(n,n+16),r);return t}decryptAvcSample(t,e,i,n,r){let s=Xn(r.data),a=this.getAvcEncryptedData(s);this.decryptBuffer(a.buffer).then((l)=>{r.data=this.getAvcDecryptedUnit(s,l),this.decrypter.isSync()||this.decryptAvcSamples(t,e,i+1,n)})}decryptAvcSamples(t,e,i,n){if(t instanceof Uint8Array)throw new Error("Cannot decrypt samples of type Uint8Array");for(;;e++,i=0){if(e>=t.length)return void n();let r=t[e].units;for(;!(i>=r.length);i++){let s=r[i];if(!(s.data.length<=48||s.type!==1&&s.type!==5||(this.decryptAvcSample(t,e,i,n,s),this.decrypter.isSync())))return}}}}class fn{constructor(t,e,i){this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.sampleAes=null,this.pmtParsed=!1,this.audioCodec=void 0,this.videoCodec=void 0,this._duration=0,this._pmtId=-1,this._videoTrack=void 0,this._audioTrack=void 0,this._id3Track=void 0,this._txtTrack=void 0,this.aacOverFlow=null,this.remainderData=null,this.videoParser=void 0,this.observer=t,this.config=e,this.typeSupported=i,this.videoParser=new na}static probe(t){let e=fn.syncOffset(t);return e>0&&C.warn("MPEG2-TS detected but first sync word found @ offset "+e),e!==-1}static syncOffset(t){let e=t.length,i=Math.min(940,e-188)+1,n=0;for(;n<i;){let r=!1,s=-1,a=0;for(let l=n;l<e;l+=188){if(t[l]!==71||e-l!=188&&t[l+188]!==71){if(a)return-1;break}if(a++,s===-1&&(s=l,s!==0&&(i=Math.min(s+18612,t.length-188)+1)),r||(r=ms(t,l)===0),r&&a>1&&(s===0&&a>2||l+188>i))return s}n++}return-1}static createTrack(t,e){return{container:t==="video"||t==="audio"?"video/mp2t":void 0,type:t,id:pe[t],pid:-1,inputTimeScale:90000,sequenceNumber:0,samples:[],dropped:0,duration:t==="audio"?e:void 0}}resetInitSegment(t,e,i,n){this.pmtParsed=!1,this._pmtId=-1,this._videoTrack=fn.createTrack("video"),this._audioTrack=fn.createTrack("audio",n),this._id3Track=fn.createTrack("id3"),this._txtTrack=fn.createTrack("text"),this._audioTrack.segmentCodec="aac",this.aacOverFlow=null,this.remainderData=null,this.audioCodec=e,this.videoCodec=i,this._duration=n}resetTimeStamp(){}resetContiguity(){let{_audioTrack:t,_videoTrack:e,_id3Track:i}=this;t&&(t.pesData=null),e&&(e.pesData=null),i&&(i.pesData=null),this.aacOverFlow=null,this.remainderData=null}demux(t,e,i=!1,n=!1){let r;i||(this.sampleAes=null);let s=this._videoTrack,a=this._audioTrack,l=this._id3Track,d=this._txtTrack,u=s.pid,f=s.pesData,E=a.pid,b=l.pid,T=a.pesData,_=l.pesData,D=null,w=this.pmtParsed,x=this._pmtId,M=t.length;if(this.remainderData&&(M=(t=li(this.remainderData,t)).length,this.remainderData=null),M<188&&!n)return this.remainderData=t,{audioTrack:a,videoTrack:s,id3Track:l,textTrack:d};let V=Math.max(0,fn.syncOffset(t));M-=(M-V)%188,M<t.byteLength&&!n&&(this.remainderData=new Uint8Array(t.buffer,M,t.buffer.byteLength-M));let X=0;for(let et=V;et<M;et+=188)if(t[et]===71){let vt=!!(64&t[et+1]),St=ms(t,et),nt;if((48&t[et+3])>>4>1){if(nt=et+5+t[et+4],nt===et+188)continue}else nt=et+4;switch(St){case u:vt&&(f&&(r=Wn(f))&&this.videoParser.parseAVCPES(s,d,r,!1,this._duration),f={data:[],size:0}),f&&(f.data.push(t.subarray(nt,et+188)),f.size+=et+188-nt);break;case E:if(vt){if(T&&(r=Wn(T)))switch(a.segmentCodec){case"aac":this.parseAACPES(a,r);break;case"mp3":this.parseMPEGPES(a,r);break;case"ac3":this.parseAC3PES(a,r)}T={data:[],size:0}}T&&(T.data.push(t.subarray(nt,et+188)),T.size+=et+188-nt);break;case b:vt&&(_&&(r=Wn(_))&&this.parseID3PES(l,r),_={data:[],size:0}),_&&(_.data.push(t.subarray(nt,et+188)),_.size+=et+188-nt);break;case 0:vt&&(nt+=t[nt]+1),x=this._pmtId=Ua(t,nt);break;case x:{vt&&(nt+=t[nt]+1);let it=sa(t,nt,this.typeSupported,i);u=it.videoPid,u>0&&(s.pid=u,s.segmentCodec=it.segmentVideoCodec),E=it.audioPid,E>0&&(a.pid=E,a.segmentCodec=it.segmentAudioCodec),b=it.id3Pid,b>0&&(l.pid=b),D===null||w||(C.warn(`MPEG-TS PMT found at ${et} after unknown PID '${D}'. Backtracking to sync byte @${V} to parse all TS packets.`),D=null,et=V-188),w=this.pmtParsed=!0;break}case 17:case 8191:break;default:D=St}}else X++;if(X>0){let et=new Error(`Found ${X} TS packet/s that do not start with 0x47`);this.observer.emit(A.ERROR,A.ERROR,{type:Ft.MEDIA_ERROR,details:H.FRAG_PARSING_ERROR,fatal:!1,error:et,reason:et.message})}s.pesData=f,a.pesData=T,l.pesData=_;let ot={audioTrack:a,videoTrack:s,id3Track:l,textTrack:d};return n&&this.extractRemainingSamples(ot),ot}flush(){let{remainderData:t}=this,e;return this.remainderData=null,e=t?this.demux(t,-1,!1,!0):{videoTrack:this._videoTrack,audioTrack:this._audioTrack,id3Track:this._id3Track,textTrack:this._txtTrack},this.extractRemainingSamples(e),this.sampleAes?this.decrypt(e,this.sampleAes):e}extractRemainingSamples(t){let{audioTrack:e,videoTrack:i,id3Track:n,textTrack:r}=t,s=i.pesData,a=e.pesData,l=n.pesData,d;if(s&&(d=Wn(s))?(this.videoParser.parseAVCPES(i,r,d,!0,this._duration),i.pesData=null):i.pesData=s,a&&(d=Wn(a))){switch(e.segmentCodec){case"aac":this.parseAACPES(e,d);break;case"mp3":this.parseMPEGPES(e,d);break;case"ac3":this.parseAC3PES(e,d)}e.pesData=null}else a!=null&&a.size&&C.log("last AAC PES packet truncated,might overlap between fragments"),e.pesData=a;l&&(d=Wn(l))?(this.parseID3PES(n,d),n.pesData=null):n.pesData=l}demuxSampleAes(t,e,i){let n=this.demux(t,i,!0,!this.config.progressive),r=this.sampleAes=new ra(this.observer,this.config,e);return this.decrypt(n,r)}decrypt(t,e){return new Promise((i)=>{let{audioTrack:n,videoTrack:r}=t;n.samples&&n.segmentCodec==="aac"?e.decryptAacSamples(n.samples,0,()=>{r.samples?e.decryptAvcSamples(r.samples,0,0,()=>{i(t)}):i(t)}):r.samples&&e.decryptAvcSamples(r.samples,0,0,()=>{i(t)})})}destroy(){this._duration=0}parseAACPES(t,e){let i=0,n=this.aacOverFlow,r,s,a,l=e.data;if(n){this.aacOverFlow=null;let f=n.missing,E=n.sample.unit.byteLength;if(f===-1)l=li(n.sample.unit,l);else{let b=E-f;n.sample.unit.set(l.subarray(0,f),b),t.samples.push(n.sample),i=n.missing}}for(r=i,s=l.length;r<s-1&&!cs(l,r);r++);if(r!==i){let f,E=r<s-1;f=E?"AAC PES did not start with ADTS header,offset:"+r:"No ADTS header found in AAC PES";let b=new Error(f);if(C.warn("parsing error: "+f),this.observer.emit(A.ERROR,A.ERROR,{type:Ft.MEDIA_ERROR,details:H.FRAG_PARSING_ERROR,fatal:!1,levelRetry:E,error:b,reason:f}),!E)return}if(Na(t,this.observer,l,r,this.audioCodec),e.pts!==void 0)a=e.pts;else{if(!n)return void C.warn("[tsdemuxer]: AAC PES unknown PTS");{let f=Zi(t.samplerate);a=n.sample.pts+f}}let d,u=0;for(;r<s;){if(d=Kn(t,l,r,a,u),r+=d.length,d.missing){this.aacOverFlow=d;break}for(u++;r<s-1&&!cs(l,r);r++);}}parseMPEGPES(t,e){let i=e.data,n=i.length,r=0,s=0,a=e.pts;if(a!==void 0)for(;s<n;)if(ta(i,s)){let l=Qs(t,i,s,a,r);if(!l)break;s+=l.length,r++}else s++;else C.warn("[tsdemuxer]: MPEG PES unknown PTS")}parseAC3PES(t,e){{let{data:i,pts:n}=e;if(n===void 0)return void C.warn("[tsdemuxer]: AC3 PES unknown PTS");let r=i.length,s,a=0,l=0;for(;l<r&&(s=hs(t,i,l,n,a++))>0;)l+=s}}parseID3PES(t,e){if(e.pts===void 0)return void C.warn("[tsdemuxer]: ID3 PES unknown PTS");let i=z({},e,{type:this._videoTrack?m:Fn,duration:Number.POSITIVE_INFINITY});t.samples.push(i)}}function ms(t,e){return((31&t[e+1])<<8)+t[e+2]}function Ua(t,e){return(31&t[e+10])<<8|t[e+11]}function sa(t,e,i,n){let r={audioPid:-1,videoPid:-1,id3Pid:-1,segmentVideoCodec:"avc",segmentAudioCodec:"aac"},s=e+3+((15&t[e+1])<<8|t[e+2])-4;for(e+=12+((15&t[e+10])<<8|t[e+11]);e<s;){let a=ms(t,e),l=(15&t[e+3])<<8|t[e+4];switch(t[e]){case 207:if(!n){gs("ADTS AAC");break}case 15:r.audioPid===-1&&(r.audioPid=a);break;case 21:r.id3Pid===-1&&(r.id3Pid=a);break;case 219:if(!n){gs("H.264");break}case 27:r.videoPid===-1&&(r.videoPid=a,r.segmentVideoCodec="avc");break;case 3:case 4:i.mpeg||i.mp3?r.audioPid===-1&&(r.audioPid=a,r.segmentAudioCodec="mp3"):C.log("MPEG audio found, not supported in this browser");break;case 193:if(!n){gs("AC-3");break}case 129:i.ac3?r.audioPid===-1&&(r.audioPid=a,r.segmentAudioCodec="ac3"):C.log("AC-3 audio found, not supported in this browser");break;case 6:if(r.audioPid===-1&&l>0){let d=e+5,u=l;for(;u>2;){switch(t[d]){case 106:i.ac3!==!0?C.log("AC-3 audio found, not supported in this browser for now"):(r.audioPid=a,r.segmentAudioCodec="ac3")}let f=t[d+1]+2;d+=f,u-=f}}break;case 194:case 135:C.warn("Unsupported EC-3 in M2TS found");break;case 36:C.warn("Unsupported HEVC in M2TS found")}e+=l+5}return r}function gs(t){C.log(t+" with AES-128-CBC encryption found in unencrypted stream")}function Wn(t){let e,i,n,r,s,a=0,l=t.data;if(!t||t.size===0)return null;for(;l[0].length<19&&l.length>1;)l[0]=li(l[0],l[1]),l.splice(1,1);if(e=l[0],(e[0]<<16)+(e[1]<<8)+e[2]===1){if(i=(e[4]<<8)+e[5],i&&i>t.size-6)return null;let d=e[7];192&d&&(r=536870912*(14&e[9])+4194304*(255&e[10])+16384*(254&e[11])+128*(255&e[12])+(254&e[13])/2,64&d?(s=536870912*(14&e[14])+4194304*(255&e[15])+16384*(254&e[16])+128*(255&e[17])+(254&e[18])/2,r-s>5400000&&(C.warn(Math.round((r-s)/90000)+"s delta between PTS and DTS, align them"),r=s)):s=r),n=e[8];let u=n+9;if(t.size<=u)return null;t.size-=u;let f=new Uint8Array(t.size);for(let E=0,b=l.length;E<b;E++){e=l[E];let T=e.byteLength;if(u){if(u>T){u-=T;continue}e=e.subarray(u),T-=u,u=0}f.set(e,a),a+=T}return i&&(i-=n+3),{data:f,pts:r,dts:s,len:i}}return null}class Ur{static getSilentFrame(t,e){switch(t){case"mp4a.40.2":if(e===1)return new Uint8Array([0,200,0,128,35,128]);if(e===2)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(e===3)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(e===4)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(e===5)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(e===6)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224]);break;default:if(e===1)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(e===2)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(e===3)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94])}}}let h=Math.pow(2,32)-1;class p{static init(){let t;for(t in p.types={avc1:[],avcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],".mp3":[],dac3:[],"ac-3":[],mvex:[],mvhd:[],pasp:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[]},p.types)p.types.hasOwnProperty(t)&&(p.types[t]=[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3)]);let e=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),i=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]);p.HDLR_TYPES={video:e,audio:i};let n=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),r=new Uint8Array([0,0,0,0,0,0,0,0]);p.STTS=p.STSC=p.STCO=r,p.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),p.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]),p.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),p.STSD=new Uint8Array([0,0,0,0,0,0,0,1]);let s=new Uint8Array([105,115,111,109]),a=new Uint8Array([97,118,99,49]),l=new Uint8Array([0,0,0,1]);p.FTYP=p.box(p.types.ftyp,s,l,s,a),p.DINF=p.box(p.types.dinf,p.box(p.types.dref,n))}static box(t,...e){let i=8,n=e.length,r=n;for(;n--;)i+=e[n].byteLength;let s=new Uint8Array(i);for(s[0]=i>>24&255,s[1]=i>>16&255,s[2]=i>>8&255,s[3]=255&i,s.set(t,4),n=0,i=8;n<r;n++)s.set(e[n],i),i+=e[n].byteLength;return s}static hdlr(t){return p.box(p.types.hdlr,p.HDLR_TYPES[t])}static mdat(t){return p.box(p.types.mdat,t)}static mdhd(t,e){e*=t;let i=Math.floor(e/(h+1)),n=Math.floor(e%(h+1));return p.box(p.types.mdhd,new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,t>>24&255,t>>16&255,t>>8&255,255&t,i>>24,i>>16&255,i>>8&255,255&i,n>>24,n>>16&255,n>>8&255,255&n,85,196,0,0]))}static mdia(t){return p.box(p.types.mdia,p.mdhd(t.timescale,t.duration),p.hdlr(t.type),p.minf(t))}static mfhd(t){return p.box(p.types.mfhd,new Uint8Array([0,0,0,0,t>>24,t>>16&255,t>>8&255,255&t]))}static minf(t){return t.type==="audio"?p.box(p.types.minf,p.box(p.types.smhd,p.SMHD),p.DINF,p.stbl(t)):p.box(p.types.minf,p.box(p.types.vmhd,p.VMHD),p.DINF,p.stbl(t))}static moof(t,e,i){return p.box(p.types.moof,p.mfhd(t),p.traf(i,e))}static moov(t){let e=t.length,i=[];for(;e--;)i[e]=p.trak(t[e]);return p.box.apply(null,[p.types.moov,p.mvhd(t[0].timescale,t[0].duration)].concat(i).concat(p.mvex(t)))}static mvex(t){let e=t.length,i=[];for(;e--;)i[e]=p.trex(t[e]);return p.box.apply(null,[p.types.mvex,...i])}static mvhd(t,e){e*=t;let i=Math.floor(e/(h+1)),n=Math.floor(e%(h+1)),r=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,t>>24&255,t>>16&255,t>>8&255,255&t,i>>24,i>>16&255,i>>8&255,255&i,n>>24,n>>16&255,n>>8&255,255&n,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return p.box(p.types.mvhd,r)}static sdtp(t){let e=t.samples||[],i=new Uint8Array(4+e.length),n,r;for(n=0;n<e.length;n++)r=e[n].flags,i[n+4]=r.dependsOn<<4|r.isDependedOn<<2|r.hasRedundancy;return p.box(p.types.sdtp,i)}static stbl(t){return p.box(p.types.stbl,p.stsd(t),p.box(p.types.stts,p.STTS),p.box(p.types.stsc,p.STSC),p.box(p.types.stsz,p.STSZ),p.box(p.types.stco,p.STCO))}static avc1(t){let e,i,n,r=[],s=[];for(e=0;e<t.sps.length;e++)i=t.sps[e],n=i.byteLength,r.push(n>>>8&255),r.push(255&n),r=r.concat(Array.prototype.slice.call(i));for(e=0;e<t.pps.length;e++)i=t.pps[e],n=i.byteLength,s.push(n>>>8&255),s.push(255&n),s=s.concat(Array.prototype.slice.call(i));let a=p.box(p.types.avcC,new Uint8Array([1,r[3],r[4],r[5],255,224|t.sps.length].concat(r).concat([t.pps.length]).concat(s))),l=t.width,d=t.height,u=t.pixelRatio[0],f=t.pixelRatio[1];return p.box(p.types.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,l>>8&255,255&l,d>>8&255,255&d,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),a,p.box(p.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),p.box(p.types.pasp,new Uint8Array([u>>24,u>>16&255,u>>8&255,255&u,f>>24,f>>16&255,f>>8&255,255&f])))}static esds(t){let e=t.config.length;return new Uint8Array([0,0,0,0,3,23+e,0,1,0,4,15+e,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([e]).concat(t.config).concat([6,1,2]))}static audioStsd(t){let e=t.samplerate;return new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t.channelCount,0,16,0,0,0,0,e>>8&255,255&e,0,0])}static mp4a(t){return p.box(p.types.mp4a,p.audioStsd(t),p.box(p.types.esds,p.esds(t)))}static mp3(t){return p.box(p.types[".mp3"],p.audioStsd(t))}static ac3(t){return p.box(p.types["ac-3"],p.audioStsd(t),p.box(p.types.dac3,t.config))}static stsd(t){return t.type==="audio"?t.segmentCodec==="mp3"&&t.codec==="mp3"?p.box(p.types.stsd,p.STSD,p.mp3(t)):t.segmentCodec==="ac3"?p.box(p.types.stsd,p.STSD,p.ac3(t)):p.box(p.types.stsd,p.STSD,p.mp4a(t)):p.box(p.types.stsd,p.STSD,p.avc1(t))}static tkhd(t){let e=t.id,i=t.duration*t.timescale,n=t.width,r=t.height,s=Math.floor(i/(h+1)),a=Math.floor(i%(h+1));return p.box(p.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,e>>24&255,e>>16&255,e>>8&255,255&e,0,0,0,0,s>>24,s>>16&255,s>>8&255,255&s,a>>24,a>>16&255,a>>8&255,255&a,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,n>>8&255,255&n,0,0,r>>8&255,255&r,0,0]))}static traf(t,e){let i=p.sdtp(t),n=t.id,r=Math.floor(e/(h+1)),s=Math.floor(e%(h+1));return p.box(p.types.traf,p.box(p.types.tfhd,new Uint8Array([0,0,0,0,n>>24,n>>16&255,n>>8&255,255&n])),p.box(p.types.tfdt,new Uint8Array([1,0,0,0,r>>24,r>>16&255,r>>8&255,255&r,s>>24,s>>16&255,s>>8&255,255&s])),p.trun(t,i.length+16+20+8+16+8+8),i)}static trak(t){return t.duration=t.duration||4294967295,p.box(p.types.trak,p.tkhd(t),p.mdia(t))}static trex(t){let e=t.id;return p.box(p.types.trex,new Uint8Array([0,0,0,0,e>>24,e>>16&255,e>>8&255,255&e,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))}static trun(t,e){let i=t.samples||[],n=i.length,r=12+16*n,s=new Uint8Array(r),a,l,d,u,f,E;for(e+=8+r,s.set([t.type==="video"?1:0,0,15,1,n>>>24&255,n>>>16&255,n>>>8&255,255&n,e>>>24&255,e>>>16&255,e>>>8&255,255&e],0),a=0;a<n;a++)l=i[a],d=l.duration,u=l.size,f=l.flags,E=l.cts,s.set([d>>>24&255,d>>>16&255,d>>>8&255,255&d,u>>>24&255,u>>>16&255,u>>>8&255,255&u,f.isLeading<<2|f.dependsOn,f.isDependedOn<<6|f.hasRedundancy<<4|f.paddingValue<<1|f.isNonSync,61440&f.degradPrio,15&f.degradPrio,E>>>24&255,E>>>16&255,E>>>8&255,255&E],12+16*a);return p.box(p.types.trun,s)}static initSegment(t){p.types||p.init();let e=p.moov(t);return li(p.FTYP,e)}}p.types=void 0,p.HDLR_TYPES=void 0,p.STTS=void 0,p.STSC=void 0,p.STCO=void 0,p.STSZ=void 0,p.VMHD=void 0,p.SMHD=void 0,p.STSD=void 0,p.FTYP=void 0,p.DINF=void 0;function v(t,e,i=1,n=!1){let r=t*e*i;return n?Math.round(r):r}function k(t,e=!1){return v(t,1000,0.000011111111111111112,e)}let I,K=null,Y=null;class ${constructor(t,e,i,n=""){if(this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.ISGenerated=!1,this._initPTS=null,this._initDTS=null,this.nextAvcDts=null,this.nextAudioPts=null,this.videoSampleDuration=null,this.isAudioContiguous=!1,this.isVideoContiguous=!1,this.videoTrackConfig=void 0,this.observer=t,this.config=e,this.typeSupported=i,this.ISGenerated=!1,K===null){let r=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);K=r?parseInt(r[1]):0}if(Y===null){let r=navigator.userAgent.match(/Safari\/(\d+)/i);Y=r?parseInt(r[1]):0}}destroy(){this.config=this.videoTrackConfig=this._initPTS=this._initDTS=null}resetTimeStamp(t){C.log("[mp4-remuxer]: initPTS & initDTS reset"),this._initPTS=this._initDTS=t}resetNextTimestamp(){C.log("[mp4-remuxer]: reset next timestamp"),this.isVideoContiguous=!1,this.isAudioContiguous=!1}resetInitSegment(){C.log("[mp4-remuxer]: ISGenerated flag reset"),this.ISGenerated=!1,this.videoTrackConfig=void 0}getVideoStartPts(t){let e=!1,i=t.reduce((n,r)=>{let s=r.pts-n;return s<-4294967296?(e=!0,Z(n,r.pts)):s>0?n:r.pts},t[0].pts);return e&&C.debug("PTS rollover detected"),i}remux(t,e,i,n,r,s,a,l){let d,u,f,E,b,T,_=r,D=r,w=t.pid>-1,x=e.pid>-1,M=e.samples.length,V=t.samples.length>0,X=a&&M>0||M>1;if((!w||V)&&(!x||X)||this.ISGenerated||a){if(this.ISGenerated){var ot,et,vt,St;let At=this.videoTrackConfig;!At||e.width===At.width&&e.height===At.height&&((ot=e.pixelRatio)==null?void 0:ot[0])===((et=At.pixelRatio)==null?void 0:et[0])&&((vt=e.pixelRatio)==null?void 0:vt[1])===((St=At.pixelRatio)==null?void 0:St[1])||this.resetInitSegment()}else f=this.generateIS(t,e,r,s);let nt=this.isVideoContiguous,it,jt=-1;if(X&&(jt=function(At){for(let Kt=0;Kt<At.length;Kt++)if(At[Kt].key)return Kt;return-1}(e.samples),!nt&&this.config.forceKeyFrameOnDiscontinuity))if(T=!0,jt>0){C.warn(`[mp4-remuxer]: Dropped ${jt} out of ${M} video samples due to a missing keyframe`);let At=this.getVideoStartPts(e.samples);e.samples=e.samples.slice(jt),e.dropped+=jt,D+=(e.samples[0].pts-At)/e.inputTimeScale,it=D}else jt===-1&&(C.warn(`[mp4-remuxer]: No keyframe found out of ${M} video samples`),T=!1);if(this.ISGenerated){if(V&&X){let At=this.getVideoStartPts(e.samples),Kt=(Z(t.samples[0].pts,At)-At)/e.inputTimeScale;_+=Math.max(0,Kt),D+=Math.max(0,-Kt)}if(V){if(t.samplerate||(C.warn("[mp4-remuxer]: regenerate InitSegment as audio detected"),f=this.generateIS(t,e,r,s)),u=this.remuxAudio(t,_,this.isAudioContiguous,s,x||X||l===ei?D:void 0),X){let At=u?u.endPTS-u.startPTS:0;e.inputTimeScale||(C.warn("[mp4-remuxer]: regenerate InitSegment as video detected"),f=this.generateIS(t,e,r,s)),d=this.remuxVideo(e,D,nt,At)}}else X&&(d=this.remuxVideo(e,D,nt,0));d&&(d.firstKeyFrame=jt,d.independent=jt!==-1,d.firstKeyFramePTS=it)}}return this.ISGenerated&&this._initPTS&&this._initDTS&&(i.samples.length&&(b=rt(i,r,this._initPTS,this._initDTS)),n.samples.length&&(E=Bt(n,r,this._initPTS))),{audio:u,video:d,initSegment:f,independent:T,text:E,id3:b}}generateIS(t,e,i,n){let r=t.samples,s=e.samples,a=this.typeSupported,l={},d=this._initPTS,u,f,E,b=!d||n,T="audio/mp4";if(b&&(u=f=1/0),t.config&&r.length){switch(t.timescale=t.samplerate,t.segmentCodec){case"mp3":a.mpeg?(T="audio/mpeg",t.codec=""):a.mp3&&(t.codec="mp3");break;case"ac3":t.codec="ac-3"}l.audio={id:"audio",container:T,codec:t.codec,initSegment:t.segmentCodec==="mp3"&&a.mpeg?new Uint8Array(0):p.initSegment([t]),metadata:{channelCount:t.channelCount}},b&&(E=t.inputTimeScale,d&&E===d.timescale?b=!1:u=f=r[0].pts-Math.round(E*i))}if(e.sps&&e.pps&&s.length){if(e.timescale=e.inputTimeScale,l.video={id:"main",container:"video/mp4",codec:e.codec,initSegment:p.initSegment([e]),metadata:{width:e.width,height:e.height}},b)if(E=e.inputTimeScale,d&&E===d.timescale)b=!1;else{let _=this.getVideoStartPts(s),D=Math.round(E*i);f=Math.min(f,Z(s[0].dts,_)-D),u=Math.min(u,_-D)}this.videoTrackConfig={width:e.width,height:e.height,pixelRatio:e.pixelRatio}}if(Object.keys(l).length)return this.ISGenerated=!0,b?(this._initPTS={baseTime:u,timescale:E},this._initDTS={baseTime:f,timescale:E}):u=E=void 0,{tracks:l,initPTS:u,timescale:E}}remuxVideo(t,e,i,n){let{inputTimeScale:r,samples:s}=t,a=[],l=s.length,d=this._initPTS,u,f,E=this.nextAvcDts,b=8,T=this.videoSampleDuration,_=Number.POSITIVE_INFINITY,D=Number.NEGATIVE_INFINITY,w=!1;if(!i||E===null){let ht=e*r,wt=s[0].pts-Z(s[0].dts,s[0].pts);K&&E!==null&&Math.abs(ht-wt-E)<15000?i=!0:E=ht-wt}let x=d.baseTime*r/d.timescale;for(let ht=0;ht<l;ht++){let wt=s[ht];wt.pts=Z(wt.pts-x,E),wt.dts=Z(wt.dts-x,E),wt.dts<s[ht>0?ht-1:ht].dts&&(w=!0)}w&&s.sort(function(ht,wt){let Wt=ht.dts-wt.dts,Yt=ht.pts-wt.pts;return Wt||Yt}),u=s[0].dts,f=s[s.length-1].dts;let M=f-u,V=M?Math.round(M/(l-1)):T||t.inputTimeScale/30;if(i){let ht=u-E,wt=ht>V,Wt=ht<-1;if((wt||Wt)&&(wt?C.warn(`AVC: ${k(ht,!0)} ms (${ht}dts) hole between fragments detected at ${e.toFixed(3)}`):C.warn(`AVC: ${k(-ht,!0)} ms (${ht}dts) overlapping between fragments detected at ${e.toFixed(3)}`),!Wt||E>=s[0].pts||K)){u=E;let Yt=s[0].pts-ht;if(wt)s[0].dts=u,s[0].pts=Yt;else for(let ae=0;ae<s.length&&!(s[ae].dts>Yt);ae++)s[ae].dts-=ht,s[ae].pts-=ht;C.log(`Video: Initial PTS/DTS adjusted: ${k(Yt,!0)}/${k(u,!0)}, delta: ${k(ht,!0)} ms`)}}u=Math.max(0,u);let X=0,ot=0,et=u;for(let ht=0;ht<l;ht++){let wt=s[ht],Wt=wt.units,Yt=Wt.length,ae=0;for(let Ce=0;Ce<Yt;Ce++)ae+=Wt[Ce].data.length;ot+=ae,X+=Yt,wt.length=ae,wt.dts<et?(wt.dts=et,et+=V/4|0||1):et=wt.dts,_=Math.min(wt.pts,_),D=Math.max(wt.pts,D)}f=s[l-1].dts;let vt=ot+4*X+8,St;try{St=new Uint8Array(vt)}catch(ht){return void this.observer.emit(A.ERROR,A.ERROR,{type:Ft.MUX_ERROR,details:H.REMUX_ALLOC_ERROR,fatal:!1,error:ht,bytes:vt,reason:"fail allocating video mdat "+vt})}let nt=new DataView(St.buffer);nt.setUint32(0,vt),St.set(p.types.mdat,4);let it=!1,jt=Number.POSITIVE_INFINITY,At=Number.POSITIVE_INFINITY,Kt=Number.NEGATIVE_INFINITY,zt=Number.NEGATIVE_INFINITY;for(let ht=0;ht<l;ht++){let wt=s[ht],Wt=wt.units,Yt,ae=0;for(let $e=0,xe=Wt.length;$e<xe;$e++){let hi=Wt[$e],Gi=hi.data,Ve=hi.data.byteLength;nt.setUint32(b,Ve),b+=4,St.set(Gi,b),b+=Ve,ae+=4+Ve}if(ht<l-1)T=s[ht+1].dts-wt.dts,Yt=s[ht+1].pts-wt.pts;else{let $e=this.config,xe=ht>0?wt.dts-s[ht-1].dts:V;if(Yt=ht>0?wt.pts-s[ht-1].pts:V,$e.stretchShortVideoTrack&&this.nextAudioPts!==null){let hi=Math.floor($e.maxBufferHole*r),Gi=(n?_+n*r:this.nextAudioPts)-wt.pts;Gi>hi?(T=Gi-xe,T<0?T=xe:it=!0,C.log(`[mp4-remuxer]: It is approximately ${Gi/90} ms to the next segment; using duration ${T/90} ms for the last video frame.`)):T=xe}else T=xe}let Ce=Math.round(wt.pts-wt.dts);jt=Math.min(jt,T),Kt=Math.max(Kt,T),At=Math.min(At,Yt),zt=Math.max(zt,Yt),a.push(new Vt(wt.key,T,ae,Ce))}if(a.length){if(K){if(K<70){let ht=a[0].flags;ht.dependsOn=2,ht.isNonSync=0}}else if(Y&&zt-At<Kt-jt&&V/Kt<0.025&&a[0].cts===0){C.warn("Found irregular gaps in sample duration. Using PTS instead of DTS to determine MP4 sample duration.");let ht=u;for(let wt=0,Wt=a.length;wt<Wt;wt++){let Yt=ht+a[wt].duration,ae=ht+a[wt].cts;if(wt<Wt-1){let Ce=Yt+a[wt+1].cts;a[wt].duration=Ce-ae}else a[wt].duration=wt?a[wt-1].duration:V;a[wt].cts=0,ht=Yt}}}T=it||!T?V:T,this.nextAvcDts=E=f+T,this.videoSampleDuration=T,this.isVideoContiguous=!0;let Xt={data1:p.moof(t.sequenceNumber++,u,z({},t,{samples:a})),data2:St,startPTS:_/r,endPTS:(D+T)/r,startDTS:u/r,endDTS:E/r,type:"video",hasAudio:!1,hasVideo:!0,nb:a.length,dropped:t.dropped};return t.samples=[],t.dropped=0,Xt}getSamplesPerFrame(t){switch(t.segmentCodec){case"mp3":return 1152;case"ac3":return 1536;default:return 1024}}remuxAudio(t,e,i,n,r){let s=t.inputTimeScale,a=s/(t.samplerate?t.samplerate:s),l=this.getSamplesPerFrame(t),d=l*a,u=this._initPTS,f=t.segmentCodec==="mp3"&&this.typeSupported.mpeg,E=[],b=r!==void 0,T=t.samples,_=f?0:8,D=this.nextAudioPts||-1,w=e*s,x=u.baseTime*s/u.timescale;if(this.isAudioContiguous=i=i||T.length&&D>0&&(n&&Math.abs(w-D)<9000||Math.abs(Z(T[0].pts-x,w)-D)<20*d),T.forEach(function(Kt){Kt.pts=Z(Kt.pts-x,w)}),!i||D<0){if(T=T.filter((Kt)=>Kt.pts>=0),!T.length)return;D=r===0?0:n&&!b?Math.max(0,w):T[0].pts}if(t.segmentCodec==="aac"){let Kt=this.config.maxAudioFramesDrift;for(let zt=0,Xt=D;zt<T.length;zt++){let ht=T[zt],wt=ht.pts,Wt=wt-Xt,Yt=Math.abs(1000*Wt/s);if(Wt<=-Kt*d&&b)zt===0&&(C.warn(`Audio frame @ ${(wt/s).toFixed(3)}s overlaps nextAudioPts by ${Math.round(1000*Wt/s)} ms.`),this.nextAudioPts=D=Xt=wt);else if(Wt>=Kt*d&&Yt<1e4&&b){let ae=Math.round(Wt/d);Xt=wt-ae*d,Xt<0&&(ae--,Xt+=d),zt===0&&(this.nextAudioPts=D=Xt),C.warn(`[mp4-remuxer]: Injecting ${ae} audio frame @ ${(Xt/s).toFixed(3)}s due to ${Math.round(1000*Wt/s)} ms gap.`);for(let Ce=0;Ce<ae;Ce++){let $e=Math.max(Xt,0),xe=Ur.getSilentFrame(t.manifestCodec||t.codec,t.channelCount);xe||(C.log("[mp4-remuxer]: Unable to get silent frame for given audio codec; duplicating last frame instead."),xe=ht.unit.subarray()),T.splice(zt,0,{unit:xe,pts:$e}),Xt+=d,zt++}}ht.pts=Xt,Xt+=d}}let M,V=null,X=null,ot=0,et=T.length;for(;et--;)ot+=T[et].unit.byteLength;for(let Kt=0,zt=T.length;Kt<zt;Kt++){let Xt=T[Kt],ht=Xt.unit,wt=Xt.pts;if(X!==null)E[Kt-1].duration=Math.round((wt-X)/a);else{if(i&&t.segmentCodec==="aac"&&(wt=D),V=wt,!(ot>0))return;ot+=_;try{M=new Uint8Array(ot)}catch(Yt){return void this.observer.emit(A.ERROR,A.ERROR,{type:Ft.MUX_ERROR,details:H.REMUX_ALLOC_ERROR,fatal:!1,error:Yt,bytes:ot,reason:"fail allocating audio mdat "+ot})}if(!f)new DataView(M.buffer).setUint32(0,ot),M.set(p.types.mdat,4)}M.set(ht,_);let Wt=ht.byteLength;_+=Wt,E.push(new Vt(!0,l,Wt,0)),X=wt}let vt=E.length;if(!vt)return;let St=E[E.length-1];this.nextAudioPts=D=X+a*St.duration;let nt=f?new Uint8Array(0):p.moof(t.sequenceNumber++,V/a,z({},t,{samples:E}));t.samples=[];let it=V/s,jt=D/s,At={data1:nt,data2:M,startPTS:it,endPTS:jt,startDTS:it,endDTS:jt,type:"audio",hasAudio:!0,hasVideo:!1,nb:vt};return this.isAudioContiguous=!0,At}remuxEmptyAudio(t,e,i,n){let r=t.inputTimeScale,s=r/(t.samplerate?t.samplerate:r),a=this.nextAudioPts,l=this._initDTS,d=90000*l.baseTime/l.timescale,u=(a!==null?a:n.startDTS*r)+d,f=n.endDTS*r+d,E=1024*s,b=Math.ceil((f-u)/E),T=Ur.getSilentFrame(t.manifestCodec||t.codec,t.channelCount);if(C.warn("[mp4-remuxer]: remux empty Audio"),!T)return void C.trace("[mp4-remuxer]: Unable to remuxEmptyAudio since we were unable to get a silent frame for given audio codec");let _=[];for(let D=0;D<b;D++){let w=u+D*E;_.push({unit:T,pts:w,dts:w})}return t.samples=_,this.remuxAudio(t,e,i,!1)}}function Z(t,e){let i;if(e===null)return t;for(i=e<t?-8589934592:8589934592;Math.abs(t-e)>4294967296;)t+=i;return t}function rt(t,e,i,n){let r=t.samples.length;if(!r)return;let s=t.inputTimeScale;for(let l=0;l<r;l++){let d=t.samples[l];d.pts=Z(d.pts-i.baseTime*s/i.timescale,e*s)/s,d.dts=Z(d.dts-n.baseTime*s/n.timescale,e*s)/s}let a=t.samples;return t.samples=[],{samples:a}}function Bt(t,e,i){let n=t.samples.length;if(!n)return;let r=t.inputTimeScale;for(let a=0;a<n;a++){let l=t.samples[a];l.pts=Z(l.pts-i.baseTime*r/i.timescale,e*r)/r}t.samples.sort((a,l)=>a.pts-l.pts);let s=t.samples;return t.samples=[],{samples:s}}class Vt{constructor(t,e,i,n){this.size=void 0,this.duration=void 0,this.cts=void 0,this.flags=void 0,this.duration=e,this.size=i,this.cts=n,this.flags={isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:t?2:1,isNonSync:t?0:1}}}function oe(t,e){let i=t==null?void 0:t.codec;if(i&&i.length>4)return i;if(e===gt){if(i==="ec-3"||i==="ac-3"||i==="alac")return i;if(i==="fLaC"||i==="Opus")return xn(i,!1);let n="mp4a.40.5";return C.info(`Parsed audio codec "${i}" or audio object type not handled. Using "${n}"`),n}return C.warn(`Unhandled video codec "${i}"`),i==="hvc1"||i==="hev1"?"hvc1.1.6.L120.90":i==="av01"?"av01.0.04M.08":"avc1.42e01e"}try{I=self.performance.now.bind(self.performance)}catch(t){C.debug("Unable to use Performance API on this environment"),I=we==null?void 0:we.Date.now}let ke=[{demux:class t{constructor(e,i){this.remainderData=null,this.timeOffset=0,this.config=void 0,this.videoTrack=void 0,this.audioTrack=void 0,this.id3Track=void 0,this.txtTrack=void 0,this.config=i}resetTimeStamp(){}resetInitSegment(e,i,n,r){let s=this.videoTrack=on("video",1),a=this.audioTrack=on("audio",1),l=this.txtTrack=on("text",1);if(this.id3Track=on("id3",1),this.timeOffset=0,e==null||!e.byteLength)return;let d=Tr(e);if(d.video){let{id:u,timescale:f,codec:E}=d.video;s.id=u,s.timescale=l.timescale=f,s.codec=E}if(d.audio){let{id:u,timescale:f,codec:E}=d.audio;a.id=u,a.timescale=f,a.codec=E}l.id=pe.text,s.sampleDuration=0,s.duration=a.duration=r}resetContiguity(){this.remainderData=null}static probe(e){return function(i){let n=i.byteLength;for(let r=0;r<n;){let s=Zt(i,r);if(s>8&&i[r+4]===109&&i[r+5]===111&&i[r+6]===111&&i[r+7]===102)return!0;r=s>1?r+s:n}return!1}(e)}demux(e,i){this.timeOffset=i;let n=e,r=this.videoTrack,s=this.txtTrack;if(this.config.progressive){this.remainderData&&(n=li(this.remainderData,e));let l=function(d){let u={valid:null,remainder:null},f=Q(d,["moof"]);if(f.length<2)return u.remainder=d,u;let E=f[f.length-1];return u.valid=Se(d,0,E.byteOffset-8),u.remainder=Se(d,E.byteOffset-8),u}(n);this.remainderData=l.remainder,r.samples=l.valid||new Uint8Array}else r.samples=n;let a=this.extractID3Track(r,i);return s.samples=Rn(i,r),{videoTrack:r,audioTrack:this.audioTrack,id3Track:a,textTrack:this.txtTrack}}flush(){let e=this.timeOffset,i=this.videoTrack,n=this.txtTrack;i.samples=this.remainderData||new Uint8Array,this.remainderData=null;let r=this.extractID3Track(i,this.timeOffset);return n.samples=Rn(e,i),{videoTrack:i,audioTrack:on(),id3Track:r,textTrack:on()}}extractID3Track(e,i){let n=this.id3Track;if(e.samples.length){let r=Q(e.samples,["emsg"]);r&&r.forEach((s)=>{let a=function(l){let d=l[0],u="",f="",E=0,b=0,T=0,_=0,D=0,w=0;if(d===0){for(;fe(l.subarray(w,w+1))!=="\x00";)u+=fe(l.subarray(w,w+1)),w+=1;for(u+=fe(l.subarray(w,w+1)),w+=1;fe(l.subarray(w,w+1))!=="\x00";)f+=fe(l.subarray(w,w+1)),w+=1;f+=fe(l.subarray(w,w+1)),w+=1,E=Zt(l,12),b=Zt(l,16),_=Zt(l,20),D=Zt(l,24),w=28}else if(d===1){w+=4,E=Zt(l,w),w+=4;let x=Zt(l,w);w+=4;let M=Zt(l,w);for(w+=4,T=4294967296*x+M,Nt(T)||(T=Number.MAX_SAFE_INTEGER,C.warn("Presentation time exceeds safe integer limit and wrapped to max safe integer in parsing emsg box")),_=Zt(l,w),w+=4,D=Zt(l,w),w+=4;fe(l.subarray(w,w+1))!=="\x00";)u+=fe(l.subarray(w,w+1)),w+=1;for(u+=fe(l.subarray(w,w+1)),w+=1;fe(l.subarray(w,w+1))!=="\x00";)f+=fe(l.subarray(w,w+1)),w+=1;f+=fe(l.subarray(w,w+1)),w+=1}return{schemeIdUri:u,value:f,timeScale:E,presentationTime:T,presentationTimeDelta:b,eventDuration:_,id:D,payload:l.subarray(w,l.byteLength)}}(s);if(Ba.test(a.schemeIdUri)){let l=j(a.presentationTime)?a.presentationTime/a.timeScale:i+a.presentationTimeDelta/a.timeScale,d=a.eventDuration===4294967295?Number.POSITIVE_INFINITY:a.eventDuration/a.timeScale;d<=0.001&&(d=Number.POSITIVE_INFINITY);let u=a.payload;n.samples.push({data:u,len:u.byteLength,dts:l,pts:l,type:m,duration:d})}})}return n}demuxSampleAes(e,i,n){return Promise.reject(new Error("The MP4 demuxer does not support SAMPLE-AES decryption"))}destroy(){}},remux:class t{constructor(){this.emitInitSegment=!1,this.audioCodec=void 0,this.videoCodec=void 0,this.initData=void 0,this.initPTS=null,this.initTracks=void 0,this.lastEndTime=null}destroy(){}resetTimeStamp(e){this.initPTS=e,this.lastEndTime=null}resetNextTimestamp(){this.lastEndTime=null}resetInitSegment(e,i,n,r){this.audioCodec=i,this.videoCodec=n,this.generateInitSegment(function(s,a){if(!s||!a)return s;let l=a.keyId;if(l&&a.isCommonEncryption)Q(s,["moov","trak"]).forEach((d)=>{let u=Q(d,["mdia","minf","stbl","stsd"])[0].subarray(8),f=Q(u,["enca"]),E=f.length>0;E||(f=Q(u,["encv"])),f.forEach((b)=>{Q(E?b.subarray(28):b.subarray(78),["sinf"]).forEach((T)=>{let _=_r(T);if(_){let D=_.subarray(8,24);D.some((w)=>w!==0)||(C.log(`[eme] Patching keyId in 'enc${E?"a":"v"}>sinf>>tenc' box: ${_i(D)} -> ${_i(l)}`),_.set(l,8))}})})});return s}(e,r)),this.emitInitSegment=!0}generateInitSegment(e){let{audioCodec:i,videoCodec:n}=this;if(e==null||!e.byteLength)return this.initTracks=void 0,void(this.initData=void 0);let r=this.initData=Tr(e);r.audio&&(i=oe(r.audio,gt)),r.video&&(n=oe(r.video,Rt));let s={};r.audio&&r.video?s.audiovideo={container:"video/mp4",codec:i+","+n,initSegment:e,id:"main"}:r.audio?s.audio={container:"audio/mp4",codec:i,initSegment:e,id:"audio"}:r.video?s.video={container:"video/mp4",codec:n,initSegment:e,id:"main"}:C.warn("[passthrough-remuxer.ts]: initSegment does not contain moov or trak boxes."),this.initTracks=s}remux(e,i,n,r,s,a){var l,d;let{initPTS:u,lastEndTime:f}=this,E={audio:void 0,video:void 0,text:r,id3:n,initSegment:void 0};j(f)||(f=this.lastEndTime=s||0);let b=i.samples;if(b==null||!b.length)return E;let T={initPTS:void 0,timescale:1},_=this.initData;if((l=_)!=null&&l.length||(this.generateInitSegment(b),_=this.initData),(d=_)==null||!d.length)return C.warn("[passthrough-remuxer.ts]: Failed to generate initSegment."),E;this.emitInitSegment&&(T.tracks=this.initTracks,this.emitInitSegment=!1);let D=function(St,nt){let it=0,jt=0,At=0,Kt=Q(St,["moof","traf"]);for(let zt=0;zt<Kt.length;zt++){let Xt=Kt[zt],ht=Q(Xt,["tfhd"])[0],wt=nt[Zt(ht,4)];if(!wt)continue;let Wt=wt.default,Yt=Zt(ht,0)|(Wt==null?void 0:Wt.flags),ae=Wt==null?void 0:Wt.duration;8&Yt&&(ae=Zt(ht,2&Yt?12:8));let Ce=wt.timescale||90000,$e=Q(Xt,["trun"]);for(let xe=0;xe<$e.length;xe++){if(it=Yi($e[xe]),!it&&ae)it=ae*Zt($e[xe],4);wt.type===Rt?jt+=it/Ce:wt.type===gt&&(At+=it/Ce)}}if(jt===0&&At===0){let zt=1/0,Xt=0,ht=0,wt=Q(St,["sidx"]);for(let Wt=0;Wt<wt.length;Wt++){let Yt=De(wt[Wt]);if(Yt!=null&&Yt.references){zt=Math.min(zt,Yt.earliestPresentationTime/Yt.timescale);let ae=Yt.references.reduce((Ce,$e)=>Ce+$e.info.duration||0,0);Xt=Math.max(Xt,ae+Yt.earliestPresentationTime/Yt.timescale),ht=Xt-zt}}if(ht&&j(ht))return ht}return jt||At}(b,_),w=function(St,nt){return Q(nt,["moof","traf"]).reduce((it,jt)=>{let At=Q(jt,["tfdt"])[0],Kt=At[0],zt=Q(jt,["tfhd"]).reduce((Xt,ht)=>{let wt=Zt(ht,4),Wt=St[wt];if(Wt){let Yt=Zt(At,4);if(Kt===1){if(Yt===ve)return C.warn("[mp4-demuxer]: Ignoring assumed invalid signed 64-bit track fragment decode time"),Xt;Yt*=ve+1,Yt+=Zt(At,8)}let ae=Yt/(Wt.timescale||90000);if(j(ae)&&(Xt===null||ae<Xt))return ae}return Xt},null);return zt!==null&&j(zt)&&(it===null||zt<it)?zt:it},null)}(_,b),x=w===null?s:w;(function(St,nt,it,jt){if(St===null)return!0;let At=Math.max(jt,1),Kt=nt-St.baseTime/St.timescale;return Math.abs(Kt-it)>At}(u,x,s,D)||T.timescale!==u.timescale&&a)&&(T.initPTS=x-s,u&&u.timescale===1&&C.warn("Adjusting initPTS by "+(T.initPTS-u.baseTime)),this.initPTS=u={baseTime:T.initPTS,timescale:1});let M=e?x-u.baseTime/u.timescale:f,V=M+D;(function(St,nt,it){Q(nt,["moof","traf"]).forEach((jt)=>{Q(jt,["tfhd"]).forEach((At)=>{let Kt=Zt(At,4),zt=St[Kt];if(!zt)return;let Xt=zt.timescale||90000;Q(jt,["tfdt"]).forEach((ht)=>{let wt=ht[0],Wt=it*Xt;if(Wt){let Yt=Zt(ht,4);if(wt===0)Yt-=Wt,Yt=Math.max(Yt,0),Hi(ht,4,Yt);else{Yt*=Math.pow(2,32),Yt+=Zt(ht,8),Yt-=Wt,Yt=Math.max(Yt,0);let ae=Math.floor(Yt/(ve+1)),Ce=Math.floor(Yt%(ve+1));Hi(ht,4,ae),Hi(ht,8,Ce)}}})})})})(_,b,u.baseTime/u.timescale),D>0?this.lastEndTime=V:(C.warn("Duration parsed from mp4 should be greater than zero"),this.resetNextTimestamp());let X=!!_.audio,ot=!!_.video,et="";X&&(et+="audio"),ot&&(et+="video");let vt={data1:b,startPTS:M,startDTS:M,endPTS:V,endDTS:V,type:et,hasAudio:X,hasVideo:ot,nb:1,dropped:0};return E.audio=vt.type==="audio"?vt:void 0,E.video=vt.type!=="audio"?vt:void 0,E.initSegment=T,E.id3=rt(n,s,u,u),r.samples.length&&(E.text=Bt(r,s,u)),E}}},{demux:fn,remux:$},{demux:class t extends ls{constructor(e,i){super(),this.observer=void 0,this.config=void 0,this.observer=e,this.config=i}resetInitSegment(e,i,n,r){super.resetInitSegment(e,i,n,r),this._audioTrack={container:"audio/adts",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"aac",samples:[],manifestCodec:i,duration:r,inputTimeScale:90000,dropped:0}}static probe(e){if(!e)return!1;let i=Ii(e,0),n=(i==null?void 0:i.length)||0;if(ea(e,n))return!1;for(let r=e.length;n<r;n++)if(wo(e,n))return C.log("ADTS sync word found !"),!0;return!1}canParse(e,i){return function(n,r){return function(s,a){return a+5<s.length}(n,r)&&Oa(n,r)&&Js(n,r)<=n.length-r}(e,i)}appendFrame(e,i,n){Na(e,this.observer,i,n,e.manifestCodec);let r=Kn(e,i,n,this.basePTS,this.frameIndex);if(r&&r.missing===0)return r}},remux:$},{demux:class t extends ls{resetInitSegment(e,i,n,r){super.resetInitSegment(e,i,n,r),this._audioTrack={container:"audio/mpeg",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"mp3",samples:[],manifestCodec:i,duration:r,inputTimeScale:90000,dropped:0}}static probe(e){if(!e)return!1;let i=Ii(e,0),n=(i==null?void 0:i.length)||0;if(i&&e[n]===11&&e[n+1]===119&&oi(i)!==void 0&&us(e,n)<=16)return!1;for(let r=e.length;n<r;n++)if(ea(e,n))return C.log("MPEG Audio sync word found !"),!0;return!1}canParse(e,i){return function(n,r){return ds(n,r)&&4<=n.length-r}(e,i)}appendFrame(e,i,n){if(this.basePTS!==null)return Qs(e,i,n,this.basePTS,this.frameIndex)}},remux:$}];ke.splice(2,0,{demux:ia,remux:$});class Ke{constructor(t,e,i,n,r){this.async=!1,this.observer=void 0,this.typeSupported=void 0,this.config=void 0,this.vendor=void 0,this.id=void 0,this.demuxer=void 0,this.remuxer=void 0,this.decrypter=void 0,this.probe=void 0,this.decryptionPromise=null,this.transmuxConfig=void 0,this.currentTransmuxState=void 0,this.observer=t,this.typeSupported=e,this.config=i,this.vendor=n,this.id=r}configure(t){this.transmuxConfig=t,this.decrypter&&this.decrypter.reset()}push(t,e,i,n){let r=i.transmuxing;r.executeStart=I();let s=new Uint8Array(t),{currentTransmuxState:a,transmuxConfig:l}=this;n&&(this.currentTransmuxState=n);let{contiguous:d,discontinuity:u,trackSwitch:f,accurateTimeOffset:E,timeOffset:b,initSegmentChange:T}=n||a,{audioCodec:_,videoCodec:D,defaultInitPts:w,duration:x,initSegmentData:M}=l,V=function(vt,St){let nt=null;return vt.byteLength>0&&(St==null?void 0:St.key)!=null&&St.iv!==null&&St.method!=null&&(nt=St),nt}(s,e);if(V&&V.method==="AES-128"){let vt=this.getDecrypter();if(!vt.isSync())return this.decryptionPromise=vt.webCryptoDecrypt(s,V.key.buffer,V.iv.buffer).then((St)=>{let nt=this.push(St,null,i);return this.decryptionPromise=null,nt}),this.decryptionPromise;{let St=vt.softwareDecrypt(s,V.key.buffer,V.iv.buffer);if(i.part>-1&&(St=vt.flush()),!St)return r.executeEnd=I(),Te(i);s=new Uint8Array(St)}}let X=this.needsProbing(u,f);if(X){let vt=this.configureTransmuxer(s);if(vt)return C.warn("[transmuxer] "+vt.message),this.observer.emit(A.ERROR,A.ERROR,{type:Ft.MEDIA_ERROR,details:H.FRAG_PARSING_ERROR,fatal:!1,error:vt,reason:vt.message}),r.executeEnd=I(),Te(i)}(u||f||T||X)&&this.resetInitSegment(M,_,D,x,e),(u||T||X)&&this.resetInitialTimestamp(w),d||this.resetContiguity();let ot=this.transmux(s,V,b,E,i),et=this.currentTransmuxState;return et.contiguous=!0,et.discontinuity=!1,et.trackSwitch=!1,r.executeEnd=I(),ot}flush(t){let e=t.transmuxing;e.executeStart=I();let{decrypter:i,currentTransmuxState:n,decryptionPromise:r}=this;if(r)return r.then(()=>this.flush(t));let s=[],{timeOffset:a}=n;if(i){let f=i.flush();f&&s.push(this.push(f,null,t))}let{demuxer:l,remuxer:d}=this;if(!l||!d)return e.executeEnd=I(),[Te(t)];let u=l.flush(a);return bi(u)?u.then((f)=>(this.flushRemux(s,f,t),s)):(this.flushRemux(s,u,t),s)}flushRemux(t,e,i){let{audioTrack:n,videoTrack:r,id3Track:s,textTrack:a}=e,{accurateTimeOffset:l,timeOffset:d}=this.currentTransmuxState;C.log(`[transmuxer.ts]: Flushed fragment ${i.sn}${i.part>-1?" p: "+i.part:""} of level ${i.level}`);let u=this.remuxer.remux(n,r,s,a,d,l,!0,this.id);t.push({remuxResult:u,chunkMeta:i}),i.transmuxing.executeEnd=I()}resetInitialTimestamp(t){let{demuxer:e,remuxer:i}=this;e&&i&&(e.resetTimeStamp(t),i.resetTimeStamp(t))}resetContiguity(){let{demuxer:t,remuxer:e}=this;t&&e&&(t.resetContiguity(),e.resetNextTimestamp())}resetInitSegment(t,e,i,n,r){let{demuxer:s,remuxer:a}=this;s&&a&&(s.resetInitSegment(t,e,i,n),a.resetInitSegment(t,e,i,r))}destroy(){this.demuxer&&(this.demuxer.destroy(),this.demuxer=void 0),this.remuxer&&(this.remuxer.destroy(),this.remuxer=void 0)}transmux(t,e,i,n,r){let s;return s=e&&e.method==="SAMPLE-AES"?this.transmuxSampleAes(t,e,i,n,r):this.transmuxUnencrypted(t,i,n,r),s}transmuxUnencrypted(t,e,i,n){let{audioTrack:r,videoTrack:s,id3Track:a,textTrack:l}=this.demuxer.demux(t,e,!1,!this.config.progressive);return{remuxResult:this.remuxer.remux(r,s,a,l,e,i,!1,this.id),chunkMeta:n}}transmuxSampleAes(t,e,i,n,r){return this.demuxer.demuxSampleAes(t,e,i).then((s)=>({remuxResult:this.remuxer.remux(s.audioTrack,s.videoTrack,s.id3Track,s.textTrack,i,n,!1,this.id),chunkMeta:r}))}configureTransmuxer(t){let{config:e,observer:i,typeSupported:n,vendor:r}=this,s;for(let E=0,b=ke.length;E<b;E++){var a;if((a=ke[E].demux)!=null&&a.probe(t)){s=ke[E];break}}if(!s)return new Error("Failed to find demuxer by probing fragment data");let l=this.demuxer,d=this.remuxer,u=s.remux,f=s.demux;d&&d instanceof u||(this.remuxer=new u(i,e,n,r)),l&&l instanceof f||(this.demuxer=new f(i,e,n),this.probe=f.probe)}needsProbing(t,e){return!this.demuxer||!this.remuxer||t||e}getDecrypter(){let t=this.decrypter;return t||(t=this.decrypter=new Pr(this.config)),t}}let Te=(t)=>({remuxResult:{},chunkMeta:t});function bi(t){return"then"in t&&t.then instanceof Function}class $i{constructor(t,e,i,n,r){this.audioCodec=void 0,this.videoCodec=void 0,this.initSegmentData=void 0,this.duration=void 0,this.defaultInitPts=void 0,this.audioCodec=t,this.videoCodec=e,this.initSegmentData=i,this.duration=n,this.defaultInitPts=r||null}}class gr{constructor(t,e,i,n,r,s){this.discontinuity=void 0,this.contiguous=void 0,this.accurateTimeOffset=void 0,this.trackSwitch=void 0,this.timeOffset=void 0,this.initSegmentChange=void 0,this.discontinuity=t,this.contiguous=e,this.accurateTimeOffset=i,this.trackSwitch=n,this.timeOffset=r,this.initSegmentChange=s}}var yl={exports:{}};(function(t){var e=Object.prototype.hasOwnProperty,i="~";function n(){}function r(d,u,f){this.fn=d,this.context=u,this.once=f||!1}function s(d,u,f,E,b){if(typeof f!="function")throw new TypeError("The listener must be a function");var T=new r(f,E||d,b),_=i?i+u:u;return d._events[_]?d._events[_].fn?d._events[_]=[d._events[_],T]:d._events[_].push(T):(d._events[_]=T,d._eventsCount++),d}function a(d,u){--d._eventsCount==0?d._events=new n:delete d._events[u]}function l(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),new n().__proto__||(i=!1)),l.prototype.eventNames=function(){var d,u,f=[];if(this._eventsCount===0)return f;for(u in d=this._events)e.call(d,u)&&f.push(i?u.slice(1):u);return Object.getOwnPropertySymbols?f.concat(Object.getOwnPropertySymbols(d)):f},l.prototype.listeners=function(d){var u=i?i+d:d,f=this._events[u];if(!f)return[];if(f.fn)return[f.fn];for(var E=0,b=f.length,T=new Array(b);E<b;E++)T[E]=f[E].fn;return T},l.prototype.listenerCount=function(d){var u=i?i+d:d,f=this._events[u];return f?f.fn?1:f.length:0},l.prototype.emit=function(d,u,f,E,b,T){var _=i?i+d:d;if(!this._events[_])return!1;var D,w,x=this._events[_],M=arguments.length;if(x.fn){switch(x.once&&this.removeListener(d,x.fn,void 0,!0),M){case 1:return x.fn.call(x.context),!0;case 2:return x.fn.call(x.context,u),!0;case 3:return x.fn.call(x.context,u,f),!0;case 4:return x.fn.call(x.context,u,f,E),!0;case 5:return x.fn.call(x.context,u,f,E,b),!0;case 6:return x.fn.call(x.context,u,f,E,b,T),!0}for(w=1,D=new Array(M-1);w<M;w++)D[w-1]=arguments[w];x.fn.apply(x.context,D)}else{var V,X=x.length;for(w=0;w<X;w++)switch(x[w].once&&this.removeListener(d,x[w].fn,void 0,!0),M){case 1:x[w].fn.call(x[w].context);break;case 2:x[w].fn.call(x[w].context,u);break;case 3:x[w].fn.call(x[w].context,u,f);break;case 4:x[w].fn.call(x[w].context,u,f,E);break;default:if(!D)for(V=1,D=new Array(M-1);V<M;V++)D[V-1]=arguments[V];x[w].fn.apply(x[w].context,D)}}return!0},l.prototype.on=function(d,u,f){return s(this,d,u,f,!1)},l.prototype.once=function(d,u,f){return s(this,d,u,f,!0)},l.prototype.removeListener=function(d,u,f,E){var b=i?i+d:d;if(!this._events[b])return this;if(!u)return a(this,b),this;var T=this._events[b];if(T.fn)T.fn!==u||E&&!T.once||f&&T.context!==f||a(this,b);else{for(var _=0,D=[],w=T.length;_<w;_++)(T[_].fn!==u||E&&!T[_].once||f&&T[_].context!==f)&&D.push(T[_]);D.length?this._events[b]=D.length===1?D[0]:D:a(this,b)}return this},l.prototype.removeAllListeners=function(d){var u;return d?(u=i?i+d:d,this._events[u]&&a(this,u)):(this._events=new n,this._eventsCount=0),this},l.prototype.off=l.prototype.removeListener,l.prototype.addListener=l.prototype.on,l.prefixed=i,l.EventEmitter=l,t.exports=l})(yl);var ko=o(yl.exports);class Ro{constructor(t,e,i,n){this.error=null,this.hls=void 0,this.id=void 0,this.observer=void 0,this.frag=null,this.part=null,this.useWorker=void 0,this.workerContext=null,this.onwmsg=void 0,this.transmuxer=null,this.onTransmuxComplete=void 0,this.onFlush=void 0;let r=t.config;this.hls=t,this.id=e,this.useWorker=!!r.enableWorker,this.onTransmuxComplete=i,this.onFlush=n;let s=(u,f)=>{(f=f||{}).frag=this.frag,f.id=this.id,u===A.ERROR&&(this.error=f.error),this.hls.trigger(u,f)};this.observer=new ko,this.observer.on(A.FRAG_DECRYPTED,s),this.observer.on(A.ERROR,s);let a=Xi(r.preferManagedMediaSource)||{isTypeSupported:()=>!1},l={mpeg:a.isTypeSupported("audio/mpeg"),mp3:a.isTypeSupported('audio/mp4; codecs="mp3"'),ac3:a.isTypeSupported('audio/mp4; codecs="ac-3"')},d=navigator.vendor;if(this.useWorker&&typeof Worker!="undefined"){if(r.workerPath||typeof __HLS_WORKER_BUNDLE__=="function"){try{r.workerPath?(C.log(`loading Web Worker ${r.workerPath} for "${e}"`),this.workerContext=function(f){let E=new self.URL(f,self.location.href).href;return{worker:new self.Worker(E),scriptURL:E}}(r.workerPath)):(C.log(`injecting Web Worker for "${e}"`),this.workerContext=function(){let f=new self.Blob([`var exports={};var module={exports:exports};function define(f){f()};define.amd=true;(${__HLS_WORKER_BUNDLE__.toString()})(true);`],{type:"text/javascript"}),E=self.URL.createObjectURL(f);return{worker:new self.Worker(E),objectURL:E}}()),this.onwmsg=(f)=>this.onWorkerMessage(f);let{worker:u}=this.workerContext;u.addEventListener("message",this.onwmsg),u.onerror=(f)=>{let E=new Error(`${f.message} (${f.filename}:${f.lineno})`);r.enableWorker=!1,C.warn(`Error in "${e}" Web Worker, fallback to inline`),this.hls.trigger(A.ERROR,{type:Ft.OTHER_ERROR,details:H.INTERNAL_EXCEPTION,fatal:!1,event:"demuxerWorker",error:E})},u.postMessage({cmd:"init",typeSupported:l,vendor:d,id:e,config:JSON.stringify(r)})}catch(u){C.warn(`Error setting up "${e}" Web Worker, fallback to inline`,u),this.resetWorker(),this.error=null,this.transmuxer=new Ke(this.observer,l,r,d,e)}return}}this.transmuxer=new Ke(this.observer,l,r,d,e)}resetWorker(){if(this.workerContext){let{worker:t,objectURL:e}=this.workerContext;e&&self.URL.revokeObjectURL(e),t.removeEventListener("message",this.onwmsg),t.onerror=null,t.terminate(),this.workerContext=null}}destroy(){if(this.workerContext)this.resetWorker(),this.onwmsg=void 0;else{let e=this.transmuxer;e&&(e.destroy(),this.transmuxer=null)}let t=this.observer;t&&t.removeAllListeners(),this.frag=null,this.observer=null,this.hls=null}push(t,e,i,n,r,s,a,l,d,u){var f,E;d.transmuxing.start=self.performance.now();let{transmuxer:b}=this,T=s?s.start:r.start,_=r.decryptdata,D=this.frag,w=!(D&&r.cc===D.cc),x=!(D&&d.level===D.level),M=D?d.sn-D.sn:-1,V=this.part?d.part-this.part.index:-1,X=M===0&&d.id>1&&d.id===(D==null?void 0:D.stats.chunkCount),ot=!x&&(M===1||M===0&&(V===1||X&&V<=0)),et=self.performance.now();(x||M||r.stats.parsing.start===0)&&(r.stats.parsing.start=et),!s||!V&&ot||(s.stats.parsing.start=et);let vt=!(D&&((f=r.initSegment)==null?void 0:f.url)===((E=D.initSegment)==null?void 0:E.url)),St=new gr(w,ot,l,x,T,vt);if(!ot||w||vt){C.log(`[transmuxer-interface, ${r.type}]: Starting new transmux session for sn: ${d.sn} p: ${d.part} level: ${d.level} id: ${d.id}
|
|
26
|
-
discontinuity: ${w}
|
|
27
|
-
trackSwitch: ${x}
|
|
28
|
-
contiguous: ${ot}
|
|
29
|
-
accurateTimeOffset: ${l}
|
|
8
|
+
${JSON.stringify(U,null,2)}`);this.rq&&de.rpush(this.rq,[V,this.verb,U])})})}destroy(){this.listeners.forEach(([f,g])=>{var p;return(p=this.emitter)===null||p===void 0?void 0:p.removeEventListener(f,g)}),delete this.rq,delete this.emitter,gr(Jt.TRACKERS,this)}put(f={}){return Jt.merge_metadata(this,f),this}}Jt.TRACKERS=[],Jt.QUEUE=ia,Jt.verb=ra;var Or="ping",on="display",Kn="view";let ho=["sitegroup_id","session_id","media_id","site_id","player_id","video_type"],Il=["created","position"],Wn=["player_version","created","source","category","category_id","autoplay","muted","customer_user_id"];function na(f,g){return f.duration/1===f.duration&&Object.assign(g,function(p){let C=p/100;return{segment_duration:C,breakpoints:Array(...Array(100)).map(function(O,$){return Math.floor($*C*1000)/1000})}}(f.duration))}function fo(f,g,p){if(!g.segment_duration&&!na(f,g))return;let C=function(O,$,V){let U=$.last_idx,z=V?99:sa(O,$);return $.last_idx=z,z<=U?[]:$.breakpoints.slice(U,z==99?100:z).map(function(et){return $.breakpoints.indexOf(et)})}(f,g,p);C.length!=0&&f.emit(Or,{position:C})}function sa(f,g){return Math.min(Math.floor(f.currentTime/g.segment_duration),99)}var aa;let _i="vod",mo="live",go=[on,Or,Kn];function Yn(f,g,p){switch(g==null?void 0:g.kind){case"live":return function(C,O){let $=Date.now();$-O.last_tracked_ts<60000||(O.last_tracked_ts=$,++O.ticks,C.emit(Or,{position:60*O.ticks}))}(f,g);case"vod":return fo(f,g,typeof p=="boolean"&&p)}}function ln(f){let g=f.ads;return g!==void 0&&(g.schedule!==void 0&&(typeof g.hasPreroll=="function"&&(g.currentRequests?g.currentRequests:!!g.adPlaying||!(!g.hasPreroll()||g.nextIndex!=0))))}let Ol=((aa=class f{init(g,p,C){if(!ai.from_token(g.token||"").is_granted(ai.permissions.ANALYTICS))return;if(C.hasState("consent-no-tracking"))return;if(C.analytics)return;let O=C.analytics={ticker:void 0,last_media_id:"",ended:!1},$={locked:void 0,ttl:6000,task:()=>{Yn(C,O.ticker)}},V={session_id:C.deviceId(),autoplay:C.autoplay,muted:C.muted,player_id:g.player_id,customer_user_id:g.customer_user_id,player_version:"3.28.2"},U=Jt.of(C,{verb:Jt.verb.POST,url:"https://ptm.flowplayer.com/:video_type/:sitegroup_id/:event_type",events:go,required_keys:ho,optional_keys:Wn.concat(Il).slice(0),metadata:V});C.on(j,function(){U&&U.destroy()}),C.on(st,function(et){if(!U)return;let Tt=fi(et,"data.metadata",{});if(!Tt.media_id)return;let kt=fi(U,"metadata.media_id");if(kt&&Tt.media_id==kt)return;let Ht=fi(g,"analytics",{});U.put(Tt),U.put(Ht);let ae=fi(g,"metadata.live_start_time",g.live)?mo:_i;U.put({video_type:ae,source:g.source||kr()||""}),O.ticker=g.live?{ticks:0,last_tracked_ts:Date.now(),kind:"live"}:{last_idx:0,segment_duration:0,breakpoints:[],kind:"vod"},O.ended=!1,C.emit(on)});let z=0;C.on(at,function(){if(!U)return;if(z||function(Tt,kt){return Tt.metadata.media_id&&Tt.metadata.media_id==kt.last_media_id}(U,O))return;U.put({muted:C.muted});let et=ln(C);if(et)return z=Promise.resolve(et).then(function(){O.last_media_id=U.metadata.media_id,C.emit(Kn),z=0}).catch(function(){z=0});O.last_media_id=U.metadata.media_id,C.emit(Kn)}),C.on("timeupdate",function(){var et;U&&(z||ln(C)||O.ended||(!g.live&&C.currentTime+0.25>=C.duration&&Yn(C,O.ticker,!0),(et=$).locked||(et.locked=setTimeout(function(){return et.task(),function(Tt){return Tt.locked=void 0,Tt}(et)},et.ttl))))}),C.on(B,function(){U&&O.ticker&&O.ticker.kind=="vod"&&function(et,Tt){na(et,Tt),Tt.last_idx=sa(et,Tt)}(C,O.ticker)}),C.on(I,function(){U&&function(et,Tt){Tt.ended||(Tt.ended=!0,Yn(et,Tt.ticker))}(C,O)})}}).pluginName="analytics",aa),oi=function(f,g){if(typeof Bo=="object"&&typeof $o!="undefined")return g;if(document.currentScript===null)return g;"flowplayer"in f||(f.flowplayer={extensions:[]});let p=f.flowplayer;return typeof p=="function"?(p(g),g):(Array.isArray(p.extensions)||(p.extensions=[]),~p.extensions.indexOf(g)||p.extensions.push(g),g)}(Za(),Ol);typeof window!="undefined"&&typeof window.matchMedia=="function"&&[tt,ct].forEach(function(f){window.matchMedia("(orientation: "+f+")").addListener(function(g){o.length&&o.forEach(function(p){g.matches&&p.emit(f)})})});let Zt=[P,"recover"];function oa(f,g){let p=yi(g,"flowplayer-error");f.append(p),g.on("flowplayer:error",(C)=>{if(!document.body.contains(f))return;let O=C.detail.error;O.config.showErrorUI!==!1&&(O.isFatal||O.config.showErrorUI)&&(g.setState("is-error",!0),console.warn(O),mi(p,"flowplayer:error",{error:O}),mi(p,"error",{error:O}))}),Zt.forEach((C)=>g.on(C,()=>{(function(O){if(!O.hasState("is-error"))return;O.setState(Ke,!0),O.setState("is-error",!1)})(g)}))}var Mr=Object.freeze({__proto__:null,NO_FULLSCREEN:1,NO_VOLUME_CONTROL:2,NO_MUTE:4,LOGO_ON_RIGHT:8,USE_DRAG_HANDLE:16,USE_PLAY_2:32,USE_PLAY_3:64,USE_THIN_CONTROLBAR:128,NO_TITLE:256,NO_DESCRIPTION:512,NO_CONTROLS:1024,NO_DURATION:2048,NO_HEADER:4096,AUDIO_ONLY:8192,NO_TOUCH_ZONES:16384,LOGO_ON_BOTTOM:32768});function Nr(f,g,p){let C=()=>document.fullscreenElement,O="fullscreenchange";if(!Element.prototype.requestFullscreen){let V=Element.prototype,U=document;V.webkitRequestFullScreen&&(V.requestFullscreen=V.webkitRequestFullScreen,U.fullscreenEnabled=!0),U.webkitCancelFullScreen&&(document.exitFullscreen=U.webkitCancelFullScreen),O="webkit"+O,C=()=>U.webkitCurrentFullScreenElement}let $=()=>p.getFullsceenTarget?p.getFullsceenTarget():g;p.toggleFullScreen=function(V,U){if(p.ios_fullscreen_disabled)return;if(typeof V!="boolean"&&(V=!p.hasState("is-fullscreen")),Pr(p)&&(V?function(et,Tt){et.getAttribute("playsinline")&&et.removeAttribute("playsinline"),et.getAttribute("webkit-playsinline")&&et.removeAttribute("webkit-playsinline"),Tt||et.webkitEnterFullScreen()}(p,U):function(et,Tt){et.getAttribute("playsinline")||et.setAttribute("playsinline",""),et.getAttribute("webkit-playsinline")||et.setAttribute("webkit-playsinline",""),Tt||et.webkitExitFullScreen(),et.togglePlay(!1),et.hasState(_t)||et.setState(_t,!0)}(p,U)),!document.fullscreenEnabled)return;let z=$();if(V)return z.requestFullscreen();C()===z&&document.exitFullscreen()},Pr(p)&&(p.ios_fullscreen_disabled=!0,p.once("beforeplay",function(){p.ios_fullscreen_disabled=!1}),p.on(["webkitendfullscreen","webkitbeginfullscreen"],(V)=>{let U=V.type==="webkitbeginfullscreen";p.setState("is-fullscreen",U).emit(U?L:M).toggleFullScreen(U,!0)})),setTimeout(()=>{let V=$();V.addEventListener(O,function(){let U=C(),z=U===V||U==p;p.emit(z?L:M),p.setState("is-fullscreen",z)})},0),f.doubleclick!==!1&&g.addEventListener(E,function(V){var U;V.target&&((U=V.target)===null||U===void 0?void 0:U.classList.contains("fp-ui"))&&p.toggleFullScreen()})}function Pr(f){return!document.fullscreenEnabled&&typeof f.webkitEnterFullScreen=="function"&&typeof f.webkitExitFullScreen=="function"}function Fi(f,g,p){if(!p.reaper)return;let C=document.createDocumentFragment(),O=yi(p,Pt),$=yi(p,$t);g.append($),C.append(O),p.reaper.set("ui",O),~g.className.indexOf("use-play-")||g.classList.add("use-play-1"),function(z,et,Tt){let kt=ti("fp-footer");et.append(kt),Tt.on(st,function(Ht){var ae,ge;let te=(ae=Ht.data)===null||ae===void 0?void 0:ae.description,Ge=(ge=Ht.data)===null||ge===void 0?void 0:ge.title;if(kt.innerHTML="",typeof Ge=="string"){let ii=ti("fp-title");ii.innerText=Ge,kt.append(ii)}if(typeof te=="string"){let ii=te.split(" "),Fr=ti("fp-desc");for(Fr.innerText=ii.join(" "),kt.append(Fr);ii.length>1&&Fr.scrollHeight>Fr.offsetHeight;)ii.pop(),Fr.innerText=ii.join(" ")+"..."}})}(0,g,p),oa(O,p),g.appendChild(C);let V=null;[R,A,_].forEach((z)=>{g.addEventListener(z,function(et){if(!p.hasState("is-touch-device")||et.type===A){if(clearTimeout(V),et.type===_)return p.setState(Xt,!1);p.setState(Xt,!0),V=setTimeout(function(){p.setState("is-hovered",!1)},2000)}})}),Nr(f,g,p),p.on("volumechange",function(){let z=p.volume==0||p.muted;p.muted=z,p.setState("is-muted",z),p._storage.setItem("mute",z.toString())}),p._storage.getItem("mute")=="true"&&(p.muted=!0,p.setState("is-muted",p.muted));let U=p._storage.getItem("volume");U&&!isNaN(Number(U))&&(p.volume=Number(U)),p.emit("volumechange"),p.on("dvr/window",(z)=>{f.live&&(p.live_state.dvr=p.seekable.length>0&&function(et,Tt,kt){if(Tt==0)return!0;let Ht=ie(et,kt);return Ht.head-Ht.tail>=Tt}(p,f.seconds_to_dvr||60,z.detail),p.live_state.dvr_window=z.detail)}),p.on("live",()=>{let z=setInterval(()=>{if(p.opts.live&&!p.hasState("is-error")&&p.reaper!=0||clearInterval(z),p.seekable.length==0)return;let et=function(Tt){let kt=Tt.currentTime,Ht=ie(Tt);return{progress:Math.min(100,Math.max(0,(kt-Ht.tail)/(Ht.head-Ht.tail)*100)),is_live:kt-Ht.head>=-10}}(p);p.hasState(Ci)==et.is_live&&p.setState(Ci,!et.is_live),p.live_state.dvr&&p.emit("dvr",et.progress)},200)}),p.on(X,function(){p.setOpts({live:Ue(p)})}),p.on("durationchange",function(z){let et=Ue(p),Tt=et?bi(p):z.data||p.duration;isNaN(Tt)||p.setOpts({live:et,duration:Tt})}),p.on(["playlist/advance","src"],(z)=>{if(p.setState("is-autoplay",!!f.autoplay),p.root.classList.contains("is-livecountdown"))return cn(p,f);(p.currentSrc||p.srcObject)&&(z.type==="src"&&["is-playlist",di].some((et)=>p.root.classList.contains(et))||cn(p,f))}),p.on(st,function(z){var et,Tt;f.seekable=((et=z==null?void 0:z.data)===null||et===void 0?void 0:et.seekable)===void 0||z.data.seekable;let kt=(Tt=z.data)===null||Tt===void 0?void 0:Tt.ui;if(typeof kt!="number")return;let Ht=g.classList;Ht.toggle("use-play-1",!(32&kt||64&kt)),Ht.toggle("use-play-2",(32&kt)>0),Ht.toggle("use-play-3",(64&kt)>0),Ht.toggle("use-thin-controlbar",(128&kt)>0),Ht.toggle("no-title",(256&kt)>0),Ht.toggle("no-description",(512&kt)>0),Ht.toggle("logo-on-right",(8&kt)>0),Ht.toggle("logo-on-bottom",(32768&kt)>0),Ht.toggle("use-drag-handle",(16&kt)>0),Ht.toggle("no-controls",(1024&kt)>0),Ht.toggle("no-duration",(2048&kt)>0),Ht.toggle("no-header",(4096&kt)>0),Ht.toggle("no-mute",(4&kt)>0),Ht.toggle("no-volume",(2&kt)>0),Ht.toggle("no-fullscreen",(1&kt)>0),Ht.toggle("no-touch-zones",(16384&kt)>0)})}function cn(f,g){delete g.live_start_time,f.setOpts({live:!1}),f.live_state.dvr=void 0,f.live_state.dvr_window=void 0,delete g.live,delete g.poster,delete g.duration,delete g.title,delete g.description,"metadata"in g&&delete g.metadata}function un(f,g,p){if(ai.from_token(f.token||"").is_granted(ai.permissions.NO_METERING))return;Si.id(f.token||"")&&p.once(at,async()=>await async function C(O,$){let V=Si.id($||"");if(O.once("src",()=>{O.once(at,()=>C(O,$))}),(await fetch("https://pmi.flowplayer.com/in",{method:"POST",body:JSON.stringify({token_id:V,factor:1,rnd:Math.random().toString(36).substring(2)})})).status==401)return O.emit("error:fatal",{reason:"token",details:"The token online validation failed"})}(p,f.token||""))}var xr={ads:{ad:"Ad",ads:"Ads",advertisement:"Advertisement"},audio:{button_txt:"Audio",menu_title:"Audio"},core:{exit_fullscreen:"Exit fullscreen",fullscreen:"Fullscreen",mute:"Mute",pause:"Pause",play:"Play",unmute:"Unmute",volume:"Volume"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Cancel",up_next:"Up next"},qsel:{menu_title:"Quality"},share:{clipboard_failure:"Access to clipboard failed",clipboard_success:"The text is now on your clipboard",embed:"Embed",link:"Link",menu_title:"Share"},speed:{menu_title:"Speed"}};class Li{init(f,g,p){p.reaper&&p.reaper.set("translations",Us(Li,f,"en"))}}Li.pluginName="i18n",Li.en=xr;class fe extends HTMLElement{constructor(f){super(),this.player=f}}class dn extends fe{constructor(f){super(f),this.classList.add("fp-logo");let g={logo:""};f.on(st,(p)=>{var C;let O=g.logo,$=((C=p==null?void 0:p.data)===null||C===void 0?void 0:C.logo)||"";O!=$&&(g.logo=$,this.set_logo($,p.detail.logo_alt_text,p.detail.logo_href))})}set_logo(f,g,p){this.innerHTML="";let C=document.createElement("img");if(!f)return;if(C.src=f,g&&(C.alt=g),!p)return this.append(C);let O=document.createElement("a");O.href=p,O.append(C),this.append(O)}}class jn extends fe{constructor(f){super(f),this.classList.add("fp-duration"),f.on(st,(g)=>{var p;let C=((p=g==null?void 0:g.data)===null||p===void 0?void 0:p.duration)||NaN;this.innerText=isFinite(C)?Mi(C):""})}}let wi={name:"fp-fullscreen",translation_key:"core.fullscreen"},zn={name:"fp-fullscreen-exit",translation_key:"core.exit_fullscreen"},Ml={name:"fp-play",translation_key:"core.play"},po={name:"fp-pause",translation_key:"core.pause"},vo={translation_key:"core.mute",name:"fp-volume-mute-unmute"},la={translation_key:"core.play",name:"fp-small-play"},qn={translation_key:"core.pause",name:"fp-small-pause"},Nl={name:"fp-fast-forward"},Eo={name:"fp-rewind"};class vi extends fe{constructor(f,g){super(f),this.classList.add("fp-icon",g.name),g.title&&this.setAttribute("title",g.title),g.title&&this.setAttribute("aria-label",g.title),g.translation_key&&this.setAttribute("aria-label",f.i18n(g.translation_key)),this.setAttribute("tabindex","0"),this.setAttribute("focusable","true")}}function pr(){}document.addEventListener(v,function(f){this.active_menu&&!f.composedPath().includes(this.active_menu)&&(Array.from(document.querySelectorAll(".fp-engine")).forEach((g)=>{var p;let C=g.root.querySelector("details[open].fp-menu-container");C&&(C.open=!1,(p=C.querySelector("summary"))===null||p===void 0||p.removeAttribute("aria-expanded"),g.root.classList.toggle("has-menu-opened",!1))}),this.active_menu=void 0)});let vr={passive:!0};var be;function yo(f,g){let p=0,C=-1,O=-1,$=Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5),V=f.classList;f.id=$,V.remove(be.GRABBING),V.remove(be.TOUCHING);let U=g.onseek||pr,z=g.onstart||pr,et=g.onend||pr,Tt=g.onmouse||pr,kt=g.ontouch||pr,Ht=g.ontouchend||pr;function ae(te){(function(){let ii=f.getBoundingClientRect();p=ii.left,C=ii.width})();let Ge=(function(ii){return typeof window.TouchEvent=="function"&&ii instanceof TouchEvent}(te)?te.changedTouches[0].pageX:te.pageX)-p;return Ge>C&&(Ge=C),Ge<0&&(Ge=0),Ge/C*100}function ge(te){let Ge=ae(te);Ge!=O&&(U(f,Ge),O=Ge)}return f.addEventListener("touchstart",function(te){So(f,te)&&(V.add(be.TOUCHING),bo(f.parentElement)&&(V.add(be.GRABBING),kt(f,ae(te)),z(f,ae(te)),ge(te)))},vr),f.addEventListener(A,function(te){ge(te),Tt(f,ae(te))},vr),f.addEventListener("touchend",function(te){setTimeout(function(){V.remove(be.TOUCHING)},500),So(f,te)&&(V.remove(be.GRABBING),Ht(f,ae(te)),et(f,ae(te)),C=0)},vr),f.addEventListener("touchcancel",function(){V.remove(be.GRABBING,be.TOUCHING),C=0},vr),f.addEventListener("mousedown",function(te){V.contains(be.TOUCHING)||(document.addEventListener(R,ge),V.add(be.GRABBING),z(f,ae(te)),te.preventDefault(),ge(te))}),f.addEventListener(R,function(te){V.contains(be.TOUCHING)||Tt(f,ae(te))}),document.addEventListener("mouseup",function(te){V.contains(be.TOUCHING)||(document.removeEventListener(R,ge),V.contains(be.GRABBING)&&(V.remove(be.GRABBING),et(f,ae(te)),C=0))}),f}function So(f,g){let p=g.target;return!!p&&(p&&!p.closest(f.id)||!bo(f.parentElement)||!f.classList.contains(be.TOUCHING))}function bo(f){if(!f)return!1;let g=window.getComputedStyle(f);return g.width!=="0"&&g.height!=="0"&&g.opacity!=="0"&&g.display!=="none"&&g.visibility!=="hidden"}(function(f){f.GRABBING="has-grab",f.TOUCHING="has-touch"})(be||(be={}));class ca extends fe{constructor(f){super(f),this.className="fp-volume";let g=f.root.classList,p=g.contains("is-tiny")?6:g.contains("is-small")?8:10,C=Array.from({length:p}).map(()=>{let O=document.createElement("i");return O.className="fp-tick",O});this.append(...C),yo(this,{onseek:(O,$)=>{$>0&&(f.muted=!1,f._storage.removeItem("mute")),f._storage.setItem("volume",(f.volume=$/100).toString()),this.adjustVolumeSlider(f.volume)}}),this.setAttribute("tabindex","0"),this.setAttribute("role","slider"),this.setAttribute("aria-valuemin","0"),this.setAttribute("aria-valuemax","1"),this.setAttribute("aria-label",f.i18n("core.volume","volume")),f.on("volumechange",()=>{let O=f.volume==0||f.muted;O&&this.adjustVolumeSlider(0);let $=f.opt("ui");this.classList.contains(be.GRABBING)||O&&typeof $=="number"&&(4&$)>0||this.adjustVolumeSlider(f.volume)})}adjustVolumeSlider(f){this.setAttribute("aria-valuenow",f.toString()),this.setAttribute("aria-valuetext",Math.round(100*f)+"%");let g=Array.from(this.querySelectorAll(".fp-tick")),p=Math.round(f*g.length);g.forEach((C,O)=>{C.classList.toggle("fp-color",O<p)})}}class ua extends fe{constructor(f){let g;super(f),this.bufferEle=ti("fp-buffer"),this.progress=ti("fp-progress","fp-color"),this.tooltipEle=ti("fp-timestamp"),this.proposedSeekBar=ti("fp-hover"),this.dragger=ti("fp-dragger","fp-color"),this.classList.add("fp-timeline","fp-bar"),this.tooltipEle.style.display="none",this.setAttribute("role","slider"),this.setAttribute("tabindex","0"),this.setAttribute("aria-label",f.i18n("core.timeline_aria_label","Seek slider")),this.setAttribute("aria-valuenow","0"),this.progress.append(this.dragger),this.append(this.bufferEle,this.progress,this.proposedSeekBar,this.tooltipEle);let p=requestAnimationFrame,C=void 0,O=()=>{var V;f.reaper==0||g.live||(V=f,this.progress.style.width=V.currentTime/V.duration*100+"%",C=void 0,f.paused||this.classList.contains(be.GRABBING)||C||(C=setTimeout(O,200)))},$=()=>!!this.player.opt("seekable",!0)&&!isNaN(this.player.duration);yo(this,{onseek:(V,U)=>{if($())switch(!!g.live){case!0:Nn(U,f,this.tooltipEle);break;case!1:(function(z,et,Tt){let kt=et.duration*(z/100);if(et.disabled&&kt>et.currentTime)return!1;Tt.style.width=z+"%",et.currentTime=kt})(U,f,this.progress),Pi(this.tooltipEle,U)}},onstart:()=>{$()&&(f.emit("timeline/gesture/start"),!f.hasState("is-casting")&&f.setState(Ve,!0),g.live||function(V){V.style.display="block"}(this.tooltipEle))},onend:function(V,U){p(O),g.seekable!=0&&g.live&&io(U,f)},ontouchend:()=>{g.live?cr(this.proposedSeekBar,this.tooltipEle):pi(this.proposedSeekBar,this.tooltipEle),setTimeout(()=>f.emit("timeline/gesture/end"),0)},onmouse:(V,U)=>{if($()&&(f.emit("timeline/gesture/move",{percent:U}),!this.classList.contains(be.GRABBING)))switch(!!g.live){case!0:(function(z,et){et.style.width=z+"%"})(U,this.proposedSeekBar),Nn(U,f,this.tooltipEle);break;case!1:(function(z,et){et.style.width=z+"%"})(U,this.proposedSeekBar),function(z,et,Tt){isNaN(z)||isNaN(et.duration)||(Pi(Tt,z),Tt.textContent=Mi(z/100*et.duration))}(U,f,this.tooltipEle)}}}),f.on(st,function(V){V.data&&(g=V.data)}),f.on(at,()=>p(O)),f.on(H,()=>{f.reaper==0||g.live||ei(f,this.bufferEle)}),f.on("dvr",(V)=>{this.progress.style.width=V.detail+"%"}),f.on("timeupdate",()=>{f.reaper!=0&&(p(O),this.setAttribute("aria-valuenow",f.currentTime+""),this.setAttribute("aria-valuetext",Math.round(f.currentTime)+" "+f.i18n("core.seconds","Seconds")),g.live||ei(f,this.bufferEle))}),f.on(X,()=>{f.reaper!=0&&(g.live||ei(f,this.bufferEle))}),f.on("durationchange",(V)=>{if(f.reaper==0)return;let U=Ue(f)?bi(f):V.data||f.duration;isNaN(U)||(this.setAttribute("aria-valuemax",U+""),this.setAttribute("aria-valuemin","0"))}),this.addEventListener(_,()=>{f.emit("timeline/gesture/end"),g.live?cr(this.proposedSeekBar,this.tooltipEle):pi(this.proposedSeekBar,this.tooltipEle)})}}class Xn extends fe{constructor(f){super(f),this.classList.add("fp-live-status");let g=ti("fp-live-text"),p=ti("fp-live-indicator","fp-color");g.textContent="live",this.setAttribute("tabindex","0"),this.setAttribute("role","button"),this.append(p,g),this.addEventListener(v,function(){Hs(f)})}}class da extends fe{constructor(f){let g;super(f),this.classList.add("fp-duration"),this.setAttribute("aria-hidden","true"),f.on(st,(p)=>{if(f.reaper==0||!p.data)return;g=p.data;let C=Ue(f)?NaN:p.data.duration||0;if(isNaN(C)||C>=Number.MAX_SAFE_INTEGER)return this.style.display="none";this.style.display="inline-block",this.innerText=Mi(C)}),f.on(X,()=>{var p,C;f.reaper==0||g.live||(C=this,(p=f).duration&&(C.innerText=Mi(p.duration)))})}}class ha extends fe{constructor(f){let g;super(f),this.classList.add("fp-elapsed"),this.innerText=Mi(0),this.setAttribute("aria-hidden","true"),f.on(st,(p)=>{p.data&&(g=p.data)}),f.on("timeupdate",()=>{var p;f.reaper!=0&&(g.live?(p=f,this.innerText=Mi(p.currentTime)):function(C,O){O.innerText=Mi(C.currentTime)}(f,this))})}}class To extends fe{constructor(f){super(f),this.classList.add("fp-btns","fp-small-switch");let g=yi(f,"flowplayer-small-pause-icon"),p=yi(f,"flowplayer-small-play-icon");g.addEventListener("click",function(){f.togglePlay(),setTimeout(function(){p.focus&&p.focus()},100)}),p.addEventListener("click",function(){f.togglePlay(),setTimeout(function(){g.focus&&g.focus()},100)}),this.append(g,p)}}class Jn extends fe{constructor(f,g){super(f),this.classList.add(g);let p=this.classList.contains("fp-left-zone")?-1:1,C=document.createElement("span"),O=yi(f,this.classList.contains("fp-left-zone")?gt:"flowplayer-fast-forward-icon");O.removeAttribute("tabindex"),C.classList.add("fp-zone-seconds"),this.append(C,O),f.on(B,()=>{C.innerText=""}),f.on("seek:queued",($)=>{let V=$.data;if(!V)return;if(typeof V.offset!="number")return;let U=V.offset;if(U==0)return this.reset_zone();U>0&&this.classList.contains("fp-right-zone")||U<0&&!this.classList.contains("fp-right-zone")?this.render_zone_state(U):this.reset_zone()}),f.on("seek:cancel",()=>{this.reset_zone()}),this.reset_zone(),this.addEventListener("touchend",function($){isNaN(f.duration)||isNaN(f.currentTime)||16384&f.opt("ui")||f.hasState(We)||!f.hasState("will-seek")&&!f.hasState(_t)||f.enqueueSeek(5*p)&&($.stopPropagation(),$.preventDefault())})}reset_zone(){let f=this.querySelector(".fp-zone-seconds");f&&(f.innerText="")}render_zone_state(f){let g=this.querySelector(".fp-zone-seconds");g&&(g.innerText=Math.abs(f)+"")}}class fa extends fe{constructor(f){super(f),this.className="fp-error",this.message=document.createElement("p"),this.message.className="error-message",this.errorId=document.createElement("p"),this.errorId.className="error-id",this.errorKey=document.createElement("p"),this.errorKey.className="error-key",this.append(this.errorKey,this.message,this.errorId),this.addEventListener("flowplayer:error",(g)=>{if(f.opts.live&&f.currentTime==0&&g.detail.error.flowplayerErrorCode==Ft.PlaybackManifestLoadError)return void(this.message.textContent="stream offline");let p=g.detail.error;this.message.textContent=p.message,this.errorKey.textContent=p.errorKey,console.warn("flowplayer encountered an %s error while loading %s id:%s",p.errorKey,p.config.resource,p.id)})}}class Qn extends fe{constructor(f,g,...p){super(f),this.className=g;let C=f.createComponents(...p);this.append(...C),g!=="fp-left"&&C.forEach((O)=>{O.addEventListener(v,()=>f.toggleFullScreen())})}}class Zn extends fe{constructor(f){super(f),this.classList.add("fp-wait"),Array(...Array(4)).map((g,p)=>p).forEach(()=>{this.append(document.createElement("b"))})}}class ma extends fe{constructor(f){super(f),this.classList.add("fp-middle-zone");let g=f.createComponents(K,"flowplayer-middle-buttons");this.append(...g)}}class ga extends fe{constructor(f){super(f),this.classList.add("fp-switch"),[it,pt].forEach((g)=>{let p=yi(f,g);p.removeAttribute("tabindex"),this.append(p)})}}class Ui extends fe{constructor(f){super(f),this.classList.add("fp-volume-control");let g=yi(f,Lt);this.append(g),!h().ios&&this.append(yi(f,Bt)),g instanceof vi&&g.addEventListener(v,function(){f.toggleMute()})}}class ts extends fe{constructor(f){super(f),this.classList.add("fp-header"),this.append(...f.createComponents("flowplayer-header-left-zone","flowplayer-header-right-zone")),f.reaper&&f.reaper.set("header",this)}}class Ao extends fe{constructor(f){super(f),this.classList.add("fp-controls","fp-togglable"),this.append(...f.createComponents("flowplayer-control-buttons",nt,dt,bt,"flowplayer-control-duration","flowplayer-volume-control"))}}class pa extends vi{constructor(f,g){super(f,g),this.setAttribute("role","button")}}class es extends fe{constructor(f){super(f),this.classList.add("fp-middle"),this.append(...f.createComponents("flowplayer-middle-left-zone",jt,"flowplayer-middle-right-zone")),this.setAttribute("tabindex","0"),f.reaper&&f.reaper.set("middle",this),this.handleClick(f),this.handleTouch(f),f.once("beforeplay",()=>{this.removeAttribute("tabindex"),this.removeAttribute("role"),this.removeAttribute("aria-label")})}handleClick(f){[v,E].forEach((g)=>this.addEventListener(g,function(p){if(!(p.defaultPrevented||f.root.classList.contains("is-endscreen")||g===E&&f.root.classList.contains("no-fullscreen")))return p.preventDefault(),f.emit(p.type),!1})),f.on(v,function(g){setTimeout(function(){g.defaultPrevented||f.togglePlay()},0)}),f.on(E,function(g){setTimeout(function(){g.defaultPrevented||f.toggleFullScreen()},0)})}handleTouch(f){let g=!1;this.addEventListener("touchend",function(p){p.cancelable&&!f.hasState("is-endscreen")&&(p.preventDefault(),f.emit(p.type,{source:p}))}),f.on("touchend",function(p){setTimeout(function(){if(p.defaultPrevented)return;if(f.ended)return f.togglePlay(!0);let C=f.hasState(ne);g&&clearTimeout(g),(C||f.hasState(_t))&&(f.hasState(_t)&&(f.setState(_t,!1),f.setState(Xt,!1)),f.togglePlay(),C)||(f.setState(_t,!0),f.paused||(g=setTimeout(function(){g=!1,f.setState(_t,!1),f.setState(Xt,!1)},2000)))},0)})}}class Er extends fe{constructor(f){super(f),this.classList.add("fp-ui"),this.append(...f.createComponents(Kt,ce,zt))}}class hn{constructor(f){oe(f,Pt,Er),oe(f,"flowplayer-error",fa),oe(f,zt,Ao),oe(f,nt,Xn),oe(f,"flowplayer-control-duration",da),oe(f,bt,ua),oe(f,dt,ha),oe(f,Bt,ca),oe(f,"flowplayer-volume-control",Ui),oe(f,"flowplayer-control-buttons",To),oe(f,Kt,ts),oe(f,$t,dn),oe(f,"flowplayer-header-duration",jn),oe(f,"flowplayer-header-left-zone",class extends Qn{constructor(g){super(g,"fp-left","flowplayer-header-duration")}}),oe(f,"flowplayer-header-right-zone",class extends Qn{constructor(g){super(g,"fp-right fp-togglable","flowplayer-fullscreen-enter-icon","flowplayer-fullscreen-exit-icon")}}),oe(f,ce,es),oe(f,jt,ma),oe(f,K,Zn),oe(f,"flowplayer-middle-buttons",ga),oe(f,"flowplayer-middle-right-zone",class extends Jn{constructor(g){super(g,"fp-right-zone")}}),oe(f,"flowplayer-middle-left-zone",class extends Jn{constructor(g){super(g,"fp-left-zone")}}),oe(f,"flowplayer-small-play-icon",class extends vi{constructor(g){super(g,la),this.setAttribute("role","button")}}),oe(f,"flowplayer-small-pause-icon",class extends vi{constructor(g){super(g,qn),this.setAttribute("role","button")}}),oe(f,it,class extends vi{constructor(g){super(g,Ml),this.setAttribute("role","button")}}),oe(f,pt,class extends vi{constructor(g){super(g,po),this.setAttribute("role","button")}}),oe(f,"flowplayer-fullscreen-enter-icon",class extends pa{constructor(g){super(g,wi)}}),oe(f,"flowplayer-fullscreen-exit-icon",class extends pa{constructor(g){super(g,zn)}}),oe(f,"flowplayer-fast-forward-icon",class extends vi{constructor(g){super(g,Nl)}}),oe(f,gt,class extends vi{constructor(g){super(g,Eo)}}),oe(f,Lt,class extends vi{constructor(g){super(g,vo),this.classList.add("fp-volumebtn"),this.setAttribute("role","switch"),g.on("volumechange",()=>{let p=g.volume==0||g.muted;this.setAttribute("aria-label",g.i18n("core.muted","Muted")),this.setAttribute("aria-checked",p?"true":"false")})}})}init(f,g,p){var C;un(f,0,p),Fi(f,g,p),C=p,typeof window!="undefined"&&"ontouchstart"in window&&C.setState("is-touch-device",!0),C.setState("is-accessibility",!1)}}return hn.pluginName="default",ze.extensions.unshift.apply(ze.extensions,[Li,oi,hn]),Object.assign(ze,{ui:Mr,i18n:Li})})});var Id=Ce((Go,Ho)=>{(function(n,o){typeof Go=="object"&&typeof Ho!="undefined"?Ho.exports=o():typeof define=="function"&&define.amd?define(o):((n=typeof globalThis!="undefined"?globalThis:n||self).flowplayer=n.flowplayer||{},n.flowplayer.asel=o())})(Go,function(){var h=Object.freeze({__proto__:null,SET:"audio:set",SWITCH:"audio:update",TRACKS:"audio:tracks"});function v(I,B,F){let j=function(tt){return Array.isArray(tt)?tt.slice(0):tt.split(".")}(B);for(;j.length;){if(I==null)return F;let tt=j.shift();if(typeof tt!="string")return F;I=I[tt]}return I==null?F:I}let E=navigator.languages||[navigator.language];function _(I,B){I.emit("audio:set",B),B.autoselect&&I._storage.setItem("@flowplayer/audio/track",B.lang)}function R(I){return I.toLowerCase()}function A(I,B,F){B=B.slice(0);let j={},tt=I.getItem("@flowplayer/audio/track"),ct=function(){try{return E.reduce((lt,St)=>~St.indexOf("-")?lt.concat(St,St.split("-")[0]):lt.concat(St),[])}catch(lt){return[]}}().map(R),st=-1;if(typeof F=="number")return F;for(typeof F=="string"&&(F=F.toLowerCase(),~ct.indexOf(F)&&ct.splice(ct.indexOf(F),1),ct.unshift(R(F))),Array.isArray(F)&&(ct=F.map(R));B.length;){++st;let lt=B.shift();if(lt==null?void 0:lt.autoselect){if(tt==lt.lang)return console.debug("restoring lang from previous session: ",tt),st;if(lt.default&&(j.fallback=[st,lt]),lt.lang&&~ct.indexOf(lt.lang.toLowerCase())){let St=ct.indexOf(lt.lang);if(St<v(j,"by_lang.2",1/0)&&(j.by_lang=[st,lt,St]),St===0)break}}}return v(j,"by_lang.0",v(j,"fallback.0",void 0))}let L=(I,B)=>new(((F,j)=>{let tt=F.get(j);if(!tt)throw new Error(`no flowplayer component with the name ${j} exists`);let ct=window.customElements.get(j);if(!ct)throw new Error(`no default flowplayer component with the name ${j} exists`);let st=window.customElements.get(tt);return typeof st!="function"?ct:st})(I._customElements,B))(I);class M extends HTMLElement{constructor(I){super(),this.player=I}}let X="fp-on",b="fp-invis";class H extends M{constructor(I){super(I),this.player=I,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=W(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener("click",(B)=>{if(B.defaultPrevented)return;B.preventDefault();let F=this.menuContainer.open;F||(P(),document.active_menu=this.menuContainer),this.menuContainer.open=!F,I.root.classList.toggle("has-menu-opened",!F),this.summaryEle.setAttribute("aria-expanded",F?"false":"true")}),this.addEventListener("focusin",(B)=>{let F=B.target;F instanceof HTMLLIElement&&F.setAttribute("aria-selected","true")}),this.addEventListener("focusout",(B)=>{let F=B.target;F instanceof HTMLLIElement&&F.setAttribute("aria-selected","false")}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(I){if(this.className=I.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=I.id||W()),this.summaryEle.setAttribute("aria-label",I.menuTitle||"Menu"),I.summaryTitle&&(this.summaryEle.textContent=I.summaryTitle),I.summaryIcon){let B=L(this.player,I.summaryIcon);B.setAttribute("tabindex",""),this.summaryEle.append(B)}I.menuTitle&&(this.menuTitle.textContent=I.menuTitle),this.menu.classList.toggle("fp-icons",!!I.icons),this.addEventListener(I.options_event,(B)=>{this.render(B.data)}),I.item_selected_event&&this.addEventListener(I.item_selected_event,(B)=>{B.data!==void 0&&this.select_item(B.data.selected_index)})}render(I){this.olEle&&(this.olEle.innerHTML="",I&&I.forEach(this.menuOption,this),this.toggle_visibility(!(I==null?void 0:I.length)))}menuOption(I,B){let F=document.createElement("li");F.setAttribute("role","menuitem"),F.setAttribute("aria-selected","false"),F.setAttribute("tabindex","0"),I.icon&&F.append(I.icon);let j=document.createElement("span");j.textContent=I.text,F.append(j),F.addEventListener("click",()=>{this.select_item(B),typeof I.onclick=="function"&&I.onclick()}),this.olEle.appendChild(F),I.selected&&this.select_item(B)}select_item(I){this.options.forEach((B,F)=>{B.classList.toggle(X,F===I)})}unselect_item(){this.options.forEach((I)=>{I.classList.remove(X)})}toggle_visibility(I){this.classList.toggle(b,I),this.menu.style.setProperty("display",I?"none":"flex")}}function P(){Array.from(document.querySelectorAll(".fp-engine")).forEach((I)=>{var B;let F=I.root.querySelector("details[open].fp-menu-container");F&&(F.open=!1,(B=F.querySelector("summary"))===null||B===void 0||B.removeAttribute("aria-expanded"),I.root.classList.toggle("has-menu-opened",!1))})}function W(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function at(I,B,F){let j=function(tt,ct){let st=new CustomEvent(tt,{detail:ct,cancelable:!0});return ct&&Object.defineProperty(st,"data",{get:()=>ct}),st}(B,F);return I.dispatchEvent(j),I}document.addEventListener("click",function(I){this.active_menu&&!I.composedPath().includes(this.active_menu)&&(P(),this.active_menu=void 0)}),function(){let I=!1;try{let B=Object.defineProperty({},"passive",{get:function(){I=!0}});window.addEventListener("testPassive",null,B),window.removeEventListener("testPassive",null,B)}catch(B){}}();var Et;let q=((Et=class I{constructor(B){((F,j,tt)=>{window.customElements.get(j)||window.customElements.define(j,tt),F.customElements.get(j)||F.customElements.set(j,j)})(B,"flowplayer-audio-menu",H)}init(B,F,j){if(B.asel===!1)return;let tt=[],ct=L(j,"flowplayer-audio-menu");ct instanceof H&&ct.setMenuAttrs({summaryTitle:j.i18n("audio.button_txt"),menuTitle:j.i18n("audio.menu_title"),class:"fp-asel",options_event:Et.events.TRACKS,item_selected_event:Et.events.SWITCH});let st=function(lt){let St={tracks:[],events:h};return Object.assign(St,{set:function(Pt){if(!(typeof Pt!="number"||Pt<0||Pt>St.tracks.length-1))return lt.emit("audio:set",St.tracks[Pt]),St},get:function(Pt){if(typeof Pt=="number")return St.tracks[Pt]}}),St}(j);j.asel=st,j.on("mount",function(){var lt;(lt=function(St,Pt){let $t=St._customElements.get(Pt);return $t&&St.root.querySelector($t)||void 0}(j,j.hasState("is-tv")?"flowplayer-tv-menu":"flowplayer-control"))===null||lt===void 0||lt.append(ct)}),j.on("src",()=>{st.tracks=[],st.active_track=void 0,at(ct,Et.events.TRACKS,[])}),j.on("audio:tracks",function(lt){if(!Array.isArray(lt.data)||lt.data.length===tt.length&<.data.every(($t,zt)=>$t===tt[zt]))return;tt=lt.data,st.tracks=tt.slice();let St=v(B,"asel.sort");typeof St=="function"&&st.tracks.sort(St),at(ct,Et.events.TRACKS,Array.from({length:st.tracks.length}).map(($t,zt)=>{let nt=st.tracks[zt];return{text:nt.name||nt.label||nt.lang,onclick:_.bind(0,j,nt)}})),st.active_track=st.tracks.find(($t)=>$t.enabled),st.active_track&&at(ct,Et.events.SWITCH,{selected_index:st.tracks.indexOf(st.active_track)});let Pt=A(j._storage,st.tracks,v(B,"asel.default_lang",!1));return ct instanceof H&&ct.toggle_visibility(lt.data.length<2),Pt!==void 0?st.set(Pt):void 0}),j.on("audio:update",function(lt){var St;(St=j.asel)===null||St===void 0||St.tracks.find((Pt,$t)=>{var zt,nt;Pt!==lt.detail&&Pt.id!==((nt=(zt=lt.detail)===null||zt===void 0?void 0:zt.id)!==null&&nt!==void 0?nt:-1)||(j.asel.active_track=Pt,at(ct,Et.events.SWITCH,{selected_index:$t}))})}),j.audioTracks&&(j.audioTracks.addEventListener("addtrack",function(){j.hls||j.emit("audio:tracks",Array.from(j.audioTracks))}),j.on("audio:set",function(lt){if(j.hls)return;let St=lt.detail;st.active_track=St,St&&Array.from(j.audioTracks).forEach((Pt)=>{Pt.enabled=St.id===Pt.id,Pt.enabled&&at(ct,Et.events.SWITCH,{selected_index:st.tracks.indexOf(St)})})}))}}).pluginName="asel",Et.events=h,Et);return function(I,B){if(typeof Go=="object"&&typeof Ho!="undefined")return B;if(document.currentScript===null)return B;"flowplayer"in I||(I.flowplayer={extensions:[]});let F=I.flowplayer;return typeof F=="function"?(F(B),B):(Array.isArray(F.extensions)||(F.extensions=[]),~F.extensions.indexOf(B)||F.extensions.push(B),B)}(window,q)})});var Od=Ce((Vo,Ko)=>{(function(n,o){typeof Vo=="object"&&typeof Ko!="undefined"?Ko.exports=o():typeof define=="function"&&define.amd?define(o):((n=typeof globalThis!="undefined"?globalThis:n||self).flowplayer=n.flowplayer||{},n.flowplayer.consent=o())})(Vo,function(){class n{constructor(_,R){this.implementation=_,R&&R.keys().forEach((A)=>{typeof R.implementation[A]=="string"&&this.implementation.setItem(A,R.implementation[A])})}keys(){var _;let R=[];for(var A=0;A<this.implementation.length;A++)((_=this.implementation.key(A))===null||_===void 0?void 0:_.startsWith("flowplayer/"))&&R.push(this.implementation.key(A));return R}removeItem(_){try{this.implementation.removeItem("flowplayer/"+_)}catch(R){}}getItem(_){try{return this.implementation.getItem("flowplayer/"+_)}catch(R){return null}}setItem(_,R){try{this.implementation.setItem("flowplayer/"+_,R)}catch(A){}}clear(){try{this.keys().forEach((_)=>this.implementation.removeItem(_))}catch(_){}}get length(){try{return this.keys().length}catch(_){return 0}}key(_){try{return this.implementation.key(_)}catch(R){return null}}}var o,h,v;(function(_){_[_.ALL=1]="ALL",_[_.NONE=2]="NONE"})(o||(o={})),function(_){_[_.ALL=8]="ALL",_[_.NONE=16]="NONE"}(h||(h={}));let E=((v=class _{constructor(R,A){let L=A._storage.getItem("consent"),M=this.current_value=L&&!isNaN(Number(L))?Number(A._storage.getItem("consent")):o.NONE|h.NONE;this.player=A,this.adapt(Object.assign({consent:M},A.opts))}init(R,A,L){this.adapt(R),L.on("config",(X)=>{this.adapt(X.detail)});let M=(X)=>{L.setOpts({consent:X.detail})};document.addEventListener("flowplayer/consent",M),L.on("reap",()=>document.removeEventListener("flowplayer/consent",M))}adapt(R){let A=R.consent===void 0?this.current_value:R.consent;h.ALL&A?this.setStorage(h.ALL):h.NONE&A&&this.setStorage(h.NONE),o.ALL&A?this.setTracking(o.ALL):o.NONE&A&&this.setTracking(o.NONE),this.player._storage.setItem("consent",A.toString())}setStorage(R){try{let A=this.player._storage;switch(this.player.setState("consent-no-storage",R===h.NONE),R){case h.ALL:this.player._storage=new n(localStorage,this.player._storage);break;case h.NONE:this.player._storage=new n(sessionStorage,A),A.clear()}}catch(A){console.debug(A)}}setTracking(R){var A,L;switch(this.player.setState("consent-no-tracking",R===o.NONE),R){case o.ALL:(A=this.player.health)===null||A===void 0||A.toggle(!0);break;case o.NONE:(L=this.player.health)===null||L===void 0||L.toggle(!1)}}}).pluginName="consent",v.tracking=o,v.storage=h,v);return function(_,R){if(typeof Vo=="object"&&typeof Ko!="undefined")return R;if(document.currentScript===null)return R;"flowplayer"in _||(_.flowplayer={extensions:[]});let A=_.flowplayer;return typeof A=="function"?(A(R),R):(Array.isArray(A.extensions)||(A.extensions=[]),~A.extensions.indexOf(R)||A.extensions.push(R),R)}(window,E)})});var Md=Ce((Wo,Yo)=>{(function(n,o){typeof Wo=="object"&&typeof Yo!="undefined"?Yo.exports=o():typeof define=="function"&&define.amd?define(o):((n=typeof globalThis!="undefined"?globalThis:n||self).flowplayer=n.flowplayer||{},n.flowplayer.hls=o())})(Wo,function(){function n(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var o={exports:{}};(function(t,e){var i,r,s,a,l;i=/^(?=((?:[a-zA-Z0-9+\-.]+:)?))\1(?=((?:\/\/[^\/?#]*)?))\2(?=((?:(?:[^?#\/]*\/)*[^;?#\/]*)?))\3((?:;[^?#]*)?)(\?[^#]*)?(#[^]*)?$/,r=/^(?=([^\/?#]*))\1([^]*)$/,s=/(?:\/|^)\.(?=\/)/g,a=/(?:\/|^)\.\.\/(?!\.\.\/)[^\/]*(?=\/)/g,l={buildAbsoluteURL:function(c,u,d){if(d=d||{},c=c.trim(),!(u=u.trim())){if(!d.alwaysNormalize)return c;var m=l.parseURL(c);if(!m)throw new Error("Error trying to parse base URL.");return m.path=l.normalizePath(m.path),l.buildURLFromParts(m)}var y=l.parseURL(u);if(!y)throw new Error("Error trying to parse relative URL.");if(y.scheme)return d.alwaysNormalize?(y.path=l.normalizePath(y.path),l.buildURLFromParts(y)):u;var S=l.parseURL(c);if(!S)throw new Error("Error trying to parse base URL.");if(!S.netLoc&&S.path&&S.path[0]!=="/"){var T=r.exec(S.path);S.netLoc=T[1],S.path=T[2]}S.netLoc&&!S.path&&(S.path="/");var w={scheme:S.scheme,netLoc:y.netLoc,path:null,params:y.params,query:y.query,fragment:y.fragment};if(!y.netLoc&&(w.netLoc=S.netLoc,y.path[0]!=="/"))if(y.path){var D=S.path,k=D.substring(0,D.lastIndexOf("/")+1)+y.path;w.path=l.normalizePath(k)}else w.path=S.path,y.params||(w.params=S.params,y.query||(w.query=S.query));return w.path===null&&(w.path=d.alwaysNormalize?l.normalizePath(y.path):y.path),l.buildURLFromParts(w)},parseURL:function(c){var u=i.exec(c);return u?{scheme:u[1]||"",netLoc:u[2]||"",path:u[3]||"",params:u[4]||"",query:u[5]||"",fragment:u[6]||""}:null},normalizePath:function(c){for(c=c.split("").reverse().join("").replace(s,"");c.length!==(c=c.replace(a,"")).length;);return c.split("").reverse().join("")},buildURLFromParts:function(c){return c.scheme+c.netLoc+c.path+c.params+c.query+c.fragment}},t.exports=l})(o);var h=o.exports;function v(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(s){return Object.getOwnPropertyDescriptor(t,s).enumerable})),i.push.apply(i,r)}return i}function E(t){for(var e=1;e<arguments.length;e++){var i=arguments[e]!=null?arguments[e]:{};e%2?v(Object(i),!0).forEach(function(r){R(t,r,i[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):v(Object(i)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(i,r))})}return t}function _(t){var e=function(i,r){if(typeof i!="object"||!i)return i;var s=i[Symbol.toPrimitive];if(s!==void 0){var a=s.call(i,r||"default");if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(r==="string"?String:Number)(i)}(t,"string");return typeof e=="symbol"?e:String(e)}function R(t,e,i){return(e=_(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function A(){return(A=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var i=arguments[e];for(var r in i)Object.prototype.hasOwnProperty.call(i,r)&&(t[r]=i[r])}return t}).apply(this,arguments)}let L=Number.isFinite||function(t){return typeof t=="number"&&isFinite(t)},M=Number.isSafeInteger||function(t){return typeof t=="number"&&Math.abs(t)<=X},X=Number.MAX_SAFE_INTEGER||9007199254740991,b=function(t){return t.MEDIA_ATTACHING="hlsMediaAttaching",t.MEDIA_ATTACHED="hlsMediaAttached",t.MEDIA_DETACHING="hlsMediaDetaching",t.MEDIA_DETACHED="hlsMediaDetached",t.BUFFER_RESET="hlsBufferReset",t.BUFFER_CODECS="hlsBufferCodecs",t.BUFFER_CREATED="hlsBufferCreated",t.BUFFER_APPENDING="hlsBufferAppending",t.BUFFER_APPENDED="hlsBufferAppended",t.BUFFER_EOS="hlsBufferEos",t.BUFFER_FLUSHING="hlsBufferFlushing",t.BUFFER_FLUSHED="hlsBufferFlushed",t.MANIFEST_LOADING="hlsManifestLoading",t.MANIFEST_LOADED="hlsManifestLoaded",t.MANIFEST_PARSED="hlsManifestParsed",t.LEVEL_SWITCHING="hlsLevelSwitching",t.LEVEL_SWITCHED="hlsLevelSwitched",t.LEVEL_LOADING="hlsLevelLoading",t.LEVEL_LOADED="hlsLevelLoaded",t.LEVEL_UPDATED="hlsLevelUpdated",t.LEVEL_PTS_UPDATED="hlsLevelPtsUpdated",t.LEVELS_UPDATED="hlsLevelsUpdated",t.AUDIO_TRACKS_UPDATED="hlsAudioTracksUpdated",t.AUDIO_TRACK_SWITCHING="hlsAudioTrackSwitching",t.AUDIO_TRACK_SWITCHED="hlsAudioTrackSwitched",t.AUDIO_TRACK_LOADING="hlsAudioTrackLoading",t.AUDIO_TRACK_LOADED="hlsAudioTrackLoaded",t.SUBTITLE_TRACKS_UPDATED="hlsSubtitleTracksUpdated",t.SUBTITLE_TRACKS_CLEARED="hlsSubtitleTracksCleared",t.SUBTITLE_TRACK_SWITCH="hlsSubtitleTrackSwitch",t.SUBTITLE_TRACK_LOADING="hlsSubtitleTrackLoading",t.SUBTITLE_TRACK_LOADED="hlsSubtitleTrackLoaded",t.SUBTITLE_FRAG_PROCESSED="hlsSubtitleFragProcessed",t.CUES_PARSED="hlsCuesParsed",t.NON_NATIVE_TEXT_TRACKS_FOUND="hlsNonNativeTextTracksFound",t.INIT_PTS_FOUND="hlsInitPtsFound",t.FRAG_LOADING="hlsFragLoading",t.FRAG_LOAD_EMERGENCY_ABORTED="hlsFragLoadEmergencyAborted",t.FRAG_LOADED="hlsFragLoaded",t.FRAG_DECRYPTED="hlsFragDecrypted",t.FRAG_PARSING_INIT_SEGMENT="hlsFragParsingInitSegment",t.FRAG_PARSING_USERDATA="hlsFragParsingUserdata",t.FRAG_PARSING_METADATA="hlsFragParsingMetadata",t.FRAG_PARSED="hlsFragParsed",t.FRAG_BUFFERED="hlsFragBuffered",t.FRAG_CHANGED="hlsFragChanged",t.FPS_DROP="hlsFpsDrop",t.FPS_DROP_LEVEL_CAPPING="hlsFpsDropLevelCapping",t.MAX_AUTO_LEVEL_UPDATED="hlsMaxAutoLevelUpdated",t.ERROR="hlsError",t.DESTROYING="hlsDestroying",t.KEY_LOADING="hlsKeyLoading",t.KEY_LOADED="hlsKeyLoaded",t.LIVE_BACK_BUFFER_REACHED="hlsLiveBackBufferReached",t.BACK_BUFFER_REACHED="hlsBackBufferReached",t.STEERING_MANIFEST_LOADED="hlsSteeringManifestLoaded",t}({}),H=function(t){return t.NETWORK_ERROR="networkError",t.MEDIA_ERROR="mediaError",t.KEY_SYSTEM_ERROR="keySystemError",t.MUX_ERROR="muxError",t.OTHER_ERROR="otherError",t}({}),P=function(t){return t.KEY_SYSTEM_NO_KEYS="keySystemNoKeys",t.KEY_SYSTEM_NO_ACCESS="keySystemNoAccess",t.KEY_SYSTEM_NO_SESSION="keySystemNoSession",t.KEY_SYSTEM_NO_CONFIGURED_LICENSE="keySystemNoConfiguredLicense",t.KEY_SYSTEM_LICENSE_REQUEST_FAILED="keySystemLicenseRequestFailed",t.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED="keySystemServerCertificateRequestFailed",t.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED="keySystemServerCertificateUpdateFailed",t.KEY_SYSTEM_SESSION_UPDATE_FAILED="keySystemSessionUpdateFailed",t.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED="keySystemStatusOutputRestricted",t.KEY_SYSTEM_STATUS_INTERNAL_ERROR="keySystemStatusInternalError",t.MANIFEST_LOAD_ERROR="manifestLoadError",t.MANIFEST_LOAD_TIMEOUT="manifestLoadTimeOut",t.MANIFEST_PARSING_ERROR="manifestParsingError",t.MANIFEST_INCOMPATIBLE_CODECS_ERROR="manifestIncompatibleCodecsError",t.LEVEL_EMPTY_ERROR="levelEmptyError",t.LEVEL_LOAD_ERROR="levelLoadError",t.LEVEL_LOAD_TIMEOUT="levelLoadTimeOut",t.LEVEL_PARSING_ERROR="levelParsingError",t.LEVEL_SWITCH_ERROR="levelSwitchError",t.AUDIO_TRACK_LOAD_ERROR="audioTrackLoadError",t.AUDIO_TRACK_LOAD_TIMEOUT="audioTrackLoadTimeOut",t.SUBTITLE_LOAD_ERROR="subtitleTrackLoadError",t.SUBTITLE_TRACK_LOAD_TIMEOUT="subtitleTrackLoadTimeOut",t.FRAG_LOAD_ERROR="fragLoadError",t.FRAG_LOAD_TIMEOUT="fragLoadTimeOut",t.FRAG_DECRYPT_ERROR="fragDecryptError",t.FRAG_PARSING_ERROR="fragParsingError",t.FRAG_GAP="fragGap",t.REMUX_ALLOC_ERROR="remuxAllocError",t.KEY_LOAD_ERROR="keyLoadError",t.KEY_LOAD_TIMEOUT="keyLoadTimeOut",t.BUFFER_ADD_CODEC_ERROR="bufferAddCodecError",t.BUFFER_INCOMPATIBLE_CODECS_ERROR="bufferIncompatibleCodecsError",t.BUFFER_APPEND_ERROR="bufferAppendError",t.BUFFER_APPENDING_ERROR="bufferAppendingError",t.BUFFER_STALLED_ERROR="bufferStalledError",t.BUFFER_FULL_ERROR="bufferFullError",t.BUFFER_SEEK_OVER_HOLE="bufferSeekOverHole",t.BUFFER_NUDGE_ON_STALL="bufferNudgeOnStall",t.INTERNAL_EXCEPTION="internalException",t.INTERNAL_ABORTED="aborted",t.UNKNOWN="unknown",t}({}),W=function(){},at={trace:W,debug:W,log:W,warn:W,info:W,error:W},Et=at;function q(t,...e){e.forEach(function(i){Et[i]=t[i]?t[i].bind(t):function(r){let s=self.console[r];return s?s.bind(self.console,`[${r}] >`):W}(i)})}let I=Et,B=/^(\d+)x(\d+)$/,F=/(.+?)=(".*?"|.*?)(?:,|$)/g;class j{constructor(t){typeof t=="string"&&(t=j.parseAttrList(t)),A(this,t)}get clientAttrs(){return Object.keys(this).filter((t)=>t.substring(0,2)==="X-")}decimalInteger(t){let e=parseInt(this[t],10);return e>Number.MAX_SAFE_INTEGER?1/0:e}hexadecimalInteger(t){if(this[t]){let e=(this[t]||"0x").slice(2);e=(1&e.length?"0":"")+e;let i=new Uint8Array(e.length/2);for(let r=0;r<e.length/2;r++)i[r]=parseInt(e.slice(2*r,2*r+2),16);return i}return null}hexadecimalIntegerAsNumber(t){let e=parseInt(this[t],16);return e>Number.MAX_SAFE_INTEGER?1/0:e}decimalFloatingPoint(t){return parseFloat(this[t])}optionalFloat(t,e){let i=this[t];return i?parseFloat(i):e}enumeratedString(t){return this[t]}bool(t){return this[t]==="YES"}decimalResolution(t){let e=B.exec(this[t]);if(e!==null)return{width:parseInt(e[1],10),height:parseInt(e[2],10)}}static parseAttrList(t){let e,i={};for(F.lastIndex=0;(e=F.exec(t))!==null;){let r=e[2];r.indexOf('"')===0&&r.lastIndexOf('"')===r.length-1&&(r=r.slice(1,-1)),i[e[1].trim()]=r}return i}}function tt(t){return t==="SCTE35-OUT"||t==="SCTE35-IN"}class ct{constructor(t,e){if(this.attr=void 0,this._startDate=void 0,this._endDate=void 0,this._badValueForSameId=void 0,e){let i=e.attr;for(let r in i)if(Object.prototype.hasOwnProperty.call(t,r)&&t[r]!==i[r]){I.warn(`DATERANGE tag attribute: "${r}" does not match for tags with ID: "${t.ID}"`),this._badValueForSameId=r;break}t=A(new j({}),i,t)}if(this.attr=t,this._startDate=new Date(t["START-DATE"]),"END-DATE"in this.attr){let i=new Date(this.attr["END-DATE"]);L(i.getTime())&&(this._endDate=i)}}get id(){return this.attr.ID}get class(){return this.attr.CLASS}get startDate(){return this._startDate}get endDate(){if(this._endDate)return this._endDate;let t=this.duration;return t!==null?new Date(this._startDate.getTime()+1000*t):null}get duration(){if("DURATION"in this.attr){let t=this.attr.decimalFloatingPoint("DURATION");if(L(t))return t}else if(this._endDate)return(this._endDate.getTime()-this._startDate.getTime())/1000;return null}get plannedDuration(){return"PLANNED-DURATION"in this.attr?this.attr.decimalFloatingPoint("PLANNED-DURATION"):null}get endOnNext(){return this.attr.bool("END-ON-NEXT")}get isValid(){return!!this.id&&!this._badValueForSameId&&L(this.startDate.getTime())&&(this.duration===null||this.duration>=0)&&(!this.endOnNext||!!this.class)}}class st{constructor(){this.aborted=!1,this.loaded=0,this.retry=0,this.total=0,this.chunkCount=0,this.bwEstimate=0,this.loading={start:0,first:0,end:0},this.parsing={start:0,end:0},this.buffering={start:0,first:0,end:0}}}var lt="audio",St="video",Pt="audiovideo";class $t{constructor(t){this._byteRange=null,this._url=null,this.baseurl=void 0,this.relurl=void 0,this.elementaryStreams={[lt]:null,[St]:null,[Pt]:null},this.baseurl=t}setByteRange(t,e){let i=t.split("@",2),r;r=i.length===1?(e==null?void 0:e.byteRangeEndOffset)||0:parseInt(i[1]),this._byteRange=[r,parseInt(i[0])+r]}get byteRange(){return this._byteRange?this._byteRange:[]}get byteRangeStartOffset(){return this.byteRange[0]}get byteRangeEndOffset(){return this.byteRange[1]}get url(){return!this._url&&this.baseurl&&this.relurl&&(this._url=h.buildAbsoluteURL(this.baseurl,this.relurl,{alwaysNormalize:!0})),this._url||""}set url(t){this._url=t}}class zt extends $t{constructor(t,e){super(e),this._decryptdata=null,this.rawProgramDateTime=null,this.programDateTime=null,this.tagList=[],this.duration=0,this.sn=0,this.levelkeys=void 0,this.type=void 0,this.loader=null,this.keyLoader=null,this.level=-1,this.cc=0,this.startPTS=void 0,this.endPTS=void 0,this.startDTS=void 0,this.endDTS=void 0,this.start=0,this.deltaPTS=void 0,this.maxStartPTS=void 0,this.minEndPTS=void 0,this.stats=new st,this.data=void 0,this.bitrateTest=!1,this.title=null,this.initSegment=null,this.endList=void 0,this.gap=void 0,this.urlId=0,this.type=t}get decryptdata(){let{levelkeys:t}=this;if(!t&&!this._decryptdata)return null;if(!this._decryptdata&&this.levelkeys&&!this.levelkeys.NONE){let e=this.levelkeys.identity;if(e)this._decryptdata=e.getDecryptData(this.sn);else{let i=Object.keys(this.levelkeys);if(i.length===1)return this._decryptdata=this.levelkeys[i[0]].getDecryptData(this.sn)}}return this._decryptdata}get end(){return this.start+this.duration}get endProgramDateTime(){if(this.programDateTime===null)return null;if(!L(this.programDateTime))return null;let t=L(this.duration)?this.duration:0;return this.programDateTime+1000*t}get encrypted(){var t;if((t=this._decryptdata)!=null&&t.encrypted)return!0;if(this.levelkeys){let e=Object.keys(this.levelkeys),i=e.length;if(i>1||i===1&&this.levelkeys[e[0]].encrypted)return!0}return!1}setKeyFormat(t){if(this.levelkeys){let e=this.levelkeys[t];e&&!this._decryptdata&&(this._decryptdata=e.getDecryptData(this.sn))}}abortRequests(){var t,e;(t=this.loader)==null||t.abort(),(e=this.keyLoader)==null||e.abort()}setElementaryStreamInfo(t,e,i,r,s,a=!1){let{elementaryStreams:l}=this,c=l[t];c?(c.startPTS=Math.min(c.startPTS,e),c.endPTS=Math.max(c.endPTS,i),c.startDTS=Math.min(c.startDTS,r),c.endDTS=Math.max(c.endDTS,s)):l[t]={startPTS:e,endPTS:i,startDTS:r,endDTS:s,partial:a}}clearElementaryStreamInfo(){let{elementaryStreams:t}=this;t[lt]=null,t[St]=null,t[Pt]=null}}class nt extends $t{constructor(t,e,i,r,s){super(i),this.fragOffset=0,this.duration=0,this.gap=!1,this.independent=!1,this.relurl=void 0,this.fragment=void 0,this.index=void 0,this.stats=new st,this.duration=t.decimalFloatingPoint("DURATION"),this.gap=t.bool("GAP"),this.independent=t.bool("INDEPENDENT"),this.relurl=t.enumeratedString("URI"),this.fragment=e,this.index=r;let a=t.enumeratedString("BYTERANGE");a&&this.setByteRange(a,s),s&&(this.fragOffset=s.fragOffset+s.duration)}get start(){return this.fragment.start+this.fragOffset}get end(){return this.start+this.duration}get loaded(){let{elementaryStreams:t}=this;return!!(t.audio||t.video||t.audiovideo)}}class dt{constructor(t){this.PTSKnown=!1,this.alignedSliding=!1,this.averagetargetduration=void 0,this.endCC=0,this.endSN=0,this.fragments=void 0,this.fragmentHint=void 0,this.partList=null,this.dateRanges=void 0,this.live=!0,this.ageHeader=0,this.advancedDateTime=void 0,this.updated=!0,this.advanced=!0,this.availabilityDelay=void 0,this.misses=0,this.startCC=0,this.startSN=0,this.startTimeOffset=null,this.targetduration=0,this.totalduration=0,this.type=null,this.url=void 0,this.m3u8="",this.version=null,this.canBlockReload=!1,this.canSkipUntil=0,this.canSkipDateRanges=!1,this.skippedSegments=0,this.recentlyRemovedDateranges=void 0,this.partHoldBack=0,this.holdBack=0,this.partTarget=0,this.preloadHint=void 0,this.renditionReports=void 0,this.tuneInGoal=0,this.deltaUpdateFailed=void 0,this.driftStartTime=0,this.driftEndTime=0,this.driftStart=0,this.driftEnd=0,this.encryptedFragments=void 0,this.playlistParsingError=null,this.variableList=null,this.hasVariableRefs=!1,this.fragments=[],this.encryptedFragments=[],this.dateRanges={},this.url=t}reloaded(t){if(!t)return this.advanced=!0,void(this.updated=!0);let e=this.lastPartSn-t.lastPartSn,i=this.lastPartIndex-t.lastPartIndex;this.updated=this.endSN!==t.endSN||!!i||!!e||!this.live,this.advanced=this.endSN>t.endSN||e>0||e===0&&i>0,this.updated||this.advanced?this.misses=Math.floor(0.6*t.misses):this.misses=t.misses+1,this.availabilityDelay=t.availabilityDelay}get hasProgramDateTime(){return!!this.fragments.length&&L(this.fragments[this.fragments.length-1].programDateTime)}get levelTargetDuration(){return this.averagetargetduration||this.targetduration||10}get drift(){let t=this.driftEndTime-this.driftStartTime;if(t>0)return 1000*(this.driftEnd-this.driftStart)/t;return 1}get edge(){return this.partEnd||this.fragmentEnd}get partEnd(){var t;return(t=this.partList)!=null&&t.length?this.partList[this.partList.length-1].end:this.fragmentEnd}get fragmentEnd(){var t;return(t=this.fragments)!=null&&t.length?this.fragments[this.fragments.length-1].end:0}get age(){return this.advancedDateTime?Math.max(Date.now()-this.advancedDateTime,0)/1000:0}get lastPartIndex(){var t;return(t=this.partList)!=null&&t.length?this.partList[this.partList.length-1].index:-1}get lastPartSn(){var t;return(t=this.partList)!=null&&t.length?this.partList[this.partList.length-1].fragment.sn:this.endSN}}function bt(t){return Uint8Array.from(atob(t),(e)=>e.charCodeAt(0))}function Bt(t){let e=t.split(":"),i=null;if(e[0]==="data"&&e.length===2){let r=e[1].split(";"),s=r[r.length-1].split(",");if(s.length===2){let a=s[0]==="base64",l=s[1];a?(r.splice(-1,1),i=bt(l)):i=function(c){let u=Kt(c).subarray(0,16),d=new Uint8Array(16);return d.set(u,16-u.length),d}(l)}}return i}function Kt(t){return Uint8Array.from(unescape(encodeURIComponent(t)),(e)=>e.charCodeAt(0))}let ce=typeof self!="undefined"?self:void 0;var jt={CLEARKEY:"org.w3.clearkey",FAIRPLAY:"com.apple.fps",PLAYREADY:"com.microsoft.playready",WIDEVINE:"com.widevine.alpha"},K="org.w3.clearkey",it="com.apple.streamingkeydelivery",pt="com.microsoft.playready",gt="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed";function Lt(t){switch(t){case it:return jt.FAIRPLAY;case pt:return jt.PLAYREADY;case gt:return jt.WIDEVINE;case K:return jt.CLEARKEY}}var ve="edef8ba979d64acea3c827dcd51d21ed";function ue(t){switch(t){case jt.FAIRPLAY:return it;case jt.PLAYREADY:return pt;case jt.WIDEVINE:return gt;case jt.CLEARKEY:return K}}function Je(t){let{drmSystems:e,widevineLicenseUrl:i}=t,r=e?[jt.FAIRPLAY,jt.WIDEVINE,jt.PLAYREADY,jt.CLEARKEY].filter((s)=>!!e[s]):[];return!r[jt.WIDEVINE]&&i&&r.push(jt.WIDEVINE),r}let xe=ce!=null&&(ke=ce.navigator)!=null&&ke.requestMediaKeySystemAccess?self.navigator.requestMediaKeySystemAccess.bind(self.navigator):null;var ke;function ne(t,e,i){return Uint8Array.prototype.slice?t.slice(e,i):new Uint8Array(Array.prototype.slice.call(t,e,i))}let Ve=(t,e)=>e+10<=t.length&&t[e]===73&&t[e+1]===68&&t[e+2]===51&&t[e+3]<255&&t[e+4]<255&&t[e+6]<128&&t[e+7]<128&&t[e+8]<128&&t[e+9]<128,Qe=(t,e)=>e+10<=t.length&&t[e]===51&&t[e+1]===68&&t[e+2]===73&&t[e+3]<255&&t[e+4]<255&&t[e+6]<128&&t[e+7]<128&&t[e+8]<128&&t[e+9]<128,ui=(t,e)=>{let i=e,r=0;for(;Ve(t,e);)r+=10,r+=Ke(t,e+6),Qe(t,e+10)&&(r+=10),e+=r;if(r>0)return t.subarray(i,i+r)},Ke=(t,e)=>{let i=0;return i=(127&t[e])<<21,i|=(127&t[e+1])<<14,i|=(127&t[e+2])<<7,i|=127&t[e+3],i},Ci=(t,e)=>Ve(t,e)&&Ke(t,e+6)+10<=t.length-e,We=(t)=>{let e=_t(t);for(let i=0;i<e.length;i++){let r=e[i];if(xt(r))return Di(r)}},xt=(t)=>t&&t.key==="PRIV"&&t.info==="com.apple.streaming.transportStreamTimestamp",Nt=(t)=>{let e=String.fromCharCode(t[0],t[1],t[2],t[3]),i=Ke(t,4);return{type:e,size:i,data:t.subarray(10,10+i)}},_t=(t)=>{let e=0,i=[];for(;Ve(t,e);){let r=Ke(t,e+6);e+=10;let s=e+r;for(;e+8<s;){let a=Nt(t.subarray(e)),l=Xt(a);l&&i.push(l),e+=a.size+10}Qe(t,e)&&(e+=10)}return i},Xt=(t)=>t.type==="PRIV"?se(t):t.type[0]==="W"?ar(t):di(t),se=(t)=>{if(t.size<2)return;let e=Fe(t.data,!0),i=new Uint8Array(t.data.subarray(e.length+1));return{key:t.type,info:e,data:i.buffer}},di=(t)=>{if(t.size<2)return;if(t.type==="TXXX"){let i=1,r=Fe(t.data.subarray(i),!0);i+=r.length+1;let s=Fe(t.data.subarray(i));return{key:t.type,info:r,data:s}}let e=Fe(t.data.subarray(1));return{key:t.type,data:e}},ar=(t)=>{if(t.type==="WXXX"){if(t.size<2)return;let i=1,r=Fe(t.data.subarray(i),!0);i+=r.length+1;let s=Fe(t.data.subarray(i));return{key:t.type,info:r,data:s}}let e=Fe(t.data);return{key:t.type,data:e}},Di=(t)=>{if(t.data.byteLength===8){let e=new Uint8Array(t.data),i=1&e[3],r=(e[4]<<23)+(e[5]<<15)+(e[6]<<7)+e[7];return r/=45,i&&(r+=47721858.84),Math.round(r)}},Fe=(t,e=!1)=>{let i=Ze();if(i){let d=i.decode(t);if(e){let m=d.indexOf("\x00");return m!==-1?d.substring(0,m):d}return d.replace(/\0/g,"")}let r=t.length,s,a,l,c="",u=0;for(;u<r;){if(s=t[u++],s===0&&e)return c;if(s!==0&&s!==3)switch(s>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:c+=String.fromCharCode(s);break;case 12:case 13:a=t[u++],c+=String.fromCharCode((31&s)<<6|63&a);break;case 14:a=t[u++],l=t[u++],c+=String.fromCharCode((15&s)<<12|(63&a)<<6|(63&l)<<0)}}return c},or;function Ze(){if(!navigator.userAgent.includes("PlayStation 4"))return or||self.TextDecoder===void 0||(or=new self.TextDecoder("utf-8")),or}let ni=function(t){let e="";for(let i=0;i<t.length;i++){let r=t[i].toString(16);r.length<2&&(r="0"+r),e+=r}return e},zr=Math.pow(2,32)-1,yi=[].push,oe={video:1,audio:2,id3:3,text:4};function ye(t){return String.fromCharCode.apply(null,t)}function Ii(t,e){let i=t[e]<<8|t[e+1];return i<0?65536+i:i}function Ft(t,e){let i=Va(t,e);return i<0?4294967296+i:i}function Rn(t,e){let i=Ft(t,e);return i*=Math.pow(2,32),i+=Ft(t,e+4),i}function Va(t,e){return t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3]}function Ns(t,e,i){t[e]=i>>24,t[e+1]=i>>16&255,t[e+2]=i>>8&255,t[e+3]=255&i}function Wt(t,e){let i=[];if(!e.length)return i;let r=t.byteLength;for(let s=0;s<r;){let a=Ft(t,s),l=a>1?s+a:r;if(ye(t.subarray(s+4,s+8))===e[0])if(e.length===1)i.push(t.subarray(s+8,l));else{let c=Wt(t.subarray(s+8,l),e.slice(1));c.length&&yi.apply(i,c)}s=l}return i}function Ka(t){let e=[],i=t[0],r=8,s=Ft(t,r);r+=4;let a=0,l=0;i===0?(a=Ft(t,r),l=Ft(t,r+4),r+=8):(a=Rn(t,r),l=Rn(t,r+8),r+=16),r+=2;let c=t.length+l,u=Ii(t,r);r+=2;for(let d=0;d<u;d++){let m=r,y=Ft(t,m);m+=4;let S=2147483647&y;if((2147483648&y)>>>31===1)return I.warn("SIDX has hierarchical references (not supported)"),null;let T=Ft(t,m);m+=4,e.push({referenceSize:S,subsegmentDuration:T,info:{duration:T/s,start:c,end:c+S-1}}),c+=S,m+=4,r=m}return{earliestPresentationTime:a,timescale:s,version:i,referencesCount:u,references:e}}function Ps(t){let e=[],i=Wt(t,["moov","trak"]);for(let r=0;r<i.length;r++){let s=i[r],a=Wt(s,["tkhd"])[0];if(a){let l=a[0],c=Ft(a,l===0?12:20),u=Wt(s,["mdia","mdhd"])[0];if(u){l=u[0];let d=Ft(u,l===0?12:20),m=Wt(s,["mdia","hdlr"])[0];if(m){let y=ye(m.subarray(8,12)),S={soun:lt,vide:St}[y];if(S){let T=Ll(Wt(s,["mdia","minf","stbl","stsd"])[0]);e[c]={timescale:d,type:S},e[S]=E({timescale:d,id:c},T)}}}}}return Wt(t,["moov","mvex","trex"]).forEach((r)=>{let s=Ft(r,4),a=e[s];a&&(a.default={duration:Ft(r,12),flags:Ft(r,20)})}),e}function Ll(t){let e=t.subarray(8),i=e.subarray(86),r=ye(e.subarray(4,8)),s=r,a=r==="enca"||r==="encv";if(a){let l=Wt(e,[r])[0];Wt(l.subarray(r==="enca"?28:78),["sinf"]).forEach((c)=>{let u=Wt(c,["schm"])[0];if(u){let d=ye(u.subarray(4,8));if(d==="cbcs"||d==="cenc"){let m=Wt(c,["frma"])[0];m&&(s=ye(m))}}})}switch(s){case"avc1":case"avc2":case"avc3":case"avc4":{let l=Wt(i,["avcC"])[0];s+="."+qr(l[1])+qr(l[2])+qr(l[3]);break}case"mp4a":{let l=Wt(e,[r])[0],c=Wt(l.subarray(28),["esds"])[0];if(c&&c.length>12){let u=4;if(c[u++]!==3)break;u=xs(c,u),u+=2;let d=c[u++];if(128&d&&(u+=2),64&d&&(u+=c[u++]),c[u++]!==4)break;u=xs(c,u);let m=c[u++];if(m!==64)break;if(s+="."+qr(m),u+=12,c[u++]!==5)break;u=xs(c,u);let y=c[u++],S=(248&y)>>3;S===31&&(S+=1+((7&y)<<3)+((224&c[u])>>5)),s+="."+S}break}case"hvc1":case"hev1":{let l=Wt(i,["hvcC"])[0],c=l[1],u=["","A","B","C"][c>>6],d=31&c,m=Ft(l,2),y=(32&c)>>5?"H":"L",S=l[12],T=l.subarray(6,12);s+="."+u+d,s+="."+m.toString(16).toUpperCase(),s+="."+y+S;let w="";for(let D=T.length;D--;){let k=T[D];if(k||w)w="."+k.toString(16).toUpperCase()+w}s+=w;break}case"dvh1":case"dvhe":{let l=Wt(i,["dvcC"])[0],c=l[2]>>1&127,u=l[2]<<5&32|l[3]>>3&31;s+="."+hi(c)+"."+hi(u);break}case"vp09":{let l=Wt(i,["vpcC"])[0],c=l[4],u=l[5],d=l[6]>>4&15;s+="."+hi(c)+"."+hi(u)+"."+hi(d);break}case"av01":{let l=Wt(i,["av1C"])[0],c=l[1]>>>5,u=31&l[1],d=l[2]>>>7?"H":"M",m=(64&l[2])>>6,y=(32&l[2])>>5,S=c===2&&m?y?12:10:m?10:8,T=(16&l[2])>>4,w=(8&l[2])>>3,D=(4&l[2])>>2,k=3&l[2];s+="."+c+"."+hi(u)+d+"."+hi(S)+"."+T+"."+w+D+k+"."+hi(1)+"."+hi(1)+"."+hi(1)+".0";break}}return{codec:s,encrypted:a}}function xs(t,e){let i=e+5;for(;128&t[e++]&&e<i;);return e}function qr(t){return("0"+t.toString(16).toUpperCase()).slice(-2)}function hi(t){return(t<10?"0":"")+t}function Fs(t){let e=Wt(t,["schm"])[0];if(e){let i=ye(e.subarray(4,8));if(i==="cbcs"||i==="cenc")return Wt(t,["schi","tenc"])[0]}return I.error("[eme] missing 'schm' box"),null}function Oi(t){let e=Ft(t,0),i=8;1&e&&(i+=4),4&e&&(i+=4);let r=0,s=Ft(t,4);for(let a=0;a<s;a++){if(256&e)r+=Ft(t,i),i+=4;512&e&&(i+=4),1024&e&&(i+=4),2048&e&&(i+=4)}return r}function si(t,e){let i=new Uint8Array(t.length+e.length);return i.set(t),i.set(e,t.length),i}function Wa(t,e){let i=[],r=e.samples,s=e.timescale,a=e.id,l=!1;return Wt(r,["moof"]).map((c)=>{let u=c.byteOffset-8;Wt(c,["traf"]).map((d)=>{let m=Wt(d,["tfdt"]).map((y)=>{let S=y[0],T=Ft(y,4);return S===1&&(T*=Math.pow(2,32),T+=Ft(y,8)),T/s})[0];return m!==void 0&&(t=m),Wt(d,["tfhd"]).map((y)=>{let S=Ft(y,4),T=16777215&Ft(y,0),w=0,D=(16&T)!=0,k=0,N=(32&T)!=0,x=8;S===a&&((1&T)!=0&&(x+=8),(2&T)!=0&&(x+=4),(8&T)!=0&&(w=Ft(y,x),x+=4),D&&(k=Ft(y,x),x+=4),N&&(x+=4),e.type==="video"&&(l=function(G){if(!G)return!1;let Y=G.indexOf("."),rt=Y<0?G:G.substring(0,Y);return rt==="hvc1"||rt==="hev1"||rt==="dvh1"||rt==="dvhe"}(e.codec)),Wt(d,["trun"]).map((G)=>{let Y=G[0],rt=16777215&Ft(G,0),J=(1&rt)!=0,ut=0,ft=(4&rt)!=0,Z=(256&rt)!=0,Q=0,Dt=(512&rt)!=0,mt=0,Rt=(1024&rt)!=0,Ot=(2048&rt)!=0,Mt=0,ot=Ft(G,4),vt=8;J&&(ut=Ft(G,vt),vt+=4),ft&&(vt+=4);let Ct=ut+u;for(let It=0;It<ot;It++){if(Z?(Q=Ft(G,vt),vt+=4):Q=w,Dt?(mt=Ft(G,vt),vt+=4):mt=k,Rt&&(vt+=4),Ot&&(Mt=Y===0?Ft(G,vt):Va(G,vt),vt+=4),e.type===St){let Gt=0;for(;Gt<mt;){let le=Ft(r,Ct);if(Ct+=4,Lr(l,r[Ct]))Ya(r.subarray(Ct,Ct+le),l?2:1,t+Mt/s,i);Ct+=le,Gt+=le+4}}t+=Q/s}}))})})}),i}function Lr(t,e){if(t){let i=e>>1&63;return i===39||i===40}return(31&e)===6}function Ya(t,e,i,r){let s=kn(t),a=0;a+=e;let l=0,c=0,u=0;for(;a<s.length;){l=0;do{if(a>=s.length)break;u=s[a++],l+=u}while(u===255);c=0;do{if(a>=s.length)break;u=s[a++],c+=u}while(u===255);let d=s.length-a,m=a;if(c<d)a+=c;else if(c>d){I.error(`Malformed SEI payload. ${c} is too small, only ${d} bytes left to parse.`);break}if(l===4){if(s[m++]===181){let y=Ii(s,m);if(m+=2,y===49){let S=Ft(s,m);if(m+=4,S===1195456820){let T=s[m++];if(T===3){let w=s[m++],D=31&w,k=64&w,N=k?2+3*D:0,x=new Uint8Array(N);if(k){x[0]=w;for(let G=1;G<N;G++)x[G]=s[m++]}r.push({type:T,payloadType:l,pts:i,bytes:x})}}}}}else if(l===5&&c>16){let y=[];for(let w=0;w<16;w++){let D=s[m++].toString(16);y.push(D.length==1?"0"+D:D),w!==3&&w!==5&&w!==7&&w!==9||y.push("-")}let S=c-16,T=new Uint8Array(S);for(let w=0;w<S;w++)T[w]=s[m++];r.push({payloadType:l,pts:i,uuid:y.join(""),userData:Fe(T),userDataBytes:T})}}}function kn(t){let e=t.byteLength,i=[],r=1;for(;r<e-2;)t[r]===0&&t[r+1]===0&&t[r+2]===3?(i.push(r+2),r+=2):r++;if(i.length===0)return t;let s=e-i.length,a=new Uint8Array(s),l=0;for(r=0;r<s;l++,r++)l===i[0]&&(l++,i.shift()),a[r]=t[l];return a}function ja(t,e,i){if(t.byteLength!==16)throw new RangeError("Invalid system id");let r,s,a;if(e){r=1,s=new Uint8Array(16*e.length);for(let c=0;c<e.length;c++){let u=e[c];if(u.byteLength!==16)throw new RangeError("Invalid key");s.set(u,16*c)}}else r=0,s=new Uint8Array;r>0?(a=new Uint8Array(4),e.length>0&&new DataView(a.buffer).setUint32(0,e.length,!1)):a=new Uint8Array;let l=new Uint8Array(4);return i&&i.byteLength>0&&new DataView(l.buffer).setUint32(0,i.byteLength,!1),function(c,...u){let d=u.length,m=8,y=d;for(;y--;)m+=u[y].byteLength;let S=new Uint8Array(m);for(S[0]=m>>24&255,S[1]=m>>16&255,S[2]=m>>8&255,S[3]=255&m,S.set(c,4),y=0,m=8;y<d;y++)S.set(u[y],m),m+=u[y].byteLength;return S}([112,115,115,104],new Uint8Array([r,0,0,0]),t,a,s,l,i||new Uint8Array)}let ti={};class fi{static clearKeyUriToKeyIdMap(){ti={}}constructor(t,e,i,r=[1],s=null){this.uri=void 0,this.method=void 0,this.keyFormat=void 0,this.keyFormatVersions=void 0,this.encrypted=void 0,this.isCommonEncryption=void 0,this.iv=null,this.key=null,this.keyId=null,this.pssh=null,this.method=t,this.uri=e,this.keyFormat=i,this.keyFormatVersions=r,this.iv=s,this.encrypted=!!t&&t!=="NONE",this.isCommonEncryption=this.encrypted&&t!=="AES-128"}isSupported(){if(this.method){if(this.method==="AES-128"||this.method==="NONE")return!0;if(this.keyFormat==="identity")return this.method==="SAMPLE-AES";switch(this.keyFormat){case it:case gt:case pt:case K:return["ISO-23001-7","SAMPLE-AES","SAMPLE-AES-CENC","SAMPLE-AES-CTR"].indexOf(this.method)!==-1}}return!1}getDecryptData(t){if(!this.encrypted||!this.uri)return null;if(this.method==="AES-128"&&this.uri&&!this.iv){typeof t!="number"&&(this.method!=="AES-128"||this.iv||I.warn(`missing IV for initialization segment with method="${this.method}" - compliance issue`),t=0);let i=function(r){let s=new Uint8Array(16);for(let a=12;a<16;a++)s[a]=r>>8*(15-a)&255;return s}(t);return new fi(this.method,this.uri,"identity",this.keyFormatVersions,i)}let e=Bt(this.uri);if(e)switch(this.keyFormat){case gt:this.pssh=e,e.length>=22&&(this.keyId=e.subarray(e.length-22,e.length-6));break;case pt:{let i=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]);this.pssh=ja(i,null,e);let r=new Uint16Array(e.buffer,e.byteOffset,e.byteLength/2),s=String.fromCharCode.apply(null,Array.from(r)),a=s.substring(s.indexOf("<"),s.length),l=new DOMParser().parseFromString(a,"text/xml").getElementsByTagName("KID")[0];if(l){let c=l.childNodes[0]?l.childNodes[0].nodeValue:l.getAttribute("VALUE");if(c){let u=bt(c).subarray(0,16);(function(d){let m=function(y,S,T){let w=y[S];y[S]=y[T],y[T]=w};m(d,0,3),m(d,1,2),m(d,4,5),m(d,6,7)})(u),this.keyId=u}}break}default:{let i=e.subarray(0,16);if(i.length!==16){let r=new Uint8Array(16);r.set(i,16-i.length),i=r}this.keyId=i;break}}if(!this.keyId||this.keyId.byteLength!==16){let i=ti[this.uri];if(!i){let r=Object.keys(ti).length%Number.MAX_SAFE_INTEGER;i=new Uint8Array(16),new DataView(i.buffer,12,4).setUint32(0,r),ti[this.uri]=i}this.keyId=i}return this}}let Xr=/\{\$([a-zA-Z0-9-_]+)\}/g;function Mi(t){return Xr.test(t)}function Ye(t,e,i){if(t.variableList!==null||t.hasVariableRefs)for(let r=i.length;r--;){let s=i[r],a=e[s];a&&(e[s]=Us(t,a))}}function Us(t,e){if(t.variableList!==null||t.hasVariableRefs){let i=t.variableList;return e.replace(Xr,(r)=>{let s=r.substring(2,r.length-1),a=i==null?void 0:i[s];return a===void 0?(t.playlistParsingError||(t.playlistParsingError=new Error(`Missing preceding EXT-X-DEFINE tag for Variable Reference: "${s}"`)),r):a})}return e}function za(t,e,i){let r,s,a=t.variableList;if(a||(t.variableList=a={}),"QUERYPARAM"in e){r=e.QUERYPARAM;try{let l=new self.URL(i).searchParams;if(!l.has(r))throw new Error(`"${r}" does not match any query parameter in URI: "${i}"`);s=l.get(r)}catch(l){t.playlistParsingError||(t.playlistParsingError=new Error("EXT-X-DEFINE QUERYPARAM: "+l.message))}}else r=e.NAME,s=e.VALUE;r in a?t.playlistParsingError||(t.playlistParsingError=new Error(`EXT-X-DEFINE duplicate Variable Name declarations: "${r}"`)):a[r]=s||""}function zi(t,e,i){let r=e.IMPORT;if(i&&r in i){let s=t.variableList;s||(t.variableList=s={}),s[r]=i[r]}else t.playlistParsingError||(t.playlistParsingError=new Error(`EXT-X-DEFINE IMPORT attribute not found in Multivariant Playlist: "${r}"`))}function Ni(t=!0){if(typeof self=="undefined")return;return(t||!self.MediaSource)&&self.ManagedMediaSource||self.MediaSource||self.WebKitMediaSource}let Cn={audio:{a3ds:1,"ac-3":0.95,"ac-4":1,alac:0.9,alaw:1,dra1:1,"dts+":1,"dts-":1,dtsc:1,dtse:1,dtsh:1,"ec-3":0.9,enca:1,fLaC:0.9,flac:0.9,FLAC:0.9,g719:1,g726:1,m4ae:1,mha1:1,mha2:1,mhm1:1,mhm2:1,mlpa:1,mp4a:1,"raw ":1,Opus:1,opus:1,samr:1,sawb:1,sawp:1,sevc:1,sqcp:1,ssmv:1,twos:1,ulaw:1},video:{avc1:1,avc2:1,avc3:1,avc4:1,avcp:1,av01:0.8,drac:1,dva1:1,dvav:1,dvh1:0.7,dvhe:0.7,encv:1,hev1:0.75,hvc1:0.75,mjp2:1,mp4v:1,mvc1:1,mvc2:1,mvc3:1,mvc4:1,resv:1,rv60:1,s263:1,svc1:1,svc2:1,"vc-1":1,vp08:1,vp09:0.9},text:{stpp:1,wvtt:1}};function Dn(t,e,i=!0){return!t.split(",").some((r)=>!mi(r,e,i))}function mi(t,e,i=!0){var r;let s=Ni(i);return(r=s==null?void 0:s.isTypeSupported(wr(t,e)))!=null&&r}function wr(t,e){return`${e}/mp4;codecs="${t}"`}function Ee(t){if(t){let e=t.substring(0,4);return Cn.video[e]}return 2}function Jr(t){return t.split(",").reduce((e,i)=>{let r=Cn.video[i];return r?(2*r+e)/(e?3:2):(Cn.audio[i]+e)/(e?2:1)},0)}let lr={},qa=/flac|opus/i;function Qr(t,e=!0){return t.replace(qa,(i)=>function(r,s=!0){if(lr[r])return lr[r];let a={flac:["flac","fLaC","FLAC"],opus:["opus","Opus"]}[r];for(let l=0;l<a.length;l++)if(mi(a[l],"audio",s))return lr[r]=a[l],a[l];return r}(i.toLowerCase(),e))}function Xa(t,e){return t&&t!=="mp4a"?t:e?e.split(",")[0]:e}let Ja=/#EXT-X-STREAM-INF:([^\r\n]*)(?:[\r\n](?:#[^\r\n]*)?)*([^\r\n]+)|#EXT-X-(SESSION-DATA|SESSION-KEY|DEFINE|CONTENT-STEERING|START):([^\r\n]*)[\r\n]+/g,Qa=/#EXT-X-MEDIA:(.*)/g,wl=/^#EXT(?:INF|-X-TARGETDURATION):/m,Bs=new RegExp([/#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source,/(?!#) *(\S[\S ]*)/.source,/#EXT-X-BYTERANGE:*(.+)/.source,/#EXT-X-PROGRAM-DATE-TIME:(.+)/.source,/#.*/.source].join("|"),"g"),Za=new RegExp([/#(EXTM3U)/.source,/#EXT-X-(DATERANGE|DEFINE|KEY|MAP|PART|PART-INF|PLAYLIST-TYPE|PRELOAD-HINT|RENDITION-REPORT|SERVER-CONTROL|SKIP|START):(.+)/.source,/#EXT-X-(BITRATE|DISCONTINUITY-SEQUENCE|MEDIA-SEQUENCE|TARGETDURATION|VERSION): *(\d+)/.source,/#EXT-X-(DISCONTINUITY|ENDLIST|GAP|INDEPENDENT-SEGMENTS)/.source,/(#)([^:]*):(.*)/.source,/(#)(.*)(?:.*)\r?\n?/.source].join("|"));class gi{static findGroup(t,e){for(let i=0;i<t.length;i++){let r=t[i];if(r.id===e)return r}}static resolve(t,e){return h.buildAbsoluteURL(e,t,{alwaysNormalize:!0})}static isMediaPlaylist(t){return wl.test(t)}static parseMasterPlaylist(t,e){let i={contentSteering:null,levels:[],playlistParsingError:null,sessionData:null,sessionKeys:null,startTimeOffset:null,variableList:null,hasVariableRefs:Mi(t)},r=[],s;for(Ja.lastIndex=0;(s=Ja.exec(t))!=null;)if(s[1]){var a;let c=new j(s[1]);Ye(i,c,["CODECS","SUPPLEMENTAL-CODECS","ALLOWED-CPC","PATHWAY-ID","STABLE-VARIANT-ID","AUDIO","VIDEO","SUBTITLES","CLOSED-CAPTIONS","NAME"]);let u=Us(i,s[2]),d={attrs:c,bitrate:c.decimalInteger("BANDWIDTH")||c.decimalInteger("AVERAGE-BANDWIDTH"),name:c.NAME,url:gi.resolve(u,e)},m=c.decimalResolution("RESOLUTION");m&&(d.width=m.width,d.height=m.height),Si(c.CODECS,d),(a=d.unknownCodecs)!=null&&a.length||r.push(d),i.levels.push(d)}else if(s[3]){let c=s[3],u=s[4];switch(c){case"SESSION-DATA":{let d=new j(u);Ye(i,d,["DATA-ID","LANGUAGE","VALUE","URI"]);let m=d["DATA-ID"];m&&(i.sessionData===null&&(i.sessionData={}),i.sessionData[m]=d);break}case"SESSION-KEY":{let d=In(u,e,i);d.encrypted&&d.isSupported()?(i.sessionKeys===null&&(i.sessionKeys=[]),i.sessionKeys.push(d)):I.warn(`[Keys] Ignoring invalid EXT-X-SESSION-KEY tag: "${u}"`);break}case"DEFINE":{let d=new j(u);Ye(i,d,["NAME","VALUE","QUERYPARAM"]),za(i,d,e)}break;case"CONTENT-STEERING":{let d=new j(u);Ye(i,d,["SERVER-URI","PATHWAY-ID"]),i.contentSteering={uri:gi.resolve(d["SERVER-URI"],e),pathwayId:d["PATHWAY-ID"]||"."};break}case"START":i.startTimeOffset=On(u)}}let l=r.length>0&&r.length<i.levels.length;return i.levels=l?r:i.levels,i.levels.length===0&&(i.playlistParsingError=new Error("no levels found in manifest")),i}static parseMasterPlaylistMedia(t,e,i){let r,s={},a=i.levels,l={AUDIO:a.map((u)=>({id:u.attrs.AUDIO,audioCodec:u.audioCodec})),SUBTITLES:a.map((u)=>({id:u.attrs.SUBTITLES,textCodec:u.textCodec})),"CLOSED-CAPTIONS":[]},c=0;for(Qa.lastIndex=0;(r=Qa.exec(t))!==null;){let u=new j(r[1]),d=u.TYPE;if(d){let m=l[d],y=s[d]||[];s[d]=y,Ye(i,u,["URI","GROUP-ID","LANGUAGE","ASSOC-LANGUAGE","STABLE-RENDITION-ID","NAME","INSTREAM-ID","CHARACTERISTICS","CHANNELS"]);let S=u.LANGUAGE,T=u["ASSOC-LANGUAGE"],w=u.CHANNELS,D=u.CHARACTERISTICS,k=u["INSTREAM-ID"],N={attrs:u,bitrate:0,id:c++,groupId:u["GROUP-ID"]||"",name:u.NAME||S||"",type:d,default:u.bool("DEFAULT"),autoselect:u.bool("AUTOSELECT"),forced:u.bool("FORCED"),lang:S,url:u.URI?gi.resolve(u.URI,e):""};if(T&&(N.assocLang=T),w&&(N.channels=w),D&&(N.characteristics=D),k&&(N.instreamId=k),m!=null&&m.length){let x=gi.findGroup(m,N.groupId)||m[0];to(N,x,"audioCodec"),to(N,x,"textCodec")}y.push(N)}}return s}static parseLevelPlaylist(t,e,i,r,s,a){let l=new dt(e),c=l.fragments,u,d,m,y=null,S=0,T=0,w=0,D=0,k=null,N=new zt(r,e),x=-1,G=!1,Y=null;for(Bs.lastIndex=0,l.m3u8=t,l.hasVariableRefs=Mi(t);(u=Bs.exec(t))!==null;){G&&(G=!1,N=new zt(r,e),N.start=w,N.sn=S,N.cc=D,N.level=i,y&&(N.initSegment=y,N.rawProgramDateTime=y.rawProgramDateTime,y.rawProgramDateTime=null,Y&&(N.setByteRange(Y),Y=null)));let ft=u[1];if(ft){N.duration=parseFloat(ft);let Z=(" "+u[2]).slice(1);N.title=Z||null,N.tagList.push(Z?["INF",ft,Z]:["INF",ft])}else if(u[3]){if(L(N.duration)){N.start=w,m&&$s(N,m,l),N.sn=S,N.level=i,N.cc=D,c.push(N);let Z=(" "+u[3]).slice(1);N.relurl=Us(l,Z),Mn(N,k),k=N,w+=N.duration,S++,T=0,G=!0}}else if(u[4]){let Z=(" "+u[4]).slice(1);k?N.setByteRange(Z,k):N.setByteRange(Z)}else if(u[5])N.rawProgramDateTime=(" "+u[5]).slice(1),N.tagList.push(["PROGRAM-DATE-TIME",N.rawProgramDateTime]),x===-1&&(x=c.length);else{if(u=u[0].match(Za),!u){I.warn("No matches on slow regex match for level playlist!");continue}for(d=1;d<u.length&&u[d]===void 0;d++);let Z=(" "+u[d]).slice(1),Q=(" "+u[d+1]).slice(1),Dt=u[d+2]?(" "+u[d+2]).slice(1):"";switch(Z){case"PLAYLIST-TYPE":l.type=Q.toUpperCase();break;case"MEDIA-SEQUENCE":S=l.startSN=parseInt(Q);break;case"SKIP":{let mt=new j(Q);Ye(l,mt,["RECENTLY-REMOVED-DATERANGES"]);let Rt=mt.decimalInteger("SKIPPED-SEGMENTS");if(L(Rt)){l.skippedSegments=Rt;for(let Mt=Rt;Mt--;)c.unshift(null);S+=Rt}let Ot=mt.enumeratedString("RECENTLY-REMOVED-DATERANGES");Ot&&(l.recentlyRemovedDateranges=Ot.split("\t"));break}case"TARGETDURATION":l.targetduration=Math.max(parseInt(Q),1);break;case"VERSION":l.version=parseInt(Q);break;case"INDEPENDENT-SEGMENTS":case"EXTM3U":break;case"ENDLIST":l.live=!1;break;case"#":(Q||Dt)&&N.tagList.push(Dt?[Q,Dt]:[Q]);break;case"DISCONTINUITY":D++,N.tagList.push(["DIS"]);break;case"GAP":N.gap=!0,N.tagList.push([Z]);break;case"BITRATE":N.tagList.push([Z,Q]);break;case"DATERANGE":{let mt=new j(Q);Ye(l,mt,["ID","CLASS","START-DATE","END-DATE","SCTE35-CMD","SCTE35-OUT","SCTE35-IN"]),Ye(l,mt,mt.clientAttrs);let Rt=new ct(mt,l.dateRanges[mt.ID]);Rt.isValid||l.skippedSegments?l.dateRanges[Rt.id]=Rt:I.warn(`Ignoring invalid DATERANGE tag: "${Q}"`),N.tagList.push(["EXT-X-DATERANGE",Q]);break}case"DEFINE":{let mt=new j(Q);Ye(l,mt,["NAME","VALUE","IMPORT","QUERYPARAM"]),"IMPORT"in mt?zi(l,mt,a):za(l,mt,e)}break;case"DISCONTINUITY-SEQUENCE":D=parseInt(Q);break;case"KEY":{let mt=In(Q,e,l);if(mt.isSupported()){if(mt.method==="NONE"){m=void 0;break}m||(m={}),m[mt.keyFormat]&&(m=A({},m)),m[mt.keyFormat]=mt}else I.warn(`[Keys] Ignoring invalid EXT-X-KEY tag: "${Q}"`);break}case"START":l.startTimeOffset=On(Q);break;case"MAP":{let mt=new j(Q);if(Ye(l,mt,["BYTERANGE","URI"]),N.duration){let Rt=new zt(r,e);ai(Rt,mt,i,m),y=Rt,N.initSegment=y,y.rawProgramDateTime&&!N.rawProgramDateTime&&(N.rawProgramDateTime=y.rawProgramDateTime)}else{let Rt=N.byteRangeEndOffset;if(Rt){let Ot=N.byteRangeStartOffset;Y=`${Rt-Ot}@${Ot}`}else Y=null;ai(N,mt,i,m),y=N,G=!0}break}case"SERVER-CONTROL":{let mt=new j(Q);l.canBlockReload=mt.bool("CAN-BLOCK-RELOAD"),l.canSkipUntil=mt.optionalFloat("CAN-SKIP-UNTIL",0),l.canSkipDateRanges=l.canSkipUntil>0&&mt.bool("CAN-SKIP-DATERANGES"),l.partHoldBack=mt.optionalFloat("PART-HOLD-BACK",0),l.holdBack=mt.optionalFloat("HOLD-BACK",0);break}case"PART-INF":{let mt=new j(Q);l.partTarget=mt.decimalFloatingPoint("PART-TARGET");break}case"PART":{let mt=l.partList;mt||(mt=l.partList=[]);let Rt=T>0?mt[mt.length-1]:void 0,Ot=T++,Mt=new j(Q);Ye(l,Mt,["BYTERANGE","URI"]);let ot=new nt(Mt,N,e,Ot,Rt);mt.push(ot),N.duration+=ot.duration;break}case"PRELOAD-HINT":{let mt=new j(Q);Ye(l,mt,["URI"]),l.preloadHint=mt;break}case"RENDITION-REPORT":{let mt=new j(Q);Ye(l,mt,["URI"]),l.renditionReports=l.renditionReports||[],l.renditionReports.push(mt);break}default:I.warn("line parsed but not handled: "+u)}}}k&&!k.relurl?(c.pop(),w-=k.duration,l.partList&&(l.fragmentHint=k)):l.partList&&(Mn(N,k),N.cc=D,l.fragmentHint=N,m&&$s(N,m,l));let rt=c.length,J=c[0],ut=c[rt-1];if(w+=l.skippedSegments*l.targetduration,w>0&&rt&&ut){l.averagetargetduration=w/rt;let ft=ut.sn;l.endSN=ft!=="initSegment"?ft:0,l.live||(ut.endList=!0),J&&(l.startCC=J.cc)}else l.endSN=0,l.startCC=0;return l.fragmentHint&&(w+=l.fragmentHint.duration),l.totalduration=w,l.endCC=D,x>0&&function(ft,Z){let Q=ft[Z];for(let Dt=Z;Dt--;){let mt=ft[Dt];if(!mt)return;mt.programDateTime=Q.programDateTime-1000*mt.duration,Q=mt}}(c,x),l}}function In(t,e,i){var r,s;let a=new j(t);Ye(i,a,["KEYFORMAT","KEYFORMATVERSIONS","URI","IV","URI"]);let l=(r=a.METHOD)!=null?r:"",c=a.URI,u=a.hexadecimalInteger("IV"),d=a.KEYFORMATVERSIONS,m=(s=a.KEYFORMAT)!=null?s:"identity";c&&a.IV&&!u&&I.error("Invalid IV: "+a.IV);let y=c?gi.resolve(c,e):"",S=(d||"1").split("/").map(Number).filter(Number.isFinite);return new fi(l,y,m,S,u)}function On(t){let e=new j(t).decimalFloatingPoint("TIME-OFFSET");return L(e)?e:null}function Si(t,e){let i=(t||"").split(/[ ,]+/).filter((r)=>r);["video","audio","text"].forEach((r)=>{let s=i.filter((a)=>function(l,c){let u=Cn[c];return!!u&&!!u[l.slice(0,4)]}(a,r));s.length&&(e[r+"Codec"]=s.join(","),i=i.filter((a)=>s.indexOf(a)===-1))}),e.unknownCodecs=i}function to(t,e,i){let r=e[i];r&&(t[i]=r)}function Mn(t,e){t.rawProgramDateTime?t.programDateTime=Date.parse(t.rawProgramDateTime):e!=null&&e.programDateTime&&(t.programDateTime=e.endProgramDateTime),L(t.programDateTime)||(t.programDateTime=null,t.rawProgramDateTime=null)}function ai(t,e,i,r){t.relurl=e.URI,e.BYTERANGE&&t.setByteRange(e.BYTERANGE),t.level=i,t.sn="initSegment",r&&(t.levelkeys=r),t.initSegment=null}function $s(t,e,i){t.levelkeys=e;let{encryptedFragments:r}=i;r.length&&r[r.length-1].levelkeys===e||!Object.keys(e).some((s)=>e[s].isCommonEncryption)||r.push(t)}var qi="manifest",Pi="level",ei="audioTrack",pi="subtitleTrack",ie="main",Ue="audio",bi="subtitle";function Gs(t){let{type:e}=t;switch(e){case ei:return Ue;case pi:return bi;default:return ie}}function Nn(t,e){let i=t.url;return i!==void 0&&i.indexOf("data:")!==0||(i=e.url),i}class eo{constructor(t){this.hls=void 0,this.loaders=Object.create(null),this.variableList=null,this.hls=t,this.registerListeners()}startLoad(t){}stopLoad(){this.destroyInternalLoaders()}registerListeners(){let{hls:t}=this;t.on(b.MANIFEST_LOADING,this.onManifestLoading,this),t.on(b.LEVEL_LOADING,this.onLevelLoading,this),t.on(b.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),t.on(b.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this)}unregisterListeners(){let{hls:t}=this;t.off(b.MANIFEST_LOADING,this.onManifestLoading,this),t.off(b.LEVEL_LOADING,this.onLevelLoading,this),t.off(b.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),t.off(b.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this)}createInternalLoader(t){let e=this.hls.config,i=e.pLoader,r=e.loader,s=new(i||r)(e);return this.loaders[t.type]=s,s}getInternalLoader(t){return this.loaders[t.type]}resetInternalLoader(t){this.loaders[t]&&delete this.loaders[t]}destroyInternalLoaders(){for(let t in this.loaders){let e=this.loaders[t];e&&e.destroy(),this.resetInternalLoader(t)}}destroy(){this.variableList=null,this.unregisterListeners(),this.destroyInternalLoaders()}onManifestLoading(t,e){let{url:i}=e;this.variableList=null,this.load({id:null,level:0,responseType:"text",type:qi,url:i,deliveryDirectives:null})}onLevelLoading(t,e){let{id:i,level:r,pathwayId:s,url:a,deliveryDirectives:l}=e;this.load({id:i,level:r,pathwayId:s,responseType:"text",type:Pi,url:a,deliveryDirectives:l})}onAudioTrackLoading(t,e){let{id:i,groupId:r,url:s,deliveryDirectives:a}=e;this.load({id:i,groupId:r,level:null,responseType:"text",type:ei,url:s,deliveryDirectives:a})}onSubtitleTrackLoading(t,e){let{id:i,groupId:r,url:s,deliveryDirectives:a}=e;this.load({id:i,groupId:r,level:null,responseType:"text",type:pi,url:s,deliveryDirectives:a})}load(t){var e;let i=this.hls.config,r,s=this.getInternalLoader(t);if(s){let u=s.context;if(u&&u.url===t.url&&u.level===t.level)return void I.trace("[playlist-loader]: playlist request ongoing");I.log("[playlist-loader]: aborting previous loader for type: "+t.type),s.abort()}if(r=t.type===qi?i.manifestLoadPolicy.default:A({},i.playlistLoadPolicy.default,{timeoutRetry:null,errorRetry:null}),s=this.createInternalLoader(t),L((e=t.deliveryDirectives)==null?void 0:e.part)){let u;if(t.type===Pi&&t.level!==null?u=this.hls.levels[t.level].details:t.type===ei&&t.id!==null?u=this.hls.audioTracks[t.id].details:t.type===pi&&t.id!==null&&(u=this.hls.subtitleTracks[t.id].details),u){let{partTarget:d,targetduration:m}=u;if(d&&m){let y=1000*Math.max(3*d,0.8*m);r=A({},r,{maxTimeToFirstByteMs:Math.min(y,r.maxTimeToFirstByteMs),maxLoadTimeMs:Math.min(y,r.maxTimeToFirstByteMs)})}}}let a=r.errorRetry||r.timeoutRetry||{},l={loadPolicy:r,timeout:r.maxLoadTimeMs,maxRetry:a.maxNumRetry||0,retryDelay:a.retryDelayMs||0,maxRetryDelay:a.maxRetryDelayMs||0},c={onSuccess:(u,d,m,y)=>{let S=this.getInternalLoader(m);this.resetInternalLoader(m.type);let T=u.data;T.indexOf("#EXTM3U")===0?(d.parsing.start=performance.now(),gi.isMediaPlaylist(T)?this.handleTrackOrLevelPlaylist(u,d,m,y||null,S):this.handleMasterPlaylist(u,d,m,y)):this.handleManifestParsingError(u,m,new Error("no EXTM3U delimiter"),y||null,d)},onError:(u,d,m,y)=>{this.handleNetworkError(d,m,!1,u,y)},onTimeout:(u,d,m)=>{this.handleNetworkError(d,m,!0,void 0,u)}};s.load(t,l,c)}handleMasterPlaylist(t,e,i,r){let s=this.hls,a=t.data,l=Nn(t,i),c=gi.parseMasterPlaylist(a,l);if(c.playlistParsingError)return void this.handleManifestParsingError(t,i,c.playlistParsingError,r,e);let{contentSteering:u,levels:d,sessionData:m,sessionKeys:y,startTimeOffset:S,variableList:T}=c;this.variableList=T;let{AUDIO:w=[],SUBTITLES:D,"CLOSED-CAPTIONS":k}=gi.parseMasterPlaylistMedia(a,l,c);if(w.length)w.some((N)=>!N.url)||!d[0].audioCodec||d[0].attrs.AUDIO||(I.log("[playlist-loader]: audio codec signaled in quality level, but no embedded audio track signaled, create one"),w.unshift({type:"main",name:"main",groupId:"main",default:!1,autoselect:!1,forced:!1,id:-1,attrs:new j({}),bitrate:0,url:""}));s.trigger(b.MANIFEST_LOADED,{levels:d,audioTracks:w,subtitles:D,captions:k,contentSteering:u,url:l,stats:e,networkDetails:r,sessionData:m,sessionKeys:y,startTimeOffset:S,variableList:T})}handleTrackOrLevelPlaylist(t,e,i,r,s){let a=this.hls,{id:l,level:c,type:u}=i,d=Nn(t,i),m=L(c)?c:L(l)?l:0,y=Gs(i),S=gi.parseLevelPlaylist(t.data,d,m,y,0,this.variableList);if(u===qi){let T={attrs:new j({}),bitrate:0,details:S,name:"",url:d};a.trigger(b.MANIFEST_LOADED,{levels:[T],audioTracks:[],url:d,stats:e,networkDetails:r,sessionData:null,sessionKeys:null,contentSteering:null,startTimeOffset:null,variableList:null})}e.parsing.end=performance.now(),i.levelDetails=S,this.handlePlaylistLoaded(S,t,e,i,r,s)}handleManifestParsingError(t,e,i,r,s){this.hls.trigger(b.ERROR,{type:H.NETWORK_ERROR,details:P.MANIFEST_PARSING_ERROR,fatal:e.type===qi,url:t.url,err:i,error:i,reason:i.message,response:t,context:e,networkDetails:r,stats:s})}handleNetworkError(t,e,i=!1,r,s){let a=`A network ${i?"timeout":"error"+(r?" (status "+r.code+")":"")} occurred while loading ${t.type}`;t.type===Pi?a+=`: ${t.level} id: ${t.id}`:t.type!==ei&&t.type!==pi||(a+=` id: ${t.id} group-id: "${t.groupId}"`);let l=new Error(a);I.warn("[playlist-loader]: "+a);let c=P.UNKNOWN,u=!1,d=this.getInternalLoader(t);switch(t.type){case qi:c=i?P.MANIFEST_LOAD_TIMEOUT:P.MANIFEST_LOAD_ERROR,u=!0;break;case Pi:c=i?P.LEVEL_LOAD_TIMEOUT:P.LEVEL_LOAD_ERROR,u=!1;break;case ei:c=i?P.AUDIO_TRACK_LOAD_TIMEOUT:P.AUDIO_TRACK_LOAD_ERROR,u=!1;break;case pi:c=i?P.SUBTITLE_TRACK_LOAD_TIMEOUT:P.SUBTITLE_LOAD_ERROR,u=!1}d&&this.resetInternalLoader(t.type);let m={type:H.NETWORK_ERROR,details:c,fatal:u,url:t.url,loader:d,context:t,error:l,networkDetails:e,stats:s};if(r){let y=(e==null?void 0:e.url)||t.url;m.response=E({url:y,data:void 0},r)}this.hls.trigger(b.ERROR,m)}handlePlaylistLoaded(t,e,i,r,s,a){let l=this.hls,{type:c,level:u,id:d,groupId:m,deliveryDirectives:y}=r,S=Nn(e,r),T=Gs(r),w=typeof r.level=="number"&&T===ie?u:void 0;if(!t.fragments.length){let k=new Error("No Segments found in Playlist");return void l.trigger(b.ERROR,{type:H.NETWORK_ERROR,details:P.LEVEL_EMPTY_ERROR,fatal:!1,url:S,error:k,reason:k.message,response:e,context:r,level:w,parent:T,networkDetails:s,stats:i})}t.targetduration||(t.playlistParsingError=new Error("Missing Target Duration"));let D=t.playlistParsingError;if(D)l.trigger(b.ERROR,{type:H.NETWORK_ERROR,details:P.LEVEL_PARSING_ERROR,fatal:!1,url:S,error:D,reason:D.message,response:e,context:r,level:w,parent:T,networkDetails:s,stats:i});else switch(t.live&&a&&(a.getCacheAge&&(t.ageHeader=a.getCacheAge()||0),a.getCacheAge&&!isNaN(t.ageHeader)||(t.ageHeader=0)),c){case qi:case Pi:l.trigger(b.LEVEL_LOADED,{details:t,level:w||0,id:d||0,stats:i,networkDetails:s,deliveryDirectives:y});break;case ei:l.trigger(b.AUDIO_TRACK_LOADED,{details:t,id:d||0,groupId:m||"",stats:i,networkDetails:s,deliveryDirectives:y});break;case pi:l.trigger(b.SUBTITLE_TRACK_LOADED,{details:t,id:d||0,groupId:m||"",stats:i,networkDetails:s,deliveryDirectives:y})}}}function Hs(t,e){let i;try{i=new Event("addtrack")}catch(r){i=document.createEvent("Event"),i.initEvent("addtrack",!1,!1)}i.track=t,e.dispatchEvent(i)}function io(t,e){let i=t.mode;if(i==="disabled"&&(t.mode="hidden"),t.cues&&!t.cues.getCueById(e.id))try{if(t.addCue(e),!t.cues.getCueById(e.id))throw new Error("addCue is failed for: "+e)}catch(r){I.debug("[texttrack-utils]: "+r);try{let s=new self.TextTrackCue(e.startTime,e.endTime,e.text);s.id=e.id,t.addCue(s)}catch(s){I.debug("[texttrack-utils]: Legacy TextTrackCue fallback failed: "+s)}}i==="disabled"&&(t.mode=i)}function cr(t){let e=t.mode;if(e==="disabled"&&(t.mode="hidden"),t.cues)for(let i=t.cues.length;i--;)t.removeCue(t.cues[i]);e==="disabled"&&(t.mode=e)}function Pn(t,e,i,r){let s=t.mode;if(s==="disabled"&&(t.mode="hidden"),t.cues&&t.cues.length>0){let a=function(l,c,u){let d=[],m=function(y,S){if(S<y[0].startTime)return 0;let T=y.length-1;if(S>y[T].endTime)return-1;let w=0,D=T;for(;w<=D;){let k=Math.floor((D+w)/2);if(S<y[k].startTime)D=k-1;else{if(!(S>y[k].startTime&&w<T))return k;w=k+1}}return y[w].startTime-S<S-y[D].startTime?w:D}(l,c);if(m>-1)for(let y=m,S=l.length;y<S;y++){let T=l[y];if(T.startTime>=c&&T.endTime<=u)d.push(T);else if(T.startTime>u)return d}return d}(t.cues,e,i);for(let l=0;l<a.length;l++)r&&!r(a[l])||t.removeCue(a[l])}s==="disabled"&&(t.mode=s)}function xn(t){let e=[];for(let i=0;i<t.length;i++){let r=t[i];r.kind!=="subtitles"&&r.kind!=="captions"||!r.label||e.push(t[i])}return e}var Zr="org.id3",Rl="com.apple.quicktime.HLS",Rr="https://aomedia.org/emsg/ID3";function Vs(){if(typeof self!="undefined")return self.VTTCue||self.TextTrackCue}function Ks(t,e,i,r,s){let a=new t(e,i,"");try{a.value=r,s&&(a.type=s)}catch(l){a=new t(e,i,JSON.stringify(s?E({type:s},r):r))}return a}let Fn=(()=>{let t=Vs();try{t&&new t(0,Number.POSITIVE_INFINITY,"")}catch(e){return Number.MAX_VALUE}return Number.POSITIVE_INFINITY})();function tn(t,e){return t.getTime()/1000-e}class ro{constructor(t){this.hls=void 0,this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=t,this._registerListeners()}destroy(){this._unregisterListeners(),this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=null}_registerListeners(){let{hls:t}=this;t.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),t.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),t.on(b.MANIFEST_LOADING,this.onManifestLoading,this),t.on(b.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),t.on(b.BUFFER_FLUSHING,this.onBufferFlushing,this),t.on(b.LEVEL_UPDATED,this.onLevelUpdated,this)}_unregisterListeners(){let{hls:t}=this;t.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),t.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),t.off(b.MANIFEST_LOADING,this.onManifestLoading,this),t.off(b.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),t.off(b.BUFFER_FLUSHING,this.onBufferFlushing,this),t.off(b.LEVEL_UPDATED,this.onLevelUpdated,this)}onMediaAttached(t,e){this.media=e.media}onMediaDetaching(){this.id3Track&&(cr(this.id3Track),this.id3Track=null,this.media=null,this.dateRangeCuesAppended={})}onManifestLoading(){this.dateRangeCuesAppended={}}createTrack(t){let e=this.getID3Track(t.textTracks);return e.mode="hidden",e}getID3Track(t){if(this.media){for(let e=0;e<t.length;e++){let i=t[e];if(i.kind==="metadata"&&i.label==="id3")return Hs(i,this.media),i}return this.media.addTextTrack("metadata","id3")}}onFragParsingMetadata(t,e){if(!this.media)return;let{hls:{config:{enableEmsgMetadataCues:i,enableID3MetadataCues:r}}}=this;if(!i&&!r)return;let{samples:s}=e;this.id3Track||(this.id3Track=this.createTrack(this.media));let a=Vs();if(a)for(let l=0;l<s.length;l++){let c=s[l].type;if(c===Rr&&!i||!r)continue;let u=_t(s[l].data);if(u){let d=s[l].pts,m=d+s[l].duration;m>Fn&&(m=Fn),m-d<=0&&(m=d+0.25);for(let y=0;y<u.length;y++){let S=u[y];if(!xt(S)){this.updateId3CueEnds(d,c);let T=Ks(a,d,m,S,c);T&&this.id3Track.addCue(T)}}}}}updateId3CueEnds(t,e){var i;let r=(i=this.id3Track)==null?void 0:i.cues;if(r)for(let s=r.length;s--;){let a=r[s];a.type===e&&a.startTime<t&&a.endTime===Fn&&(a.endTime=t)}}onBufferFlushing(t,{startOffset:e,endOffset:i,type:r}){let{id3Track:s,hls:a}=this;if(!a)return;let{config:{enableEmsgMetadataCues:l,enableID3MetadataCues:c}}=a;if(s&&(l||c)){let u;u=r==="audio"?(d)=>d.type===Zr&&c:r==="video"?(d)=>d.type===Rr&&l:(d)=>d.type===Zr&&c||d.type===Rr&&l,Pn(s,e,i,u)}}onLevelUpdated(t,{details:e}){if(!this.media||!e.hasProgramDateTime||!this.hls.config.enableDateRangeMetadataCues)return;let{dateRangeCuesAppended:i,id3Track:r}=this,{dateRanges:s}=e,a=Object.keys(s);if(r){let y=Object.keys(i).filter((S)=>!a.includes(S));for(let S=y.length;S--;){let T=y[S];Object.keys(i[T].cues).forEach((w)=>{r.removeCue(i[T].cues[w])}),delete i[T]}}let l=e.fragments[e.fragments.length-1];if(a.length===0||!L(l==null?void 0:l.programDateTime))return;this.id3Track||(this.id3Track=this.createTrack(this.media));let c=l.programDateTime/1000-l.start,u=Vs();for(let y=0;y<a.length;y++){let S=a[y],T=s[S],w=tn(T.startDate,c),D=i[S],k=(D==null?void 0:D.cues)||{},N=(D==null?void 0:D.durationKnown)||!1,x=Fn,G=T.endDate;if(G)x=tn(G,c),N=!0;else if(T.endOnNext&&!N){let rt=a.reduce((J,ut)=>{if(ut!==T.id){let ft=s[ut];if(ft.class===T.class&&ft.startDate>T.startDate&&(!J||T.startDate<J.startDate))return ft}return J},null);rt&&(x=tn(rt.startDate,c),N=!0)}let Y=Object.keys(T.attr);for(let rt=0;rt<Y.length;rt++){let J=Y[rt];if((m=J)==="ID"||m==="CLASS"||m==="START-DATE"||m==="DURATION"||m==="END-DATE"||m==="END-ON-NEXT")continue;let ut=k[J];if(ut)N&&!D.durationKnown&&(ut.endTime=x);else if(u){let ft=T.attr[J];tt(J)&&(d=ft,ft=Uint8Array.from(d.replace(/^0x/,"").replace(/([\da-fA-F]{2}) ?/g,"0x$1 ").replace(/ +$/,"").split(" ")).buffer);let Z=Ks(u,w,x,{key:J,data:ft},Rl);Z&&(Z.id=S,this.id3Track.addCue(Z),k[J]=Z)}}i[S]={cues:k,dateRange:T,durationKnown:N}}var d,m}}class Ws{constructor(t){this.hls=void 0,this.config=void 0,this.media=null,this.levelDetails=null,this.currentTime=0,this.stallCount=0,this._latency=null,this.timeupdateHandler=()=>this.timeupdate(),this.hls=t,this.config=t.config,this.registerListeners()}get latency(){return this._latency||0}get maxLatency(){let{config:t,levelDetails:e}=this;return t.liveMaxLatencyDuration!==void 0?t.liveMaxLatencyDuration:e?t.liveMaxLatencyDurationCount*e.targetduration:0}get targetLatency(){let{levelDetails:t}=this;if(t===null)return null;let{holdBack:e,partHoldBack:i,targetduration:r}=t,{liveSyncDuration:s,liveSyncDurationCount:a,lowLatencyMode:l}=this.config,c=this.hls.userConfig,u=l&&i||e;(c.liveSyncDuration||c.liveSyncDurationCount||u===0)&&(u=s!==void 0?s:a*r);let d=r;return u+Math.min(1*this.stallCount,d)}get liveSyncPosition(){let t=this.estimateLiveEdge(),e=this.targetLatency,i=this.levelDetails;if(t===null||e===null||i===null)return null;let r=i.edge,s=t-e-this.edgeStalled,a=r-i.totalduration,l=r-(this.config.lowLatencyMode&&i.partTarget||i.targetduration);return Math.min(Math.max(a,s),l)}get drift(){let{levelDetails:t}=this;return t===null?1:t.drift}get edgeStalled(){let{levelDetails:t}=this;if(t===null)return 0;let e=3*(this.config.lowLatencyMode&&t.partTarget||t.targetduration);return Math.max(t.age-e,0)}get forwardBufferLength(){let{media:t,levelDetails:e}=this;if(!t||!e)return 0;let i=t.buffered.length;return(i?t.buffered.end(i-1):e.edge)-this.currentTime}destroy(){this.unregisterListeners(),this.onMediaDetaching(),this.levelDetails=null,this.hls=this.timeupdateHandler=null}registerListeners(){this.hls.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),this.hls.on(b.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.on(b.LEVEL_UPDATED,this.onLevelUpdated,this),this.hls.on(b.ERROR,this.onError,this)}unregisterListeners(){this.hls.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),this.hls.off(b.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.off(b.LEVEL_UPDATED,this.onLevelUpdated,this),this.hls.off(b.ERROR,this.onError,this)}onMediaAttached(t,e){this.media=e.media,this.media.addEventListener("timeupdate",this.timeupdateHandler)}onMediaDetaching(){this.media&&(this.media.removeEventListener("timeupdate",this.timeupdateHandler),this.media=null)}onManifestLoading(){this.levelDetails=null,this._latency=null,this.stallCount=0}onLevelUpdated(t,{details:e}){this.levelDetails=e,e.advanced&&this.timeupdate(),!e.live&&this.media&&this.media.removeEventListener("timeupdate",this.timeupdateHandler)}onError(t,e){var i;e.details===P.BUFFER_STALLED_ERROR&&(this.stallCount++,(i=this.levelDetails)!=null&&i.live&&I.warn("[playback-rate-controller]: Stall detected, adjusting target latency"))}timeupdate(){let{media:t,levelDetails:e}=this;if(!t||!e)return;this.currentTime=t.currentTime;let i=this.computeLatency();if(i===null)return;this._latency=i;let{lowLatencyMode:r,maxLiveSyncPlaybackRate:s}=this.config;if(!r||s===1||!e.live)return;let a=this.targetLatency;if(a===null)return;let l=i-a;if(l<Math.min(this.maxLatency,a+e.targetduration)&&l>0.05&&this.forwardBufferLength>1){let c=Math.min(2,Math.max(1,s)),u=Math.round(2/(1+Math.exp(-0.75*l-this.edgeStalled))*20)/20;t.playbackRate=Math.min(c,Math.max(1,u))}else t.playbackRate!==1&&t.playbackRate!==0&&(t.playbackRate=1)}estimateLiveEdge(){let{levelDetails:t}=this;return t===null?null:t.edge+t.age}computeLatency(){let t=this.estimateLiveEdge();return t===null?null:t-this.currentTime}}let Ys=["NONE","TYPE-0","TYPE-1",null],Un=["SDR","PQ","HLG"];var js="",no="YES",kl="v2";function zs(t){let{canSkipUntil:e,canSkipDateRanges:i,age:r}=t;return e&&r<e/2?i?kl:no:js}class Ti{constructor(t,e,i){this.msn=void 0,this.part=void 0,this.skip=void 0,this.msn=t,this.part=e,this.skip=i}addDirectives(t){let e=new self.URL(t);return this.msn!==void 0&&e.searchParams.set("_HLS_msn",this.msn.toString()),this.part!==void 0&&e.searchParams.set("_HLS_part",this.part.toString()),this.skip&&e.searchParams.set("_HLS_skip",this.skip),e.href}}class ur{constructor(t){this._attrs=void 0,this.audioCodec=void 0,this.bitrate=void 0,this.codecSet=void 0,this.url=void 0,this.frameRate=void 0,this.height=void 0,this.id=void 0,this.name=void 0,this.videoCodec=void 0,this.width=void 0,this.details=void 0,this.fragmentError=0,this.loadError=0,this.loaded=void 0,this.realBitrate=0,this.supportedPromise=void 0,this.supportedResult=void 0,this._avgBitrate=0,this._audioGroups=void 0,this._subtitleGroups=void 0,this._urlId=0,this.url=[t.url],this._attrs=[t.attrs],this.bitrate=t.bitrate,t.details&&(this.details=t.details),this.id=t.id||0,this.name=t.name,this.width=t.width||0,this.height=t.height||0,this.frameRate=t.attrs.optionalFloat("FRAME-RATE",0),this._avgBitrate=t.attrs.decimalInteger("AVERAGE-BANDWIDTH"),this.audioCodec=t.audioCodec,this.videoCodec=t.videoCodec,this.codecSet=[t.videoCodec,t.audioCodec].filter((e)=>!!e).map((e)=>e.substring(0,4)).join(","),this.addGroupId("audio",t.attrs.AUDIO),this.addGroupId("text",t.attrs.SUBTITLES)}get maxBitrate(){return Math.max(this.realBitrate,this.bitrate)}get averageBitrate(){return this._avgBitrate||this.realBitrate||this.bitrate}get attrs(){return this._attrs[0]}get codecs(){return this.attrs.CODECS||""}get pathwayId(){return this.attrs["PATHWAY-ID"]||"."}get videoRange(){return this.attrs["VIDEO-RANGE"]||"SDR"}get score(){return this.attrs.optionalFloat("SCORE",0)}get uri(){return this.url[0]||""}hasAudioGroup(t){return so(this._audioGroups,t)}hasSubtitleGroup(t){return so(this._subtitleGroups,t)}get audioGroups(){return this._audioGroups}get subtitleGroups(){return this._subtitleGroups}addGroupId(t,e){if(e){if(t==="audio"){let i=this._audioGroups;i||(i=this._audioGroups=[]),i.indexOf(e)===-1&&i.push(e)}else if(t==="text"){let i=this._subtitleGroups;i||(i=this._subtitleGroups=[]),i.indexOf(e)===-1&&i.push(e)}}}get urlId(){return 0}set urlId(t){}get audioGroupIds(){return this.audioGroups?[this.audioGroupId]:void 0}get textGroupIds(){return this.subtitleGroups?[this.textGroupId]:void 0}get audioGroupId(){var t;return(t=this.audioGroups)==null?void 0:t[0]}get textGroupId(){var t;return(t=this.subtitleGroups)==null?void 0:t[0]}addFallback(){}}function so(t,e){return!(!e||!t)&&t.indexOf(e)!==-1}function dr(t,e){let i=e.startPTS;if(L(i)){let r,s=0;e.sn>t.sn?(s=i-t.start,r=t):(s=t.start-i,r=e),r.duration!==s&&(r.duration=s)}else if(e.sn>t.sn)t.cc===e.cc&&t.minEndPTS?e.start=t.start+(t.minEndPTS-t.start):e.start=t.start+t.duration;else e.start=Math.max(t.start-e.duration,0)}function en(t,e,i,r,s,a){r-i<=0&&(I.warn("Fragment should have a positive duration",e),r=i+e.duration,a=s+e.duration);let l=i,c=r,u=e.startPTS,d=e.endPTS;if(L(u)){let D=Math.abs(u-i);L(e.deltaPTS)?e.deltaPTS=Math.max(D,e.deltaPTS):e.deltaPTS=D,l=Math.max(i,u),i=Math.min(i,u),s=Math.min(s,e.startDTS),c=Math.min(r,d),r=Math.max(r,d),a=Math.max(a,e.endDTS)}let m=i-e.start;e.start!==0&&(e.start=i),e.duration=r-e.start,e.startPTS=i,e.maxStartPTS=l,e.startDTS=s,e.endPTS=r,e.minEndPTS=c,e.endDTS=a;let y=e.sn;if(!t||y<t.startSN||y>t.endSN)return 0;let S,T=y-t.startSN,w=t.fragments;for(w[T]=e,S=T;S>0;S--)dr(w[S],w[S-1]);for(S=T;S<w.length-1;S++)dr(w[S],w[S+1]);return t.fragmentHint&&dr(w[w.length-1],t.fragmentHint),t.PTSKnown=t.alignedSliding=!0,m}function Bn(t,e){let i=null,r=t.fragments;for(let u=r.length-1;u>=0;u--){let d=r[u].initSegment;if(d){i=d;break}}t.fragmentHint&&delete t.fragmentHint.endPTS;let s,a=0;if(function(u,d,m){let y=d.skippedSegments,S=Math.max(u.startSN,d.startSN)-d.startSN,T=(u.fragmentHint?1:0)+(y?d.endSN:Math.min(u.endSN,d.endSN))-d.startSN,w=d.startSN-u.startSN,D=d.fragmentHint?d.fragments.concat(d.fragmentHint):d.fragments,k=u.fragmentHint?u.fragments.concat(u.fragmentHint):u.fragments;for(let N=S;N<=T;N++){let x=k[w+N],G=D[N];y&&!G&&N<y&&(G=d.fragments[N]=x),x&&G&&m(x,G)}}(t,e,(u,d)=>{u.relurl&&(a=u.cc-d.cc),L(u.startPTS)&&L(u.endPTS)&&(d.start=d.startPTS=u.startPTS,d.startDTS=u.startDTS,d.maxStartPTS=u.maxStartPTS,d.endPTS=u.endPTS,d.endDTS=u.endDTS,d.minEndPTS=u.minEndPTS,d.duration=u.endPTS-u.startPTS,d.duration&&(s=d),e.PTSKnown=e.alignedSliding=!0),d.elementaryStreams=u.elementaryStreams,d.loader=u.loader,d.stats=u.stats,u.initSegment&&(d.initSegment=u.initSegment,i=u.initSegment)}),i)(e.fragmentHint?e.fragments.concat(e.fragmentHint):e.fragments).forEach((u)=>{var d;!u||u.initSegment&&u.initSegment.relurl!==((d=i)==null?void 0:d.relurl)||(u.initSegment=i)});if(e.skippedSegments)if(e.deltaUpdateFailed=e.fragments.some((u)=>!u),e.deltaUpdateFailed){I.warn("[level-helper] Previous playlist missing segments skipped in delta playlist");for(let u=e.skippedSegments;u--;)e.fragments.shift();e.startSN=e.fragments[0].sn,e.startCC=e.fragments[0].cc}else e.canSkipDateRanges&&(e.dateRanges=function(u,d,m){let y=A({},u);return m&&m.forEach((S)=>{delete y[S]}),Object.keys(d).forEach((S)=>{let T=new ct(d[S].attr,y[S]);T.isValid?y[S]=T:I.warn(`Ignoring invalid Playlist Delta Update DATERANGE tag: "${JSON.stringify(d[S].attr)}"`)}),y}(t.dateRanges,e.dateRanges,e.recentlyRemovedDateranges));let l=e.fragments;if(a){I.warn("discontinuity sliding from playlist, take drift into account");for(let u=0;u<l.length;u++)l[u].cc+=a}e.skippedSegments&&(e.startCC=e.fragments[0].cc),function(u,d,m){if(u&&d){let y=0;for(let S=0,T=u.length;S<=T;S++){let w=u[S],D=d[S+y];w&&D&&w.index===D.index&&w.fragment.sn===D.fragment.sn?m(w,D):y--}}}(t.partList,e.partList,(u,d)=>{d.elementaryStreams=u.elementaryStreams,d.stats=u.stats}),s?en(e,s,s.startPTS,s.endPTS,s.startDTS,s.endDTS):$n(t,e),l.length&&(e.totalduration=e.edge-l[0].start),e.driftStartTime=t.driftStartTime,e.driftStart=t.driftStart;let c=e.advancedDateTime;if(e.advanced&&c){let u=e.edge;e.driftStart||(e.driftStartTime=c,e.driftStart=u),e.driftEndTime=c,e.driftEnd=u}else e.driftEndTime=t.driftEndTime,e.driftEnd=t.driftEnd,e.advancedDateTime=t.advancedDateTime}function $n(t,e){let i=e.startSN+e.skippedSegments-t.startSN,r=t.fragments;i<0||i>=r.length||rn(e,r[i].start)}function rn(t,e){if(e){let i=t.fragments;for(let r=t.skippedSegments;r<i.length;r++)i[r].start+=e;t.fragmentHint&&(t.fragmentHint.start+=e)}}function ao(t,e,i){var r;return t!=null&&t.details?oo((r=t.details)==null?void 0:r.partList,e,i):null}function oo(t,e,i){if(t)for(let r=t.length;r--;){let s=t[r];if(s.index===i&&s.fragment.sn===e)return s}return null}function qs(t){t.forEach((e,i)=>{let{details:r}=e;r!=null&&r.fragments&&r.fragments.forEach((s)=>{s.level=i})})}function Gn(t){switch(t.details){case P.FRAG_LOAD_TIMEOUT:case P.KEY_LOAD_TIMEOUT:case P.LEVEL_LOAD_TIMEOUT:case P.MANIFEST_LOAD_TIMEOUT:return!0}return!1}function lo(t,e){let i=Gn(e);return t.default[(i?"timeout":"error")+"Retry"]}function Xs(t,e){let i=t.backoff==="linear"?1:Math.pow(2,e);return Math.min(i*t.retryDelayMs,t.maxRetryDelayMs)}function co(t){return E(E({},t),{errorRetry:null,timeoutRetry:null})}function kr(t,e,i,r){if(!t)return!1;let s=r==null?void 0:r.code,a=e<t.maxNumRetry&&(function(l){return l===0&&navigator.onLine===!1||!!l&&(l<400||l>499)}(s)||!!i);return t.shouldRetry?t.shouldRetry(t,e,i,r,a):a}let nn=function(t,e){let i=0,r=t.length-1,s=null,a=null;for(;i<=r;){s=(i+r)/2|0,a=t[s];let l=e(a);if(l>0)i=s+1;else{if(!(l<0))return a;r=s-1}}return null};function Cr(t,e,i=0,r=0){let s=null;if(t){s=e[t.sn-e[0].sn+1]||null;let l=t.endDTS-i;l>0&&l<0.0000015&&(i+=0.0000015)}else i===0&&e[0].start===0&&(s=e[0]);if(s&&(!t||t.level===s.level)&&hr(i,r,s)===0)return s;let a=nn(e,hr.bind(null,i,r));return!a||a===t&&s?s:a}function hr(t=0,e=0,i){if(i.start<=t&&i.start+i.duration>t)return 0;let r=Math.min(e,i.duration+(i.deltaPTS?i.deltaPTS:0));return i.start+i.duration-r<=t?1:i.start-r>t&&i.start?-1:0}function je(t,e,i){let r=1000*Math.min(e,i.duration+(i.deltaPTS?i.deltaPTS:0));return(i.endProgramDateTime||0)-r>t}var Js=0,xi=2,sn=3,De=5,fr=0,Qs=1,Zs=2;class _e{constructor(t,e){this.hls=void 0,this.timer=-1,this.requestScheduled=-1,this.canLoad=!1,this.log=void 0,this.warn=void 0,this.log=I.log.bind(I,e+":"),this.warn=I.warn.bind(I,e+":"),this.hls=t}destroy(){this.clearTimer(),this.hls=this.log=this.warn=null}clearTimer(){this.timer!==-1&&(self.clearTimeout(this.timer),this.timer=-1)}startLoad(){this.canLoad=!0,this.requestScheduled=-1,this.loadPlaylist()}stopLoad(){this.canLoad=!1,this.clearTimer()}switchParams(t,e,i){let r=e==null?void 0:e.renditionReports;if(r){let s=-1;for(let a=0;a<r.length;a++){let l=r[a],c;try{c=new self.URL(l.URI,e.url).href}catch(u){I.warn("Could not construct new URL for Rendition Report: "+u),c=l.URI||""}if(c===t){s=a;break}c===t.substring(0,c.length)&&(s=a)}if(s!==-1){let a=r[s],l=parseInt(a["LAST-MSN"])||(e==null?void 0:e.lastPartSn),c=parseInt(a["LAST-PART"])||(e==null?void 0:e.lastPartIndex);if(this.hls.config.lowLatencyMode){let d=Math.min(e.age-e.partTarget,e.targetduration);c>=0&&d>e.partTarget&&(c+=1)}let u=i&&zs(i);return new Ti(l,c>=0?c:void 0,u)}}}loadPlaylist(t){this.requestScheduled===-1&&(this.requestScheduled=self.performance.now())}shouldLoadPlaylist(t){return this.canLoad&&!!t&&!!t.url&&(!t.details||t.details.live)}shouldReloadPlaylist(t){return this.timer===-1&&this.requestScheduled===-1&&this.shouldLoadPlaylist(t)}playlistLoaded(t,e,i){let{details:r,stats:s}=e,a=self.performance.now(),l=s.loading.first?Math.max(0,a-s.loading.first):0;if(r.advancedDateTime=Date.now()-l,r.live||i!=null&&i.live){if(r.reloaded(i),i&&this.log(`live playlist ${t} ${r.advanced?"REFRESHED "+r.lastPartSn+"-"+r.lastPartIndex:r.updated?"UPDATED":"MISSED"}`),i&&r.fragments.length>0&&Bn(i,r),!this.canLoad||!r.live)return;let c,u=void 0,d=void 0;if(r.canBlockReload&&r.endSN&&r.advanced){let w=this.hls.config.lowLatencyMode,D=r.lastPartSn,k=r.endSN,N=r.lastPartIndex,x=D===k,G=w?0:N;N!==-1?(u=x?k+1:D,d=x?G:N+1):u=k+1;let Y=r.age,rt=Y+r.ageHeader,J=Math.min(rt-r.partTarget,1.5*r.targetduration);if(J>0){if(i&&J>i.tuneInGoal)this.warn(`CDN Tune-in goal increased from: ${i.tuneInGoal} to: ${J} with playlist age: ${r.age}`),J=0;else{let ut=Math.floor(J/r.targetduration);if(u+=ut,d!==void 0)d+=Math.round(J%r.targetduration/r.partTarget);this.log(`CDN Tune-in age: ${r.ageHeader}s last advanced ${Y.toFixed(2)}s goal: ${J} skip sn ${ut} to part ${d}`)}r.tuneInGoal=J}if(c=this.getDeliveryDirectives(r,e.deliveryDirectives,u,d),w||!x)return void this.loadPlaylist(c)}else(r.canBlockReload||r.canSkipUntil)&&(c=this.getDeliveryDirectives(r,e.deliveryDirectives,u,d));let m=this.hls.mainForwardBufferInfo,y=m?m.end-m.len:0,S=function(w,D=1/0){let k=1000*w.targetduration;if(w.updated){let N=w.fragments;if(N.length&&k*4>D){let G=1000*N[N.length-1].duration;G<k&&(k=G)}}else k/=2;return Math.round(k)}(r,1000*(r.edge-y));r.updated&&a>this.requestScheduled+S&&(this.requestScheduled=s.loading.start),u!==void 0&&r.canBlockReload?this.requestScheduled=s.loading.first+S-(1000*r.partTarget||1000):this.requestScheduled===-1||this.requestScheduled+S<a?this.requestScheduled=a:this.requestScheduled-a<=0&&(this.requestScheduled+=S);let T=this.requestScheduled-a;T=Math.max(0,T),this.log(`reload live playlist ${t} in ${Math.round(T)} ms`),this.timer=self.setTimeout(()=>this.loadPlaylist(c),T)}else this.clearTimer()}getDeliveryDirectives(t,e,i,r){let s=zs(t);return e!=null&&e.skip&&t.deltaUpdateFailed&&(i=e.msn,r=e.part,s=js),new Ti(i,r,s)}checkRetry(t){let e=t.details,i=Gn(t),r=t.errorAction,{action:s,retryCount:a=0,retryConfig:l}=r||{},c=!!r&&!!l&&(s===De||!r.resolved&&s===xi);if(c){var u;if(this.requestScheduled=-1,a>=l.maxNumRetry)return!1;if(i&&(u=t.context)!=null&&u.deliveryDirectives)this.warn(`Retrying playlist loading ${a+1}/${l.maxNumRetry} after "${e}" without delivery-directives`),this.loadPlaylist();else{let d=Xs(l,a);this.timer=self.setTimeout(()=>this.loadPlaylist(),d),this.warn(`Retrying playlist loading ${a+1}/${l.maxNumRetry} after "${e}" in ${d}ms`)}t.levelRetry=!0,r.resolved=!0}return c}}class mr{constructor(t,e=0,i=0){this.halfLife=void 0,this.alpha_=void 0,this.estimate_=void 0,this.totalWeight_=void 0,this.halfLife=t,this.alpha_=t?Math.exp(Math.log(0.5)/t):0,this.estimate_=e,this.totalWeight_=i}sample(t,e){let i=Math.pow(this.alpha_,t);this.estimate_=e*(1-i)+i*this.estimate_,this.totalWeight_+=t}getTotalWeight(){return this.totalWeight_}getEstimate(){if(this.alpha_){let t=1-Math.pow(this.alpha_,this.totalWeight_);if(t)return this.estimate_/t}return this.estimate_}}class ta{constructor(t,e,i,r=100){this.defaultEstimate_=void 0,this.minWeight_=void 0,this.minDelayMs_=void 0,this.slow_=void 0,this.fast_=void 0,this.defaultTTFB_=void 0,this.ttfb_=void 0,this.defaultEstimate_=i,this.minWeight_=0.001,this.minDelayMs_=50,this.slow_=new mr(t),this.fast_=new mr(e),this.defaultTTFB_=r,this.ttfb_=new mr(t)}update(t,e){let{slow_:i,fast_:r,ttfb_:s}=this;i.halfLife!==t&&(this.slow_=new mr(t,i.getEstimate(),i.getTotalWeight())),r.halfLife!==e&&(this.fast_=new mr(e,r.getEstimate(),r.getTotalWeight())),s.halfLife!==t&&(this.ttfb_=new mr(t,s.getEstimate(),s.getTotalWeight()))}sample(t,e){let i=(t=Math.max(t,this.minDelayMs_))/1000,r=8*e/i;this.fast_.sample(i,r),this.slow_.sample(i,r)}sampleTTFB(t){let e=t/1000,i=Math.sqrt(2)*Math.exp(-Math.pow(e,2)/2);this.ttfb_.sample(i,Math.max(t,5))}canEstimate(){return this.fast_.getTotalWeight()>=this.minWeight_}getEstimate(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_}getEstimateTTFB(){return this.ttfb_.getTotalWeight()>=this.minWeight_?this.ttfb_.getEstimate():this.defaultTTFB_}destroy(){}}let Hn={supported:!0,configurations:[],decodingInfoResults:[{supported:!0,powerEfficient:!0,smooth:!0}]},ea={};function Cl(t,e,i,r,s,a){let l=t.audioCodec?t.audioGroups:null,c=a==null?void 0:a.audioCodec,u=a==null?void 0:a.channels,d=u?parseInt(u):c?1/0:2,m=null;if(l!=null&&l.length)try{m=l.length===1&&l[0]?e.groups[l[0]].channels:l.reduce((y,S)=>{if(S){let T=e.groups[S];if(!T)throw new Error(`Audio track group ${S} not found`);Object.keys(T.channels).forEach((w)=>{y[w]=(y[w]||0)+T.channels[w]})}return y},{2:0})}catch(y){return!0}return t.videoCodec!==void 0&&(t.width>1920&&t.height>1088||t.height>1920&&t.width>1088||t.frameRate>Math.max(r,30)||t.videoRange!=="SDR"&&t.videoRange!==i||t.bitrate>Math.max(s,8000000))||!!m&&L(d)&&Object.keys(m).some((y)=>parseInt(y)>d)}function Xi(t,e,i){let{videoCodec:r,audioCodec:s}=t;if(!r||!s||!i)return Promise.resolve(Hn);let a={width:t.width,height:t.height,bitrate:Math.ceil(Math.max(0.9*t.bitrate,t.averageBitrate)),framerate:t.frameRate||30},l=t.videoRange;l!=="SDR"&&(a.transferFunction=l.toLowerCase());let c=r.split(",").map((u)=>({type:"media-source",video:E(E({},a),{},{contentType:wr(u,"video")})}));return s&&t.audioGroups&&t.audioGroups.forEach((u)=>{var d;u&&((d=e.groups[u])==null||d.tracks.forEach((m)=>{if(m.groupId===u){let y=m.channels||"",S=parseFloat(y);L(S)&&S>2&&c.push.apply(c,s.split(",").map((T)=>({type:"media-source",audio:{contentType:wr(T,"audio"),channels:""+S}})))}}))}),Promise.all(c.map((u)=>{let d=function(m){let{audio:y,video:S}=m,T=S||y;if(T){let w=T.contentType.split('"')[1];if(S)return`r${S.height}x${S.width}f${Math.ceil(S.framerate)}${S.transferFunction||"sd"}_${w}_${Math.ceil(S.bitrate/1e5)}`;if(y)return`c${y.channels}${y.spatialRendering?"s":"n"}_${w}`}return""}(u);return ea[d]||(ea[d]=i.decodingInfo(u))})).then((u)=>({supported:!u.some((d)=>!d.supported),configurations:c,decodingInfoResults:u})).catch((u)=>({supported:!1,configurations:c,decodingInfoResults:[],error:u}))}function Dl(t,e){let i=!1,r=[];return t&&(i=t!=="SDR",r=[t]),e&&(r=e.allowedVideoRanges||Un.slice(0),i=e.preferHDR!==void 0?e.preferHDR:function(){if(typeof matchMedia=="function"){let s=matchMedia("(dynamic-range: high)"),a=matchMedia("bad query");if(s.media!==a.media)return s.matches===!0}return!1}(),r=i?r.filter((s)=>s!=="SDR"):["SDR"]),{preferHDR:i,allowedVideoRanges:r}}function Be(t,e){I.log(`[abr] start candidates with "${t}" ignored because ${e}`)}function Ai(t,e,i){if("attrs"in t){let r=e.indexOf(t);if(r!==-1)return r}for(let r=0;r<e.length;r++)if(Dr(t,e[r],i))return r;return-1}function Dr(t,e,i){let{groupId:r,name:s,lang:a,assocLang:l,characteristics:c,default:u}=t,d=t.forced;return(r===void 0||e.groupId===r)&&(s===void 0||e.name===s)&&(a===void 0||e.lang===a)&&(a===void 0||e.assocLang===l)&&(u===void 0||e.default===u)&&(d===void 0||e.forced===d)&&(c===void 0||function(m,y=""){let S=m.split(","),T=y.split(",");return S.length===T.length&&!S.some((w)=>T.indexOf(w)===-1)}(c,e.characteristics))&&(i===void 0||i(t,e))}function Ir(t,e){let{audioCodec:i,channels:r}=t;return!(i!==void 0&&(e.audioCodec||"").substring(0,4)!==i.substring(0,4)||r!==void 0&&r!==(e.channels||"2"))}function uo(t,e,i){for(let r=e;r;r--)if(i(t[r]))return r;for(let r=e+1;r<t.length;r++)if(i(t[r]))return r;return-1}var ze="NOT_LOADED",an="APPENDING",gr="PARTIAL",de="OK";class ia{constructor(t){this.activePartLists=Object.create(null),this.endListFragments=Object.create(null),this.fragments=Object.create(null),this.timeRanges=Object.create(null),this.bufferPadding=0.2,this.hls=void 0,this.hasGaps=!1,this.hls=t,this._registerListeners()}_registerListeners(){let{hls:t}=this;t.on(b.BUFFER_APPENDED,this.onBufferAppended,this),t.on(b.FRAG_BUFFERED,this.onFragBuffered,this),t.on(b.FRAG_LOADED,this.onFragLoaded,this)}_unregisterListeners(){let{hls:t}=this;t.off(b.BUFFER_APPENDED,this.onBufferAppended,this),t.off(b.FRAG_BUFFERED,this.onFragBuffered,this),t.off(b.FRAG_LOADED,this.onFragLoaded,this)}destroy(){this._unregisterListeners(),this.fragments=this.activePartLists=this.endListFragments=this.timeRanges=null}getAppendedFrag(t,e){let i=this.activePartLists[e];if(i)for(let r=i.length;r--;){let s=i[r];if(!s)break;let a=s.end;if(s.start<=t&&a!==null&&t<=a)return s}return this.getBufferedFrag(t,e)}getBufferedFrag(t,e){let{fragments:i}=this,r=Object.keys(i);for(let s=r.length;s--;){let a=i[r[s]];if((a==null?void 0:a.body.type)===e&&a.buffered){let l=a.body;if(l.start<=t&&t<=l.end)return l}}return null}detectEvictedFragments(t,e,i,r){this.timeRanges&&(this.timeRanges[t]=e);let s=(r==null?void 0:r.fragment.sn)||-1;Object.keys(this.fragments).forEach((a)=>{let l=this.fragments[a];if(!l)return;if(s>=l.body.sn)return;if(!l.buffered&&!l.loaded)return void(l.body.type===i&&this.removeFragment(l.body));let c=l.range[t];c&&c.time.some((u)=>{let d=!this.isTimeBuffered(u.startPTS,u.endPTS,e);return d&&this.removeFragment(l.body),d})})}detectPartialFragments(t){let e=this.timeRanges,{frag:i,part:r}=t;if(!e||i.sn==="initSegment")return;let s=$e(i),a=this.fragments[s];if(!a||a.buffered&&i.gap)return;let l=!i.relurl;if(Object.keys(e).forEach((c)=>{let u=i.elementaryStreams[c];if(!u)return;let d=e[c],m=l||u.partial===!0;a.range[c]=this.getBufferedTimes(i,r,m,d)}),a.loaded=null,Object.keys(a.range).length)a.buffered=!0,(a.body.endList=i.endList||a.body.endList)&&(this.endListFragments[a.body.type]=a),Vn(a)||this.removeParts(i.sn-1,i.type);else this.removeFragment(a.body)}removeParts(t,e){let i=this.activePartLists[e];i&&(this.activePartLists[e]=i.filter((r)=>r.fragment.sn>=t))}fragBuffered(t,e){let i=$e(t),r=this.fragments[i];!r&&e&&(r=this.fragments[i]={body:t,appendedPTS:null,loaded:null,buffered:!1,range:Object.create(null)},t.gap&&(this.hasGaps=!0)),r&&(r.loaded=null,r.buffered=!0)}getBufferedTimes(t,e,i,r){let s={time:[],partial:i},a=t.start,l=t.end,c=t.minEndPTS||l,u=t.maxStartPTS||a;for(let d=0;d<r.length;d++){let m=r.start(d)-this.bufferPadding,y=r.end(d)+this.bufferPadding;if(u>=m&&c<=y){s.time.push({startPTS:Math.max(a,r.start(d)),endPTS:Math.min(l,r.end(d))});break}if(a<y&&l>m){let S=Math.max(a,r.start(d)),T=Math.min(l,r.end(d));T>S&&(s.partial=!0,s.time.push({startPTS:S,endPTS:T}))}else if(l<=m)break}return s}getPartialFragment(t){let e,i,r,s=null,a=0,{bufferPadding:l,fragments:c}=this;return Object.keys(c).forEach((u)=>{let d=c[u];d&&Vn(d)&&(i=d.body.start-l,r=d.body.end+l,t>=i&&t<=r&&(e=Math.min(t-i,r-t),a<=e&&(s=d.body,a=e)))}),s}isEndListAppended(t){let e=this.endListFragments[t];return e!==void 0&&(e.buffered||Vn(e))}getState(t){let e=$e(t),i=this.fragments[e];return i?i.buffered?Vn(i)?gr:de:an:ze}isTimeBuffered(t,e,i){let r,s;for(let a=0;a<i.length;a++){if(r=i.start(a)-this.bufferPadding,s=i.end(a)+this.bufferPadding,t>=r&&e<=s)return!0;if(e<=r)return!1}return!1}onFragLoaded(t,e){let{frag:i,part:r}=e;if(i.sn==="initSegment"||i.bitrateTest)return;let s=r?null:e,a=$e(i);this.fragments[a]={body:i,appendedPTS:null,loaded:s,buffered:!1,range:Object.create(null)}}onBufferAppended(t,e){let{frag:i,part:r,timeRanges:s}=e;if(i.sn==="initSegment")return;let a=i.type;if(r){let l=this.activePartLists[a];l||(this.activePartLists[a]=l=[]),l.push(r)}this.timeRanges=s,Object.keys(s).forEach((l)=>{let c=s[l];this.detectEvictedFragments(l,c,a,r)})}onFragBuffered(t,e){this.detectPartialFragments(e)}hasFragment(t){let e=$e(t);return!!this.fragments[e]}hasParts(t){var e;return!((e=this.activePartLists[t])==null||!e.length)}removeFragmentsInRange(t,e,i,r,s){r&&!this.hasGaps||Object.keys(this.fragments).forEach((a)=>{let l=this.fragments[a];if(!l)return;let c=l.body;c.type!==i||r&&!c.gap||c.start<e&&c.end>t&&(l.buffered||s)&&this.removeFragment(c)})}removeFragment(t){let e=$e(t);t.stats.loaded=0,t.clearElementaryStreamInfo();let i=this.activePartLists[t.type];if(i){let r=t.sn;this.activePartLists[t.type]=i.filter((s)=>s.fragment.sn!==r)}delete this.fragments[e],t.endList&&delete this.endListFragments[t.type]}removeAllFragments(){this.fragments=Object.create(null),this.endListFragments=Object.create(null),this.activePartLists=Object.create(null),this.hasGaps=!1}}function Vn(t){var e,i,r;return t.buffered&&(t.body.gap||((e=t.range.video)==null?void 0:e.partial)||((i=t.range.audio)==null?void 0:i.partial)||((r=t.range.audiovideo)==null?void 0:r.partial))}function $e(t){return`${t.type}_${t.level}_${t.sn}`}let ra={length:0,start:()=>0,end:()=>0};class Jt{static isBuffered(t,e){try{if(t){let i=Jt.getBuffered(t);for(let r=0;r<i.length;r++)if(e>=i.start(r)&&e<=i.end(r))return!0}}catch(i){}return!1}static bufferInfo(t,e,i){try{if(t){let r=Jt.getBuffered(t),s=[],a;for(a=0;a<r.length;a++)s.push({start:r.start(a),end:r.end(a)});return this.bufferedInfo(s,e,i)}}catch(r){}return{len:0,start:e,end:e,nextStart:void 0}}static bufferedInfo(t,e,i){e=Math.max(0,e),t.sort(function(u,d){return u.start-d.start||d.end-u.end});let r=[];if(i)for(let u=0;u<t.length;u++){let d=r.length;if(d){let m=r[d-1].end;t[u].start-m<i?t[u].end>m&&(r[d-1].end=t[u].end):r.push(t[u])}else r.push(t[u])}else r=t;let s,a=0,l=e,c=e;for(let u=0;u<r.length;u++){let d=r[u].start,m=r[u].end;if(e+i>=d&&e<m)l=d,c=m,a=c-e;else if(e+i<d){s=d;break}}return{len:a,start:l||0,end:c||0,nextStart:s}}static getBuffered(t){try{return t.buffered}catch(e){return I.log("failed to get media.buffered",e),ra}}}class Or{constructor(t,e,i,r=0,s=-1,a=!1){this.level=void 0,this.sn=void 0,this.part=void 0,this.id=void 0,this.size=void 0,this.partial=void 0,this.transmuxing={start:0,executeStart:0,executeEnd:0,end:0},this.buffering={audio:{start:0,executeStart:0,executeEnd:0,end:0},video:{start:0,executeStart:0,executeEnd:0,end:0},audiovideo:{start:0,executeStart:0,executeEnd:0,end:0}},this.level=t,this.sn=e,this.id=i,this.size=r,this.part=s,this.partial=a}}function on(t,e){for(let r=0,s=t.length;r<s;r++){var i;if(((i=t[r])==null?void 0:i.cc)===e)return t[r]}return null}function Kn(t,e){if(t){let i=t.start+e;t.start=t.startPTS=i,t.endPTS=i+t.duration}}function ho(t,e){let i=e.fragments;for(let r=0,s=i.length;r<s;r++)Kn(i[r],t);e.fragmentHint&&Kn(e.fragmentHint,t),e.alignedSliding=!0}function Il(t,e,i){e&&(function(r,s,a){if(function(l,c,u){return!(!c||!(u.endCC>u.startCC||l&&l.cc<u.startCC))}(r,a,s)){let l=function(c,u){let d=c.fragments,m=u.fragments;if(!m.length||!d.length)return void I.log("No fragments to align");let y=on(d,m[0].cc);if(y&&(!y||y.startPTS))return y;I.log("No frag in previous level to align on")}(a,s);l&&L(l.start)&&(I.log("Adjusting PTS using last level due to CC increase within current level "+s.url),ho(l.start,s))}}(t,i,e),!i.alignedSliding&&e&&Wn(i,e),i.alignedSliding||!e||i.skippedSegments||$n(e,i))}function Wn(t,e){if(!t.hasProgramDateTime||!e.hasProgramDateTime)return;let i=t.fragments,r=e.fragments;if(!i.length||!r.length)return;let s,a,l=Math.min(e.endCC,t.endCC);e.startCC<l&&t.startCC<l&&(s=on(r,l),a=on(i,l)),s&&a||(s=r[Math.floor(r.length/2)],a=on(i,s.cc)||i[Math.floor(i.length/2)]);let c=s.programDateTime,u=a.programDateTime;if(!c||!u)return;ho((u-c)/1000-(a.start-s.start),t)}let na=Math.pow(2,17);class fo{constructor(t){this.config=void 0,this.loader=null,this.partLoadTimeout=-1,this.config=t}destroy(){this.loader&&(this.loader.destroy(),this.loader=null)}abort(){this.loader&&this.loader.abort()}load(t,e){let i=t.url;if(!i)return Promise.reject(new _i({type:H.NETWORK_ERROR,details:P.FRAG_LOAD_ERROR,fatal:!1,frag:t,error:new Error("Fragment does not have a "+(i?"part list":"url")),networkDetails:null}));this.abort();let r=this.config,s=r.fLoader,a=r.loader;return new Promise((l,c)=>{if(this.loader&&this.loader.destroy(),t.gap){if(t.tagList.some((S)=>S[0]==="GAP"))return void c(aa(t));t.gap=!1}let u=this.loader=t.loader=s?new s(r):new a(r),d=sa(t),m=co(r.fragLoadPolicy.default),y={loadPolicy:m,timeout:m.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:t.sn==="initSegment"?1/0:na};t.stats=u.stats,u.load(d,y,{onSuccess:(S,T,w,D)=>{this.resetLoader(t,u);let k=S.data;w.resetIV&&t.decryptdata&&(t.decryptdata.iv=new Uint8Array(k.slice(0,16)),k=k.slice(16)),l({frag:t,part:null,payload:k,networkDetails:D})},onError:(S,T,w,D)=>{this.resetLoader(t,u),c(new _i({type:H.NETWORK_ERROR,details:P.FRAG_LOAD_ERROR,fatal:!1,frag:t,response:E({url:i,data:void 0},S),error:new Error(`HTTP Error ${S.code} ${S.text}`),networkDetails:w,stats:D}))},onAbort:(S,T,w)=>{this.resetLoader(t,u),c(new _i({type:H.NETWORK_ERROR,details:P.INTERNAL_ABORTED,fatal:!1,frag:t,error:new Error("Aborted"),networkDetails:w,stats:S}))},onTimeout:(S,T,w)=>{this.resetLoader(t,u),c(new _i({type:H.NETWORK_ERROR,details:P.FRAG_LOAD_TIMEOUT,fatal:!1,frag:t,error:new Error(`Timeout after ${y.timeout}ms`),networkDetails:w,stats:S}))},onProgress:(S,T,w,D)=>{e&&e({frag:t,part:null,payload:w,networkDetails:D})}})})}loadPart(t,e,i){this.abort();let r=this.config,s=r.fLoader,a=r.loader;return new Promise((l,c)=>{if(this.loader&&this.loader.destroy(),t.gap||e.gap)return void c(aa(t,e));let u=this.loader=t.loader=s?new s(r):new a(r),d=sa(t,e),m=co(r.fragLoadPolicy.default),y={loadPolicy:m,timeout:m.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:na};e.stats=u.stats,u.load(d,y,{onSuccess:(S,T,w,D)=>{this.resetLoader(t,u),this.updateStatsFromPart(t,e);let k={frag:t,part:e,payload:S.data,networkDetails:D};i(k),l(k)},onError:(S,T,w,D)=>{this.resetLoader(t,u),c(new _i({type:H.NETWORK_ERROR,details:P.FRAG_LOAD_ERROR,fatal:!1,frag:t,part:e,response:E({url:d.url,data:void 0},S),error:new Error(`HTTP Error ${S.code} ${S.text}`),networkDetails:w,stats:D}))},onAbort:(S,T,w)=>{t.stats.aborted=e.stats.aborted,this.resetLoader(t,u),c(new _i({type:H.NETWORK_ERROR,details:P.INTERNAL_ABORTED,fatal:!1,frag:t,part:e,error:new Error("Aborted"),networkDetails:w,stats:S}))},onTimeout:(S,T,w)=>{this.resetLoader(t,u),c(new _i({type:H.NETWORK_ERROR,details:P.FRAG_LOAD_TIMEOUT,fatal:!1,frag:t,part:e,error:new Error(`Timeout after ${y.timeout}ms`),networkDetails:w,stats:S}))}})})}updateStatsFromPart(t,e){let i=t.stats,r=e.stats,s=r.total;if(i.loaded+=r.loaded,s){let c=Math.round(t.duration/e.duration),u=Math.min(Math.round(i.loaded/s),c),d=(c-u)*Math.round(i.loaded/u);i.total=i.loaded+d}else i.total=Math.max(i.loaded,i.total);let a=i.loading,l=r.loading;a.start?a.first+=l.first-l.start:(a.start=l.start,a.first=l.first),a.end=l.end}resetLoader(t,e){t.loader=null,this.loader===e&&(self.clearTimeout(this.partLoadTimeout),this.loader=null),e.destroy()}}function sa(t,e=null){let i=e||t,r={frag:t,part:e,responseType:"arraybuffer",url:i.url,headers:{},rangeStart:0,rangeEnd:0},s=i.byteRangeStartOffset,a=i.byteRangeEndOffset;if(L(s)&&L(a)){var l;let c=s,u=a;if(t.sn==="initSegment"&&((l=t.decryptdata)==null?void 0:l.method)==="AES-128"){let d=a-s;d%16&&(u=a+(16-d%16)),s!==0&&(r.resetIV=!0,c=s-16)}r.rangeStart=c,r.rangeEnd=u}return r}function aa(t,e){let i=new Error(`GAP ${t.gap?"tag":"attribute"} found`),r={type:H.MEDIA_ERROR,details:P.FRAG_GAP,fatal:!1,frag:t,error:i,networkDetails:null};return e&&(r.part=e),(e||t).stats.aborted=!0,new _i(r)}class _i extends Error{constructor(t){super(t.error.message),this.data=void 0,this.data=t}}class mo{constructor(t,e){this.subtle=void 0,this.aesIV=void 0,this.subtle=t,this.aesIV=e}decrypt(t,e){return this.subtle.decrypt({name:"AES-CBC",iv:this.aesIV},e,t)}}class go{constructor(t,e){this.subtle=void 0,this.key=void 0,this.subtle=t,this.key=e}expandKey(){return this.subtle.importKey("raw",this.key,{name:"AES-CBC"},!1,["encrypt","decrypt"])}}class Yn{constructor(){this.rcon=[0,1,2,4,8,16,32,64,128,27,54],this.subMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.invSubMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.sBox=new Uint32Array(256),this.invSBox=new Uint32Array(256),this.key=new Uint32Array(0),this.ksRows=0,this.keySize=0,this.keySchedule=void 0,this.invKeySchedule=void 0,this.initTable()}uint8ArrayToUint32Array_(t){let e=new DataView(t),i=new Uint32Array(4);for(let r=0;r<4;r++)i[r]=e.getUint32(4*r);return i}initTable(){let t=this.sBox,e=this.invSBox,i=this.subMix,r=i[0],s=i[1],a=i[2],l=i[3],c=this.invSubMix,u=c[0],d=c[1],m=c[2],y=c[3],S=new Uint32Array(256),T=0,w=0,D=0;for(D=0;D<256;D++)S[D]=D<128?D<<1:D<<1^283;for(D=0;D<256;D++){let k=w^w<<1^w<<2^w<<3^w<<4;k=k>>>8^255&k^99,t[T]=k,e[k]=T;let N=S[T],x=S[N],G=S[x],Y=257*S[k]^16843008*k;r[T]=Y<<24|Y>>>8,s[T]=Y<<16|Y>>>16,a[T]=Y<<8|Y>>>24,l[T]=Y,Y=16843009*G^65537*x^257*N^16843008*T,u[k]=Y<<24|Y>>>8,d[k]=Y<<16|Y>>>16,m[k]=Y<<8|Y>>>24,y[k]=Y,T?(T=N^S[S[S[G^N]]],w^=S[S[w]]):T=w=1}}expandKey(t){let e=this.uint8ArrayToUint32Array_(t),i=!0,r=0;for(;r<e.length&&i;)i=e[r]===this.key[r],r++;if(i)return;this.key=e;let s=this.keySize=e.length;if(s!==4&&s!==6&&s!==8)throw new Error("Invalid aes key size="+s);let a=this.ksRows=4*(s+6+1),l,c,u=this.keySchedule=new Uint32Array(a),d=this.invKeySchedule=new Uint32Array(a),m=this.sBox,y=this.rcon,S=this.invSubMix,T=S[0],w=S[1],D=S[2],k=S[3],N,x;for(l=0;l<a;l++)l<s?N=u[l]=e[l]:(x=N,l%s==0?(x=x<<8|x>>>24,x=m[x>>>24]<<24|m[x>>>16&255]<<16|m[x>>>8&255]<<8|m[255&x],x^=y[l/s|0]<<24):s>6&&l%s==4&&(x=m[x>>>24]<<24|m[x>>>16&255]<<16|m[x>>>8&255]<<8|m[255&x]),u[l]=N=(u[l-s]^x)>>>0);for(c=0;c<a;c++)l=a-c,x=3&c?u[l]:u[l-4],d[c]=c<4||l<=4?x:T[m[x>>>24]]^w[m[x>>>16&255]]^D[m[x>>>8&255]]^k[m[255&x]],d[c]=d[c]>>>0}networkToHostOrderSwap(t){return t<<24|(65280&t)<<8|(16711680&t)>>8|t>>>24}decrypt(t,e,i){let r=this.keySize+6,s=this.invKeySchedule,a=this.invSBox,l=this.invSubMix,c=l[0],u=l[1],d=l[2],m=l[3],y=this.uint8ArrayToUint32Array_(i),S=y[0],T=y[1],w=y[2],D=y[3],k=new Int32Array(t),N=new Int32Array(k.length),x,G,Y,rt,J,ut,ft,Z,Q,Dt,mt,Rt,Ot,Mt,ot=this.networkToHostOrderSwap;for(;e<k.length;){for(Q=ot(k[e]),Dt=ot(k[e+1]),mt=ot(k[e+2]),Rt=ot(k[e+3]),J=Q^s[0],ut=Rt^s[1],ft=mt^s[2],Z=Dt^s[3],Ot=4,Mt=1;Mt<r;Mt++)x=c[J>>>24]^u[ut>>16&255]^d[ft>>8&255]^m[255&Z]^s[Ot],G=c[ut>>>24]^u[ft>>16&255]^d[Z>>8&255]^m[255&J]^s[Ot+1],Y=c[ft>>>24]^u[Z>>16&255]^d[J>>8&255]^m[255&ut]^s[Ot+2],rt=c[Z>>>24]^u[J>>16&255]^d[ut>>8&255]^m[255&ft]^s[Ot+3],J=x,ut=G,ft=Y,Z=rt,Ot+=4;x=a[J>>>24]<<24^a[ut>>16&255]<<16^a[ft>>8&255]<<8^a[255&Z]^s[Ot],G=a[ut>>>24]<<24^a[ft>>16&255]<<16^a[Z>>8&255]<<8^a[255&J]^s[Ot+1],Y=a[ft>>>24]<<24^a[Z>>16&255]<<16^a[J>>8&255]<<8^a[255&ut]^s[Ot+2],rt=a[Z>>>24]<<24^a[J>>16&255]<<16^a[ut>>8&255]<<8^a[255&ft]^s[Ot+3],N[e]=ot(x^S),N[e+1]=ot(rt^T),N[e+2]=ot(Y^w),N[e+3]=ot(G^D),S=Q,T=Dt,w=mt,D=Rt,e+=4}return N.buffer}}class ln{constructor(t,{removePKCS7Padding:e=!0}={}){if(this.logEnabled=!0,this.removePKCS7Padding=void 0,this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null,this.useSoftware=void 0,this.useSoftware=t.enableSoftwareAES,this.removePKCS7Padding=e,e)try{let i=self.crypto;i&&(this.subtle=i.subtle||i.webkitSubtle)}catch(i){}this.subtle===null&&(this.useSoftware=!0)}destroy(){this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null}isSync(){return this.useSoftware}flush(){let{currentResult:t,remainderData:e}=this;if(!t||e)return this.reset(),null;let i=new Uint8Array(t);return this.reset(),this.removePKCS7Padding?function(r){let s=r.byteLength,a=s&&new DataView(r.buffer).getUint8(s-1);return a?ne(r,0,s-a):r}(i):i}reset(){this.currentResult=null,this.currentIV=null,this.remainderData=null,this.softwareDecrypter&&(this.softwareDecrypter=null)}decrypt(t,e,i){return this.useSoftware?new Promise((r,s)=>{this.softwareDecrypt(new Uint8Array(t),e,i);let a=this.flush();a?r(a.buffer):s(new Error("[softwareDecrypt] Failed to decrypt data"))}):this.webCryptoDecrypt(new Uint8Array(t),e,i)}softwareDecrypt(t,e,i){let{currentIV:r,currentResult:s,remainderData:a}=this;this.logOnce("JS AES decrypt"),a&&(t=si(a,t),this.remainderData=null);let l=this.getValidChunk(t);if(!l.length)return null;r&&(i=r);let c=this.softwareDecrypter;c||(c=this.softwareDecrypter=new Yn),c.expandKey(e);let u=s;return this.currentResult=c.decrypt(l.buffer,0,i),this.currentIV=ne(l,-16).buffer,u||null}webCryptoDecrypt(t,e,i){let r=this.subtle;return this.key===e&&this.fastAesKey||(this.key=e,this.fastAesKey=new go(r,e)),this.fastAesKey.expandKey().then((s)=>{if(!r)return Promise.reject(new Error("web crypto not initialized"));return this.logOnce("WebCrypto AES decrypt"),new mo(r,new Uint8Array(i)).decrypt(t.buffer,s)}).catch((s)=>(I.warn(`[decrypter]: WebCrypto Error, disable WebCrypto API, ${s.name}: ${s.message}`),this.onWebCryptoError(t,e,i)))}onWebCryptoError(t,e,i){this.useSoftware=!0,this.logEnabled=!0,this.softwareDecrypt(t,e,i);let r=this.flush();if(r)return r.buffer;throw new Error("WebCrypto and softwareDecrypt: failed to decrypt data")}getValidChunk(t){let e=t,i=t.length-t.length%16;return i!==t.length&&(e=ne(t,0,i),this.remainderData=ne(t,i)),e}logOnce(t){this.logEnabled&&(I.log("[decrypter]: "+t),this.logEnabled=!1)}}let Ol=function(t){let e="",i=t.length;for(let r=0;r<i;r++)e+=`[${t.start(r).toFixed(3)}-${t.end(r).toFixed(3)}]`;return e},oi="STOPPED",Zt="IDLE",oa="KEY_LOADING",Mr="FRAG_LOADING",Nr="FRAG_LOADING_WAITING_RETRY",Pr="WAITING_TRACK",Fi="PARSING",cn="PARSED",un="ENDED",xr="ERROR",Li="WAITING_INIT_PTS",fe="WAITING_LEVEL";class dn extends class t{constructor(){this._boundTick=void 0,this._tickTimer=null,this._tickInterval=null,this._tickCallCount=0,this._boundTick=this.tick.bind(this)}destroy(){this.onHandlerDestroying(),this.onHandlerDestroyed()}onHandlerDestroying(){this.clearNextTick(),this.clearInterval()}onHandlerDestroyed(){}hasInterval(){return!!this._tickInterval}hasNextTick(){return!!this._tickTimer}setInterval(e){return!this._tickInterval&&(this._tickCallCount=0,this._tickInterval=self.setInterval(this._boundTick,e),!0)}clearInterval(){return!!this._tickInterval&&(self.clearInterval(this._tickInterval),this._tickInterval=null,!0)}clearNextTick(){return!!this._tickTimer&&(self.clearTimeout(this._tickTimer),this._tickTimer=null,!0)}tick(){this._tickCallCount++,this._tickCallCount===1&&(this.doTick(),this._tickCallCount>1&&this.tickImmediate(),this._tickCallCount=0)}tickImmediate(){this.clearNextTick(),this._tickTimer=self.setTimeout(this._boundTick,0)}doTick(){}}{constructor(t,e,i,r,s){super(),this.hls=void 0,this.fragPrevious=null,this.fragCurrent=null,this.fragmentTracker=void 0,this.transmuxer=null,this._state=oi,this.playlistType=void 0,this.media=null,this.mediaBuffer=null,this.config=void 0,this.bitrateTest=!1,this.lastCurrentTime=0,this.nextLoadPosition=0,this.startPosition=0,this.startTimeOffset=null,this.loadedmetadata=!1,this.retryDate=0,this.levels=null,this.fragmentLoader=void 0,this.keyLoader=void 0,this.levelLastLoaded=null,this.startFragRequested=!1,this.decrypter=void 0,this.initPTS=[],this.onvseeking=null,this.onvended=null,this.logPrefix="",this.log=void 0,this.warn=void 0,this.playlistType=s,this.logPrefix=r,this.log=I.log.bind(I,r+":"),this.warn=I.warn.bind(I,r+":"),this.hls=t,this.fragmentLoader=new fo(t.config),this.keyLoader=i,this.fragmentTracker=e,this.config=t.config,this.decrypter=new ln(t.config),t.on(b.MANIFEST_LOADED,this.onManifestLoaded,this)}doTick(){this.onTickEnd()}onTickEnd(){}startLoad(t){}stopLoad(){this.fragmentLoader.abort(),this.keyLoader.abort(this.playlistType);let t=this.fragCurrent;t!=null&&t.loader&&(t.abortRequests(),this.fragmentTracker.removeFragment(t)),this.resetTransmuxer(),this.fragCurrent=null,this.fragPrevious=null,this.clearInterval(),this.clearNextTick(),this.state=oi}_streamEnded(t,e){if(e.live||t.nextStart||!t.end||!this.media)return!1;let i=e.partList;if(i!=null&&i.length){let s=i[i.length-1];return Jt.isBuffered(this.media,s.start+s.duration/2)}let r=e.fragments[e.fragments.length-1].type;return this.fragmentTracker.isEndListAppended(r)}getLevelDetails(){var t;if(this.levels&&this.levelLastLoaded!==null)return(t=this.levelLastLoaded)==null?void 0:t.details}onMediaAttached(t,e){let i=this.media=this.mediaBuffer=e.media;this.onvseeking=this.onMediaSeeking.bind(this),this.onvended=this.onMediaEnded.bind(this),i.addEventListener("seeking",this.onvseeking),i.addEventListener("ended",this.onvended);let r=this.config;this.levels&&r.autoStartLoad&&this.state===oi&&this.startLoad(r.startPosition)}onMediaDetaching(){let t=this.media;t!=null&&t.ended&&(this.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0),t&&this.onvseeking&&this.onvended&&(t.removeEventListener("seeking",this.onvseeking),t.removeEventListener("ended",this.onvended),this.onvseeking=this.onvended=null),this.keyLoader&&this.keyLoader.detach(),this.media=this.mediaBuffer=null,this.loadedmetadata=!1,this.fragmentTracker.removeAllFragments(),this.stopLoad()}onMediaSeeking(){let{config:t,fragCurrent:e,media:i,mediaBuffer:r,state:s}=this,a=i?i.currentTime:0,l=Jt.bufferInfo(r||i,a,t.maxBufferHole);if(this.log(`media seeking to ${L(a)?a.toFixed(3):a}, state: ${s}`),this.state===un)this.resetLoadingState();else if(e){let c=t.maxFragLookUpTolerance,u=e.start-c,d=e.start+e.duration+c;if(!l.len||d<l.start||u>l.end){let m=a>d;(a<u||m)&&(m&&e.loader&&(this.log("seeking outside of buffer while fragment load in progress, cancel fragment load"),e.abortRequests(),this.resetLoadingState()),this.fragPrevious=null)}}i&&(this.fragmentTracker.removeFragmentsInRange(a,1/0,this.playlistType,!0),this.lastCurrentTime=a),this.loadedmetadata||l.len||(this.nextLoadPosition=this.startPosition=a),this.tickImmediate()}onMediaEnded(){this.startPosition=this.lastCurrentTime=0}onManifestLoaded(t,e){this.startTimeOffset=e.startTimeOffset,this.initPTS=[]}onHandlerDestroying(){this.hls.off(b.MANIFEST_LOADED,this.onManifestLoaded,this),this.stopLoad(),super.onHandlerDestroying(),this.hls=null}onHandlerDestroyed(){this.state=oi,this.fragmentLoader&&this.fragmentLoader.destroy(),this.keyLoader&&this.keyLoader.destroy(),this.decrypter&&this.decrypter.destroy(),this.hls=this.log=this.warn=this.decrypter=this.keyLoader=this.fragmentLoader=this.fragmentTracker=null,super.onHandlerDestroyed()}loadFragment(t,e,i){this._loadFragForPlayback(t,e,i)}_loadFragForPlayback(t,e,i){this._doFragLoad(t,e,i,(r)=>{if(this.fragContextChanged(t))return this.warn(`Fragment ${t.sn}${r.part?" p: "+r.part.index:""} of level ${t.level} was dropped during download.`),void this.fragmentTracker.removeFragment(t);t.stats.chunkCount++,this._handleFragmentLoadProgress(r)}).then((r)=>{if(!r)return;let s=this.state;this.fragContextChanged(t)?(s===Mr||!this.fragCurrent&&s===Fi)&&(this.fragmentTracker.removeFragment(t),this.state=Zt):(("payload"in r)&&(this.log(`Loaded fragment ${t.sn} of level ${t.level}`),this.hls.trigger(b.FRAG_LOADED,r)),this._handleFragmentLoadComplete(r))}).catch((r)=>{this.state!==oi&&this.state!==xr&&(this.warn(r),this.resetFragmentLoading(t))})}clearTrackerIfNeeded(t){var e;let{fragmentTracker:i}=this;if(i.getState(t)===an){let r=t.type,s=this.getFwdBufferInfo(this.mediaBuffer,r),a=Math.max(t.duration,s?s.len:this.config.maxBufferLength);this.reduceMaxBufferLength(a)&&i.removeFragment(t)}else((e=this.mediaBuffer)==null?void 0:e.buffered.length)===0?i.removeAllFragments():i.hasParts(t.type)&&(i.detectPartialFragments({frag:t,part:null,stats:t.stats,id:t.type}),i.getState(t)===gr&&i.removeFragment(t))}checkLiveUpdate(t){if(t.updated&&!t.live){let e=t.fragments[t.fragments.length-1];this.fragmentTracker.detectPartialFragments({frag:e,part:null,stats:e.stats,id:e.type})}t.fragments[0]||(t.deltaUpdateFailed=!0)}flushMainBuffer(t,e,i=null){if(!(t-e))return;let r={startOffset:t,endOffset:e,type:i};this.hls.trigger(b.BUFFER_FLUSHING,r)}_loadInitSegment(t,e){this._doFragLoad(t,e).then((i)=>{if(!i||this.fragContextChanged(t)||!this.levels)throw new Error("init load aborted");return i}).then((i)=>{let{hls:r}=this,{payload:s}=i,a=t.decryptdata;if(s&&s.byteLength>0&&a!=null&&a.key&&a.iv&&a.method==="AES-128"){let l=self.performance.now();return this.decrypter.decrypt(new Uint8Array(s),a.key.buffer,a.iv.buffer).catch((c)=>{throw r.trigger(b.ERROR,{type:H.MEDIA_ERROR,details:P.FRAG_DECRYPT_ERROR,fatal:!1,error:c,reason:c.message,frag:t}),c}).then((c)=>{let u=self.performance.now();return r.trigger(b.FRAG_DECRYPTED,{frag:t,payload:c,stats:{tstart:l,tdecrypt:u}}),i.payload=c,this.completeInitSegmentLoad(i)})}return this.completeInitSegmentLoad(i)}).catch((i)=>{this.state!==oi&&this.state!==xr&&(this.warn(i),this.resetFragmentLoading(t))})}completeInitSegmentLoad(t){let{levels:e}=this;if(!e)throw new Error("init load aborted, missing levels");let i=t.frag.stats;this.state=Zt,t.frag.data=new Uint8Array(t.payload),i.parsing.start=i.buffering.start=self.performance.now(),i.parsing.end=i.buffering.end=self.performance.now(),this.tick()}fragContextChanged(t){let{fragCurrent:e}=this;return!t||!e||t.sn!==e.sn||t.level!==e.level}fragBufferedComplete(t,e){var i,r,s,a;let l=this.mediaBuffer?this.mediaBuffer:this.media;if(this.log(`Buffered ${t.type} sn: ${t.sn}${e?" part: "+e.index:""} of ${this.playlistType===ie?"level":"track"} ${t.level} (frag:[${((i=t.startPTS)!=null?i:NaN).toFixed(3)}-${((r=t.endPTS)!=null?r:NaN).toFixed(3)}] > buffer:${l?Ol(Jt.getBuffered(l)):"(detached)"})`),t.sn!=="initSegment"){var c;if(t.type!==bi){let d=t.elementaryStreams;if(!Object.keys(d).some((m)=>!!d[m]))return void(this.state=Zt)}let u=(c=this.levels)==null?void 0:c[t.level];u!=null&&u.fragmentError&&(this.log(`Resetting level fragment error count of ${u.fragmentError} on frag buffered`),u.fragmentError=0)}this.state=Zt,l&&(!this.loadedmetadata&&t.type==ie&&l.buffered.length&&((s=this.fragCurrent)==null?void 0:s.sn)===((a=this.fragPrevious)==null?void 0:a.sn)&&(this.loadedmetadata=!0,this.seekToStartPos()),this.tick())}seekToStartPos(){}_handleFragmentLoadComplete(t){let{transmuxer:e}=this;if(!e)return;let{frag:i,part:r,partsLoaded:s}=t,a=!s||s.length===0||s.some((c)=>!c),l=new Or(i.level,i.sn,i.stats.chunkCount+1,0,r?r.index:-1,!a);e.flush(l)}_handleFragmentLoadProgress(t){}_doFragLoad(t,e,i=null,r){var s;let a=e==null?void 0:e.details;if(!this.levels||!a)throw new Error(`frag load aborted, missing level${a?"":" detail"}s`);let l=null;if(!t.encrypted||(s=t.decryptdata)!=null&&s.key?!t.encrypted&&a.encryptedFragments.length&&this.keyLoader.loadClear(t,a.encryptedFragments):(this.log(`Loading key for ${t.sn} of [${a.startSN}-${a.endSN}], ${this.logPrefix==="[stream-controller]"?"level":"track"} ${t.level}`),this.state=oa,this.fragCurrent=t,l=this.keyLoader.load(t).then((d)=>{if(!this.fragContextChanged(d.frag))return this.hls.trigger(b.KEY_LOADED,d),this.state===oa&&(this.state=Zt),d}),this.hls.trigger(b.KEY_LOADING,{frag:t}),this.fragCurrent===null&&(l=Promise.reject(new Error("frag load aborted, context changed in KEY_LOADING")))),i=Math.max(t.start,i||0),this.config.lowLatencyMode&&t.sn!=="initSegment"){let d=a.partList;if(d&&r){i>t.end&&a.fragmentHint&&(t=a.fragmentHint);let m=this.getNextPart(d,t,i);if(m>-1){let y=d[m],S;return this.log(`Loading part sn: ${t.sn} p: ${y.index} cc: ${t.cc} of playlist [${a.startSN}-${a.endSN}] parts [0-${m}-${d.length-1}] ${this.logPrefix==="[stream-controller]"?"level":"track"}: ${t.level}, target: ${parseFloat(i.toFixed(3))}`),this.nextLoadPosition=y.start+y.duration,this.state=Mr,S=l?l.then((T)=>!T||this.fragContextChanged(T.frag)?null:this.doFragPartsLoad(t,y,e,r)).catch((T)=>this.handleFragLoadError(T)):this.doFragPartsLoad(t,y,e,r).catch((T)=>this.handleFragLoadError(T)),this.hls.trigger(b.FRAG_LOADING,{frag:t,part:y,targetBufferTime:i}),this.fragCurrent===null?Promise.reject(new Error("frag load aborted, context changed in FRAG_LOADING parts")):S}if(!t.url||this.loadedEndOfParts(d,i))return Promise.resolve(null)}}this.log(`Loading fragment ${t.sn} cc: ${t.cc} ${a?"of ["+a.startSN+"-"+a.endSN+"] ":""}${this.logPrefix==="[stream-controller]"?"level":"track"}: ${t.level}, target: ${parseFloat(i.toFixed(3))}`),L(t.sn)&&!this.bitrateTest&&(this.nextLoadPosition=t.start+t.duration),this.state=Mr;let c=this.config.progressive,u;return u=c&&l?l.then((d)=>!d||this.fragContextChanged(d==null?void 0:d.frag)?null:this.fragmentLoader.load(t,r)).catch((d)=>this.handleFragLoadError(d)):Promise.all([this.fragmentLoader.load(t,c?r:void 0),l]).then(([d])=>(!c&&d&&r&&r(d),d)).catch((d)=>this.handleFragLoadError(d)),this.hls.trigger(b.FRAG_LOADING,{frag:t,targetBufferTime:i}),this.fragCurrent===null?Promise.reject(new Error("frag load aborted, context changed in FRAG_LOADING")):u}doFragPartsLoad(t,e,i,r){return new Promise((s,a)=>{var l;let c=[],u=(l=i.details)==null?void 0:l.partList,d=(m)=>{this.fragmentLoader.loadPart(t,m,r).then((y)=>{c[m.index]=y;let S=y.part;this.hls.trigger(b.FRAG_LOADED,y);let T=ao(i,t.sn,m.index+1)||oo(u,t.sn,m.index+1);if(!T)return s({frag:t,part:S,partsLoaded:c});d(T)}).catch(a)};d(e)})}handleFragLoadError(t){if("data"in t){let e=t.data;t.data&&e.details===P.INTERNAL_ABORTED?this.handleFragLoadAborted(e.frag,e.part):this.hls.trigger(b.ERROR,e)}else this.hls.trigger(b.ERROR,{type:H.OTHER_ERROR,details:P.INTERNAL_EXCEPTION,err:t,error:t,fatal:!0});return null}_handleTransmuxerFlush(t){let e=this.getCurrentContext(t);if(!e||this.state!==Fi)return void(this.fragCurrent||this.state===oi||this.state===xr||(this.state=Zt));let{frag:i,part:r,level:s}=e,a=self.performance.now();i.stats.parsing.end=a,r&&(r.stats.parsing.end=a),this.updateLevelTiming(i,r,s,t.partial)}getCurrentContext(t){let{levels:e,fragCurrent:i}=this,{level:r,sn:s,part:a}=t;if(e==null||!e[r])return this.warn(`Levels object was unset while buffering fragment ${s} of level ${r}. The current chunk will not be buffered.`),null;let l=e[r],c=a>-1?ao(l,s,a):null,u=c?c.fragment:function(d,m,y){if(d==null||!d.details)return null;let S=d.details,T=S.fragments[m-S.startSN];return T||(T=S.fragmentHint,T&&T.sn===m?T:m<S.startSN&&y&&y.sn===m?y:null)}(l,s,i);return u?(i&&i!==u&&(u.stats=i.stats),{frag:u,part:c,level:l}):null}bufferFragmentData(t,e,i,r,s){var a;if(!t||this.state!==Fi)return;let{data1:l,data2:c}=t,u=l;if(l&&c&&(u=si(l,c)),(a=u)==null||!a.length)return;let d={type:t.type,frag:e,part:i,chunkMeta:r,parent:e.type,data:u};if(this.hls.trigger(b.BUFFER_APPENDING,d),t.dropped&&t.independent&&!i){if(s)return;this.flushBufferGap(e)}}flushBufferGap(t){let e=this.media;if(!e)return;if(!Jt.isBuffered(e,e.currentTime))return void this.flushMainBuffer(0,t.start);let i=e.currentTime,r=Jt.bufferInfo(e,i,0),s=t.duration,a=Math.min(2*this.config.maxFragLookUpTolerance,0.25*s),l=Math.max(Math.min(t.start-a,r.end-a),i+a);t.start-l>a&&this.flushMainBuffer(l,t.start)}getFwdBufferInfo(t,e){let i=this.getLoadPosition();return L(i)?this.getFwdBufferInfoAtPos(t,i,e):null}getFwdBufferInfoAtPos(t,e,i){let{config:{maxBufferHole:r}}=this,s=Jt.bufferInfo(t,e,r);if(s.len===0&&s.nextStart!==void 0){let a=this.fragmentTracker.getBufferedFrag(e,i);if(a&&s.nextStart<a.end)return Jt.bufferInfo(t,e,Math.max(s.nextStart,r))}return s}getMaxBufferLength(t){let{config:e}=this,i;return i=t?Math.max(8*e.maxBufferSize/t,e.maxBufferLength):e.maxBufferLength,Math.min(i,e.maxMaxBufferLength)}reduceMaxBufferLength(t){let e=this.config,i=t||e.maxBufferLength;return e.maxMaxBufferLength>=i&&(e.maxMaxBufferLength/=2,this.warn(`Reduce max buffer length to ${e.maxMaxBufferLength}s`),!0)}getAppendedFrag(t,e=ie){let i=this.fragmentTracker.getAppendedFrag(t,ie);return i&&"fragment"in i?i.fragment:i}getNextFragment(t,e){let i=e.fragments,r=i.length;if(!r)return null;let{config:s}=this,a=i[0].start,l;if(e.live){let c=s.initialLiveManifestSize;if(r<c)return this.warn(`Not enough fragments to start playback (have: ${r}, need: ${c})`),null;(!e.PTSKnown&&!this.startFragRequested&&this.startPosition===-1||t<a)&&(l=this.getInitialLiveFragment(e,i),this.startPosition=this.nextLoadPosition=l?this.hls.liveSyncPosition||l.start:t)}else t<=a&&(l=i[0]);if(!l){let c=s.lowLatencyMode?e.partEnd:e.fragmentEnd;l=this.getFragmentAtPosition(t,c,e)}return this.mapToInitFragWhenRequired(l)}isLoopLoading(t,e){let i=this.fragmentTracker.getState(t);return(i===de||i===gr&&!!t.gap)&&this.nextLoadPosition>e}getNextFragmentLoopLoading(t,e,i,r,s){let a=t.gap,l=this.getNextFragment(this.nextLoadPosition,e);if(l===null)return l;if(t=l,a&&t&&!t.gap&&i.nextStart){let c=this.getFwdBufferInfoAtPos(this.mediaBuffer?this.mediaBuffer:this.media,i.nextStart,r);if(c!==null&&i.len+c.len>=s)return this.log(`buffer full after gaps in "${r}" playlist starting at sn: ${t.sn}`),null}return t}mapToInitFragWhenRequired(t){return t==null||!t.initSegment||t!=null&&t.initSegment.data||this.bitrateTest?t:t.initSegment}getNextPart(t,e,i){let r=-1,s=!1,a=!0;for(let l=0,c=t.length;l<c;l++){let u=t[l];if(a=a&&!u.independent,r>-1&&i<u.start)break;let d=u.loaded;d?r=-1:(s||u.independent||a)&&u.fragment===e&&(r=l),s=d}return r}loadedEndOfParts(t,e){let i=t[t.length-1];return i&&e>i.start&&i.loaded}getInitialLiveFragment(t,e){let i=this.fragPrevious,r=null;if(i){if(t.hasProgramDateTime&&(this.log("Live playlist, switching playlist, load frag with same PDT: "+i.programDateTime),r=function(s,a,l){if(a===null||!Array.isArray(s)||!s.length||!L(a))return null;if(a<(s[0].programDateTime||0))return null;if(a>=(s[s.length-1].endProgramDateTime||0))return null;l=l||0;for(let c=0;c<s.length;++c){let u=s[c];if(je(a,l,u))return u}return null}(e,i.endProgramDateTime,this.config.maxFragLookUpTolerance)),!r){let s=i.sn+1;if(s>=t.startSN&&s<=t.endSN){let a=e[s-t.startSN];i.cc===a.cc&&(r=a,this.log("Live playlist, switching playlist, load frag with next SN: "+r.sn))}r||(r=function(a,l){return nn(a,(c)=>c.cc<l?1:c.cc>l?-1:0)}(e,i.cc),r&&this.log("Live playlist, switching playlist, load frag with same CC: "+r.sn))}}else{let s=this.hls.liveSyncPosition;s!==null&&(r=this.getFragmentAtPosition(s,this.bitrateTest?t.fragmentEnd:t.edge,t))}return r}getFragmentAtPosition(t,e,i){let{config:r}=this,{fragPrevious:s}=this,{fragments:a,endSN:l}=i,{fragmentHint:c}=i,u=r.maxFragLookUpTolerance,d=i.partList,m=!!(r.lowLatencyMode&&d!=null&&d.length&&c),y;if(m&&c&&!this.bitrateTest&&(a=a.concat(c),l=c.sn),t<e)y=Cr(s,a,t,t>e-u?0:u);else y=a[a.length-1];if(y){let S=y.sn-i.startSN,T=this.fragmentTracker.getState(y);if((T===de||T===gr&&y.gap)&&(s=y),s&&y.sn===s.sn&&(!m||d[0].fragment.sn>y.sn)){if(s&&y.level===s.level){let w=a[S+1];y=y.sn<l&&this.fragmentTracker.getState(w)!==de?w:null}}}return y}synchronizeToLiveEdge(t){let{config:e,media:i}=this;if(!i)return;let r=this.hls.liveSyncPosition,s=i.currentTime,a=t.fragments[0].start,l=t.edge,c=s>=a-e.maxFragLookUpTolerance&&s<=l;if(r!==null&&i.duration>r&&(s<r||!c)){let u=e.liveMaxLatencyDuration!==void 0?e.liveMaxLatencyDuration:e.liveMaxLatencyDurationCount*t.targetduration;(!c&&i.readyState<4||s<l-u)&&(this.loadedmetadata||(this.nextLoadPosition=r),i.readyState&&(this.warn(`Playback: ${s.toFixed(3)} is located too far from the end of live sliding playlist: ${l}, reset currentTime to : ${r.toFixed(3)}`),i.currentTime=r))}}alignPlaylists(t,e,i){let r=t.fragments.length;if(!r)return this.warn("No fragments in live playlist"),0;let s=t.fragments[0].start,a=!e,l=t.alignedSliding&&L(s);if(a||!l&&!s){let{fragPrevious:c}=this;Il(c,i,t);let u=t.fragments[0].start;return this.log(`Live playlist sliding: ${u.toFixed(2)} start-sn: ${e?e.startSN:"na"}->${t.startSN} prev-sn: ${c?c.sn:"na"} fragments: ${r}`),u}return s}waitForCdnTuneIn(t){return t.live&&t.canBlockReload&&t.partTarget&&t.tuneInGoal>Math.max(t.partHoldBack,3*t.partTarget)}setStartPosition(t,e){let i=this.startPosition;if(i<e&&(i=-1),i===-1||this.lastCurrentTime===-1){let r=this.startTimeOffset!==null,s=r?this.startTimeOffset:t.startTimeOffset;s!==null&&L(s)?(i=e+s,s<0&&(i+=t.totalduration),i=Math.min(Math.max(e,i),e+t.totalduration),this.log(`Start time offset ${s} found in ${r?"multivariant":"media"} playlist, adjust startPosition to ${i}`),this.startPosition=i):t.live?i=this.hls.liveSyncPosition||e:this.startPosition=i=0,this.lastCurrentTime=i}this.nextLoadPosition=i}getLoadPosition(){let{media:t}=this,e=0;return this.loadedmetadata&&t?e=t.currentTime:this.nextLoadPosition&&(e=this.nextLoadPosition),e}handleFragLoadAborted(t,e){this.transmuxer&&t.sn!=="initSegment"&&t.stats.aborted&&(this.warn(`Fragment ${t.sn}${e?" part "+e.index:""} of level ${t.level} was aborted`),this.resetFragmentLoading(t))}resetFragmentLoading(t){this.fragCurrent&&(this.fragContextChanged(t)||this.state===Nr)||(this.state=Zt)}onFragmentOrKeyLoadError(t,e){if(e.chunkMeta&&!e.frag){let d=this.getCurrentContext(e.chunkMeta);d&&(e.frag=d.frag)}let i=e.frag;if(!i||i.type!==t||!this.levels)return;var r;if(this.fragContextChanged(i))return void this.warn(`Frag load error must match current frag to retry ${i.url} > ${(r=this.fragCurrent)==null?void 0:r.url}`);let s=e.details===P.FRAG_GAP;s&&this.fragmentTracker.fragBuffered(i,!0);let a=e.errorAction,{action:l,retryCount:c=0,retryConfig:u}=a||{};if(a&&l===De&&u){this.resetStartWhenNotLoaded(this.levelLastLoaded);let d=Xs(u,c);this.warn(`Fragment ${i.sn} of ${t} ${i.level} errored with ${e.details}, retrying loading ${c+1}/${u.maxNumRetry} in ${d}ms`),a.resolved=!0,this.retryDate=self.performance.now()+d,this.state=Nr}else if(u&&a){if(this.resetFragmentErrors(t),!(c<u.maxNumRetry))return void I.warn(`${e.details} reached or exceeded max retry (${c})`);s||l===sn||(a.resolved=!0)}else(a==null?void 0:a.action)===xi?this.state=fe:this.state=xr;this.tickImmediate()}reduceLengthAndFlushBuffer(t){if(this.state===Fi||this.state===cn){let e=t.parent,i=this.getFwdBufferInfo(this.mediaBuffer,e),r=i&&i.len>0.5;r&&this.reduceMaxBufferLength(i.len);let s=!r;return s&&this.warn(`Buffer full error while media.currentTime is not buffered, flush ${e} buffer`),t.frag&&(this.fragmentTracker.removeFragment(t.frag),this.nextLoadPosition=t.frag.start),this.resetLoadingState(),s}return!1}resetFragmentErrors(t){t===Ue&&(this.fragCurrent=null),this.loadedmetadata||(this.startFragRequested=!1),this.state!==oi&&(this.state=Zt)}afterBufferFlushed(t,e,i){if(!t)return;let r=Jt.getBuffered(t);this.fragmentTracker.detectEvictedFragments(e,r,i),this.state===un&&this.resetLoadingState()}resetLoadingState(){this.log("Reset loading state"),this.fragCurrent=null,this.fragPrevious=null,this.state=Zt}resetStartWhenNotLoaded(t){if(!this.loadedmetadata){this.startFragRequested=!1;let e=t?t.details:null;e!=null&&e.live?(this.startPosition=-1,this.setStartPosition(e,0),this.resetLoadingState()):this.nextLoadPosition=this.startPosition}}resetWhenMissingContext(t){this.warn(`The loading context changed while buffering fragment ${t.sn} of level ${t.level}. This chunk will not be buffered.`),this.removeUnbufferedFrags(),this.resetStartWhenNotLoaded(this.levelLastLoaded),this.resetLoadingState()}removeUnbufferedFrags(t=0){this.fragmentTracker.removeFragmentsInRange(t,1/0,this.playlistType,!1,!0)}updateLevelTiming(t,e,i,r){var s;let a=i.details;if(!a)return void this.warn("level.details undefined");if(!Object.keys(t.elementaryStreams).reduce((l,c)=>{let u=t.elementaryStreams[c];if(u){let d=u.endPTS-u.startPTS;if(d<=0)return this.warn(`Could not parse fragment ${t.sn} ${c} duration reliably (${d})`),l||!1;let m=r?0:en(a,t,u.startPTS,u.endPTS,u.startDTS,u.endDTS);return this.hls.trigger(b.LEVEL_PTS_UPDATED,{details:a,level:i,drift:m,type:c,frag:t,start:u.startPTS,end:u.endPTS}),!0}return l},!1)&&((s=this.transmuxer)==null?void 0:s.error)===null){let l=new Error(`Found no media in fragment ${t.sn} of level ${t.level} resetting transmuxer to fallback to playlist timing`);if(i.fragmentError===0&&(i.fragmentError++,t.gap=!0,this.fragmentTracker.removeFragment(t),this.fragmentTracker.fragBuffered(t,!0)),this.warn(l.message),this.hls.trigger(b.ERROR,{type:H.MEDIA_ERROR,details:P.FRAG_PARSING_ERROR,fatal:!1,error:l,frag:t,reason:`Found no media in msn ${t.sn} of level "${i.url}"`}),!this.hls)return;this.resetTransmuxer()}this.state=cn,this.hls.trigger(b.FRAG_PARSED,{frag:t,part:e})}resetTransmuxer(){this.transmuxer&&(this.transmuxer.destroy(),this.transmuxer=null)}recoverWorkerError(t){t.event==="demuxerWorker"&&(this.fragmentTracker.removeAllFragments(),this.resetTransmuxer(),this.resetStartWhenNotLoaded(this.levelLastLoaded),this.resetLoadingState())}set state(t){let e=this._state;e!==t&&(this._state=t,this.log(`${e}->${t}`))}get state(){return this._state}}class jn{constructor(){this.chunks=[],this.dataLength=0}push(t){this.chunks.push(t),this.dataLength+=t.length}flush(){let{chunks:t,dataLength:e}=this,i;return t.length?(i=t.length===1?t[0]:function(r,s){let a=new Uint8Array(s),l=0;for(let c=0;c<r.length;c++){let u=r[c];a.set(u,l),l+=u.length}return a}(t,e),this.reset(),i):new Uint8Array(0)}reset(){this.chunks.length=0,this.dataLength=0}}function wi(t="",e=90000){return{type:t,id:-1,pid:-1,inputTimeScale:e,sequenceNumber:-1,samples:[],dropped:0}}class zn{constructor(){this._audioTrack=void 0,this._id3Track=void 0,this.frameIndex=0,this.cachedData=null,this.basePTS=null,this.initPTS=null,this.lastPTS=null}resetInitSegment(t,e,i,r){this._id3Track={type:"id3",id:3,pid:-1,inputTimeScale:90000,sequenceNumber:0,samples:[],dropped:0}}resetTimeStamp(t){this.initPTS=t,this.resetContiguity()}resetContiguity(){this.basePTS=null,this.lastPTS=null,this.frameIndex=0}canParse(t,e){return!1}appendFrame(t,e,i){}demux(t,e){this.cachedData&&(t=si(this.cachedData,t),this.cachedData=null);let i,r=ui(t,0),s=r?r.length:0,a=this._audioTrack,l=this._id3Track,c=r?We(r):void 0,u=t.length;for((this.basePTS===null||this.frameIndex===0&&L(c))&&(this.basePTS=Ml(c,e,this.initPTS),this.lastPTS=this.basePTS),this.lastPTS===null&&(this.lastPTS=this.basePTS),r&&r.length>0&&l.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:r,type:Zr,duration:Number.POSITIVE_INFINITY});s<u;){if(this.canParse(t,s)){let d=this.appendFrame(a,t,s);d?(this.frameIndex++,this.lastPTS=d.sample.pts,s+=d.length,i=s):s=u}else Ci(t,s)?(r=ui(t,s),l.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:r,type:Zr,duration:Number.POSITIVE_INFINITY}),s+=r.length,i=s):s++;if(s===u&&i!==u){let d=ne(t,i);this.cachedData?this.cachedData=si(this.cachedData,d):this.cachedData=d}}return{audioTrack:a,videoTrack:wi(),id3Track:l,textTrack:wi()}}demuxSampleAes(t,e,i){return Promise.reject(new Error(`[${this}] This demuxer does not support Sample-AES decryption`))}flush(t){let e=this.cachedData;return e&&(this.cachedData=null,this.demux(e,0)),{audioTrack:this._audioTrack,videoTrack:wi(),id3Track:this._id3Track,textTrack:wi()}}destroy(){}}let Ml=(t,e,i)=>{if(L(t))return 90*t;return 90000*e+(i?90000*i.baseTime/i.timescale:0)};function po(t,e){return t[e]===255&&(246&t[e+1])==240}function vo(t,e){return 1&t[e+1]?7:9}function la(t,e){return(3&t[e+3])<<11|t[e+4]<<3|(224&t[e+5])>>>5}function qn(t,e){return e+1<t.length&&po(t,e)}function Nl(t,e){if(qn(t,e)){let i=vo(t,e);if(e+i>=t.length)return!1;let r=la(t,e);if(r<=i)return!1;let s=e+r;return s===t.length||qn(t,s)}return!1}function Eo(t,e,i,r,s){if(!t.samplerate){let a=function(l,c,u,d){let m,y,S,T,w=navigator.userAgent.toLowerCase(),D=d,k=[96000,88200,64000,48000,44100,32000,24000,22050,16000,12000,11025,8000,7350];m=1+((192&c[u+2])>>>6);let N=(60&c[u+2])>>>2;if(!(N>k.length-1))return S=(1&c[u+2])<<2,S|=(192&c[u+3])>>>6,I.log(`manifest codec:${d}, ADTS type:${m}, samplingIndex:${N}`),/firefox/i.test(w)?N>=6?(m=5,T=new Array(4),y=N-3):(m=2,T=new Array(2),y=N):w.indexOf("android")!==-1?(m=2,T=new Array(2),y=N):(m=5,T=new Array(4),d&&(d.indexOf("mp4a.40.29")!==-1||d.indexOf("mp4a.40.5")!==-1)||!d&&N>=6?y=N-3:((d&&d.indexOf("mp4a.40.2")!==-1&&(N>=6&&S===1||/vivaldi/i.test(w))||!d&&S===1)&&(m=2,T=new Array(2)),y=N)),T[0]=m<<3,T[0]|=(14&N)>>1,T[1]|=(1&N)<<7,T[1]|=S<<3,m===5&&(T[1]|=(14&y)>>1,T[2]=(1&y)<<7,T[2]|=8,T[3]=0),{config:T,samplerate:k[N],channelCount:S,codec:"mp4a.40."+m,manifestCodec:D};{let x=new Error("invalid ADTS sampling index:"+N);l.emit(b.ERROR,b.ERROR,{type:H.MEDIA_ERROR,details:P.FRAG_PARSING_ERROR,fatal:!0,error:x,reason:x.message})}}(e,i,r,s);if(!a)return;t.config=a.config,t.samplerate=a.samplerate,t.channelCount=a.channelCount,t.codec=a.codec,t.manifestCodec=a.manifestCodec,I.log(`parsed codec:${t.codec}, rate:${a.samplerate}, channels:${a.channelCount}`)}}function vi(t){return 92160000/t}function pr(t,e,i,r,s){let a=r+s*vi(t.samplerate),l=function(d,m){let y=vo(d,m);if(m+y<=d.length){let S=la(d,m)-y;if(S>0)return{headerLength:y,frameLength:S}}}(e,i),c;if(l){let{frameLength:d,headerLength:m}=l,y=m+d,S=Math.max(0,i+y-e.length);S?(c=new Uint8Array(y-m),c.set(e.subarray(i+m,e.length),0)):c=e.subarray(i+m,i+y);let T={unit:c,pts:a};return S||t.samples.push(T),{sample:T,length:y,missing:S}}let u=e.length-i;return c=new Uint8Array(u),c.set(e.subarray(i,e.length),0),{sample:{unit:c,pts:a},length:u,missing:-1}}let vr=null,be=[32,64,96,128,160,192,224,256,288,320,352,384,416,448,32,48,56,64,80,96,112,128,160,192,224,256,320,384,32,40,48,56,64,80,96,112,128,160,192,224,256,320,32,48,56,64,80,96,112,128,144,160,176,192,224,256,8,16,24,32,40,48,56,64,80,96,112,128,144,160],yo=[44100,48000,32000,22050,24000,16000,11025,12000,8000],So=[[0,72,144,12],[0,0,0,0],[0,72,144,12],[0,144,144,12]],bo=[0,1,1,4];function ca(t,e,i,r,s){if(i+24>e.length)return;let a=ua(e,i);if(a&&i+a.frameLength<=e.length){let l=r+s*(90000*a.samplesPerFrame/a.sampleRate),c={unit:e.subarray(i,i+a.frameLength),pts:l,dts:l};return t.config=[],t.channelCount=a.channelCount,t.samplerate=a.sampleRate,t.samples.push(c),{sample:c,length:a.frameLength,missing:0}}}function ua(t,e){let i=t[e+1]>>3&3,r=t[e+1]>>1&3,s=t[e+2]>>4&15,a=t[e+2]>>2&3;if(i!==1&&s!==0&&s!==15&&a!==3){let l=t[e+2]>>1&1,c=t[e+3]>>6,u=1000*be[14*(i===3?3-r:r===3?3:4)+s-1],d=yo[3*(i===3?0:i===2?1:2)+a],m=c===3?1:2,y=So[i][r],S=bo[r],T=8*y*S,w=Math.floor(y*u/d+l)*S;if(vr===null){let D=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);vr=D?parseInt(D[1]):0}return!!vr&&vr<=87&&r===2&&u>=224000&&c===0&&(t[e+3]=128|t[e+3]),{sampleRate:d,channelCount:m,frameLength:w,samplesPerFrame:T}}}function Xn(t,e){return t[e]===255&&(224&t[e+1])==224&&(6&t[e+1])!=0}function da(t,e){return e+1<t.length&&Xn(t,e)}function ha(t,e){if(e+1<t.length&&Xn(t,e)){let r=ua(t,e),s=4;r!=null&&r.frameLength&&(s=r.frameLength);let a=e+s;return a===t.length||da(t,a)}return!1}let To=/\/emsg[-/]ID3/i,Jn=(t,e)=>{let i=0,r=5;e+=r;let s=new Uint32Array(1),a=new Uint32Array(1),l=new Uint8Array(1);for(;r>0;){l[0]=t[e];let c=Math.min(r,8),u=8-c;a[0]=4278190080>>>24+u<<u,s[0]=(l[0]&a[0])>>u,i=i?i<<c|s[0]:s[0],e+=1,r-=c}return i};class fa extends zn{constructor(t){super(),this.observer=void 0,this.observer=t}resetInitSegment(t,e,i,r){super.resetInitSegment(t,e,i,r),this._audioTrack={container:"audio/ac-3",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"ac3",samples:[],manifestCodec:e,duration:r,inputTimeScale:90000,dropped:0}}canParse(t,e){return e+64<t.length}appendFrame(t,e,i){let r=Qn(t,e,i,this.basePTS,this.frameIndex);if(r!==-1)return{sample:t.samples[t.samples.length-1],length:r,missing:0}}static probe(t){if(!t)return!1;let e=ui(t,0);if(!e)return!1;let i=e.length;return t[i]===11&&t[i+1]===119&&We(e)!==void 0&&Jn(t,i)<16}}function Qn(t,e,i,r,s){if(i+8>e.length)return-1;if(e[i]!==11||e[i+1]!==119)return-1;let a=e[i+4]>>6;if(a>=3)return-1;let l=[48000,44100,32000][a],c=63&e[i+4],u=2*[64,69,96,64,70,96,80,87,120,80,88,120,96,104,144,96,105,144,112,121,168,112,122,168,128,139,192,128,140,192,160,174,240,160,175,240,192,208,288,192,209,288,224,243,336,224,244,336,256,278,384,256,279,384,320,348,480,320,349,480,384,417,576,384,418,576,448,487,672,448,488,672,512,557,768,512,558,768,640,696,960,640,697,960,768,835,1152,768,836,1152,896,975,1344,896,976,1344,1024,1114,1536,1024,1115,1536,1152,1253,1728,1152,1254,1728,1280,1393,1920,1280,1394,1920][3*c+a];if(i+u>e.length)return-1;let d=e[i+6]>>5,m=0;d===2?m+=2:(1&d&&d!==1&&(m+=2),4&d&&(m+=2));let y=(e[i+6]<<8|e[i+7])>>12-m&1,S=[2,1,2,3,3,4,4,5][d]+y,T=e[i+5]>>3,w=7&e[i+5],D=new Uint8Array([a<<6|T<<1|w>>2,(3&w)<<6|d<<3|y<<2|c>>4,c<<4&224]),k=r+s*(1536/l*90000),N=e.subarray(i,i+u);return t.config=D,t.channelCount=S,t.samplerate=l,t.samples.push({unit:N,pts:k}),u}class Zn{constructor(t){this.data=void 0,this.bytesAvailable=void 0,this.word=void 0,this.bitsAvailable=void 0,this.data=t,this.bytesAvailable=t.byteLength,this.word=0,this.bitsAvailable=0}loadWord(){let t=this.data,e=this.bytesAvailable,i=t.byteLength-e,r=new Uint8Array(4),s=Math.min(4,e);if(s===0)throw new Error("no bytes available");r.set(t.subarray(i,i+s)),this.word=new DataView(r.buffer).getUint32(0),this.bitsAvailable=8*s,this.bytesAvailable-=s}skipBits(t){let e;t=Math.min(t,8*this.bytesAvailable+this.bitsAvailable),this.bitsAvailable>t?(this.word<<=t,this.bitsAvailable-=t):(e=(t-=this.bitsAvailable)>>3,t-=e<<3,this.bytesAvailable-=e,this.loadWord(),this.word<<=t,this.bitsAvailable-=t)}readBits(t){let e=Math.min(this.bitsAvailable,t),i=this.word>>>32-e;if(t>32&&I.error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=e,this.bitsAvailable>0)this.word<<=e;else{if(!(this.bytesAvailable>0))throw new Error("no bits available");this.loadWord()}return e=t-e,e>0&&this.bitsAvailable?i<<e|this.readBits(e):i}skipLZ(){let t;for(t=0;t<this.bitsAvailable;++t)if((this.word&2147483648>>>t)!=0)return this.word<<=t,this.bitsAvailable-=t,t;return this.loadWord(),t+this.skipLZ()}skipUEG(){this.skipBits(1+this.skipLZ())}skipEG(){this.skipBits(1+this.skipLZ())}readUEG(){let t=this.skipLZ();return this.readBits(t+1)-1}readEG(){let t=this.readUEG();return 1&t?1+t>>>1:-1*(t>>>1)}readBoolean(){return this.readBits(1)===1}readUByte(){return this.readBits(8)}readUShort(){return this.readBits(16)}readUInt(){return this.readBits(32)}skipScalingList(t){let e,i=8,r=8;for(let s=0;s<t;s++)r!==0&&(e=this.readEG(),r=(i+e+256)%256),i=r===0?i:r}readSPS(){let t,e,i,r=0,s=0,a=0,l=0,c=this.readUByte.bind(this),u=this.readBits.bind(this),d=this.readUEG.bind(this),m=this.readBoolean.bind(this),y=this.skipBits.bind(this),S=this.skipEG.bind(this),T=this.skipUEG.bind(this),w=this.skipScalingList.bind(this);c();let D=c();if(u(5),y(3),c(),T(),D===100||D===110||D===122||D===244||D===44||D===83||D===86||D===118||D===128){let rt=d();if(rt===3&&y(1),T(),T(),y(1),m())for(e=rt!==3?8:12,i=0;i<e;i++)m()&&w(i<6?16:64)}T();let k=d();if(k===0)d();else if(k===1)for(y(1),S(),S(),t=d(),i=0;i<t;i++)S();T(),y(1);let N=d(),x=d(),G=u(1);G===0&&y(1),y(1),m()&&(r=d(),s=d(),a=d(),l=d());let Y=[1,1];if(m()&&m())switch(c()){case 1:Y=[1,1];break;case 2:Y=[12,11];break;case 3:Y=[10,11];break;case 4:Y=[16,11];break;case 5:Y=[40,33];break;case 6:Y=[24,11];break;case 7:Y=[20,11];break;case 8:Y=[32,11];break;case 9:Y=[80,33];break;case 10:Y=[18,11];break;case 11:Y=[15,11];break;case 12:Y=[64,33];break;case 13:Y=[160,99];break;case 14:Y=[4,3];break;case 15:Y=[3,2];break;case 16:Y=[2,1];break;case 255:Y=[c()<<8|c(),c()<<8|c()]}return{width:Math.ceil(16*(N+1)-2*r-2*s),height:(2-G)*(x+1)*16-(G?2:4)*(a+l),pixelRatio:Y}}readSliceType(){return this.readUByte(),this.readUEG(),this.readUEG()}}class ma extends class t{constructor(){this.VideoSample=null}createVideoSample(e,i,r,s){return{key:e,frame:!1,pts:i,dts:r,units:[],debug:s,length:0}}getLastNalUnit(e){var i;let r,s=this.VideoSample;if(s&&s.units.length!==0||(s=e[e.length-1]),(i=s)!=null&&i.units){let a=s.units;r=a[a.length-1]}return r}pushAccessUnit(e,i){if(e.units.length&&e.frame){if(e.pts===void 0){let r=i.samples,s=r.length;if(!s)return void i.dropped++;{let a=r[s-1];e.pts=a.pts,e.dts=a.dts}}i.samples.push(e)}e.debug.length&&I.log(e.pts+"/"+e.dts+":"+e.debug)}}{parseAVCPES(t,e,i,r,s){let a=this.parseAVCNALu(t,i.data),l,c=this.VideoSample,u=!1;i.data=null,c&&a.length&&!t.audFound&&(this.pushAccessUnit(c,t),c=this.VideoSample=this.createVideoSample(!1,i.pts,i.dts,"")),a.forEach((d)=>{var m;switch(d.type){case 1:{let w=!1;l=!0;let D=d.data;if(u&&D.length>4){let k=new Zn(D).readSliceType();k!==2&&k!==4&&k!==7&&k!==9||(w=!0)}var y;if(w)(y=c)!=null&&y.frame&&!c.key&&(this.pushAccessUnit(c,t),c=this.VideoSample=null);c||(c=this.VideoSample=this.createVideoSample(!0,i.pts,i.dts,"")),c.frame=!0,c.key=w;break}case 5:l=!0,(m=c)!=null&&m.frame&&!c.key&&(this.pushAccessUnit(c,t),c=this.VideoSample=null),c||(c=this.VideoSample=this.createVideoSample(!0,i.pts,i.dts,"")),c.key=!0,c.frame=!0;break;case 6:l=!0,Ya(d.data,1,i.pts,e.samples);break;case 7:{var S,T;l=!0,u=!0;let w=d.data,D=new Zn(w).readSPS();if(!t.sps||t.width!==D.width||t.height!==D.height||((S=t.pixelRatio)==null?void 0:S[0])!==D.pixelRatio[0]||((T=t.pixelRatio)==null?void 0:T[1])!==D.pixelRatio[1]){t.width=D.width,t.height=D.height,t.pixelRatio=D.pixelRatio,t.sps=[w],t.duration=s;let k=w.subarray(1,4),N="avc1.";for(let x=0;x<3;x++){let G=k[x].toString(16);G.length<2&&(G="0"+G),N+=G}t.codec=N}break}case 8:l=!0,t.pps=[d.data];break;case 9:l=!0,t.audFound=!0,c&&this.pushAccessUnit(c,t),c=this.VideoSample=this.createVideoSample(!1,i.pts,i.dts,"");break;case 12:l=!0;break;default:l=!1,c&&(c.debug+="unknown NAL "+d.type+" ")}if(c&&l)c.units.push(d)}),r&&c&&(this.pushAccessUnit(c,t),this.VideoSample=null)}parseAVCNALu(t,e){let i=e.byteLength,r=t.naluState||0,s=r,a=[],l,c,u,d=0,m=-1,y=0;for(r===-1&&(m=0,y=31&e[0],r=0,d=1);d<i;)if(l=e[d++],r)if(r!==1)if(l)if(l===1){if(c=d-r-1,m>=0){let S={data:e.subarray(m,c),type:y};a.push(S)}else{let S=this.getLastNalUnit(t.samples);S&&(s&&d<=4-s&&S.state&&(S.data=S.data.subarray(0,S.data.byteLength-s)),c>0&&(S.data=si(S.data,e.subarray(0,c)),S.state=0))}d<i?(u=31&e[d],m=d,y=u,r=0):r=-1}else r=0;else r=3;else r=l?0:2;else r=l?0:1;if(m>=0&&r>=0){let S={data:e.subarray(m,i),type:y,state:r};a.push(S)}if(a.length===0){let S=this.getLastNalUnit(t.samples);S&&(S.data=si(S.data,e))}return t.naluState=r,a}}class ga{constructor(t,e,i){this.keyData=void 0,this.decrypter=void 0,this.keyData=i,this.decrypter=new ln(e,{removePKCS7Padding:!1})}decryptBuffer(t){return this.decrypter.decrypt(t,this.keyData.key.buffer,this.keyData.iv.buffer)}decryptAacSample(t,e,i){let r=t[e].unit;if(r.length<=16)return;let s=r.subarray(16,r.length-r.length%16),a=s.buffer.slice(s.byteOffset,s.byteOffset+s.length);this.decryptBuffer(a).then((l)=>{let c=new Uint8Array(l);r.set(c,16),this.decrypter.isSync()||this.decryptAacSamples(t,e+1,i)})}decryptAacSamples(t,e,i){for(;;e++){if(e>=t.length)return void i();if(!(t[e].unit.length<32)&&(this.decryptAacSample(t,e,i),!this.decrypter.isSync()))return}}getAvcEncryptedData(t){let e=16*Math.floor((t.length-48)/160)+16,i=new Int8Array(e),r=0;for(let s=32;s<t.length-16;s+=160,r+=16)i.set(t.subarray(s,s+16),r);return i}getAvcDecryptedUnit(t,e){let i=new Uint8Array(e),r=0;for(let s=32;s<t.length-16;s+=160,r+=16)t.set(i.subarray(r,r+16),s);return t}decryptAvcSample(t,e,i,r,s){let a=kn(s.data),l=this.getAvcEncryptedData(a);this.decryptBuffer(l.buffer).then((c)=>{s.data=this.getAvcDecryptedUnit(a,c),this.decrypter.isSync()||this.decryptAvcSamples(t,e,i+1,r)})}decryptAvcSamples(t,e,i,r){if(t instanceof Uint8Array)throw new Error("Cannot decrypt samples of type Uint8Array");for(;;e++,i=0){if(e>=t.length)return void r();let s=t[e].units;for(;!(i>=s.length);i++){let a=s[i];if(!(a.data.length<=48||a.type!==1&&a.type!==5||(this.decryptAvcSample(t,e,i,r,a),this.decrypter.isSync())))return}}}}class Ui{constructor(t,e,i){this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.sampleAes=null,this.pmtParsed=!1,this.audioCodec=void 0,this.videoCodec=void 0,this._duration=0,this._pmtId=-1,this._videoTrack=void 0,this._audioTrack=void 0,this._id3Track=void 0,this._txtTrack=void 0,this.aacOverFlow=null,this.remainderData=null,this.videoParser=void 0,this.observer=t,this.config=e,this.typeSupported=i,this.videoParser=new ma}static probe(t){let e=Ui.syncOffset(t);return e>0&&I.warn("MPEG2-TS detected but first sync word found @ offset "+e),e!==-1}static syncOffset(t){let e=t.length,i=Math.min(940,e-188)+1,r=0;for(;r<i;){let s=!1,a=-1,l=0;for(let c=r;c<e;c+=188){if(t[c]!==71||e-c!=188&&t[c+188]!==71){if(l)return-1;break}if(l++,a===-1&&(a=c,a!==0&&(i=Math.min(a+18612,t.length-188)+1)),s||(s=ts(t,c)===0),s&&l>1&&(a===0&&l>2||c+188>i))return a}r++}return-1}static createTrack(t,e){return{container:t==="video"||t==="audio"?"video/mp2t":void 0,type:t,id:oe[t],pid:-1,inputTimeScale:90000,sequenceNumber:0,samples:[],dropped:0,duration:t==="audio"?e:void 0}}resetInitSegment(t,e,i,r){this.pmtParsed=!1,this._pmtId=-1,this._videoTrack=Ui.createTrack("video"),this._audioTrack=Ui.createTrack("audio",r),this._id3Track=Ui.createTrack("id3"),this._txtTrack=Ui.createTrack("text"),this._audioTrack.segmentCodec="aac",this.aacOverFlow=null,this.remainderData=null,this.audioCodec=e,this.videoCodec=i,this._duration=r}resetTimeStamp(){}resetContiguity(){let{_audioTrack:t,_videoTrack:e,_id3Track:i}=this;t&&(t.pesData=null),e&&(e.pesData=null),i&&(i.pesData=null),this.aacOverFlow=null,this.remainderData=null}demux(t,e,i=!1,r=!1){let s;i||(this.sampleAes=null);let a=this._videoTrack,l=this._audioTrack,c=this._id3Track,u=this._txtTrack,d=a.pid,m=a.pesData,y=l.pid,S=c.pid,T=l.pesData,w=c.pesData,D=null,k=this.pmtParsed,N=this._pmtId,x=t.length;if(this.remainderData&&(x=(t=si(this.remainderData,t)).length,this.remainderData=null),x<188&&!r)return this.remainderData=t,{audioTrack:l,videoTrack:a,id3Track:c,textTrack:u};let G=Math.max(0,Ui.syncOffset(t));x-=(x-G)%188,x<t.byteLength&&!r&&(this.remainderData=new Uint8Array(t.buffer,x,t.buffer.byteLength-x));let Y=0;for(let J=G;J<x;J+=188)if(t[J]===71){let ut=!!(64&t[J+1]),ft=ts(t,J),Z;if((48&t[J+3])>>4>1){if(Z=J+5+t[J+4],Z===J+188)continue}else Z=J+4;switch(ft){case d:ut&&(m&&(s=Er(m))&&this.videoParser.parseAVCPES(a,u,s,!1,this._duration),m={data:[],size:0}),m&&(m.data.push(t.subarray(Z,J+188)),m.size+=J+188-Z);break;case y:if(ut){if(T&&(s=Er(T)))switch(l.segmentCodec){case"aac":this.parseAACPES(l,s);break;case"mp3":this.parseMPEGPES(l,s);break;case"ac3":this.parseAC3PES(l,s)}T={data:[],size:0}}T&&(T.data.push(t.subarray(Z,J+188)),T.size+=J+188-Z);break;case S:ut&&(w&&(s=Er(w))&&this.parseID3PES(c,s),w={data:[],size:0}),w&&(w.data.push(t.subarray(Z,J+188)),w.size+=J+188-Z);break;case 0:ut&&(Z+=t[Z]+1),N=this._pmtId=Ao(t,Z);break;case N:{ut&&(Z+=t[Z]+1);let Q=pa(t,Z,this.typeSupported,i);d=Q.videoPid,d>0&&(a.pid=d,a.segmentCodec=Q.segmentVideoCodec),y=Q.audioPid,y>0&&(l.pid=y,l.segmentCodec=Q.segmentAudioCodec),S=Q.id3Pid,S>0&&(c.pid=S),D===null||k||(I.warn(`MPEG-TS PMT found at ${J} after unknown PID '${D}'. Backtracking to sync byte @${G} to parse all TS packets.`),D=null,J=G-188),k=this.pmtParsed=!0;break}case 17:case 8191:break;default:D=ft}}else Y++;if(Y>0){let J=new Error(`Found ${Y} TS packet/s that do not start with 0x47`);this.observer.emit(b.ERROR,b.ERROR,{type:H.MEDIA_ERROR,details:P.FRAG_PARSING_ERROR,fatal:!1,error:J,reason:J.message})}a.pesData=m,l.pesData=T,c.pesData=w;let rt={audioTrack:l,videoTrack:a,id3Track:c,textTrack:u};return r&&this.extractRemainingSamples(rt),rt}flush(){let{remainderData:t}=this,e;return this.remainderData=null,e=t?this.demux(t,-1,!1,!0):{videoTrack:this._videoTrack,audioTrack:this._audioTrack,id3Track:this._id3Track,textTrack:this._txtTrack},this.extractRemainingSamples(e),this.sampleAes?this.decrypt(e,this.sampleAes):e}extractRemainingSamples(t){let{audioTrack:e,videoTrack:i,id3Track:r,textTrack:s}=t,a=i.pesData,l=e.pesData,c=r.pesData,u;if(a&&(u=Er(a))?(this.videoParser.parseAVCPES(i,s,u,!0,this._duration),i.pesData=null):i.pesData=a,l&&(u=Er(l))){switch(e.segmentCodec){case"aac":this.parseAACPES(e,u);break;case"mp3":this.parseMPEGPES(e,u);break;case"ac3":this.parseAC3PES(e,u)}e.pesData=null}else l!=null&&l.size&&I.log("last AAC PES packet truncated,might overlap between fragments"),e.pesData=l;c&&(u=Er(c))?(this.parseID3PES(r,u),r.pesData=null):r.pesData=c}demuxSampleAes(t,e,i){let r=this.demux(t,i,!0,!this.config.progressive),s=this.sampleAes=new ga(this.observer,this.config,e);return this.decrypt(r,s)}decrypt(t,e){return new Promise((i)=>{let{audioTrack:r,videoTrack:s}=t;r.samples&&r.segmentCodec==="aac"?e.decryptAacSamples(r.samples,0,()=>{s.samples?e.decryptAvcSamples(s.samples,0,0,()=>{i(t)}):i(t)}):s.samples&&e.decryptAvcSamples(s.samples,0,0,()=>{i(t)})})}destroy(){this._duration=0}parseAACPES(t,e){let i=0,r=this.aacOverFlow,s,a,l,c=e.data;if(r){this.aacOverFlow=null;let m=r.missing,y=r.sample.unit.byteLength;if(m===-1)c=si(r.sample.unit,c);else{let S=y-m;r.sample.unit.set(c.subarray(0,m),S),t.samples.push(r.sample),i=r.missing}}for(s=i,a=c.length;s<a-1&&!qn(c,s);s++);if(s!==i){let m,y=s<a-1;m=y?"AAC PES did not start with ADTS header,offset:"+s:"No ADTS header found in AAC PES";let S=new Error(m);if(I.warn("parsing error: "+m),this.observer.emit(b.ERROR,b.ERROR,{type:H.MEDIA_ERROR,details:P.FRAG_PARSING_ERROR,fatal:!1,levelRetry:y,error:S,reason:m}),!y)return}if(Eo(t,this.observer,c,s,this.audioCodec),e.pts!==void 0)l=e.pts;else{if(!r)return void I.warn("[tsdemuxer]: AAC PES unknown PTS");{let m=vi(t.samplerate);l=r.sample.pts+m}}let u,d=0;for(;s<a;){if(u=pr(t,c,s,l,d),s+=u.length,u.missing){this.aacOverFlow=u;break}for(d++;s<a-1&&!qn(c,s);s++);}}parseMPEGPES(t,e){let i=e.data,r=i.length,s=0,a=0,l=e.pts;if(l!==void 0)for(;a<r;)if(da(i,a)){let c=ca(t,i,a,l,s);if(!c)break;a+=c.length,s++}else a++;else I.warn("[tsdemuxer]: MPEG PES unknown PTS")}parseAC3PES(t,e){{let{data:i,pts:r}=e;if(r===void 0)return void I.warn("[tsdemuxer]: AC3 PES unknown PTS");let s=i.length,a,l=0,c=0;for(;c<s&&(a=Qn(t,i,c,r,l++))>0;)c+=a}}parseID3PES(t,e){if(e.pts===void 0)return void I.warn("[tsdemuxer]: ID3 PES unknown PTS");let i=A({},e,{type:this._videoTrack?Rr:Zr,duration:Number.POSITIVE_INFINITY});t.samples.push(i)}}function ts(t,e){return((31&t[e+1])<<8)+t[e+2]}function Ao(t,e){return(31&t[e+10])<<8|t[e+11]}function pa(t,e,i,r){let s={audioPid:-1,videoPid:-1,id3Pid:-1,segmentVideoCodec:"avc",segmentAudioCodec:"aac"},a=e+3+((15&t[e+1])<<8|t[e+2])-4;for(e+=12+((15&t[e+10])<<8|t[e+11]);e<a;){let l=ts(t,e),c=(15&t[e+3])<<8|t[e+4];switch(t[e]){case 207:if(!r){es("ADTS AAC");break}case 15:s.audioPid===-1&&(s.audioPid=l);break;case 21:s.id3Pid===-1&&(s.id3Pid=l);break;case 219:if(!r){es("H.264");break}case 27:s.videoPid===-1&&(s.videoPid=l,s.segmentVideoCodec="avc");break;case 3:case 4:i.mpeg||i.mp3?s.audioPid===-1&&(s.audioPid=l,s.segmentAudioCodec="mp3"):I.log("MPEG audio found, not supported in this browser");break;case 193:if(!r){es("AC-3");break}case 129:i.ac3?s.audioPid===-1&&(s.audioPid=l,s.segmentAudioCodec="ac3"):I.log("AC-3 audio found, not supported in this browser");break;case 6:if(s.audioPid===-1&&c>0){let u=e+5,d=c;for(;d>2;){switch(t[u]){case 106:i.ac3!==!0?I.log("AC-3 audio found, not supported in this browser for now"):(s.audioPid=l,s.segmentAudioCodec="ac3")}let m=t[u+1]+2;u+=m,d-=m}}break;case 194:case 135:I.warn("Unsupported EC-3 in M2TS found");break;case 36:I.warn("Unsupported HEVC in M2TS found")}e+=c+5}return s}function es(t){I.log(t+" with AES-128-CBC encryption found in unencrypted stream")}function Er(t){let e,i,r,s,a,l=0,c=t.data;if(!t||t.size===0)return null;for(;c[0].length<19&&c.length>1;)c[0]=si(c[0],c[1]),c.splice(1,1);if(e=c[0],(e[0]<<16)+(e[1]<<8)+e[2]===1){if(i=(e[4]<<8)+e[5],i&&i>t.size-6)return null;let u=e[7];192&u&&(s=536870912*(14&e[9])+4194304*(255&e[10])+16384*(254&e[11])+128*(255&e[12])+(254&e[13])/2,64&u?(a=536870912*(14&e[14])+4194304*(255&e[15])+16384*(254&e[16])+128*(255&e[17])+(254&e[18])/2,s-a>5400000&&(I.warn(Math.round((s-a)/90000)+"s delta between PTS and DTS, align them"),s=a)):a=s),r=e[8];let d=r+9;if(t.size<=d)return null;t.size-=d;let m=new Uint8Array(t.size);for(let y=0,S=c.length;y<S;y++){e=c[y];let T=e.byteLength;if(d){if(d>T){d-=T;continue}e=e.subarray(d),T-=d,d=0}m.set(e,l),l+=T}return i&&(i-=r+3),{data:m,pts:s,dts:a,len:i}}return null}class hn{static getSilentFrame(t,e){switch(t){case"mp4a.40.2":if(e===1)return new Uint8Array([0,200,0,128,35,128]);if(e===2)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(e===3)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(e===4)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(e===5)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(e===6)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224]);break;default:if(e===1)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(e===2)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(e===3)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94])}}}let f=Math.pow(2,32)-1;class g{static init(){let t;for(t in g.types={avc1:[],avcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],".mp3":[],dac3:[],"ac-3":[],mvex:[],mvhd:[],pasp:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[]},g.types)g.types.hasOwnProperty(t)&&(g.types[t]=[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3)]);let e=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),i=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]);g.HDLR_TYPES={video:e,audio:i};let r=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),s=new Uint8Array([0,0,0,0,0,0,0,0]);g.STTS=g.STSC=g.STCO=s,g.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),g.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]),g.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),g.STSD=new Uint8Array([0,0,0,0,0,0,0,1]);let a=new Uint8Array([105,115,111,109]),l=new Uint8Array([97,118,99,49]),c=new Uint8Array([0,0,0,1]);g.FTYP=g.box(g.types.ftyp,a,c,a,l),g.DINF=g.box(g.types.dinf,g.box(g.types.dref,r))}static box(t,...e){let i=8,r=e.length,s=r;for(;r--;)i+=e[r].byteLength;let a=new Uint8Array(i);for(a[0]=i>>24&255,a[1]=i>>16&255,a[2]=i>>8&255,a[3]=255&i,a.set(t,4),r=0,i=8;r<s;r++)a.set(e[r],i),i+=e[r].byteLength;return a}static hdlr(t){return g.box(g.types.hdlr,g.HDLR_TYPES[t])}static mdat(t){return g.box(g.types.mdat,t)}static mdhd(t,e){e*=t;let i=Math.floor(e/(f+1)),r=Math.floor(e%(f+1));return g.box(g.types.mdhd,new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,t>>24&255,t>>16&255,t>>8&255,255&t,i>>24,i>>16&255,i>>8&255,255&i,r>>24,r>>16&255,r>>8&255,255&r,85,196,0,0]))}static mdia(t){return g.box(g.types.mdia,g.mdhd(t.timescale,t.duration),g.hdlr(t.type),g.minf(t))}static mfhd(t){return g.box(g.types.mfhd,new Uint8Array([0,0,0,0,t>>24,t>>16&255,t>>8&255,255&t]))}static minf(t){return t.type==="audio"?g.box(g.types.minf,g.box(g.types.smhd,g.SMHD),g.DINF,g.stbl(t)):g.box(g.types.minf,g.box(g.types.vmhd,g.VMHD),g.DINF,g.stbl(t))}static moof(t,e,i){return g.box(g.types.moof,g.mfhd(t),g.traf(i,e))}static moov(t){let e=t.length,i=[];for(;e--;)i[e]=g.trak(t[e]);return g.box.apply(null,[g.types.moov,g.mvhd(t[0].timescale,t[0].duration)].concat(i).concat(g.mvex(t)))}static mvex(t){let e=t.length,i=[];for(;e--;)i[e]=g.trex(t[e]);return g.box.apply(null,[g.types.mvex,...i])}static mvhd(t,e){e*=t;let i=Math.floor(e/(f+1)),r=Math.floor(e%(f+1)),s=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,t>>24&255,t>>16&255,t>>8&255,255&t,i>>24,i>>16&255,i>>8&255,255&i,r>>24,r>>16&255,r>>8&255,255&r,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return g.box(g.types.mvhd,s)}static sdtp(t){let e=t.samples||[],i=new Uint8Array(4+e.length),r,s;for(r=0;r<e.length;r++)s=e[r].flags,i[r+4]=s.dependsOn<<4|s.isDependedOn<<2|s.hasRedundancy;return g.box(g.types.sdtp,i)}static stbl(t){return g.box(g.types.stbl,g.stsd(t),g.box(g.types.stts,g.STTS),g.box(g.types.stsc,g.STSC),g.box(g.types.stsz,g.STSZ),g.box(g.types.stco,g.STCO))}static avc1(t){let e,i,r,s=[],a=[];for(e=0;e<t.sps.length;e++)i=t.sps[e],r=i.byteLength,s.push(r>>>8&255),s.push(255&r),s=s.concat(Array.prototype.slice.call(i));for(e=0;e<t.pps.length;e++)i=t.pps[e],r=i.byteLength,a.push(r>>>8&255),a.push(255&r),a=a.concat(Array.prototype.slice.call(i));let l=g.box(g.types.avcC,new Uint8Array([1,s[3],s[4],s[5],255,224|t.sps.length].concat(s).concat([t.pps.length]).concat(a))),c=t.width,u=t.height,d=t.pixelRatio[0],m=t.pixelRatio[1];return g.box(g.types.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,c>>8&255,255&c,u>>8&255,255&u,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),l,g.box(g.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),g.box(g.types.pasp,new Uint8Array([d>>24,d>>16&255,d>>8&255,255&d,m>>24,m>>16&255,m>>8&255,255&m])))}static esds(t){let e=t.config.length;return new Uint8Array([0,0,0,0,3,23+e,0,1,0,4,15+e,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([e]).concat(t.config).concat([6,1,2]))}static audioStsd(t){let e=t.samplerate;return new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t.channelCount,0,16,0,0,0,0,e>>8&255,255&e,0,0])}static mp4a(t){return g.box(g.types.mp4a,g.audioStsd(t),g.box(g.types.esds,g.esds(t)))}static mp3(t){return g.box(g.types[".mp3"],g.audioStsd(t))}static ac3(t){return g.box(g.types["ac-3"],g.audioStsd(t),g.box(g.types.dac3,t.config))}static stsd(t){return t.type==="audio"?t.segmentCodec==="mp3"&&t.codec==="mp3"?g.box(g.types.stsd,g.STSD,g.mp3(t)):t.segmentCodec==="ac3"?g.box(g.types.stsd,g.STSD,g.ac3(t)):g.box(g.types.stsd,g.STSD,g.mp4a(t)):g.box(g.types.stsd,g.STSD,g.avc1(t))}static tkhd(t){let e=t.id,i=t.duration*t.timescale,r=t.width,s=t.height,a=Math.floor(i/(f+1)),l=Math.floor(i%(f+1));return g.box(g.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,e>>24&255,e>>16&255,e>>8&255,255&e,0,0,0,0,a>>24,a>>16&255,a>>8&255,255&a,l>>24,l>>16&255,l>>8&255,255&l,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,r>>8&255,255&r,0,0,s>>8&255,255&s,0,0]))}static traf(t,e){let i=g.sdtp(t),r=t.id,s=Math.floor(e/(f+1)),a=Math.floor(e%(f+1));return g.box(g.types.traf,g.box(g.types.tfhd,new Uint8Array([0,0,0,0,r>>24,r>>16&255,r>>8&255,255&r])),g.box(g.types.tfdt,new Uint8Array([1,0,0,0,s>>24,s>>16&255,s>>8&255,255&s,a>>24,a>>16&255,a>>8&255,255&a])),g.trun(t,i.length+16+20+8+16+8+8),i)}static trak(t){return t.duration=t.duration||4294967295,g.box(g.types.trak,g.tkhd(t),g.mdia(t))}static trex(t){let e=t.id;return g.box(g.types.trex,new Uint8Array([0,0,0,0,e>>24,e>>16&255,e>>8&255,255&e,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))}static trun(t,e){let i=t.samples||[],r=i.length,s=12+16*r,a=new Uint8Array(s),l,c,u,d,m,y;for(e+=8+s,a.set([t.type==="video"?1:0,0,15,1,r>>>24&255,r>>>16&255,r>>>8&255,255&r,e>>>24&255,e>>>16&255,e>>>8&255,255&e],0),l=0;l<r;l++)c=i[l],u=c.duration,d=c.size,m=c.flags,y=c.cts,a.set([u>>>24&255,u>>>16&255,u>>>8&255,255&u,d>>>24&255,d>>>16&255,d>>>8&255,255&d,m.isLeading<<2|m.dependsOn,m.isDependedOn<<6|m.hasRedundancy<<4|m.paddingValue<<1|m.isNonSync,61440&m.degradPrio,15&m.degradPrio,y>>>24&255,y>>>16&255,y>>>8&255,255&y],12+16*l);return g.box(g.types.trun,a)}static initSegment(t){g.types||g.init();let e=g.moov(t);return si(g.FTYP,e)}}g.types=void 0,g.HDLR_TYPES=void 0,g.STTS=void 0,g.STSC=void 0,g.STCO=void 0,g.STSZ=void 0,g.VMHD=void 0,g.SMHD=void 0,g.STSD=void 0,g.FTYP=void 0,g.DINF=void 0;function p(t,e,i=1,r=!1){let s=t*e*i;return r?Math.round(s):s}function C(t,e=!1){return p(t,1000,0.000011111111111111112,e)}let O,$=null,V=null;class U{constructor(t,e,i,r=""){if(this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.ISGenerated=!1,this._initPTS=null,this._initDTS=null,this.nextAvcDts=null,this.nextAudioPts=null,this.videoSampleDuration=null,this.isAudioContiguous=!1,this.isVideoContiguous=!1,this.videoTrackConfig=void 0,this.observer=t,this.config=e,this.typeSupported=i,this.ISGenerated=!1,$===null){let s=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);$=s?parseInt(s[1]):0}if(V===null){let s=navigator.userAgent.match(/Safari\/(\d+)/i);V=s?parseInt(s[1]):0}}destroy(){this.config=this.videoTrackConfig=this._initPTS=this._initDTS=null}resetTimeStamp(t){I.log("[mp4-remuxer]: initPTS & initDTS reset"),this._initPTS=this._initDTS=t}resetNextTimestamp(){I.log("[mp4-remuxer]: reset next timestamp"),this.isVideoContiguous=!1,this.isAudioContiguous=!1}resetInitSegment(){I.log("[mp4-remuxer]: ISGenerated flag reset"),this.ISGenerated=!1,this.videoTrackConfig=void 0}getVideoStartPts(t){let e=!1,i=t.reduce((r,s)=>{let a=s.pts-r;return a<-4294967296?(e=!0,z(r,s.pts)):a>0?r:s.pts},t[0].pts);return e&&I.debug("PTS rollover detected"),i}remux(t,e,i,r,s,a,l,c){let u,d,m,y,S,T,w=s,D=s,k=t.pid>-1,N=e.pid>-1,x=e.samples.length,G=t.samples.length>0,Y=l&&x>0||x>1;if((!k||G)&&(!N||Y)||this.ISGenerated||l){if(this.ISGenerated){var rt,J,ut,ft;let mt=this.videoTrackConfig;!mt||e.width===mt.width&&e.height===mt.height&&((rt=e.pixelRatio)==null?void 0:rt[0])===((J=mt.pixelRatio)==null?void 0:J[0])&&((ut=e.pixelRatio)==null?void 0:ut[1])===((ft=mt.pixelRatio)==null?void 0:ft[1])||this.resetInitSegment()}else m=this.generateIS(t,e,s,a);let Z=this.isVideoContiguous,Q,Dt=-1;if(Y&&(Dt=function(mt){for(let Rt=0;Rt<mt.length;Rt++)if(mt[Rt].key)return Rt;return-1}(e.samples),!Z&&this.config.forceKeyFrameOnDiscontinuity))if(T=!0,Dt>0){I.warn(`[mp4-remuxer]: Dropped ${Dt} out of ${x} video samples due to a missing keyframe`);let mt=this.getVideoStartPts(e.samples);e.samples=e.samples.slice(Dt),e.dropped+=Dt,D+=(e.samples[0].pts-mt)/e.inputTimeScale,Q=D}else Dt===-1&&(I.warn(`[mp4-remuxer]: No keyframe found out of ${x} video samples`),T=!1);if(this.ISGenerated){if(G&&Y){let mt=this.getVideoStartPts(e.samples),Rt=(z(t.samples[0].pts,mt)-mt)/e.inputTimeScale;w+=Math.max(0,Rt),D+=Math.max(0,-Rt)}if(G){if(t.samplerate||(I.warn("[mp4-remuxer]: regenerate InitSegment as audio detected"),m=this.generateIS(t,e,s,a)),d=this.remuxAudio(t,w,this.isAudioContiguous,a,N||Y||c===Ue?D:void 0),Y){let mt=d?d.endPTS-d.startPTS:0;e.inputTimeScale||(I.warn("[mp4-remuxer]: regenerate InitSegment as video detected"),m=this.generateIS(t,e,s,a)),u=this.remuxVideo(e,D,Z,mt)}}else Y&&(u=this.remuxVideo(e,D,Z,0));u&&(u.firstKeyFrame=Dt,u.independent=Dt!==-1,u.firstKeyFramePTS=Q)}}return this.ISGenerated&&this._initPTS&&this._initDTS&&(i.samples.length&&(S=et(i,s,this._initPTS,this._initDTS)),r.samples.length&&(y=Tt(r,s,this._initPTS))),{audio:d,video:u,initSegment:m,independent:T,text:y,id3:S}}generateIS(t,e,i,r){let s=t.samples,a=e.samples,l=this.typeSupported,c={},u=this._initPTS,d,m,y,S=!u||r,T="audio/mp4";if(S&&(d=m=1/0),t.config&&s.length){switch(t.timescale=t.samplerate,t.segmentCodec){case"mp3":l.mpeg?(T="audio/mpeg",t.codec=""):l.mp3&&(t.codec="mp3");break;case"ac3":t.codec="ac-3"}c.audio={id:"audio",container:T,codec:t.codec,initSegment:t.segmentCodec==="mp3"&&l.mpeg?new Uint8Array(0):g.initSegment([t]),metadata:{channelCount:t.channelCount}},S&&(y=t.inputTimeScale,u&&y===u.timescale?S=!1:d=m=s[0].pts-Math.round(y*i))}if(e.sps&&e.pps&&a.length){if(e.timescale=e.inputTimeScale,c.video={id:"main",container:"video/mp4",codec:e.codec,initSegment:g.initSegment([e]),metadata:{width:e.width,height:e.height}},S)if(y=e.inputTimeScale,u&&y===u.timescale)S=!1;else{let w=this.getVideoStartPts(a),D=Math.round(y*i);m=Math.min(m,z(a[0].dts,w)-D),d=Math.min(d,w-D)}this.videoTrackConfig={width:e.width,height:e.height,pixelRatio:e.pixelRatio}}if(Object.keys(c).length)return this.ISGenerated=!0,S?(this._initPTS={baseTime:d,timescale:y},this._initDTS={baseTime:m,timescale:y}):d=y=void 0,{tracks:c,initPTS:d,timescale:y}}remuxVideo(t,e,i,r){let{inputTimeScale:s,samples:a}=t,l=[],c=a.length,u=this._initPTS,d,m,y=this.nextAvcDts,S=8,T=this.videoSampleDuration,w=Number.POSITIVE_INFINITY,D=Number.NEGATIVE_INFINITY,k=!1;if(!i||y===null){let ot=e*s,vt=a[0].pts-z(a[0].dts,a[0].pts);$&&y!==null&&Math.abs(ot-vt-y)<15000?i=!0:y=ot-vt}let N=u.baseTime*s/u.timescale;for(let ot=0;ot<c;ot++){let vt=a[ot];vt.pts=z(vt.pts-N,y),vt.dts=z(vt.dts-N,y),vt.dts<a[ot>0?ot-1:ot].dts&&(k=!0)}k&&a.sort(function(ot,vt){let Ct=ot.dts-vt.dts,It=ot.pts-vt.pts;return Ct||It}),d=a[0].dts,m=a[a.length-1].dts;let x=m-d,G=x?Math.round(x/(c-1)):T||t.inputTimeScale/30;if(i){let ot=d-y,vt=ot>G,Ct=ot<-1;if((vt||Ct)&&(vt?I.warn(`AVC: ${C(ot,!0)} ms (${ot}dts) hole between fragments detected at ${e.toFixed(3)}`):I.warn(`AVC: ${C(-ot,!0)} ms (${ot}dts) overlapping between fragments detected at ${e.toFixed(3)}`),!Ct||y>=a[0].pts||$)){d=y;let It=a[0].pts-ot;if(vt)a[0].dts=d,a[0].pts=It;else for(let Gt=0;Gt<a.length&&!(a[Gt].dts>It);Gt++)a[Gt].dts-=ot,a[Gt].pts-=ot;I.log(`Video: Initial PTS/DTS adjusted: ${C(It,!0)}/${C(d,!0)}, delta: ${C(ot,!0)} ms`)}}d=Math.max(0,d);let Y=0,rt=0,J=d;for(let ot=0;ot<c;ot++){let vt=a[ot],Ct=vt.units,It=Ct.length,Gt=0;for(let le=0;le<It;le++)Gt+=Ct[le].data.length;rt+=Gt,Y+=It,vt.length=Gt,vt.dts<J?(vt.dts=J,J+=G/4|0||1):J=vt.dts,w=Math.min(vt.pts,w),D=Math.max(vt.pts,D)}m=a[c-1].dts;let ut=rt+4*Y+8,ft;try{ft=new Uint8Array(ut)}catch(ot){return void this.observer.emit(b.ERROR,b.ERROR,{type:H.MUX_ERROR,details:P.REMUX_ALLOC_ERROR,fatal:!1,error:ot,bytes:ut,reason:"fail allocating video mdat "+ut})}let Z=new DataView(ft.buffer);Z.setUint32(0,ut),ft.set(g.types.mdat,4);let Q=!1,Dt=Number.POSITIVE_INFINITY,mt=Number.POSITIVE_INFINITY,Rt=Number.NEGATIVE_INFINITY,Ot=Number.NEGATIVE_INFINITY;for(let ot=0;ot<c;ot++){let vt=a[ot],Ct=vt.units,It,Gt=0;for(let me=0,he=Ct.length;me<he;me++){let Ie=Ct[me],ri=Ie.data,pe=Ie.data.byteLength;Z.setUint32(S,pe),S+=4,ft.set(ri,S),S+=pe,Gt+=4+pe}if(ot<c-1)T=a[ot+1].dts-vt.dts,It=a[ot+1].pts-vt.pts;else{let me=this.config,he=ot>0?vt.dts-a[ot-1].dts:G;if(It=ot>0?vt.pts-a[ot-1].pts:G,me.stretchShortVideoTrack&&this.nextAudioPts!==null){let Ie=Math.floor(me.maxBufferHole*s),ri=(r?w+r*s:this.nextAudioPts)-vt.pts;ri>Ie?(T=ri-he,T<0?T=he:Q=!0,I.log(`[mp4-remuxer]: It is approximately ${ri/90} ms to the next segment; using duration ${T/90} ms for the last video frame.`)):T=he}else T=he}let le=Math.round(vt.pts-vt.dts);Dt=Math.min(Dt,T),Rt=Math.max(Rt,T),mt=Math.min(mt,It),Ot=Math.max(Ot,It),l.push(new kt(vt.key,T,Gt,le))}if(l.length){if($){if($<70){let ot=l[0].flags;ot.dependsOn=2,ot.isNonSync=0}}else if(V&&Ot-mt<Rt-Dt&&G/Rt<0.025&&l[0].cts===0){I.warn("Found irregular gaps in sample duration. Using PTS instead of DTS to determine MP4 sample duration.");let ot=d;for(let vt=0,Ct=l.length;vt<Ct;vt++){let It=ot+l[vt].duration,Gt=ot+l[vt].cts;if(vt<Ct-1){let le=It+l[vt+1].cts;l[vt].duration=le-Gt}else l[vt].duration=vt?l[vt-1].duration:G;l[vt].cts=0,ot=It}}}T=Q||!T?G:T,this.nextAvcDts=y=m+T,this.videoSampleDuration=T,this.isVideoContiguous=!0;let Mt={data1:g.moof(t.sequenceNumber++,d,A({},t,{samples:l})),data2:ft,startPTS:w/s,endPTS:(D+T)/s,startDTS:d/s,endDTS:y/s,type:"video",hasAudio:!1,hasVideo:!0,nb:l.length,dropped:t.dropped};return t.samples=[],t.dropped=0,Mt}getSamplesPerFrame(t){switch(t.segmentCodec){case"mp3":return 1152;case"ac3":return 1536;default:return 1024}}remuxAudio(t,e,i,r,s){let a=t.inputTimeScale,l=a/(t.samplerate?t.samplerate:a),c=this.getSamplesPerFrame(t),u=c*l,d=this._initPTS,m=t.segmentCodec==="mp3"&&this.typeSupported.mpeg,y=[],S=s!==void 0,T=t.samples,w=m?0:8,D=this.nextAudioPts||-1,k=e*a,N=d.baseTime*a/d.timescale;if(this.isAudioContiguous=i=i||T.length&&D>0&&(r&&Math.abs(k-D)<9000||Math.abs(z(T[0].pts-N,k)-D)<20*u),T.forEach(function(Rt){Rt.pts=z(Rt.pts-N,k)}),!i||D<0){if(T=T.filter((Rt)=>Rt.pts>=0),!T.length)return;D=s===0?0:r&&!S?Math.max(0,k):T[0].pts}if(t.segmentCodec==="aac"){let Rt=this.config.maxAudioFramesDrift;for(let Ot=0,Mt=D;Ot<T.length;Ot++){let ot=T[Ot],vt=ot.pts,Ct=vt-Mt,It=Math.abs(1000*Ct/a);if(Ct<=-Rt*u&&S)Ot===0&&(I.warn(`Audio frame @ ${(vt/a).toFixed(3)}s overlaps nextAudioPts by ${Math.round(1000*Ct/a)} ms.`),this.nextAudioPts=D=Mt=vt);else if(Ct>=Rt*u&&It<1e4&&S){let Gt=Math.round(Ct/u);Mt=vt-Gt*u,Mt<0&&(Gt--,Mt+=u),Ot===0&&(this.nextAudioPts=D=Mt),I.warn(`[mp4-remuxer]: Injecting ${Gt} audio frame @ ${(Mt/a).toFixed(3)}s due to ${Math.round(1000*Ct/a)} ms gap.`);for(let le=0;le<Gt;le++){let me=Math.max(Mt,0),he=hn.getSilentFrame(t.manifestCodec||t.codec,t.channelCount);he||(I.log("[mp4-remuxer]: Unable to get silent frame for given audio codec; duplicating last frame instead."),he=ot.unit.subarray()),T.splice(Ot,0,{unit:he,pts:me}),Mt+=u,Ot++}}ot.pts=Mt,Mt+=u}}let x,G=null,Y=null,rt=0,J=T.length;for(;J--;)rt+=T[J].unit.byteLength;for(let Rt=0,Ot=T.length;Rt<Ot;Rt++){let Mt=T[Rt],ot=Mt.unit,vt=Mt.pts;if(Y!==null)y[Rt-1].duration=Math.round((vt-Y)/l);else{if(i&&t.segmentCodec==="aac"&&(vt=D),G=vt,!(rt>0))return;rt+=w;try{x=new Uint8Array(rt)}catch(It){return void this.observer.emit(b.ERROR,b.ERROR,{type:H.MUX_ERROR,details:P.REMUX_ALLOC_ERROR,fatal:!1,error:It,bytes:rt,reason:"fail allocating audio mdat "+rt})}if(!m)new DataView(x.buffer).setUint32(0,rt),x.set(g.types.mdat,4)}x.set(ot,w);let Ct=ot.byteLength;w+=Ct,y.push(new kt(!0,c,Ct,0)),Y=vt}let ut=y.length;if(!ut)return;let ft=y[y.length-1];this.nextAudioPts=D=Y+l*ft.duration;let Z=m?new Uint8Array(0):g.moof(t.sequenceNumber++,G/l,A({},t,{samples:y}));t.samples=[];let Q=G/a,Dt=D/a,mt={data1:Z,data2:x,startPTS:Q,endPTS:Dt,startDTS:Q,endDTS:Dt,type:"audio",hasAudio:!0,hasVideo:!1,nb:ut};return this.isAudioContiguous=!0,mt}remuxEmptyAudio(t,e,i,r){let s=t.inputTimeScale,a=s/(t.samplerate?t.samplerate:s),l=this.nextAudioPts,c=this._initDTS,u=90000*c.baseTime/c.timescale,d=(l!==null?l:r.startDTS*s)+u,m=r.endDTS*s+u,y=1024*a,S=Math.ceil((m-d)/y),T=hn.getSilentFrame(t.manifestCodec||t.codec,t.channelCount);if(I.warn("[mp4-remuxer]: remux empty Audio"),!T)return void I.trace("[mp4-remuxer]: Unable to remuxEmptyAudio since we were unable to get a silent frame for given audio codec");let w=[];for(let D=0;D<S;D++){let k=d+D*y;w.push({unit:T,pts:k,dts:k})}return t.samples=w,this.remuxAudio(t,e,i,!1)}}function z(t,e){let i;if(e===null)return t;for(i=e<t?-8589934592:8589934592;Math.abs(t-e)>4294967296;)t+=i;return t}function et(t,e,i,r){let s=t.samples.length;if(!s)return;let a=t.inputTimeScale;for(let c=0;c<s;c++){let u=t.samples[c];u.pts=z(u.pts-i.baseTime*a/i.timescale,e*a)/a,u.dts=z(u.dts-r.baseTime*a/r.timescale,e*a)/a}let l=t.samples;return t.samples=[],{samples:l}}function Tt(t,e,i){let r=t.samples.length;if(!r)return;let s=t.inputTimeScale;for(let l=0;l<r;l++){let c=t.samples[l];c.pts=z(c.pts-i.baseTime*s/i.timescale,e*s)/s}t.samples.sort((l,c)=>l.pts-c.pts);let a=t.samples;return t.samples=[],{samples:a}}class kt{constructor(t,e,i,r){this.size=void 0,this.duration=void 0,this.cts=void 0,this.flags=void 0,this.duration=e,this.size=i,this.cts=r,this.flags={isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:t?2:1,isNonSync:t?0:1}}}function Ht(t,e){let i=t==null?void 0:t.codec;if(i&&i.length>4)return i;if(e===lt){if(i==="ec-3"||i==="ac-3"||i==="alac")return i;if(i==="fLaC"||i==="Opus")return Qr(i,!1);let r="mp4a.40.5";return I.info(`Parsed audio codec "${i}" or audio object type not handled. Using "${r}"`),r}return I.warn(`Unhandled video codec "${i}"`),i==="hvc1"||i==="hev1"?"hvc1.1.6.L120.90":i==="av01"?"av01.0.04M.08":"avc1.42e01e"}try{O=self.performance.now.bind(self.performance)}catch(t){I.debug("Unable to use Performance API on this environment"),O=ce==null?void 0:ce.Date.now}let ae=[{demux:class t{constructor(e,i){this.remainderData=null,this.timeOffset=0,this.config=void 0,this.videoTrack=void 0,this.audioTrack=void 0,this.id3Track=void 0,this.txtTrack=void 0,this.config=i}resetTimeStamp(){}resetInitSegment(e,i,r,s){let a=this.videoTrack=wi("video",1),l=this.audioTrack=wi("audio",1),c=this.txtTrack=wi("text",1);if(this.id3Track=wi("id3",1),this.timeOffset=0,e==null||!e.byteLength)return;let u=Ps(e);if(u.video){let{id:d,timescale:m,codec:y}=u.video;a.id=d,a.timescale=c.timescale=m,a.codec=y}if(u.audio){let{id:d,timescale:m,codec:y}=u.audio;l.id=d,l.timescale=m,l.codec=y}c.id=oe.text,a.sampleDuration=0,a.duration=l.duration=s}resetContiguity(){this.remainderData=null}static probe(e){return function(i){let r=i.byteLength;for(let s=0;s<r;){let a=Ft(i,s);if(a>8&&i[s+4]===109&&i[s+5]===111&&i[s+6]===111&&i[s+7]===102)return!0;s=a>1?s+a:r}return!1}(e)}demux(e,i){this.timeOffset=i;let r=e,s=this.videoTrack,a=this.txtTrack;if(this.config.progressive){this.remainderData&&(r=si(this.remainderData,e));let c=function(u){let d={valid:null,remainder:null},m=Wt(u,["moof"]);if(m.length<2)return d.remainder=u,d;let y=m[m.length-1];return d.valid=ne(u,0,y.byteOffset-8),d.remainder=ne(u,y.byteOffset-8),d}(r);this.remainderData=c.remainder,s.samples=c.valid||new Uint8Array}else s.samples=r;let l=this.extractID3Track(s,i);return a.samples=Wa(i,s),{videoTrack:s,audioTrack:this.audioTrack,id3Track:l,textTrack:this.txtTrack}}flush(){let e=this.timeOffset,i=this.videoTrack,r=this.txtTrack;i.samples=this.remainderData||new Uint8Array,this.remainderData=null;let s=this.extractID3Track(i,this.timeOffset);return r.samples=Wa(e,i),{videoTrack:i,audioTrack:wi(),id3Track:s,textTrack:wi()}}extractID3Track(e,i){let r=this.id3Track;if(e.samples.length){let s=Wt(e.samples,["emsg"]);s&&s.forEach((a)=>{let l=function(c){let u=c[0],d="",m="",y=0,S=0,T=0,w=0,D=0,k=0;if(u===0){for(;ye(c.subarray(k,k+1))!=="\x00";)d+=ye(c.subarray(k,k+1)),k+=1;for(d+=ye(c.subarray(k,k+1)),k+=1;ye(c.subarray(k,k+1))!=="\x00";)m+=ye(c.subarray(k,k+1)),k+=1;m+=ye(c.subarray(k,k+1)),k+=1,y=Ft(c,12),S=Ft(c,16),w=Ft(c,20),D=Ft(c,24),k=28}else if(u===1){k+=4,y=Ft(c,k),k+=4;let N=Ft(c,k);k+=4;let x=Ft(c,k);for(k+=4,T=4294967296*N+x,M(T)||(T=Number.MAX_SAFE_INTEGER,I.warn("Presentation time exceeds safe integer limit and wrapped to max safe integer in parsing emsg box")),w=Ft(c,k),k+=4,D=Ft(c,k),k+=4;ye(c.subarray(k,k+1))!=="\x00";)d+=ye(c.subarray(k,k+1)),k+=1;for(d+=ye(c.subarray(k,k+1)),k+=1;ye(c.subarray(k,k+1))!=="\x00";)m+=ye(c.subarray(k,k+1)),k+=1;m+=ye(c.subarray(k,k+1)),k+=1}return{schemeIdUri:d,value:m,timeScale:y,presentationTime:T,presentationTimeDelta:S,eventDuration:w,id:D,payload:c.subarray(k,c.byteLength)}}(a);if(To.test(l.schemeIdUri)){let c=L(l.presentationTime)?l.presentationTime/l.timeScale:i+l.presentationTimeDelta/l.timeScale,u=l.eventDuration===4294967295?Number.POSITIVE_INFINITY:l.eventDuration/l.timeScale;u<=0.001&&(u=Number.POSITIVE_INFINITY);let d=l.payload;r.samples.push({data:d,len:d.byteLength,dts:c,pts:c,type:Rr,duration:u})}})}return r}demuxSampleAes(e,i,r){return Promise.reject(new Error("The MP4 demuxer does not support SAMPLE-AES decryption"))}destroy(){}},remux:class t{constructor(){this.emitInitSegment=!1,this.audioCodec=void 0,this.videoCodec=void 0,this.initData=void 0,this.initPTS=null,this.initTracks=void 0,this.lastEndTime=null}destroy(){}resetTimeStamp(e){this.initPTS=e,this.lastEndTime=null}resetNextTimestamp(){this.lastEndTime=null}resetInitSegment(e,i,r,s){this.audioCodec=i,this.videoCodec=r,this.generateInitSegment(function(a,l){if(!a||!l)return a;let c=l.keyId;if(c&&l.isCommonEncryption)Wt(a,["moov","trak"]).forEach((u)=>{let d=Wt(u,["mdia","minf","stbl","stsd"])[0].subarray(8),m=Wt(d,["enca"]),y=m.length>0;y||(m=Wt(d,["encv"])),m.forEach((S)=>{Wt(y?S.subarray(28):S.subarray(78),["sinf"]).forEach((T)=>{let w=Fs(T);if(w){let D=w.subarray(8,24);D.some((k)=>k!==0)||(I.log(`[eme] Patching keyId in 'enc${y?"a":"v"}>sinf>>tenc' box: ${ni(D)} -> ${ni(c)}`),w.set(c,8))}})})});return a}(e,s)),this.emitInitSegment=!0}generateInitSegment(e){let{audioCodec:i,videoCodec:r}=this;if(e==null||!e.byteLength)return this.initTracks=void 0,void(this.initData=void 0);let s=this.initData=Ps(e);s.audio&&(i=Ht(s.audio,lt)),s.video&&(r=Ht(s.video,St));let a={};s.audio&&s.video?a.audiovideo={container:"video/mp4",codec:i+","+r,initSegment:e,id:"main"}:s.audio?a.audio={container:"audio/mp4",codec:i,initSegment:e,id:"audio"}:s.video?a.video={container:"video/mp4",codec:r,initSegment:e,id:"main"}:I.warn("[passthrough-remuxer.ts]: initSegment does not contain moov or trak boxes."),this.initTracks=a}remux(e,i,r,s,a,l){var c,u;let{initPTS:d,lastEndTime:m}=this,y={audio:void 0,video:void 0,text:s,id3:r,initSegment:void 0};L(m)||(m=this.lastEndTime=a||0);let S=i.samples;if(S==null||!S.length)return y;let T={initPTS:void 0,timescale:1},w=this.initData;if((c=w)!=null&&c.length||(this.generateInitSegment(S),w=this.initData),(u=w)==null||!u.length)return I.warn("[passthrough-remuxer.ts]: Failed to generate initSegment."),y;this.emitInitSegment&&(T.tracks=this.initTracks,this.emitInitSegment=!1);let D=function(ft,Z){let Q=0,Dt=0,mt=0,Rt=Wt(ft,["moof","traf"]);for(let Ot=0;Ot<Rt.length;Ot++){let Mt=Rt[Ot],ot=Wt(Mt,["tfhd"])[0],vt=Z[Ft(ot,4)];if(!vt)continue;let Ct=vt.default,It=Ft(ot,0)|(Ct==null?void 0:Ct.flags),Gt=Ct==null?void 0:Ct.duration;8&It&&(Gt=Ft(ot,2&It?12:8));let le=vt.timescale||90000,me=Wt(Mt,["trun"]);for(let he=0;he<me.length;he++){if(Q=Oi(me[he]),!Q&&Gt)Q=Gt*Ft(me[he],4);vt.type===St?Dt+=Q/le:vt.type===lt&&(mt+=Q/le)}}if(Dt===0&&mt===0){let Ot=1/0,Mt=0,ot=0,vt=Wt(ft,["sidx"]);for(let Ct=0;Ct<vt.length;Ct++){let It=Ka(vt[Ct]);if(It!=null&&It.references){Ot=Math.min(Ot,It.earliestPresentationTime/It.timescale);let Gt=It.references.reduce((le,me)=>le+me.info.duration||0,0);Mt=Math.max(Mt,Gt+It.earliestPresentationTime/It.timescale),ot=Mt-Ot}}if(ot&&L(ot))return ot}return Dt||mt}(S,w),k=function(ft,Z){return Wt(Z,["moof","traf"]).reduce((Q,Dt)=>{let mt=Wt(Dt,["tfdt"])[0],Rt=mt[0],Ot=Wt(Dt,["tfhd"]).reduce((Mt,ot)=>{let vt=Ft(ot,4),Ct=ft[vt];if(Ct){let It=Ft(mt,4);if(Rt===1){if(It===zr)return I.warn("[mp4-demuxer]: Ignoring assumed invalid signed 64-bit track fragment decode time"),Mt;It*=zr+1,It+=Ft(mt,8)}let Gt=It/(Ct.timescale||90000);if(L(Gt)&&(Mt===null||Gt<Mt))return Gt}return Mt},null);return Ot!==null&&L(Ot)&&(Q===null||Ot<Q)?Ot:Q},null)}(w,S),N=k===null?a:k;(function(ft,Z,Q,Dt){if(ft===null)return!0;let mt=Math.max(Dt,1),Rt=Z-ft.baseTime/ft.timescale;return Math.abs(Rt-Q)>mt}(d,N,a,D)||T.timescale!==d.timescale&&l)&&(T.initPTS=N-a,d&&d.timescale===1&&I.warn("Adjusting initPTS by "+(T.initPTS-d.baseTime)),this.initPTS=d={baseTime:T.initPTS,timescale:1});let x=e?N-d.baseTime/d.timescale:m,G=x+D;(function(ft,Z,Q){Wt(Z,["moof","traf"]).forEach((Dt)=>{Wt(Dt,["tfhd"]).forEach((mt)=>{let Rt=Ft(mt,4),Ot=ft[Rt];if(!Ot)return;let Mt=Ot.timescale||90000;Wt(Dt,["tfdt"]).forEach((ot)=>{let vt=ot[0],Ct=Q*Mt;if(Ct){let It=Ft(ot,4);if(vt===0)It-=Ct,It=Math.max(It,0),Ns(ot,4,It);else{It*=Math.pow(2,32),It+=Ft(ot,8),It-=Ct,It=Math.max(It,0);let Gt=Math.floor(It/(zr+1)),le=Math.floor(It%(zr+1));Ns(ot,4,Gt),Ns(ot,8,le)}}})})})})(w,S,d.baseTime/d.timescale),D>0?this.lastEndTime=G:(I.warn("Duration parsed from mp4 should be greater than zero"),this.resetNextTimestamp());let Y=!!w.audio,rt=!!w.video,J="";Y&&(J+="audio"),rt&&(J+="video");let ut={data1:S,startPTS:x,startDTS:x,endPTS:G,endDTS:G,type:J,hasAudio:Y,hasVideo:rt,nb:1,dropped:0};return y.audio=ut.type==="audio"?ut:void 0,y.video=ut.type!=="audio"?ut:void 0,y.initSegment=T,y.id3=et(r,a,d,d),s.samples.length&&(y.text=Tt(s,a,d)),y}}},{demux:Ui,remux:U},{demux:class t extends zn{constructor(e,i){super(),this.observer=void 0,this.config=void 0,this.observer=e,this.config=i}resetInitSegment(e,i,r,s){super.resetInitSegment(e,i,r,s),this._audioTrack={container:"audio/adts",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"aac",samples:[],manifestCodec:i,duration:s,inputTimeScale:90000,dropped:0}}static probe(e){if(!e)return!1;let i=ui(e,0),r=(i==null?void 0:i.length)||0;if(ha(e,r))return!1;for(let s=e.length;r<s;r++)if(Nl(e,r))return I.log("ADTS sync word found !"),!0;return!1}canParse(e,i){return function(r,s){return function(a,l){return l+5<a.length}(r,s)&&po(r,s)&&la(r,s)<=r.length-s}(e,i)}appendFrame(e,i,r){Eo(e,this.observer,i,r,e.manifestCodec);let s=pr(e,i,r,this.basePTS,this.frameIndex);if(s&&s.missing===0)return s}},remux:U},{demux:class t extends zn{resetInitSegment(e,i,r,s){super.resetInitSegment(e,i,r,s),this._audioTrack={container:"audio/mpeg",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"mp3",samples:[],manifestCodec:i,duration:s,inputTimeScale:90000,dropped:0}}static probe(e){if(!e)return!1;let i=ui(e,0),r=(i==null?void 0:i.length)||0;if(i&&e[r]===11&&e[r+1]===119&&We(i)!==void 0&&Jn(e,r)<=16)return!1;for(let s=e.length;r<s;r++)if(ha(e,r))return I.log("MPEG Audio sync word found !"),!0;return!1}canParse(e,i){return function(r,s){return Xn(r,s)&&4<=r.length-s}(e,i)}appendFrame(e,i,r){if(this.basePTS!==null)return ca(e,i,r,this.basePTS,this.frameIndex)}},remux:U}];ae.splice(2,0,{demux:fa,remux:U});class ge{constructor(t,e,i,r,s){this.async=!1,this.observer=void 0,this.typeSupported=void 0,this.config=void 0,this.vendor=void 0,this.id=void 0,this.demuxer=void 0,this.remuxer=void 0,this.decrypter=void 0,this.probe=void 0,this.decryptionPromise=null,this.transmuxConfig=void 0,this.currentTransmuxState=void 0,this.observer=t,this.typeSupported=e,this.config=i,this.vendor=r,this.id=s}configure(t){this.transmuxConfig=t,this.decrypter&&this.decrypter.reset()}push(t,e,i,r){let s=i.transmuxing;s.executeStart=O();let a=new Uint8Array(t),{currentTransmuxState:l,transmuxConfig:c}=this;r&&(this.currentTransmuxState=r);let{contiguous:u,discontinuity:d,trackSwitch:m,accurateTimeOffset:y,timeOffset:S,initSegmentChange:T}=r||l,{audioCodec:w,videoCodec:D,defaultInitPts:k,duration:N,initSegmentData:x}=c,G=function(ut,ft){let Z=null;return ut.byteLength>0&&(ft==null?void 0:ft.key)!=null&&ft.iv!==null&&ft.method!=null&&(Z=ft),Z}(a,e);if(G&&G.method==="AES-128"){let ut=this.getDecrypter();if(!ut.isSync())return this.decryptionPromise=ut.webCryptoDecrypt(a,G.key.buffer,G.iv.buffer).then((ft)=>{let Z=this.push(ft,null,i);return this.decryptionPromise=null,Z}),this.decryptionPromise;{let ft=ut.softwareDecrypt(a,G.key.buffer,G.iv.buffer);if(i.part>-1&&(ft=ut.flush()),!ft)return s.executeEnd=O(),te(i);a=new Uint8Array(ft)}}let Y=this.needsProbing(d,m);if(Y){let ut=this.configureTransmuxer(a);if(ut)return I.warn("[transmuxer] "+ut.message),this.observer.emit(b.ERROR,b.ERROR,{type:H.MEDIA_ERROR,details:P.FRAG_PARSING_ERROR,fatal:!1,error:ut,reason:ut.message}),s.executeEnd=O(),te(i)}(d||m||T||Y)&&this.resetInitSegment(x,w,D,N,e),(d||T||Y)&&this.resetInitialTimestamp(k),u||this.resetContiguity();let rt=this.transmux(a,G,S,y,i),J=this.currentTransmuxState;return J.contiguous=!0,J.discontinuity=!1,J.trackSwitch=!1,s.executeEnd=O(),rt}flush(t){let e=t.transmuxing;e.executeStart=O();let{decrypter:i,currentTransmuxState:r,decryptionPromise:s}=this;if(s)return s.then(()=>this.flush(t));let a=[],{timeOffset:l}=r;if(i){let m=i.flush();m&&a.push(this.push(m,null,t))}let{demuxer:c,remuxer:u}=this;if(!c||!u)return e.executeEnd=O(),[te(t)];let d=c.flush(l);return Ge(d)?d.then((m)=>(this.flushRemux(a,m,t),a)):(this.flushRemux(a,d,t),a)}flushRemux(t,e,i){let{audioTrack:r,videoTrack:s,id3Track:a,textTrack:l}=e,{accurateTimeOffset:c,timeOffset:u}=this.currentTransmuxState;I.log(`[transmuxer.ts]: Flushed fragment ${i.sn}${i.part>-1?" p: "+i.part:""} of level ${i.level}`);let d=this.remuxer.remux(r,s,a,l,u,c,!0,this.id);t.push({remuxResult:d,chunkMeta:i}),i.transmuxing.executeEnd=O()}resetInitialTimestamp(t){let{demuxer:e,remuxer:i}=this;e&&i&&(e.resetTimeStamp(t),i.resetTimeStamp(t))}resetContiguity(){let{demuxer:t,remuxer:e}=this;t&&e&&(t.resetContiguity(),e.resetNextTimestamp())}resetInitSegment(t,e,i,r,s){let{demuxer:a,remuxer:l}=this;a&&l&&(a.resetInitSegment(t,e,i,r),l.resetInitSegment(t,e,i,s))}destroy(){this.demuxer&&(this.demuxer.destroy(),this.demuxer=void 0),this.remuxer&&(this.remuxer.destroy(),this.remuxer=void 0)}transmux(t,e,i,r,s){let a;return a=e&&e.method==="SAMPLE-AES"?this.transmuxSampleAes(t,e,i,r,s):this.transmuxUnencrypted(t,i,r,s),a}transmuxUnencrypted(t,e,i,r){let{audioTrack:s,videoTrack:a,id3Track:l,textTrack:c}=this.demuxer.demux(t,e,!1,!this.config.progressive);return{remuxResult:this.remuxer.remux(s,a,l,c,e,i,!1,this.id),chunkMeta:r}}transmuxSampleAes(t,e,i,r,s){return this.demuxer.demuxSampleAes(t,e,i).then((a)=>({remuxResult:this.remuxer.remux(a.audioTrack,a.videoTrack,a.id3Track,a.textTrack,i,r,!1,this.id),chunkMeta:s}))}configureTransmuxer(t){let{config:e,observer:i,typeSupported:r,vendor:s}=this,a;for(let y=0,S=ae.length;y<S;y++){var l;if((l=ae[y].demux)!=null&&l.probe(t)){a=ae[y];break}}if(!a)return new Error("Failed to find demuxer by probing fragment data");let c=this.demuxer,u=this.remuxer,d=a.remux,m=a.demux;u&&u instanceof d||(this.remuxer=new d(i,e,r,s)),c&&c instanceof m||(this.demuxer=new m(i,e,r),this.probe=m.probe)}needsProbing(t,e){return!this.demuxer||!this.remuxer||t||e}getDecrypter(){let t=this.decrypter;return t||(t=this.decrypter=new ln(this.config)),t}}let te=(t)=>({remuxResult:{},chunkMeta:t});function Ge(t){return"then"in t&&t.then instanceof Function}class ii{constructor(t,e,i,r,s){this.audioCodec=void 0,this.videoCodec=void 0,this.initSegmentData=void 0,this.duration=void 0,this.defaultInitPts=void 0,this.audioCodec=t,this.videoCodec=e,this.initSegmentData=i,this.duration=r,this.defaultInitPts=s||null}}class Fr{constructor(t,e,i,r,s,a){this.discontinuity=void 0,this.contiguous=void 0,this.accurateTimeOffset=void 0,this.trackSwitch=void 0,this.timeOffset=void 0,this.initSegmentChange=void 0,this.discontinuity=t,this.contiguous=e,this.accurateTimeOffset=i,this.trackSwitch=r,this.timeOffset=s,this.initSegmentChange=a}}var ru={exports:{}};(function(t){var e=Object.prototype.hasOwnProperty,i="~";function r(){}function s(u,d,m){this.fn=u,this.context=d,this.once=m||!1}function a(u,d,m,y,S){if(typeof m!="function")throw new TypeError("The listener must be a function");var T=new s(m,y||u,S),w=i?i+d:d;return u._events[w]?u._events[w].fn?u._events[w]=[u._events[w],T]:u._events[w].push(T):(u._events[w]=T,u._eventsCount++),u}function l(u,d){--u._eventsCount==0?u._events=new r:delete u._events[d]}function c(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),new r().__proto__||(i=!1)),c.prototype.eventNames=function(){var u,d,m=[];if(this._eventsCount===0)return m;for(d in u=this._events)e.call(u,d)&&m.push(i?d.slice(1):d);return Object.getOwnPropertySymbols?m.concat(Object.getOwnPropertySymbols(u)):m},c.prototype.listeners=function(u){var d=i?i+u:u,m=this._events[d];if(!m)return[];if(m.fn)return[m.fn];for(var y=0,S=m.length,T=new Array(S);y<S;y++)T[y]=m[y].fn;return T},c.prototype.listenerCount=function(u){var d=i?i+u:u,m=this._events[d];return m?m.fn?1:m.length:0},c.prototype.emit=function(u,d,m,y,S,T){var w=i?i+u:u;if(!this._events[w])return!1;var D,k,N=this._events[w],x=arguments.length;if(N.fn){switch(N.once&&this.removeListener(u,N.fn,void 0,!0),x){case 1:return N.fn.call(N.context),!0;case 2:return N.fn.call(N.context,d),!0;case 3:return N.fn.call(N.context,d,m),!0;case 4:return N.fn.call(N.context,d,m,y),!0;case 5:return N.fn.call(N.context,d,m,y,S),!0;case 6:return N.fn.call(N.context,d,m,y,S,T),!0}for(k=1,D=new Array(x-1);k<x;k++)D[k-1]=arguments[k];N.fn.apply(N.context,D)}else{var G,Y=N.length;for(k=0;k<Y;k++)switch(N[k].once&&this.removeListener(u,N[k].fn,void 0,!0),x){case 1:N[k].fn.call(N[k].context);break;case 2:N[k].fn.call(N[k].context,d);break;case 3:N[k].fn.call(N[k].context,d,m);break;case 4:N[k].fn.call(N[k].context,d,m,y);break;default:if(!D)for(G=1,D=new Array(x-1);G<x;G++)D[G-1]=arguments[G];N[k].fn.apply(N[k].context,D)}}return!0},c.prototype.on=function(u,d,m){return a(this,u,d,m,!1)},c.prototype.once=function(u,d,m){return a(this,u,d,m,!0)},c.prototype.removeListener=function(u,d,m,y){var S=i?i+u:u;if(!this._events[S])return this;if(!d)return l(this,S),this;var T=this._events[S];if(T.fn)T.fn!==d||y&&!T.once||m&&T.context!==m||l(this,S);else{for(var w=0,D=[],k=T.length;w<k;w++)(T[w].fn!==d||y&&!T[w].once||m&&T[w].context!==m)&&D.push(T[w]);D.length?this._events[S]=D.length===1?D[0]:D:l(this,S)}return this},c.prototype.removeAllListeners=function(u){var d;return u?(d=i?i+u:u,this._events[d]&&l(this,d)):(this._events=new r,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=i,c.EventEmitter=c,t.exports=c})(ru);var Pl=n(ru.exports);class xl{constructor(t,e,i,r){this.error=null,this.hls=void 0,this.id=void 0,this.observer=void 0,this.frag=null,this.part=null,this.useWorker=void 0,this.workerContext=null,this.onwmsg=void 0,this.transmuxer=null,this.onTransmuxComplete=void 0,this.onFlush=void 0;let s=t.config;this.hls=t,this.id=e,this.useWorker=!!s.enableWorker,this.onTransmuxComplete=i,this.onFlush=r;let a=(d,m)=>{(m=m||{}).frag=this.frag,m.id=this.id,d===b.ERROR&&(this.error=m.error),this.hls.trigger(d,m)};this.observer=new Pl,this.observer.on(b.FRAG_DECRYPTED,a),this.observer.on(b.ERROR,a);let l=Ni(s.preferManagedMediaSource)||{isTypeSupported:()=>!1},c={mpeg:l.isTypeSupported("audio/mpeg"),mp3:l.isTypeSupported('audio/mp4; codecs="mp3"'),ac3:l.isTypeSupported('audio/mp4; codecs="ac-3"')},u=navigator.vendor;if(this.useWorker&&typeof Worker!="undefined"){if(s.workerPath||typeof __HLS_WORKER_BUNDLE__=="function"){try{s.workerPath?(I.log(`loading Web Worker ${s.workerPath} for "${e}"`),this.workerContext=function(m){let y=new self.URL(m,self.location.href).href;return{worker:new self.Worker(y),scriptURL:y}}(s.workerPath)):(I.log(`injecting Web Worker for "${e}"`),this.workerContext=function(){let m=new self.Blob([`var exports={};var module={exports:exports};function define(f){f()};define.amd=true;(${__HLS_WORKER_BUNDLE__.toString()})(true);`],{type:"text/javascript"}),y=self.URL.createObjectURL(m);return{worker:new self.Worker(y),objectURL:y}}()),this.onwmsg=(m)=>this.onWorkerMessage(m);let{worker:d}=this.workerContext;d.addEventListener("message",this.onwmsg),d.onerror=(m)=>{let y=new Error(`${m.message} (${m.filename}:${m.lineno})`);s.enableWorker=!1,I.warn(`Error in "${e}" Web Worker, fallback to inline`),this.hls.trigger(b.ERROR,{type:H.OTHER_ERROR,details:P.INTERNAL_EXCEPTION,fatal:!1,event:"demuxerWorker",error:y})},d.postMessage({cmd:"init",typeSupported:c,vendor:u,id:e,config:JSON.stringify(s)})}catch(d){I.warn(`Error setting up "${e}" Web Worker, fallback to inline`,d),this.resetWorker(),this.error=null,this.transmuxer=new ge(this.observer,c,s,u,e)}return}}this.transmuxer=new ge(this.observer,c,s,u,e)}resetWorker(){if(this.workerContext){let{worker:t,objectURL:e}=this.workerContext;e&&self.URL.revokeObjectURL(e),t.removeEventListener("message",this.onwmsg),t.onerror=null,t.terminate(),this.workerContext=null}}destroy(){if(this.workerContext)this.resetWorker(),this.onwmsg=void 0;else{let e=this.transmuxer;e&&(e.destroy(),this.transmuxer=null)}let t=this.observer;t&&t.removeAllListeners(),this.frag=null,this.observer=null,this.hls=null}push(t,e,i,r,s,a,l,c,u,d){var m,y;u.transmuxing.start=self.performance.now();let{transmuxer:S}=this,T=a?a.start:s.start,w=s.decryptdata,D=this.frag,k=!(D&&s.cc===D.cc),N=!(D&&u.level===D.level),x=D?u.sn-D.sn:-1,G=this.part?u.part-this.part.index:-1,Y=x===0&&u.id>1&&u.id===(D==null?void 0:D.stats.chunkCount),rt=!N&&(x===1||x===0&&(G===1||Y&&G<=0)),J=self.performance.now();(N||x||s.stats.parsing.start===0)&&(s.stats.parsing.start=J),!a||!G&&rt||(a.stats.parsing.start=J);let ut=!(D&&((m=s.initSegment)==null?void 0:m.url)===((y=D.initSegment)==null?void 0:y.url)),ft=new Fr(k,rt,c,N,T,ut);if(!rt||k||ut){I.log(`[transmuxer-interface, ${s.type}]: Starting new transmux session for sn: ${u.sn} p: ${u.part} level: ${u.level} id: ${u.id}
|
|
9
|
+
discontinuity: ${k}
|
|
10
|
+
trackSwitch: ${N}
|
|
11
|
+
contiguous: ${rt}
|
|
12
|
+
accurateTimeOffset: ${c}
|
|
30
13
|
timeOffset: ${T}
|
|
31
|
-
initSegmentChange: ${
|
|
32
|
-
`)),i}getTextAndFormat(){return this.rows}}class Io{constructor(t,e,i){this.chNr=void 0,this.outputFilter=void 0,this.mode=void 0,this.verbose=void 0,this.displayedMemory=void 0,this.nonDisplayedMemory=void 0,this.lastOutputScreen=void 0,this.currRollUpRow=void 0,this.writeScreen=void 0,this.cueStartTime=void 0,this.logger=void 0,this.chNr=t,this.outputFilter=e,this.mode=null,this.verbose=0,this.displayedMemory=new $a(i),this.nonDisplayedMemory=new $a(i),this.lastOutputScreen=new $a(i),this.currRollUpRow=this.displayedMemory.rows[14],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null,this.logger=i}reset(){this.mode=null,this.displayedMemory.reset(),this.nonDisplayedMemory.reset(),this.lastOutputScreen.reset(),this.outputFilter.reset(),this.currRollUpRow=this.displayedMemory.rows[14],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null}getHandler(){return this.outputFilter}setHandler(t){this.outputFilter=t}setPAC(t){this.writeScreen.setPAC(t)}setBkgData(t){this.writeScreen.setBkgData(t)}setMode(t){t!==this.mode&&(this.mode=t,this.logger.log(2,()=>"MODE="+t),this.mode==="MODE_POP-ON"?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset()),this.mode!=="MODE_ROLL-UP"&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=t)}insertChars(t){for(let i=0;i<t.length;i++)this.writeScreen.insertChar(t[i]);let e=this.writeScreen===this.displayedMemory?"DISP":"NON_DISP";this.logger.log(2,()=>e+": "+this.writeScreen.getDisplayText(!0)),this.mode!=="MODE_PAINT-ON"&&this.mode!=="MODE_ROLL-UP"||(this.logger.log(1,()=>"DISPLAYED: "+this.displayedMemory.getDisplayText(!0)),this.outputDataUpdate())}ccRCL(){this.logger.log(2,"RCL - Resume Caption Loading"),this.setMode("MODE_POP-ON")}ccBS(){this.logger.log(2,"BS - BackSpace"),this.mode!=="MODE_TEXT"&&(this.writeScreen.backSpace(),this.writeScreen===this.displayedMemory&&this.outputDataUpdate())}ccAOF(){}ccAON(){}ccDER(){this.logger.log(2,"DER- Delete to End of Row"),this.writeScreen.clearToEndOfRow(),this.outputDataUpdate()}ccRU(t){this.logger.log(2,"RU("+t+") - Roll Up"),this.writeScreen=this.displayedMemory,this.setMode("MODE_ROLL-UP"),this.writeScreen.setRollUpRows(t)}ccFON(){this.logger.log(2,"FON - Flash On"),this.writeScreen.setPen({flash:!0})}ccRDC(){this.logger.log(2,"RDC - Resume Direct Captioning"),this.setMode("MODE_PAINT-ON")}ccTR(){this.logger.log(2,"TR"),this.setMode("MODE_TEXT")}ccRTD(){this.logger.log(2,"RTD"),this.setMode("MODE_TEXT")}ccEDM(){this.logger.log(2,"EDM - Erase Displayed Memory"),this.displayedMemory.reset(),this.outputDataUpdate(!0)}ccCR(){this.logger.log(2,"CR - Carriage Return"),this.writeScreen.rollUp(),this.outputDataUpdate(!0)}ccENM(){this.logger.log(2,"ENM - Erase Non-displayed Memory"),this.nonDisplayedMemory.reset()}ccEOC(){if(this.logger.log(2,"EOC - End Of Caption"),this.mode==="MODE_POP-ON"){let t=this.displayedMemory;this.displayedMemory=this.nonDisplayedMemory,this.nonDisplayedMemory=t,this.writeScreen=this.nonDisplayedMemory,this.logger.log(1,()=>"DISP: "+this.displayedMemory.getDisplayText())}this.outputDataUpdate(!0)}ccTO(t){this.logger.log(2,"TO("+t+") - Tab Offset"),this.writeScreen.moveCursor(t)}ccMIDROW(t){let e={flash:!1};if(e.underline=t%2==1,e.italics=t>=46,e.italics)e.foreground="white";else{let i=Math.floor(t/2)-16,n=["white","green","blue","cyan","red","yellow","magenta"];e.foreground=n[i]}this.logger.log(2,"MIDROW: "+JSON.stringify(e)),this.writeScreen.setPen(e)}outputDataUpdate(t=!1){let e=this.logger.time;e!==null&&this.outputFilter&&(this.cueStartTime!==null||this.displayedMemory.isEmpty()?this.displayedMemory.equals(this.lastOutputScreen)||(this.outputFilter.newCue(this.cueStartTime,e,this.lastOutputScreen),t&&this.outputFilter.dispatchCue&&this.outputFilter.dispatchCue(),this.cueStartTime=this.displayedMemory.isEmpty()?null:e):this.cueStartTime=e,this.lastOutputScreen.copy(this.displayedMemory))}cueSplitAtTime(t){this.outputFilter&&(this.displayedMemory.isEmpty()||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,t,this.displayedMemory),this.cueStartTime=t))}}class Oo{constructor(t,e,i){this.channels=void 0,this.currentChannel=0,this.cmdHistory={a:null,b:null},this.logger=void 0;let n=this.logger=new wl;this.channels=[null,new Io(t,e,n),new Io(t+1,i,n)]}getHandler(t){return this.channels[t].getHandler()}setHandler(t,e){this.channels[t].setHandler(e)}addData(t,e){let i,n,r,s=!1;this.logger.time=t;for(let a=0;a<e.length;a+=2)if(n=127&e[a],r=127&e[a+1],n!==0||r!==0){if(this.logger.log(3,"["+$r([e[a],e[a+1]])+"] -> ("+$r([n,r])+")"),i=this.parseCmd(n,r),i||(i=this.parseMidrow(n,r)),i||(i=this.parsePAC(n,r)),i||(i=this.parseBackgroundAttributes(n,r)),!i&&(s=this.parseChars(n,r),s)){let l=this.currentChannel;if(l&&l>0)this.channels[l].insertChars(s);else this.logger.log(2,"No channel found yet. TEXT-MODE?")}i||s||this.logger.log(2,"Couldn't parse cleaned data "+$r([n,r])+" orig: "+$r([e[a],e[a+1]]))}}parseCmd(t,e){let{cmdHistory:i}=this;if(!((t===20||t===28||t===21||t===29)&&e>=32&&e<=47)&&!((t===23||t===31)&&e>=33&&e<=35))return!1;if(Dl(t,e,i))return vs(null,null,i),this.logger.log(3,"Repeated command ("+$r([t,e])+") is dropped"),!0;let n=t===20||t===21||t===23?1:2,r=this.channels[n];return t===20||t===21||t===28||t===29?e===32?r.ccRCL():e===33?r.ccBS():e===34?r.ccAOF():e===35?r.ccAON():e===36?r.ccDER():e===37?r.ccRU(2):e===38?r.ccRU(3):e===39?r.ccRU(4):e===40?r.ccFON():e===41?r.ccRDC():e===42?r.ccTR():e===43?r.ccRTD():e===44?r.ccEDM():e===45?r.ccCR():e===46?r.ccENM():e===47&&r.ccEOC():r.ccTO(e-32),vs(t,e,i),this.currentChannel=n,!0}parseMidrow(t,e){let i=0;if((t===17||t===25)&&e>=32&&e<=47){if(i=t===17?1:2,i!==this.currentChannel)return this.logger.log(0,"Mismatch channel in midrow parsing"),!1;let n=this.channels[i];return!!n&&(n.ccMIDROW(e),this.logger.log(3,"MIDROW ("+$r([t,e])+")"),!0)}return!1}parsePAC(t,e){let i,n=this.cmdHistory;if(!((t>=17&&t<=23||t>=25&&t<=31)&&e>=64&&e<=127)&&!((t===16||t===24)&&e>=64&&e<=95))return!1;if(Dl(t,e,n))return vs(null,null,n),!0;let r=t<=23?1:2;i=e>=64&&e<=95?r===1?dd[t]:hd[t]:r===1?ud[t]:fd[t];let s=this.channels[r];return!!s&&(s.setPAC(this.interpretPAC(i,e)),vs(t,e,n),this.currentChannel=r,!0)}interpretPAC(t,e){let i,n={color:null,italics:!1,indent:null,underline:!1,row:t};return i=e>95?e-96:e-64,n.underline=(1&i)==1,i<=13?n.color=["white","green","blue","cyan","red","yellow","magenta","white"][Math.floor(i/2)]:i<=15?(n.italics=!0,n.color="white"):n.indent=4*Math.floor((i-16)/2),n}parseChars(t,e){let i,n=null,r=null;if(t>=25?(i=2,r=t-8):(i=1,r=t),r>=17&&r<=19){let s;s=r===17?e+80:r===18?e+112:e+144,this.logger.log(2,"Special char '"+Ll(s)+"' in channel "+i),n=[s]}else t>=32&&t<=127&&(n=e===0?[t]:[t,e]);if(n){let s=$r(n);this.logger.log(3,"Char codes = "+s.join(",")),vs(t,e,this.cmdHistory)}return n}parseBackgroundAttributes(t,e){if(!((t===16||t===24)&&e>=32&&e<=47)&&!((t===23||t===31)&&e>=45&&e<=47))return!1;let i,n={};t===16||t===24?(i=Math.floor((e-32)/2),n.background=md[i],e%2==1&&(n.background=n.background+"_semi")):e===45?n.background="transparent":(n.foreground="black",e===47&&(n.underline=!0));let r=t<=23?1:2;return this.channels[r].setBkgData(n),vs(t,e,this.cmdHistory),!0}reset(){for(let t=0;t<Object.keys(this.channels).length;t++){let e=this.channels[t];e&&e.reset()}this.cmdHistory={a:null,b:null}}cueSplitAtTime(t){for(let e=0;e<this.channels.length;e++){let i=this.channels[e];i&&i.cueSplitAtTime(t)}}}function vs(t,e,i){i.a=t,i.b=e}function Dl(t,e,i){return i.a===t&&i.b===e}class aa{constructor(t,e){this.timelineController=void 0,this.cueRanges=[],this.trackName=void 0,this.startTime=null,this.endTime=null,this.screen=null,this.timelineController=t,this.trackName=e}dispatchCue(){this.startTime!==null&&(this.timelineController.addCues(this.trackName,this.startTime,this.endTime,this.screen,this.cueRanges),this.startTime=null)}newCue(t,e,i){(this.startTime===null||this.startTime>t)&&(this.startTime=t),this.endTime=e,this.screen=i,this.timelineController.createCaptionsTrack(this.trackName)}reset(){this.cueRanges=[],this.startTime=null}}var xo=function(){if(we!=null&&we.VTTCue)return self.VTTCue;let t=["","lr","rl"],e=["start","middle","end","left","right"];function i(a,l){if(typeof l!="string")return!1;if(!Array.isArray(a))return!1;let d=l.toLowerCase();return!!~a.indexOf(d)&&d}function n(a){return i(e,a)}function r(a,...l){let d=1;for(;d<arguments.length;d++){let u=arguments[d];for(let f in u)a[f]=u[f]}return a}function s(a,l,d){let u=this,f={enumerable:!0};u.hasBeenReset=!1;let E="",b=!1,T=a,_=l,D=d,w=null,x="",M=!0,V="auto",X="start",ot=50,et="middle",vt=50,St="middle";Object.defineProperty(u,"id",r({},f,{get:function(){return E},set:function(nt){E=""+nt}})),Object.defineProperty(u,"pauseOnExit",r({},f,{get:function(){return b},set:function(nt){b=!!nt}})),Object.defineProperty(u,"startTime",r({},f,{get:function(){return T},set:function(nt){if(typeof nt!="number")throw new TypeError("Start time must be set to a number.");T=nt,this.hasBeenReset=!0}})),Object.defineProperty(u,"endTime",r({},f,{get:function(){return _},set:function(nt){if(typeof nt!="number")throw new TypeError("End time must be set to a number.");_=nt,this.hasBeenReset=!0}})),Object.defineProperty(u,"text",r({},f,{get:function(){return D},set:function(nt){D=""+nt,this.hasBeenReset=!0}})),Object.defineProperty(u,"region",r({},f,{get:function(){return w},set:function(nt){w=nt,this.hasBeenReset=!0}})),Object.defineProperty(u,"vertical",r({},f,{get:function(){return x},set:function(nt){let it=function(jt){return i(t,jt)}(nt);if(it===!1)throw new SyntaxError("An invalid or illegal string was specified.");x=it,this.hasBeenReset=!0}})),Object.defineProperty(u,"snapToLines",r({},f,{get:function(){return M},set:function(nt){M=!!nt,this.hasBeenReset=!0}})),Object.defineProperty(u,"line",r({},f,{get:function(){return V},set:function(nt){if(typeof nt!="number"&&nt!=="auto")throw new SyntaxError("An invalid number or illegal string was specified.");V=nt,this.hasBeenReset=!0}})),Object.defineProperty(u,"lineAlign",r({},f,{get:function(){return X},set:function(nt){let it=n(nt);if(!it)throw new SyntaxError("An invalid or illegal string was specified.");X=it,this.hasBeenReset=!0}})),Object.defineProperty(u,"position",r({},f,{get:function(){return ot},set:function(nt){if(nt<0||nt>100)throw new Error("Position must be between 0 and 100.");ot=nt,this.hasBeenReset=!0}})),Object.defineProperty(u,"positionAlign",r({},f,{get:function(){return et},set:function(nt){let it=n(nt);if(!it)throw new SyntaxError("An invalid or illegal string was specified.");et=it,this.hasBeenReset=!0}})),Object.defineProperty(u,"size",r({},f,{get:function(){return vt},set:function(nt){if(nt<0||nt>100)throw new Error("Size must be between 0 and 100.");vt=nt,this.hasBeenReset=!0}})),Object.defineProperty(u,"align",r({},f,{get:function(){return St},set:function(nt){let it=n(nt);if(!it)throw new SyntaxError("An invalid or illegal string was specified.");St=it,this.hasBeenReset=!0}})),u.displayState=void 0}return s.prototype.getCueAsHTML=function(){return self.WebVTT.convertCueToDOMTree(self,this.text)},s}();class Cl{decode(t,e){if(!t)return"";if(typeof t!="string")throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(t))}}function Il(t){function e(n,r,s,a){return 3600*(0|n)+60*(0|r)+(0|s)+parseFloat(a||0)}let i=t.match(/^(?:(\d+):)?(\d{2}):(\d{2})(\.\d+)?/);return i?parseFloat(i[2])>59?e(i[2],i[3],0,i[4]):e(i[1],i[2],i[3],i[4]):null}class Ol{constructor(){this.values=Object.create(null)}set(t,e){this.get(t)||e===""||(this.values[t]=e)}get(t,e,i){return i?this.has(t)?this.values[t]:e[i]:this.has(t)?this.values[t]:e}has(t){return t in this.values}alt(t,e,i){for(let n=0;n<i.length;++n)if(e===i[n]){this.set(t,e);break}}integer(t,e){/^-?\d+$/.test(e)&&this.set(t,parseInt(e,10))}percent(t,e){if(/^([\d]{1,3})(\.[\d]*)?%$/.test(e)){let i=parseFloat(e);if(i>=0&&i<=100)return this.set(t,i),!0}return!1}}function xl(t,e,i,n){let r=n?t.split(n):[t];for(let s in r){if(typeof r[s]!="string")continue;let a=r[s].split(i);if(a.length!==2)continue;e(a[0],a[1])}}let No=new xo(0,0,""),Ga=No.align==="middle"?"middle":"center";function gd(t,e,i){let n=t;function r(){let a=Il(t);if(a===null)throw new Error("Malformed timestamp: "+n);return t=t.replace(/^[^\sa-zA-Z-]+/,""),a}function s(){t=t.replace(/^\s+/,"")}if(s(),e.startTime=r(),s(),t.slice(0,3)!=="-->")throw new Error("Malformed time stamp (time stamps must be separated by '-->'): "+n);t=t.slice(3),s(),e.endTime=r(),s(),function(a,l){let d=new Ol;xl(a,function(E,b){let T;switch(E){case"region":for(let _=i.length-1;_>=0;_--)if(i[_].id===b){d.set(E,i[_].region);break}break;case"vertical":d.alt(E,b,["rl","lr"]);break;case"line":T=b.split(","),d.integer(E,T[0]),d.percent(E,T[0])&&d.set("snapToLines",!1),d.alt(E,T[0],["auto"]),T.length===2&&d.alt("lineAlign",T[1],["start",Ga,"end"]);break;case"position":T=b.split(","),d.percent(E,T[0]),T.length===2&&d.alt("positionAlign",T[1],["start",Ga,"end","line-left","line-right","auto"]);break;case"size":d.percent(E,b);break;case"align":d.alt(E,b,["start",Ga,"end","left","right"])}},/:/,/\s/),l.region=d.get("region",null),l.vertical=d.get("vertical","");let u=d.get("line","auto");u==="auto"&&No.line===-1&&(u=-1),l.line=u,l.lineAlign=d.get("lineAlign","start"),l.snapToLines=d.get("snapToLines",!0),l.size=d.get("size",100),l.align=d.get("align",Ga);let f=d.get("position","auto");f==="auto"&&No.position===50&&(f=l.align==="start"||l.align==="left"?0:l.align==="end"||l.align==="right"?100:50),l.position=f}(t,e)}function Nl(t){return t.replace(/<br(?: \/)?>/gi,`
|
|
33
|
-
`)}class
|
|
34
|
-
`;)++
|
|
35
|
-
`&&++
|
|
36
|
-
`),e.cue.text+=
|
|
37
|
-
|
|
38
|
-
`,t.parse()),t.state==="INITIAL"||t.state==="BADWEBVTT")throw new Error("Malformed WebVTT signature.")}catch(e){t.onparsingerror&&t.onparsingerror(e)}return t.onflush&&t.onflush(),this}}let
|
|
14
|
+
initSegmentChange: ${ut}`);let Z=new ii(i,r,e,l,d);this.configureTransmuxer(Z)}if(this.frag=s,this.part=a,this.workerContext)this.workerContext.worker.postMessage({cmd:"demux",data:t,decryptdata:w,chunkMeta:u,state:ft},t instanceof ArrayBuffer?[t]:[]);else if(S){let Z=S.push(t,w,u,ft);Ge(Z)?(S.async=!0,Z.then((Q)=>{this.handleTransmuxComplete(Q)}).catch((Q)=>{this.transmuxerError(Q,u,"transmuxer-interface push error")})):(S.async=!1,this.handleTransmuxComplete(Z))}}flush(t){t.transmuxing.start=self.performance.now();let{transmuxer:e}=this;if(this.workerContext)this.workerContext.worker.postMessage({cmd:"flush",chunkMeta:t});else if(e){let i=e.flush(t);Ge(i)||e.async?(Ge(i)||(i=Promise.resolve(i)),i.then((r)=>{this.handleFlushResult(r,t)}).catch((r)=>{this.transmuxerError(r,t,"transmuxer-interface flush error")})):this.handleFlushResult(i,t)}}transmuxerError(t,e,i){this.hls&&(this.error=t,this.hls.trigger(b.ERROR,{type:H.MEDIA_ERROR,details:P.FRAG_PARSING_ERROR,chunkMeta:e,fatal:!1,error:t,err:t,reason:i}))}handleFlushResult(t,e){t.forEach((i)=>{this.handleTransmuxComplete(i)}),this.onFlush(e)}onWorkerMessage(t){let e=t.data,i=this.hls;switch(e.event){case"init":{var r;let s=(r=this.workerContext)==null?void 0:r.objectURL;s&&self.URL.revokeObjectURL(s);break}case"transmuxComplete":this.handleTransmuxComplete(e.data);break;case"flush":this.onFlush(e.data);break;case"workerLog":I[e.data.logType]&&I[e.data.logType](e.data.message);break;default:e.data=e.data||{},e.data.frag=this.frag,e.data.id=this.id,i.trigger(e.event,e.data)}}configureTransmuxer(t){let{transmuxer:e}=this;this.workerContext?this.workerContext.worker.postMessage({cmd:"configure",config:t}):e&&e.configure(t)}handleTransmuxComplete(t){t.chunkMeta.transmuxing.end=self.performance.now(),this.onTransmuxComplete(t)}}function nu(t,e){if(t.length!==e.length)return!1;for(let i=0;i<t.length;i++)if(!is(t[i].attrs,e[i].attrs))return!1;return!0}function is(t,e,i){let r=t["STABLE-RENDITION-ID"];return r&&!i?r===e["STABLE-RENDITION-ID"]:!(i||["LANGUAGE","NAME","CHARACTERISTICS","AUTOSELECT","DEFAULT","FORCED","ASSOC-LANGUAGE"]).some((s)=>t[s]!==e[s])}function Fl(t,e){return e.label.toLowerCase()===t.name.toLowerCase()&&(!e.language||e.language.toLowerCase()===(t.lang||"").toLowerCase())}class su{constructor(t){this.buffered=void 0;let e=(i,r,s)=>{if((r>>>=0)>s-1)throw new DOMException(`Failed to execute '${i}' on 'TimeRanges': The index provided (${r}) is greater than the maximum bound (${s})`);return t[r][i]};this.buffered={get length(){return t.length},end:(i)=>e("end",i,t.length),start:(i)=>e("start",i,t.length)}}}class au{constructor(t){this.buffers=void 0,this.queues={video:[],audio:[],audiovideo:[]},this.buffers=t}append(t,e,i){let r=this.queues[e];r.push(t),r.length!==1||i||this.executeNext(e)}insertAbort(t,e){this.queues[e].unshift(t),this.executeNext(e)}appendBlocker(t){let e,i=new Promise((s)=>{e=s}),r={execute:e,onStart:()=>{},onComplete:()=>{},onError:()=>{}};return this.append(r,t),i}executeNext(t){let e=this.queues[t];if(e.length){let i=e[0];try{i.execute()}catch(r){I.warn(`[buffer-operation-queue]: Exception executing "${t}" SourceBuffer operation: ${r}`),i.onError(r);let s=this.buffers[t];s!=null&&s.updating||this.shiftAndExecuteNext(t)}}}shiftAndExecuteNext(t){this.queues[t].shift(),this.executeNext(t)}current(t){return this.queues[t][0]}}let ou=/(avc[1234]|hvc1|hev1|dvh[1e]|vp09|av01)(?:\.[^.,]+)+/;function lu(t){let e=t.querySelectorAll("source");[].slice.call(e).forEach((i)=>{t.removeChild(i)})}let cu={42:225,92:233,94:237,95:243,96:250,123:231,124:247,125:209,126:241,127:9608,128:174,129:176,130:189,131:191,132:8482,133:162,134:163,135:9834,136:224,137:32,138:232,139:226,140:234,141:238,142:244,143:251,144:193,145:201,146:211,147:218,148:220,149:252,150:8216,151:161,152:42,153:8217,154:9473,155:169,156:8480,157:8226,158:8220,159:8221,160:192,161:194,162:199,163:200,164:202,165:203,166:235,167:206,168:207,169:239,170:212,171:217,172:249,173:219,174:171,175:187,176:195,177:227,178:205,179:204,180:236,181:210,182:242,183:213,184:245,185:123,186:125,187:92,188:94,189:95,190:124,191:8764,192:196,193:228,194:214,195:246,196:223,197:165,198:164,199:9475,200:197,201:229,202:216,203:248,204:9487,205:9491,206:9495,207:9499},uu=function(t){let e=t;return cu.hasOwnProperty(t)&&(e=cu[t]),String.fromCharCode(e)},cf={17:1,18:3,21:5,22:7,23:9,16:11,19:12,20:14},uf={17:2,18:4,21:6,22:8,23:10,19:13,20:15},df={25:1,26:3,29:5,30:7,31:9,24:11,27:12,28:14},hf={25:2,26:4,29:6,30:8,31:10,27:13,28:15},ff=["white","green","blue","cyan","red","yellow","magenta","black","transparent"];class du{constructor(){this.time=null,this.verboseLevel=0}log(t,e){if(this.verboseLevel>=t){let i=typeof e=="function"?e():e;I.log(`${this.time} [${t}] ${i}`)}}}let fn=function(t){let e=[];for(let i=0;i<t.length;i++)e.push(t[i].toString(16));return e};class Ul{constructor(){this.foreground="white",this.underline=!1,this.italics=!1,this.background="black",this.flash=!1}reset(){this.foreground="white",this.underline=!1,this.italics=!1,this.background="black",this.flash=!1}setStyles(t){let e=["foreground","underline","italics","background","flash"];for(let i=0;i<e.length;i++){let r=e[i];t.hasOwnProperty(r)&&(this[r]=t[r])}}isDefault(){return this.foreground==="white"&&!this.underline&&!this.italics&&this.background==="black"&&!this.flash}equals(t){return this.foreground===t.foreground&&this.underline===t.underline&&this.italics===t.italics&&this.background===t.background&&this.flash===t.flash}copy(t){this.foreground=t.foreground,this.underline=t.underline,this.italics=t.italics,this.background=t.background,this.flash=t.flash}toString(){return"color="+this.foreground+", underline="+this.underline+", italics="+this.italics+", background="+this.background+", flash="+this.flash}}class hu{constructor(){this.uchar=" ",this.penState=new Ul}reset(){this.uchar=" ",this.penState.reset()}setChar(t,e){this.uchar=t,this.penState.copy(e)}setPenState(t){this.penState.copy(t)}equals(t){return this.uchar===t.uchar&&this.penState.equals(t.penState)}copy(t){this.uchar=t.uchar,this.penState.copy(t.penState)}isEmpty(){return this.uchar===" "&&this.penState.isDefault()}}class fu{constructor(t){this.chars=[],this.pos=0,this.currPenState=new Ul,this.cueStartTime=null,this.logger=void 0;for(let e=0;e<100;e++)this.chars.push(new hu);this.logger=t}equals(t){for(let e=0;e<100;e++)if(!this.chars[e].equals(t.chars[e]))return!1;return!0}copy(t){for(let e=0;e<100;e++)this.chars[e].copy(t.chars[e])}isEmpty(){let t=!0;for(let e=0;e<100;e++)if(!this.chars[e].isEmpty()){t=!1;break}return t}setCursor(t){this.pos!==t&&(this.pos=t),this.pos<0?(this.logger.log(3,"Negative cursor position "+this.pos),this.pos=0):this.pos>100&&(this.logger.log(3,"Too large cursor position "+this.pos),this.pos=100)}moveCursor(t){let e=this.pos+t;if(t>1)for(let i=this.pos+1;i<e+1;i++)this.chars[i].setPenState(this.currPenState);this.setCursor(e)}backSpace(){this.moveCursor(-1),this.chars[this.pos].setChar(" ",this.currPenState)}insertChar(t){t>=144&&this.backSpace();let e=uu(t);this.pos>=100?this.logger.log(0,()=>"Cannot insert "+t.toString(16)+" ("+e+") at position "+this.pos+". Skipping it!"):(this.chars[this.pos].setChar(e,this.currPenState),this.moveCursor(1))}clearFromPos(t){let e;for(e=t;e<100;e++)this.chars[e].reset()}clear(){this.clearFromPos(0),this.pos=0,this.currPenState.reset()}clearToEndOfRow(){this.clearFromPos(this.pos)}getTextString(){let t=[],e=!0;for(let i=0;i<100;i++){let r=this.chars[i].uchar;r!==" "&&(e=!1),t.push(r)}return e?"":t.join("")}setPenStyles(t){this.currPenState.setStyles(t),this.chars[this.pos].setPenState(this.currPenState)}}class _o{constructor(t){this.rows=[],this.currRow=14,this.nrRollUpRows=null,this.lastOutputScreen=null,this.logger=void 0;for(let e=0;e<15;e++)this.rows.push(new fu(t));this.logger=t}reset(){for(let t=0;t<15;t++)this.rows[t].clear();this.currRow=14}equals(t){let e=!0;for(let i=0;i<15;i++)if(!this.rows[i].equals(t.rows[i])){e=!1;break}return e}copy(t){for(let e=0;e<15;e++)this.rows[e].copy(t.rows[e])}isEmpty(){let t=!0;for(let e=0;e<15;e++)if(!this.rows[e].isEmpty()){t=!1;break}return t}backSpace(){this.rows[this.currRow].backSpace()}clearToEndOfRow(){this.rows[this.currRow].clearToEndOfRow()}insertChar(t){this.rows[this.currRow].insertChar(t)}setPen(t){this.rows[this.currRow].setPenStyles(t)}moveCursor(t){this.rows[this.currRow].moveCursor(t)}setCursor(t){this.logger.log(2,"setCursor: "+t),this.rows[this.currRow].setCursor(t)}setPAC(t){this.logger.log(2,()=>"pacData = "+JSON.stringify(t));let e=t.row-1;if(this.nrRollUpRows&&e<this.nrRollUpRows-1&&(e=this.nrRollUpRows-1),this.nrRollUpRows&&this.currRow!==e){for(let l=0;l<15;l++)this.rows[l].clear();let s=this.currRow+1-this.nrRollUpRows,a=this.lastOutputScreen;if(a){let l=a.rows[s].cueStartTime,c=this.logger.time;if(l!==null&&c!==null&&l<c)for(let u=0;u<this.nrRollUpRows;u++)this.rows[e-this.nrRollUpRows+u+1].copy(a.rows[s+u])}}this.currRow=e;let i=this.rows[this.currRow];if(t.indent!==null){let s=t.indent,a=Math.max(s-1,0);i.setCursor(t.indent),t.color=i.chars[a].penState.foreground}let r={foreground:t.color,underline:t.underline,italics:t.italics,background:"black",flash:!1};this.setPen(r)}setBkgData(t){this.logger.log(2,()=>"bkgData = "+JSON.stringify(t)),this.backSpace(),this.setPen(t),this.insertChar(32)}setRollUpRows(t){this.nrRollUpRows=t}rollUp(){if(this.nrRollUpRows===null)return void this.logger.log(3,"roll_up but nrRollUpRows not set yet");this.logger.log(1,()=>this.getDisplayText());let t=this.currRow+1-this.nrRollUpRows,e=this.rows.splice(t,1)[0];e.clear(),this.rows.splice(this.currRow,0,e),this.logger.log(2,"Rolling up")}getDisplayText(t){t=t||!1;let e=[],i="",r=-1;for(let s=0;s<15;s++){let a=this.rows[s].getTextString();a&&(r=s+1,t?e.push("Row "+r+": '"+a+"'"):e.push(a.trim()))}return e.length>0&&(i=t?"["+e.join(" | ")+"]":e.join(`
|
|
15
|
+
`)),i}getTextAndFormat(){return this.rows}}class Bl{constructor(t,e,i){this.chNr=void 0,this.outputFilter=void 0,this.mode=void 0,this.verbose=void 0,this.displayedMemory=void 0,this.nonDisplayedMemory=void 0,this.lastOutputScreen=void 0,this.currRollUpRow=void 0,this.writeScreen=void 0,this.cueStartTime=void 0,this.logger=void 0,this.chNr=t,this.outputFilter=e,this.mode=null,this.verbose=0,this.displayedMemory=new _o(i),this.nonDisplayedMemory=new _o(i),this.lastOutputScreen=new _o(i),this.currRollUpRow=this.displayedMemory.rows[14],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null,this.logger=i}reset(){this.mode=null,this.displayedMemory.reset(),this.nonDisplayedMemory.reset(),this.lastOutputScreen.reset(),this.outputFilter.reset(),this.currRollUpRow=this.displayedMemory.rows[14],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null}getHandler(){return this.outputFilter}setHandler(t){this.outputFilter=t}setPAC(t){this.writeScreen.setPAC(t)}setBkgData(t){this.writeScreen.setBkgData(t)}setMode(t){t!==this.mode&&(this.mode=t,this.logger.log(2,()=>"MODE="+t),this.mode==="MODE_POP-ON"?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset()),this.mode!=="MODE_ROLL-UP"&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=t)}insertChars(t){for(let i=0;i<t.length;i++)this.writeScreen.insertChar(t[i]);let e=this.writeScreen===this.displayedMemory?"DISP":"NON_DISP";this.logger.log(2,()=>e+": "+this.writeScreen.getDisplayText(!0)),this.mode!=="MODE_PAINT-ON"&&this.mode!=="MODE_ROLL-UP"||(this.logger.log(1,()=>"DISPLAYED: "+this.displayedMemory.getDisplayText(!0)),this.outputDataUpdate())}ccRCL(){this.logger.log(2,"RCL - Resume Caption Loading"),this.setMode("MODE_POP-ON")}ccBS(){this.logger.log(2,"BS - BackSpace"),this.mode!=="MODE_TEXT"&&(this.writeScreen.backSpace(),this.writeScreen===this.displayedMemory&&this.outputDataUpdate())}ccAOF(){}ccAON(){}ccDER(){this.logger.log(2,"DER- Delete to End of Row"),this.writeScreen.clearToEndOfRow(),this.outputDataUpdate()}ccRU(t){this.logger.log(2,"RU("+t+") - Roll Up"),this.writeScreen=this.displayedMemory,this.setMode("MODE_ROLL-UP"),this.writeScreen.setRollUpRows(t)}ccFON(){this.logger.log(2,"FON - Flash On"),this.writeScreen.setPen({flash:!0})}ccRDC(){this.logger.log(2,"RDC - Resume Direct Captioning"),this.setMode("MODE_PAINT-ON")}ccTR(){this.logger.log(2,"TR"),this.setMode("MODE_TEXT")}ccRTD(){this.logger.log(2,"RTD"),this.setMode("MODE_TEXT")}ccEDM(){this.logger.log(2,"EDM - Erase Displayed Memory"),this.displayedMemory.reset(),this.outputDataUpdate(!0)}ccCR(){this.logger.log(2,"CR - Carriage Return"),this.writeScreen.rollUp(),this.outputDataUpdate(!0)}ccENM(){this.logger.log(2,"ENM - Erase Non-displayed Memory"),this.nonDisplayedMemory.reset()}ccEOC(){if(this.logger.log(2,"EOC - End Of Caption"),this.mode==="MODE_POP-ON"){let t=this.displayedMemory;this.displayedMemory=this.nonDisplayedMemory,this.nonDisplayedMemory=t,this.writeScreen=this.nonDisplayedMemory,this.logger.log(1,()=>"DISP: "+this.displayedMemory.getDisplayText())}this.outputDataUpdate(!0)}ccTO(t){this.logger.log(2,"TO("+t+") - Tab Offset"),this.writeScreen.moveCursor(t)}ccMIDROW(t){let e={flash:!1};if(e.underline=t%2==1,e.italics=t>=46,e.italics)e.foreground="white";else{let i=Math.floor(t/2)-16,r=["white","green","blue","cyan","red","yellow","magenta"];e.foreground=r[i]}this.logger.log(2,"MIDROW: "+JSON.stringify(e)),this.writeScreen.setPen(e)}outputDataUpdate(t=!1){let e=this.logger.time;e!==null&&this.outputFilter&&(this.cueStartTime!==null||this.displayedMemory.isEmpty()?this.displayedMemory.equals(this.lastOutputScreen)||(this.outputFilter.newCue(this.cueStartTime,e,this.lastOutputScreen),t&&this.outputFilter.dispatchCue&&this.outputFilter.dispatchCue(),this.cueStartTime=this.displayedMemory.isEmpty()?null:e):this.cueStartTime=e,this.lastOutputScreen.copy(this.displayedMemory))}cueSplitAtTime(t){this.outputFilter&&(this.displayedMemory.isEmpty()||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,t,this.displayedMemory),this.cueStartTime=t))}}class $l{constructor(t,e,i){this.channels=void 0,this.currentChannel=0,this.cmdHistory={a:null,b:null},this.logger=void 0;let r=this.logger=new du;this.channels=[null,new Bl(t,e,r),new Bl(t+1,i,r)]}getHandler(t){return this.channels[t].getHandler()}setHandler(t,e){this.channels[t].setHandler(e)}addData(t,e){let i,r,s,a=!1;this.logger.time=t;for(let l=0;l<e.length;l+=2)if(r=127&e[l],s=127&e[l+1],r!==0||s!==0){if(this.logger.log(3,"["+fn([e[l],e[l+1]])+"] -> ("+fn([r,s])+")"),i=this.parseCmd(r,s),i||(i=this.parseMidrow(r,s)),i||(i=this.parsePAC(r,s)),i||(i=this.parseBackgroundAttributes(r,s)),!i&&(a=this.parseChars(r,s),a)){let c=this.currentChannel;if(c&&c>0)this.channels[c].insertChars(a);else this.logger.log(2,"No channel found yet. TEXT-MODE?")}i||a||this.logger.log(2,"Couldn't parse cleaned data "+fn([r,s])+" orig: "+fn([e[l],e[l+1]]))}}parseCmd(t,e){let{cmdHistory:i}=this;if(!((t===20||t===28||t===21||t===29)&&e>=32&&e<=47)&&!((t===23||t===31)&&e>=33&&e<=35))return!1;if(mu(t,e,i))return rs(null,null,i),this.logger.log(3,"Repeated command ("+fn([t,e])+") is dropped"),!0;let r=t===20||t===21||t===23?1:2,s=this.channels[r];return t===20||t===21||t===28||t===29?e===32?s.ccRCL():e===33?s.ccBS():e===34?s.ccAOF():e===35?s.ccAON():e===36?s.ccDER():e===37?s.ccRU(2):e===38?s.ccRU(3):e===39?s.ccRU(4):e===40?s.ccFON():e===41?s.ccRDC():e===42?s.ccTR():e===43?s.ccRTD():e===44?s.ccEDM():e===45?s.ccCR():e===46?s.ccENM():e===47&&s.ccEOC():s.ccTO(e-32),rs(t,e,i),this.currentChannel=r,!0}parseMidrow(t,e){let i=0;if((t===17||t===25)&&e>=32&&e<=47){if(i=t===17?1:2,i!==this.currentChannel)return this.logger.log(0,"Mismatch channel in midrow parsing"),!1;let r=this.channels[i];return!!r&&(r.ccMIDROW(e),this.logger.log(3,"MIDROW ("+fn([t,e])+")"),!0)}return!1}parsePAC(t,e){let i,r=this.cmdHistory;if(!((t>=17&&t<=23||t>=25&&t<=31)&&e>=64&&e<=127)&&!((t===16||t===24)&&e>=64&&e<=95))return!1;if(mu(t,e,r))return rs(null,null,r),!0;let s=t<=23?1:2;i=e>=64&&e<=95?s===1?cf[t]:df[t]:s===1?uf[t]:hf[t];let a=this.channels[s];return!!a&&(a.setPAC(this.interpretPAC(i,e)),rs(t,e,r),this.currentChannel=s,!0)}interpretPAC(t,e){let i,r={color:null,italics:!1,indent:null,underline:!1,row:t};return i=e>95?e-96:e-64,r.underline=(1&i)==1,i<=13?r.color=["white","green","blue","cyan","red","yellow","magenta","white"][Math.floor(i/2)]:i<=15?(r.italics=!0,r.color="white"):r.indent=4*Math.floor((i-16)/2),r}parseChars(t,e){let i,r=null,s=null;if(t>=25?(i=2,s=t-8):(i=1,s=t),s>=17&&s<=19){let a;a=s===17?e+80:s===18?e+112:e+144,this.logger.log(2,"Special char '"+uu(a)+"' in channel "+i),r=[a]}else t>=32&&t<=127&&(r=e===0?[t]:[t,e]);if(r){let a=fn(r);this.logger.log(3,"Char codes = "+a.join(",")),rs(t,e,this.cmdHistory)}return r}parseBackgroundAttributes(t,e){if(!((t===16||t===24)&&e>=32&&e<=47)&&!((t===23||t===31)&&e>=45&&e<=47))return!1;let i,r={};t===16||t===24?(i=Math.floor((e-32)/2),r.background=ff[i],e%2==1&&(r.background=r.background+"_semi")):e===45?r.background="transparent":(r.foreground="black",e===47&&(r.underline=!0));let s=t<=23?1:2;return this.channels[s].setBkgData(r),rs(t,e,this.cmdHistory),!0}reset(){for(let t=0;t<Object.keys(this.channels).length;t++){let e=this.channels[t];e&&e.reset()}this.cmdHistory={a:null,b:null}}cueSplitAtTime(t){for(let e=0;e<this.channels.length;e++){let i=this.channels[e];i&&i.cueSplitAtTime(t)}}}function rs(t,e,i){i.a=t,i.b=e}function mu(t,e,i){return i.a===t&&i.b===e}class va{constructor(t,e){this.timelineController=void 0,this.cueRanges=[],this.trackName=void 0,this.startTime=null,this.endTime=null,this.screen=null,this.timelineController=t,this.trackName=e}dispatchCue(){this.startTime!==null&&(this.timelineController.addCues(this.trackName,this.startTime,this.endTime,this.screen,this.cueRanges),this.startTime=null)}newCue(t,e,i){(this.startTime===null||this.startTime>t)&&(this.startTime=t),this.endTime=e,this.screen=i,this.timelineController.createCaptionsTrack(this.trackName)}reset(){this.cueRanges=[],this.startTime=null}}var Gl=function(){if(ce!=null&&ce.VTTCue)return self.VTTCue;let t=["","lr","rl"],e=["start","middle","end","left","right"];function i(l,c){if(typeof c!="string")return!1;if(!Array.isArray(l))return!1;let u=c.toLowerCase();return!!~l.indexOf(u)&&u}function r(l){return i(e,l)}function s(l,...c){let u=1;for(;u<arguments.length;u++){let d=arguments[u];for(let m in d)l[m]=d[m]}return l}function a(l,c,u){let d=this,m={enumerable:!0};d.hasBeenReset=!1;let y="",S=!1,T=l,w=c,D=u,k=null,N="",x=!0,G="auto",Y="start",rt=50,J="middle",ut=50,ft="middle";Object.defineProperty(d,"id",s({},m,{get:function(){return y},set:function(Z){y=""+Z}})),Object.defineProperty(d,"pauseOnExit",s({},m,{get:function(){return S},set:function(Z){S=!!Z}})),Object.defineProperty(d,"startTime",s({},m,{get:function(){return T},set:function(Z){if(typeof Z!="number")throw new TypeError("Start time must be set to a number.");T=Z,this.hasBeenReset=!0}})),Object.defineProperty(d,"endTime",s({},m,{get:function(){return w},set:function(Z){if(typeof Z!="number")throw new TypeError("End time must be set to a number.");w=Z,this.hasBeenReset=!0}})),Object.defineProperty(d,"text",s({},m,{get:function(){return D},set:function(Z){D=""+Z,this.hasBeenReset=!0}})),Object.defineProperty(d,"region",s({},m,{get:function(){return k},set:function(Z){k=Z,this.hasBeenReset=!0}})),Object.defineProperty(d,"vertical",s({},m,{get:function(){return N},set:function(Z){let Q=function(Dt){return i(t,Dt)}(Z);if(Q===!1)throw new SyntaxError("An invalid or illegal string was specified.");N=Q,this.hasBeenReset=!0}})),Object.defineProperty(d,"snapToLines",s({},m,{get:function(){return x},set:function(Z){x=!!Z,this.hasBeenReset=!0}})),Object.defineProperty(d,"line",s({},m,{get:function(){return G},set:function(Z){if(typeof Z!="number"&&Z!=="auto")throw new SyntaxError("An invalid number or illegal string was specified.");G=Z,this.hasBeenReset=!0}})),Object.defineProperty(d,"lineAlign",s({},m,{get:function(){return Y},set:function(Z){let Q=r(Z);if(!Q)throw new SyntaxError("An invalid or illegal string was specified.");Y=Q,this.hasBeenReset=!0}})),Object.defineProperty(d,"position",s({},m,{get:function(){return rt},set:function(Z){if(Z<0||Z>100)throw new Error("Position must be between 0 and 100.");rt=Z,this.hasBeenReset=!0}})),Object.defineProperty(d,"positionAlign",s({},m,{get:function(){return J},set:function(Z){let Q=r(Z);if(!Q)throw new SyntaxError("An invalid or illegal string was specified.");J=Q,this.hasBeenReset=!0}})),Object.defineProperty(d,"size",s({},m,{get:function(){return ut},set:function(Z){if(Z<0||Z>100)throw new Error("Size must be between 0 and 100.");ut=Z,this.hasBeenReset=!0}})),Object.defineProperty(d,"align",s({},m,{get:function(){return ft},set:function(Z){let Q=r(Z);if(!Q)throw new SyntaxError("An invalid or illegal string was specified.");ft=Q,this.hasBeenReset=!0}})),d.displayState=void 0}return a.prototype.getCueAsHTML=function(){return self.WebVTT.convertCueToDOMTree(self,this.text)},a}();class gu{decode(t,e){if(!t)return"";if(typeof t!="string")throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(t))}}function pu(t){function e(r,s,a,l){return 3600*(0|r)+60*(0|s)+(0|a)+parseFloat(l||0)}let i=t.match(/^(?:(\d+):)?(\d{2}):(\d{2})(\.\d+)?/);return i?parseFloat(i[2])>59?e(i[2],i[3],0,i[4]):e(i[1],i[2],i[3],i[4]):null}class vu{constructor(){this.values=Object.create(null)}set(t,e){this.get(t)||e===""||(this.values[t]=e)}get(t,e,i){return i?this.has(t)?this.values[t]:e[i]:this.has(t)?this.values[t]:e}has(t){return t in this.values}alt(t,e,i){for(let r=0;r<i.length;++r)if(e===i[r]){this.set(t,e);break}}integer(t,e){/^-?\d+$/.test(e)&&this.set(t,parseInt(e,10))}percent(t,e){if(/^([\d]{1,3})(\.[\d]*)?%$/.test(e)){let i=parseFloat(e);if(i>=0&&i<=100)return this.set(t,i),!0}return!1}}function Eu(t,e,i,r){let s=r?t.split(r):[t];for(let a in s){if(typeof s[a]!="string")continue;let l=s[a].split(i);if(l.length!==2)continue;e(l[0],l[1])}}let Hl=new Gl(0,0,""),Lo=Hl.align==="middle"?"middle":"center";function mf(t,e,i){let r=t;function s(){let l=pu(t);if(l===null)throw new Error("Malformed timestamp: "+r);return t=t.replace(/^[^\sa-zA-Z-]+/,""),l}function a(){t=t.replace(/^\s+/,"")}if(a(),e.startTime=s(),a(),t.slice(0,3)!=="-->")throw new Error("Malformed time stamp (time stamps must be separated by '-->'): "+r);t=t.slice(3),a(),e.endTime=s(),a(),function(l,c){let u=new vu;Eu(l,function(y,S){let T;switch(y){case"region":for(let w=i.length-1;w>=0;w--)if(i[w].id===S){u.set(y,i[w].region);break}break;case"vertical":u.alt(y,S,["rl","lr"]);break;case"line":T=S.split(","),u.integer(y,T[0]),u.percent(y,T[0])&&u.set("snapToLines",!1),u.alt(y,T[0],["auto"]),T.length===2&&u.alt("lineAlign",T[1],["start",Lo,"end"]);break;case"position":T=S.split(","),u.percent(y,T[0]),T.length===2&&u.alt("positionAlign",T[1],["start",Lo,"end","line-left","line-right","auto"]);break;case"size":u.percent(y,S);break;case"align":u.alt(y,S,["start",Lo,"end","left","right"])}},/:/,/\s/),c.region=u.get("region",null),c.vertical=u.get("vertical","");let d=u.get("line","auto");d==="auto"&&Hl.line===-1&&(d=-1),c.line=d,c.lineAlign=u.get("lineAlign","start"),c.snapToLines=u.get("snapToLines",!0),c.size=u.get("size",100),c.align=u.get("align",Lo);let m=u.get("position","auto");m==="auto"&&Hl.position===50&&(m=c.align==="start"||c.align==="left"?0:c.align==="end"||c.align==="right"?100:50),c.position=m}(t,e)}function yu(t){return t.replace(/<br(?: \/)?>/gi,`
|
|
16
|
+
`)}class Su{constructor(){this.state="INITIAL",this.buffer="",this.decoder=new gu,this.regionList=[],this.cue=null,this.oncue=void 0,this.onparsingerror=void 0,this.onflush=void 0}parse(t){let e=this;function i(){let r=e.buffer,s=0;for(r=yu(r);s<r.length&&r[s]!=="\r"&&r[s]!==`
|
|
17
|
+
`;)++s;let a=r.slice(0,s);return r[s]==="\r"&&++s,r[s]===`
|
|
18
|
+
`&&++s,e.buffer=r.slice(s),a}t&&(e.buffer+=e.decoder.decode(t,{stream:!0}));try{let r="";if(e.state==="INITIAL"){if(!/\r\n|\n/.test(e.buffer))return this;r=i();let a=r.match(/^()?WEBVTT([ \t].*)?$/);if(a==null||!a[0])throw new Error("Malformed WebVTT signature.");e.state="HEADER"}let s=!1;for(;e.buffer;){if(!/\r\n|\n/.test(e.buffer))return this;switch(s?s=!1:r=i(),e.state){case"HEADER":/:/.test(r)?Eu(r,function(a,l){},/:/):r||(e.state="ID");continue;case"NOTE":r||(e.state="ID");continue;case"ID":if(/^NOTE($|[ \t])/.test(r)){e.state="NOTE";break}if(!r)continue;if(e.cue=new Gl(0,0,""),e.state="CUE",r.indexOf("-->")===-1){e.cue.id=r;continue}case"CUE":if(!e.cue){e.state="BADCUE";continue}try{mf(r,e.cue,e.regionList)}catch(a){e.cue=null,e.state="BADCUE";continue}e.state="CUETEXT";continue;case"CUETEXT":{let a=r.indexOf("-->")!==-1;if(!r||a&&(s=!0)){e.oncue&&e.cue&&e.oncue(e.cue),e.cue=null,e.state="ID";continue}if(e.cue===null)continue;e.cue.text&&(e.cue.text+=`
|
|
19
|
+
`),e.cue.text+=r}continue;case"BADCUE":r||(e.state="ID")}}}catch(r){e.state==="CUETEXT"&&e.cue&&e.oncue&&e.oncue(e.cue),e.cue=null,e.state=e.state==="INITIAL"?"BADWEBVTT":"BADCUE"}return this}flush(){let t=this;try{if((t.cue||t.state==="HEADER")&&(t.buffer+=`
|
|
20
|
+
|
|
21
|
+
`,t.parse()),t.state==="INITIAL"||t.state==="BADWEBVTT")throw new Error("Malformed WebVTT signature.")}catch(e){t.onparsingerror&&t.onparsingerror(e)}return t.onflush&&t.onflush(),this}}let gf=/\r\n|\n\r|\n|\r/g,Vl=function(t,e,i=0){return t.slice(i,i+e.length)===e},Kl=function(t){let e=5381,i=t.length;for(;i;)e=33*e^t.charCodeAt(--i);return(e>>>0).toString()};function Wl(t,e,i){return Kl(t.toString())+Kl(e.toString())+Kl(i)}function pf(t,e,i,r,s,a,l){let c=new Su,u=Fe(new Uint8Array(t)).trim().replace(gf,`
|
|
39
22
|
`).split(`
|
|
40
|
-
`),
|
|
41
|
-
`)}),
|
|
42
|
-
`:(ht=zt.childNodes)!=null&&ht.length?it(zt,At):At?Kt+zt.textContent.trim().replace(/\s+/g," "):Kt+zt.textContent},"")}(M,_);if(!V||!M.hasAttribute("begin"))return null;let X=$o(M.getAttribute("begin"),T),ot=$o(M.getAttribute("dur"),T),et=$o(M.getAttribute("end"),T);if(X===null)throw $l(M);if(et===null){if(ot===null)throw $l(M);et=X+ot}let vt=new xo(X-u,et-u,V);vt.id=Fo(vt.startTime,vt.endTime,vt.text);let St=function(it,jt,At){let zt=null,Xt=it!=null&&it.hasAttribute("style")?it.getAttribute("style"):null;return Xt&&At.hasOwnProperty(Xt)&&(zt=At[Xt]),["displayAlign","textAlign","color","backgroundColor","fontSize","fontFamily"].reduce((ht,wt)=>{let Wt=Uo(jt,"http://www.w3.org/ns/ttml#styling",wt)||Uo(it,"http://www.w3.org/ns/ttml#styling",wt)||Uo(zt,"http://www.w3.org/ns/ttml#styling",wt);return Wt&&(ht[wt]=Wt),ht},{})}(w[M.getAttribute("region")],D[M.getAttribute("style")],D),{textAlign:nt}=St;if(nt){let it=yd[nt];it&&(vt.lineAlign=it),vt.align=nt}return z(vt,St),vt}).filter((M)=>M!==null)}(l,a)))}catch(l){n(l)}}function Bo(t,e,i){let n=t.getElementsByTagName(e)[0];return n?[].slice.call(n.querySelectorAll(i)):[]}function Ul(t){return t.reduce((e,i)=>{let n=i.getAttribute("xml:id");return n&&(e[n]=i),e},{})}function Uo(t,e,i){return t&&t.hasAttributeNS(e,i)?t.getAttributeNS(e,i):null}function $l(t){return new Error("Could not parse ttml timestamp "+t)}function $o(t,e){if(!t)return null;let i=Il(t);return i===null&&(Ml.test(t)?i=function(n,r){let s=Ml.exec(n),a=(0|s[4])+(0|s[5])/r.subFrameRate;return 3600*(0|s[1])+60*(0|s[2])+(0|s[3])+a/r.frameRate}(t,e):Fl.test(t)&&(i=function(n,r){let s=Fl.exec(n),a=Number(s[1]);switch(s[2]){case"h":return 3600*a;case"m":return 60*a;case"ms":return 1000*a;case"f":return a/r.frameRate;case"t":return a/r.tickRate}return a}(t,e))),i}function Gl(t){return t.characteristics&&/transcribes-spoken-dialog/gi.test(t.characteristics)&&/describes-music-and-sound/gi.test(t.characteristics)?"captions":"subtitles"}function Hl(t,e){return!!t&&t.kind===Gl(e)&&Do(e,t)}class Go{constructor(t){this.hls=void 0,this.autoLevelCapping=void 0,this.firstLevel=void 0,this.media=void 0,this.restrictedLevels=void 0,this.timer=void 0,this.clientRect=void 0,this.streamController=void 0,this.hls=t,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.firstLevel=-1,this.media=null,this.restrictedLevels=[],this.timer=void 0,this.clientRect=null,this.registerListeners()}setStreamController(t){this.streamController=t}destroy(){this.hls&&this.unregisterListener(),this.timer&&this.stopCapping(),this.media=null,this.clientRect=null,this.hls=this.streamController=null}registerListeners(){let{hls:t}=this;t.on(A.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),t.on(A.MEDIA_ATTACHING,this.onMediaAttaching,this),t.on(A.MANIFEST_PARSED,this.onManifestParsed,this),t.on(A.LEVELS_UPDATED,this.onLevelsUpdated,this),t.on(A.BUFFER_CODECS,this.onBufferCodecs,this),t.on(A.MEDIA_DETACHING,this.onMediaDetaching,this)}unregisterListener(){let{hls:t}=this;t.off(A.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),t.off(A.MEDIA_ATTACHING,this.onMediaAttaching,this),t.off(A.MANIFEST_PARSED,this.onManifestParsed,this),t.off(A.LEVELS_UPDATED,this.onLevelsUpdated,this),t.off(A.BUFFER_CODECS,this.onBufferCodecs,this),t.off(A.MEDIA_DETACHING,this.onMediaDetaching,this)}onFpsDropLevelCapping(t,e){let i=this.hls.levels[e.droppedLevel];this.isLevelAllowed(i)&&this.restrictedLevels.push({bitrate:i.bitrate,height:i.height,width:i.width})}onMediaAttaching(t,e){this.media=e.media instanceof HTMLVideoElement?e.media:null,this.clientRect=null,this.timer&&this.hls.levels.length&&this.detectPlayerSize()}onManifestParsed(t,e){let i=this.hls;this.restrictedLevels=[],this.firstLevel=e.firstLevel,i.config.capLevelToPlayerSize&&e.video&&this.startCapping()}onLevelsUpdated(t,e){this.timer&&j(this.autoLevelCapping)&&this.detectPlayerSize()}onBufferCodecs(t,e){this.hls.config.capLevelToPlayerSize&&e.video&&this.startCapping()}onMediaDetaching(){this.stopCapping()}detectPlayerSize(){if(this.media){if(this.mediaHeight<=0||this.mediaWidth<=0)return void(this.clientRect=null);let t=this.hls.levels;if(t.length){let e=this.hls,i=this.getMaxLevel(t.length-1);i!==this.autoLevelCapping&&C.log(`Setting autoLevelCapping to ${i}: ${t[i].height}p@${t[i].bitrate} for media ${this.mediaWidth}x${this.mediaHeight}`),e.autoLevelCapping=i,e.autoLevelCapping>this.autoLevelCapping&&this.streamController&&this.streamController.nextLevelSwitch(),this.autoLevelCapping=e.autoLevelCapping}}}getMaxLevel(t){let e=this.hls.levels;if(!e.length)return-1;let i=e.filter((n,r)=>this.isLevelAllowed(n)&&r<=t);return this.clientRect=null,Go.getMaxLevelByMediaSize(i,this.mediaWidth,this.mediaHeight)}startCapping(){this.timer||(this.autoLevelCapping=Number.POSITIVE_INFINITY,self.clearInterval(this.timer),this.timer=self.setInterval(this.detectPlayerSize.bind(this),1000),this.detectPlayerSize())}stopCapping(){this.restrictedLevels=[],this.firstLevel=-1,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.timer&&(self.clearInterval(this.timer),this.timer=void 0)}getDimensions(){if(this.clientRect)return this.clientRect;let t=this.media,e={width:0,height:0};if(t){let i=t.getBoundingClientRect();e.width=i.width,e.height=i.height,e.width||e.height||(e.width=i.right-i.left||t.width||0,e.height=i.bottom-i.top||t.height||0)}return this.clientRect=e,e}get mediaWidth(){return this.getDimensions().width*this.contentScaleFactor}get mediaHeight(){return this.getDimensions().height*this.contentScaleFactor}get contentScaleFactor(){let t=1;if(!this.hls.config.ignoreDevicePixelRatio)try{t=self.devicePixelRatio}catch(e){}return t}isLevelAllowed(t){return!this.restrictedLevels.some((e)=>t.bitrate===e.bitrate&&t.width===e.width&&t.height===e.height)}static getMaxLevelByMediaSize(t,e,i){if(t==null||!t.length)return-1;let n=t.length-1,r=Math.max(e,i);for(let l=0;l<t.length;l+=1){let d=t[l];if((d.width>=r||d.height>=r)&&(s=d,!(a=t[l+1])||s.width!==a.width||s.height!==a.height)){n=l;break}}var s,a;return n}}class ys{constructor(t){this.hls=void 0,this.config=void 0,this.media=null,this.keyFormatPromise=null,this.keySystemAccessPromises={},this._requestLicenseFailureCount=0,this.mediaKeySessions=[],this.keyIdToKeySessionPromise={},this.setMediaKeysQueue=ys.CDMCleanupPromise?[ys.CDMCleanupPromise]:[],this.onMediaEncrypted=this._onMediaEncrypted.bind(this),this.onWaitingForKey=this._onWaitingForKey.bind(this),this.debug=C.debug.bind(C,"[eme]"),this.log=C.log.bind(C,"[eme]"),this.warn=C.warn.bind(C,"[eme]"),this.error=C.error.bind(C,"[eme]"),this.hls=t,this.config=t.config,this.registerListeners()}destroy(){this.unregisterListeners(),this.onMediaDetached();let t=this.config;t.requestMediaKeySystemAccessFunc=null,t.licenseXhrSetup=t.licenseResponseCallback=void 0,t.drmSystems=t.drmSystemOptions={},this.hls=this.onMediaEncrypted=this.onWaitingForKey=this.keyIdToKeySessionPromise=null,this.config=null}registerListeners(){this.hls.on(A.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(A.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.on(A.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.on(A.MANIFEST_LOADED,this.onManifestLoaded,this)}unregisterListeners(){this.hls.off(A.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.off(A.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.off(A.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.off(A.MANIFEST_LOADED,this.onManifestLoaded,this)}getLicenseServerUrl(t){let{drmSystems:e,widevineLicenseUrl:i}=this.config,n=e[t];if(n)return n.licenseUrl;if(t===se.WIDEVINE&&i)return i;throw new Error(`no license server URL configured for key-system "${t}"`)}getServerCertificateUrl(t){let{drmSystems:e}=this.config,i=e[t];if(i)return i.serverCertificateUrl;this.log(`No Server Certificate in config.drmSystems["${t}"]`)}attemptKeySystemAccess(t){let e=this.hls.levels,i=(s,a,l)=>!!s&&l.indexOf(s)===a,n=e.map((s)=>s.audioCodec).filter(i),r=e.map((s)=>s.videoCodec).filter(i);return n.length+r.length===0&&r.push("avc1.42e01e"),new Promise((s,a)=>{let l=(d)=>{let u=d.shift();this.getMediaKeysPromise(u,n,r).then((f)=>s({keySystem:u,mediaKeys:f})).catch((f)=>{d.length?l(d):a(f instanceof tn?f:new tn({type:Ft.KEY_SYSTEM_ERROR,details:H.KEY_SYSTEM_NO_ACCESS,error:f,fatal:!0},f.message))})};l(t)})}requestMediaKeySystemAccess(t,e){let{requestMediaKeySystemAccessFunc:i}=this.config;if(typeof i!="function"){let n="Configured requestMediaKeySystemAccess is not a function "+i;return Qe===null&&self.location.protocol==="http:"&&(n="navigator.requestMediaKeySystemAccess is not available over insecure protocol "+location.protocol),Promise.reject(new Error(n))}return i(t,e)}getMediaKeysPromise(t,e,i){let n=function(a,l,d,u){let f;switch(a){case se.FAIRPLAY:f=["cenc","sinf"];break;case se.WIDEVINE:case se.PLAYREADY:f=["cenc"];break;case se.CLEARKEY:f=["cenc","keyids"];break;default:throw new Error("Unknown key-system: "+a)}return function(E,b,T,_){return[{initDataTypes:E,persistentState:_.persistentState||"optional",distinctiveIdentifier:_.distinctiveIdentifier||"optional",sessionTypes:_.sessionTypes||[_.sessionType||"temporary"],audioCapabilities:b.map((D)=>({contentType:`audio/mp4; codecs="${D}"`,robustness:_.audioRobustness||"",encryptionScheme:_.audioEncryptionScheme||null})),videoCapabilities:T.map((D)=>({contentType:`video/mp4; codecs="${D}"`,robustness:_.videoRobustness||"",encryptionScheme:_.videoEncryptionScheme||null}))}]}(f,l,d,u)}(t,e,i,this.config.drmSystemOptions),r=this.keySystemAccessPromises[t],s=r==null?void 0:r.keySystemAccess;if(!s){this.log(`Requesting encrypted media "${t}" key-system access with config: ${JSON.stringify(n)}`),s=this.requestMediaKeySystemAccess(t,n);let a=this.keySystemAccessPromises[t]={keySystemAccess:s};return s.catch((l)=>{this.log(`Failed to obtain access to key-system "${t}": ${l}`)}),s.then((l)=>{this.log(`Access for key-system "${l.keySystem}" obtained`);let d=this.fetchServerCertificate(t);return this.log(`Create media-keys for "${t}"`),a.mediaKeys=l.createMediaKeys().then((u)=>(this.log(`Media-keys created for "${t}"`),d.then((f)=>f?this.setMediaKeysServerCertificate(u,t,f):u))),a.mediaKeys.catch((u)=>{this.error(`Failed to create media-keys for "${t}"}: ${u}`)}),a.mediaKeys})}return s.then(()=>r.mediaKeys)}createMediaKeySessionContext({decryptdata:t,keySystem:e,mediaKeys:i}){this.log(`Creating key-system session "${e}" keyId: ${_i(t.keyId||[])}`);let n=i.createSession(),r={decryptdata:t,keySystem:e,mediaKeys:i,mediaKeysSession:n,keyStatus:"status-pending"};return this.mediaKeySessions.push(r),r}renewKeySession(t){let e=t.decryptdata;if(e.pssh){let i=this.createMediaKeySessionContext(t),n=this.getKeyIdString(e);this.keyIdToKeySessionPromise[n]=this.generateRequestWithPreferredKeySession(i,"cenc",e.pssh,"expired")}else this.warn("Could not renew expired session. Missing pssh initData.");this.removeSession(t)}getKeyIdString(t){if(!t)throw new Error("Could not read keyId of undefined decryptdata");if(t.keyId===null)throw new Error("keyId is null");return _i(t.keyId)}updateKeySession(t,e){var i;let n=t.mediaKeysSession;return this.log(`Updating key-session "${n.sessionId}" for keyID ${_i(((i=t.decryptdata)==null?void 0:i.keyId)||[])}
|
|
43
|
-
} (data length: ${e?e.byteLength:e})`),n.update(e)}selectKeySystemFormat(t){let e=Object.keys(t.levelkeys||{});return this.keyFormatPromise||(this.log(`Selecting key-system from fragment (sn: ${t.sn} ${t.type}: ${t.level}) key formats ${e.join(", ")}`),this.keyFormatPromise=this.getKeyFormatPromise(e)),this.keyFormatPromise}getKeyFormatPromise(t){return new Promise((e,i)=>{let n=ai(this.config),r=t.map(Gt).filter((s)=>!!s&&n.indexOf(s)!==-1);return this.getKeySystemSelectionPromise(r).then(({keySystem:s})=>{let a=Re(s);a?e(a):i(new Error(`Unable to find format for key-system "${s}"`))}).catch(i)})}loadKey(t){let e=t.keyInfo.decryptdata,i=this.getKeyIdString(e),n=`(keyId: ${i} format: "${e.keyFormat}" method: ${e.method} uri: ${e.uri})`;this.log("Starting session for key "+n);let r=this.keyIdToKeySessionPromise[i];return r||(r=this.keyIdToKeySessionPromise[i]=this.getKeySystemForKeyPromise(e).then(({keySystem:s,mediaKeys:a})=>(this.throwIfDestroyed(),this.log(`Handle encrypted media sn: ${t.frag.sn} ${t.frag.type}: ${t.frag.level} using key ${n}`),this.attemptSetMediaKeys(s,a).then(()=>{this.throwIfDestroyed();let l=this.createMediaKeySessionContext({keySystem:s,mediaKeys:a,decryptdata:e});return this.generateRequestWithPreferredKeySession(l,"cenc",e.pssh,"playlist-key")}))),r.catch((s)=>this.handleError(s))),r}throwIfDestroyed(t="Invalid state"){if(!this.hls)throw new Error("invalid state")}handleError(t){this.hls&&(this.error(t.message),t instanceof tn?this.hls.trigger(A.ERROR,t.data):this.hls.trigger(A.ERROR,{type:Ft.KEY_SYSTEM_ERROR,details:H.KEY_SYSTEM_NO_KEYS,error:t,fatal:!0}))}getKeySystemForKeyPromise(t){let e=this.getKeyIdString(t),i=this.keyIdToKeySessionPromise[e];if(!i){let n=Gt(t.keyFormat),r=n?[n]:ai(this.config);return this.attemptKeySystemAccess(r)}return i}getKeySystemSelectionPromise(t){if(t.length||(t=ai(this.config)),t.length===0)throw new tn({type:Ft.KEY_SYSTEM_ERROR,details:H.KEY_SYSTEM_NO_CONFIGURED_LICENSE,fatal:!0},"Missing key-system license configuration options "+JSON.stringify({drmSystems:this.config.drmSystems}));return this.attemptKeySystemAccess(t)}_onMediaEncrypted(t){let{initDataType:e,initData:i}=t;if(this.debug(`"${t.type}" event: init data type: "${e}"`),i===null)return;let n,r;if(e==="sinf"&&this.config.drmSystems[se.FAIRPLAY]){let u=fe(new Uint8Array(i));try{let f=Dt(JSON.parse(u).sinf),E=_r(new Uint8Array(f));if(!E)return;n=E.subarray(8,24),r=se.FAIRPLAY}catch(f){return void this.warn('Failed to parse sinf "encrypted" event message initData')}}else{let u=function(f){if(!(f instanceof ArrayBuffer)||f.byteLength<32)return null;let E={version:0,systemId:"",kids:null,data:null},b=new DataView(f),T=b.getUint32(0);if(f.byteLength!==T&&T>44)return null;if(b.getUint32(4)!==1886614376)return null;if(E.version=b.getUint32(8)>>>24,E.version>1)return null;E.systemId=_i(new Uint8Array(f,12,16));let _=b.getUint32(28);if(E.version===0){if(T-32<_)return null;E.data=new Uint8Array(f,32,_)}else if(E.version===1){E.kids=[];for(let D=0;D<_;D++)E.kids.push(new Uint8Array(f,32+16*D,16))}return E}(i);if(u===null)return;u.version===0&&u.systemId===Oe&&u.data&&(n=u.data.subarray(8,24)),r=function(f){if(f===Oe)return se.WIDEVINE}(u.systemId)}if(!r||!n)return;let s=_i(n),{keyIdToKeySessionPromise:a,mediaKeySessions:l}=this,d=a[s];for(let u=0;u<l.length;u++){let f=l[u],E=f.decryptdata;if(E.pssh||!E.keyId)continue;let b=_i(E.keyId);if(s===b||E.uri.replace(/-/g,"").indexOf(s)!==-1){d=a[b],delete a[b],E.pssh=new Uint8Array(i),E.keyId=n,d=a[s]=d.then(()=>this.generateRequestWithPreferredKeySession(f,e,i,"encrypted-event-key-match"));break}}d||(d=a[s]=this.getKeySystemSelectionPromise([r]).then(({keySystem:u,mediaKeys:f})=>{var E;this.throwIfDestroyed();let b=new xi("ISO-23001-7",s,(E=Re(u))!=null?E:"");return b.pssh=new Uint8Array(i),b.keyId=n,this.attemptSetMediaKeys(u,f).then(()=>{this.throwIfDestroyed();let T=this.createMediaKeySessionContext({decryptdata:b,keySystem:u,mediaKeys:f});return this.generateRequestWithPreferredKeySession(T,e,i,"encrypted-event-no-match")})})),d.catch((u)=>this.handleError(u))}_onWaitingForKey(t){this.log(`"${t.type}" event`)}attemptSetMediaKeys(t,e){let i=this.setMediaKeysQueue.slice();this.log(`Setting media-keys for "${t}"`);let n=Promise.all(i).then(()=>{if(!this.media)throw new Error("Attempted to set mediaKeys without media element attached");return this.media.setMediaKeys(e)});return this.setMediaKeysQueue.push(n),n.then(()=>{this.log(`Media-keys set for "${t}"`),i.push(n),this.setMediaKeysQueue=this.setMediaKeysQueue.filter((r)=>i.indexOf(r)===-1)})}generateRequestWithPreferredKeySession(t,e,i,n){var r,s;let a=(r=this.config.drmSystems)==null||(s=r[t.keySystem])==null?void 0:s.generateRequest;if(a)try{let T=a.call(this.hls,e,i,t);if(!T)throw new Error("Invalid response from configured generateRequest filter");e=T.initDataType,i=t.decryptdata.pssh=T.initData?new Uint8Array(T.initData):null}catch(T){var l;if(this.warn(T.message),(l=this.hls)!=null&&l.config.debug)throw T}if(i===null)return this.log(`Skipping key-session request for "${n}" (no initData)`),Promise.resolve(t);let d=this.getKeyIdString(t.decryptdata);this.log(`Generating key-session request for "${n}": ${d} (init data type: ${e} length: ${i?i.byteLength:null})`);let u=new ko,f=t._onmessage=(T)=>{let _=t.mediaKeysSession;if(!_)return void u.emit("error",new Error("invalid state"));let{messageType:D,message:w}=T;this.log(`"${D}" message event for session "${_.sessionId}" message size: ${w.byteLength}`),D==="license-request"||D==="license-renewal"?this.renewLicense(t,w).catch((x)=>{this.handleError(x),u.emit("error",x)}):D==="license-release"?t.keySystem===se.FAIRPLAY&&(this.updateKeySession(t,re("acknowledged")),this.removeSession(t)):this.warn(`unhandled media key message type "${D}"`)},E=t._onkeystatuseschange=(T)=>{if(!t.mediaKeysSession)return void u.emit("error",new Error("invalid state"));this.onKeyStatusChange(t);let _=t.keyStatus;u.emit("keyStatus",_),_==="expired"&&(this.warn(`${t.keySystem} expired for key ${d}`),this.renewKeySession(t))};t.mediaKeysSession.addEventListener("message",f),t.mediaKeysSession.addEventListener("keystatuseschange",E);let b=new Promise((T,_)=>{u.on("error",_),u.on("keyStatus",(D)=>{D.startsWith("usable")?T():D==="output-restricted"?_(new tn({type:Ft.KEY_SYSTEM_ERROR,details:H.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED,fatal:!1},"HDCP level output restricted")):D==="internal-error"?_(new tn({type:Ft.KEY_SYSTEM_ERROR,details:H.KEY_SYSTEM_STATUS_INTERNAL_ERROR,fatal:!0},`key status changed to "${D}"`)):D==="expired"?_(new Error("key expired while generating request")):this.warn(`unhandled key status change "${D}"`)})});return t.mediaKeysSession.generateRequest(e,i).then(()=>{var T;this.log(`Request generated for key-session "${(T=t.mediaKeysSession)==null?void 0:T.sessionId}" keyId: ${d}`)}).catch((T)=>{throw new tn({type:Ft.KEY_SYSTEM_ERROR,details:H.KEY_SYSTEM_NO_SESSION,error:T,fatal:!1},"Error generating key-session request: "+T)}).then(()=>b).catch((T)=>{throw u.removeAllListeners(),this.removeSession(t),T}).then(()=>(u.removeAllListeners(),t))}onKeyStatusChange(t){t.mediaKeysSession.keyStatuses.forEach((e,i)=>{this.log(`key status change "${e}" for keyStatuses keyId: ${_i("buffer"in i?new Uint8Array(i.buffer,i.byteOffset,i.byteLength):new Uint8Array(i))} session keyId: ${_i(new Uint8Array(t.decryptdata.keyId||[]))} uri: ${t.decryptdata.uri}`),t.keyStatus=e})}fetchServerCertificate(t){let e=this.config,i=new e.loader(e),n=this.getServerCertificateUrl(t);return n?(this.log(`Fetching server certificate for "${t}"`),new Promise((r,s)=>{let a={responseType:"arraybuffer",url:n},l=e.certLoadPolicy.default,d={loadPolicy:l,timeout:l.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},u={onSuccess:(f,E,b,T)=>{r(f.data)},onError:(f,E,b,T)=>{s(new tn({type:Ft.KEY_SYSTEM_ERROR,details:H.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:b,response:L({url:a.url,data:void 0},f)},`"${t}" certificate request failed (${n}). Status: ${f.code} (${f.text})`))},onTimeout:(f,E,b)=>{s(new tn({type:Ft.KEY_SYSTEM_ERROR,details:H.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:b,response:{url:a.url,data:void 0}},`"${t}" certificate request timed out (${n})`))},onAbort:(f,E,b)=>{s(new Error("aborted"))}};i.load(a,d,u)})):Promise.resolve()}setMediaKeysServerCertificate(t,e,i){return new Promise((n,r)=>{t.setServerCertificate(i).then((s)=>{this.log(`setServerCertificate ${s?"success":"not supported by CDM"} (${i==null?void 0:i.byteLength}) on "${e}"`),n(t)}).catch((s)=>{r(new tn({type:Ft.KEY_SYSTEM_ERROR,details:H.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED,error:s,fatal:!0},s.message))})})}renewLicense(t,e){return this.requestLicense(t,new Uint8Array(e)).then((i)=>this.updateKeySession(t,new Uint8Array(i)).catch((n)=>{throw new tn({type:Ft.KEY_SYSTEM_ERROR,details:H.KEY_SYSTEM_SESSION_UPDATE_FAILED,error:n,fatal:!0},n.message)}))}unpackPlayReadyKeyMessage(t,e){let i=String.fromCharCode.apply(null,new Uint16Array(e.buffer));if(!i.includes("PlayReadyKeyMessage"))return t.setRequestHeader("Content-Type","text/xml; charset=utf-8"),e;let n=new DOMParser().parseFromString(i,"application/xml"),r=n.querySelectorAll("HttpHeader");if(r.length>0){let u;for(let f=0,E=r.length;f<E;f++){var s,a;u=r[f];let b=(s=u.querySelector("name"))==null?void 0:s.textContent,T=(a=u.querySelector("value"))==null?void 0:a.textContent;b&&T&&t.setRequestHeader(b,T)}}let l=n.querySelector("Challenge"),d=l==null?void 0:l.textContent;if(!d)throw new Error("Cannot find <Challenge> in key message");return re(atob(d))}setupLicenseXHR(t,e,i,n){let r=this.config.licenseXhrSetup;return r?Promise.resolve().then(()=>{if(!i.decryptdata)throw new Error("Key removed");return r.call(this.hls,t,e,i,n)}).catch((s)=>{if(!i.decryptdata)throw s;return t.open("POST",e,!0),r.call(this.hls,t,e,i,n)}).then((s)=>{return t.readyState||t.open("POST",e,!0),{xhr:t,licenseChallenge:s||n}}):(t.open("POST",e,!0),Promise.resolve({xhr:t,licenseChallenge:n}))}requestLicense(t,e){let i=this.config.keyLoadPolicy.default;return new Promise((n,r)=>{let s=this.getLicenseServerUrl(t.keySystem);this.log("Sending license request to URL: "+s);let a=new XMLHttpRequest;a.responseType="arraybuffer",a.onreadystatechange=()=>{if(!this.hls||!t.mediaKeysSession)return r(new Error("invalid state"));if(a.readyState===4)if(a.status===200){this._requestLicenseFailureCount=0;let l=a.response;this.log("License received "+(l instanceof ArrayBuffer?l.byteLength:l));let d=this.config.licenseResponseCallback;if(d)try{l=d.call(this.hls,a,s,t)}catch(u){this.error(u)}n(l)}else{let l=i.errorRetry,d=l?l.maxNumRetry:0;if(this._requestLicenseFailureCount++,this._requestLicenseFailureCount>d||a.status>=400&&a.status<500)r(new tn({type:Ft.KEY_SYSTEM_ERROR,details:H.KEY_SYSTEM_LICENSE_REQUEST_FAILED,fatal:!0,networkDetails:a,response:{url:s,data:void 0,code:a.status,text:a.statusText}},`License Request XHR failed (${s}). Status: ${a.status} (${a.statusText})`));else{let u=d-this._requestLicenseFailureCount+1;this.warn(`Retrying license request, ${u} attempts left`),this.requestLicense(t,e).then(n,r)}}},t.licenseXhr&&t.licenseXhr.readyState!==XMLHttpRequest.DONE&&t.licenseXhr.abort(),t.licenseXhr=a,this.setupLicenseXHR(a,s,t,e).then(({xhr:l,licenseChallenge:d})=>{t.keySystem==se.PLAYREADY&&(d=this.unpackPlayReadyKeyMessage(l,d)),l.send(d)})})}onMediaAttached(t,e){if(!this.config.emeEnabled)return;let i=e.media;this.media=i,i.addEventListener("encrypted",this.onMediaEncrypted),i.addEventListener("waitingforkey",this.onWaitingForKey)}onMediaDetached(){let t=this.media,e=this.mediaKeySessions;t&&(t.removeEventListener("encrypted",this.onMediaEncrypted),t.removeEventListener("waitingforkey",this.onWaitingForKey),this.media=null),this._requestLicenseFailureCount=0,this.setMediaKeysQueue=[],this.mediaKeySessions=[],this.keyIdToKeySessionPromise={},xi.clearKeyUriToKeyIdMap();let i=e.length;ys.CDMCleanupPromise=Promise.all(e.map((n)=>this.removeSession(n)).concat(t==null?void 0:t.setMediaKeys(null).catch((n)=>{this.log("Could not clear media keys: "+n)}))).then(()=>{i&&(this.log("finished closing key sessions and clearing media keys"),e.length=0)}).catch((n)=>{this.log("Could not close sessions and clear media keys: "+n)})}onManifestLoading(){this.keyFormatPromise=null}onManifestLoaded(t,{sessionKeys:e}){if(e&&this.config.emeEnabled&&!this.keyFormatPromise){let i=e.reduce((n,r)=>(n.indexOf(r.keyFormat)===-1&&n.push(r.keyFormat),n),[]);this.log("Selecting key-system from session-keys "+i.join(", ")),this.keyFormatPromise=this.getKeyFormatPromise(i)}}removeSession(t){let{mediaKeysSession:e,licenseXhr:i}=t;if(e){this.log("Remove licenses and keys and close session "+e.sessionId),t._onmessage&&(e.removeEventListener("message",t._onmessage),t._onmessage=void 0),t._onkeystatuseschange&&(e.removeEventListener("keystatuseschange",t._onkeystatuseschange),t._onkeystatuseschange=void 0),i&&i.readyState!==XMLHttpRequest.DONE&&i.abort(),t.mediaKeysSession=t.decryptdata=t.licenseXhr=void 0;let n=this.mediaKeySessions.indexOf(t);return n>-1&&this.mediaKeySessions.splice(n,1),e.remove().catch((r)=>{this.log("Could not remove session: "+r)}).then(()=>e.close()).catch((r)=>{this.log("Could not close session: "+r)})}}}ys.CDMCleanupPromise=void 0;class tn extends Error{constructor(t,e){super(e),this.data=void 0,t.error||(t.error=new Error(e)),this.data=t,t.err=t.error}}var Di,Ho,Gr;(function(t){t.MANIFEST="m",t.AUDIO="a",t.VIDEO="v",t.MUXED="av",t.INIT="i",t.CAPTION="c",t.TIMED_TEXT="tt",t.KEY="k",t.OTHER="o"})(Di||(Di={})),function(t){t.DASH="d",t.HLS="h",t.SMOOTH="s",t.OTHER="o"}(Ho||(Ho={})),function(t){t.OBJECT="CMCD-Object",t.REQUEST="CMCD-Request",t.SESSION="CMCD-Session",t.STATUS="CMCD-Status"}(Gr||(Gr={}));let Ed={[Gr.OBJECT]:["br","d","ot","tb"],[Gr.REQUEST]:["bl","dl","mtp","nor","nrr","su"],[Gr.SESSION]:["cid","pr","sf","sid","st","v"],[Gr.STATUS]:["bs","rtp"]};class Es{constructor(t,e){this.value=void 0,this.params=void 0,Array.isArray(t)&&(t=t.map((i)=>i instanceof Es?i:new Es(i))),this.value=t,this.params=e}}class Ko{constructor(t){this.description=void 0,this.description=t}}function Sd(t,e,i,n){return new Error(`failed to ${t} "${r=e,Array.isArray(r)?JSON.stringify(r):r instanceof Map?"Map{}":r instanceof Set?"Set{}":typeof r=="object"?JSON.stringify(r):String(r)}" as ${i}`,{cause:n});var r}let bd=/[\x00-\x1f\x7f]+/;function Tn(t,e,i){return Sd("serialize",t,e,i)}function Td(t){if(ArrayBuffer.isView(t)===!1)throw Tn(t,"Byte Sequence");return`:${e=t,btoa(String.fromCharCode(...e))}:`;var e}function Kl(t){if(function(e){return e<-999999999999999||999999999999999<e}(t))throw Tn(t,"Integer");return t.toString()}function Ad(t){let e=function n(r,s){if(r<0)return-n(-r,s);let a=Math.pow(10,s);if(Math.abs(r*a%1-0.5)<Number.EPSILON){let l=Math.floor(r*a);return(l%2==0?l:l+1)/a}return Math.round(r*a)/a}(t,3);if(Math.floor(Math.abs(e)).toString().length>12)throw Tn(t,"Decimal");let i=e.toString();return i.includes(".")?i:i+".0"}function Vl(t){let e=(i=t).description||i.toString().slice(7,-1);var i;if(/^([a-zA-Z*])([!#$%&'*+\-.^_`|~\w:/]*)$/.test(e)===!1)throw Tn(e,"Token");return e}function Vo(t){switch(typeof t){case"number":if(!j(t))throw Tn(t,"Bare Item");return Number.isInteger(t)?Kl(t):Ad(t);case"string":return function(e){if(bd.test(e))throw Tn(e,"String");return`"${e.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`}(t);case"symbol":return Vl(t);case"boolean":return function(e){if(typeof e!="boolean")throw Tn(e,"Boolean");return e?"?1":"?0"}(t);case"object":if(t instanceof Date)return function(e){return"@"+Kl(e.getTime()/1000)}(t);if(t instanceof Uint8Array)return Td(t);if(t instanceof Ko)return Vl(t);default:throw Tn(t,"Bare Item")}}function Wo(t){if(/^[a-z*][a-z0-9\-_.*]*$/.test(t)===!1)throw Tn(t,"Key");return t}function jo(t){return t==null?"":Object.entries(t).map(([e,i])=>i===!0?";"+Wo(e):`;${Wo(e)}=${Vo(i)}`).join("")}function Wl(t){return t instanceof Es?`${Vo(t.value)}${jo(t.params)}`:Vo(t)}function _d(t,e={whitespace:!0}){if(typeof t!="object")throw Tn(t,"Dict");let i=t instanceof Map?t.entries():Object.entries(t),n=e!=null&&e.whitespace?" ":"";return Array.from(i).map(([r,s])=>{s instanceof Es==!1&&(s=new Es(s));let a=Wo(r);var l;return s.value===!0?a+=jo(s.params):(a+="=",Array.isArray(s.value)?a+=`(${(l=s).value.map(Wl).join(" ")})${jo(l.params)}`:a+=Wl(s)),a}).join(","+n)}let Ha=(t)=>Math.round(t),Ka=(t)=>100*Ha(t/100),Ld={br:Ha,d:Ha,bl:Ka,dl:Ka,mtp:Ka,nor:(t,e)=>(e!=null&&e.baseUrl&&(t=function(i,n){let r=new URL(i),s=new URL(n);if(r.origin!==s.origin)return i;let a=r.pathname.split("/").slice(1),l=s.pathname.split("/").slice(1,-1);for(;a[0]===l[0];)a.shift(),l.shift();for(;l.length;)l.shift(),a.unshift("..");return a.join("/")}(t,e.baseUrl)),encodeURIComponent(t)),rtp:Ka,tb:Ha};function wd(t,e){let i={};if(t==null||typeof t!="object")return i;let n=Object.keys(t).sort(),r=z({},Ld,e==null?void 0:e.formatters),s=e==null?void 0:e.filter;return n.forEach((a)=>{if(s!=null&&s(a))return;let l=t[a],d=r[a];d&&(l=d(l,e)),a==="v"&&l===1||a=="pr"&&l===1||((u)=>typeof u=="number"?j(u):u!=null&&u!==""&&u!==!1)(l)&&(((u)=>u==="ot"||u==="sf"||u==="st")(a)&&typeof l=="string"&&(l=new Ko(l)),i[a]=l)}),i}function jl(t,e={}){return t?function(i,n){return _d(i,n)}(wd(t,e),z({whitespace:!1},e)):""}function kd(t,e,i){return z(t,function(n,r={}){if(!n)return{};let s=Object.entries(n),a=Object.entries(Ed).concat(Object.entries((r==null?void 0:r.customHeaderMap)||{})),l=s.reduce((d,u)=>{var f;let[E,b]=u,T=((f=a.find((_)=>_[1].includes(E)))==null?void 0:f[0])||Gr.REQUEST;return d[T]!=null||(d[T]={}),d[T][E]=b,d},{});return Object.entries(l).reduce((d,[u,f])=>(d[u]=jl(f,r),d),{})}(e,i))}let ql=/CMCD=[^&#]+/;function Rd(t,e,i){let n=function(s,a={}){if(!s)return"";let l=jl(s,a);return"CMCD="+encodeURIComponent(l)}(e,i);if(!n)return t;if(ql.test(t))return t.replace(ql,n);let r=t.includes("?")?"&":"?";return`${t}${r}${n}`}function Yl(t,e,i,n){t&&Object.keys(e).forEach((r)=>{let s=t.filter((a)=>a.groupId===r).map((a)=>{let l=z({},a);return l.details=void 0,l.attrs=new J(l.attrs),l.url=l.attrs.URI=zl(a.url,a.attrs["STABLE-RENDITION-ID"],"PER-RENDITION-URIS",i),l.groupId=l.attrs["GROUP-ID"]=e[r],l.attrs["PATHWAY-ID"]=n,l});t.push(...s)})}function zl(t,e,i,n){let{HOST:r,PARAMS:s,[i]:a}=n,l;e&&(l=a==null?void 0:a[e],l&&(t=l));let d=new self.URL(t);return r&&!l&&(d.host=r),s&&Object.keys(s).sort().forEach((u)=>{u&&d.searchParams.set(u,s[u])}),d.href}let Dd=/^age:\s*[\d.]+\s*$/im;class qo{constructor(t){this.xhrSetup=void 0,this.requestTimeout=void 0,this.retryTimeout=void 0,this.retryDelay=void 0,this.config=null,this.callbacks=null,this.context=null,this.loader=null,this.stats=void 0,this.xhrSetup=t&&t.xhrSetup||null,this.stats=new at,this.retryDelay=0}destroy(){this.callbacks=null,this.abortInternal(),this.loader=null,this.config=null,this.context=null,this.xhrSetup=null,this.stats=null}abortInternal(){let t=this.loader;self.clearTimeout(this.requestTimeout),self.clearTimeout(this.retryTimeout),t&&(t.onreadystatechange=null,t.onprogress=null,t.readyState!==4&&(this.stats.aborted=!0,t.abort()))}abort(){var t;this.abortInternal(),(t=this.callbacks)!=null&&t.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.loader)}load(t,e,i){if(this.stats.loading.start)throw new Error("Loader can only be used once.");this.stats.loading.start=self.performance.now(),this.context=t,this.config=e,this.callbacks=i,this.loadInternal()}loadInternal(){let{config:t,context:e}=this;if(!t||!e)return;let i=this.loader=new self.XMLHttpRequest,n=this.stats;n.loading.first=0,n.loaded=0,n.aborted=!1;let r=this.xhrSetup;r?Promise.resolve().then(()=>{if(!this.stats.aborted)return r(i,e.url)}).catch((s)=>(i.open("GET",e.url,!0),r(i,e.url))).then(()=>{this.stats.aborted||this.openAndSendXhr(i,e,t)}).catch((s)=>{this.callbacks.onError({code:i.status,text:s.message},e,i,n)}):this.openAndSendXhr(i,e,t)}openAndSendXhr(t,e,i){t.readyState||t.open("GET",e.url,!0);let n=e.headers,{maxTimeToFirstByteMs:r,maxLoadTimeMs:s}=i.loadPolicy;if(n)for(let a in n)t.setRequestHeader(a,n[a]);e.rangeEnd&&t.setRequestHeader("Range","bytes="+e.rangeStart+"-"+(e.rangeEnd-1)),t.onreadystatechange=this.readystatechange.bind(this),t.onprogress=this.loadprogress.bind(this),t.responseType=e.responseType,self.clearTimeout(this.requestTimeout),i.timeout=r&&j(r)?r:s,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),i.timeout),t.send()}readystatechange(){let{context:t,loader:e,stats:i}=this;if(!t||!e)return;let n=e.readyState,r=this.config;if(!i.aborted&&n>=2&&(i.loading.first===0&&(i.loading.first=Math.max(self.performance.now(),i.loading.start),r.timeout!==r.loadPolicy.maxLoadTimeMs&&(self.clearTimeout(this.requestTimeout),r.timeout=r.loadPolicy.maxLoadTimeMs,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),r.loadPolicy.maxLoadTimeMs-(i.loading.first-i.loading.start)))),n===4)){self.clearTimeout(this.requestTimeout),e.onreadystatechange=null,e.onprogress=null;let s=e.status,a=e.responseType!=="text";if(s>=200&&s<300&&(a&&e.response||e.responseText!==null)){i.loading.end=Math.max(self.performance.now(),i.loading.first);let l=a?e.response:e.responseText,d=e.responseType==="arraybuffer"?l.byteLength:l.length;if(i.loaded=i.total=d,i.bwEstimate=8000*i.total/(i.loading.end-i.loading.first),!this.callbacks)return;let u=this.callbacks.onProgress;if(u&&u(i,t,l,e),!this.callbacks)return;let f={url:e.responseURL,data:l,code:s};this.callbacks.onSuccess(f,i,t,e)}else{let l=r.loadPolicy.errorRetry;ar(l,i.retry,!1,{url:t.url,data:void 0,code:s})?this.retry(l):(C.error(`${s} while loading ${t.url}`),this.callbacks.onError({code:s,text:e.statusText},t,e,i))}}}loadtimeout(){var t;let e=(t=this.config)==null?void 0:t.loadPolicy.timeoutRetry;if(ar(e,this.stats.retry,!0))this.retry(e);else{var i;C.warn("timeout while loading "+((i=this.context)==null?void 0:i.url));let n=this.callbacks;n&&(this.abortInternal(),n.onTimeout(this.stats,this.context,this.loader))}}retry(t){let{context:e,stats:i}=this;this.retryDelay=Us(t,i.retry),i.retry++,C.warn(`${status?"HTTP Status "+status:"Timeout"} while loading ${e==null?void 0:e.url}, retrying ${i.retry}/${t.maxNumRetry} in ${this.retryDelay}ms`),this.abortInternal(),this.loader=null,self.clearTimeout(this.retryTimeout),this.retryTimeout=self.setTimeout(this.loadInternal.bind(this),this.retryDelay)}loadprogress(t){let e=this.stats;e.loaded=t.loaded,t.lengthComputable&&(e.total=t.total)}getCacheAge(){let t=null;if(this.loader&&Dd.test(this.loader.getAllResponseHeaders())){let e=this.loader.getResponseHeader("age");t=e?parseFloat(e):null}return t}getResponseHeader(t){return this.loader&&new RegExp(`^${t}:\\s*[\\d.]+\\s*$`,"im").test(this.loader.getAllResponseHeaders())?this.loader.getResponseHeader(t):null}}let Cd=/(\d+)-(\d+)\/(\d+)/;class Yo{constructor(t){this.fetchSetup=void 0,this.requestTimeout=void 0,this.request=null,this.response=null,this.controller=void 0,this.context=null,this.config=null,this.callbacks=null,this.stats=void 0,this.loader=null,this.fetchSetup=t.fetchSetup||Id,this.controller=new self.AbortController,this.stats=new at}destroy(){this.loader=this.callbacks=this.context=this.config=this.request=null,this.abortInternal(),this.response=null,this.fetchSetup=this.controller=this.stats=null}abortInternal(){this.controller&&!this.stats.loading.end&&(this.stats.aborted=!0,this.controller.abort())}abort(){var t;this.abortInternal(),(t=this.callbacks)!=null&&t.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.response)}load(t,e,i){let n=this.stats;if(n.loading.start)throw new Error("Loader can only be used once.");n.loading.start=self.performance.now();let r=function(f,E){let b={method:"GET",mode:"cors",credentials:"same-origin",signal:E,headers:new self.Headers(z({},f.headers))};return f.rangeEnd&&b.headers.set("Range","bytes="+f.rangeStart+"-"+String(f.rangeEnd-1)),b}(t,this.controller.signal),s=i.onProgress,a=t.responseType==="arraybuffer",l=a?"byteLength":"length",{maxTimeToFirstByteMs:d,maxLoadTimeMs:u}=e.loadPolicy;this.context=t,this.config=e,this.callbacks=i,this.request=this.fetchSetup(t,r),self.clearTimeout(this.requestTimeout),e.timeout=d&&j(d)?d:u,this.requestTimeout=self.setTimeout(()=>{this.abortInternal(),i.onTimeout(n,t,this.response)},e.timeout),self.fetch(this.request).then((f)=>{this.response=this.loader=f;let E=Math.max(self.performance.now(),n.loading.start);if(self.clearTimeout(this.requestTimeout),e.timeout=u,this.requestTimeout=self.setTimeout(()=>{this.abortInternal(),i.onTimeout(n,t,this.response)},u-(E-n.loading.start)),!f.ok){let{status:b,statusText:T}=f;throw new Xl(T||"fetch, bad network response",b,f)}return n.loading.first=E,n.total=function(b){let T=b.get("Content-Range");if(T){let D=function(w){let x=Cd.exec(w);if(x)return parseInt(x[2])-parseInt(x[1])+1}(T);if(j(D))return D}let _=b.get("Content-Length");if(_)return parseInt(_)}(f.headers)||n.total,s&&j(e.highWaterMark)?this.loadProgressively(f,n,t,e.highWaterMark,s):a?f.arrayBuffer():t.responseType==="json"?f.json():f.text()}).then((f)=>{let E=this.response;if(!E)throw new Error("loader destroyed");self.clearTimeout(this.requestTimeout),n.loading.end=Math.max(self.performance.now(),n.loading.first);let b=f[l];b&&(n.loaded=n.total=b);let T={url:E.url,data:f,code:E.status};s&&!j(e.highWaterMark)&&s(n,t,f,E),i.onSuccess(T,n,t,E)}).catch((f)=>{if(self.clearTimeout(this.requestTimeout),n.aborted)return;let E=f&&f.code||0,b=f?f.message:null;i.onError({code:E,text:b},t,f?f.details:null,n)})}getCacheAge(){let t=null;if(this.response){let e=this.response.headers.get("age");t=e?parseFloat(e):null}return t}getResponseHeader(t){return this.response?this.response.headers.get(t):null}loadProgressively(t,e,i,n=0,r){let s=new os,a=t.body.getReader(),l=()=>a.read().then((d)=>{if(d.done)return s.dataLength&&r(e,i,s.flush(),t),Promise.resolve(new ArrayBuffer(0));let u=d.value,f=u.length;return e.loaded+=f,f<n||s.dataLength?(s.push(u),s.dataLength>=n&&r(e,i,s.flush(),t)):r(e,i,u,t),l()}).catch(()=>Promise.reject());return l()}}function Id(t,e){return new self.Request(t.url,e)}class Xl extends Error{constructor(t,e,i){super(t),this.code=void 0,this.details=void 0,this.code=e,this.details=i}}let Od=/\s/,xd={newCue(t,e,i,n){let r=[],s,a,l,d,u,f=self.VTTCue||self.TextTrackCue;for(let b=0;b<n.rows.length;b++)if(s=n.rows[b],l=!0,d=0,u="",!s.isEmpty()){var E;for(let D=0;D<s.chars.length;D++)Od.test(s.chars[D].uchar)&&l?d++:(u+=s.chars[D].uchar,l=!1);s.cueStartTime=e,e===i&&(i+=0.0001),d>=16?d--:d++;let T=Nl(u.trim()),_=Fo(e,i,T);t!=null&&(E=t.cues)!=null&&E.getCueById(_)||(a=new f(e,i,T),a.id=_,a.line=b+1,a.align="left",a.position=10+Math.min(80,10*Math.floor(8*d/32)),r.push(a))}return t&&r.length&&(r.sort((b,T)=>b.line==="auto"||T.line==="auto"?0:b.line>8&&T.line>8?T.line-b.line:b.line-T.line),r.forEach((b)=>Dr(t,b))),r}},Jl=L(L({autoStartLoad:!0,startPosition:-1,defaultAudioCodec:void 0,debug:!1,capLevelOnFPSDrop:!1,capLevelToPlayerSize:!1,ignoreDevicePixelRatio:!1,preferManagedMediaSource:!0,initialLiveManifestSize:1,maxBufferLength:30,backBufferLength:1/0,frontBufferFlushThreshold:1/0,maxBufferSize:60000000,maxBufferHole:0.1,highBufferWatchdogPeriod:2,nudgeOffset:0.1,nudgeMaxRetry:3,maxFragLookUpTolerance:0.25,liveSyncDurationCount:3,liveMaxLatencyDurationCount:1/0,liveSyncDuration:void 0,liveMaxLatencyDuration:void 0,maxLiveSyncPlaybackRate:1,liveDurationInfinity:!1,liveBackBufferLength:null,maxMaxBufferLength:600,enableWorker:!0,workerPath:null,enableSoftwareAES:!0,startLevel:void 0,startFragPrefetch:!1,fpsDroppedMonitoringPeriod:5000,fpsDroppedMonitoringThreshold:0.2,appendErrorMaxRetry:3,loader:qo,fLoader:void 0,pLoader:void 0,xhrSetup:void 0,licenseXhrSetup:void 0,licenseResponseCallback:void 0,abrController:class t{constructor(e){this.hls=void 0,this.lastLevelLoadSec=0,this.lastLoadedFragLevel=-1,this.firstSelection=-1,this._nextAutoLevel=-1,this.nextAutoLevelKey="",this.audioTracksByGroup=null,this.codecTiers=null,this.timer=-1,this.fragCurrent=null,this.partCurrent=null,this.bitrateTestDelay=0,this.bwEstimator=void 0,this._abandonRulesCheck=()=>{let{fragCurrent:i,partCurrent:n,hls:r}=this,{autoLevelEnabled:s,media:a}=r;if(!i||!a)return;let l=performance.now(),d=n?n.stats:i.stats,u=n?n.duration:i.duration,f=l-d.loading.start,E=r.minAutoLevel;if(d.aborted||d.loaded&&d.loaded===d.total||i.level<=E)return this.clearTimer(),void(this._nextAutoLevel=-1);if(!s||a.paused||!a.playbackRate||!a.readyState)return;let b=r.mainForwardBufferInfo;if(b===null)return;let T=this.bwEstimator.getEstimateTTFB(),_=Math.abs(a.playbackRate);if(f<=Math.max(T,u/(2*_)*1000))return;let D=b.len/_,w=d.loading.first?d.loading.first-d.loading.start:-1,x=d.loaded&&w>-1,M=this.getBwEstimate(),V=r.levels,X=V[i.level],ot=d.total||Math.max(d.loaded,Math.round(u*X.averageBitrate/8)),et=x?f-w:f;et<1&&x&&(et=Math.min(f,8*d.loaded/M));let vt=x?1000*d.loaded/et:0,St=vt?(ot-d.loaded)/vt:8*ot/M+T/1000;if(St<=D)return;let nt=vt?8*vt:M,it,jt=Number.POSITIVE_INFINITY;for(it=i.level-1;it>E;it--){let Kt=V[it].maxBitrate;if(jt=this.getTimeToLoadFrag(T/1000,nt,u*Kt,!V[it].details),jt<D)break}if(jt>=St)return;if(jt>10*u)return;r.nextLoadLevel=r.nextAutoLevel=it,x?this.bwEstimator.sample(f-Math.min(T,w),d.loaded):this.bwEstimator.sampleTTFB(f);let At=V[it].maxBitrate;this.getBwEstimate()*this.hls.config.abrBandWidthUpFactor>At&&this.resetEstimator(At),this.clearTimer(),C.warn(`[abr] Fragment ${i.sn}${n?" part "+n.index:""} of level ${i.level} is loading too slowly;
|
|
23
|
+
`),d=[],m=e?function(k,N=1){return p(k,90000,1/N)}(e.baseTime,e.timescale):0,y,S="00:00.000",T=0,w=0,D=!0;c.oncue=function(k){let N=i[r],x=i.ccOffset,G=(T-m)/90000;if(N!=null&&N.new&&(w!==void 0?x=i.ccOffset=N.start:function(ut,ft,Z){let Q=ut[ft],Dt=ut[Q.prevCC];if(!Dt||!Dt.new&&Q.new)return ut.ccOffset=ut.presentationOffset=Q.start,void(Q.new=!1);for(;(mt=Dt)!=null&&mt.new;){var mt;ut.ccOffset+=Q.start-Dt.start,Q.new=!1,Q=Dt,Dt=ut[Q.prevCC]}ut.presentationOffset=Z}(i,r,G)),G){if(!e)return void(y=new Error("Missing initPTS for VTT MPEGTS"));x=G-i.presentationOffset}let Y=k.endTime-k.startTime,rt=z(90000*(k.startTime+x-w),90000*s)/90000;k.startTime=Math.max(rt,0),k.endTime=Math.max(rt+Y,0);let J=k.text.trim();k.text=decodeURIComponent(encodeURIComponent(J)),k.id||(k.id=Wl(k.startTime,k.endTime,J)),k.endTime>0&&d.push(k)},c.onparsingerror=function(k){y=k},c.onflush=function(){y?l(y):a(d)},u.forEach((k)=>{if(D){if(Vl(k,"X-TIMESTAMP-MAP=")){D=!1,k.slice(16).split(",").forEach((N)=>{Vl(N,"LOCAL:")?S=N.slice(6):Vl(N,"MPEGTS:")&&(T=parseInt(N.slice(7)))});try{w=function(N){let x=parseInt(N.slice(-3)),G=parseInt(N.slice(-6,-4)),Y=parseInt(N.slice(-9,-7)),rt=N.length>9?parseInt(N.substring(0,N.indexOf(":"))):0;if(!(L(x)&&L(G)&&L(Y)&&L(rt)))throw Error("Malformed X-TIMESTAMP-MAP: Local:"+N);return x+=1000*G,x+=60000*Y,x+=3600000*rt,x}(S)/1000}catch(N){y=N}return}k===""&&(D=!1)}c.parse(k+`
|
|
24
|
+
`)}),c.flush()}let bu=/^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/,Tu=/^(\d*(?:\.\d*)?)(h|m|s|ms|f|t)$/,vf={left:"start",center:"center",right:"end",start:"start",end:"end"};function Au(t,e,i,r){let s=Wt(new Uint8Array(t),["mdat"]);if(s.length===0)return void r(new Error("Could not parse IMSC1 mdat"));let a=s.map((c)=>Fe(c)),l=function(c,u,d=1,m=!1){return p(c,u,1/d,m)}(e.baseTime,1,e.timescale);try{a.forEach((c)=>i(function(u,d){let m=new DOMParser,y=m.parseFromString(u,"text/xml").getElementsByTagName("tt")[0];if(!y)throw new Error("Invalid ttml");let S={frameRate:30,subFrameRate:1,frameRateMultiplier:0,tickRate:0},T=Object.keys(S).reduce((x,G)=>(x[G]=y.getAttribute("ttp:"+G)||S[G],x),{}),w=y.getAttribute("xml:space")!=="preserve",D=_u(Yl(y,"styling","style")),k=_u(Yl(y,"layout","region")),N=Yl(y,"body","[begin]");return[].map.call(N,(x)=>{let G=function Q(Dt,mt){return[].slice.call(Dt.childNodes).reduce((Rt,Ot,Mt)=>{var ot;return Ot.nodeName==="br"&&Mt?Rt+`
|
|
25
|
+
`:(ot=Ot.childNodes)!=null&&ot.length?Q(Ot,mt):mt?Rt+Ot.textContent.trim().replace(/\s+/g," "):Rt+Ot.textContent},"")}(x,w);if(!G||!x.hasAttribute("begin"))return null;let Y=zl(x.getAttribute("begin"),T),rt=zl(x.getAttribute("dur"),T),J=zl(x.getAttribute("end"),T);if(Y===null)throw Lu(x);if(J===null){if(rt===null)throw Lu(x);J=Y+rt}let ut=new Gl(Y-d,J-d,G);ut.id=Wl(ut.startTime,ut.endTime,ut.text);let ft=function(Q,Dt,mt){let Ot=null,Mt=Q!=null&&Q.hasAttribute("style")?Q.getAttribute("style"):null;return Mt&&mt.hasOwnProperty(Mt)&&(Ot=mt[Mt]),["displayAlign","textAlign","color","backgroundColor","fontSize","fontFamily"].reduce((ot,vt)=>{let Ct=jl(Dt,"http://www.w3.org/ns/ttml#styling",vt)||jl(Q,"http://www.w3.org/ns/ttml#styling",vt)||jl(Ot,"http://www.w3.org/ns/ttml#styling",vt);return Ct&&(ot[vt]=Ct),ot},{})}(k[x.getAttribute("region")],D[x.getAttribute("style")],D),{textAlign:Z}=ft;if(Z){let Q=vf[Z];Q&&(ut.lineAlign=Q),ut.align=Z}return A(ut,ft),ut}).filter((x)=>x!==null)}(c,l)))}catch(c){r(c)}}function Yl(t,e,i){let r=t.getElementsByTagName(e)[0];return r?[].slice.call(r.querySelectorAll(i)):[]}function _u(t){return t.reduce((e,i)=>{let r=i.getAttribute("xml:id");return r&&(e[r]=i),e},{})}function jl(t,e,i){return t&&t.hasAttributeNS(e,i)?t.getAttributeNS(e,i):null}function Lu(t){return new Error("Could not parse ttml timestamp "+t)}function zl(t,e){if(!t)return null;let i=pu(t);return i===null&&(bu.test(t)?i=function(r,s){let a=bu.exec(r),l=(0|a[4])+(0|a[5])/s.subFrameRate;return 3600*(0|a[1])+60*(0|a[2])+(0|a[3])+l/s.frameRate}(t,e):Tu.test(t)&&(i=function(r,s){let a=Tu.exec(r),l=Number(a[1]);switch(a[2]){case"h":return 3600*l;case"m":return 60*l;case"ms":return 1000*l;case"f":return l/s.frameRate;case"t":return l/s.tickRate}return l}(t,e))),i}function wu(t){return t.characteristics&&/transcribes-spoken-dialog/gi.test(t.characteristics)&&/describes-music-and-sound/gi.test(t.characteristics)?"captions":"subtitles"}function Ru(t,e){return!!t&&t.kind===wu(e)&&Fl(e,t)}class ql{constructor(t){this.hls=void 0,this.autoLevelCapping=void 0,this.firstLevel=void 0,this.media=void 0,this.restrictedLevels=void 0,this.timer=void 0,this.clientRect=void 0,this.streamController=void 0,this.hls=t,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.firstLevel=-1,this.media=null,this.restrictedLevels=[],this.timer=void 0,this.clientRect=null,this.registerListeners()}setStreamController(t){this.streamController=t}destroy(){this.hls&&this.unregisterListener(),this.timer&&this.stopCapping(),this.media=null,this.clientRect=null,this.hls=this.streamController=null}registerListeners(){let{hls:t}=this;t.on(b.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),t.on(b.MEDIA_ATTACHING,this.onMediaAttaching,this),t.on(b.MANIFEST_PARSED,this.onManifestParsed,this),t.on(b.LEVELS_UPDATED,this.onLevelsUpdated,this),t.on(b.BUFFER_CODECS,this.onBufferCodecs,this),t.on(b.MEDIA_DETACHING,this.onMediaDetaching,this)}unregisterListener(){let{hls:t}=this;t.off(b.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),t.off(b.MEDIA_ATTACHING,this.onMediaAttaching,this),t.off(b.MANIFEST_PARSED,this.onManifestParsed,this),t.off(b.LEVELS_UPDATED,this.onLevelsUpdated,this),t.off(b.BUFFER_CODECS,this.onBufferCodecs,this),t.off(b.MEDIA_DETACHING,this.onMediaDetaching,this)}onFpsDropLevelCapping(t,e){let i=this.hls.levels[e.droppedLevel];this.isLevelAllowed(i)&&this.restrictedLevels.push({bitrate:i.bitrate,height:i.height,width:i.width})}onMediaAttaching(t,e){this.media=e.media instanceof HTMLVideoElement?e.media:null,this.clientRect=null,this.timer&&this.hls.levels.length&&this.detectPlayerSize()}onManifestParsed(t,e){let i=this.hls;this.restrictedLevels=[],this.firstLevel=e.firstLevel,i.config.capLevelToPlayerSize&&e.video&&this.startCapping()}onLevelsUpdated(t,e){this.timer&&L(this.autoLevelCapping)&&this.detectPlayerSize()}onBufferCodecs(t,e){this.hls.config.capLevelToPlayerSize&&e.video&&this.startCapping()}onMediaDetaching(){this.stopCapping()}detectPlayerSize(){if(this.media){if(this.mediaHeight<=0||this.mediaWidth<=0)return void(this.clientRect=null);let t=this.hls.levels;if(t.length){let e=this.hls,i=this.getMaxLevel(t.length-1);i!==this.autoLevelCapping&&I.log(`Setting autoLevelCapping to ${i}: ${t[i].height}p@${t[i].bitrate} for media ${this.mediaWidth}x${this.mediaHeight}`),e.autoLevelCapping=i,e.autoLevelCapping>this.autoLevelCapping&&this.streamController&&this.streamController.nextLevelSwitch(),this.autoLevelCapping=e.autoLevelCapping}}}getMaxLevel(t){let e=this.hls.levels;if(!e.length)return-1;let i=e.filter((r,s)=>this.isLevelAllowed(r)&&s<=t);return this.clientRect=null,ql.getMaxLevelByMediaSize(i,this.mediaWidth,this.mediaHeight)}startCapping(){this.timer||(this.autoLevelCapping=Number.POSITIVE_INFINITY,self.clearInterval(this.timer),this.timer=self.setInterval(this.detectPlayerSize.bind(this),1000),this.detectPlayerSize())}stopCapping(){this.restrictedLevels=[],this.firstLevel=-1,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.timer&&(self.clearInterval(this.timer),this.timer=void 0)}getDimensions(){if(this.clientRect)return this.clientRect;let t=this.media,e={width:0,height:0};if(t){let i=t.getBoundingClientRect();e.width=i.width,e.height=i.height,e.width||e.height||(e.width=i.right-i.left||t.width||0,e.height=i.bottom-i.top||t.height||0)}return this.clientRect=e,e}get mediaWidth(){return this.getDimensions().width*this.contentScaleFactor}get mediaHeight(){return this.getDimensions().height*this.contentScaleFactor}get contentScaleFactor(){let t=1;if(!this.hls.config.ignoreDevicePixelRatio)try{t=self.devicePixelRatio}catch(e){}return t}isLevelAllowed(t){return!this.restrictedLevels.some((e)=>t.bitrate===e.bitrate&&t.width===e.width&&t.height===e.height)}static getMaxLevelByMediaSize(t,e,i){if(t==null||!t.length)return-1;let r=t.length-1,s=Math.max(e,i);for(let c=0;c<t.length;c+=1){let u=t[c];if((u.width>=s||u.height>=s)&&(a=u,!(l=t[c+1])||a.width!==l.width||a.height!==l.height)){r=c;break}}var a,l;return r}}class ns{constructor(t){this.hls=void 0,this.config=void 0,this.media=null,this.keyFormatPromise=null,this.keySystemAccessPromises={},this._requestLicenseFailureCount=0,this.mediaKeySessions=[],this.keyIdToKeySessionPromise={},this.setMediaKeysQueue=ns.CDMCleanupPromise?[ns.CDMCleanupPromise]:[],this.onMediaEncrypted=this._onMediaEncrypted.bind(this),this.onWaitingForKey=this._onWaitingForKey.bind(this),this.debug=I.debug.bind(I,"[eme]"),this.log=I.log.bind(I,"[eme]"),this.warn=I.warn.bind(I,"[eme]"),this.error=I.error.bind(I,"[eme]"),this.hls=t,this.config=t.config,this.registerListeners()}destroy(){this.unregisterListeners(),this.onMediaDetached();let t=this.config;t.requestMediaKeySystemAccessFunc=null,t.licenseXhrSetup=t.licenseResponseCallback=void 0,t.drmSystems=t.drmSystemOptions={},this.hls=this.onMediaEncrypted=this.onWaitingForKey=this.keyIdToKeySessionPromise=null,this.config=null}registerListeners(){this.hls.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(b.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.on(b.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.on(b.MANIFEST_LOADED,this.onManifestLoaded,this)}unregisterListeners(){this.hls.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.off(b.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.off(b.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.off(b.MANIFEST_LOADED,this.onManifestLoaded,this)}getLicenseServerUrl(t){let{drmSystems:e,widevineLicenseUrl:i}=this.config,r=e[t];if(r)return r.licenseUrl;if(t===jt.WIDEVINE&&i)return i;throw new Error(`no license server URL configured for key-system "${t}"`)}getServerCertificateUrl(t){let{drmSystems:e}=this.config,i=e[t];if(i)return i.serverCertificateUrl;this.log(`No Server Certificate in config.drmSystems["${t}"]`)}attemptKeySystemAccess(t){let e=this.hls.levels,i=(a,l,c)=>!!a&&c.indexOf(a)===l,r=e.map((a)=>a.audioCodec).filter(i),s=e.map((a)=>a.videoCodec).filter(i);return r.length+s.length===0&&s.push("avc1.42e01e"),new Promise((a,l)=>{let c=(u)=>{let d=u.shift();this.getMediaKeysPromise(d,r,s).then((m)=>a({keySystem:d,mediaKeys:m})).catch((m)=>{u.length?c(u):l(m instanceof Ei?m:new Ei({type:H.KEY_SYSTEM_ERROR,details:P.KEY_SYSTEM_NO_ACCESS,error:m,fatal:!0},m.message))})};c(t)})}requestMediaKeySystemAccess(t,e){let{requestMediaKeySystemAccessFunc:i}=this.config;if(typeof i!="function"){let r="Configured requestMediaKeySystemAccess is not a function "+i;return xe===null&&self.location.protocol==="http:"&&(r="navigator.requestMediaKeySystemAccess is not available over insecure protocol "+location.protocol),Promise.reject(new Error(r))}return i(t,e)}getMediaKeysPromise(t,e,i){let r=function(l,c,u,d){let m;switch(l){case jt.FAIRPLAY:m=["cenc","sinf"];break;case jt.WIDEVINE:case jt.PLAYREADY:m=["cenc"];break;case jt.CLEARKEY:m=["cenc","keyids"];break;default:throw new Error("Unknown key-system: "+l)}return function(y,S,T,w){return[{initDataTypes:y,persistentState:w.persistentState||"optional",distinctiveIdentifier:w.distinctiveIdentifier||"optional",sessionTypes:w.sessionTypes||[w.sessionType||"temporary"],audioCapabilities:S.map((D)=>({contentType:`audio/mp4; codecs="${D}"`,robustness:w.audioRobustness||"",encryptionScheme:w.audioEncryptionScheme||null})),videoCapabilities:T.map((D)=>({contentType:`video/mp4; codecs="${D}"`,robustness:w.videoRobustness||"",encryptionScheme:w.videoEncryptionScheme||null}))}]}(m,c,u,d)}(t,e,i,this.config.drmSystemOptions),s=this.keySystemAccessPromises[t],a=s==null?void 0:s.keySystemAccess;if(!a){this.log(`Requesting encrypted media "${t}" key-system access with config: ${JSON.stringify(r)}`),a=this.requestMediaKeySystemAccess(t,r);let l=this.keySystemAccessPromises[t]={keySystemAccess:a};return a.catch((c)=>{this.log(`Failed to obtain access to key-system "${t}": ${c}`)}),a.then((c)=>{this.log(`Access for key-system "${c.keySystem}" obtained`);let u=this.fetchServerCertificate(t);return this.log(`Create media-keys for "${t}"`),l.mediaKeys=c.createMediaKeys().then((d)=>(this.log(`Media-keys created for "${t}"`),u.then((m)=>m?this.setMediaKeysServerCertificate(d,t,m):d))),l.mediaKeys.catch((d)=>{this.error(`Failed to create media-keys for "${t}"}: ${d}`)}),l.mediaKeys})}return a.then(()=>s.mediaKeys)}createMediaKeySessionContext({decryptdata:t,keySystem:e,mediaKeys:i}){this.log(`Creating key-system session "${e}" keyId: ${ni(t.keyId||[])}`);let r=i.createSession(),s={decryptdata:t,keySystem:e,mediaKeys:i,mediaKeysSession:r,keyStatus:"status-pending"};return this.mediaKeySessions.push(s),s}renewKeySession(t){let e=t.decryptdata;if(e.pssh){let i=this.createMediaKeySessionContext(t),r=this.getKeyIdString(e);this.keyIdToKeySessionPromise[r]=this.generateRequestWithPreferredKeySession(i,"cenc",e.pssh,"expired")}else this.warn("Could not renew expired session. Missing pssh initData.");this.removeSession(t)}getKeyIdString(t){if(!t)throw new Error("Could not read keyId of undefined decryptdata");if(t.keyId===null)throw new Error("keyId is null");return ni(t.keyId)}updateKeySession(t,e){var i;let r=t.mediaKeysSession;return this.log(`Updating key-session "${r.sessionId}" for keyID ${ni(((i=t.decryptdata)==null?void 0:i.keyId)||[])}
|
|
26
|
+
} (data length: ${e?e.byteLength:e})`),r.update(e)}selectKeySystemFormat(t){let e=Object.keys(t.levelkeys||{});return this.keyFormatPromise||(this.log(`Selecting key-system from fragment (sn: ${t.sn} ${t.type}: ${t.level}) key formats ${e.join(", ")}`),this.keyFormatPromise=this.getKeyFormatPromise(e)),this.keyFormatPromise}getKeyFormatPromise(t){return new Promise((e,i)=>{let r=Je(this.config),s=t.map(Lt).filter((a)=>!!a&&r.indexOf(a)!==-1);return this.getKeySystemSelectionPromise(s).then(({keySystem:a})=>{let l=ue(a);l?e(l):i(new Error(`Unable to find format for key-system "${a}"`))}).catch(i)})}loadKey(t){let e=t.keyInfo.decryptdata,i=this.getKeyIdString(e),r=`(keyId: ${i} format: "${e.keyFormat}" method: ${e.method} uri: ${e.uri})`;this.log("Starting session for key "+r);let s=this.keyIdToKeySessionPromise[i];return s||(s=this.keyIdToKeySessionPromise[i]=this.getKeySystemForKeyPromise(e).then(({keySystem:a,mediaKeys:l})=>(this.throwIfDestroyed(),this.log(`Handle encrypted media sn: ${t.frag.sn} ${t.frag.type}: ${t.frag.level} using key ${r}`),this.attemptSetMediaKeys(a,l).then(()=>{this.throwIfDestroyed();let c=this.createMediaKeySessionContext({keySystem:a,mediaKeys:l,decryptdata:e});return this.generateRequestWithPreferredKeySession(c,"cenc",e.pssh,"playlist-key")}))),s.catch((a)=>this.handleError(a))),s}throwIfDestroyed(t="Invalid state"){if(!this.hls)throw new Error("invalid state")}handleError(t){this.hls&&(this.error(t.message),t instanceof Ei?this.hls.trigger(b.ERROR,t.data):this.hls.trigger(b.ERROR,{type:H.KEY_SYSTEM_ERROR,details:P.KEY_SYSTEM_NO_KEYS,error:t,fatal:!0}))}getKeySystemForKeyPromise(t){let e=this.getKeyIdString(t),i=this.keyIdToKeySessionPromise[e];if(!i){let r=Lt(t.keyFormat),s=r?[r]:Je(this.config);return this.attemptKeySystemAccess(s)}return i}getKeySystemSelectionPromise(t){if(t.length||(t=Je(this.config)),t.length===0)throw new Ei({type:H.KEY_SYSTEM_ERROR,details:P.KEY_SYSTEM_NO_CONFIGURED_LICENSE,fatal:!0},"Missing key-system license configuration options "+JSON.stringify({drmSystems:this.config.drmSystems}));return this.attemptKeySystemAccess(t)}_onMediaEncrypted(t){let{initDataType:e,initData:i}=t;if(this.debug(`"${t.type}" event: init data type: "${e}"`),i===null)return;let r,s;if(e==="sinf"&&this.config.drmSystems[jt.FAIRPLAY]){let d=ye(new Uint8Array(i));try{let m=bt(JSON.parse(d).sinf),y=Fs(new Uint8Array(m));if(!y)return;r=y.subarray(8,24),s=jt.FAIRPLAY}catch(m){return void this.warn('Failed to parse sinf "encrypted" event message initData')}}else{let d=function(m){if(!(m instanceof ArrayBuffer)||m.byteLength<32)return null;let y={version:0,systemId:"",kids:null,data:null},S=new DataView(m),T=S.getUint32(0);if(m.byteLength!==T&&T>44)return null;if(S.getUint32(4)!==1886614376)return null;if(y.version=S.getUint32(8)>>>24,y.version>1)return null;y.systemId=ni(new Uint8Array(m,12,16));let w=S.getUint32(28);if(y.version===0){if(T-32<w)return null;y.data=new Uint8Array(m,32,w)}else if(y.version===1){y.kids=[];for(let D=0;D<w;D++)y.kids.push(new Uint8Array(m,32+16*D,16))}return y}(i);if(d===null)return;d.version===0&&d.systemId===ve&&d.data&&(r=d.data.subarray(8,24)),s=function(m){if(m===ve)return jt.WIDEVINE}(d.systemId)}if(!s||!r)return;let a=ni(r),{keyIdToKeySessionPromise:l,mediaKeySessions:c}=this,u=l[a];for(let d=0;d<c.length;d++){let m=c[d],y=m.decryptdata;if(y.pssh||!y.keyId)continue;let S=ni(y.keyId);if(a===S||y.uri.replace(/-/g,"").indexOf(a)!==-1){u=l[S],delete l[S],y.pssh=new Uint8Array(i),y.keyId=r,u=l[a]=u.then(()=>this.generateRequestWithPreferredKeySession(m,e,i,"encrypted-event-key-match"));break}}u||(u=l[a]=this.getKeySystemSelectionPromise([s]).then(({keySystem:d,mediaKeys:m})=>{var y;this.throwIfDestroyed();let S=new fi("ISO-23001-7",a,(y=ue(d))!=null?y:"");return S.pssh=new Uint8Array(i),S.keyId=r,this.attemptSetMediaKeys(d,m).then(()=>{this.throwIfDestroyed();let T=this.createMediaKeySessionContext({decryptdata:S,keySystem:d,mediaKeys:m});return this.generateRequestWithPreferredKeySession(T,e,i,"encrypted-event-no-match")})})),u.catch((d)=>this.handleError(d))}_onWaitingForKey(t){this.log(`"${t.type}" event`)}attemptSetMediaKeys(t,e){let i=this.setMediaKeysQueue.slice();this.log(`Setting media-keys for "${t}"`);let r=Promise.all(i).then(()=>{if(!this.media)throw new Error("Attempted to set mediaKeys without media element attached");return this.media.setMediaKeys(e)});return this.setMediaKeysQueue.push(r),r.then(()=>{this.log(`Media-keys set for "${t}"`),i.push(r),this.setMediaKeysQueue=this.setMediaKeysQueue.filter((s)=>i.indexOf(s)===-1)})}generateRequestWithPreferredKeySession(t,e,i,r){var s,a;let l=(s=this.config.drmSystems)==null||(a=s[t.keySystem])==null?void 0:a.generateRequest;if(l)try{let T=l.call(this.hls,e,i,t);if(!T)throw new Error("Invalid response from configured generateRequest filter");e=T.initDataType,i=t.decryptdata.pssh=T.initData?new Uint8Array(T.initData):null}catch(T){var c;if(this.warn(T.message),(c=this.hls)!=null&&c.config.debug)throw T}if(i===null)return this.log(`Skipping key-session request for "${r}" (no initData)`),Promise.resolve(t);let u=this.getKeyIdString(t.decryptdata);this.log(`Generating key-session request for "${r}": ${u} (init data type: ${e} length: ${i?i.byteLength:null})`);let d=new Pl,m=t._onmessage=(T)=>{let w=t.mediaKeysSession;if(!w)return void d.emit("error",new Error("invalid state"));let{messageType:D,message:k}=T;this.log(`"${D}" message event for session "${w.sessionId}" message size: ${k.byteLength}`),D==="license-request"||D==="license-renewal"?this.renewLicense(t,k).catch((N)=>{this.handleError(N),d.emit("error",N)}):D==="license-release"?t.keySystem===jt.FAIRPLAY&&(this.updateKeySession(t,Kt("acknowledged")),this.removeSession(t)):this.warn(`unhandled media key message type "${D}"`)},y=t._onkeystatuseschange=(T)=>{if(!t.mediaKeysSession)return void d.emit("error",new Error("invalid state"));this.onKeyStatusChange(t);let w=t.keyStatus;d.emit("keyStatus",w),w==="expired"&&(this.warn(`${t.keySystem} expired for key ${u}`),this.renewKeySession(t))};t.mediaKeysSession.addEventListener("message",m),t.mediaKeysSession.addEventListener("keystatuseschange",y);let S=new Promise((T,w)=>{d.on("error",w),d.on("keyStatus",(D)=>{D.startsWith("usable")?T():D==="output-restricted"?w(new Ei({type:H.KEY_SYSTEM_ERROR,details:P.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED,fatal:!1},"HDCP level output restricted")):D==="internal-error"?w(new Ei({type:H.KEY_SYSTEM_ERROR,details:P.KEY_SYSTEM_STATUS_INTERNAL_ERROR,fatal:!0},`key status changed to "${D}"`)):D==="expired"?w(new Error("key expired while generating request")):this.warn(`unhandled key status change "${D}"`)})});return t.mediaKeysSession.generateRequest(e,i).then(()=>{var T;this.log(`Request generated for key-session "${(T=t.mediaKeysSession)==null?void 0:T.sessionId}" keyId: ${u}`)}).catch((T)=>{throw new Ei({type:H.KEY_SYSTEM_ERROR,details:P.KEY_SYSTEM_NO_SESSION,error:T,fatal:!1},"Error generating key-session request: "+T)}).then(()=>S).catch((T)=>{throw d.removeAllListeners(),this.removeSession(t),T}).then(()=>(d.removeAllListeners(),t))}onKeyStatusChange(t){t.mediaKeysSession.keyStatuses.forEach((e,i)=>{this.log(`key status change "${e}" for keyStatuses keyId: ${ni("buffer"in i?new Uint8Array(i.buffer,i.byteOffset,i.byteLength):new Uint8Array(i))} session keyId: ${ni(new Uint8Array(t.decryptdata.keyId||[]))} uri: ${t.decryptdata.uri}`),t.keyStatus=e})}fetchServerCertificate(t){let e=this.config,i=new e.loader(e),r=this.getServerCertificateUrl(t);return r?(this.log(`Fetching server certificate for "${t}"`),new Promise((s,a)=>{let l={responseType:"arraybuffer",url:r},c=e.certLoadPolicy.default,u={loadPolicy:c,timeout:c.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},d={onSuccess:(m,y,S,T)=>{s(m.data)},onError:(m,y,S,T)=>{a(new Ei({type:H.KEY_SYSTEM_ERROR,details:P.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:S,response:E({url:l.url,data:void 0},m)},`"${t}" certificate request failed (${r}). Status: ${m.code} (${m.text})`))},onTimeout:(m,y,S)=>{a(new Ei({type:H.KEY_SYSTEM_ERROR,details:P.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:S,response:{url:l.url,data:void 0}},`"${t}" certificate request timed out (${r})`))},onAbort:(m,y,S)=>{a(new Error("aborted"))}};i.load(l,u,d)})):Promise.resolve()}setMediaKeysServerCertificate(t,e,i){return new Promise((r,s)=>{t.setServerCertificate(i).then((a)=>{this.log(`setServerCertificate ${a?"success":"not supported by CDM"} (${i==null?void 0:i.byteLength}) on "${e}"`),r(t)}).catch((a)=>{s(new Ei({type:H.KEY_SYSTEM_ERROR,details:P.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED,error:a,fatal:!0},a.message))})})}renewLicense(t,e){return this.requestLicense(t,new Uint8Array(e)).then((i)=>this.updateKeySession(t,new Uint8Array(i)).catch((r)=>{throw new Ei({type:H.KEY_SYSTEM_ERROR,details:P.KEY_SYSTEM_SESSION_UPDATE_FAILED,error:r,fatal:!0},r.message)}))}unpackPlayReadyKeyMessage(t,e){let i=String.fromCharCode.apply(null,new Uint16Array(e.buffer));if(!i.includes("PlayReadyKeyMessage"))return t.setRequestHeader("Content-Type","text/xml; charset=utf-8"),e;let r=new DOMParser().parseFromString(i,"application/xml"),s=r.querySelectorAll("HttpHeader");if(s.length>0){let d;for(let m=0,y=s.length;m<y;m++){var a,l;d=s[m];let S=(a=d.querySelector("name"))==null?void 0:a.textContent,T=(l=d.querySelector("value"))==null?void 0:l.textContent;S&&T&&t.setRequestHeader(S,T)}}let c=r.querySelector("Challenge"),u=c==null?void 0:c.textContent;if(!u)throw new Error("Cannot find <Challenge> in key message");return Kt(atob(u))}setupLicenseXHR(t,e,i,r){let s=this.config.licenseXhrSetup;return s?Promise.resolve().then(()=>{if(!i.decryptdata)throw new Error("Key removed");return s.call(this.hls,t,e,i,r)}).catch((a)=>{if(!i.decryptdata)throw a;return t.open("POST",e,!0),s.call(this.hls,t,e,i,r)}).then((a)=>{return t.readyState||t.open("POST",e,!0),{xhr:t,licenseChallenge:a||r}}):(t.open("POST",e,!0),Promise.resolve({xhr:t,licenseChallenge:r}))}requestLicense(t,e){let i=this.config.keyLoadPolicy.default;return new Promise((r,s)=>{let a=this.getLicenseServerUrl(t.keySystem);this.log("Sending license request to URL: "+a);let l=new XMLHttpRequest;l.responseType="arraybuffer",l.onreadystatechange=()=>{if(!this.hls||!t.mediaKeysSession)return s(new Error("invalid state"));if(l.readyState===4)if(l.status===200){this._requestLicenseFailureCount=0;let c=l.response;this.log("License received "+(c instanceof ArrayBuffer?c.byteLength:c));let u=this.config.licenseResponseCallback;if(u)try{c=u.call(this.hls,l,a,t)}catch(d){this.error(d)}r(c)}else{let c=i.errorRetry,u=c?c.maxNumRetry:0;if(this._requestLicenseFailureCount++,this._requestLicenseFailureCount>u||l.status>=400&&l.status<500)s(new Ei({type:H.KEY_SYSTEM_ERROR,details:P.KEY_SYSTEM_LICENSE_REQUEST_FAILED,fatal:!0,networkDetails:l,response:{url:a,data:void 0,code:l.status,text:l.statusText}},`License Request XHR failed (${a}). Status: ${l.status} (${l.statusText})`));else{let d=u-this._requestLicenseFailureCount+1;this.warn(`Retrying license request, ${d} attempts left`),this.requestLicense(t,e).then(r,s)}}},t.licenseXhr&&t.licenseXhr.readyState!==XMLHttpRequest.DONE&&t.licenseXhr.abort(),t.licenseXhr=l,this.setupLicenseXHR(l,a,t,e).then(({xhr:c,licenseChallenge:u})=>{t.keySystem==jt.PLAYREADY&&(u=this.unpackPlayReadyKeyMessage(c,u)),c.send(u)})})}onMediaAttached(t,e){if(!this.config.emeEnabled)return;let i=e.media;this.media=i,i.addEventListener("encrypted",this.onMediaEncrypted),i.addEventListener("waitingforkey",this.onWaitingForKey)}onMediaDetached(){let t=this.media,e=this.mediaKeySessions;t&&(t.removeEventListener("encrypted",this.onMediaEncrypted),t.removeEventListener("waitingforkey",this.onWaitingForKey),this.media=null),this._requestLicenseFailureCount=0,this.setMediaKeysQueue=[],this.mediaKeySessions=[],this.keyIdToKeySessionPromise={},fi.clearKeyUriToKeyIdMap();let i=e.length;ns.CDMCleanupPromise=Promise.all(e.map((r)=>this.removeSession(r)).concat(t==null?void 0:t.setMediaKeys(null).catch((r)=>{this.log("Could not clear media keys: "+r)}))).then(()=>{i&&(this.log("finished closing key sessions and clearing media keys"),e.length=0)}).catch((r)=>{this.log("Could not close sessions and clear media keys: "+r)})}onManifestLoading(){this.keyFormatPromise=null}onManifestLoaded(t,{sessionKeys:e}){if(e&&this.config.emeEnabled&&!this.keyFormatPromise){let i=e.reduce((r,s)=>(r.indexOf(s.keyFormat)===-1&&r.push(s.keyFormat),r),[]);this.log("Selecting key-system from session-keys "+i.join(", ")),this.keyFormatPromise=this.getKeyFormatPromise(i)}}removeSession(t){let{mediaKeysSession:e,licenseXhr:i}=t;if(e){this.log("Remove licenses and keys and close session "+e.sessionId),t._onmessage&&(e.removeEventListener("message",t._onmessage),t._onmessage=void 0),t._onkeystatuseschange&&(e.removeEventListener("keystatuseschange",t._onkeystatuseschange),t._onkeystatuseschange=void 0),i&&i.readyState!==XMLHttpRequest.DONE&&i.abort(),t.mediaKeysSession=t.decryptdata=t.licenseXhr=void 0;let r=this.mediaKeySessions.indexOf(t);return r>-1&&this.mediaKeySessions.splice(r,1),e.remove().catch((s)=>{this.log("Could not remove session: "+s)}).then(()=>e.close()).catch((s)=>{this.log("Could not close session: "+s)})}}}ns.CDMCleanupPromise=void 0;class Ei extends Error{constructor(t,e){super(e),this.data=void 0,t.error||(t.error=new Error(e)),this.data=t,t.err=t.error}}var qe,Xl,mn;(function(t){t.MANIFEST="m",t.AUDIO="a",t.VIDEO="v",t.MUXED="av",t.INIT="i",t.CAPTION="c",t.TIMED_TEXT="tt",t.KEY="k",t.OTHER="o"})(qe||(qe={})),function(t){t.DASH="d",t.HLS="h",t.SMOOTH="s",t.OTHER="o"}(Xl||(Xl={})),function(t){t.OBJECT="CMCD-Object",t.REQUEST="CMCD-Request",t.SESSION="CMCD-Session",t.STATUS="CMCD-Status"}(mn||(mn={}));let Ef={[mn.OBJECT]:["br","d","ot","tb"],[mn.REQUEST]:["bl","dl","mtp","nor","nrr","su"],[mn.SESSION]:["cid","pr","sf","sid","st","v"],[mn.STATUS]:["bs","rtp"]};class ss{constructor(t,e){this.value=void 0,this.params=void 0,Array.isArray(t)&&(t=t.map((i)=>i instanceof ss?i:new ss(i))),this.value=t,this.params=e}}class Jl{constructor(t){this.description=void 0,this.description=t}}function yf(t,e,i,r){return new Error(`failed to ${t} "${s=e,Array.isArray(s)?JSON.stringify(s):s instanceof Map?"Map{}":s instanceof Set?"Set{}":typeof s=="object"?JSON.stringify(s):String(s)}" as ${i}`,{cause:r});var s}let Sf=/[\x00-\x1f\x7f]+/;function Ji(t,e,i){return yf("serialize",t,e,i)}function bf(t){if(ArrayBuffer.isView(t)===!1)throw Ji(t,"Byte Sequence");return`:${e=t,btoa(String.fromCharCode(...e))}:`;var e}function ku(t){if(function(e){return e<-999999999999999||999999999999999<e}(t))throw Ji(t,"Integer");return t.toString()}function Tf(t){let e=function r(s,a){if(s<0)return-r(-s,a);let l=Math.pow(10,a);if(Math.abs(s*l%1-0.5)<Number.EPSILON){let c=Math.floor(s*l);return(c%2==0?c:c+1)/l}return Math.round(s*l)/l}(t,3);if(Math.floor(Math.abs(e)).toString().length>12)throw Ji(t,"Decimal");let i=e.toString();return i.includes(".")?i:i+".0"}function Cu(t){let e=(i=t).description||i.toString().slice(7,-1);var i;if(/^([a-zA-Z*])([!#$%&'*+\-.^_`|~\w:/]*)$/.test(e)===!1)throw Ji(e,"Token");return e}function Ql(t){switch(typeof t){case"number":if(!L(t))throw Ji(t,"Bare Item");return Number.isInteger(t)?ku(t):Tf(t);case"string":return function(e){if(Sf.test(e))throw Ji(e,"String");return`"${e.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`}(t);case"symbol":return Cu(t);case"boolean":return function(e){if(typeof e!="boolean")throw Ji(e,"Boolean");return e?"?1":"?0"}(t);case"object":if(t instanceof Date)return function(e){return"@"+ku(e.getTime()/1000)}(t);if(t instanceof Uint8Array)return bf(t);if(t instanceof Jl)return Cu(t);default:throw Ji(t,"Bare Item")}}function Zl(t){if(/^[a-z*][a-z0-9\-_.*]*$/.test(t)===!1)throw Ji(t,"Key");return t}function tc(t){return t==null?"":Object.entries(t).map(([e,i])=>i===!0?";"+Zl(e):`;${Zl(e)}=${Ql(i)}`).join("")}function Du(t){return t instanceof ss?`${Ql(t.value)}${tc(t.params)}`:Ql(t)}function Af(t,e={whitespace:!0}){if(typeof t!="object")throw Ji(t,"Dict");let i=t instanceof Map?t.entries():Object.entries(t),r=e!=null&&e.whitespace?" ":"";return Array.from(i).map(([s,a])=>{a instanceof ss==!1&&(a=new ss(a));let l=Zl(s);var c;return a.value===!0?l+=tc(a.params):(l+="=",Array.isArray(a.value)?l+=`(${(c=a).value.map(Du).join(" ")})${tc(c.params)}`:l+=Du(a)),l}).join(","+r)}let wo=(t)=>Math.round(t),Ro=(t)=>100*wo(t/100),_f={br:wo,d:wo,bl:Ro,dl:Ro,mtp:Ro,nor:(t,e)=>(e!=null&&e.baseUrl&&(t=function(i,r){let s=new URL(i),a=new URL(r);if(s.origin!==a.origin)return i;let l=s.pathname.split("/").slice(1),c=a.pathname.split("/").slice(1,-1);for(;l[0]===c[0];)l.shift(),c.shift();for(;c.length;)c.shift(),l.unshift("..");return l.join("/")}(t,e.baseUrl)),encodeURIComponent(t)),rtp:Ro,tb:wo};function Lf(t,e){let i={};if(t==null||typeof t!="object")return i;let r=Object.keys(t).sort(),s=A({},_f,e==null?void 0:e.formatters),a=e==null?void 0:e.filter;return r.forEach((l)=>{if(a!=null&&a(l))return;let c=t[l],u=s[l];u&&(c=u(c,e)),l==="v"&&c===1||l=="pr"&&c===1||((d)=>typeof d=="number"?L(d):d!=null&&d!==""&&d!==!1)(c)&&(((d)=>d==="ot"||d==="sf"||d==="st")(l)&&typeof c=="string"&&(c=new Jl(c)),i[l]=c)}),i}function Iu(t,e={}){return t?function(i,r){return Af(i,r)}(Lf(t,e),A({whitespace:!1},e)):""}function wf(t,e,i){return A(t,function(r,s={}){if(!r)return{};let a=Object.entries(r),l=Object.entries(Ef).concat(Object.entries((s==null?void 0:s.customHeaderMap)||{})),c=a.reduce((u,d)=>{var m;let[y,S]=d,T=((m=l.find((w)=>w[1].includes(y)))==null?void 0:m[0])||mn.REQUEST;return u[T]!=null||(u[T]={}),u[T][y]=S,u},{});return Object.entries(c).reduce((u,[d,m])=>(u[d]=Iu(m,s),u),{})}(e,i))}let Ou=/CMCD=[^&#]+/;function Rf(t,e,i){let r=function(a,l={}){if(!a)return"";let c=Iu(a,l);return"CMCD="+encodeURIComponent(c)}(e,i);if(!r)return t;if(Ou.test(t))return t.replace(Ou,r);let s=t.includes("?")?"&":"?";return`${t}${s}${r}`}function Mu(t,e,i,r){t&&Object.keys(e).forEach((s)=>{let a=t.filter((l)=>l.groupId===s).map((l)=>{let c=A({},l);return c.details=void 0,c.attrs=new j(c.attrs),c.url=c.attrs.URI=Nu(l.url,l.attrs["STABLE-RENDITION-ID"],"PER-RENDITION-URIS",i),c.groupId=c.attrs["GROUP-ID"]=e[s],c.attrs["PATHWAY-ID"]=r,c});t.push(...a)})}function Nu(t,e,i,r){let{HOST:s,PARAMS:a,[i]:l}=r,c;e&&(c=l==null?void 0:l[e],c&&(t=c));let u=new self.URL(t);return s&&!c&&(u.host=s),a&&Object.keys(a).sort().forEach((d)=>{d&&u.searchParams.set(d,a[d])}),u.href}let kf=/^age:\s*[\d.]+\s*$/im;class ec{constructor(t){this.xhrSetup=void 0,this.requestTimeout=void 0,this.retryTimeout=void 0,this.retryDelay=void 0,this.config=null,this.callbacks=null,this.context=null,this.loader=null,this.stats=void 0,this.xhrSetup=t&&t.xhrSetup||null,this.stats=new st,this.retryDelay=0}destroy(){this.callbacks=null,this.abortInternal(),this.loader=null,this.config=null,this.context=null,this.xhrSetup=null,this.stats=null}abortInternal(){let t=this.loader;self.clearTimeout(this.requestTimeout),self.clearTimeout(this.retryTimeout),t&&(t.onreadystatechange=null,t.onprogress=null,t.readyState!==4&&(this.stats.aborted=!0,t.abort()))}abort(){var t;this.abortInternal(),(t=this.callbacks)!=null&&t.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.loader)}load(t,e,i){if(this.stats.loading.start)throw new Error("Loader can only be used once.");this.stats.loading.start=self.performance.now(),this.context=t,this.config=e,this.callbacks=i,this.loadInternal()}loadInternal(){let{config:t,context:e}=this;if(!t||!e)return;let i=this.loader=new self.XMLHttpRequest,r=this.stats;r.loading.first=0,r.loaded=0,r.aborted=!1;let s=this.xhrSetup;s?Promise.resolve().then(()=>{if(!this.stats.aborted)return s(i,e.url)}).catch((a)=>(i.open("GET",e.url,!0),s(i,e.url))).then(()=>{this.stats.aborted||this.openAndSendXhr(i,e,t)}).catch((a)=>{this.callbacks.onError({code:i.status,text:a.message},e,i,r)}):this.openAndSendXhr(i,e,t)}openAndSendXhr(t,e,i){t.readyState||t.open("GET",e.url,!0);let r=e.headers,{maxTimeToFirstByteMs:s,maxLoadTimeMs:a}=i.loadPolicy;if(r)for(let l in r)t.setRequestHeader(l,r[l]);e.rangeEnd&&t.setRequestHeader("Range","bytes="+e.rangeStart+"-"+(e.rangeEnd-1)),t.onreadystatechange=this.readystatechange.bind(this),t.onprogress=this.loadprogress.bind(this),t.responseType=e.responseType,self.clearTimeout(this.requestTimeout),i.timeout=s&&L(s)?s:a,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),i.timeout),t.send()}readystatechange(){let{context:t,loader:e,stats:i}=this;if(!t||!e)return;let r=e.readyState,s=this.config;if(!i.aborted&&r>=2&&(i.loading.first===0&&(i.loading.first=Math.max(self.performance.now(),i.loading.start),s.timeout!==s.loadPolicy.maxLoadTimeMs&&(self.clearTimeout(this.requestTimeout),s.timeout=s.loadPolicy.maxLoadTimeMs,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),s.loadPolicy.maxLoadTimeMs-(i.loading.first-i.loading.start)))),r===4)){self.clearTimeout(this.requestTimeout),e.onreadystatechange=null,e.onprogress=null;let a=e.status,l=e.responseType!=="text";if(a>=200&&a<300&&(l&&e.response||e.responseText!==null)){i.loading.end=Math.max(self.performance.now(),i.loading.first);let c=l?e.response:e.responseText,u=e.responseType==="arraybuffer"?c.byteLength:c.length;if(i.loaded=i.total=u,i.bwEstimate=8000*i.total/(i.loading.end-i.loading.first),!this.callbacks)return;let d=this.callbacks.onProgress;if(d&&d(i,t,c,e),!this.callbacks)return;let m={url:e.responseURL,data:c,code:a};this.callbacks.onSuccess(m,i,t,e)}else{let c=s.loadPolicy.errorRetry;kr(c,i.retry,!1,{url:t.url,data:void 0,code:a})?this.retry(c):(I.error(`${a} while loading ${t.url}`),this.callbacks.onError({code:a,text:e.statusText},t,e,i))}}}loadtimeout(){var t;let e=(t=this.config)==null?void 0:t.loadPolicy.timeoutRetry;if(kr(e,this.stats.retry,!0))this.retry(e);else{var i;I.warn("timeout while loading "+((i=this.context)==null?void 0:i.url));let r=this.callbacks;r&&(this.abortInternal(),r.onTimeout(this.stats,this.context,this.loader))}}retry(t){let{context:e,stats:i}=this;this.retryDelay=Xs(t,i.retry),i.retry++,I.warn(`${status?"HTTP Status "+status:"Timeout"} while loading ${e==null?void 0:e.url}, retrying ${i.retry}/${t.maxNumRetry} in ${this.retryDelay}ms`),this.abortInternal(),this.loader=null,self.clearTimeout(this.retryTimeout),this.retryTimeout=self.setTimeout(this.loadInternal.bind(this),this.retryDelay)}loadprogress(t){let e=this.stats;e.loaded=t.loaded,t.lengthComputable&&(e.total=t.total)}getCacheAge(){let t=null;if(this.loader&&kf.test(this.loader.getAllResponseHeaders())){let e=this.loader.getResponseHeader("age");t=e?parseFloat(e):null}return t}getResponseHeader(t){return this.loader&&new RegExp(`^${t}:\\s*[\\d.]+\\s*$`,"im").test(this.loader.getAllResponseHeaders())?this.loader.getResponseHeader(t):null}}let Cf=/(\d+)-(\d+)\/(\d+)/;class ic{constructor(t){this.fetchSetup=void 0,this.requestTimeout=void 0,this.request=null,this.response=null,this.controller=void 0,this.context=null,this.config=null,this.callbacks=null,this.stats=void 0,this.loader=null,this.fetchSetup=t.fetchSetup||Df,this.controller=new self.AbortController,this.stats=new st}destroy(){this.loader=this.callbacks=this.context=this.config=this.request=null,this.abortInternal(),this.response=null,this.fetchSetup=this.controller=this.stats=null}abortInternal(){this.controller&&!this.stats.loading.end&&(this.stats.aborted=!0,this.controller.abort())}abort(){var t;this.abortInternal(),(t=this.callbacks)!=null&&t.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.response)}load(t,e,i){let r=this.stats;if(r.loading.start)throw new Error("Loader can only be used once.");r.loading.start=self.performance.now();let s=function(m,y){let S={method:"GET",mode:"cors",credentials:"same-origin",signal:y,headers:new self.Headers(A({},m.headers))};return m.rangeEnd&&S.headers.set("Range","bytes="+m.rangeStart+"-"+String(m.rangeEnd-1)),S}(t,this.controller.signal),a=i.onProgress,l=t.responseType==="arraybuffer",c=l?"byteLength":"length",{maxTimeToFirstByteMs:u,maxLoadTimeMs:d}=e.loadPolicy;this.context=t,this.config=e,this.callbacks=i,this.request=this.fetchSetup(t,s),self.clearTimeout(this.requestTimeout),e.timeout=u&&L(u)?u:d,this.requestTimeout=self.setTimeout(()=>{this.abortInternal(),i.onTimeout(r,t,this.response)},e.timeout),self.fetch(this.request).then((m)=>{this.response=this.loader=m;let y=Math.max(self.performance.now(),r.loading.start);if(self.clearTimeout(this.requestTimeout),e.timeout=d,this.requestTimeout=self.setTimeout(()=>{this.abortInternal(),i.onTimeout(r,t,this.response)},d-(y-r.loading.start)),!m.ok){let{status:S,statusText:T}=m;throw new Pu(T||"fetch, bad network response",S,m)}return r.loading.first=y,r.total=function(S){let T=S.get("Content-Range");if(T){let D=function(k){let N=Cf.exec(k);if(N)return parseInt(N[2])-parseInt(N[1])+1}(T);if(L(D))return D}let w=S.get("Content-Length");if(w)return parseInt(w)}(m.headers)||r.total,a&&L(e.highWaterMark)?this.loadProgressively(m,r,t,e.highWaterMark,a):l?m.arrayBuffer():t.responseType==="json"?m.json():m.text()}).then((m)=>{let y=this.response;if(!y)throw new Error("loader destroyed");self.clearTimeout(this.requestTimeout),r.loading.end=Math.max(self.performance.now(),r.loading.first);let S=m[c];S&&(r.loaded=r.total=S);let T={url:y.url,data:m,code:y.status};a&&!L(e.highWaterMark)&&a(r,t,m,y),i.onSuccess(T,r,t,y)}).catch((m)=>{if(self.clearTimeout(this.requestTimeout),r.aborted)return;let y=m&&m.code||0,S=m?m.message:null;i.onError({code:y,text:S},t,m?m.details:null,r)})}getCacheAge(){let t=null;if(this.response){let e=this.response.headers.get("age");t=e?parseFloat(e):null}return t}getResponseHeader(t){return this.response?this.response.headers.get(t):null}loadProgressively(t,e,i,r=0,s){let a=new jn,l=t.body.getReader(),c=()=>l.read().then((u)=>{if(u.done)return a.dataLength&&s(e,i,a.flush(),t),Promise.resolve(new ArrayBuffer(0));let d=u.value,m=d.length;return e.loaded+=m,m<r||a.dataLength?(a.push(d),a.dataLength>=r&&s(e,i,a.flush(),t)):s(e,i,d,t),c()}).catch(()=>Promise.reject());return c()}}function Df(t,e){return new self.Request(t.url,e)}class Pu extends Error{constructor(t,e,i){super(t),this.code=void 0,this.details=void 0,this.code=e,this.details=i}}let If=/\s/,Of={newCue(t,e,i,r){let s=[],a,l,c,u,d,m=self.VTTCue||self.TextTrackCue;for(let S=0;S<r.rows.length;S++)if(a=r.rows[S],c=!0,u=0,d="",!a.isEmpty()){var y;for(let D=0;D<a.chars.length;D++)If.test(a.chars[D].uchar)&&c?u++:(d+=a.chars[D].uchar,c=!1);a.cueStartTime=e,e===i&&(i+=0.0001),u>=16?u--:u++;let T=yu(d.trim()),w=Wl(e,i,T);t!=null&&(y=t.cues)!=null&&y.getCueById(w)||(l=new m(e,i,T),l.id=w,l.line=S+1,l.align="left",l.position=10+Math.min(80,10*Math.floor(8*u/32)),s.push(l))}return t&&s.length&&(s.sort((S,T)=>S.line==="auto"||T.line==="auto"?0:S.line>8&&T.line>8?T.line-S.line:S.line-T.line),s.forEach((S)=>io(t,S))),s}},xu=E(E({autoStartLoad:!0,startPosition:-1,defaultAudioCodec:void 0,debug:!1,capLevelOnFPSDrop:!1,capLevelToPlayerSize:!1,ignoreDevicePixelRatio:!1,preferManagedMediaSource:!0,initialLiveManifestSize:1,maxBufferLength:30,backBufferLength:1/0,frontBufferFlushThreshold:1/0,maxBufferSize:60000000,maxBufferHole:0.1,highBufferWatchdogPeriod:2,nudgeOffset:0.1,nudgeMaxRetry:3,maxFragLookUpTolerance:0.25,liveSyncDurationCount:3,liveMaxLatencyDurationCount:1/0,liveSyncDuration:void 0,liveMaxLatencyDuration:void 0,maxLiveSyncPlaybackRate:1,liveDurationInfinity:!1,liveBackBufferLength:null,maxMaxBufferLength:600,enableWorker:!0,workerPath:null,enableSoftwareAES:!0,startLevel:void 0,startFragPrefetch:!1,fpsDroppedMonitoringPeriod:5000,fpsDroppedMonitoringThreshold:0.2,appendErrorMaxRetry:3,loader:ec,fLoader:void 0,pLoader:void 0,xhrSetup:void 0,licenseXhrSetup:void 0,licenseResponseCallback:void 0,abrController:class t{constructor(e){this.hls=void 0,this.lastLevelLoadSec=0,this.lastLoadedFragLevel=-1,this.firstSelection=-1,this._nextAutoLevel=-1,this.nextAutoLevelKey="",this.audioTracksByGroup=null,this.codecTiers=null,this.timer=-1,this.fragCurrent=null,this.partCurrent=null,this.bitrateTestDelay=0,this.bwEstimator=void 0,this._abandonRulesCheck=()=>{let{fragCurrent:i,partCurrent:r,hls:s}=this,{autoLevelEnabled:a,media:l}=s;if(!i||!l)return;let c=performance.now(),u=r?r.stats:i.stats,d=r?r.duration:i.duration,m=c-u.loading.start,y=s.minAutoLevel;if(u.aborted||u.loaded&&u.loaded===u.total||i.level<=y)return this.clearTimer(),void(this._nextAutoLevel=-1);if(!a||l.paused||!l.playbackRate||!l.readyState)return;let S=s.mainForwardBufferInfo;if(S===null)return;let T=this.bwEstimator.getEstimateTTFB(),w=Math.abs(l.playbackRate);if(m<=Math.max(T,d/(2*w)*1000))return;let D=S.len/w,k=u.loading.first?u.loading.first-u.loading.start:-1,N=u.loaded&&k>-1,x=this.getBwEstimate(),G=s.levels,Y=G[i.level],rt=u.total||Math.max(u.loaded,Math.round(d*Y.averageBitrate/8)),J=N?m-k:m;J<1&&N&&(J=Math.min(m,8*u.loaded/x));let ut=N?1000*u.loaded/J:0,ft=ut?(rt-u.loaded)/ut:8*rt/x+T/1000;if(ft<=D)return;let Z=ut?8*ut:x,Q,Dt=Number.POSITIVE_INFINITY;for(Q=i.level-1;Q>y;Q--){let Rt=G[Q].maxBitrate;if(Dt=this.getTimeToLoadFrag(T/1000,Z,d*Rt,!G[Q].details),Dt<D)break}if(Dt>=ft)return;if(Dt>10*d)return;s.nextLoadLevel=s.nextAutoLevel=Q,N?this.bwEstimator.sample(m-Math.min(T,k),u.loaded):this.bwEstimator.sampleTTFB(m);let mt=G[Q].maxBitrate;this.getBwEstimate()*this.hls.config.abrBandWidthUpFactor>mt&&this.resetEstimator(mt),this.clearTimer(),I.warn(`[abr] Fragment ${i.sn}${r?" part "+r.index:""} of level ${i.level} is loading too slowly;
|
|
44
27
|
Time to underbuffer: ${D.toFixed(3)} s
|
|
45
|
-
Estimated load time for current fragment: ${
|
|
46
|
-
Estimated load time for down switch fragment: ${
|
|
47
|
-
TTFB estimate: ${0|
|
|
48
|
-
Current BW estimate: ${
|
|
28
|
+
Estimated load time for current fragment: ${ft.toFixed(3)} s
|
|
29
|
+
Estimated load time for down switch fragment: ${Dt.toFixed(3)} s
|
|
30
|
+
TTFB estimate: ${0|k} ms
|
|
31
|
+
Current BW estimate: ${L(x)?0|x:"Unknown"} bps
|
|
49
32
|
New BW estimate: ${0|this.getBwEstimate()} bps
|
|
50
|
-
Switching to level ${it} @ ${0|At} bps`),r.trigger(A.FRAG_LOAD_EMERGENCY_ABORTED,{frag:i,part:n,stats:d})},this.hls=e,this.bwEstimator=this.initEstimator(),this.registerListeners()}resetEstimator(e){e&&(C.log("setting initial bwe to "+e),this.hls.config.abrEwmaDefaultEstimate=e),this.firstSelection=-1,this.bwEstimator=this.initEstimator()}initEstimator(){let e=this.hls.config;return new Ks(e.abrEwmaSlowVoD,e.abrEwmaFastVoD,e.abrEwmaDefaultEstimate)}registerListeners(){let{hls:e}=this;e.on(A.MANIFEST_LOADING,this.onManifestLoading,this),e.on(A.FRAG_LOADING,this.onFragLoading,this),e.on(A.FRAG_LOADED,this.onFragLoaded,this),e.on(A.FRAG_BUFFERED,this.onFragBuffered,this),e.on(A.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(A.LEVEL_LOADED,this.onLevelLoaded,this),e.on(A.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(A.MAX_AUTO_LEVEL_UPDATED,this.onMaxAutoLevelUpdated,this),e.on(A.ERROR,this.onError,this)}unregisterListeners(){let{hls:e}=this;e&&(e.off(A.MANIFEST_LOADING,this.onManifestLoading,this),e.off(A.FRAG_LOADING,this.onFragLoading,this),e.off(A.FRAG_LOADED,this.onFragLoaded,this),e.off(A.FRAG_BUFFERED,this.onFragBuffered,this),e.off(A.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(A.LEVEL_LOADED,this.onLevelLoaded,this),e.off(A.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(A.MAX_AUTO_LEVEL_UPDATED,this.onMaxAutoLevelUpdated,this),e.off(A.ERROR,this.onError,this))}destroy(){this.unregisterListeners(),this.clearTimer(),this.hls=this._abandonRulesCheck=null,this.fragCurrent=this.partCurrent=null}onManifestLoading(e,i){this.lastLoadedFragLevel=-1,this.firstSelection=-1,this.lastLevelLoadSec=0,this.fragCurrent=this.partCurrent=null,this.onLevelsUpdated(),this.clearTimer()}onLevelsUpdated(){this.lastLoadedFragLevel>-1&&this.fragCurrent&&(this.lastLoadedFragLevel=this.fragCurrent.level),this._nextAutoLevel=-1,this.onMaxAutoLevelUpdated(),this.codecTiers=null,this.audioTracksByGroup=null}onMaxAutoLevelUpdated(){this.firstSelection=-1,this.nextAutoLevelKey=""}onFragLoading(e,i){let n=i.frag;if(!this.ignoreFragment(n)){var r;if(!n.bitrateTest)this.fragCurrent=n,this.partCurrent=(r=i.part)!=null?r:null;this.clearTimer(),this.timer=self.setInterval(this._abandonRulesCheck,100)}}onLevelSwitching(e,i){this.clearTimer()}onError(e,i){if(!i.fatal)switch(i.details){case H.BUFFER_ADD_CODEC_ERROR:case H.BUFFER_APPEND_ERROR:this.lastLoadedFragLevel=-1,this.firstSelection=-1;break;case H.FRAG_LOAD_TIMEOUT:{let n=i.frag,{fragCurrent:r,partCurrent:s}=this;if(n&&r&&n.sn===r.sn&&n.level===r.level){let a=performance.now(),l=s?s.stats:n.stats,d=a-l.loading.start,u=l.loading.first?l.loading.first-l.loading.start:-1;if(l.loaded&&u>-1){let f=this.bwEstimator.getEstimateTTFB();this.bwEstimator.sample(d-Math.min(f,u),l.loaded)}else this.bwEstimator.sampleTTFB(d)}break}}}getTimeToLoadFrag(e,i,n,r){return e+n/i+(r?this.lastLevelLoadSec:0)}onLevelLoaded(e,i){let n=this.hls.config,{loading:r}=i.stats,s=r.end-r.start;j(s)&&(this.lastLevelLoadSec=s/1000),i.details.live?this.bwEstimator.update(n.abrEwmaSlowLive,n.abrEwmaFastLive):this.bwEstimator.update(n.abrEwmaSlowVoD,n.abrEwmaFastVoD)}onFragLoaded(e,{frag:i,part:n}){let r=n?n.stats:i.stats;if(i.type===me&&this.bwEstimator.sampleTTFB(r.loading.first-r.loading.start),!this.ignoreFragment(i)){if(this.clearTimer(),i.level===this._nextAutoLevel&&(this._nextAutoLevel=-1),this.firstSelection=-1,this.hls.config.abrMaxWithRealBitrate){let s=n?n.duration:i.duration,a=this.hls.levels[i.level],l=(a.loaded?a.loaded.bytes:0)+r.loaded,d=(a.loaded?a.loaded.duration:0)+s;a.loaded={bytes:l,duration:d},a.realBitrate=Math.round(8*l/d)}if(i.bitrateTest){let s={stats:r,frag:i,part:n,id:i.type};this.onFragBuffered(A.FRAG_BUFFERED,s),i.bitrateTest=!1}else this.lastLoadedFragLevel=i.level}}onFragBuffered(e,i){let{frag:n,part:r}=i,s=r!=null&&r.stats.loaded?r.stats:n.stats;if(s.aborted)return;if(this.ignoreFragment(n))return;let a=s.parsing.end-s.loading.start-Math.min(s.loading.first-s.loading.start,this.bwEstimator.getEstimateTTFB());this.bwEstimator.sample(a,s.loaded),s.bwEstimate=this.getBwEstimate(),n.bitrateTest?this.bitrateTestDelay=a/1000:this.bitrateTestDelay=0}ignoreFragment(e){return e.type!==me||e.sn==="initSegment"}clearTimer(){this.timer>-1&&(self.clearInterval(this.timer),this.timer=-1)}get firstAutoLevel(){let{maxAutoLevel:e,minAutoLevel:i}=this.hls,n=this.getBwEstimate(),r=this.hls.config.maxStarvationDelay,s=this.findBestLevel(n,i,e,0,r,1,1);if(s>-1)return s;let a=this.hls.firstLevel,l=Math.min(Math.max(a,i),e);return C.warn(`[abr] Could not find best starting auto level. Defaulting to first in playlist ${a} clamped to ${l}`),l}get forcedAutoLevel(){return this.nextAutoLevelKey?-1:this._nextAutoLevel}get nextAutoLevel(){let e=this.forcedAutoLevel,i=this.bwEstimator.canEstimate(),n=this.lastLoadedFragLevel>-1;if(!(e===-1||i&&n&&this.nextAutoLevelKey!==this.getAutoLevelKey()))return e;let r=i&&n?this.getNextABRAutoLevel():this.firstAutoLevel;if(e!==-1){let s=this.hls.levels;if(s.length>Math.max(e,r)&&s[e].loadError<=s[r].loadError)return e}return this._nextAutoLevel=r,this.nextAutoLevelKey=this.getAutoLevelKey(),r}getAutoLevelKey(){return`${this.getBwEstimate()}_${this.getStarvationDelay().toFixed(2)}`}getNextABRAutoLevel(){let{fragCurrent:e,partCurrent:i,hls:n}=this,{maxAutoLevel:r,config:s,minAutoLevel:a}=n,l=i?i.duration:e?e.duration:0,d=this.getBwEstimate(),u=this.getStarvationDelay(),f=s.abrBandWidthFactor,E=s.abrBandWidthUpFactor;if(u){let w=this.findBestLevel(d,a,r,u,0,f,E);if(w>=0)return w}let b=l?Math.min(l,s.maxStarvationDelay):s.maxStarvationDelay;if(!u){let w=this.bitrateTestDelay;if(w)b=(l?Math.min(l,s.maxLoadingDelay):s.maxLoadingDelay)-w,C.info(`[abr] bitrate test took ${Math.round(1000*w)}ms, set first fragment max fetchDuration to ${Math.round(1000*b)} ms`),f=E=1}let T=this.findBestLevel(d,a,r,u,b,f,E);if(C.info(`[abr] ${u?"rebuffering expected":"buffer is empty"}, optimal quality level ${T}`),T>-1)return T;let _=n.levels[a],D=n.levels[n.loadLevel];return(_==null?void 0:_.bitrate)<(D==null?void 0:D.bitrate)?a:n.loadLevel}getStarvationDelay(){let e=this.hls,i=e.media;if(!i)return 1/0;let n=i&&i.playbackRate!==0?Math.abs(i.playbackRate):1,r=e.mainForwardBufferInfo;return(r?r.len:0)/n}getBwEstimate(){return this.bwEstimator.canEstimate()?this.bwEstimator.getEstimate():this.hls.config.abrEwmaDefaultEstimate}findBestLevel(e,i,n,r,s,a,l){var d;let u=r+s,f=this.lastLoadedFragLevel,E=f===-1?this.hls.firstLevel:f,{fragCurrent:b,partCurrent:T}=this,{levels:_,allAudioTracks:D,loadLevel:w,config:x}=this.hls;if(_.length===1)return 0;let M=_[E],V=!(M==null||(d=M.details)==null||!d.live),X=w===-1||f===-1,ot,et="SDR",vt=(M==null?void 0:M.frameRate)||0,{audioPreference:St,videoPreference:nt}=x,it=this.audioTracksByGroup||(this.audioTracksByGroup=function(Xt){return Xt.reduce((ht,wt)=>{let Wt=ht.groups[wt.groupId];Wt||(Wt=ht.groups[wt.groupId]={tracks:[],channels:{2:0},hasDefault:!1,hasAutoSelect:!1}),Wt.tracks.push(wt);let Yt=wt.channels||"2";return Wt.channels[Yt]=(Wt.channels[Yt]||0)+1,Wt.hasDefault=Wt.hasDefault||wt.default,Wt.hasAutoSelect=Wt.hasAutoSelect||wt.autoselect,Wt.hasDefault&&(ht.hasDefaultAudio=!0),Wt.hasAutoSelect&&(ht.hasAutoSelectAudio=!0),ht},{hasDefaultAudio:!1,hasAutoSelectAudio:!1,groups:{}})}(D));if(X){if(this.firstSelection!==-1)return this.firstSelection;let Xt=function(Ce,$e,xe,hi,Gi){let Ve=Object.keys(Ce),jn=hi==null?void 0:hi.channels,ze=hi==null?void 0:hi.audioCodec,Wa=jn&&parseInt(jn)===2,ha=!0,pr=!1,An=1/0,Hr=1/0,Kr=1/0,Qo=0,fa=[],{preferHDR:Yd,allowedVideoRanges:zd}=To($e,Gi);for(let fi=Ve.length;fi--;){let ri=Ce[Ve[fi]];ha=ri.channels[2]>0,An=Math.min(An,ri.minHeight),Hr=Math.min(Hr,ri.minFramerate),Kr=Math.min(Kr,ri.minBitrate);let mi=zd.filter((Zo)=>ri.videoRanges[Zo]>0);mi.length>0&&(pr=!0,fa=mi)}An=j(An)?An:0,Hr=j(Hr)?Hr:0;let dc=Math.max(1080,An),uc=Math.max(30,Hr);return Kr=j(Kr)?Kr:xe,xe=Math.max(Kr,xe),pr||($e=void 0,fa=[]),{codecSet:Ve.reduce((fi,ri)=>{let mi=Ce[ri];if(ri===fi)return fi;if(mi.minBitrate>xe)return Ei(ri,`min bitrate of ${mi.minBitrate} > current estimate of ${xe}`),fi;if(!mi.hasDefaultAudio)return Ei(ri,"no renditions with default or auto-select sound found"),fi;if(ze&&ri.indexOf(ze.substring(0,4))%5!=0)return Ei(ri,`audio codec preference "${ze}" not found`),fi;if(jn&&!Wa){if(!mi.channels[jn])return Ei(ri,`no renditions with ${jn} channel sound found (channels options: ${Object.keys(mi.channels)})`),fi}else if((!ze||Wa)&&ha&&mi.channels[2]===0)return Ei(ri,"no renditions with stereo sound found"),fi;return mi.minHeight>dc?(Ei(ri,`min resolution of ${mi.minHeight} > maximum of ${dc}`),fi):mi.minFramerate>uc?(Ei(ri,`min framerate of ${mi.minFramerate} > maximum of ${uc}`),fi):fa.some((Zo)=>mi.videoRanges[Zo]>0)?mi.maxScore<Qo?(Ei(ri,`max score of ${mi.maxScore} < selected max of ${Qo}`),fi):fi&&(On(ri)>=On(fi)||mi.fragmentError>Ce[fi].fragmentError)?fi:(Qo=mi.maxScore,ri):(Ei(ri,`no variants with VIDEO-RANGE of ${JSON.stringify(fa)} found`),fi)},void 0),videoRanges:fa,preferHDR:Yd,minFramerate:Hr,minBitrate:Kr}}(this.codecTiers||(this.codecTiers=function(Ce,$e,xe,hi){return Ce.slice(xe,hi+1).reduce((Gi,Ve)=>{if(!Ve.codecSet)return Gi;let jn=Ve.audioGroups,ze=Gi[Ve.codecSet];ze||(Gi[Ve.codecSet]=ze={minBitrate:1/0,minHeight:1/0,minFramerate:1/0,maxScore:0,videoRanges:{SDR:0},channels:{2:0},hasDefaultAudio:!jn,fragmentError:0}),ze.minBitrate=Math.min(ze.minBitrate,Ve.bitrate);let Wa=Math.min(Ve.height,Ve.width);return ze.minHeight=Math.min(ze.minHeight,Wa),ze.minFramerate=Math.min(ze.minFramerate,Ve.frameRate),ze.maxScore=Math.max(ze.maxScore,Ve.score),ze.fragmentError+=Ve.fragmentError,ze.videoRanges[Ve.videoRange]=(ze.videoRanges[Ve.videoRange]||0)+1,jn&&jn.forEach((ha)=>{if(!ha)return;let pr=$e.groups[ha];pr&&(ze.hasDefaultAudio=ze.hasDefaultAudio||$e.hasDefaultAudio?pr.hasDefault:pr.hasAutoSelect||!$e.hasDefaultAudio&&!$e.hasAutoSelectAudio,Object.keys(pr.channels).forEach((An)=>{ze.channels[An]=(ze.channels[An]||0)+pr.channels[An]}))}),Gi},{})}(_,it,i,n)),et,e,St,nt),{codecSet:ht,videoRanges:wt,minFramerate:Wt,minBitrate:Yt,preferHDR:ae}=Xt;ot=ht,et=ae?wt[wt.length-1]:wt[0],vt=Wt,e=Math.max(e,Yt),C.log("[abr] picked start tier "+JSON.stringify(Xt))}else ot=M==null?void 0:M.codecSet,et=M==null?void 0:M.videoRange;let jt=T?T.duration:b?b.duration:0,At=this.bwEstimator.getEstimateTTFB()/1000,Kt=[];for(let Xt=n;Xt>=i;Xt--){var zt;let ht=_[Xt],wt=Xt>E;if(!ht)continue;if(x.useMediaCapabilities&&!ht.supportedResult&&!ht.supportedPromise){let xe=navigator.mediaCapabilities;typeof(xe==null?void 0:xe.decodingInfo)=="function"&&bo(ht,it,et,vt,e,St)?(ht.supportedPromise=bn(ht,it,xe),ht.supportedPromise.then((hi)=>{if(!this.hls)return;ht.supportedResult=hi;let Gi=this.hls.levels,Ve=Gi.indexOf(ht);hi.error?C.warn(`[abr] MediaCapabilities decodingInfo error: "${hi.error}" for level ${Ve} ${JSON.stringify(hi)}`):hi.supported||(C.warn(`[abr] Unsupported MediaCapabilities decodingInfo result for level ${Ve} ${JSON.stringify(hi)}`),Ve>-1&&Gi.length>1&&(C.log("[abr] Removing unsupported level "+Ve),this.hls.removeLevel(Ve)))})):ht.supportedResult=is}if(ot&&ht.codecSet!==ot||et&&ht.videoRange!==et||wt&&vt>ht.frameRate||!wt&&vt>0&&vt<ht.frameRate||ht.supportedResult&&((zt=ht.supportedResult.decodingInfoResults)==null||!zt[0].smooth)){Kt.push(Xt);continue}let Wt=ht.details,Yt=(T?Wt==null?void 0:Wt.partTarget:Wt==null?void 0:Wt.averagetargetduration)||jt,ae;ae=wt?l*e:a*e;let Ce=jt&&r>=2*jt&&s===0?_[Xt].averageBitrate:_[Xt].maxBitrate,$e=this.getTimeToLoadFrag(At,ae,Ce*Yt,Wt===void 0);if(ae>=Ce&&(Xt===f||ht.loadError===0&&ht.fragmentError===0)&&($e<=At||!j($e)||V&&!this.bitrateTestDelay||$e<u)){let xe=this.forcedAutoLevel;return Xt===w||xe!==-1&&xe===w||(Kt.length&&C.trace(`[abr] Skipped level(s) ${Kt.join(",")} of ${n} max with CODECS and VIDEO-RANGE:"${_[Kt[0]].codecs}" ${_[Kt[0]].videoRange}; not compatible with "${M.codecs}" ${et}`),C.info(`[abr] switch candidate:${E}->${Xt} adjustedbw(${Math.round(ae)})-bitrate=${Math.round(ae-Ce)} ttfb:${At.toFixed(1)} avgDuration:${Yt.toFixed(1)} maxFetchDuration:${u.toFixed(1)} fetchDuration:${$e.toFixed(1)} firstSelection:${X} codecSet:${ot} videoRange:${et} hls.loadLevel:${w}`)),X&&(this.firstSelection=Xt),Xt}}return-1}set nextAutoLevel(e){let{maxAutoLevel:i,minAutoLevel:n}=this.hls,r=Math.min(Math.max(e,n),i);this._nextAutoLevel!==r&&(this.nextAutoLevelKey="",this._nextAutoLevel=r)}},bufferController:class t{constructor(e){this.details=null,this._objectUrl=null,this.operationQueue=void 0,this.listeners=void 0,this.hls=void 0,this.bufferCodecEventsExpected=0,this._bufferCodecEventsTotal=0,this.media=null,this.mediaSource=null,this.lastMpegAudioChunk=null,this.appendSource=void 0,this.appendErrors={audio:0,video:0,audiovideo:0},this.tracks={},this.pendingTracks={},this.sourceBuffer=void 0,this.log=void 0,this.warn=void 0,this.error=void 0,this._onEndStreaming=(r)=>{this.hls&&this.hls.pauseBuffering()},this._onStartStreaming=(r)=>{this.hls&&this.hls.resumeBuffering()},this._onMediaSourceOpen=()=>{let{media:r,mediaSource:s}=this;this.log("Media source opened"),r&&(r.removeEventListener("emptied",this._onMediaEmptied),this.updateMediaElementDuration(),this.hls.trigger(A.MEDIA_ATTACHED,{media:r,mediaSource:s})),s&&s.removeEventListener("sourceopen",this._onMediaSourceOpen),this.checkPendingTracks()},this._onMediaSourceClose=()=>{this.log("Media source closed")},this._onMediaSourceEnded=()=>{this.log("Media source ended")},this._onMediaEmptied=()=>{let{mediaSrc:r,_objectUrl:s}=this;r!==s&&C.error(`Media element src was set while attaching MediaSource (${s} > ${r})`)},this.hls=e;let i="[buffer-controller]";var n;this.appendSource=(n=Xi(e.config.preferManagedMediaSource),typeof self!="undefined"&&n===self.ManagedMediaSource),this.log=C.log.bind(C,i),this.warn=C.warn.bind(C,i),this.error=C.error.bind(C,i),this._initSourceBuffer(),this.registerListeners()}hasSourceTypes(){return this.getSourceBufferTypes().length>0||Object.keys(this.pendingTracks).length>0}destroy(){this.unregisterListeners(),this.details=null,this.lastMpegAudioChunk=null,this.hls=null}registerListeners(){let{hls:e}=this;e.on(A.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(A.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(A.MANIFEST_LOADING,this.onManifestLoading,this),e.on(A.MANIFEST_PARSED,this.onManifestParsed,this),e.on(A.BUFFER_RESET,this.onBufferReset,this),e.on(A.BUFFER_APPENDING,this.onBufferAppending,this),e.on(A.BUFFER_CODECS,this.onBufferCodecs,this),e.on(A.BUFFER_EOS,this.onBufferEos,this),e.on(A.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(A.LEVEL_UPDATED,this.onLevelUpdated,this),e.on(A.FRAG_PARSED,this.onFragParsed,this),e.on(A.FRAG_CHANGED,this.onFragChanged,this)}unregisterListeners(){let{hls:e}=this;e.off(A.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(A.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(A.MANIFEST_LOADING,this.onManifestLoading,this),e.off(A.MANIFEST_PARSED,this.onManifestParsed,this),e.off(A.BUFFER_RESET,this.onBufferReset,this),e.off(A.BUFFER_APPENDING,this.onBufferAppending,this),e.off(A.BUFFER_CODECS,this.onBufferCodecs,this),e.off(A.BUFFER_EOS,this.onBufferEos,this),e.off(A.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(A.LEVEL_UPDATED,this.onLevelUpdated,this),e.off(A.FRAG_PARSED,this.onFragParsed,this),e.off(A.FRAG_CHANGED,this.onFragChanged,this)}_initSourceBuffer(){this.sourceBuffer={},this.operationQueue=new bl(this.sourceBuffer),this.listeners={audio:[],video:[],audiovideo:[]},this.appendErrors={audio:0,video:0,audiovideo:0},this.lastMpegAudioChunk=null}onManifestLoading(){this.bufferCodecEventsExpected=this._bufferCodecEventsTotal=0,this.details=null}onManifestParsed(e,i){let n=2;(i.audio&&!i.video||!i.altAudio)&&(n=1),this.bufferCodecEventsExpected=this._bufferCodecEventsTotal=n,this.log(this.bufferCodecEventsExpected+" bufferCodec event(s) expected")}onMediaAttaching(e,i){let n=this.media=i.media,r=Xi(this.appendSource);if(n&&r){var s;let a=this.mediaSource=new r;this.log("created media source: "+((s=a.constructor)==null?void 0:s.name)),a.addEventListener("sourceopen",this._onMediaSourceOpen),a.addEventListener("sourceended",this._onMediaSourceEnded),a.addEventListener("sourceclose",this._onMediaSourceClose),this.appendSource&&(a.addEventListener("startstreaming",this._onStartStreaming),a.addEventListener("endstreaming",this._onEndStreaming));let l=this._objectUrl=self.URL.createObjectURL(a);if(this.appendSource)try{n.removeAttribute("src");let d=self.ManagedMediaSource;n.disableRemotePlayback=n.disableRemotePlayback||d&&a instanceof d,Al(n),function(u,f){let E=self.document.createElement("source");E.type="video/mp4",E.src=f,u.appendChild(E)}(n,l),n.load()}catch(d){n.src=l}else n.src=l;n.addEventListener("emptied",this._onMediaEmptied)}}onMediaDetaching(){let{media:e,mediaSource:i,_objectUrl:n}=this;if(i){if(this.log("media source detaching"),i.readyState==="open")try{i.endOfStream()}catch(r){this.warn(`onMediaDetaching: ${r.message} while calling endOfStream`)}this.onBufferReset(),i.removeEventListener("sourceopen",this._onMediaSourceOpen),i.removeEventListener("sourceended",this._onMediaSourceEnded),i.removeEventListener("sourceclose",this._onMediaSourceClose),this.appendSource&&(i.removeEventListener("startstreaming",this._onStartStreaming),i.removeEventListener("endstreaming",this._onEndStreaming)),e&&(e.removeEventListener("emptied",this._onMediaEmptied),n&&self.URL.revokeObjectURL(n),this.mediaSrc===n?(e.removeAttribute("src"),this.appendSource&&Al(e),e.load()):this.warn("media|source.src was changed by a third party - skip cleanup")),this.mediaSource=null,this.media=null,this._objectUrl=null,this.bufferCodecEventsExpected=this._bufferCodecEventsTotal,this.pendingTracks={},this.tracks={}}this.hls.trigger(A.MEDIA_DETACHED,void 0)}onBufferReset(){this.getSourceBufferTypes().forEach((e)=>{this.resetBuffer(e)}),this._initSourceBuffer()}resetBuffer(e){let i=this.sourceBuffer[e];try{var n;if(i)this.removeBufferListeners(e),this.sourceBuffer[e]=void 0,(n=this.mediaSource)!=null&&n.sourceBuffers.length&&this.mediaSource.removeSourceBuffer(i)}catch(r){this.warn("onBufferReset "+e,r)}}onBufferCodecs(e,i){let n=this.getSourceBufferTypes().length,r=Object.keys(i);if(r.forEach((a)=>{if(n){let d=this.tracks[a];if(d&&typeof d.buffer.changeType=="function"){var l;let{id:u,codec:f,levelCodec:E,container:b,metadata:T}=i[a],_=Zr(d.codec,d.levelCodec),D=_==null?void 0:_.replace(Tl,"$1"),w=Zr(f,E),x=(l=w)==null?void 0:l.replace(Tl,"$1");if(w&&D!==x){a.slice(0,5)==="audio"&&(w=xn(w,this.appendSource));let M=`${b};codecs=${w}`;this.appendChangeType(a,M),this.log(`switching codec ${_} to ${w}`),this.tracks[a]={buffer:d.buffer,codec:f,container:b,levelCodec:E,metadata:T,id:u}}}}else this.pendingTracks[a]=i[a]}),n)return;let s=Math.max(this.bufferCodecEventsExpected-1,0);this.bufferCodecEventsExpected!==s&&(this.log(`${s} bufferCodec event(s) expected ${r.join(",")}`),this.bufferCodecEventsExpected=s),this.mediaSource&&this.mediaSource.readyState==="open"&&this.checkPendingTracks()}appendChangeType(e,i){let{operationQueue:n}=this,r={execute:()=>{let s=this.sourceBuffer[e];s&&(this.log(`changing ${e} sourceBuffer type to ${i}`),s.changeType(i)),n.shiftAndExecuteNext(e)},onStart:()=>{},onComplete:()=>{},onError:(s)=>{this.warn(`Failed to change ${e} SourceBuffer type`,s)}};n.append(r,e,!!this.pendingTracks[e])}onBufferAppending(e,i){let{hls:n,operationQueue:r,tracks:s}=this,{data:a,type:l,frag:d,part:u,chunkMeta:f}=i,E=f.buffering[l],b=self.performance.now();E.start=b;let T=d.stats.buffering,_=u?u.stats.buffering:null;T.start===0&&(T.start=b),_&&_.start===0&&(_.start=b);let D=s.audio,w=!1;l==="audio"&&(D==null?void 0:D.container)==="audio/mpeg"&&(w=!this.lastMpegAudioChunk||f.id===1||this.lastMpegAudioChunk.sn!==f.sn,this.lastMpegAudioChunk=f);let x=d.start,M={execute:()=>{if(E.executeStart=self.performance.now(),w){let V=this.sourceBuffer[l];if(V){let X=x-V.timestampOffset;Math.abs(X)>=0.1&&(this.log(`Updating audio SourceBuffer timestampOffset to ${x} (delta: ${X}) sn: ${d.sn})`),V.timestampOffset=x)}}this.appendExecutor(a,l)},onStart:()=>{},onComplete:()=>{let V=self.performance.now();E.executeEnd=E.end=V,T.first===0&&(T.first=V),_&&_.first===0&&(_.first=V);let{sourceBuffer:X}=this,ot={};for(let et in X)ot[et]=ye.getBuffered(X[et]);this.appendErrors[l]=0,l==="audio"||l==="video"?this.appendErrors.audiovideo=0:(this.appendErrors.audio=0,this.appendErrors.video=0),this.hls.trigger(A.BUFFER_APPENDED,{type:l,frag:d,part:u,chunkMeta:f,parent:d.type,timeRanges:ot})},onError:(V)=>{let X={type:Ft.MEDIA_ERROR,parent:d.type,details:H.BUFFER_APPEND_ERROR,sourceBufferName:l,frag:d,part:u,chunkMeta:f,error:V,err:V,fatal:!1};if(V.code===DOMException.QUOTA_EXCEEDED_ERR)X.details=H.BUFFER_FULL_ERROR;else{let ot=++this.appendErrors[l];X.details=H.BUFFER_APPEND_ERROR,this.warn(`Failed ${ot}/${n.config.appendErrorMaxRetry} times to append segment in "${l}" sourceBuffer`),ot>=n.config.appendErrorMaxRetry&&(X.fatal=!0)}n.trigger(A.ERROR,X)}};r.append(M,l,!!this.pendingTracks[l])}onBufferFlushing(e,i){let{operationQueue:n}=this,r=(s)=>({execute:this.removeExecutor.bind(this,s,i.startOffset,i.endOffset),onStart:()=>{},onComplete:()=>{this.hls.trigger(A.BUFFER_FLUSHED,{type:s})},onError:(a)=>{this.warn(`Failed to remove from ${s} SourceBuffer`,a)}});i.type?n.append(r(i.type),i.type):this.getSourceBufferTypes().forEach((s)=>{n.append(r(s),s)})}onFragParsed(e,i){let{frag:n,part:r}=i,s=[],a=r?r.elementaryStreams:n.elementaryStreams;a[Jt]?s.push("audiovideo"):(a[gt]&&s.push("audio"),a[Rt]&&s.push("video")),s.length===0&&this.warn(`Fragments must have at least one ElementaryStreamType set. type: ${n.type} level: ${n.level} sn: ${n.sn}`),this.blockBuffers(()=>{let l=self.performance.now();n.stats.buffering.end=l,r&&(r.stats.buffering.end=l);let d=r?r.stats:n.stats;this.hls.trigger(A.FRAG_BUFFERED,{frag:n,part:r,stats:d,id:n.type})},s)}onFragChanged(e,i){this.trimBuffers()}onBufferEos(e,i){this.getSourceBufferTypes().reduce((n,r)=>{let s=this.sourceBuffer[r];return!s||i.type&&i.type!==r||(s.ending=!0,s.ended||(s.ended=!0,this.log(r+" sourceBuffer now EOS"))),n&&!(s&&!s.ended)},!0)&&(this.log("Queueing mediaSource.endOfStream()"),this.blockBuffers(()=>{this.getSourceBufferTypes().forEach((r)=>{let s=this.sourceBuffer[r];s&&(s.ending=!1)});let{mediaSource:n}=this;n&&n.readyState==="open"?(this.log("Calling mediaSource.endOfStream()"),n.endOfStream()):n&&this.log("Could not call mediaSource.endOfStream(). mediaSource.readyState: "+n.readyState)}))}onLevelUpdated(e,{details:i}){i.fragments.length&&(this.details=i,this.getSourceBufferTypes().length?this.blockBuffers(this.updateMediaElementDuration.bind(this)):this.updateMediaElementDuration())}trimBuffers(){let{hls:e,details:i,media:n}=this;if(!n||i===null)return;if(!this.getSourceBufferTypes().length)return;let r=e.config,s=n.currentTime,a=i.levelTargetDuration,l=i.live&&r.liveBackBufferLength!==null?r.liveBackBufferLength:r.backBufferLength;if(j(l)&&l>0){let d=Math.max(l,a),u=Math.floor(s/a)*a-d;this.flushBackBuffer(s,a,u)}if(j(r.frontBufferFlushThreshold)&&r.frontBufferFlushThreshold>0){let d=Math.max(r.maxBufferLength,r.frontBufferFlushThreshold),u=Math.max(d,a),f=Math.floor(s/a)*a+u;this.flushFrontBuffer(s,a,f)}}flushBackBuffer(e,i,n){let{details:r,sourceBuffer:s}=this;this.getSourceBufferTypes().forEach((a)=>{let l=s[a];if(l){let d=ye.getBuffered(l);if(d.length>0&&n>d.start(0)){if(this.hls.trigger(A.BACK_BUFFER_REACHED,{bufferEnd:n}),r!=null&&r.live)this.hls.trigger(A.LIVE_BACK_BUFFER_REACHED,{bufferEnd:n});else if(l.ended&&d.end(d.length-1)-e<2*i)return void this.log(`Cannot flush ${a} back buffer while SourceBuffer is in ended state`);this.hls.trigger(A.BUFFER_FLUSHING,{startOffset:0,endOffset:n,type:a})}}})}flushFrontBuffer(e,i,n){let{sourceBuffer:r}=this;this.getSourceBufferTypes().forEach((s)=>{let a=r[s];if(a){let l=ye.getBuffered(a),d=l.length;if(d<2)return;let u=l.start(d-1),f=l.end(d-1);if(n>u||e>=u&&e<=f)return;if(a.ended&&e-f<2*i)return void this.log(`Cannot flush ${s} front buffer while SourceBuffer is in ended state`);this.hls.trigger(A.BUFFER_FLUSHING,{startOffset:u,endOffset:1/0,type:s})}})}updateMediaElementDuration(){if(!this.details||!this.media||!this.mediaSource||this.mediaSource.readyState!=="open")return;let{details:e,hls:i,media:n,mediaSource:r}=this,s=e.fragments[0].start+e.totalduration,a=n.duration,l=j(r.duration)?r.duration:0;e.live&&i.config.liveDurationInfinity?(r.duration=1/0,this.updateSeekableRange(e)):(s>l&&s>a||!j(a))&&(this.log("Updating Media Source duration to "+s.toFixed(3)),r.duration=s)}updateSeekableRange(e){let i=this.mediaSource,n=e.fragments;if(n.length&&e.live&&i!=null&&i.setLiveSeekableRange){let r=Math.max(0,n[0].start),s=Math.max(r,r+e.totalduration);this.log(`Media Source duration is set to ${i.duration}. Setting seekable range to ${r}-${s}.`),i.setLiveSeekableRange(r,s)}}checkPendingTracks(){let{bufferCodecEventsExpected:e,operationQueue:i,pendingTracks:n}=this,r=Object.keys(n).length;if(r&&(!e||r===2||("audiovideo"in n))){this.createSourceBuffers(n),this.pendingTracks={};let s=this.getSourceBufferTypes();if(s.length)this.hls.trigger(A.BUFFER_CREATED,{tracks:this.tracks}),s.forEach((a)=>{i.executeNext(a)});else{let a=new Error("could not create source buffer for media codec(s)");this.hls.trigger(A.ERROR,{type:Ft.MEDIA_ERROR,details:H.BUFFER_INCOMPATIBLE_CODECS_ERROR,fatal:!0,error:a,reason:a.message})}}}createSourceBuffers(e){let{sourceBuffer:i,mediaSource:n}=this;if(!n)throw Error("createSourceBuffers called when mediaSource was null");for(let s in e)if(!i[s]){var r;let a=e[s];if(!a)throw Error(`source buffer exists for track ${s}, however track does not`);let l=((r=a.levelCodec)==null?void 0:r.indexOf(","))===-1?a.levelCodec:a.codec;l&&s.slice(0,5)==="audio"&&(l=xn(l,this.appendSource));let d=`${a.container};codecs=${l}`;this.log(`creating sourceBuffer(${d})`);try{let u=i[s]=n.addSourceBuffer(d),f=s;this.addBufferListener(f,"updatestart",this._onSBUpdateStart),this.addBufferListener(f,"updateend",this._onSBUpdateEnd),this.addBufferListener(f,"error",this._onSBUpdateError),this.appendSource&&this.addBufferListener(f,"bufferedchange",(E,b)=>{let T=b.removedRanges;T!=null&&T.length&&this.hls.trigger(A.BUFFER_FLUSHED,{type:s})}),this.tracks[s]={buffer:u,codec:l,container:a.container,levelCodec:a.levelCodec,metadata:a.metadata,id:a.id}}catch(u){this.error("error while trying to add sourceBuffer: "+u.message),this.hls.trigger(A.ERROR,{type:Ft.MEDIA_ERROR,details:H.BUFFER_ADD_CODEC_ERROR,fatal:!1,error:u,sourceBufferName:s,mimeType:d})}}}get mediaSrc(){var e;let i=((e=this.media)==null?void 0:e.firstChild)||this.media;return i==null?void 0:i.src}_onSBUpdateStart(e){let{operationQueue:i}=this;i.current(e).onStart()}_onSBUpdateEnd(e){var i;if(((i=this.mediaSource)==null?void 0:i.readyState)==="closed")return void this.resetBuffer(e);let{operationQueue:n}=this;n.current(e).onComplete(),n.shiftAndExecuteNext(e)}_onSBUpdateError(e,i){var n;let r=new Error(`${e} SourceBuffer error. MediaSource readyState: ${(n=this.mediaSource)==null?void 0:n.readyState}`);this.error(""+r,i),this.hls.trigger(A.ERROR,{type:Ft.MEDIA_ERROR,details:H.BUFFER_APPENDING_ERROR,sourceBufferName:e,error:r,fatal:!1});let s=this.operationQueue.current(e);s&&s.onError(r)}removeExecutor(e,i,n){let{media:r,mediaSource:s,operationQueue:a,sourceBuffer:l}=this,d=l[e];if(!r||!s||!d)return this.warn(`Attempting to remove from the ${e} SourceBuffer, but it does not exist`),void a.shiftAndExecuteNext(e);let u=j(r.duration)?r.duration:1/0,f=j(s.duration)?s.duration:1/0,E=Math.max(0,i),b=Math.min(n,u,f);b>E&&(!d.ending||d.ended)?(d.ended=!1,this.log(`Removing [${E},${b}] from the ${e} SourceBuffer`),d.remove(E,b)):a.shiftAndExecuteNext(e)}appendExecutor(e,i){let n=this.sourceBuffer[i];if(n)n.ended=!1,n.appendBuffer(e);else if(!this.pendingTracks[i])throw new Error(`Attempting to append to the ${i} SourceBuffer, but it does not exist`)}blockBuffers(e,i=this.getSourceBufferTypes()){if(!i.length)return this.log("Blocking operation requested, but no SourceBuffers exist"),void Promise.resolve().then(e);let{operationQueue:n}=this,r=i.map((s)=>n.appendBlocker(s));Promise.all(r).then(()=>{e(),i.forEach((s)=>{let a=this.sourceBuffer[s];a!=null&&a.updating||n.shiftAndExecuteNext(s)})})}getSourceBufferTypes(){return Object.keys(this.sourceBuffer)}addBufferListener(e,i,n){let r=this.sourceBuffer[e];if(!r)return;let s=n.bind(this,e);this.listeners[e].push({event:i,listener:s}),r.addEventListener(i,s)}removeBufferListeners(e){let i=this.sourceBuffer[e];i&&this.listeners[e].forEach((n)=>{i.removeEventListener(n.event,n.listener)})}},capLevelController:Go,errorController:class t{constructor(e){this.hls=void 0,this.playlistError=0,this.penalizedRenditions={},this.log=void 0,this.warn=void 0,this.error=void 0,this.hls=e,this.log=C.log.bind(C,"[info]:"),this.warn=C.warn.bind(C,"[warning]:"),this.error=C.error.bind(C,"[error]:"),this.registerListeners()}registerListeners(){let e=this.hls;e.on(A.ERROR,this.onError,this),e.on(A.MANIFEST_LOADING,this.onManifestLoading,this),e.on(A.LEVEL_UPDATED,this.onLevelUpdated,this)}unregisterListeners(){let e=this.hls;e&&(e.off(A.ERROR,this.onError,this),e.off(A.ERROR,this.onErrorOut,this),e.off(A.MANIFEST_LOADING,this.onManifestLoading,this),e.off(A.LEVEL_UPDATED,this.onLevelUpdated,this))}destroy(){this.unregisterListeners(),this.hls=null,this.penalizedRenditions={}}startLoad(e){}stopLoad(){this.playlistError=0}getVariantLevelIndex(e){return(e==null?void 0:e.type)===me?e.level:this.hls.loadLevel}onManifestLoading(){this.playlistError=0,this.penalizedRenditions={}}onLevelUpdated(){this.playlistError=0}onError(e,i){var n,r;if(i.fatal)return;let s=this.hls,a=i.context;switch(i.details){case H.FRAG_LOAD_ERROR:case H.FRAG_LOAD_TIMEOUT:case H.KEY_LOAD_ERROR:case H.KEY_LOAD_TIMEOUT:return void(i.errorAction=this.getFragRetryOrSwitchAction(i));case H.FRAG_PARSING_ERROR:if((n=i.frag)!=null&&n.gap)return void(i.errorAction={action:$s,flags:$n});case H.FRAG_GAP:case H.FRAG_DECRYPT_ERROR:return i.errorAction=this.getFragRetryOrSwitchAction(i),void(i.errorAction.action=un);case H.LEVEL_EMPTY_ERROR:case H.LEVEL_PARSING_ERROR:{var l,d;let u=i.parent===me?i.level:s.loadLevel;i.details===H.LEVEL_EMPTY_ERROR&&(l=i.context)!=null&&(d=l.levelDetails)!=null&&d.live?i.errorAction=this.getPlaylistRetryOrSwitchAction(i,u):(i.levelRetry=!1,i.errorAction=this.getLevelSwitchAction(i,u))}return;case H.LEVEL_LOAD_ERROR:case H.LEVEL_LOAD_TIMEOUT:return void(typeof(a==null?void 0:a.level)=="number"&&(i.errorAction=this.getPlaylistRetryOrSwitchAction(i,a.level)));case H.AUDIO_TRACK_LOAD_ERROR:case H.AUDIO_TRACK_LOAD_TIMEOUT:case H.SUBTITLE_LOAD_ERROR:case H.SUBTITLE_TRACK_LOAD_TIMEOUT:if(a){let u=s.levels[s.loadLevel];if(u&&(a.type===yi&&u.hasAudioGroup(a.groupId)||a.type===Fi&&u.hasSubtitleGroup(a.groupId)))return i.errorAction=this.getPlaylistRetryOrSwitchAction(i,s.loadLevel),i.errorAction.action=un,void(i.errorAction.flags=Gs)}return;case H.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:{let u=s.levels[s.loadLevel],f=u==null?void 0:u.attrs["HDCP-LEVEL"];f?i.errorAction={action:un,flags:Hs,hdcpLevel:f}:this.keySystemError(i)}return;case H.BUFFER_ADD_CODEC_ERROR:case H.REMUX_ALLOC_ERROR:case H.BUFFER_APPEND_ERROR:return void(i.errorAction=this.getLevelSwitchAction(i,(r=i.level)!=null?r:s.loadLevel));case H.INTERNAL_EXCEPTION:case H.BUFFER_APPENDING_ERROR:case H.BUFFER_FULL_ERROR:case H.LEVEL_SWITCH_ERROR:case H.BUFFER_STALLED_ERROR:case H.BUFFER_SEEK_OVER_HOLE:case H.BUFFER_NUDGE_ON_STALL:return void(i.errorAction={action:$s,flags:$n})}i.type===Ft.KEY_SYSTEM_ERROR&&this.keySystemError(i)}keySystemError(e){let i=this.getVariantLevelIndex(e.frag);e.levelRetry=!1,e.errorAction=this.getLevelSwitchAction(e,i)}getPlaylistRetryOrSwitchAction(e,i){let n=La(this.hls.config.playlistLoadPolicy,e),r=this.playlistError++;if(ar(n,r,es(e),e.response))return{action:ui,flags:$n,retryConfig:n,retryCount:r};let s=this.getLevelSwitchAction(e,i);return n&&(s.retryConfig=n,s.retryCount=r),s}getFragRetryOrSwitchAction(e){let i=this.hls,n=this.getVariantLevelIndex(e.frag),r=i.levels[n],{fragLoadPolicy:s,keyLoadPolicy:a}=i.config,l=La(e.details.startsWith("key")?a:s,e),d=i.levels.reduce((f,E)=>f+E.fragmentError,0);if(r){if(e.details!==H.FRAG_GAP&&r.fragmentError++,ar(l,d,es(e),e.response))return{action:ui,flags:$n,retryConfig:l,retryCount:d}}let u=this.getLevelSwitchAction(e,n);return l&&(u.retryConfig=l,u.retryCount=d),u}getLevelSwitchAction(e,i){let n=this.hls;i==null&&(i=n.loadLevel);let r=this.hls.levels[i];if(r){var s,a;let u=e.details;r.loadError++,u===H.BUFFER_APPEND_ERROR&&r.fragmentError++;let f=-1,{levels:E,loadLevel:b,minAutoLevel:T,maxAutoLevel:_}=n;n.autoLevelEnabled||(n.loadLevel=-1);let D=(s=e.frag)==null?void 0:s.type,w=(D===ei&&u===H.FRAG_PARSING_ERROR||e.sourceBufferName==="audio"&&(u===H.BUFFER_ADD_CODEC_ERROR||u===H.BUFFER_APPEND_ERROR))&&E.some(({audioCodec:X})=>r.audioCodec!==X),x=e.sourceBufferName==="video"&&(u===H.BUFFER_ADD_CODEC_ERROR||u===H.BUFFER_APPEND_ERROR)&&E.some(({codecSet:X,audioCodec:ot})=>r.codecSet!==X&&r.audioCodec===ot),{type:M,groupId:V}=(a=e.context)!=null?a:{};for(let X=E.length;X--;){let ot=(X+b)%E.length;if(ot!==b&&ot>=T&&ot<=_&&E[ot].loadError===0){var l,d;let et=E[ot];if(u===H.FRAG_GAP&&e.frag){let vt=E[ot].details;if(vt){let St=or(e.frag,vt.fragments,e.frag.start);if(St!=null&&St.gap)continue}}else{if(M===yi&&et.hasAudioGroup(V)||M===Fi&&et.hasSubtitleGroup(V))continue;if(D===ei&&(l=r.audioGroups)!=null&&l.some((vt)=>et.hasAudioGroup(vt))||D===Bi&&(d=r.subtitleGroups)!=null&&d.some((vt)=>et.hasSubtitleGroup(vt))||w&&r.audioCodec===et.audioCodec||!w&&r.audioCodec!==et.audioCodec||x&&r.codecSet===et.codecSet)continue}f=ot;break}}if(f>-1&&n.loadLevel!==f)return e.levelRetry=!0,this.playlistError=0,{action:un,flags:$n,nextAutoLevel:f}}return{action:un,flags:Gs}}onErrorOut(e,i){var n;switch((n=i.errorAction)==null?void 0:n.action){case $s:break;case un:this.sendAlternateToPenaltyBox(i),i.errorAction.resolved||i.details===H.FRAG_GAP?/MediaSource readyState: ended/.test(i.error.message)&&(this.warn(`MediaSource ended after "${i.sourceBufferName}" sourceBuffer append error. Attempting to recover from media error.`),this.hls.recoverMediaError()):i.fatal=!0}i.fatal&&this.hls.stopLoad()}sendAlternateToPenaltyBox(e){let i=this.hls,n=e.errorAction;if(!n)return;let{flags:r,hdcpLevel:s,nextAutoLevel:a}=n;switch(r){case $n:this.switchLevel(e,a);break;case Hs:s&&(i.maxHdcpLevel=ct[ct.indexOf(s)-1],n.resolved=!0),this.warn(`Restricting playback to HDCP-LEVEL of "${i.maxHdcpLevel}" or lower`)}n.resolved||this.switchLevel(e,a)}switchLevel(e,i){i!==void 0&&e.errorAction&&(this.warn(`switching to level ${i} after ${e.details}`),this.hls.nextAutoLevel=i,e.errorAction.resolved=!0,this.hls.nextLoadLevel=this.hls.nextAutoLevel)}},fpsController:class t{constructor(e){this.hls=void 0,this.isVideoPlaybackQualityAvailable=!1,this.timer=void 0,this.media=null,this.lastTime=void 0,this.lastDroppedFrames=0,this.lastDecodedFrames=0,this.streamController=void 0,this.hls=e,this.registerListeners()}setStreamController(e){this.streamController=e}registerListeners(){this.hls.on(A.MEDIA_ATTACHING,this.onMediaAttaching,this)}unregisterListeners(){this.hls.off(A.MEDIA_ATTACHING,this.onMediaAttaching,this)}destroy(){this.timer&&clearInterval(this.timer),this.unregisterListeners(),this.isVideoPlaybackQualityAvailable=!1,this.media=null}onMediaAttaching(e,i){let n=this.hls.config;if(n.capLevelOnFPSDrop){let r=i.media instanceof self.HTMLVideoElement?i.media:null;this.media=r,r&&typeof r.getVideoPlaybackQuality=="function"&&(this.isVideoPlaybackQualityAvailable=!0),self.clearInterval(this.timer),this.timer=self.setInterval(this.checkFPSInterval.bind(this),n.fpsDroppedMonitoringPeriod)}}checkFPS(e,i,n){let r=performance.now();if(i){if(this.lastTime){let s=r-this.lastTime,a=n-this.lastDroppedFrames,l=i-this.lastDecodedFrames,d=1000*a/s,u=this.hls;if(u.trigger(A.FPS_DROP,{currentDropped:a,currentDecoded:l,totalDroppedFrames:n}),d>0&&a>u.config.fpsDroppedMonitoringThreshold*l){let f=u.currentLevel;C.warn("drop FPS ratio greater than max allowed value for currentLevel: "+f),f>0&&(u.autoLevelCapping===-1||u.autoLevelCapping>=f)&&(f-=1,u.trigger(A.FPS_DROP_LEVEL_CAPPING,{level:f,droppedLevel:u.currentLevel}),u.autoLevelCapping=f,this.streamController.nextLevelSwitch())}}this.lastTime=r,this.lastDroppedFrames=n,this.lastDecodedFrames=i}}checkFPSInterval(){let e=this.media;if(e)if(this.isVideoPlaybackQualityAvailable){let i=e.getVideoPlaybackQuality();this.checkFPS(e,i.totalVideoFrames,i.droppedVideoFrames)}else this.checkFPS(e,e.webkitDecodedFrameCount,e.webkitDroppedFrameCount)}},stretchShortVideoTrack:!1,maxAudioFramesDrift:1,forceKeyFrameOnDiscontinuity:!0,abrEwmaFastLive:3,abrEwmaSlowLive:9,abrEwmaFastVoD:3,abrEwmaSlowVoD:9,abrEwmaDefaultEstimate:500000,abrEwmaDefaultEstimateMax:5000000,abrBandWidthFactor:0.95,abrBandWidthUpFactor:0.7,abrMaxWithRealBitrate:!1,maxStarvationDelay:4,maxLoadingDelay:4,minAutoBitrate:0,emeEnabled:!1,widevineLicenseUrl:void 0,drmSystems:{},drmSystemOptions:{},requestMediaKeySystemAccessFunc:Qe,testBandwidth:!0,progressive:!1,lowLatencyMode:!0,cmcd:void 0,enableDateRangeMetadataCues:!0,enableEmsgMetadataCues:!0,enableID3MetadataCues:!0,useMediaCapabilities:!0,certLoadPolicy:{default:{maxTimeToFirstByteMs:8000,maxLoadTimeMs:20000,timeoutRetry:null,errorRetry:null}},keyLoadPolicy:{default:{maxTimeToFirstByteMs:8000,maxLoadTimeMs:20000,timeoutRetry:{maxNumRetry:1,retryDelayMs:1000,maxRetryDelayMs:20000,backoff:"linear"},errorRetry:{maxNumRetry:8,retryDelayMs:1000,maxRetryDelayMs:20000,backoff:"linear"}}},manifestLoadPolicy:{default:{maxTimeToFirstByteMs:1/0,maxLoadTimeMs:20000,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1000,maxRetryDelayMs:8000}}},playlistLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:20000,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:2,retryDelayMs:1000,maxRetryDelayMs:8000}}},fragLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:120000,timeoutRetry:{maxNumRetry:4,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:6,retryDelayMs:1000,maxRetryDelayMs:8000}}},steeringManifestLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:20000,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1000,maxRetryDelayMs:8000}}},manifestLoadingTimeOut:1e4,manifestLoadingMaxRetry:1,manifestLoadingRetryDelay:1000,manifestLoadingMaxRetryTimeout:64000,levelLoadingTimeOut:1e4,levelLoadingMaxRetry:4,levelLoadingRetryDelay:1000,levelLoadingMaxRetryTimeout:64000,fragLoadingTimeOut:20000,fragLoadingMaxRetry:6,fragLoadingRetryDelay:1000,fragLoadingMaxRetryTimeout:64000},{cueHandler:xd,enableWebVTT:!0,enableIMSC1:!0,enableCEA708Captions:!0,captionsTextTrack1Label:"English",captionsTextTrack1LanguageCode:"en",captionsTextTrack2Label:"Spanish",captionsTextTrack2LanguageCode:"es",captionsTextTrack3Label:"Unknown CC",captionsTextTrack3LanguageCode:"",captionsTextTrack4Label:"Unknown CC",captionsTextTrack4LanguageCode:"",renderTextTracksNatively:!0}),{},{subtitleStreamController:class t extends Br{constructor(e,i,n){super(e,i,n,"[subtitle-stream-controller]",Bi),this.currentTrackId=-1,this.tracksBuffered=[],this.mainDetails=null,this._registerListeners()}onHandlerDestroying(){this._unregisterListeners(),super.onHandlerDestroying(),this.mainDetails=null}_registerListeners(){let{hls:e}=this;e.on(A.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(A.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(A.MANIFEST_LOADING,this.onManifestLoading,this),e.on(A.LEVEL_LOADED,this.onLevelLoaded,this),e.on(A.ERROR,this.onError,this),e.on(A.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.on(A.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.on(A.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.on(A.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),e.on(A.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(A.FRAG_BUFFERED,this.onFragBuffered,this)}_unregisterListeners(){let{hls:e}=this;e.off(A.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(A.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(A.MANIFEST_LOADING,this.onManifestLoading,this),e.off(A.LEVEL_LOADED,this.onLevelLoaded,this),e.off(A.ERROR,this.onError,this),e.off(A.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(A.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.off(A.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.off(A.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),e.off(A.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(A.FRAG_BUFFERED,this.onFragBuffered,this)}startLoad(e){this.stopLoad(),this.state=be,this.setInterval(500),this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()}onManifestLoading(){this.mainDetails=null,this.fragmentTracker.removeAllFragments()}onMediaDetaching(){this.tracksBuffered=[],super.onMediaDetaching()}onLevelLoaded(e,i){this.mainDetails=i.details}onSubtitleFragProcessed(e,i){let{frag:n,success:r}=i;if(this.fragPrevious=n,this.state=be,!r)return;let s=this.tracksBuffered[this.currentTrackId];if(!s)return;let a,l=n.start;for(let u=0;u<s.length;u++)if(l>=s[u].start&&l<=s[u].end){a=s[u];break}let d=n.start+n.duration;a?a.end=d:(a={start:l,end:d},s.push(a)),this.fragmentTracker.fragBuffered(n),this.fragBufferedComplete(n,null)}onBufferFlushing(e,i){let{startOffset:n,endOffset:r}=i;if(n===0&&r!==Number.POSITIVE_INFINITY){let s=r-1;if(s<=0)return;i.endOffsetSubtitles=Math.max(0,s),this.tracksBuffered.forEach((a)=>{for(let l=0;l<a.length;)if(a[l].end<=s)a.shift();else{if(!(a[l].start<s))break;a[l].start=s,l++}}),this.fragmentTracker.removeFragmentsInRange(n,s,Bi)}}onFragBuffered(e,i){var n;this.loadedmetadata||i.frag.type!==me||(n=this.media)!=null&&n.buffered.length&&(this.loadedmetadata=!0)}onError(e,i){let n=i.frag;(n==null?void 0:n.type)===Bi&&(this.fragCurrent&&this.fragCurrent.abortRequests(),this.state!==Wi&&(this.state=be))}onSubtitleTracksUpdated(e,{subtitleTracks:i}){this.levels&&El(this.levels,i)?this.levels=i.map((n)=>new ie(n)):(this.tracksBuffered=[],this.levels=i.map((n)=>{let r=new ie(n);return this.tracksBuffered[r.id]=[],r}),this.fragmentTracker.removeFragmentsInRange(0,Number.POSITIVE_INFINITY,Bi),this.fragPrevious=null,this.mediaBuffer=null)}onSubtitleTrackSwitch(e,i){var n;if(this.currentTrackId=i.id,(n=this.levels)==null||!n.length||this.currentTrackId===-1)return void this.clearInterval();let r=this.levels[this.currentTrackId];r!=null&&r.details?this.mediaBuffer=this.mediaBufferTimeRanges:this.mediaBuffer=null,r&&this.setInterval(500)}onSubtitleTrackLoaded(e,i){var n;let{currentTrackId:r,levels:s}=this,{details:a,id:l}=i;if(!s)return void this.warn("Subtitle tracks were reset while loading level "+l);let d=s[r];if(l>=s.length||l!==r||!d)return;this.log(`Subtitle track ${l} loaded [${a.startSN},${a.endSN}]${a.lastPartSn?`[part-${a.lastPartSn}-${a.lastPartIndex}]`:""},duration:${a.totalduration}`),this.mediaBuffer=this.mediaBufferTimeRanges;let u=0;if(a.live||(n=d.details)!=null&&n.live){let E=this.mainDetails;if(a.deltaUpdateFailed||!E)return;let b=E.fragments[0];var f;if(d.details)u=this.alignPlaylists(a,d.details,(f=this.levelLastLoaded)==null?void 0:f.details),u===0&&b&&(u=b.start,Bn(a,u));else a.hasProgramDateTime&&E.hasProgramDateTime?(ss(a,E),u=a.fragments[0].start):b&&(u=b.start,Bn(a,u))}if(d.details=a,this.levelLastLoaded=d,this.startFragRequested||!this.mainDetails&&a.live||this.setStartPosition(this.mainDetails||a,u),this.tick(),a.live&&!this.fragCurrent&&this.media&&this.state===be)or(null,a.fragments,this.media.currentTime,0)||(this.warn("Subtitle playlist not aligned with playback"),d.details=void 0)}_handleFragmentLoadComplete(e){let{frag:i,payload:n}=e,r=i.decryptdata,s=this.hls;if(!this.fragContextChanged(i)&&n&&n.byteLength>0&&r!=null&&r.key&&r.iv&&r.method==="AES-128"){let a=performance.now();this.decrypter.decrypt(new Uint8Array(n),r.key.buffer,r.iv.buffer).catch((l)=>{throw s.trigger(A.ERROR,{type:Ft.MEDIA_ERROR,details:H.FRAG_DECRYPT_ERROR,fatal:!1,error:l,reason:l.message,frag:i}),l}).then((l)=>{let d=performance.now();s.trigger(A.FRAG_DECRYPTED,{frag:i,payload:l,stats:{tstart:a,tdecrypt:d}})}).catch((l)=>{this.warn(`${l.name}: ${l.message}`),this.state=be})}}doTick(){if(this.media){if(this.state===be){let{currentTrackId:e,levels:i}=this,n=i==null?void 0:i[e];if(!n||!i.length||!n.details)return;let{config:r}=this,s=this.getLoadPosition(),a=ye.bufferedInfo(this.tracksBuffered[this.currentTrackId]||[],s,r.maxBufferHole),{end:l,len:d}=a,u=this.getFwdBufferInfo(this.media,me),f=n.details;if(d>this.getMaxBufferLength(u==null?void 0:u.len)+f.levelTargetDuration)return;let E=f.fragments,b=E.length,T=f.edge,_=null,D=this.fragPrevious;if(l<T){let w=r.maxFragLookUpTolerance,x=l>T-w?0:w;_=or(D,E,Math.max(E[0].start,l),x),!_&&D&&D.start<E[0].start&&(_=E[0])}else _=E[b-1];if(!_)return;if(_=this.mapToInitFragWhenRequired(_),_.sn!=="initSegment"){let w=E[_.sn-f.startSN-1];w&&w.cc===_.cc&&this.fragmentTracker.getState(w)===Ri&&(_=w)}this.fragmentTracker.getState(_)===Ri&&this.loadFragment(_,n,l)}}else this.state=be}getMaxBufferLength(e){let i=super.getMaxBufferLength();return e?Math.max(i,e):i}loadFragment(e,i,n){this.fragCurrent=e,e.sn==="initSegment"?this._loadInitSegment(e,i):(this.startFragRequested=!0,super.loadFragment(e,i,n))}get mediaBufferTimeRanges(){return new Sl(this.tracksBuffered[this.currentTrackId]||[])}},subtitleTrackController:class t extends ii{constructor(e){super(e,"[subtitle-track-controller]"),this.media=null,this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0,this.queuedDefaultTrack=-1,this.asyncPollTrackChange=()=>this.pollTrackChange(0),this.useTextTrackPolling=!1,this.subtitlePollingInterval=-1,this._subtitleDisplay=!0,this.onTextTracksChanged=()=>{if(this.useTextTrackPolling||self.clearInterval(this.subtitlePollingInterval),!this.media||!this.hls.config.renderTextTracksNatively)return;let i=null,n=rr(this.media.textTracks);for(let s=0;s<n.length;s++)if(n[s].mode==="hidden")i=n[s];else if(n[s].mode==="showing"){i=n[s];break}let r=this.findTrackForTextTrack(i);this.subtitleTrack!==r&&this.setSubtitleTrack(r)},this.registerListeners()}destroy(){this.unregisterListeners(),this.tracks.length=0,this.tracksInGroup.length=0,this.currentTrack=null,this.onTextTracksChanged=this.asyncPollTrackChange=null,super.destroy()}get subtitleDisplay(){return this._subtitleDisplay}set subtitleDisplay(e){this._subtitleDisplay=e,this.trackId>-1&&this.toggleTrackModes()}registerListeners(){let{hls:e}=this;e.on(A.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(A.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(A.MANIFEST_LOADING,this.onManifestLoading,this),e.on(A.MANIFEST_PARSED,this.onManifestParsed,this),e.on(A.LEVEL_LOADING,this.onLevelLoading,this),e.on(A.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(A.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.on(A.ERROR,this.onError,this)}unregisterListeners(){let{hls:e}=this;e.off(A.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(A.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(A.MANIFEST_LOADING,this.onManifestLoading,this),e.off(A.MANIFEST_PARSED,this.onManifestParsed,this),e.off(A.LEVEL_LOADING,this.onLevelLoading,this),e.off(A.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(A.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.off(A.ERROR,this.onError,this)}onMediaAttached(e,i){this.media=i.media,this.media&&(this.queuedDefaultTrack>-1&&(this.subtitleTrack=this.queuedDefaultTrack,this.queuedDefaultTrack=-1),this.useTextTrackPolling=!(this.media.textTracks&&("onchange"in this.media.textTracks)),this.useTextTrackPolling?this.pollTrackChange(500):this.media.textTracks.addEventListener("change",this.asyncPollTrackChange))}pollTrackChange(e){self.clearInterval(this.subtitlePollingInterval),this.subtitlePollingInterval=self.setInterval(this.onTextTracksChanged,e)}onMediaDetaching(){if(!this.media)return;self.clearInterval(this.subtitlePollingInterval),this.useTextTrackPolling||this.media.textTracks.removeEventListener("change",this.asyncPollTrackChange),this.trackId>-1&&(this.queuedDefaultTrack=this.trackId),rr(this.media.textTracks).forEach((e)=>{Ui(e)}),this.subtitleTrack=-1,this.media=null}onManifestLoading(){this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0}onManifestParsed(e,i){this.tracks=i.subtitleTracks}onSubtitleTrackLoaded(e,i){let{id:n,groupId:r,details:s}=i,a=this.tracksInGroup[n];if(!a||a.groupId!==r)return void this.warn(`Subtitle track with id:${n} and group:${r} not found in active group ${a==null?void 0:a.groupId}`);let l=a.details;a.details=i.details,this.log(`Subtitle track ${n} "${a.name}" lang:${a.lang} group:${r} loaded [${s.startSN}-${s.endSN}]`),n===this.trackId&&this.playlistLoaded(n,i,l)}onLevelLoading(e,i){this.switchLevel(i.level)}onLevelSwitching(e,i){this.switchLevel(i.level)}switchLevel(e){let i=this.hls.levels[e];if(!i)return;let n=i.subtitleGroups||null,r=this.groupIds,s=this.currentTrack;if(!n||(r==null?void 0:r.length)!==(n==null?void 0:n.length)||n!=null&&n.some((a)=>(r==null?void 0:r.indexOf(a))===-1)){this.groupIds=n,this.trackId=-1,this.currentTrack=null;let a=this.tracks.filter((f)=>!n||n.indexOf(f.groupId)!==-1);if(a.length)this.selectDefaultTrack&&!a.some((f)=>f.default)&&(this.selectDefaultTrack=!1),a.forEach((f,E)=>{f.id=E});else if(!s&&!this.tracksInGroup.length)return;this.tracksInGroup=a;let l=this.hls.config.subtitlePreference;if(!s&&l){this.selectDefaultTrack=!1;let f=rn(l,a);if(f>-1)s=a[f];else{let E=rn(l,this.tracks);s=this.tracks[E]}}let d=this.findTrackId(s);d===-1&&s&&(d=this.findTrackId(null));let u={subtitleTracks:a};this.log(`Updating subtitle tracks, ${a.length} track(s) found in "${n==null?void 0:n.join(",")}" group-id`),this.hls.trigger(A.SUBTITLE_TRACKS_UPDATED,u),d!==-1&&this.trackId===-1&&this.setSubtitleTrack(d)}else this.shouldReloadPlaylist(s)&&this.setSubtitleTrack(this.trackId)}findTrackId(e){let i=this.tracksInGroup,n=this.selectDefaultTrack;for(let r=0;r<i.length;r++){let s=i[r];if((!n||s.default)&&(n||e)&&(!e||lr(s,e)))return r}if(e){for(let r=0;r<i.length;r++){let s=i[r];if(ps(e.attrs,s.attrs,["LANGUAGE","ASSOC-LANGUAGE","CHARACTERISTICS"]))return r}for(let r=0;r<i.length;r++){let s=i[r];if(ps(e.attrs,s.attrs,["LANGUAGE"]))return r}}return-1}findTrackForTextTrack(e){if(e){let i=this.tracksInGroup;for(let n=0;n<i.length;n++)if(Do(i[n],e))return n}return-1}onError(e,i){!i.fatal&&i.context&&(i.context.type!==Fi||i.context.id!==this.trackId||this.groupIds&&this.groupIds.indexOf(i.context.groupId)===-1||this.checkRetry(i))}get allSubtitleTracks(){return this.tracks}get subtitleTracks(){return this.tracksInGroup}get subtitleTrack(){return this.trackId}set subtitleTrack(e){this.selectDefaultTrack=!1,this.setSubtitleTrack(e)}setSubtitleOption(e){if(this.hls.config.subtitlePreference=e,e){let i=this.allSubtitleTracks;if(this.selectDefaultTrack=!1,i.length){let n=this.currentTrack;if(n&&lr(e,n))return n;let r=rn(e,this.tracksInGroup);if(r>-1){let s=this.tracksInGroup[r];return this.setSubtitleTrack(r),s}if(n)return null;{let s=rn(e,i);if(s>-1)return i[s]}}}return null}loadPlaylist(e){super.loadPlaylist();let i=this.currentTrack;if(this.shouldLoadPlaylist(i)&&i){let{id:n,groupId:r,url:s}=i;if(e)try{s=e.addDirectives(s)}catch(a){this.warn("Could not construct new URL with HLS Delivery Directives: "+a)}this.log("Loading subtitle playlist for id "+n),this.hls.trigger(A.SUBTITLE_TRACK_LOADING,{url:s,id:n,groupId:r,deliveryDirectives:e||null})}}toggleTrackModes(){let{media:e}=this;if(!e)return;let i=rr(e.textTracks),n=this.currentTrack,r;if(n&&(r=i.filter((s)=>Do(n,s))[0],r||this.warn(`Unable to find subtitle TextTrack with name "${n.name}" and language "${n.lang}"`)),[].slice.call(i).forEach((s)=>{s.mode!=="disabled"&&s!==r&&(s.mode="disabled")}),r){let s=this.subtitleDisplay?"showing":"hidden";r.mode!==s&&(r.mode=s)}}setSubtitleTrack(e){let i=this.tracksInGroup;if(!this.media)return void(this.queuedDefaultTrack=e);if(e<-1||e>=i.length||!j(e))return void this.warn("Invalid subtitle track id: "+e);this.clearTimer(),this.selectDefaultTrack=!1;let n=this.currentTrack,r=i[e]||null;if(this.trackId=e,this.currentTrack=r,this.toggleTrackModes(),!r)return void this.hls.trigger(A.SUBTITLE_TRACK_SWITCH,{id:e});let s=!!r.details&&!r.details.live;if(e===this.trackId&&r===n&&s)return;this.log("Switching to subtitle-track "+e+(r?` "${r.name}" lang:${r.lang} group:${r.groupId}`:""));let{id:a,groupId:l="",name:d,type:u,url:f}=r;this.hls.trigger(A.SUBTITLE_TRACK_SWITCH,{id:a,groupId:l,name:d,type:u,url:f});let E=this.switchParams(r.url,n==null?void 0:n.details,r.details);this.loadPlaylist(E)}},timelineController:class t{constructor(e){this.hls=void 0,this.media=null,this.config=void 0,this.enabled=!0,this.Cues=void 0,this.textTracks=[],this.tracks=[],this.initPTS=[],this.unparsedVttFrags=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.cea608Parser1=void 0,this.cea608Parser2=void 0,this.lastCc=-1,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs={ccOffset:0,presentationOffset:0,0:{start:0,prevCC:-1,new:!0}},this.captionsProperties=void 0,this.hls=e,this.config=e.config,this.Cues=e.config.cueHandler,this.captionsProperties={textTrack1:{label:this.config.captionsTextTrack1Label,languageCode:this.config.captionsTextTrack1LanguageCode},textTrack2:{label:this.config.captionsTextTrack2Label,languageCode:this.config.captionsTextTrack2LanguageCode},textTrack3:{label:this.config.captionsTextTrack3Label,languageCode:this.config.captionsTextTrack3LanguageCode},textTrack4:{label:this.config.captionsTextTrack4Label,languageCode:this.config.captionsTextTrack4LanguageCode}},e.on(A.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(A.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(A.MANIFEST_LOADING,this.onManifestLoading,this),e.on(A.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(A.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.on(A.FRAG_LOADING,this.onFragLoading,this),e.on(A.FRAG_LOADED,this.onFragLoaded,this),e.on(A.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.on(A.FRAG_DECRYPTED,this.onFragDecrypted,this),e.on(A.INIT_PTS_FOUND,this.onInitPtsFound,this),e.on(A.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.on(A.BUFFER_FLUSHING,this.onBufferFlushing,this)}destroy(){let{hls:e}=this;e.off(A.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(A.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(A.MANIFEST_LOADING,this.onManifestLoading,this),e.off(A.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(A.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(A.FRAG_LOADING,this.onFragLoading,this),e.off(A.FRAG_LOADED,this.onFragLoaded,this),e.off(A.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.off(A.FRAG_DECRYPTED,this.onFragDecrypted,this),e.off(A.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(A.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.off(A.BUFFER_FLUSHING,this.onBufferFlushing,this),this.hls=this.config=null,this.cea608Parser1=this.cea608Parser2=void 0}initCea608Parsers(){if(this.config.enableCEA708Captions&&(!this.cea608Parser1||!this.cea608Parser2)){let e=new aa(this,"textTrack1"),i=new aa(this,"textTrack2"),n=new aa(this,"textTrack3"),r=new aa(this,"textTrack4");this.cea608Parser1=new Oo(1,e,i),this.cea608Parser2=new Oo(3,n,r)}}addCues(e,i,n,r,s){let a=!1;for(let E=s.length;E--;){let b=s[E],T=(l=b[0],d=b[1],u=i,f=n,Math.min(d,f)-Math.max(l,u));if(T>=0&&(b[0]=Math.min(b[0],i),b[1]=Math.max(b[1],n),a=!0,T/(n-i)>0.5))return}var l,d,u,f;if(a||s.push([i,n]),this.config.renderTextTracksNatively){let E=this.captionsTracks[e];this.Cues.newCue(E,i,n,r)}else{let E=this.Cues.newCue(null,i,n,r);this.hls.trigger(A.CUES_PARSED,{type:"captions",cues:E,track:e})}}onInitPtsFound(e,{frag:i,id:n,initPTS:r,timescale:s}){let{unparsedVttFrags:a}=this;n==="main"&&(this.initPTS[i.cc]={baseTime:r,timescale:s}),a.length&&(this.unparsedVttFrags=[],a.forEach((l)=>{this.onFragLoaded(A.FRAG_LOADED,l)}))}getExistingTrack(e,i){let{media:n}=this;if(n)for(let r=0;r<n.textTracks.length;r++){let s=n.textTracks[r];if(Hl(s,{name:e,lang:i,attrs:{}}))return s}return null}createCaptionsTrack(e){this.config.renderTextTracksNatively?this.createNativeTrack(e):this.createNonNativeTrack(e)}createNativeTrack(e){if(this.captionsTracks[e])return;let{captionsProperties:i,captionsTracks:n,media:r}=this,{label:s,languageCode:a}=i[e],l=this.getExistingTrack(s,a);if(l)n[e]=l,Ui(n[e]),ir(n[e],r);else{let d=this.createTextTrack("captions",s,a);d&&(d[e]=!0,n[e]=d)}}createNonNativeTrack(e){if(this.nonNativeCaptionsTracks[e])return;let i=this.captionsProperties[e];if(!i)return;let n={_id:e,label:i.label,kind:"captions",default:!!i.media&&!!i.media.default,closedCaptions:i.media};this.nonNativeCaptionsTracks[e]=n,this.hls.trigger(A.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:[n]})}createTextTrack(e,i,n){let r=this.media;if(r)return r.addTextTrack(e,i,n)}onMediaAttaching(e,i){this.media=i.media,this._cleanTracks()}onMediaDetaching(){let{captionsTracks:e}=this;Object.keys(e).forEach((i)=>{Ui(e[i]),delete e[i]}),this.nonNativeCaptionsTracks={}}onManifestLoading(){this.lastCc=-1,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs={ccOffset:0,presentationOffset:0,0:{start:0,prevCC:-1,new:!0}},this._cleanTracks(),this.tracks=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.textTracks=[],this.unparsedVttFrags=[],this.initPTS=[],this.cea608Parser1&&this.cea608Parser2&&(this.cea608Parser1.reset(),this.cea608Parser2.reset())}_cleanTracks(){let{media:e}=this;if(!e)return;let i=e.textTracks;if(i)for(let n=0;n<i.length;n++)Ui(i[n])}onSubtitleTracksUpdated(e,i){let n=i.subtitleTracks||[],r=n.some((s)=>s.textCodec==="stpp.ttml.im1t");if(this.config.enableWebVTT||r&&this.config.enableIMSC1){if(El(this.tracks,n))return void(this.tracks=n);if(this.textTracks=[],this.tracks=n,this.config.renderTextTracksNatively){let s=this.media,a=s?rr(s.textTracks):null;if(this.tracks.forEach((l,d)=>{let u;if(a){let f=null;for(let E=0;E<a.length;E++)if(a[E]&&Hl(a[E],l)){f=a[E],a[E]=null;break}f&&(u=f)}if(u)Ui(u);else{let f=Gl(l);u=this.createTextTrack(f,l.name,l.lang),u&&(u.mode="disabled")}u&&this.textTracks.push(u)}),a!=null&&a.length){let l=a.filter((d)=>d!==null).map((d)=>d.label);l.length&&C.warn(`Media element contains unused subtitle tracks: ${l.join(", ")}. Replace media element for each source to clear TextTracks and captions menu.`)}}else if(this.tracks.length){let s=this.tracks.map((a)=>({label:a.name,kind:a.type.toLowerCase(),default:a.default,subtitleTrack:a}));this.hls.trigger(A.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:s})}}}onManifestLoaded(e,i){this.config.enableCEA708Captions&&i.captions&&i.captions.forEach((n)=>{let r=/(?:CC|SERVICE)([1-4])/.exec(n.instreamId);if(!r)return;let s="textTrack"+r[1],a=this.captionsProperties[s];a&&(a.label=n.name,n.lang&&(a.languageCode=n.lang),a.media=n)})}closedCaptionsForLevel(e){let i=this.hls.levels[e.level];return i==null?void 0:i.attrs["CLOSED-CAPTIONS"]}onFragLoading(e,i){this.initCea608Parsers();let{cea608Parser1:n,cea608Parser2:r,lastCc:s,lastSn:a,lastPartIndex:l}=this;if(this.enabled&&n&&r&&i.frag.type===me){var d,u;let{cc:f,sn:E}=i.frag,b=(d=i==null||(u=i.part)==null?void 0:u.index)!=null?d:-1;E===a+1||E===a&&b===l+1||f===s||(n.reset(),r.reset()),this.lastCc=f,this.lastSn=E,this.lastPartIndex=b}}onFragLoaded(e,i){let{frag:n,payload:r}=i;if(n.type===Bi)if(r.byteLength){let s=n.decryptdata,a="stats"in i;if(s==null||!s.encrypted||a){let l=this.tracks[n.level],d=this.vttCCs;d[n.cc]||(d[n.cc]={start:n.start,prevCC:this.prevCC,new:!0},this.prevCC=n.cc),l&&l.textCodec==="stpp.ttml.im1t"?this._parseIMSC1(n,r):this._parseVTTs(i)}}else this.hls.trigger(A.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:n,error:new Error("Empty subtitle payload")})}_parseIMSC1(e,i){let n=this.hls;Bl(i,this.initPTS[e.cc],(r)=>{this._appendCues(r,e.level),n.trigger(A.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:e})},(r)=>{C.log("Failed to parse IMSC1: "+r),n.trigger(A.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:e,error:r})})}_parseVTTs(e){var i;let{frag:n,payload:r}=e,{initPTS:s,unparsedVttFrags:a}=this,l=s.length-1;if(!s[n.cc]&&l===-1)return void a.push(e);let d=this.hls;vd((i=n.initSegment)!=null&&i.data?li(n.initSegment.data,new Uint8Array(r)):r,this.initPTS[n.cc],this.vttCCs,n.cc,n.start,(u)=>{this._appendCues(u,n.level),d.trigger(A.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:n})},(u)=>{let f=u.message==="Missing initPTS for VTT MPEGTS";f?a.push(e):this._fallbackToIMSC1(n,r),C.log("Failed to parse VTT cue: "+u),f&&l>n.cc||d.trigger(A.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:n,error:u})})}_fallbackToIMSC1(e,i){let n=this.tracks[e.level];n.textCodec||Bl(i,this.initPTS[e.cc],()=>{n.textCodec="stpp.ttml.im1t",this._parseIMSC1(e,i)},()=>{n.textCodec="wvtt"})}_appendCues(e,i){let n=this.hls;if(this.config.renderTextTracksNatively){let r=this.textTracks[i];if(!r||r.mode==="disabled")return;e.forEach((s)=>Dr(r,s))}else{let r=this.tracks[i];if(!r)return;let s=r.default?"default":"subtitles"+i;n.trigger(A.CUES_PARSED,{type:"subtitles",cues:e,track:s})}}onFragDecrypted(e,i){let{frag:n}=i;n.type===Bi&&this.onFragLoaded(A.FRAG_LOADED,i)}onSubtitleTracksCleared(){this.tracks=[],this.captionsTracks={}}onFragParsingUserdata(e,i){this.initCea608Parsers();let{cea608Parser1:n,cea608Parser2:r}=this;if(!this.enabled||!n||!r)return;let{frag:s,samples:a}=i;if(s.type!==me||this.closedCaptionsForLevel(s)!=="NONE")for(let l=0;l<a.length;l++){let d=a[l].bytes;if(d){let u=this.extractCea608Data(d);n.addData(a[l].pts,u[0]),r.addData(a[l].pts,u[1])}}}onBufferFlushing(e,{startOffset:i,endOffset:n,endOffsetSubtitles:r,type:s}){let{media:a}=this;if(a&&!(a.currentTime<n)){if(!s||s==="video"){let{captionsTracks:l}=this;Object.keys(l).forEach((d)=>nr(l[d],i,n))}if(this.config.renderTextTracksNatively&&i===0&&r!==void 0){let{textTracks:l}=this;Object.keys(l).forEach((d)=>nr(l[d],i,r))}}}extractCea608Data(e){let i=[[],[]],n=31&e[0],r=2;for(let s=0;s<n;s++){let a=e[r++],l=127&e[r++],d=127&e[r++];if(l===0&&d===0)continue;if((4&a)!=0){let u=3&a;u!==0&&u!==1||(i[u].push(l),i[u].push(d))}}return i}},audioStreamController:class t extends Br{constructor(e,i,n){super(e,i,n,"[audio-stream-controller]",ei),this.videoBuffer=null,this.videoTrackCC=-1,this.waitingVideoCC=-1,this.bufferedTrack=null,this.switchingTrack=null,this.trackId=-1,this.waitingData=null,this.mainDetails=null,this.flushing=!1,this.bufferFlushed=!1,this.cachedTrackLoadedData=null,this._registerListeners()}onHandlerDestroying(){this._unregisterListeners(),super.onHandlerDestroying(),this.mainDetails=null,this.bufferedTrack=null,this.switchingTrack=null}_registerListeners(){let{hls:e}=this;e.on(A.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(A.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(A.MANIFEST_LOADING,this.onManifestLoading,this),e.on(A.LEVEL_LOADED,this.onLevelLoaded,this),e.on(A.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),e.on(A.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.on(A.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.on(A.ERROR,this.onError,this),e.on(A.BUFFER_RESET,this.onBufferReset,this),e.on(A.BUFFER_CREATED,this.onBufferCreated,this),e.on(A.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(A.BUFFER_FLUSHED,this.onBufferFlushed,this),e.on(A.INIT_PTS_FOUND,this.onInitPtsFound,this),e.on(A.FRAG_BUFFERED,this.onFragBuffered,this)}_unregisterListeners(){let{hls:e}=this;e.off(A.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(A.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(A.MANIFEST_LOADING,this.onManifestLoading,this),e.off(A.LEVEL_LOADED,this.onLevelLoaded,this),e.off(A.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),e.off(A.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.off(A.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.off(A.ERROR,this.onError,this),e.off(A.BUFFER_RESET,this.onBufferReset,this),e.off(A.BUFFER_CREATED,this.onBufferCreated,this),e.off(A.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(A.BUFFER_FLUSHED,this.onBufferFlushed,this),e.off(A.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(A.FRAG_BUFFERED,this.onFragBuffered,this)}onInitPtsFound(e,{frag:i,id:n,initPTS:r,timescale:s}){if(n==="main"){let a=i.cc;this.initPTS[i.cc]={baseTime:r,timescale:s},this.log(`InitPTS for cc: ${a} found from main: ${r}`),this.videoTrackCC=a,this.state===an&&this.tick()}}startLoad(e){if(!this.levels)return this.startPosition=e,void(this.state=Wi);let i=this.lastCurrentTime;this.stopLoad(),this.setInterval(100),i>0&&e===-1?(this.log("Override startPosition with lastCurrentTime @"+i.toFixed(3)),e=i,this.state=be):(this.loadedmetadata=!1,this.state=fr),this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()}doTick(){switch(this.state){case be:this.doTickIdle();break;case fr:{var e;let{levels:n,trackId:r}=this,s=n==null||(e=n[r])==null?void 0:e.details;if(s){if(this.waitForCdnTuneIn(s))break;this.state=an}break}case hr:{var i;let n=performance.now(),r=this.retryDate;if(!r||n>=r||(i=this.media)!=null&&i.seeking){let{levels:s,trackId:a}=this;this.log("RetryDate reached, switch back to IDLE state"),this.resetStartWhenNotLoaded((s==null?void 0:s[a])||null),this.state=be}break}case an:{let n=this.waitingData;if(n){let{frag:r,part:s,cache:a,complete:l}=n;if(this.initPTS[r.cc]!==void 0){this.waitingData=null,this.waitingVideoCC=-1,this.state=ur;let d={frag:r,part:s,payload:a.flush(),networkDetails:null};this._handleFragmentLoadProgress(d),l&&super._handleFragmentLoadComplete(d)}else if(this.videoTrackCC!==this.waitingVideoCC)this.log(`Waiting fragment cc (${r.cc}) cancelled because video is at cc ${this.videoTrackCC}`),this.clearWaitingFragment();else{let d=this.getLoadPosition(),u=ye.bufferInfo(this.mediaBuffer,d,this.config.maxBufferHole);Un(u.end,this.config.maxFragLookUpTolerance,r)<0&&(this.log(`Waiting fragment cc (${r.cc}) @ ${r.start} cancelled because another fragment at ${u.end} is needed`),this.clearWaitingFragment())}}else this.state=be}}this.onTickEnd()}clearWaitingFragment(){let e=this.waitingData;e&&(this.fragmentTracker.removeFragment(e.frag),this.waitingData=null,this.waitingVideoCC=-1,this.state=be)}resetLoadingState(){this.clearWaitingFragment(),super.resetLoadingState()}onTickEnd(){let{media:e}=this;e!=null&&e.readyState&&(this.lastCurrentTime=e.currentTime)}doTickIdle(){let{hls:e,levels:i,media:n,trackId:r}=this,s=e.config;if(!n&&(this.startFragRequested||!s.startFragPrefetch)||i==null||!i[r])return;let a=i[r],l=a.details;if(!l||l.live&&this.levelLastLoaded!==a||this.waitForCdnTuneIn(l))return void(this.state=fr);let d=this.mediaBuffer?this.mediaBuffer:this.media;this.bufferFlushed&&d&&(this.bufferFlushed=!1,this.afterBufferFlushed(d,gt,ei));let u=this.getFwdBufferInfo(d,ei);if(u===null)return;let{bufferedTrack:f,switchingTrack:E}=this;if(!E&&this._streamEnded(u,l))return e.trigger(A.BUFFER_EOS,{type:"audio"}),void(this.state=Fr);let b=this.getFwdBufferInfo(this.videoBuffer?this.videoBuffer:this.media,me),T=u.len,_=this.getMaxBufferLength(b==null?void 0:b.len),D=l.fragments,w=D[0].start,x=this.flushing?this.getLoadPosition():u.end;if(E&&n){let ot=this.getLoadPosition();f&&!ps(E.attrs,f.attrs)&&(x=ot),l.PTSKnown&&ot<w&&(u.end>w||u.nextStart)&&(this.log("Alt audio track ahead of main track, seek to start of alt audio track"),n.currentTime=w+0.05)}if(T>=_&&!E&&x<D[D.length-1].start)return;let M=this.getNextFragment(x,l),V=!1;if(M&&this.isLoopLoading(M,x)&&(V=!!M.gap,M=this.getNextFragmentLoopLoading(M,l,u,me,_)),!M)return void(this.bufferFlushed=!0);let X=b&&M.start>b.end+l.targetduration;if(X||(b==null||!b.len)&&u.len){let ot=this.getAppendedFrag(M.start,me);if(ot===null)return;if(V||(V=!!ot.gap||!!X&&b.len===0),X&&!V||V&&u.nextStart&&u.nextStart<ot.end)return}this.loadFragment(M,a,x)}getMaxBufferLength(e){let i=super.getMaxBufferLength();return e?Math.min(Math.max(i,e),this.config.maxMaxBufferLength):i}onMediaDetaching(){this.videoBuffer=null,this.bufferFlushed=this.flushing=!1,super.onMediaDetaching()}onAudioTracksUpdated(e,{audioTracks:i}){this.resetTransmuxer(),this.levels=i.map((n)=>new ie(n))}onAudioTrackSwitching(e,i){let n=!!i.url;this.trackId=i.id;let{fragCurrent:r}=this;r&&(r.abortRequests(),this.removeUnbufferedFrags(r.start)),this.resetLoadingState(),n?this.setInterval(100):this.resetTransmuxer(),n?(this.switchingTrack=i,this.state=be,this.flushAudioIfNeeded(i)):(this.switchingTrack=null,this.bufferedTrack=i,this.state=Wi),this.tick()}onManifestLoading(){this.fragmentTracker.removeAllFragments(),this.startPosition=this.lastCurrentTime=0,this.bufferFlushed=this.flushing=!1,this.levels=this.mainDetails=this.waitingData=this.bufferedTrack=this.cachedTrackLoadedData=this.switchingTrack=null,this.startFragRequested=!1,this.trackId=this.videoTrackCC=this.waitingVideoCC=-1}onLevelLoaded(e,i){this.mainDetails=i.details,this.cachedTrackLoadedData!==null&&(this.hls.trigger(A.AUDIO_TRACK_LOADED,this.cachedTrackLoadedData),this.cachedTrackLoadedData=null)}onAudioTrackLoaded(e,i){var n;if(this.mainDetails==null)return void(this.cachedTrackLoadedData=i);let{levels:r}=this,{details:s,id:a}=i;if(!r)return void this.warn("Audio tracks were reset while loading level "+a);this.log(`Audio track ${a} loaded [${s.startSN},${s.endSN}]${s.lastPartSn?`[part-${s.lastPartSn}-${s.lastPartIndex}]`:""},duration:${s.totalduration}`);let l=r[a],d=0;if(s.live||(n=l.details)!=null&&n.live){this.checkLiveUpdate(s);let f=this.mainDetails;if(s.deltaUpdateFailed||!f)return;var u;if(!l.details&&s.hasProgramDateTime&&f.hasProgramDateTime)ss(s,f),d=s.fragments[0].start;else d=this.alignPlaylists(s,l.details,(u=this.levelLastLoaded)==null?void 0:u.details)}l.details=s,this.levelLastLoaded=l,this.startFragRequested||!this.mainDetails&&s.live||this.setStartPosition(this.mainDetails||s,d),this.state!==fr||this.waitForCdnTuneIn(s)||(this.state=be),this.tick()}_handleFragmentLoadProgress(e){var i;let{frag:n,part:r,payload:s}=e,{config:a,trackId:l,levels:d}=this;if(!d)return void this.warn(`Audio tracks were reset while fragment load was in progress. Fragment ${n.sn} of level ${n.level} will not be buffered`);let u=d[l];if(!u)return void this.warn("Audio track is undefined on fragment load progress");let f=u.details;if(!f)return this.warn("Audio track details undefined on fragment load progress"),void this.removeUnbufferedFrags(n.start);let E=a.defaultAudioCodec||u.audioCodec||"mp4a.40.2",b=this.transmuxer;b||(b=this.transmuxer=new Ro(this.hls,ei,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)));let T=this.initPTS[n.cc],_=(i=n.initSegment)==null?void 0:i.data;if(T!==void 0){let w=r?r.index:-1,x=w!==-1,M=new dr(n.level,n.sn,n.stats.chunkCount,s.byteLength,w,x);b.push(s,_,E,"",n,r,f.totalduration,!1,M,T)}else{this.log(`Unknown video PTS for cc ${n.cc}, waiting for video PTS before demuxing audio frag ${n.sn} of [${f.startSN} ,${f.endSN}],track ${l}`);let{cache:D}=this.waitingData=this.waitingData||{frag:n,part:r,cache:new os,complete:!1};D.push(new Uint8Array(s)),this.waitingVideoCC=this.videoTrackCC,this.state=an}}_handleFragmentLoadComplete(e){this.waitingData?this.waitingData.complete=!0:super._handleFragmentLoadComplete(e)}onBufferReset(){this.mediaBuffer=this.videoBuffer=null,this.loadedmetadata=!1}onBufferCreated(e,i){let n=i.tracks.audio;n&&(this.mediaBuffer=n.buffer||null),i.tracks.video&&(this.videoBuffer=i.tracks.video.buffer||null)}onFragBuffered(e,i){let{frag:n,part:r}=i;if(n.type===ei)if(this.fragContextChanged(n))this.warn(`Fragment ${n.sn}${r?" p: "+r.index:""} of level ${n.level} finished buffering, but was aborted. state: ${this.state}, audioSwitch: ${this.switchingTrack?this.switchingTrack.name:"false"}`);else{if(n.sn!=="initSegment"){this.fragPrevious=n;let s=this.switchingTrack;s&&(this.bufferedTrack=s,this.switchingTrack=null,this.hls.trigger(A.AUDIO_TRACK_SWITCHED,L({},s)))}this.fragBufferedComplete(n,r)}else if(!this.loadedmetadata&&n.type===me){let s=this.videoBuffer||this.media;if(s)ye.getBuffered(s).length&&(this.loadedmetadata=!0)}}onError(e,i){var n;if(i.fatal)this.state=mr;else switch(i.details){case H.FRAG_GAP:case H.FRAG_PARSING_ERROR:case H.FRAG_DECRYPT_ERROR:case H.FRAG_LOAD_ERROR:case H.FRAG_LOAD_TIMEOUT:case H.KEY_LOAD_ERROR:case H.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(ei,i);break;case H.AUDIO_TRACK_LOAD_ERROR:case H.AUDIO_TRACK_LOAD_TIMEOUT:case H.LEVEL_PARSING_ERROR:i.levelRetry||this.state!==fr||((n=i.context)==null?void 0:n.type)!==yi||(this.state=be);break;case H.BUFFER_APPEND_ERROR:case H.BUFFER_FULL_ERROR:if(!i.parent||i.parent!=="audio")return;if(i.details===H.BUFFER_APPEND_ERROR)return void this.resetLoadingState();this.reduceLengthAndFlushBuffer(i)&&(this.bufferedTrack=null,super.flushMainBuffer(0,Number.POSITIVE_INFINITY,"audio"));break;case H.INTERNAL_EXCEPTION:this.recoverWorkerError(i)}}onBufferFlushing(e,{type:i}){i!==Rt&&(this.flushing=!0)}onBufferFlushed(e,{type:i}){if(i!==Rt){this.flushing=!1,this.bufferFlushed=!0,this.state===Fr&&(this.state=be);let n=this.mediaBuffer||this.media;n&&(this.afterBufferFlushed(n,i,ei),this.tick())}}_handleTransmuxComplete(e){var i;let n="audio",{hls:r}=this,{remuxResult:s,chunkMeta:a}=e,l=this.getCurrentContext(a);if(!l)return void this.resetWhenMissingContext(a);let{frag:d,part:u,level:f}=l,{details:E}=f,{audio:b,text:T,id3:_,initSegment:D}=s;if(!this.fragContextChanged(d)&&E){if(this.state=hn,this.switchingTrack&&b&&this.completeAudioSwitch(this.switchingTrack),D!=null&&D.tracks){let w=d.initSegment||d;this._bufferInitSegment(f,D.tracks,w,a),r.trigger(A.FRAG_PARSING_INIT_SEGMENT,{frag:w,id:"audio",tracks:D.tracks})}if(b){let{startPTS:w,endPTS:x,startDTS:M,endDTS:V}=b;u&&(u.elementaryStreams[gt]={startPTS:w,endPTS:x,startDTS:M,endDTS:V}),d.setElementaryStreamInfo(gt,w,x,M,V),this.bufferFragmentData(b,d,u,a)}if(_!=null&&(i=_.samples)!=null&&i.length){let w=z({id:"audio",frag:d,details:E},_);r.trigger(A.FRAG_PARSING_METADATA,w)}if(T){let w=z({id:"audio",frag:d,details:E},T);r.trigger(A.FRAG_PARSING_USERDATA,w)}}else this.fragmentTracker.removeFragment(d)}_bufferInitSegment(e,i,n,r){if(this.state!==hn)return;i.video&&delete i.video;let s=i.audio;if(!s)return;s.id="audio";let a=e.audioCodec;this.log(`Init audio buffer, container:${s.container}, codecs[level/parsed]=[${a}/${s.codec}]`),a&&a.split(",").length===1&&(s.levelCodec=a),this.hls.trigger(A.BUFFER_CODECS,i);let l=s.initSegment;if(l!=null&&l.byteLength){let d={type:"audio",frag:n,part:null,chunkMeta:r,parent:n.type,data:l};this.hls.trigger(A.BUFFER_APPENDING,d)}this.tickImmediate()}loadFragment(e,i,n){let r=this.fragmentTracker.getState(e);var s;if(this.fragCurrent=e,this.switchingTrack||r===Ri||r===Hn)if(e.sn==="initSegment")this._loadInitSegment(e,i);else if((s=i.details)!=null&&s.live&&!this.initPTS[e.cc]){this.log(`Waiting for video PTS in continuity counter ${e.cc} of live stream before loading audio fragment ${e.sn} of level ${this.trackId}`),this.state=an;let a=this.mainDetails;a&&a.fragments[0].start!==i.details.fragments[0].start&&ss(i.details,a)}else this.startFragRequested=!0,super.loadFragment(e,i,n);else this.clearTrackerIfNeeded(e)}flushAudioIfNeeded(e){let{media:i,bufferedTrack:n}=this,r=n==null?void 0:n.attrs,s=e.attrs;i&&r&&(r.CHANNELS!==s.CHANNELS||n.name!==e.name||n.lang!==e.lang)&&(this.log("Switching audio track : flushing all audio"),super.flushMainBuffer(0,Number.POSITIVE_INFINITY,"audio"),this.bufferedTrack=null)}completeAudioSwitch(e){let{hls:i}=this;this.flushAudioIfNeeded(e),this.bufferedTrack=e,this.switchingTrack=null,i.trigger(A.AUDIO_TRACK_SWITCHED,L({},e))}},audioTrackController:class t extends ii{constructor(e){super(e,"[audio-track-controller]"),this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0,this.registerListeners()}registerListeners(){let{hls:e}=this;e.on(A.MANIFEST_LOADING,this.onManifestLoading,this),e.on(A.MANIFEST_PARSED,this.onManifestParsed,this),e.on(A.LEVEL_LOADING,this.onLevelLoading,this),e.on(A.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(A.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.on(A.ERROR,this.onError,this)}unregisterListeners(){let{hls:e}=this;e.off(A.MANIFEST_LOADING,this.onManifestLoading,this),e.off(A.MANIFEST_PARSED,this.onManifestParsed,this),e.off(A.LEVEL_LOADING,this.onLevelLoading,this),e.off(A.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(A.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.off(A.ERROR,this.onError,this)}destroy(){this.unregisterListeners(),this.tracks.length=0,this.tracksInGroup.length=0,this.currentTrack=null,super.destroy()}onManifestLoading(){this.tracks=[],this.tracksInGroup=[],this.groupIds=null,this.currentTrack=null,this.trackId=-1,this.selectDefaultTrack=!0}onManifestParsed(e,i){this.tracks=i.audioTracks||[]}onAudioTrackLoaded(e,i){let{id:n,groupId:r,details:s}=i,a=this.tracksInGroup[n];if(!a||a.groupId!==r)return void this.warn(`Audio track with id:${n} and group:${r} not found in active group ${a==null?void 0:a.groupId}`);let l=a.details;a.details=i.details,this.log(`Audio track ${n} "${a.name}" lang:${a.lang} group:${r} loaded [${s.startSN}-${s.endSN}]`),n===this.trackId&&this.playlistLoaded(n,i,l)}onLevelLoading(e,i){this.switchLevel(i.level)}onLevelSwitching(e,i){this.switchLevel(i.level)}switchLevel(e){let i=this.hls.levels[e];if(!i)return;let n=i.audioGroups||null,r=this.groupIds,s=this.currentTrack;if(!n||(r==null?void 0:r.length)!==(n==null?void 0:n.length)||n!=null&&n.some((l)=>(r==null?void 0:r.indexOf(l))===-1)){this.groupIds=n,this.trackId=-1,this.currentTrack=null;let l=this.tracks.filter((b)=>!n||n.indexOf(b.groupId)!==-1);if(l.length)this.selectDefaultTrack&&!l.some((b)=>b.default)&&(this.selectDefaultTrack=!1),l.forEach((b,T)=>{b.id=T});else if(!s&&!this.tracksInGroup.length)return;this.tracksInGroup=l;let d=this.hls.config.audioPreference;if(!s&&d){let b=rn(d,l,cr);if(b>-1)s=l[b];else{let T=rn(d,this.tracks);s=this.tracks[T]}}let u=this.findTrackId(s);u===-1&&s&&(u=this.findTrackId(null));let f={audioTracks:l};this.log(`Updating audio tracks, ${l.length} track(s) found in group(s): ${n==null?void 0:n.join(",")}`),this.hls.trigger(A.AUDIO_TRACKS_UPDATED,f);let E=this.trackId;if(u!==-1&&E===-1)this.setAudioTrack(u);else if(l.length&&E===-1){var a;let b=new Error(`No audio track selected for current audio group-ID(s): ${(a=this.groupIds)==null?void 0:a.join(",")} track count: ${l.length}`);this.warn(b.message),this.hls.trigger(A.ERROR,{type:Ft.MEDIA_ERROR,details:H.AUDIO_TRACK_LOAD_ERROR,fatal:!0,error:b})}}else this.shouldReloadPlaylist(s)&&this.setAudioTrack(this.trackId)}onError(e,i){!i.fatal&&i.context&&(i.context.type!==yi||i.context.id!==this.trackId||this.groupIds&&this.groupIds.indexOf(i.context.groupId)===-1||(this.requestScheduled=-1,this.checkRetry(i)))}get allAudioTracks(){return this.tracks}get audioTracks(){return this.tracksInGroup}get audioTrack(){return this.trackId}set audioTrack(e){this.selectDefaultTrack=!1,this.setAudioTrack(e)}setAudioOption(e){let i=this.hls;if(i.config.audioPreference=e,e){let n=this.allAudioTracks;if(this.selectDefaultTrack=!1,n.length){let r=this.currentTrack;if(r&&lr(e,r,cr))return r;let s=rn(e,this.tracksInGroup,cr);if(s>-1){let a=this.tracksInGroup[s];return this.setAudioTrack(s),a}if(r){let a=i.loadLevel;a===-1&&(a=i.firstAutoLevel);let l=function(d,u,f,E,b){let T=u[E],_=u.reduce((V,X,ot)=>{let et=X.uri;return(V[et]||(V[et]=[])).push(ot),V},{})[T.uri];_.length>1&&(E=Math.max.apply(Math,_));let{videoRange:D,frameRate:w}=T,x=T.codecSet.substring(0,4),M=ka(u,E,(V)=>{if(V.videoRange!==D||V.frameRate!==w||V.codecSet.substring(0,4)!==x)return!1;let X=V.audioGroups,ot=f.filter((et)=>!X||X.indexOf(et.groupId)!==-1);return rn(d,ot,b)>-1});return M>-1?M:ka(u,E,(V)=>{let X=V.audioGroups,ot=f.filter((et)=>!X||X.indexOf(et.groupId)!==-1);return rn(d,ot,b)>-1})}(e,i.levels,n,a,cr);if(l===-1)return null;i.nextLoadLevel=l}if(e.channels||e.audioCodec){let a=rn(e,n);if(a>-1)return n[a]}}}return null}setAudioTrack(e){let i=this.tracksInGroup;if(e<0||e>=i.length)return void this.warn("Invalid audio track id: "+e);this.clearTimer(),this.selectDefaultTrack=!1;let n=this.currentTrack,r=i[e],s=r.details&&!r.details.live;if(e===this.trackId&&r===n&&s)return;if(this.log(`Switching to audio-track ${e} "${r.name}" lang:${r.lang} group:${r.groupId} channels:${r.channels}`),this.trackId=e,this.currentTrack=r,this.hls.trigger(A.AUDIO_TRACK_SWITCHING,L({},r)),s)return;let a=this.switchParams(r.url,n==null?void 0:n.details,r.details);this.loadPlaylist(a)}findTrackId(e){let i=this.tracksInGroup;for(let n=0;n<i.length;n++){let r=i[n];if((!this.selectDefaultTrack||r.default)&&(!e||lr(e,r,cr)))return n}if(e){let{name:n,lang:r,assocLang:s,characteristics:a,audioCodec:l,channels:d}=e;for(let u=0;u<i.length;u++)if(lr({name:n,lang:r,assocLang:s,characteristics:a,audioCodec:l,channels:d},i[u],cr))return u;for(let u=0;u<i.length;u++){let f=i[u];if(ps(e.attrs,f.attrs,["LANGUAGE","ASSOC-LANGUAGE","CHARACTERISTICS"]))return u}for(let u=0;u<i.length;u++){let f=i[u];if(ps(e.attrs,f.attrs,["LANGUAGE"]))return u}}return-1}loadPlaylist(e){let i=this.currentTrack;if(this.shouldLoadPlaylist(i)&&i){super.loadPlaylist();let{id:n,groupId:r,url:s}=i;if(e)try{s=e.addDirectives(s)}catch(a){this.warn("Could not construct new URL with HLS Delivery Directives: "+a)}this.log(`loading audio-track playlist ${n} "${i.name}" lang:${i.lang} group:${r}`),this.clearTimer(),this.hls.trigger(A.AUDIO_TRACK_LOADING,{url:s,id:n,groupId:r,deliveryDirectives:e||null})}}},emeController:ys,cmcdController:class t{constructor(e){this.hls=void 0,this.config=void 0,this.media=void 0,this.sid=void 0,this.cid=void 0,this.useHeaders=!1,this.includeKeys=void 0,this.initialized=!1,this.starved=!1,this.buffering=!0,this.audioBuffer=void 0,this.videoBuffer=void 0,this.onWaiting=()=>{this.initialized&&(this.starved=!0),this.buffering=!0},this.onPlaying=()=>{this.initialized||(this.initialized=!0),this.buffering=!1},this.applyPlaylistData=(r)=>{try{this.apply(r,{ot:Di.MANIFEST,su:!this.initialized})}catch(s){C.warn("Could not generate manifest CMCD data.",s)}},this.applyFragmentData=(r)=>{try{let s=r.frag,a=this.hls.levels[s.level],l=this.getObjectType(s),d={d:1000*s.duration,ot:l};l!==Di.VIDEO&&l!==Di.AUDIO&&l!=Di.MUXED||(d.br=a.bitrate/1000,d.tb=this.getTopBandwidth(l)/1000,d.bl=this.getBufferLength(l)),this.apply(r,d)}catch(s){C.warn("Could not generate segment CMCD data.",s)}},this.hls=e;let i=this.config=e.config,{cmcd:n}=i;n!=null&&(i.pLoader=this.createPlaylistLoader(),i.fLoader=this.createFragmentLoader(),this.sid=n.sessionId||function(){try{return crypto.randomUUID()}catch(r){try{let s=URL.createObjectURL(new Blob),a=s.toString();return URL.revokeObjectURL(s),a.slice(a.lastIndexOf("/")+1)}catch(s){let a=new Date().getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(l)=>{let d=(a+16*Math.random())%16|0;return a=Math.floor(a/16),(l=="x"?d:3&d|8).toString(16)})}}}(),this.cid=n.contentId,this.useHeaders=n.useHeaders===!0,this.includeKeys=n.includeKeys,this.registerListeners())}registerListeners(){let e=this.hls;e.on(A.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(A.MEDIA_DETACHED,this.onMediaDetached,this),e.on(A.BUFFER_CREATED,this.onBufferCreated,this)}unregisterListeners(){let e=this.hls;e.off(A.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(A.MEDIA_DETACHED,this.onMediaDetached,this),e.off(A.BUFFER_CREATED,this.onBufferCreated,this)}destroy(){this.unregisterListeners(),this.onMediaDetached(),this.hls=this.config=this.audioBuffer=this.videoBuffer=null,this.onWaiting=this.onPlaying=null}onMediaAttached(e,i){this.media=i.media,this.media.addEventListener("waiting",this.onWaiting),this.media.addEventListener("playing",this.onPlaying)}onMediaDetached(){this.media&&(this.media.removeEventListener("waiting",this.onWaiting),this.media.removeEventListener("playing",this.onPlaying),this.media=null)}onBufferCreated(e,i){var n,r;this.audioBuffer=(n=i.tracks.audio)==null?void 0:n.buffer,this.videoBuffer=(r=i.tracks.video)==null?void 0:r.buffer}createData(){var e;return{v:1,sf:Ho.HLS,sid:this.sid,cid:this.cid,pr:(e=this.media)==null?void 0:e.playbackRate,mtp:this.hls.bandwidthEstimate/1000}}apply(e,i={}){z(i,this.createData());let n=i.ot===Di.INIT||i.ot===Di.VIDEO||i.ot===Di.MUXED;this.starved&&n&&(i.bs=!0,i.su=!0,this.starved=!1),i.su==null&&(i.su=this.buffering);let{includeKeys:r}=this;r&&(i=Object.keys(i).reduce((s,a)=>(r.includes(a)&&(s[a]=i[a]),s),{})),this.useHeaders?(e.headers||(e.headers={}),kd(e.headers,i)):e.url=Rd(e.url,i)}getObjectType(e){let{type:i}=e;return i==="subtitle"?Di.TIMED_TEXT:e.sn==="initSegment"?Di.INIT:i==="audio"?Di.AUDIO:i==="main"?this.hls.audioTracks.length?Di.VIDEO:Di.MUXED:void 0}getTopBandwidth(e){let i,n=0,r=this.hls;if(e===Di.AUDIO)i=r.audioTracks;else{let s=r.maxAutoLevel,a=s>-1?s+1:r.levels.length;i=r.levels.slice(0,a)}for(let s of i)s.bitrate>n&&(n=s.bitrate);return n>0?n:NaN}getBufferLength(e){let i=this.hls.media,n=e===Di.AUDIO?this.audioBuffer:this.videoBuffer;if(!n||!i)return NaN;return 1000*ye.bufferInfo(n,i.currentTime,this.config.maxBufferHole).len}createPlaylistLoader(){let{pLoader:e}=this.config,i=this.applyPlaylistData,n=e||this.config.loader;return class r{constructor(s){this.loader=void 0,this.loader=new n(s)}get stats(){return this.loader.stats}get context(){return this.loader.context}destroy(){this.loader.destroy()}abort(){this.loader.abort()}load(s,a,l){i(s),this.loader.load(s,a,l)}}}createFragmentLoader(){let{fLoader:e}=this.config,i=this.applyFragmentData,n=e||this.config.loader;return class r{constructor(s){this.loader=void 0,this.loader=new n(s)}get stats(){return this.loader.stats}get context(){return this.loader.context}destroy(){this.loader.destroy()}abort(){this.loader.abort()}load(s,a,l){i(s),this.loader.load(s,a,l)}}}},contentSteeringController:class t{constructor(e){this.hls=void 0,this.log=void 0,this.loader=null,this.uri=null,this.pathwayId=".",this.pathwayPriority=null,this.timeToLoad=300,this.reloadTimer=-1,this.updated=0,this.started=!1,this.enabled=!0,this.levels=null,this.audioTracks=null,this.subtitleTracks=null,this.penalizedPathways={},this.hls=e,this.log=C.log.bind(C,"[content-steering]:"),this.registerListeners()}registerListeners(){let e=this.hls;e.on(A.MANIFEST_LOADING,this.onManifestLoading,this),e.on(A.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(A.MANIFEST_PARSED,this.onManifestParsed,this),e.on(A.ERROR,this.onError,this)}unregisterListeners(){let e=this.hls;e&&(e.off(A.MANIFEST_LOADING,this.onManifestLoading,this),e.off(A.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(A.MANIFEST_PARSED,this.onManifestParsed,this),e.off(A.ERROR,this.onError,this))}startLoad(){if(this.started=!0,this.clearTimeout(),this.enabled&&this.uri){if(this.updated){let e=1000*this.timeToLoad-(performance.now()-this.updated);if(e>0)return void this.scheduleRefresh(this.uri,e)}this.loadSteeringManifest(this.uri)}}stopLoad(){this.started=!1,this.loader&&(this.loader.destroy(),this.loader=null),this.clearTimeout()}clearTimeout(){this.reloadTimer!==-1&&(self.clearTimeout(this.reloadTimer),this.reloadTimer=-1)}destroy(){this.unregisterListeners(),this.stopLoad(),this.hls=null,this.levels=this.audioTracks=this.subtitleTracks=null}removeLevel(e){let i=this.levels;i&&(this.levels=i.filter((n)=>n!==e))}onManifestLoading(){this.stopLoad(),this.enabled=!0,this.timeToLoad=300,this.updated=0,this.uri=null,this.pathwayId=".",this.levels=this.audioTracks=this.subtitleTracks=null}onManifestLoaded(e,i){let{contentSteering:n}=i;n!==null&&(this.pathwayId=n.pathwayId,this.uri=n.uri,this.started&&this.startLoad())}onManifestParsed(e,i){this.audioTracks=i.audioTracks,this.subtitleTracks=i.subtitleTracks}onError(e,i){let{errorAction:n}=i;if((n==null?void 0:n.action)===un&&n.flags===Gs){let r=this.levels,s=this.pathwayPriority,a=this.pathwayId;if(i.context){let{groupId:l,pathwayId:d,type:u}=i.context;l&&r?a=this.getPathwayForGroupId(l,u,a):d&&(a=d)}a in this.penalizedPathways||(this.penalizedPathways[a]=performance.now()),!s&&r&&(s=r.reduce((l,d)=>(l.indexOf(d.pathwayId)===-1&&l.push(d.pathwayId),l),[])),s&&s.length>1&&(this.updatePathwayPriority(s),n.resolved=this.pathwayId!==a),n.resolved||C.warn(`Could not resolve ${i.details} ("${i.error.message}") with content-steering for Pathway: ${a} levels: ${r?r.length:r} priorities: ${JSON.stringify(s)} penalized: ${JSON.stringify(this.penalizedPathways)}`)}}filterParsedLevels(e){this.levels=e;let i=this.getLevelsForPathway(this.pathwayId);if(i.length===0){let n=e[0].pathwayId;this.log(`No levels found in Pathway ${this.pathwayId}. Setting initial Pathway to "${n}"`),i=this.getLevelsForPathway(n),this.pathwayId=n}return i.length!==e.length?(this.log(`Found ${i.length}/${e.length} levels in Pathway "${this.pathwayId}"`),i):e}getLevelsForPathway(e){return this.levels===null?[]:this.levels.filter((i)=>e===i.pathwayId)}updatePathwayPriority(e){let i;this.pathwayPriority=e;let n=this.penalizedPathways,r=performance.now();Object.keys(n).forEach((s)=>{r-n[s]>300000&&delete n[s]});for(let s=0;s<e.length;s++){let a=e[s];if(a in n)continue;if(a===this.pathwayId)return;let l=this.hls.nextLoadLevel,d=this.hls.levels[l];if(i=this.getLevelsForPathway(a),i.length>0){this.log(`Setting Pathway to "${a}"`),this.pathwayId=a,Bs(i),this.hls.trigger(A.LEVELS_UPDATED,{levels:i});let u=this.hls.levels[l];d&&u&&this.levels&&(u.attrs["STABLE-VARIANT-ID"]!==d.attrs["STABLE-VARIANT-ID"]&&u.bitrate!==d.bitrate&&this.log(`Unstable Pathways change from bitrate ${d.bitrate} to ${u.bitrate}`),this.hls.nextLoadLevel=l);break}}}getPathwayForGroupId(e,i,n){let r=this.getLevelsForPathway(n).concat(this.levels||[]);for(let s=0;s<r.length;s++)if(i===yi&&r[s].hasAudioGroup(e)||i===Fi&&r[s].hasSubtitleGroup(e))return r[s].pathwayId;return n}clonePathways(e){let i=this.levels;if(!i)return;let n={},r={};e.forEach((s)=>{let{ID:a,"BASE-ID":l,"URI-REPLACEMENT":d}=s;if(i.some((f)=>f.pathwayId===a))return;let u=this.getLevelsForPathway(l).map((f)=>{let E=new J(f.attrs);E["PATHWAY-ID"]=a;let b=E.AUDIO&&`${E.AUDIO}_clone_${a}`,T=E.SUBTITLES&&`${E.SUBTITLES}_clone_${a}`;b&&(n[E.AUDIO]=b,E.AUDIO=b),T&&(r[E.SUBTITLES]=T,E.SUBTITLES=T);let _=zl(f.uri,E["STABLE-VARIANT-ID"],"PER-VARIANT-URIS",d),D=new ie({attrs:E,audioCodec:f.audioCodec,bitrate:f.bitrate,height:f.height,name:f.name,url:_,videoCodec:f.videoCodec,width:f.width});if(f.audioGroups)for(let w=1;w<f.audioGroups.length;w++)D.addGroupId("audio",`${f.audioGroups[w]}_clone_${a}`);if(f.subtitleGroups)for(let w=1;w<f.subtitleGroups.length;w++)D.addGroupId("text",`${f.subtitleGroups[w]}_clone_${a}`);return D});i.push(...u),Yl(this.audioTracks,n,d,a),Yl(this.subtitleTracks,r,d,a)})}loadSteeringManifest(e){let i=this.hls.config,n=i.loader,r;this.loader&&this.loader.destroy(),this.loader=new n(i);try{r=new self.URL(e)}catch(f){return this.enabled=!1,void this.log("Failed to parse Steering Manifest URI: "+e)}if(r.protocol!=="data:"){let f=0|(this.hls.bandwidthEstimate||i.abrEwmaDefaultEstimate);r.searchParams.set("_HLS_pathway",this.pathwayId),r.searchParams.set("_HLS_throughput",""+f)}let s={responseType:"json",url:r.href},a=i.steeringManifestLoadPolicy.default,l=a.errorRetry||a.timeoutRetry||{},d={loadPolicy:a,timeout:a.maxLoadTimeMs,maxRetry:l.maxNumRetry||0,retryDelay:l.retryDelayMs||0,maxRetryDelay:l.maxRetryDelayMs||0},u={onSuccess:(f,E,b,T)=>{this.log(`Loaded steering manifest: "${r}"`);let _=f.data;if(_.VERSION!==1)return void this.log(`Steering VERSION ${_.VERSION} not supported!`);this.updated=performance.now(),this.timeToLoad=_.TTL;let{"RELOAD-URI":D,"PATHWAY-CLONES":w,"PATHWAY-PRIORITY":x}=_;if(D)try{this.uri=new self.URL(D,r).href}catch(V){return this.enabled=!1,void this.log("Failed to parse Steering Manifest RELOAD-URI: "+D)}this.scheduleRefresh(this.uri||b.url),w&&this.clonePathways(w);let M={steeringManifest:_,url:r.toString()};this.hls.trigger(A.STEERING_MANIFEST_LOADED,M),x&&this.updatePathwayPriority(x)},onError:(f,E,b,T)=>{if(this.log(`Error loading steering manifest: ${f.code} ${f.text} (${E.url})`),this.stopLoad(),f.code===410)return this.enabled=!1,void this.log(`Steering manifest ${E.url} no longer available`);let _=1000*this.timeToLoad;if(f.code!==429)this.scheduleRefresh(this.uri||E.url,_);else{let D=this.loader;if(typeof(D==null?void 0:D.getResponseHeader)=="function"){let w=D.getResponseHeader("Retry-After");w&&(_=1000*parseFloat(w))}this.log(`Steering manifest ${E.url} rate limited`)}},onTimeout:(f,E,b)=>{this.log(`Timeout loading steering manifest (${E.url})`),this.scheduleRefresh(this.uri||E.url)}};this.log("Requesting steering manifest: "+r),this.loader.load(s,d,u)}scheduleRefresh(e,i=1000*this.timeToLoad){this.clearTimeout(),this.reloadTimer=self.setTimeout(()=>{var n;let r=(n=this.hls)==null?void 0:n.media;!r||r.ended?this.scheduleRefresh(e,1000*this.timeToLoad):this.loadSteeringManifest(e)},i)}}});function zo(t){return t&&typeof t=="object"?Array.isArray(t)?t.map(zo):Object.keys(t).reduce((e,i)=>(e[i]=zo(t[i]),e),{}):t}function Nd(t){let e=t.loader;if(e!==Yo&&e!==qo)C.log("[config]: Custom loader detected, cannot enable progressive streaming"),t.progressive=!1;else(function(){if(self.fetch&&self.AbortController&&self.ReadableStream&&self.Request)try{return new self.ReadableStream({}),!0}catch(i){}return!1})()&&(t.loader=Yo,t.progressive=!0,t.enableSoftwareAES=!0,C.log("[config]: Progressive streaming enabled, using FetchLoader"))}let Xo;class Ql extends ii{constructor(t,e){super(t,"[level-controller]"),this._levels=[],this._firstLevel=-1,this._maxAutoLevel=-1,this._startLevel=void 0,this.currentLevel=null,this.currentLevelIndex=-1,this.manualLevelIndex=-1,this.steering=void 0,this.onParsedComplete=void 0,this.steering=e,this._registerListeners()}_registerListeners(){let{hls:t}=this;t.on(A.MANIFEST_LOADING,this.onManifestLoading,this),t.on(A.MANIFEST_LOADED,this.onManifestLoaded,this),t.on(A.LEVEL_LOADED,this.onLevelLoaded,this),t.on(A.LEVELS_UPDATED,this.onLevelsUpdated,this),t.on(A.FRAG_BUFFERED,this.onFragBuffered,this),t.on(A.ERROR,this.onError,this)}_unregisterListeners(){let{hls:t}=this;t.off(A.MANIFEST_LOADING,this.onManifestLoading,this),t.off(A.MANIFEST_LOADED,this.onManifestLoaded,this),t.off(A.LEVEL_LOADED,this.onLevelLoaded,this),t.off(A.LEVELS_UPDATED,this.onLevelsUpdated,this),t.off(A.FRAG_BUFFERED,this.onFragBuffered,this),t.off(A.ERROR,this.onError,this)}destroy(){this._unregisterListeners(),this.steering=null,this.resetLevels(),super.destroy()}stopLoad(){this._levels.forEach((t)=>{t.loadError=0,t.fragmentError=0}),super.stopLoad()}resetLevels(){this._startLevel=void 0,this.manualLevelIndex=-1,this.currentLevelIndex=-1,this.currentLevel=null,this._levels=[],this._maxAutoLevel=-1}onManifestLoading(t,e){this.resetLevels()}onManifestLoaded(t,e){let i=this.hls.config.preferManagedMediaSource,n=[],r={},s={},a=!1,l=!1,d=!1;e.levels.forEach((u)=>{var f,E;let b=u.attrs,{audioCodec:T,videoCodec:_}=u;((f=T)==null?void 0:f.indexOf("mp4a.40.34"))!==-1&&(Xo||(Xo=/chrome|firefox/i.test(navigator.userAgent)),Xo&&(u.audioCodec=T=void 0)),T&&(u.audioCodec=T=xn(T,i)),((E=_)==null?void 0:E.indexOf("avc1"))===0&&(_=u.videoCodec=function(nt){let it=nt.split(".");if(it.length>2){let jt=it.shift()+".";return jt+=parseInt(it.shift()).toString(16),jt+=("000"+parseInt(it.shift()).toString(16)).slice(-4),jt}return nt}(_));let{width:D,height:w,unknownCodecs:x}=u;if(a||(a=!(!D||!w)),l||(l=!!_),d||(d=!!T),x!=null&&x.length||T&&!Jn(T,"audio",i)||_&&!Jn(_,"video",i))return;let{CODECS:M,"FRAME-RATE":V,"HDCP-LEVEL":X,"PATHWAY-ID":ot,RESOLUTION:et,"VIDEO-RANGE":vt}=b,St=`${(ot||".")+"-"}${u.bitrate}-${et}-${V}-${M}-${vt}-${X}`;if(r[St])if(r[St].uri===u.url||u.attrs["PATHWAY-ID"])r[St].addGroupId("audio",b.AUDIO),r[St].addGroupId("text",b.SUBTITLES);else{let nt=s[St]+=1;u.attrs["PATHWAY-ID"]=new Array(nt+1).join(".");let it=new ie(u);r[St]=it,n.push(it)}else{let nt=new ie(u);r[St]=nt,s[St]=1,n.push(nt)}}),this.filterAndSortMediaOptions(n,e,a,l,d)}filterAndSortMediaOptions(t,e,i,n,r){let s=[],a=[],l=t;if((i||n)&&r&&(l=l.filter(({videoCodec:T,videoRange:_,width:D,height:w})=>{return(!!T||!(!D||!w))&&(!!(x=_)&&It.indexOf(x)>-1);var x})),l.length===0)return void Promise.resolve().then(()=>{if(this.hls){e.levels.length&&this.warn("One or more CODECS in variant not supported: "+JSON.stringify(e.levels[0].attrs));let T=new Error("no level with compatible codecs found in manifest");this.hls.trigger(A.ERROR,{type:Ft.MEDIA_ERROR,details:H.MANIFEST_INCOMPATIBLE_CODECS_ERROR,fatal:!0,url:e.url,error:T,reason:T.message})}});if(e.audioTracks){let{preferManagedMediaSource:T}=this.hls.config;s=e.audioTracks.filter((_)=>!_.audioCodec||Jn(_.audioCodec,"audio",T)),Zl(s)}e.subtitles&&(a=e.subtitles,Zl(a));let d=l.slice(0);l.sort((T,_)=>{if(T.attrs["HDCP-LEVEL"]!==_.attrs["HDCP-LEVEL"])return(T.attrs["HDCP-LEVEL"]||"")>(_.attrs["HDCP-LEVEL"]||"")?1:-1;if(i&&T.height!==_.height)return T.height-_.height;if(T.frameRate!==_.frameRate)return T.frameRate-_.frameRate;if(T.videoRange!==_.videoRange)return It.indexOf(T.videoRange)-It.indexOf(_.videoRange);if(T.videoCodec!==_.videoCodec){let D=Ue(T.videoCodec),w=Ue(_.videoCodec);if(D!==w)return w-D}if(T.uri===_.uri&&T.codecSet!==_.codecSet){let D=On(T.codecSet),w=On(_.codecSet);if(D!==w)return w-D}return T.averageBitrate!==_.averageBitrate?T.averageBitrate-_.averageBitrate:0});let u=d[0];if(this.steering&&(l=this.steering.filterParsedLevels(l),l.length!==d.length)){for(let T=0;T<d.length;T++)if(d[T].pathwayId===l[0].pathwayId){u=d[T];break}}this._levels=l;for(let T=0;T<l.length;T++)if(l[T]===u){var f;this._firstLevel=T;let _=u.bitrate,D=this.hls.bandwidthEstimate;if(this.log(`manifest loaded, ${l.length} level(s) found, first bitrate: ${_}`),((f=this.hls.userConfig)==null?void 0:f.abrEwmaDefaultEstimate)===void 0){let w=Math.min(_,this.hls.config.abrEwmaDefaultEstimateMax);w>D&&D===Jl.abrEwmaDefaultEstimate&&(this.hls.bandwidthEstimate=w)}break}let E=r&&!n,b={levels:l,audioTracks:s,subtitleTracks:a,sessionData:e.sessionData,sessionKeys:e.sessionKeys,firstLevel:this._firstLevel,stats:e.stats,audio:r,video:n,altAudio:!E&&s.some((T)=>!!T.url)};this.hls.trigger(A.MANIFEST_PARSED,b),(this.hls.config.autoStartLoad||this.hls.forceStartLoad)&&this.hls.startLoad(this.hls.config.startPosition)}get levels(){return this._levels.length===0?null:this._levels}get level(){return this.currentLevelIndex}set level(t){let e=this._levels;if(e.length===0)return;if(t<0||t>=e.length){let u=new Error("invalid level idx"),f=t<0;if(this.hls.trigger(A.ERROR,{type:Ft.OTHER_ERROR,details:H.LEVEL_SWITCH_ERROR,level:t,fatal:f,error:u,reason:u.message}),f)return;t=Math.min(t,e.length-1)}let i=this.currentLevelIndex,n=this.currentLevel,r=n?n.attrs["PATHWAY-ID"]:void 0,s=e[t],a=s.attrs["PATHWAY-ID"];if(this.currentLevelIndex=t,this.currentLevel=s,i===t&&s.details&&n&&r===a)return;this.log(`Switching to level ${t} (${s.height?s.height+"p ":""}${s.videoRange?s.videoRange+" ":""}${s.codecSet?s.codecSet+" ":""}@${s.bitrate})${a?" with Pathway "+a:""} from level ${i}${r?" with Pathway "+r:""}`);let l={level:t,attrs:s.attrs,details:s.details,bitrate:s.bitrate,averageBitrate:s.averageBitrate,maxBitrate:s.maxBitrate,realBitrate:s.realBitrate,width:s.width,height:s.height,codecSet:s.codecSet,audioCodec:s.audioCodec,videoCodec:s.videoCodec,audioGroups:s.audioGroups,subtitleGroups:s.subtitleGroups,loaded:s.loaded,loadError:s.loadError,fragmentError:s.fragmentError,name:s.name,id:s.id,uri:s.uri,url:s.url,urlId:0,audioGroupIds:s.audioGroupIds,textGroupIds:s.textGroupIds};this.hls.trigger(A.LEVEL_SWITCHING,l);let d=s.details;if(!d||d.live){let u=this.switchParams(s.uri,n==null?void 0:n.details,d);this.loadPlaylist(u)}}get manualLevel(){return this.manualLevelIndex}set manualLevel(t){this.manualLevelIndex=t,this._startLevel===void 0&&(this._startLevel=t),t!==-1&&(this.level=t)}get firstLevel(){return this._firstLevel}set firstLevel(t){this._firstLevel=t}get startLevel(){if(this._startLevel===void 0){let t=this.hls.config.startLevel;return t!==void 0?t:this.hls.firstAutoLevel}return this._startLevel}set startLevel(t){this._startLevel=t}onError(t,e){!e.fatal&&e.context&&e.context.type===Vi&&e.context.level===this.level&&this.checkRetry(e)}onFragBuffered(t,{frag:e}){if(e!==void 0&&e.type===me){let i=e.elementaryStreams;if(!Object.keys(i).some((r)=>!!i[r]))return;let n=this._levels[e.level];n!=null&&n.loadError&&(this.log(`Resetting level error count of ${n.loadError} on frag buffered`),n.loadError=0)}}onLevelLoaded(t,e){var i;let{level:n,details:r}=e,s=this._levels[n];var a;if(!s)return this.warn("Invalid level index "+n),void((a=e.deliveryDirectives)!=null&&a.skip&&(r.deltaUpdateFailed=!0));n===this.currentLevelIndex?(s.fragmentError===0&&(s.loadError=0),this.playlistLoaded(n,e,s.details)):(i=e.deliveryDirectives)!=null&&i.skip&&(r.deltaUpdateFailed=!0)}loadPlaylist(t){super.loadPlaylist();let e=this.currentLevelIndex,i=this.currentLevel;if(i&&this.shouldLoadPlaylist(i)){let n=i.uri;if(t)try{n=t.addDirectives(n)}catch(s){this.warn("Could not construct new URL with HLS Delivery Directives: "+s)}let r=i.attrs["PATHWAY-ID"];this.log(`Loading level index ${e}${(t==null?void 0:t.msn)!==void 0?" at sn "+t.msn+" part "+t.part:""} with${r?" Pathway "+r:""} ${n}`),this.clearTimer(),this.hls.trigger(A.LEVEL_LOADING,{url:n,level:e,pathwayId:i.attrs["PATHWAY-ID"],id:0,deliveryDirectives:t||null})}}get nextLoadLevel(){return this.manualLevelIndex!==-1?this.manualLevelIndex:this.hls.nextAutoLevel}set nextLoadLevel(t){this.level=t,this.manualLevelIndex===-1&&(this.hls.nextAutoLevel=t)}removeLevel(t){var e;let i=this._levels.filter((n,r)=>r!==t||(this.steering&&this.steering.removeLevel(n),n===this.currentLevel&&(this.currentLevel=null,this.currentLevelIndex=-1,n.details&&n.details.fragments.forEach((s)=>s.level=-1)),!1));Bs(i),this._levels=i,this.currentLevelIndex>-1&&(e=this.currentLevel)!=null&&e.details&&(this.currentLevelIndex=this.currentLevel.details.fragments[0].level),this.hls.trigger(A.LEVELS_UPDATED,{levels:i})}onLevelsUpdated(t,{levels:e}){this._levels=e}checkMaxAutoUpdated(){let{autoLevelCapping:t,maxAutoLevel:e,maxHdcpLevel:i}=this.hls;this._maxAutoLevel!==e&&(this._maxAutoLevel=e,this.hls.trigger(A.MAX_AUTO_LEVEL_UPDATED,{autoLevelCapping:t,levels:this.levels,maxAutoLevel:e,minAutoLevel:this.hls.minAutoLevel,maxHdcpLevel:i}))}}function Zl(t){let e={};t.forEach((i)=>{let n=i.groupId||"";i.id=e[n]=e[n]||0,e[n]++})}class tc{constructor(t){this.config=void 0,this.keyUriToKeyInfo={},this.emeController=null,this.config=t}abort(t){for(let i in this.keyUriToKeyInfo){let n=this.keyUriToKeyInfo[i].loader;if(n){var e;if(t&&t!==((e=n.context)==null?void 0:e.frag.type))return;n.abort()}}}detach(){for(let t in this.keyUriToKeyInfo){let e=this.keyUriToKeyInfo[t];(e.mediaKeySessionContext||e.decryptdata.isCommonEncryption)&&delete this.keyUriToKeyInfo[t]}}destroy(){this.detach();for(let t in this.keyUriToKeyInfo){let e=this.keyUriToKeyInfo[t].loader;e&&e.destroy()}this.keyUriToKeyInfo={}}createKeyLoadError(t,e=H.KEY_LOAD_ERROR,i,n,r){return new sn({type:Ft.NETWORK_ERROR,details:e,fatal:!1,frag:t,response:r,error:i,networkDetails:n})}loadClear(t,e){if(this.emeController&&this.config.emeEnabled){let{sn:i,cc:n}=t;for(let r=0;r<e.length;r++){let s=e[r];if(n<=s.cc&&(i==="initSegment"||s.sn==="initSegment"||i<s.sn)){this.emeController.selectKeySystemFormat(s).then((a)=>{s.setKeyFormat(a)});break}}}}load(t){return!t.decryptdata&&t.encrypted&&this.emeController?this.emeController.selectKeySystemFormat(t).then((e)=>this.loadInternal(t,e)):this.loadInternal(t)}loadInternal(t,e){var i,n;e&&t.setKeyFormat(e);let r=t.decryptdata;if(!r){let d=new Error(e?"Expected frag.decryptdata to be defined after setting format "+e:"Missing decryption data on fragment in onKeyLoading");return Promise.reject(this.createKeyLoadError(t,H.KEY_LOAD_ERROR,d))}let s=r.uri;if(!s)return Promise.reject(this.createKeyLoadError(t,H.KEY_LOAD_ERROR,new Error(`Invalid key URI: "${s}"`)));let a=this.keyUriToKeyInfo[s];if((i=a)!=null&&i.decryptdata.key)return r.key=a.decryptdata.key,Promise.resolve({frag:t,keyInfo:a});var l;if((n=a)!=null&&n.keyLoadPromise)switch((l=a.mediaKeySessionContext)==null?void 0:l.keyStatus){case void 0:case"status-pending":case"usable":case"usable-in-future":return a.keyLoadPromise.then((d)=>(r.key=d.keyInfo.decryptdata.key,{frag:t,keyInfo:a}))}switch(a=this.keyUriToKeyInfo[s]={decryptdata:r,keyLoadPromise:null,loader:null,mediaKeySessionContext:null},r.method){case"ISO-23001-7":case"SAMPLE-AES":case"SAMPLE-AES-CENC":case"SAMPLE-AES-CTR":return r.keyFormat==="identity"?this.loadKeyHTTP(a,t):this.loadKeyEME(a,t);case"AES-128":return this.loadKeyHTTP(a,t);default:return Promise.reject(this.createKeyLoadError(t,H.KEY_LOAD_ERROR,new Error(`Key supplied with unsupported METHOD: "${r.method}"`)))}}loadKeyEME(t,e){let i={frag:e,keyInfo:t};if(this.emeController&&this.config.emeEnabled){let n=this.emeController.loadKey(i);if(n)return(t.keyLoadPromise=n.then((r)=>(t.mediaKeySessionContext=r,i))).catch((r)=>{throw t.keyLoadPromise=null,r})}return Promise.resolve(i)}loadKeyHTTP(t,e){let i=this.config,n=new i.loader(i);return e.keyLoader=t.loader=n,t.keyLoadPromise=new Promise((r,s)=>{let a={keyInfo:t,frag:e,responseType:"arraybuffer",url:t.decryptdata.uri},l=i.keyLoadPolicy.default,d={loadPolicy:l,timeout:l.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},u={onSuccess:(f,E,b,T)=>{let{frag:_,keyInfo:D,url:w}=b;if(!_.decryptdata||D!==this.keyUriToKeyInfo[w])return s(this.createKeyLoadError(_,H.KEY_LOAD_ERROR,new Error("after key load, decryptdata unset or changed"),T));D.decryptdata.key=_.decryptdata.key=new Uint8Array(f.data),_.keyLoader=null,D.loader=null,r({frag:_,keyInfo:D})},onError:(f,E,b,T)=>{this.resetLoader(E),s(this.createKeyLoadError(e,H.KEY_LOAD_ERROR,new Error(`HTTP Error ${f.code} loading key ${f.text}`),b,L({url:a.url,data:void 0},f)))},onTimeout:(f,E,b)=>{this.resetLoader(E),s(this.createKeyLoadError(e,H.KEY_LOAD_TIMEOUT,new Error("key loading timed out"),b))},onAbort:(f,E,b)=>{this.resetLoader(E),s(this.createKeyLoadError(e,H.INTERNAL_ABORTED,new Error("key loading aborted"),b))}};n.load(a,d,u)})}resetLoader(t){let{frag:e,keyInfo:i,url:n}=t,r=i.loader;e.keyLoader===r&&(e.keyLoader=null,i.loader=null),delete this.keyUriToKeyInfo[n],r&&r.destroy()}}function ec(){return self.SourceBuffer||self.WebKitSourceBuffer}function ic(){if(!Xi())return!1;let t=ec();return!t||t.prototype&&typeof t.prototype.appendBuffer=="function"&&typeof t.prototype.remove=="function"}class nc{constructor(t,e,i,n){this.config=void 0,this.media=null,this.fragmentTracker=void 0,this.hls=void 0,this.nudgeRetry=0,this.stallReported=!1,this.stalled=null,this.moved=!1,this.seeking=!1,this.config=t,this.media=e,this.fragmentTracker=i,this.hls=n}destroy(){this.media=null,this.hls=this.fragmentTracker=null}poll(t,e){let{config:i,media:n,stalled:r}=this;if(n===null)return;let{currentTime:s,seeking:a}=n,l=this.seeking&&!a,d=!this.seeking&&a;if(this.seeking=a,s!==t){if(this.moved=!0,a||(this.nudgeRetry=0),r!==null){if(this.stallReported){let D=self.performance.now()-r;C.warn(`playback not stuck anymore @${s}, after ${Math.round(D)}ms`),this.stallReported=!1}this.stalled=null}return}if(d||l)return void(this.stalled=null);if(n.paused&&!a||n.ended||n.playbackRate===0||!ye.getBuffered(n).length)return void(this.nudgeRetry=0);let u=ye.bufferInfo(n,s,0),f=u.nextStart||0;if(a){let D=u.len>2,w=!f||e&&e.start<=s||f-s>2&&!this.fragmentTracker.getPartialFragment(s);if(D||w)return;this.moved=!1}if(!this.moved&&this.stalled!==null){var E;if(!(u.len>0)&&!f)return;let D=Math.max(f,u.start||0)-s,w=this.hls.levels?this.hls.levels[this.hls.currentLevel]:null,x=(w==null||(E=w.details)==null?void 0:E.live)?2*w.details.targetduration:2,M=this.fragmentTracker.getPartialFragment(s);if(D>0&&(D<=x||M))return void(n.paused||this._trySkipBufferHole(M))}let b=self.performance.now();if(r===null)return void(this.stalled=b);let T=b-r;if(!a&&T>=250&&(this._reportStall(u),!this.media))return;let _=ye.bufferInfo(n,s,i.maxBufferHole);this._tryFixBufferStall(_,T)}_tryFixBufferStall(t,e){let{config:i,fragmentTracker:n,media:r}=this;if(r===null)return;let s=r.currentTime,a=n.getPartialFragment(s);if(a){if(this._trySkipBufferHole(a)||!this.media)return}(t.len>i.maxBufferHole||t.nextStart&&t.nextStart-s<i.maxBufferHole)&&e>1000*i.highBufferWatchdogPeriod&&(C.warn("Trying to nudge playhead over buffer-hole"),this.stalled=null,this._tryNudgeBuffer())}_reportStall(t){let{hls:e,media:i,stallReported:n}=this;if(!n&&i){this.stallReported=!0;let r=new Error(`Playback stalling at @${i.currentTime} due to low buffer (${JSON.stringify(t)})`);C.warn(r.message),e.trigger(A.ERROR,{type:Ft.MEDIA_ERROR,details:H.BUFFER_STALLED_ERROR,fatal:!1,error:r,buffer:t.len})}}_trySkipBufferHole(t){let{config:e,hls:i,media:n}=this;if(n===null)return 0;let r=n.currentTime,s=ye.bufferInfo(n,r,0),a=r<s.start?s.start:s.nextStart;if(a){let l=s.len<=e.maxBufferHole,d=s.len>0&&s.len<1&&n.readyState<3,u=a-r;if(u>0&&(l||d)){if(u>e.maxBufferHole){let{fragmentTracker:E}=this,b=!1;if(r===0){let T=E.getAppendedFrag(0,me);T&&a<T.end&&(b=!0)}if(!b){let T=t||E.getAppendedFrag(r,me);if(T){let _=!1,D=T.end;for(;D<a;){let w=E.getPartialFragment(D);if(!w){_=!0;break}D+=w.duration}if(_)return 0}}}let f=Math.max(a+0.05,r+0.1);if(C.warn(`skipping hole, adjusting currentTime from ${r} to ${f}`),this.moved=!0,this.stalled=null,n.currentTime=f,t&&!t.gap){let E=new Error(`fragment loaded with buffer holes, seeking from ${r} to ${f}`);i.trigger(A.ERROR,{type:Ft.MEDIA_ERROR,details:H.BUFFER_SEEK_OVER_HOLE,fatal:!1,error:E,reason:E.message,frag:t})}return f}}return 0}_tryNudgeBuffer(){let{config:t,hls:e,media:i,nudgeRetry:n}=this;if(i===null)return;let r=i.currentTime;if(this.nudgeRetry++,n<t.nudgeMaxRetry){let s=r+(n+1)*t.nudgeOffset,a=new Error(`Nudging 'currentTime' from ${r} to ${s}`);C.warn(a.message),i.currentTime=s,e.trigger(A.ERROR,{type:Ft.MEDIA_ERROR,details:H.BUFFER_NUDGE_ON_STALL,error:a,fatal:!1})}else{let s=new Error(`Playhead still not moving while enough data buffered @${r} after ${t.nudgeMaxRetry} nudges`);C.error(s.message),e.trigger(A.ERROR,{type:Ft.MEDIA_ERROR,details:H.BUFFER_STALLED_ERROR,error:s,fatal:!0})}}}class rc extends Br{constructor(t,e,i){super(t,e,i,"[stream-controller]",me),this.audioCodecSwap=!1,this.gapController=null,this.level=-1,this._forceStartLoad=!1,this.altAudio=!1,this.audioOnly=!1,this.fragPlaying=null,this.onvplaying=null,this.onvseeked=null,this.fragLastKbps=0,this.couldBacktrack=!1,this.backtrackFragment=null,this.audioCodecSwitch=!1,this.videoBuffer=null,this._registerListeners()}_registerListeners(){let{hls:t}=this;t.on(A.MEDIA_ATTACHED,this.onMediaAttached,this),t.on(A.MEDIA_DETACHING,this.onMediaDetaching,this),t.on(A.MANIFEST_LOADING,this.onManifestLoading,this),t.on(A.MANIFEST_PARSED,this.onManifestParsed,this),t.on(A.LEVEL_LOADING,this.onLevelLoading,this),t.on(A.LEVEL_LOADED,this.onLevelLoaded,this),t.on(A.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),t.on(A.ERROR,this.onError,this),t.on(A.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),t.on(A.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),t.on(A.BUFFER_CREATED,this.onBufferCreated,this),t.on(A.BUFFER_FLUSHED,this.onBufferFlushed,this),t.on(A.LEVELS_UPDATED,this.onLevelsUpdated,this),t.on(A.FRAG_BUFFERED,this.onFragBuffered,this)}_unregisterListeners(){let{hls:t}=this;t.off(A.MEDIA_ATTACHED,this.onMediaAttached,this),t.off(A.MEDIA_DETACHING,this.onMediaDetaching,this),t.off(A.MANIFEST_LOADING,this.onManifestLoading,this),t.off(A.MANIFEST_PARSED,this.onManifestParsed,this),t.off(A.LEVEL_LOADED,this.onLevelLoaded,this),t.off(A.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),t.off(A.ERROR,this.onError,this),t.off(A.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),t.off(A.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),t.off(A.BUFFER_CREATED,this.onBufferCreated,this),t.off(A.BUFFER_FLUSHED,this.onBufferFlushed,this),t.off(A.LEVELS_UPDATED,this.onLevelsUpdated,this),t.off(A.FRAG_BUFFERED,this.onFragBuffered,this)}onHandlerDestroying(){this._unregisterListeners(),super.onHandlerDestroying()}startLoad(t){if(this.levels){let{lastCurrentTime:e,hls:i}=this;if(this.stopLoad(),this.setInterval(100),this.level=-1,!this.startFragRequested){let n=i.startLevel;n===-1&&(i.config.testBandwidth&&this.levels.length>1?(n=0,this.bitrateTest=!0):n=i.firstAutoLevel),i.nextLoadLevel=n,this.level=i.loadLevel,this.loadedmetadata=!1}e>0&&t===-1&&(this.log("Override startPosition with lastCurrentTime @"+e.toFixed(3)),t=e),this.state=be,this.nextLoadPosition=this.startPosition=this.lastCurrentTime=t,this.tick()}else this._forceStartLoad=!0,this.state=Wi}stopLoad(){this._forceStartLoad=!1,super.stopLoad()}doTick(){switch(this.state){case Me:{let{levels:e,level:i}=this,n=e==null?void 0:e[i],r=n==null?void 0:n.details;if(r&&(!r.live||this.levelLastLoaded===n)){if(this.waitForCdnTuneIn(r))break;this.state=be;break}if(this.hls.nextLoadLevel!==this.level){this.state=be;break}break}case hr:{var t;let e=self.performance.now(),i=this.retryDate;if(!i||e>=i||(t=this.media)!=null&&t.seeking){let{levels:n,level:r}=this,s=n==null?void 0:n[r];this.resetStartWhenNotLoaded(s||null),this.state=be}}}this.state===be&&this.doTickIdle(),this.onTickEnd()}onTickEnd(){super.onTickEnd(),this.checkBuffer(),this.checkFragmentChanged()}doTickIdle(){let{hls:t,levelLastLoaded:e,levels:i,media:n}=this;if(e===null||!n&&(this.startFragRequested||!t.config.startFragPrefetch))return;if(this.altAudio&&this.audioOnly)return;let r=t.nextLoadLevel;if(i==null||!i[r])return;let s=i[r],a=this.getMainFwdBufferInfo();if(a===null)return;let l=this.getLevelDetails();if(l&&this._streamEnded(a,l)){let _={};return this.altAudio&&(_.type="video"),this.hls.trigger(A.BUFFER_EOS,_),void(this.state=Fr)}t.loadLevel!==r&&t.manualLevel===-1&&this.log(`Adapting to level ${r} from level ${this.level}`),this.level=t.nextLoadLevel=r;let d=s.details;if(!d||this.state===Me||d.live&&this.levelLastLoaded!==s)return this.level=r,void(this.state=Me);let u=a.len,f=this.getMaxBufferLength(s.maxBitrate);if(u>=f)return;this.backtrackFragment&&this.backtrackFragment.start>a.end&&(this.backtrackFragment=null);let E=this.backtrackFragment?this.backtrackFragment.start:a.end,b=this.getNextFragment(E,d);if(this.couldBacktrack&&!this.fragPrevious&&b&&b.sn!=="initSegment"&&this.fragmentTracker.getState(b)!==Ie){var T;let _=((T=this.backtrackFragment)!=null?T:b).sn-d.startSN,D=d.fragments[_-1];D&&b.cc===D.cc&&(b=D,this.fragmentTracker.removeFragment(D))}else this.backtrackFragment&&a.len&&(this.backtrackFragment=null);if(b&&this.isLoopLoading(b,E)){if(!b.gap){let _=this.audioOnly&&!this.altAudio?gt:Rt,D=(_===Rt?this.videoBuffer:this.mediaBuffer)||this.media;D&&this.afterBufferFlushed(D,_,me)}b=this.getNextFragmentLoopLoading(b,d,a,me,f)}b&&(!b.initSegment||b.initSegment.data||this.bitrateTest||(b=b.initSegment),this.loadFragment(b,s,E))}loadFragment(t,e,i){let n=this.fragmentTracker.getState(t);this.fragCurrent=t,n===Ri||n===Hn?t.sn==="initSegment"?this._loadInitSegment(t,e):this.bitrateTest?(this.log(`Fragment ${t.sn} of level ${t.level} is being downloaded to test bitrate and will not be buffered`),this._loadBitrateTestFrag(t,e)):(this.startFragRequested=!0,super.loadFragment(t,e,i)):this.clearTrackerIfNeeded(t)}getBufferedFrag(t){return this.fragmentTracker.getBufferedFrag(t,me)}followingBufferedFrag(t){return t?this.getBufferedFrag(t.end+0.5):null}immediateLevelSwitch(){this.abortCurrentFrag(),this.flushMainBuffer(0,Number.POSITIVE_INFINITY)}nextLevelSwitch(){let{levels:t,media:e}=this;if(e!=null&&e.readyState){let i,n=this.getAppendedFrag(e.currentTime);n&&n.start>1&&this.flushMainBuffer(0,n.start-1);let r=this.getLevelDetails();if(r!=null&&r.live){let a=this.getMainFwdBufferInfo();if(!a||a.len<2*r.targetduration)return}if(!e.paused&&t){let a=t[this.hls.nextLoadLevel],l=this.fragLastKbps;i=l&&this.fragCurrent?this.fragCurrent.duration*a.maxBitrate/(1000*l)+1:0}else i=0;let s=this.getBufferedFrag(e.currentTime+i);if(s){let a=this.followingBufferedFrag(s);if(a){this.abortCurrentFrag();let l=a.maxStartPTS?a.maxStartPTS:a.start,d=a.duration,u=Math.max(s.end,l+Math.min(Math.max(d-this.config.maxFragLookUpTolerance,d*(this.couldBacktrack?0.5:0.125)),d*(this.couldBacktrack?0.75:0.25)));this.flushMainBuffer(u,Number.POSITIVE_INFINITY)}}}}abortCurrentFrag(){let t=this.fragCurrent;switch(this.fragCurrent=null,this.backtrackFragment=null,t&&(t.abortRequests(),this.fragmentTracker.removeFragment(t)),this.state){case Xs:case ur:case hr:case hn:case Mr:this.state=be}this.nextLoadPosition=this.getLoadPosition()}flushMainBuffer(t,e){super.flushMainBuffer(t,e,this.altAudio?"video":null)}onMediaAttached(t,e){super.onMediaAttached(t,e);let i=e.media;this.onvplaying=this.onMediaPlaying.bind(this),this.onvseeked=this.onMediaSeeked.bind(this),i.addEventListener("playing",this.onvplaying),i.addEventListener("seeked",this.onvseeked),this.gapController=new nc(this.config,i,this.fragmentTracker,this.hls)}onMediaDetaching(){let{media:t}=this;t&&this.onvplaying&&this.onvseeked&&(t.removeEventListener("playing",this.onvplaying),t.removeEventListener("seeked",this.onvseeked),this.onvplaying=this.onvseeked=null,this.videoBuffer=null),this.fragPlaying=null,this.gapController&&(this.gapController.destroy(),this.gapController=null),super.onMediaDetaching()}onMediaPlaying(){this.tick()}onMediaSeeked(){let t=this.media,e=t?t.currentTime:null;j(e)&&this.log("Media seeked to "+e.toFixed(3));let i=this.getMainFwdBufferInfo();i!==null&&i.len!==0?this.tick():this.warn(`Main forward buffer length on "seeked" event ${i?i.len:"empty"})`)}onManifestLoading(){this.log("Trigger BUFFER_RESET"),this.hls.trigger(A.BUFFER_RESET,void 0),this.fragmentTracker.removeAllFragments(),this.couldBacktrack=!1,this.startPosition=this.lastCurrentTime=this.fragLastKbps=0,this.levels=this.fragPlaying=this.backtrackFragment=this.levelLastLoaded=null,this.altAudio=this.audioOnly=this.startFragRequested=!1}onManifestParsed(t,e){let i=!1,n=!1;e.levels.forEach((r)=>{let s=r.audioCodec;s&&(i=i||s.indexOf("mp4a.40.2")!==-1,n=n||s.indexOf("mp4a.40.5")!==-1)}),this.audioCodecSwitch=i&&n&&!function(){var r;let s=ec();return typeof(s==null||(r=s.prototype)==null?void 0:r.changeType)=="function"}(),this.audioCodecSwitch&&this.log("Both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"),this.levels=e.levels,this.startFragRequested=!1}onLevelLoading(t,e){let{levels:i}=this;if(!i||this.state!==be)return;let n=i[e.level];(!n.details||n.details.live&&this.levelLastLoaded!==n||this.waitForCdnTuneIn(n.details))&&(this.state=Me)}onLevelLoaded(t,e){var i;let{levels:n}=this,r=e.level,s=e.details,a=s.totalduration;if(!n)return void this.warn("Levels were reset while loading level "+r);this.log(`Level ${r} loaded [${s.startSN},${s.endSN}]${s.lastPartSn?`[part-${s.lastPartSn}-${s.lastPartIndex}]`:""}, cc [${s.startCC}, ${s.endCC}] duration:${a}`);let l=n[r],d=this.fragCurrent;!d||this.state!==ur&&this.state!==hr||d.level!==e.level&&d.loader&&this.abortCurrentFrag();let u=0;if(s.live||(i=l.details)!=null&&i.live){var f;if(this.checkLiveUpdate(s),s.deltaUpdateFailed)return;u=this.alignPlaylists(s,l.details,(f=this.levelLastLoaded)==null?void 0:f.details)}if(l.details=s,this.levelLastLoaded=l,this.hls.trigger(A.LEVEL_UPDATED,{details:s,level:r}),this.state===Me){if(this.waitForCdnTuneIn(s))return;this.state=be}this.startFragRequested?s.live&&this.synchronizeToLiveEdge(s):this.setStartPosition(s,u),this.tick()}_handleFragmentLoadProgress(t){var e;let{frag:i,part:n,payload:r}=t,{levels:s}=this;if(!s)return void this.warn(`Levels were reset while fragment load was in progress. Fragment ${i.sn} of level ${i.level} will not be buffered`);let a=s[i.level],l=a.details;if(!l)return this.warn(`Dropping fragment ${i.sn} of level ${i.level} after level details were reset`),void this.fragmentTracker.removeFragment(i);let d=a.videoCodec,u=l.PTSKnown||!l.live,f=(e=i.initSegment)==null?void 0:e.data,E=this._getAudioCodec(a),b=this.transmuxer=this.transmuxer||new Ro(this.hls,me,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)),T=n?n.index:-1,_=T!==-1,D=new dr(i.level,i.sn,i.stats.chunkCount,r.byteLength,T,_),w=this.initPTS[i.cc];b.push(r,f,E,d,i,n,l.totalduration,u,D,w)}onAudioTrackSwitching(t,e){let i=this.altAudio;if(!e.url){if(this.mediaBuffer!==this.media){this.log("Switching on main audio, use media.buffered to schedule main fragment loading"),this.mediaBuffer=this.media;let r=this.fragCurrent;r&&(this.log("Switching to main audio track, cancel main fragment load"),r.abortRequests(),this.fragmentTracker.removeFragment(r)),this.resetTransmuxer(),this.resetLoadingState()}else this.audioOnly&&this.resetTransmuxer();let n=this.hls;i&&(n.trigger(A.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:null}),this.fragmentTracker.removeAllFragments()),n.trigger(A.AUDIO_TRACK_SWITCHED,e)}}onAudioTrackSwitched(t,e){let i=e.id,n=!!this.hls.audioTracks[i].url;if(n){let r=this.videoBuffer;r&&this.mediaBuffer!==r&&(this.log("Switching on alternate audio, use video.buffered to schedule main fragment loading"),this.mediaBuffer=r)}this.altAudio=n,this.tick()}onBufferCreated(t,e){let i=e.tracks,n,r,s=!1;for(let a in i){let l=i[a];if(l.id==="main"){if(r=a,n=l,a==="video"){let d=i[a];d&&(this.videoBuffer=d.buffer)}}else s=!0}s&&n?(this.log(`Alternate track found, use ${r}.buffered to schedule main fragment loading`),this.mediaBuffer=n.buffer):this.mediaBuffer=this.media}onFragBuffered(t,e){let{frag:i,part:n}=e;if(i&&i.type!==me)return;if(this.fragContextChanged(i))return this.warn(`Fragment ${i.sn}${n?" p: "+n.index:""} of level ${i.level} finished buffering, but was aborted. state: ${this.state}`),void(this.state===Mr&&(this.state=be));let r=n?n.stats:i.stats;this.fragLastKbps=Math.round(8*r.total/(r.buffering.end-r.loading.first)),i.sn!=="initSegment"&&(this.fragPrevious=i),this.fragBufferedComplete(i,n)}onError(t,e){var i;if(e.fatal)this.state=mr;else switch(e.details){case H.FRAG_GAP:case H.FRAG_PARSING_ERROR:case H.FRAG_DECRYPT_ERROR:case H.FRAG_LOAD_ERROR:case H.FRAG_LOAD_TIMEOUT:case H.KEY_LOAD_ERROR:case H.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(me,e);break;case H.LEVEL_LOAD_ERROR:case H.LEVEL_LOAD_TIMEOUT:case H.LEVEL_PARSING_ERROR:e.levelRetry||this.state!==Me||((i=e.context)==null?void 0:i.type)!==Vi||(this.state=be);break;case H.BUFFER_APPEND_ERROR:case H.BUFFER_FULL_ERROR:if(!e.parent||e.parent!=="main")return;if(e.details===H.BUFFER_APPEND_ERROR)return void this.resetLoadingState();this.reduceLengthAndFlushBuffer(e)&&this.flushMainBuffer(0,Number.POSITIVE_INFINITY);break;case H.INTERNAL_EXCEPTION:this.recoverWorkerError(e)}}checkBuffer(){let{media:t,gapController:e}=this;if(t&&e&&t.readyState){if(this.loadedmetadata||!ye.getBuffered(t).length){let i=this.state!==be?this.fragCurrent:null;e.poll(this.lastCurrentTime,i)}this.lastCurrentTime=t.currentTime}}onFragLoadEmergencyAborted(){this.state=be,this.loadedmetadata||(this.startFragRequested=!1,this.nextLoadPosition=this.startPosition),this.tickImmediate()}onBufferFlushed(t,{type:e}){if(e!==gt||this.audioOnly&&!this.altAudio){let i=(e===Rt?this.videoBuffer:this.mediaBuffer)||this.media;this.afterBufferFlushed(i,e,me),this.tick()}}onLevelsUpdated(t,e){this.level>-1&&this.fragCurrent&&(this.level=this.fragCurrent.level),this.levels=e.levels}swapAudioCodec(){this.audioCodecSwap=!this.audioCodecSwap}seekToStartPos(){let{media:t}=this;if(!t)return;let e=t.currentTime,i=this.startPosition;if(i>=0&&e<i){if(t.seeking)return void this.log(`could not seek to ${i}, already seeking at ${e}`);let n=ye.getBuffered(t),r=(n.length?n.start(0):0)-i;r>0&&(r<this.config.maxBufferHole||r<this.config.maxFragLookUpTolerance)&&(this.log(`adjusting start position by ${r} to match buffer start`),i+=r,this.startPosition=i),this.log(`seek to target start position ${i} from current time ${e}`),t.currentTime=i}}_getAudioCodec(t){let e=this.config.defaultAudioCodec||t.audioCodec;return this.audioCodecSwap&&e&&(this.log("Swapping audio codec"),e=e.indexOf("mp4a.40.5")!==-1?"mp4a.40.2":"mp4a.40.5"),e}_loadBitrateTestFrag(t,e){t.bitrateTest=!0,this._doFragLoad(t,e).then((i)=>{let{hls:n}=this;if(!i||this.fragContextChanged(t))return;e.fragmentError=0,this.state=be,this.startFragRequested=!1,this.bitrateTest=!1;let r=t.stats;r.parsing.start=r.parsing.end=r.buffering.start=r.buffering.end=self.performance.now(),n.trigger(A.FRAG_LOADED,i),t.bitrateTest=!1})}_handleTransmuxComplete(t){var e;let i="main",{hls:n}=this,{remuxResult:r,chunkMeta:s}=t,a=this.getCurrentContext(s);if(!a)return void this.resetWhenMissingContext(s);let{frag:l,part:d,level:u}=a,{video:f,text:E,id3:b,initSegment:T}=r,{details:_}=u,D=this.altAudio?void 0:r.audio;if(this.fragContextChanged(l))this.fragmentTracker.removeFragment(l);else{if(this.state=hn,T){if(T!=null&&T.tracks){let M=l.initSegment||l;this._bufferInitSegment(u,T.tracks,M,s),n.trigger(A.FRAG_PARSING_INIT_SEGMENT,{frag:M,id:"main",tracks:T.tracks})}let{initPTS:w,timescale:x}=T;j(w)&&(this.initPTS[l.cc]={baseTime:w,timescale:x},n.trigger(A.INIT_PTS_FOUND,{frag:l,id:"main",initPTS:w,timescale:x}))}if(f&&_&&l.sn!=="initSegment"){let w=_.fragments[l.sn-1-_.startSN],x=l.sn===_.startSN,M=!w||l.cc>w.cc;if(r.independent!==!1){let{startPTS:V,endPTS:X,startDTS:ot,endDTS:et}=f;if(d)d.elementaryStreams[f.type]={startPTS:V,endPTS:X,startDTS:ot,endDTS:et};else if(f.firstKeyFrame&&f.independent&&s.id===1&&!M&&(this.couldBacktrack=!0),f.dropped&&f.independent){let vt=this.getMainFwdBufferInfo(),St=(vt?vt.end:this.getLoadPosition())+this.config.maxBufferHole,nt=f.firstKeyFramePTS?f.firstKeyFramePTS:V;if(!x&&St<nt-this.config.maxBufferHole&&!M)return void this.backtrack(l);M&&(l.gap=!0),l.setElementaryStreamInfo(f.type,l.start,X,l.start,et,!0)}else x&&V>2&&(l.gap=!0);l.setElementaryStreamInfo(f.type,V,X,ot,et),this.backtrackFragment&&(this.backtrackFragment=l),this.bufferFragmentData(f,l,d,s,x||M)}else{if(!x&&!M)return void this.backtrack(l);l.gap=!0}}if(D){let{startPTS:w,endPTS:x,startDTS:M,endDTS:V}=D;d&&(d.elementaryStreams[gt]={startPTS:w,endPTS:x,startDTS:M,endDTS:V}),l.setElementaryStreamInfo(gt,w,x,M,V),this.bufferFragmentData(D,l,d,s)}if(_&&b!=null&&(e=b.samples)!=null&&e.length){let w={id:"main",frag:l,details:_,samples:b.samples};n.trigger(A.FRAG_PARSING_METADATA,w)}if(_&&E){let w={id:"main",frag:l,details:_,samples:E.samples};n.trigger(A.FRAG_PARSING_USERDATA,w)}}}_bufferInitSegment(t,e,i,n){if(this.state!==hn)return;this.audioOnly=!!e.audio&&!e.video,this.altAudio&&!this.audioOnly&&delete e.audio;let{audio:r,video:s,audiovideo:a}=e;if(r){let l=t.audioCodec,d=navigator.userAgent.toLowerCase();this.audioCodecSwitch&&(l&&(l=l.indexOf("mp4a.40.5")!==-1?"mp4a.40.2":"mp4a.40.5"),r.metadata.channelCount!==1&&d.indexOf("firefox")===-1&&(l="mp4a.40.5")),l&&l.indexOf("mp4a.40.5")!==-1&&d.indexOf("android")!==-1&&r.container!=="audio/mpeg"&&(l="mp4a.40.2",this.log("Android: force audio codec to "+l)),t.audioCodec&&t.audioCodec!==l&&this.log(`Swapping manifest audio codec "${t.audioCodec}" for "${l}"`),r.levelCodec=l,r.id="main",this.log(`Init audio buffer, container:${r.container}, codecs[selected/level/parsed]=[${l||""}/${t.audioCodec||""}/${r.codec}]`)}s&&(s.levelCodec=t.videoCodec,s.id="main",this.log(`Init video buffer, container:${s.container}, codecs[level/parsed]=[${t.videoCodec||""}/${s.codec}]`)),a&&this.log(`Init audiovideo buffer, container:${a.container}, codecs[level/parsed]=[${t.codecs}/${a.codec}]`),this.hls.trigger(A.BUFFER_CODECS,e),Object.keys(e).forEach((l)=>{let d=e[l].initSegment;d!=null&&d.byteLength&&this.hls.trigger(A.BUFFER_APPENDING,{type:l,data:d,frag:i,part:null,chunkMeta:n,parent:i.type})}),this.tickImmediate()}getMainFwdBufferInfo(){return this.getFwdBufferInfo(this.mediaBuffer?this.mediaBuffer:this.media,me)}backtrack(t){this.couldBacktrack=!0,this.backtrackFragment=t,this.resetTransmuxer(),this.flushBufferGap(t),this.fragmentTracker.removeFragment(t),this.fragPrevious=null,this.nextLoadPosition=t.start,this.state=be}checkFragmentChanged(){let t=this.media,e=null;if(t&&t.readyState>1&&t.seeking===!1){let i=t.currentTime;if(ye.isBuffered(t,i)?e=this.getAppendedFrag(i):ye.isBuffered(t,i+0.1)&&(e=this.getAppendedFrag(i+0.1)),e){this.backtrackFragment=null;let n=this.fragPlaying,r=e.level;n&&e.sn===n.sn&&n.level===r||(this.fragPlaying=e,this.hls.trigger(A.FRAG_CHANGED,{frag:e}),n&&n.level===r||this.hls.trigger(A.LEVEL_SWITCHED,{level:r}))}}}get nextLevel(){let t=this.nextBufferedFrag;return t?t.level:-1}get currentFrag(){let t=this.media;return t?this.fragPlaying||this.getAppendedFrag(t.currentTime):null}get currentProgramDateTime(){let t=this.media;if(t){let e=t.currentTime,i=this.currentFrag;if(i&&j(e)&&j(i.programDateTime)){let n=i.programDateTime+1000*(e-i.start);return new Date(n)}}return null}get currentLevel(){let t=this.currentFrag;return t?t.level:-1}get nextBufferedFrag(){let t=this.currentFrag;return t?this.followingBufferedFrag(t):null}get forceStartLoad(){return this._forceStartLoad}}class ni{static get version(){return"1.5.8"}static isMSESupported(){return ic()}static isSupported(){return function(){if(!ic())return!1;let t=Xi();return typeof(t==null?void 0:t.isTypeSupported)=="function"&&(["avc1.42E01E,mp4a.40.2","av01.0.01M.08","vp09.00.50.08"].some((e)=>t.isTypeSupported(dn(e,"video")))||["mp4a.40.2","fLaC"].some((e)=>t.isTypeSupported(dn(e,"audio"))))}()}static getMediaSource(){return Xi()}static get Events(){return A}static get ErrorTypes(){return Ft}static get ErrorDetails(){return H}static get DefaultConfig(){return ni.defaultConfig?ni.defaultConfig:Jl}static set DefaultConfig(t){ni.defaultConfig=t}constructor(t={}){this.config=void 0,this.userConfig=void 0,this.coreComponents=void 0,this.networkControllers=void 0,this.started=!1,this._emitter=new ko,this._autoLevelCapping=-1,this._maxHdcpLevel=null,this.abrController=void 0,this.bufferController=void 0,this.capLevelController=void 0,this.latencyController=void 0,this.levelController=void 0,this.streamController=void 0,this.audioTrackController=void 0,this.subtitleTrackController=void 0,this.emeController=void 0,this.cmcdController=void 0,this._media=null,this.url=null,this.triggeringException=void 0,function(nt,it){if(typeof console=="object"&&nt===!0||typeof nt=="object"){lt(nt,"debug","log","info","warn","error");try{Mt.log(`Debug logs enabled for "${it}" in hls.js version 1.5.8`)}catch(jt){Mt=Ct}}else Mt=Ct}(t.debug||!1,"Hls instance");let e=this.config=function(nt,it){if((it.liveSyncDurationCount||it.liveMaxLatencyDurationCount)&&(it.liveSyncDuration||it.liveMaxLatencyDuration))throw new Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");if(it.liveMaxLatencyDurationCount!==void 0&&(it.liveSyncDurationCount===void 0||it.liveMaxLatencyDurationCount<=it.liveSyncDurationCount))throw new Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be greater than "liveSyncDurationCount"');if(it.liveMaxLatencyDuration!==void 0&&(it.liveSyncDuration===void 0||it.liveMaxLatencyDuration<=it.liveSyncDuration))throw new Error('Illegal hls.js config: "liveMaxLatencyDuration" must be greater than "liveSyncDuration"');let jt=zo(nt),At=["TimeOut","MaxRetry","RetryDelay","MaxRetryTimeout"];return["manifest","level","frag"].forEach((Kt)=>{let zt=(Kt==="level"?"playlist":Kt)+"LoadPolicy",Xt=it[zt]===void 0,ht=[];At.forEach((wt)=>{let Wt=`${Kt}Loading${wt}`,Yt=it[Wt];if(Yt!==void 0&&Xt){ht.push(Wt);let ae=jt[zt].default;switch(it[zt]={default:ae},wt){case"TimeOut":ae.maxLoadTimeMs=Yt,ae.maxTimeToFirstByteMs=Yt;break;case"MaxRetry":ae.errorRetry.maxNumRetry=Yt,ae.timeoutRetry.maxNumRetry=Yt;break;case"RetryDelay":ae.errorRetry.retryDelayMs=Yt,ae.timeoutRetry.retryDelayMs=Yt;break;case"MaxRetryTimeout":ae.errorRetry.maxRetryDelayMs=Yt,ae.timeoutRetry.maxRetryDelayMs=Yt}}}),ht.length&&C.warn(`hls.js config: "${ht.join('", "')}" setting(s) are deprecated, use "${zt}": ${JSON.stringify(it[zt])}`)}),L(L({},jt),it)}(ni.DefaultConfig,t);this.userConfig=t,e.progressive&&Nd(e);let{abrController:i,bufferController:n,capLevelController:r,errorController:s,fpsController:a}=e,l=new s(this),d=this.abrController=new i(this),u=this.bufferController=new n(this),f=this.capLevelController=new r(this),E=new a(this),b=new Rr(this),T=new B(this),_=e.contentSteeringController,D=_?new _(this):null,w=this.levelController=new Ql(this,D),x=new Ws(this),M=new tc(this.config),V=this.streamController=new rc(this,x,M);f.setStreamController(V),E.setStreamController(V);let X=[b,w,V];D&&X.splice(1,0,D),this.networkControllers=X;let ot=[d,u,f,E,T,x];this.audioTrackController=this.createController(e.audioTrackController,X);let et=e.audioStreamController;et&&X.push(new et(this,x,M)),this.subtitleTrackController=this.createController(e.subtitleTrackController,X);let vt=e.subtitleStreamController;vt&&X.push(new vt(this,x,M)),this.createController(e.timelineController,ot),M.emeController=this.emeController=this.createController(e.emeController,ot),this.cmcdController=this.createController(e.cmcdController,ot),this.latencyController=this.createController(ut,ot),this.coreComponents=ot,X.push(l);let St=l.onErrorOut;typeof St=="function"&&this.on(A.ERROR,St,l)}createController(t,e){if(t){let i=new t(this);return e&&e.push(i),i}return null}on(t,e,i=this){this._emitter.on(t,e,i)}once(t,e,i=this){this._emitter.once(t,e,i)}removeAllListeners(t){this._emitter.removeAllListeners(t)}off(t,e,i=this,n){this._emitter.off(t,e,i,n)}listeners(t){return this._emitter.listeners(t)}emit(t,e,i){return this._emitter.emit(t,e,i)}trigger(t,e){if(this.config.debug)return this.emit(t,t,e);try{return this.emit(t,t,e)}catch(i){if(C.error("An internal error happened while handling event "+t+'. Error message: "'+i.message+'". Here is a stacktrace:',i),!this.triggeringException){this.triggeringException=!0;let n=t===A.ERROR;this.trigger(A.ERROR,{type:Ft.OTHER_ERROR,details:H.INTERNAL_EXCEPTION,fatal:n,event:t,error:i}),this.triggeringException=!1}}return!1}listenerCount(t){return this._emitter.listenerCount(t)}destroy(){C.log("destroy"),this.trigger(A.DESTROYING,void 0),this.detachMedia(),this.removeAllListeners(),this._autoLevelCapping=-1,this.url=null,this.networkControllers.forEach((e)=>e.destroy()),this.networkControllers.length=0,this.coreComponents.forEach((e)=>e.destroy()),this.coreComponents.length=0;let t=this.config;t.xhrSetup=t.fetchSetup=void 0,this.userConfig=null}attachMedia(t){C.log("attachMedia"),this._media=t,this.trigger(A.MEDIA_ATTACHING,{media:t})}detachMedia(){C.log("detachMedia"),this.trigger(A.MEDIA_DETACHING,void 0),this._media=null}loadSource(t){this.stopLoad();let e=this.media,i=this.url,n=this.url=S.buildAbsoluteURL(self.location.href,t,{alwaysNormalize:!0});this._autoLevelCapping=-1,this._maxHdcpLevel=null,C.log("loadSource:"+n),e&&i&&(i!==n||this.bufferController.hasSourceTypes())&&(this.detachMedia(),this.attachMedia(e)),this.trigger(A.MANIFEST_LOADING,{url:t})}startLoad(t=-1){C.log(`startLoad(${t})`),this.started=!0,this.networkControllers.forEach((e)=>{e.startLoad(t)})}stopLoad(){C.log("stopLoad"),this.started=!1,this.networkControllers.forEach((t)=>{t.stopLoad()})}resumeBuffering(){this.started&&this.networkControllers.forEach((t)=>{"fragmentLoader"in t&&t.startLoad(-1)})}pauseBuffering(){this.networkControllers.forEach((t)=>{"fragmentLoader"in t&&t.stopLoad()})}swapAudioCodec(){C.log("swapAudioCodec"),this.streamController.swapAudioCodec()}recoverMediaError(){C.log("recoverMediaError");let t=this._media;this.detachMedia(),t&&this.attachMedia(t)}removeLevel(t){this.levelController.removeLevel(t)}get levels(){return this.levelController.levels||[]}get currentLevel(){return this.streamController.currentLevel}set currentLevel(t){C.log("set currentLevel:"+t),this.levelController.manualLevel=t,this.streamController.immediateLevelSwitch()}get nextLevel(){return this.streamController.nextLevel}set nextLevel(t){C.log("set nextLevel:"+t),this.levelController.manualLevel=t,this.streamController.nextLevelSwitch()}get loadLevel(){return this.levelController.level}set loadLevel(t){C.log("set loadLevel:"+t),this.levelController.manualLevel=t}get nextLoadLevel(){return this.levelController.nextLoadLevel}set nextLoadLevel(t){this.levelController.nextLoadLevel=t}get firstLevel(){return Math.max(this.levelController.firstLevel,this.minAutoLevel)}set firstLevel(t){C.log("set firstLevel:"+t),this.levelController.firstLevel=t}get startLevel(){let t=this.levelController.startLevel;return t===-1&&this.abrController.forcedAutoLevel>-1?this.abrController.forcedAutoLevel:t}set startLevel(t){C.log("set startLevel:"+t),t!==-1&&(t=Math.max(t,this.minAutoLevel)),this.levelController.startLevel=t}get capLevelToPlayerSize(){return this.config.capLevelToPlayerSize}set capLevelToPlayerSize(t){let e=!!t;e!==this.config.capLevelToPlayerSize&&(e?this.capLevelController.startCapping():(this.capLevelController.stopCapping(),this.autoLevelCapping=-1,this.streamController.nextLevelSwitch()),this.config.capLevelToPlayerSize=e)}get autoLevelCapping(){return this._autoLevelCapping}get bandwidthEstimate(){let{bwEstimator:t}=this.abrController;return t?t.getEstimate():NaN}set bandwidthEstimate(t){this.abrController.resetEstimator(t)}get ttfbEstimate(){let{bwEstimator:t}=this.abrController;return t?t.getEstimateTTFB():NaN}set autoLevelCapping(t){this._autoLevelCapping!==t&&(C.log("set autoLevelCapping:"+t),this._autoLevelCapping=t,this.levelController.checkMaxAutoUpdated())}get maxHdcpLevel(){return this._maxHdcpLevel}set maxHdcpLevel(t){(function(e){return ct.indexOf(e)>-1})(t)&&this._maxHdcpLevel!==t&&(this._maxHdcpLevel=t,this.levelController.checkMaxAutoUpdated())}get autoLevelEnabled(){return this.levelController.manualLevel===-1}get manualLevel(){return this.levelController.manualLevel}get minAutoLevel(){let{levels:t,config:{minAutoBitrate:e}}=this;if(!t)return 0;let i=t.length;for(let n=0;n<i;n++)if(t[n].maxBitrate>=e)return n;return 0}get maxAutoLevel(){let{levels:t,autoLevelCapping:e,maxHdcpLevel:i}=this,n;if(n=e===-1&&t!=null&&t.length?t.length-1:e,i)for(let r=n;r--;){let s=t[r].attrs["HDCP-LEVEL"];if(s&&s<=i)return r}return n}get firstAutoLevel(){return this.abrController.firstAutoLevel}get nextAutoLevel(){return this.abrController.nextAutoLevel}set nextAutoLevel(t){this.abrController.nextAutoLevel=t}get playingDate(){return this.streamController.currentProgramDateTime}get mainForwardBufferInfo(){return this.streamController.getMainFwdBufferInfo()}setAudioOption(t){var e;return(e=this.audioTrackController)==null?void 0:e.setAudioOption(t)}setSubtitleOption(t){var e;return(e=this.subtitleTrackController)==null||e.setSubtitleOption(t),null}get allAudioTracks(){let t=this.audioTrackController;return t?t.allAudioTracks:[]}get audioTracks(){let t=this.audioTrackController;return t?t.audioTracks:[]}get audioTrack(){let t=this.audioTrackController;return t?t.audioTrack:-1}set audioTrack(t){let e=this.audioTrackController;e&&(e.audioTrack=t)}get allSubtitleTracks(){let t=this.subtitleTrackController;return t?t.allSubtitleTracks:[]}get subtitleTracks(){let t=this.subtitleTrackController;return t?t.subtitleTracks:[]}get subtitleTrack(){let t=this.subtitleTrackController;return t?t.subtitleTrack:-1}get media(){return this._media}set subtitleTrack(t){let e=this.subtitleTrackController;e&&(e.subtitleTrack=t)}get subtitleDisplay(){let t=this.subtitleTrackController;return!!t&&t.subtitleDisplay}set subtitleDisplay(t){let e=this.subtitleTrackController;e&&(e.subtitleDisplay=t)}get lowLatencyMode(){return this.config.lowLatencyMode}set lowLatencyMode(t){this.config.lowLatencyMode=t}get liveSyncPosition(){return this.latencyController.liveSyncPosition}get latency(){return this.latencyController.latency}get maxLatency(){return this.latencyController.maxLatency}get targetLatency(){return this.latencyController.targetLatency}get drift(){return this.latencyController.drift}get forceStartLoad(){return this.streamController.forceStartLoad}}ni.defaultConfig=void 0;var Pd=Object.freeze({__proto__:null,ATTACHED:"hls:attached"});function Md(t){let e=function(){let i=typeof document!="undefined"&&typeof window!="undefined",n=i?navigator.userAgent:"",r=/iP(hone|od)/i.test(n)&&!/iPad/.test(n)&&!/IEMobile/i.test(n),s=/Android/.test(n)&&!/Firefox/.test(n),a=/^((?!chrome|android).)*safari/i.test(n),l=/chrome|crios/i.test(n)&&!/opr|opera|chromium|edg|ucbrowser|googlebot/i.test(n),d=/firefox|fxios/i.test(n)&&!/seamonkey/i.test(n),u=/edg/i.test(n),f=/opr|opera/i.test(n),E=/SamsungBrowser/.test(n),b=E&&/SMART-TV/.test(n);return{controls:!r,video:function(T){return i&&document.createElement("video").canPlayType(T)},lang:i&&window.navigator.language,android:s,iphone:r,safari:a,edge:u,opera:f,chrome:l,firefox:d,ios:i&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,samsung:E,samsung_tv:E&&b,touch:"ontouchstart"in window,tizen:"tizen"in window,webOS:"webos"in window}}();switch(t){case"com.widevine.alpha":return e.chrome||e.firefox||e.edge||e.opera;case"org.w3.clearkey":return e.chrome||e.firefox;case"com.apple.fps.1_0":return e.safari;case"com.microsoft.playready":return e.edge}}let sc="application/vnd.apple.mpegURL",Fd=[sc,"application/x-mpegurl"],Bd=document.createElement("video").canPlayType(sc);function Ud(t){let{pathname:e}=function(i){let n=document.createElement("a");return n.href=i,n}(t);return e.endsWith(".m3u8")}let ln=window&&window.Hls||ni;function $d(t,e){let i=t.seekable;if(typeof t.opts!="object"||i.length==0)return{head:0,tail:0};let n=function(s){var a;let l=s.seekable;return l.length?s.hasState("is-chromecast-playing")||!((a=s.hls)===null||a===void 0?void 0:a.liveSyncPosition)?l.end(l.length-1):s.hls.liveSyncPosition:0}(t),r=e||t.live_state.dvr_window;return{head:n,tail:typeof r!="number"||n-r<0?i.start(0):n-r}}let ge={Unknown:"00-00",MediaUnknown:"01-00",MediaUnavailable:"01-01",MediaUnsupportedVideoFormat:"01-02",MediaUnsupportedAudioFormat:"01-03",MediaBitrateExceeded:"01-04",MediaBufferOverread:"01-05",MediaIntegerOverflow:"01-06",MediaQuotaExceeded:"01-07",MediaInvalidCompositionDuration:"01-08",MediaInvalidCompositionSourceDuration:"01-09",MediaInvalidCompositionSourceStartTime:"01-10",MediaMalformedDepth:"01-11",PlaybackUnknown:"02-00",PlaybackVideoBufferUnderRun:"02-01",PlaybackAudioBufferUnderRun:"02-02",PlaybackVideoBufferingTimeout:"02-03",PlaybackAudioBufferingTimeout:"02-04",PlaybackManifestParseError:"02-05",PlaybackVideoDecodeError:"02-06",PlaybackAudioDecodeError:"02-07",PlaybackDroppedFramesExceeded:"02-08",PlaybackPlayheadExceedsDuration:"02-09",PlaybackUnsupportedDevice:"02-10",PlaybackManifestLoadError:"02-11",PlaybackManifestLoadTimeout:"02-12",PlaybackManifestParsingError:"02-13",PlaybackManifestIncompatibleCodecs:"02-14",PlaybackLevelEmptyError:"02-15",PlaybackLevelLoadError:"02-16",PlaybackLevelLoadTimeout:"02-17",PlaybackLevelSwitchError:"02-18",PlaybackAudioTrackLoadError:"02-19",PlaybackAudioTrackLoadTimeout:"02-20",PlaybackFragLoadError:"02-21",PlaybackFragLoadTimeout:"02-22",PlaybackFragDecryptError:"02-23",PlaybackFragParsingError:"02-24",PlaybackFragGap:"02-25",PlaybackRemuxAllocError:"02-26",PlaybackBufferAddCodecError:"02-27",PlaybackBufferIncompatibleCodecs:"02-28",PlaybackBufferAppendError:"02-29",PlaybackBufferStalledError:"02-30",PlaybackBufferFullError:"02-31",PlaybackBufferSeekOverHole:"02-32",PlaybackBufferNudgeOnStall:"02-33",PlaybackInternalException:"02-34",PlaybackInternalAborted:"02-35",PlaybackManifestLoaderFailure:"02-36",PlaybackSegmentBaseLoaderError:"02-37",PlaybackTimeSyncFailed:"02-38",PlaybackFragmentLoaderFailure:"02-39",PlaybackAppendError:"02-40",PlaybackRemoveError:"02-41",PlaybackDataUpdateFailed:"02-42",PlaybackManifestNoStreams:"02-43",PlaybackUnknownManifestType:"02-44",PlaybackDashInsufficientSegmentInfo:"02-45",PlaybackDashNoRepresentations:"02-46",PlaybackDashNoAdaptationSets:"02-47",PlaybackDashNoInitSegment:"02-48",PlaybackDashUnsupportedContainerFormat:"02-49",PlaybackDashKeySystemMismatch:"02-50",PlaybackMultipleKeyIDs:"02-51",PlaybackDashConflictingKeyIDs:"02-52",PlaybackRestrictedStreams:"02-53",PlaybackHlsMasterAndMediaTags:"02-54",PlaybackRepresentationIdConflict:"02-55",PlaybackHlsUnsupportedKeyFormats:"02-56",PlaybackManifestNoVariants:"02-57",PlaybackHlsUndeclaredVariables:"02-58",PlaybackAes128InvalidKeyLength:"02-59",PlaybackDashConflictingAes128Keys:"02-60",PlaybackDashUnsupportedAes128Encryption:"02-61",PlaybackManifestPatchMismatch:"02-62",PlaybackEmptyMediaPlaylist:"02-63",PlaybackNonContiguousCompositionTrack:"02-64",PlaybackDecoderNotFound:"02-65",PlaybackDecoderTemporarilyUnavailable:"02-66",PlaybackIncompatibleAsset:"02-67",PlaybackNoCompatibleExternalDisplay:"02-69",PlaybackOutOfMemory:"02-70",PlaybackToneMappingFailed:"02-71",PlaybackVideoCompositorFailed:"02-72",NetworkUnknown:"03-00",NetworkNoInternet:"03-01",NetworkRequestTimeout:"03-02",NetworkUnableToResolveHost:"03-03",NetworkResourceNotFound:"03-04",NetworkExpiredUrl:"03-05",NetworkUrlResolutionFailed:"03-06",NetworkDownloadErrorIdManifest:"03-07",NetworkDownloadErrorIdSidx:"03-08",NetworkDownloadErrorIdContent:"03-09",NetworkDownloadErrorIdInitialization:"03-10",NetworkDownloadErrorIdXlink:"03-11",NetworkHttpRequestFailed:"03-12",NetworkMaxRetriesExceeded:"03-13",NetworkSegmentMissing:"03-14",NetworkHttp400BadRequest:"03-400",NetworkHttp401Unauthorized:"03-401",NetworkHttp402PaymentRequired:"03-402",NetworkHttp403Forbidden:"03-403",NetworkHttp404NotFound:"03-404",NetworkHttp405MethodNotAllowed:"03-405",NetworkHttp406NotAcceptable:"03-406",NetworkHttp407ProxyAuthenticationRequired:"03-407",NetworkHttp408RequestTimeout:"03-408",NetworkHttp409Conflict:"03-409",NetworkHttp410Gone:"03-410",NetworkHttp411LengthRequired:"03-411",NetworkHttp412PreconditionFailed:"03-412",NetworkHttp413PayloadTooLarge:"03-413",NetworkHttp414URITooLong:"03-414",NetworkHttp415UnsupportedMediaType:"03-415",NetworkHttp416RangeNotSatisfiable:"03-416",NetworkHttp417ExpectationFailed:"03-417",NetworkHttp418ImATeapot:"03-418",NetworkHttp421MisdirectedRequest:"03-421",NetworkHttp422UnprocessableEntity:"03-422",NetworkHttp423Locked:"03-423",NetworkHttp424FailedDependency:"03-424",NetworkHttp425TooEarly:"03-425",NetworkHttp426UpgradeRequired:"03-426",NetworkHttp428PreconditionRequired:"03-428",NetworkHttp429TooManyRequests:"03-429",NetworkHttp431RequestHeaderFieldsTooLarge:"03-431",NetworkHttp451UnavailableForLegalReasons:"03-451",NetworkHttp500InternalServerError:"03-500",NetworkHttp501NotImplemented:"03-501",NetworkHttp502BadGateway:"03-502",NetworkHttp503ServiceUnavailable:"03-503",NetworkHttp504GatewayTimeout:"03-504",NetworkHttp505HTTPVersionNotSupported:"03-505",NetworkHttp506VariantAlsoNegotiates:"03-506",NetworkHttp507InsufficientStorage:"03-507",NetworkHttp508LoopDetected:"03-508",NetworkHttp510NotExtended:"03-510",NetworkHttp511NetworkAuthenticationRequired:"03-511",ContentProtectionUnknown:"04-00",ContentProtectionConcurrentStreamLimitExceeded:"04-01",ContentProtectionEntitlementRefused:"04-02",ContentProtectionLicenseExpired:"04-03",ContentProtectionBadLicenseRequest:"04-04",ContentProtectionLicenseServerTimeout:"04-05",ContentProtectionInsufficientHDCPSupport:"04-06",ContentProtectionGeoRestricted:"04-07",ContentProtectionParentalControlRestricted:"04-08",ContentProtectionCDNUnauthorized:"04-09",ContentProtectionInvalidAccessToken:"04-10",ContentProtectionKeySystemNoKeys:"04-11",ContentProtectionKeySystemNoAccess:"04-12",ContentProtectionKeySystemNoSession:"04-13",ContentProtectionKeySystemNoConfiguredLicense:"04-14",ContentProtectionKeySystemCertificateRequestFailed:"04-15",ContentProtectionKeySystemCertificateUpdateFailed:"04-16",ContentProtectionKeySystemSessionUpdateFailed:"04-17",ContentProtectionKeySystemStatusOutputRestricted:"04-18",ContentProtectionKeySystemStatusInternalError:"04-19",ContentProtectionKeyLoadError:"04-20",ContentProtectionKeyLoadTimeout:"04-21",ContentProtectionCapabilityMediaKeysError:"04-22",ContentProtectionManifestKeySystemUnknown:"04-23",ContentProtectionKeySystemUnavailable:"04-24",ContentProtectionCDMCreationFailed:"04-25",ContentProtectionCDMAttachFailed:"04-26",ContentProtectionCDMServerCertificateRejected:"04-27",ContentProtectionCDMSessionCreationFailed:"04-28",ContentProtectionCDMLicenseRequestFailed:"04-29",ContentProtectionCDMLicenseResponseRejected:"04-30",ContentProtectionManifestMissingDRMInfo:"04-31",ContentProtectionLicenseServerMissing:"04-32",ContentProtectionOfflineSessionRemoved:"04-33",ContentProtectionInitDataTransformationError:"04-34",ContentProtectionServerCertificateRequestFailed:"04-35",ContentProtectionInsufficientHDCPVersion:"04-36",ContentProtectionHDCPVersionCheckFailed:"04-37",AdsUnknown:"08-00",AdsVastParseError:"08-100",AdsInvalidVastSchema:"08-101",AdsVastVersionNotSupported:"08-102",AdsUnexpectedAdType:"08-200",AdsCreativeLinearityMismatch:"08-201",AdsCreativeDurationMismatch:"08-202",AdsCreativeSizeMismatch:"08-203",AdsWrapperVastError:"08-300",AdsVastResponseRedirectTimeout:"08-301",AdsWrapperLimitReached:"08-302",AdsVastResponseEmpty:"08-303",AdsLinearAdDisplayError:"08-400",AdsMediaFileNotFound:"08-401",AdsMediaFileUnavailable:"08-402",AdsUnsupportedMimeType:"08-403",AdsUnableToDisplayMediaFile:"08-405",AdsMezzanineFileMissing:"08-406",AdsMezzanineFileDownloaded:"08-407",AdsRejectedAd:"08-408",AdsInteractiveCreativeError:"08-409",AdsVerificationNodeExecutionError:"08-410",AdsNonLinearAdDisplayError:"08-500",AdsNonLinearAdSizeMismatch:"08-501",AdsNonLinearAdFetchError:"08-502",AdsNonLinearUnsupportedType:"08-503",AdsCompanionAdDisplayError:"08-600",AdsCompanionAdSizeMismatch:"08-601",AdsRequiredCompanionAdError:"08-602",AdsCompanionAdFetchError:"08-603",AdsUndefinedVastError:"08-900",AdsUnknownVpaidError:"08-901",AdsVastDocumentEmpty:"08-999"},Jo=Object.fromEntries(Object.entries(ge).map(([t,e])=>[e,t])),Gd=[1e7]+"-1000-4000-8000-100000000000",ac="on",Va="off";class oa extends Error{static getErrorKey(t){return t in Jo?Jo[t]:Jo["00-00"]}constructor(t,e,i={}){super(t),this.message=t,this.flowplayerErrorCode=e,this.config=i,this.id=typeof crypto=="undefined"?"":Gd.replace(/[018]/g,(n)=>(n^crypto.getRandomValues(new Uint8Array(1))[0]&15>>n/4).toString(16)),this.isFatal=!!i.isFatal,this.errorKey=oa.getErrorKey(this.flowplayerErrorCode)||"unknown"}toJSON(){return{message:this.message,flowplayer_error_code:this.flowplayerErrorCode,id:this.id,root_error_id:this.config.rootErrorId,resource:this.config.resource,is_fatal:this.isFatal,is_retry:!!this.config.isRetry}}}function Hd(t){switch(t){case H.KEY_SYSTEM_NO_KEYS:return ge.ContentProtectionKeySystemNoKeys;case H.KEY_SYSTEM_NO_ACCESS:return ge.ContentProtectionKeySystemNoAccess;case H.KEY_SYSTEM_NO_SESSION:return ge.ContentProtectionKeySystemNoSession;case H.KEY_SYSTEM_NO_CONFIGURED_LICENSE:return ge.ContentProtectionKeySystemNoConfiguredLicense;case H.KEY_SYSTEM_LICENSE_REQUEST_FAILED:return ge.ContentProtectionCDMLicenseRequestFailed;case H.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED:return ge.ContentProtectionServerCertificateRequestFailed;case H.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED:return ge.ContentProtectionKeySystemCertificateUpdateFailed;case H.KEY_SYSTEM_SESSION_UPDATE_FAILED:return ge.ContentProtectionKeySystemSessionUpdateFailed;case H.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:return ge.ContentProtectionKeySystemStatusOutputRestricted;case H.KEY_SYSTEM_STATUS_INTERNAL_ERROR:return ge.ContentProtectionKeySystemStatusInternalError;case H.MANIFEST_LOAD_ERROR:return ge.PlaybackManifestLoadError;case H.MANIFEST_LOAD_TIMEOUT:return ge.PlaybackManifestLoadTimeout;case H.MANIFEST_PARSING_ERROR:return ge.PlaybackManifestParsingError;case H.MANIFEST_INCOMPATIBLE_CODECS_ERROR:return ge.PlaybackManifestIncompatibleCodecs;case H.LEVEL_EMPTY_ERROR:return ge.PlaybackLevelEmptyError;case H.LEVEL_LOAD_ERROR:return ge.PlaybackLevelLoadError;case H.LEVEL_LOAD_TIMEOUT:return ge.PlaybackLevelLoadTimeout;case H.LEVEL_PARSING_ERROR:return ge.PlaybackManifestParsingError;case H.LEVEL_SWITCH_ERROR:return ge.PlaybackLevelSwitchError;case H.AUDIO_TRACK_LOAD_ERROR:return ge.PlaybackAudioTrackLoadError;case H.AUDIO_TRACK_LOAD_TIMEOUT:return ge.PlaybackAudioTrackLoadTimeout;case H.SUBTITLE_LOAD_ERROR:return ge.NetworkDownloadErrorIdContent;case H.SUBTITLE_TRACK_LOAD_TIMEOUT:return ge.NetworkRequestTimeout;case H.FRAG_LOAD_ERROR:return ge.PlaybackFragLoadError;case H.FRAG_LOAD_TIMEOUT:return ge.PlaybackFragLoadTimeout;case H.FRAG_DECRYPT_ERROR:return ge.PlaybackFragDecryptError;case H.FRAG_PARSING_ERROR:return ge.PlaybackFragParsingError;case H.FRAG_GAP:return ge.PlaybackFragGap;case H.REMUX_ALLOC_ERROR:return ge.PlaybackRemuxAllocError;case H.KEY_LOAD_ERROR:return ge.ContentProtectionKeyLoadError;case H.KEY_LOAD_TIMEOUT:return ge.ContentProtectionKeyLoadTimeout;case H.BUFFER_ADD_CODEC_ERROR:return ge.PlaybackBufferAddCodecError;case H.BUFFER_INCOMPATIBLE_CODECS_ERROR:return ge.PlaybackBufferIncompatibleCodecs;case H.BUFFER_APPEND_ERROR:return ge.PlaybackBufferAppendError;case H.BUFFER_APPENDING_ERROR:return ge.PlaybackAppendError;case H.BUFFER_STALLED_ERROR:return ge.PlaybackBufferStalledError;case H.BUFFER_FULL_ERROR:return ge.PlaybackBufferFullError;case H.BUFFER_SEEK_OVER_HOLE:return ge.PlaybackBufferSeekOverHole;case H.BUFFER_NUDGE_ON_STALL:return ge.PlaybackBufferNudgeOnStall;case H.INTERNAL_EXCEPTION:return ge.PlaybackInternalException;case H.INTERNAL_ABORTED:return ge.PlaybackInternalAborted;case H.UNKNOWN:default:return ge.Unknown}}function Kd(t,e,i){let n={},r={error_type:e.type,resource:e.url||t.original_src,isFatal:e.fatal};return e.fatal?(e.type===i.ErrorTypes.MEDIA_ERROR&&(r.showErrorUI=!1,n.retry=ac,n.retryTimeout=0),[i.ErrorTypes.KEY_SYSTEM_ERROR,i.ErrorTypes.MUX_ERROR,i.ErrorTypes.OTHER_ERROR].includes(e.type)&&(n.retry=Va),Object.assign(r,{retryOpts:n})):(n.retry=Va,Object.assign(r,{retryOpts:n}))}var la,ca;function oc(t,e){let i=function(){try{return localStorage.getItem("flowplayer/debug")}catch(r){return""}}(),n=(r,...s)=>{try{let a=(e==null?void 0:e.debug)||i;a&&t.match(a)&&console.log(`flowplayer/${t} -- ${r}`,...s)}catch(a){console.warn(a)}};return n.log=n,n}(function(t){t[t.LOW=1]="LOW",t[t.MEDIUM=2]="MEDIUM",t[t.HIGH=4]="HIGH"})(la||(la={})),function(t){t[t.FRAGMENT_ERRORS=0]="FRAGMENT_ERRORS",t[t.STALE_MANIFEST=1]="STALE_MANIFEST"}(ca||(ca={}));let Vd=oc("hls:failover");class lc{constructor(){this.playlistCounts={},this.fragmentFailures={},this.ttlMilliseconds=3000}setHls(t){this.hls=t}reset(){return this.playlistCounts={},this.fragmentFailures={},this}failover(t){var e,i;this.reset();let n=this.hls;if(!n)return;let{levelController:r,streamController:s}=n,a=r.steering;if(!r||!s||!a)return;let l=r.currentLevel;if(!l)return;let d=a.levels.filter((u)=>u.pathwayId!==l.pathwayId);d.length&&((e=n.media)===null||e===void 0||e.dispatchEvent(new CustomEvent("hls/failover",{detail:{reason:t,from:(i=l.details)===null||i===void 0?void 0:i.url}})),r._levels=s.levels=d)}currentLevel(){var t;return(t=this.hls)===null||t===void 0?void 0:t.levels[this.hls.currentLevel]}nextTTL(){var t;let e=Date.now()+this.ttlMilliseconds,i=this.currentLevel();if(!i)return e;let n=(t=i.details)===null||t===void 0?void 0:t.averagetargetduration;return n?Date.now()+500*n:e}ensurePlaylistUpdating(t,e){this.playlistCounts[t]||(this.playlistCounts[t]={checksum:e,count:0,ttl:this.nextTTL()});let i=this.playlistCounts[t];Date.now()<i.ttl||(i.count=i.checksum===e?i.count+1:0,i.ttl=this.nextTTL(),i.checksum=e,i.count<3||(Vd(`${t} / no change in ${i.count} tries`,this.playlistCounts),this.failover(ca.STALE_MANIFEST)))}trackFragmentError(t){let e=this.fragmentFailures[t]||0;this.fragmentFailures[t]=e+1,this.fragmentFailures[t]>2&&this.failover(ca.FRAGMENT_ERRORS)}createPlaylistLoader(t){let e=this;return class extends ni.DefaultConfig.loader{load(i,n,r){let s=r.onSuccess;r.onSuccess=({data:a,url:l},...d)=>{(i==null?void 0:i.type)==="manifest"&&(t.manifest=a),e.ensurePlaylistUpdating(l,a),s({data:a,url:l},...d)},super.load(i,n,r)}}}createFragmentLoader(){let t=this;return class extends ni.DefaultConfig.loader{load(e,i,n){let r=n.onError;n.onError=(s)=>{t.trackFragmentError(s.url),r(...arguments)},super.load(e,i,n)}}}}let Ss=oc("hls");function Wd(t,e){if(t.drm&&location.protocol!=="https:"&&location.hostname!=="localhost"&&location.hostname!=="127.0.0.1"){let i=new oa("drm is unavailable in http contexts",ge.ContentProtectionKeySystemUnavailable,{resource:t.src,isFatal:!0,retryOpts:{retry:Va}});return e.emit("flowplayer:error",{error:i}),!1}return!0}function jd(t,e,i,n){if(!t.reaper||!i.src)return;if(t.hls&&t.hls.destroy(),!Wd(i,t))return;(function(r,s,a,l,d){(function(u,f){u.on(ni.Events.AUDIO_TRACKS_UPDATED,function(b,T){f.emit("audio:tracks",T.audioTracks)}),u.on(ni.Events.AUDIO_TRACK_SWITCHING,function(b,T){f.emit("audio:update",T)}),u.on(ni.Events.MANIFEST_PARSED,function(b,T){T.audioTracks&&f.emit("audio:tracks",T.audioTracks)});let E=function(b){var T;let _=(T=b.data)===null||T===void 0?void 0:T.id;typeof _=="number"&&_!=u.audioTrack&&setTimeout(function(){u.audioTrack=_},0)};f.on("audio:set",E),f.on("src",function(){f.off("audio:set",E)})})(r,l),function(u,f){u.on(ni.Events.NON_NATIVE_TEXT_TRACKS_FOUND,(E,b)=>{u.subtitleTracks.length||f.emit("tracks:text:all",b)}),u.on(ni.Events.SUBTITLE_TRACKS_UPDATED,(E,b)=>{f.emit("tracks:text:all",{tracks:b.subtitleTracks.map((T)=>Object.assign({},{subtitleTrack:T}))})}),u.on(ni.Events.CUES_PARSED,(E,b)=>{f.emit("cues:parsed",b)})}(r,l),function(u,f,E){u.on("src",function(){u.hls&&(u.hls.destroy(),delete u.hls,f.manifest=void 0)}),u.on("reap",function(){E&&E.destroy()})}(l,a,r),function(u,f,E){let b={media_recovers:0,audio_swaps:0},T=0;u.on("error",(_)=>{var D,w,x;u.hls&&((D=u==null?void 0:u.error)===null||D===void 0?void 0:D.code)===MediaError.MEDIA_ERR_DECODE&&(_.preventDefault(),++T,u.emit("flowplayer:error",{error:new oa((x=(w=u==null?void 0:u.error)===null||w===void 0?void 0:w.message)!==null&&x!==void 0?x:"An error occurred while decoding the media.",ge.PlaybackVideoDecodeError,{isFatal:!0,showErrorUI:T>=5,retryOpts:{retry:T<5?ac:Va,retryTimeout:0}})}))}),u.on("canplay",()=>T=0),u.on("retry",(_)=>{var D,w,x;if(!u.hls)return;_.preventDefault();let M=_.detail.error,V=M.config;return M.flowplayerErrorCode===ge.PlaybackVideoDecodeError?(f.config.autoStartLoad=!0,f.recoverMediaError(),u.setState("is-waiting",!1)):V.error_type?V.error_type===ln.ErrorTypes.NETWORK_ERROR?(E.src&&f.loadSource(u.original_src),V.autoplay?u.togglePlay(!0):(u.setState("is-waiting",!1),u.emit("retry/done"))):V.error_type===ln.ErrorTypes.MEDIA_ERROR?(Ss("recovering from "+V.error_type),b.media_recovers+5000>Date.now()&&b.audio_swaps==0?((D=u.hls)===null||D===void 0||D.swapAudioCodec(),Ss(`calling swapAudioCodec() : {count=${b.audio_swaps}}`),b.audio_swaps++,b.media_recovers=Date.now(),(w=u.hls)===null||w===void 0||w.recoverMediaError(),u.setState("is-waiting",!1)):(b.media_recovers=Date.now(),b.audio_swaps=0,(x=u.hls)===null||x===void 0||x.recoverMediaError(),u.setState("is-waiting",!1))):void 0:void 0}),f.on(ln.Events.ERROR,function(_,D){var w;u.reaper!=0&&(function(x,M,V){x.emit("flowplayer:error",{error:new oa(M.error.message,Hd(M.details),Kd(x,M,V))})}(u,D,ln),D.fatal&&([ln.ErrorTypes.NETWORK_ERROR,ln.ErrorTypes.MEDIA_ERROR].includes(D.type)||(w=u.hls)===null||w===void 0||w.destroy()))})}(l,r,d),function(u,f){u.on("remotesession:started",()=>{u.hls&&(u.hls.stopLoad(),delete u.opts.start_time)}),u.on("remotesession:ended",(E)=>{if(!f)return;if(!u.opts.live)return da(u,E.detail.currentTime);E.preventDefault();let b=function(T){let _=T.currentTime,D=$d(T);return{progress:Math.min(100,Math.max(0,(_-D.tail)/(D.head-D.tail)*100)),is_live:_-D.head>=-10}}(u).progress;f.once(ln.Events.LEVEL_LOADED,()=>{if(u.hls!==f)return;let T=u.live_state.dvr_window||0,_=f.liveSyncPosition||u.seekable.end(0);if(u.hasState("no-timeline")||isNaN(b))return u.currentTime=_;u.currentTime=_-T*((100-b)/100)}),da(u)})}(l,r),function(u,f,E,b,T){let _;u.once(ni.Events.LEVEL_LOADING,function(){f.emit("content:loadstart")}),u.on(ln.Events.MANIFEST_PARSED,function(x,M){let V=cc(M.levels);f.emit("qualities",V),f.emit("parse:video:tracks",{url:T.src,manifest:b.manifest}),function(X,ot,et){var vt,St;if(!X.hls)return;Ss("Initializer::maybe_start_load_with_quality (start_quality, preload): (%d, %s)",ot.start_quality,ot.preload),ot.start_quality!==void 0&&et.length&&(la.HIGH&ot.start_quality&&(X.hls.startLevel=et[0].level),la.LOW&ot.start_quality&&(X.hls.startLevel=et[et.length-1].level),la.MEDIUM&ot.start_quality&&(X.hls.startLevel=et[Math.ceil(et.length/2)-1].level));let nt=((vt=ot.hls)===null||vt===void 0?void 0:vt.maxBufferSize)||1024,it=((St=ot.hls)===null||St===void 0?void 0:St.maxBufferLength)||30;Ss("Setting maxBufferSize to %d",nt),X.hls.config.maxBufferSize=nt,ot.preload==="metadata"&&Ss("preload === metadata, setting maxBufferLength to 1sec"),X.hls.config.maxBufferLength=ot.preload==="metadata"?1:it,X.once("playing",()=>{Ss("Playback started, set maxBufferLenght to %d",it),X.hls&&(X.hls.config.maxBufferLength=it)}),(ot.preload!=="none"||ot.autoplay&&X.hasState("is-in-viewport"))&&da(X,ot.start_time||-1)}(f,E,V.slice(0,-1))}),f.on(["beforeplay","viewenter"],(x)=>{if(f.hls&&!f.hasState("is-casting")&&!f.hasState("is-loaded")&&E.preload==="none"&&(x.type!=="viewenter"||E.autoplay))return f.hls.levels.length?da(f,E.start_time||-1):void f.hls.once(ln.Events.MANIFEST_PARSED,()=>{setTimeout(()=>{da(f,E.start_time||-1)},0)})}),u.on(ln.Events.LEVEL_SWITCHING,(x,M)=>{if(u.nextLoadLevel===_)return;_=u.nextLoadLevel;let V=u.levels[u.currentLevel],X=u.levels[M.level];f.emit("qualitychange",{before:V,after:X,plugin:"hls",automatic:u.autoLevelEnabled,downscale:X.bitrate<V.bitrate})});let D=function(x){var M;let V=(M=x.data)===null||M===void 0?void 0:M.level;typeof V=="number"&&(u.levels[V]||V===-1?u.nextLevel=V:console.error(new Error("skipping invalid quality: "+x.data)))};f.on("quality:set",D),f.on("src",function(){f.off("quality:set",D)}),f.on("tracks:video:select",function(x){var M,V;let X=x.detail.track,ot=(M=f.tracks)===null||M===void 0?void 0:M.find((St)=>St.selected&&St!==X),et=f.hls;if(!ot||!X||!et)return;ot.selected=!1;let vt=(V=X.data)===null||V===void 0?void 0:V.slice(0).map((St)=>(St.details=void 0,St));et.stopLoad(),et.levelController._levels=et.streamController.levels=vt,et.currentLevel=-1,f.emit("qualities",cc(vt)),f.hasState("is-starting")&&!f.hasState("is-loading")||et.startLoad()});let w=f.opt("start_time");w&&f.once("loadedmetadata",function(){f.currentTime=w})}(r,l,s,a,d),function(u,f){u.on(ni.Events.FRAG_PARSING_METADATA,function(E,b){f.emit("ssai:hls:metadata",b)})}(r,l),function(u,f){u.on(ni.Events.BUFFER_CREATED,(E,b)=>{let T=b.tracks.video||b.tracks.audiovideo;if(!T)return f.emit("audioonlysource");let _=T==null?void 0:T.metadata.height,D=T==null?void 0:T.metadata.width;!f.opt("ratio")&&_&&D&&f.setOpts({ratio:D+":"+_})})}(r,l),function(u,f,E){let b="live"in E==0;f.on(ln.Events.LEVEL_LOADED,function(T,_){var D,w;b&&u.setOpts({live:_.details.live});let x=(w=(D=f.levels[_.level])===null||D===void 0?void 0:D.details)===null||w===void 0?void 0:w.fragments;if(!x)return;let M=x[1].start||0,V=f.liveSyncPosition||x[x.length-1].end;u.emit("dvr/window",V-M)})}(l,r,s)})(function(r,s,a,l){var d,u,f,E,b,T,_,D;let w=new lc,x=function(V){return Object.assign(Object.assign({autoStartLoad:!1,levelLoadingMaxRetry:1},V.hls),{startPosition:V.start_time||-1})}(r);x.renderTextTracksNatively=!1,x.captionsTextTrack1Label=(u=(d=r==null?void 0:r.hls)===null||d===void 0?void 0:d.captionsTextTrack1Label)!==null&&u!==void 0?u:"CC1",x.captionsTextTrack2Label=(E=(f=r==null?void 0:r.hls)===null||f===void 0?void 0:f.captionsTextTrack2Label)!==null&&E!==void 0?E:"CC2",x.captionsTextTrack3Label=(T=(b=r==null?void 0:r.hls)===null||b===void 0?void 0:b.captionsTextTrack3Label)!==null&&T!==void 0?T:"CC3",x.captionsTextTrack4Label=(D=(_=r==null?void 0:r.hls)===null||_===void 0?void 0:_.captionsTextTrack4Label)!==null&&D!==void 0?D:"CC4",x.pLoader=w.createPlaylistLoader(s),x.fLoader=w.createFragmentLoader();let M=a.hls=new ln(x);return w.setHls(M),M.subtitleDisplay=!1,M.attachMedia(a),M.loadSource(l.src),setTimeout(()=>a.emit("hls:attached",{hls:a.hls})),M}(e,n,t,i),e,n,t,i)}function da(t,e){var i;!t.hasState("is-loaded")&&t.setState("is-loading",!0),(i=t.hls)===null||i===void 0||i.startLoad(e)}function cc(t){let e=t.map((i,n)=>Object.assign(i,{level:n})).sort((i,n)=>n.width-i.width);return t.length>1&&t.every((i)=>i.bitrate!==void 0)&&e.push({name:"AUTO",level:-1,width:0,height:0}),e}var ua;let qd=((ua=class t{init(){}onload(e,i,n,r){jd(n,e,r,this)}wants(e,i,n){return ni.isSupported()&&function({src:r="",type:s="",drm:a},l){let d=l==null?void 0:l.hls,u=Boolean(d==null?void 0:d.native);return(!Bd||!u)&&(!(a&&!Object.keys(a).find((f)=>Md(f)))&&(!(!s||!Fd.includes(s))||Ud(r)))}(i,n)}}).pluginName="hls",ua.events=Pd,ua.version=ni.version,ua.failover={Reasons:ca},ua);return function(t,e){if(typeof lo=="object"&&typeof co!="undefined")return e;if(document.currentScript===null)return e;"flowplayer"in t||(t.flowplayer={extensions:[]});let i=t.flowplayer;return typeof i=="function"?(i(e),e):(Array.isArray(i.extensions)||(i.extensions=[]),~i.extensions.indexOf(e)||i.extensions.push(e),e)}(window,qd)})});var Yc=gn((uo,ho)=>{(function(o,g){typeof uo=="object"&&typeof ho!="undefined"?ho.exports=g():typeof define=="function"&&define.amd?define(g):((o=typeof globalThis!="undefined"?globalThis:o||self).flowplayer=o.flowplayer||{},o.flowplayer.qsel=g())})(uo,function(){function o(ft,Ct,Mt){let lt=function(C){return Array.isArray(C)?C.slice(0):C.split(".")}(Ct);for(;lt.length;){if(ft==null)return Mt;let C=lt.shift();if(typeof C!="string")return Mt;ft=ft[C]}return ft==null?Mt:ft}let g=(ft,Ct)=>new(((Mt,lt)=>{let C=Mt.get(lt);if(!C)throw new Error(`no flowplayer component with the name ${lt} exists`);let W=window.customElements.get(lt);if(!W)throw new Error(`no default flowplayer component with the name ${lt} exists`);let G=window.customElements.get(C);return typeof G!="function"?W:G})(ft._customElements,Ct))(ft);class S extends HTMLElement{constructor(ft){super(),this.player=ft}}let R="fp-on",L="fp-invis";class P extends S{constructor(ft){super(ft),this.player=ft,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=z(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener("click",(Ct)=>{if(Ct.defaultPrevented)return;Ct.preventDefault();let Mt=this.menuContainer.open;Mt||(F(),document.active_menu=this.menuContainer),this.menuContainer.open=!Mt,ft.root.classList.toggle("has-menu-opened",!Mt),this.summaryEle.setAttribute("aria-expanded",Mt?"false":"true")}),this.addEventListener("focusin",(Ct)=>{let Mt=Ct.target;Mt instanceof HTMLLIElement&&Mt.setAttribute("aria-selected","true")}),this.addEventListener("focusout",(Ct)=>{let Mt=Ct.target;Mt instanceof HTMLLIElement&&Mt.setAttribute("aria-selected","false")}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(ft){if(this.className=ft.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=ft.id||z()),this.summaryEle.setAttribute("aria-label",ft.menuTitle||"Menu"),ft.summaryTitle&&(this.summaryEle.textContent=ft.summaryTitle),ft.summaryIcon){let Ct=g(this.player,ft.summaryIcon);Ct.setAttribute("tabindex",""),this.summaryEle.append(Ct)}ft.menuTitle&&(this.menuTitle.textContent=ft.menuTitle),this.menu.classList.toggle("fp-icons",!!ft.icons),this.addEventListener(ft.options_event,(Ct)=>{this.render(Ct.data)}),ft.item_selected_event&&this.addEventListener(ft.item_selected_event,(Ct)=>{Ct.data!==void 0&&this.select_item(Ct.data.selected_index)})}render(ft){this.olEle&&(this.olEle.innerHTML="",ft&&ft.forEach(this.menuOption,this),this.toggle_visibility(!(ft==null?void 0:ft.length)))}menuOption(ft,Ct){let Mt=document.createElement("li");Mt.setAttribute("role","menuitem"),Mt.setAttribute("aria-selected","false"),Mt.setAttribute("tabindex","0"),ft.icon&&Mt.append(ft.icon);let lt=document.createElement("span");lt.textContent=ft.text,Mt.append(lt),Mt.addEventListener("click",()=>{this.select_item(Ct),typeof ft.onclick=="function"&&ft.onclick()}),this.olEle.appendChild(Mt),ft.selected&&this.select_item(Ct)}select_item(ft){this.options.forEach((Ct,Mt)=>{Ct.classList.toggle(R,Mt===ft)})}unselect_item(){this.options.forEach((ft)=>{ft.classList.remove(R)})}toggle_visibility(ft){this.classList.toggle(L,ft),this.menu.style.setProperty("display",ft?"none":"flex")}}function F(){Array.from(document.querySelectorAll(".fp-engine")).forEach((ft)=>{var Ct;let Mt=ft.root.querySelector("details[open].fp-menu-container");Mt&&(Mt.open=!1,(Ct=Mt.querySelector("summary"))===null||Ct===void 0||Ct.removeAttribute("aria-expanded"),ft.root.classList.toggle("has-menu-opened",!1))})}function z(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function j(ft,Ct,Mt){let lt=function(C,W){let G=new CustomEvent(C,{detail:W,cancelable:!0});return W&&Object.defineProperty(G,"data",{get:()=>W}),G}(Ct,Mt);return ft.dispatchEvent(lt),ft}document.addEventListener("click",function(ft){this.active_menu&&!ft.composedPath().includes(this.active_menu)&&(F(),this.active_menu=void 0)}),function(){let ft=!1;try{let Ct=Object.defineProperty({},"passive",{get:function(){ft=!0}});window.addEventListener("testPassive",null,Ct),window.removeEventListener("testPassive",null,Ct)}catch(Ct){}}();var Nt,ne=Object.freeze({__proto__:null,SET_QUALITY:"quality:set",TRACKS:"quality:tracks",SWITCH:"quality:update",QUALITIES:"qualities"});let A=((Nt=class ft{constructor(Ct){((Mt,lt,C)=>{window.customElements.get(lt)||window.customElements.define(lt,C),Mt.customElements.get(lt)||Mt.customElements.set(lt,lt)})(Ct,"flowplayer-quality-menu",P)}init(Ct,Mt,lt){if(Ct.qsel===!1)return;let C=g(lt,"flowplayer-quality-menu");C instanceof P&&C.setMenuAttrs({summaryTitle:"HD",menuTitle:lt.i18n("qsel.menu_title"),class:"fp-qsel",options_event:Nt.events.TRACKS,item_selected_event:Nt.events.SWITCH}),lt.on("mount",function(){var W;(W=function(G,J){let st=G._customElements.get(J);return st&&G.root.querySelector(st)||void 0}(lt,lt.hasState("is-tv")?"flowplayer-tv-menu":"flowplayer-control"))===null||W===void 0||W.append(C)}),lt.on("qualities",(W)=>{if(!Array.isArray(W.detail))return;let G=W.detail,J=o(Ct,"qsel.labels",[]);j(C,Nt.events.TRACKS,G.flatMap((st,pt)=>typeof J[pt]!="boolean"||J[pt]?{text:H(st,J[pt]),onclick:Ft.bind(0,lt,st)}:[])),C instanceof P&&C.toggle_visibility(G.length<2)})}}).pluginName="qsel",Nt.events=ne,Nt);function Ft(ft,Ct){ft.emit("quality:set",Ct)}function H(ft,Ct){return Ct||(ft.height?`${ft.height}p${ft.height>719?" HD":""}`:ft.width?`${ft.width}p${ft.height>1279?" HD":""}`:("name"in ft)&&ft.name?ft.name:"0p")}return function(ft,Ct){if(typeof uo=="object"&&typeof ho!="undefined")return Ct;if(document.currentScript===null)return Ct;"flowplayer"in ft||(ft.flowplayer={extensions:[]});let Mt=ft.flowplayer;return typeof Mt=="function"?(Mt(Ct),Ct):(Array.isArray(Mt.extensions)||(Mt.extensions=[]),~Mt.extensions.indexOf(Ct)||Mt.extensions.push(Ct),Ct)}(window,A)})});var zc=gn((fo,mo)=>{(function(o,g){typeof fo=="object"&&typeof mo!="undefined"?mo.exports=g():typeof define=="function"&&define.amd?define(g):((o=typeof globalThis!="undefined"?globalThis:o||self).flowplayer=o.flowplayer||{},o.flowplayer.share=g())})(fo,function(){let o={name:"fp-facebook"},g={name:"fp-link"},S={name:"fp-share"},R={name:"fp-embed"},L={name:"fp-twitter"};function P(dt,mt,Dt){let te=function(re){return Array.isArray(re)?re.slice(0):re.split(".")}(mt);for(;te.length;){if(dt==null)return Dt;let re=te.shift();if(typeof re!="string")return Dt;dt=dt[re]}return dt==null?Dt:dt}function F(){try{return(document.querySelector("meta[name='description']")||{content:""}).content}catch(dt){return""}}function z(dt){if(typeof dt.link=="string")return dt.link;let mt=document.querySelector("link[rel=canonical]");return mt?mt.href:window.location.toString()}class j extends HTMLElement{constructor(dt){super(),this.player=dt}}class Nt extends j{constructor(dt,mt){super(dt),this.classList.add("fp-icon",mt.name),mt.title&&this.setAttribute("title",mt.title),mt.title&&this.setAttribute("aria-label",mt.title),mt.translation_key&&this.setAttribute("aria-label",dt.i18n(mt.translation_key)),this.setAttribute("tabindex","0"),this.setAttribute("focusable","true")}}let ne=(dt,mt)=>new(((Dt,te)=>{let re=Dt.get(te);if(!re)throw new Error(`no flowplayer component with the name ${te} exists`);let we=window.customElements.get(te);if(!we)throw new Error(`no default flowplayer component with the name ${te} exists`);let se=window.customElements.get(re);return typeof se!="function"?we:se})(dt._customElements,mt))(dt),A=(dt,mt,Dt)=>{window.customElements.get(mt)||window.customElements.define(mt,Dt),dt.customElements.get(mt)||dt.customElements.set(mt,mt)},Ft="fp-on",H="fp-invis";class ft extends j{constructor(dt){super(dt),this.player=dt,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=Mt(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener("click",(mt)=>{if(mt.defaultPrevented)return;mt.preventDefault();let Dt=this.menuContainer.open;Dt||(Ct(),document.active_menu=this.menuContainer),this.menuContainer.open=!Dt,dt.root.classList.toggle("has-menu-opened",!Dt),this.summaryEle.setAttribute("aria-expanded",Dt?"false":"true")}),this.addEventListener("focusin",(mt)=>{let Dt=mt.target;Dt instanceof HTMLLIElement&&Dt.setAttribute("aria-selected","true")}),this.addEventListener("focusout",(mt)=>{let Dt=mt.target;Dt instanceof HTMLLIElement&&Dt.setAttribute("aria-selected","false")}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(dt){if(this.className=dt.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=dt.id||Mt()),this.summaryEle.setAttribute("aria-label",dt.menuTitle||"Menu"),dt.summaryTitle&&(this.summaryEle.textContent=dt.summaryTitle),dt.summaryIcon){let mt=ne(this.player,dt.summaryIcon);mt.setAttribute("tabindex",""),this.summaryEle.append(mt)}dt.menuTitle&&(this.menuTitle.textContent=dt.menuTitle),this.menu.classList.toggle("fp-icons",!!dt.icons),this.addEventListener(dt.options_event,(mt)=>{this.render(mt.data)}),dt.item_selected_event&&this.addEventListener(dt.item_selected_event,(mt)=>{mt.data!==void 0&&this.select_item(mt.data.selected_index)})}render(dt){this.olEle&&(this.olEle.innerHTML="",dt&&dt.forEach(this.menuOption,this),this.toggle_visibility(!(dt==null?void 0:dt.length)))}menuOption(dt,mt){let Dt=document.createElement("li");Dt.setAttribute("role","menuitem"),Dt.setAttribute("aria-selected","false"),Dt.setAttribute("tabindex","0"),dt.icon&&Dt.append(dt.icon);let te=document.createElement("span");te.textContent=dt.text,Dt.append(te),Dt.addEventListener("click",()=>{this.select_item(mt),typeof dt.onclick=="function"&&dt.onclick()}),this.olEle.appendChild(Dt),dt.selected&&this.select_item(mt)}select_item(dt){this.options.forEach((mt,Dt)=>{mt.classList.toggle(Ft,Dt===dt)})}unselect_item(){this.options.forEach((dt)=>{dt.classList.remove(Ft)})}toggle_visibility(dt){this.classList.toggle(H,dt),this.menu.style.setProperty("display",dt?"none":"flex")}}function Ct(){Array.from(document.querySelectorAll(".fp-engine")).forEach((dt)=>{var mt;let Dt=dt.root.querySelector("details[open].fp-menu-container");Dt&&(Dt.open=!1,(mt=Dt.querySelector("summary"))===null||mt===void 0||mt.removeAttribute("aria-expanded"),dt.root.classList.toggle("has-menu-opened",!1))})}function Mt(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function lt(dt,mt,Dt){let te=function(re,we){let se=new CustomEvent(re,{detail:we,cancelable:!0});return we&&Object.defineProperty(se,"data",{get:()=>we}),se}(mt,Dt);return dt.dispatchEvent(te),dt}function C(dt,mt){let Dt=dt._customElements.get(mt);return Dt&&dt.root.querySelector(Dt)||void 0}document.addEventListener("click",function(dt){this.active_menu&&!dt.composedPath().includes(this.active_menu)&&(Ct(),this.active_menu=void 0)}),function(){let dt=!1;try{let mt=Object.defineProperty({},"passive",{get:function(){dt=!0}});window.addEventListener("testPassive",null,mt),window.removeEventListener("testPassive",null,mt)}catch(mt){}}();let W="flowplayer-share-menu";var G;let J=((G=class dt{constructor(mt){this.umd=mt,this.share_options=[],A(mt,W,ft),A(this.umd,"flowplayer-facebook-icon",class extends Nt{constructor(Dt){super(Dt,o)}}),A(this.umd,"flowplayer-twitter-icon",class extends Nt{constructor(Dt){super(Dt,L)}}),A(this.umd,"flowplayer-link-icon",class extends Nt{constructor(Dt){super(Dt,g)}}),A(this.umd,"flowplayer-embed-icon",class extends Nt{constructor(Dt){super(Dt,R)}}),A(this.umd,"flowplayer-share-icon",class extends Nt{constructor(Dt){super(Dt,S)}})}init(mt,Dt,te){let re=ne(te,W);re instanceof ft&&re.setMenuAttrs({menuTitle:te.i18n("share.menu_title"),class:"fp-share-menu fp-togglable",summaryIcon:"flowplayer-share-icon",icons:!0,options_event:G.events.OPTIONS});let we={prev_config:0,webshare_listener:0};te.on("mount",function(){var se;(se=C(te,"flowplayer-header-left-zone"))===null||se===void 0||se.append(re),re instanceof ft&&re.menuContainer.addEventListener("toggle",function(){Dt.classList.toggle("is-share-menu",this.open);let q=C(te,"flowplayer-control");this.open&&(Dt.classList.contains("is-small")?te.pause():q&&function(tt,Lt){if(!Lt)return;tt.menu.style.maxHeight=Lt.getBoundingClientRect().top+parseFloat(window.getComputedStyle(Lt).getPropertyValue("padding"))-tt.menuContainer.getBoundingClientRect().bottom+"px"}(re,q))})}),te.on("config",(se)=>{let q=P(se,"data.share",{});if(q===!1)return re instanceof ft&&void re.classList.remove("webshare-enabled");if(we.prev_config===q)return;if(we.prev_config=q,re instanceof ft&&function(){try{return window.location.protocol==="https:"&&typeof navigator.share=="function"}catch(Lt){return!1}}()&&P(q,"web_share",!0))return function(Lt){Lt.classList.add("webshare-enabled")}(re),we.webshare_listener||function(Lt,_t,Gt){Gt.webshare_listener=!0,_t.addEventListener("click",function(){if(!_t.classList.contains("webshare-enabled"))return;_t.menuContainer.open=!1,navigator.share({title:P(Lt,"share.title",document.title),text:P(Lt,"share.text",F()),url:z(P(Lt,"share",{}))}).catch(function(){})})}(mt,re,we);this.share_options=[];let tt=typeof q.link=="string"?q.link:window.location.toString();if(q.iframe){let Lt=typeof q.iframe=="string"?q.iframe:tt;this.share_options.push(st(te,re,"share.embed",gt.bind(null,Lt,te),ne(te,"flowplayer-embed-icon")))}q.link&&this.share_options.push(st(te,re,"share.link",Rt.bind(null,tt),ne(te,"flowplayer-link-icon"))),q.facebook&&this.share_options.push(st(te,re,"Facebook",Jt.bind(null,tt),ne(te,"flowplayer-facebook-icon"))),q.twitter&&this.share_options.push(st(te,re,"Twitter",xt.bind(null,tt),ne(te,"flowplayer-twitter-icon"))),lt(re,G.events.OPTIONS,this.share_options)})}add_options(mt,...Dt){let te=mt.root.querySelector(W);te&&Dt.forEach((re)=>{let we=st(mt,te,re.text,re.onclick,re.icon);te.menuOption(we,te.options.length)})}}).pluginName="share",G.events={OPTIONS:"share:options"},G);function st(dt,mt,Dt,te,re){return{text:pt(dt,Dt),icon:re,onclick:at.bind(null,dt,mt,te)}}function pt(dt,mt){return mt.indexOf("share.")===0?dt.i18n(mt):mt}function at(dt,mt,Dt){mt instanceof ft&&mt.unselect_item();let te=Dt();te.success&&te.message&&dt.message&&dt.emit(dt.message.events.SHOW_MESSAGE,{message:te.message})}function gt(dt,mt){let Dt=mt.videoHeight/mt.videoWidth;return Rt('<div style="position:relative;width:100%;display:inline-block;"><iframe src="__IFRAME_SRC__" allowfullscreen style="border:none;position:absolute;top:0;left:0;width:100%;height:100%;"></iframe><div style="padding-top: __RATIO__%;"></div></div>'.replace("__IFRAME_SRC__",encodeURI(dt)).replace("__RATIO__",""+100*Dt))}function Rt(dt){let mt=document.createElement("textarea");mt.setAttribute("style","position:absolute;opacity:0"),mt.value=dt;let Dt=document.body;Dt.append(mt),mt.select();let te=document.execCommand("copy");return Dt.removeChild(mt),{success:te,message:te?"<trans share.clipboard_success trans>":"<trans share.clipboard_failure trans>"}}function Jt(dt){return ce("https://www.facebook.com/sharer.php?u="+encodeURIComponent(dt)),{success:!0}}function xt(dt){return ce("https://twitter.com/intent/tweet?url="+encodeURIComponent(dt)),{success:!0}}function ce(dt){let mt,Dt=screen.height,te=screen.width,re=Math.round(te/2-275);mt=0,Dt>420&&(mt=Math.round(Dt/2-210)),window.open(dt,"sharer","scrollbars=yes,resizable=yes,toolbar=no,location=yes,width=550,height=420,left="+re+",top="+mt)}return function(dt,mt){if(typeof fo=="object"&&typeof mo!="undefined")return mt;if(document.currentScript===null)return mt;"flowplayer"in dt||(dt.flowplayer={extensions:[]});let Dt=dt.flowplayer;return typeof Dt=="function"?(Dt(mt),mt):(Array.isArray(Dt.extensions)||(Dt.extensions=[]),~Dt.extensions.indexOf(mt)||Dt.extensions.push(mt),mt)}(window,J)})});var Xc=gn((go,po)=>{(function(o,g){typeof go=="object"&&typeof po!="undefined"?po.exports=g():typeof define=="function"&&define.amd?define(g):((o=typeof globalThis!="undefined"?globalThis:o||self).flowplayer=o.flowplayer||{},o.flowplayer.subtitles=g())})(go,function(){function o(q,tt,Lt){let _t=function(Gt){return Array.isArray(Gt)?Gt.slice(0):Gt.split(".")}(tt);for(;_t.length;){if(q==null)return Lt;let Gt=_t.shift();if(typeof Gt!="string")return Lt;q=q[Gt]}return q==null?Lt:q}function g(q,tt){q.innerHTML="",tt.forEach(function(Lt){let _t=document.createElement("pre");_t.classList.add("fp-cue"),function(Gt,Oe){let Re=Gt.style,ai=Oe.size;Re.setProperty("--caption-size",ai.toString());let Qe=Oe.position;Qe&&Qe!=="auto"&&Oe?Re.setProperty("--caption-position",Qe.toString()):Re.removeProperty("--caption-position");let Ge="captions-align-"+Oe.align;Array.from(Gt.classList).forEach(function(Se){Se!=Ge&&(Se=="captions-vertical"&&Oe.vertical||Se.startsWith("captions")&&Gt.classList.remove(Se))}),Gt.classList.add(Ge),Gt.classList.toggle("captions-vertical",!!Oe.vertical)}(q,Lt),_t.appendChild(Lt.getCueAsHTML()),q.appendChild(_t)})}function S(){}let R="is-source-processing",L=(q,tt)=>new(((Lt,_t)=>{let Gt=Lt.get(_t);if(!Gt)throw new Error(`no flowplayer component with the name ${_t} exists`);let Oe=window.customElements.get(_t);if(!Oe)throw new Error(`no default flowplayer component with the name ${_t} exists`);let Re=window.customElements.get(Gt);return typeof Re!="function"?Oe:Re})(q._customElements,tt))(q),P=(q,tt,Lt)=>{window.customElements.get(tt)||window.customElements.define(tt,Lt),q.customElements.get(tt)||q.customElements.set(tt,tt)};function F(q,tt,Lt){let _t=function(Gt,Oe){let Re=new CustomEvent(Gt,{detail:Oe,cancelable:!0});return Oe&&Object.defineProperty(Re,"data",{get:()=>Oe}),Re}(tt,Lt);return q.dispatchEvent(_t),q}function z(q,tt){let Lt=q._customElements.get(tt);return Lt&&q.root.querySelector(Lt)||void 0}(function(){let q=!1;try{let tt=Object.defineProperty({},"passive",{get:function(){q=!0}});window.addEventListener("testPassive",null,tt),window.removeEventListener("testPassive",null,tt)}catch(tt){}})();class j extends HTMLElement{constructor(q){super(),this.player=q}}let Nt="fp-on",ne="fp-invis";class A extends j{constructor(q){super(q),this.player=q,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=H(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener("click",(tt)=>{if(tt.defaultPrevented)return;tt.preventDefault();let Lt=this.menuContainer.open;Lt||(Ft(),document.active_menu=this.menuContainer),this.menuContainer.open=!Lt,q.root.classList.toggle("has-menu-opened",!Lt),this.summaryEle.setAttribute("aria-expanded",Lt?"false":"true")}),this.addEventListener("focusin",(tt)=>{let Lt=tt.target;Lt instanceof HTMLLIElement&&Lt.setAttribute("aria-selected","true")}),this.addEventListener("focusout",(tt)=>{let Lt=tt.target;Lt instanceof HTMLLIElement&&Lt.setAttribute("aria-selected","false")}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(q){if(this.className=q.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=q.id||H()),this.summaryEle.setAttribute("aria-label",q.menuTitle||"Menu"),q.summaryTitle&&(this.summaryEle.textContent=q.summaryTitle),q.summaryIcon){let tt=L(this.player,q.summaryIcon);tt.setAttribute("tabindex",""),this.summaryEle.append(tt)}q.menuTitle&&(this.menuTitle.textContent=q.menuTitle),this.menu.classList.toggle("fp-icons",!!q.icons),this.addEventListener(q.options_event,(tt)=>{this.render(tt.data)}),q.item_selected_event&&this.addEventListener(q.item_selected_event,(tt)=>{tt.data!==void 0&&this.select_item(tt.data.selected_index)})}render(q){this.olEle&&(this.olEle.innerHTML="",q&&q.forEach(this.menuOption,this),this.toggle_visibility(!(q==null?void 0:q.length)))}menuOption(q,tt){let Lt=document.createElement("li");Lt.setAttribute("role","menuitem"),Lt.setAttribute("aria-selected","false"),Lt.setAttribute("tabindex","0"),q.icon&&Lt.append(q.icon);let _t=document.createElement("span");_t.textContent=q.text,Lt.append(_t),Lt.addEventListener("click",()=>{this.select_item(tt),typeof q.onclick=="function"&&q.onclick()}),this.olEle.appendChild(Lt),q.selected&&this.select_item(tt)}select_item(q){this.options.forEach((tt,Lt)=>{tt.classList.toggle(Nt,Lt===q)})}unselect_item(){this.options.forEach((q)=>{q.classList.remove(Nt)})}toggle_visibility(q){this.classList.toggle(ne,q),this.menu.style.setProperty("display",q?"none":"flex")}}function Ft(){Array.from(document.querySelectorAll(".fp-engine")).forEach((q)=>{var tt;let Lt=q.root.querySelector("details[open].fp-menu-container");Lt&&(Lt.open=!1,(tt=Lt.querySelector("summary"))===null||tt===void 0||tt.removeAttribute("aria-expanded"),q.root.classList.toggle("has-menu-opened",!1))})}function H(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}document.addEventListener("click",function(q){this.active_menu&&!q.composedPath().includes(this.active_menu)&&(Ft(),this.active_menu=void 0)});let ft=["255, 255, 255","255, 255, 0","0, 255, 0","0, 255, 255","0, 0, 255","255, 0, 255","255, 0, 0","0, 0, 0"],Ct=[0.25,0.5,0.75,1,1.25,1.5,1.75,2,3,4],Mt=["White","Yellow","Green","Cyan","Blue","Magenta","Red","Black"],lt=["Monospaced Serif","Proportional Serif","Monospaced Sans-Serif","Proportional Sans-Serif","Casual","Cursive"],C=["Courier New, monospace","serif","Andale Mono, Lucida Console, monospace","sans-serif","Comic Sans MS, Impact, fantasy","Monotype Corsiva, cursive"],W=["None","Drop shadow","Raised","Depressed","Outline"],G=["","rgb(34, 34, 34) 2px 2px 3px, rgb(34, 34, 34) 2px 2px 4px, rgb(34, 34, 34) 2px 2px 5px","rgb(34, 34, 34) 1px 1px, rgb(34, 34, 34) 2px 2px, rgb(34, 34, 34) 3px 3px","rgb(204, 204, 204) 1px 1px, rgb(204, 204, 204) 0px 1px, rgb(34, 34, 34) -1px -1px, rgb(34, 34, 34) 0px -1px","rgb(34, 34, 34) 0px 0px 1px, rgb(34, 34, 34) 0px 0px 1px, rgb(34, 34, 34) 0px 0px 1px, rgb(34, 34, 34) 0px 0px 1px, rgb(34, 34, 34) 0px 0px 1px"];class J{constructor(q,tt,Lt,_t,Gt){this.player=q,this.labels=tt,this.values=Lt,this.css_variable=_t,this.default_value=Gt,this.selected=q._storage.getItem(_t)||Gt}set selected(q){document.documentElement.style.setProperty(this.css_variable,q),this.player._storage.setItem(this.css_variable,q)}get selected(){return document.documentElement.style.getPropertyValue(this.css_variable)}}var st;(function(q){q[q.main=0]="main",q[q.tracks=1]="tracks",q[q.style=2]="style",q[q.styleOpt=3]="styleOpt"})(st||(st={}));class pt extends A{constructor(q){if(super(q),this.state=st.main,this.selectedTrackIdx=-1,this.isTV=!1,this.styleOpts=function(_t){return{[_t.i18n("cc.properties.fontSize","Font size")]:new J(_t,Ct.map((Gt)=>100*Gt+"%"),Ct.map((Gt)=>100*Gt+"%"),"--fp-sub-font-size","100%"),[_t.i18n("cc.properties.fontFamily","Font family")]:new J(_t,lt.map((Gt)=>_t.i18n("cc.fontFamily."+Gt,Gt)),C,"--fp-sub-font-family","sans-serif"),[_t.i18n("cc.properties.fontColor","Font color")]:new J(_t,Mt.map((Gt)=>_t.i18n("cc.colors."+Gt,Gt)),ft,"--fp-sub-font-color",ft[0]),[_t.i18n("cc.properties.fontOpacity","Font opacity")]:new J(_t,Ct.flatMap((Gt)=>Gt>1?[]:100*Gt+"%"),Ct.flatMap((Gt)=>Gt>1?[]:Gt+""),"--fp-sub-font-opacity","1"),[_t.i18n("cc.properties.backgroundColor","Background color")]:new J(_t,Mt.map((Gt)=>_t.i18n("cc.colors."+Gt,Gt)),ft,"--fp-sub-background-color",ft[7]),[_t.i18n("cc.properties.backgroundOpacity","Background opacity")]:new J(_t,Ct.flatMap((Gt)=>Gt>1?[]:100*Gt+"%"),Ct.flatMap((Gt)=>Gt>1?[]:Gt+""),"--fp-sub-background-opacity","0.5"),[_t.i18n("cc.properties.characterEdgeStyle","Character edge style")]:new J(_t,W.map((Gt)=>_t.i18n("cc.edgeStyle."+Gt,Gt)),G,"--fp-sub-edge-style","")}}(q),q.on("mount",()=>{setTimeout(()=>this.isTV=q.hasState("is-tv"),0),this.classList.toggle("subs-native",!!q.opt("subtitles.native"))}),q.on(se.events.TRACK_UPDATED,(_t)=>this.summaryEle.classList.toggle("fp-color-text",!!_t.detail)),q.opt("subtitles.native"))return;let tt=L(this.player,"flowplayer-menu-back");tt.setAttribute("aria-label","Back to previous menu"),this.menuHeader.prepend(tt),tt.addEventListener("click",()=>this.navigateBack());let Lt=L(this.player,"flowplayer-subs-menu-icon");Lt.setAttribute("aria-label","Open style menu"),Lt.addEventListener("click",()=>this.createMenu(st.style)),this.menuHeader.insertBefore(Lt,this.menuTitle),this.summaryEle.addEventListener("click",()=>{this.menuContainer.open||this.createMenu(st.main)}),this.menu.addEventListener("click",(_t)=>{(_t.target===Lt||_t.target===tt||this.state!==st.main&&_t.target!==this.closeEle)&&_t.preventDefault()}),this.addEventListener(se.events.TRACKS,(_t)=>{var Gt;this.tracks=_t.detail,this.selectedTrackIdx=-1,this.toggle_visibility(!((Gt=this==null?void 0:this.tracks)===null||Gt===void 0?void 0:Gt.length)),this.state===(this.isTV?st.tracks:st.main)&&this.createMenu(this.isTV?st.tracks:st.main)}),this.addEventListener(se.events.SWITCH,(_t)=>{this.selectedTrackIdx=_t.detail.selected_index,this.state===(this.isTV?st.tracks:st.main)&&this.select_item(this.selectedTrackIdx)}),this.player.addEventListener("tv-menu:will-open",()=>{var _t;((_t=this.tracks)===null||_t===void 0?void 0:_t.length)&&this.createMenu(st.main)}),this.player.on(["tv-menu:will-close","keyboard:close:menus"],(_t)=>{var Gt;this.state!==st.main&&((Gt=document.activeElement)===null||Gt===void 0?void 0:Gt.closest(".fp-menu"))===this.menu&&(this.navigateBack(),_t.preventDefault())})}navigateBack(){switch(this.state){case st.style:case st.tracks:return this.createMenu(st.main);case st.styleOpt:return this.createMenu(st.style)}}getMenuTitle(){switch(this.state){case st.main:return this.player.i18n("cc.menu_title","Subtitles");case st.tracks:return this.player.i18n("cc.tracks","Tracks");case st.style:return this.player.i18n("cc.options","Options");default:return""}}createMenuOpts(q){switch(this.state){case st.main:return this.isTV?this.createTvMainMenuOpts():this.createTracksMenuOpts();case st.tracks:return this.createTracksMenuOpts();case st.style:return this.createStyleMenuOpts();case st.styleOpt:return q?this.createStylePropertyMenuOpts(this.styleOpts[q]):[]}}createMenu(q,tt){var Lt;this.state=q,this.menu.classList.toggle("fp-submenu",q>0),this.menuTitle.textContent=tt||this.getMenuTitle(),this.render(this.createMenuOpts(tt)),(Lt=this.menu.querySelector("li"))===null||Lt===void 0||Lt.focus()}createTvMainMenuOpts(){return[{text:this.player.i18n("cc.tracks","Tracks"),onclick:this.createMenu.bind(this,st.tracks)},{text:this.player.i18n("cc.options","Options"),onclick:this.createMenu.bind(this,st.style)}]}createTracksMenuOpts(){return Array.isArray(this==null?void 0:this.tracks)?this.tracks.map((q,tt)=>({text:q.text,onclick:()=>{q.onclick(),this.selectedTrackIdx=this.selectedTrackIdx===tt?-1:tt},selected:this.selectedTrackIdx===tt})):[]}createStyleMenuOpts(){let q=Object.keys(this.styleOpts).map((tt)=>({text:tt,onclick:this.createMenu.bind(this,st.styleOpt,tt)}));return q.push({text:this.player.i18n("cc.reset","Reset"),onclick:()=>Object.values(this.styleOpts).forEach((tt)=>tt.selected=tt.default_value)}),q}createStylePropertyMenuOpts(q){return q.labels.map((tt,Lt)=>({text:tt,onclick:()=>{q.selected=q.values[Lt]},selected:Lt===q.values.indexOf(q.selected)}))}select_item(q){if(this.state!==st.style)return this.state===st.styleOpt?super.select_item(q):void this.options.forEach((tt,Lt)=>{tt.classList.toggle(Nt,Lt===q&&!tt.classList.contains(Nt))})}}class at extends j{constructor(q,tt){super(q),this.classList.add("fp-icon",tt.name),tt.title&&this.setAttribute("title",tt.title),tt.title&&this.setAttribute("aria-label",tt.title),tt.translation_key&&this.setAttribute("aria-label",q.i18n(tt.translation_key)),this.setAttribute("tabindex","0"),this.setAttribute("focusable","true")}}function gt(q){return!document.fullscreenEnabled&&typeof q.webkitEnterFullScreen=="function"&&typeof q.webkitExitFullScreen=="function"}let Rt="subs:tracks",Jt="subs:change";var xt,ce=Object.freeze({__proto__:null,TRACK_UPDATED:"tracks:text:updated",TRACKS:Rt,SWITCH:Jt,CUES_PARSED:"cues:parsed",TEXT_TRACKS:"tracks:text:all"});function dt(q,tt){if(function(Lt){return Object.values(xt).includes(Lt)}(tt=tt||xt.Anonymous))return q instanceof HTMLVideoElement&&(q.poster="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),"crossOrigin"in q?q.crossOrigin=tt:q.setAttribute("crossorigin",tt),q}function mt(q){let tt=document.createElement("a");return tt.href=q,tt.origin}function Dt(q,tt){let Lt=document.createElement("track");Lt.className="fp-track renderable",Lt.kind=tt.kind||"captions",Lt.label=tt.label||tt.lang||"",Lt.lang=tt.lang||"",Lt.id=["fp",tt.lang].join("-");let _t=Lt.track;return _t.removeCue=S,typeof tt.crossorigin!="string"&&function(Gt,Oe){try{return Gt.src.startsWith("blob:"),mt(Gt.src)!==mt(Oe)}catch(Re){return console.error(Re),!0}}(q,tt.src)&&(dt(q),tt.crossorigin=q.getAttribute("crossorigin")),"crossorigin"in tt&&dt(q,tt.crossorigin),Object.keys(tt).forEach((Gt)=>{Gt!=="default"&&(Lt[Gt]=tt[Gt])}),_t.mode=tt.default?"hidden":"disabled",q.appendChild(Lt),Lt}(function(q){q.Anonymous="anonymous",q.UseCredentials="use-credentials",q.Empty=""})(xt||(xt={}));let te={translation_key:"cc.menu_title",name:"fp-subtitles-menu"},re={name:"fp-menu-back"};var we;let se=((we=class q{constructor(tt){P(tt,"flowplayer-subtitles-menu",pt),P(tt,"flowplayer-subs-menu-icon",class extends at{constructor(Lt){super(Lt,te)}}),P(tt,"flowplayer-menu-back",class extends at{constructor(Lt){super(Lt,re)}})}init(tt,Lt,_t){var Gt,Oe;let Re=L(_t,"flowplayer-subtitles-menu");Re instanceof pt&&Re.setMenuAttrs({class:"fp-cc",summaryTitle:_t.i18n("cc.button","CC"),menuTitle:_t.i18n("cc.menu_title","Subtitles"),options_event:((Gt=tt.subtitles)===null||Gt===void 0?void 0:Gt.native)?Rt:void 0,item_selected_event:((Oe=tt.subtitles)===null||Oe===void 0?void 0:Oe.native)?Jt:void 0});let ai=function(Qt){let qt=document.createElement("div");return qt.classList.add("fp-captions"),qt.ontouchend=($t)=>Qt.emit($t.type),qt.onclick=($t)=>Qt.emit($t.type),qt}(_t),Qe,Ge=[],Se=[];function si(){return Array.from(_t.textTracks).filter((Qt)=>~["captions","subtitles","descriptions"].indexOf(Qt.kind)&&!Qt.removed&&Qt.label)}function Xe(){return si().find((Qt)=>Qt.is_active)}function Ii(Qt){Array.from(Qt.querySelectorAll("track")).forEach((qt)=>{["captions","subtitles","descriptions"].includes(qt.kind)&&Qt.removeChild(qt)})}function Ze(Qt,qt,$t){F(qt,Rt,$t.map(function(de){return{text:de.label,onclick:Je.bind(0,Qt,de)}}));let he=Xe();return he?si().find((de)=>de===he)?void F(qt,Jt,{selected_index:$t.indexOf(he)}):oi():Qt.emit("tracks:text:updated")}function Je(Qt,qt){var $t,he;if(qt==Xe())return oi();oi(),qt.is_hls_embedded&&typeof qt.track_id=="number"&&Qt.hls&&(Qt.hls.subtitleTrack=qt.track_id),qt.mode=(($t=Qt.opts.subtitles)===null||$t===void 0?void 0:$t.native)?"showing":"hidden",qt.is_active=!0,Qt.emit("tracks:text:updated",qt),((he=Qt.opts.subtitles)===null||he===void 0?void 0:he.native)||Qt.emit("cuechange",{track:qt})}function oi(){let Qt=Xe();Qt&&(_t.emit("tracks:text:updated"),Qt.mode="disabled",Qt.is_active=!1,g(ai,[]))}(function(Qt){if(!gt(Qt))return;Qt.on("webkitbeginfullscreen",()=>{let qt=Xe();qt&&(qt.mode="showing")}),Qt.on("webkitendfullscreen",()=>{var qt;let $t=si().find((he)=>he.mode==="showing");$t&&!((qt=Qt.opts.subtitles)===null||qt===void 0?void 0:qt.native)&&($t.mode="hidden"),$t!==Xe()&&($t?Je(Qt,$t):oi(),F(Re,Jt,{selected_index:$t?Se.indexOf($t):-1}))})})(_t),_t.on("mount",function(){var Qt,qt;let $t=z(_t,"flowplayer-control");if(!$t)return(Qt=z(_t,"flowplayer-ui"))===null||Qt===void 0?void 0:Qt.appendChild(ai);$t.insertAdjacentElement("beforebegin",ai),(qt=_t.hasState("is-tv")?z(_t,"flowplayer-tv-menu"):$t)===null||qt===void 0||qt.append(Re)}),_t.on("config",function(Qt){var qt,$t;let he=($t=(qt=Qt.data)===null||qt===void 0?void 0:qt.subtitles)===null||$t===void 0?void 0:$t.tracks;he&&Ge!==he&&(Ge=he,Ii(_t),Se=si(),Ze(_t,Re,Se),Ge.forEach((de)=>Dt(_t,de)))}),_t.on("tracks:text:all",(Qt)=>{let qt=Qt.detail.tracks;qt!==Qe&&(Qe=qt,Se=Se.flatMap(($t)=>$t.is_hls_embedded?($t.removed=!0,[]):$t),Ze(_t,Re,Se),qt.filter(($t)=>{var he,de;return~["subtitles","captions"].indexOf(($t==null?void 0:$t.kind)||((de=(he=$t==null?void 0:$t.subtitleTrack)===null||he===void 0?void 0:he.type)===null||de===void 0?void 0:de.toLocaleLowerCase())||"")}).forEach(($t)=>{var he,de,Oi,en,Ai,We,cn;let gi=_t.addTextTrack($t.kind==="captions"?"captions":"subtitles",((he=$t.subtitleTrack)===null||he===void 0?void 0:he.name)||$t.label,(de=$t.subtitleTrack)===null||de===void 0?void 0:de.lang);gi.is_hls_embedded=!0,gi.default=((Oi=$t.subtitleTrack)===null||Oi===void 0?void 0:Oi.default)!==void 0?(en=$t.subtitleTrack)===null||en===void 0?void 0:en.default:$t.default,gi.track_id=(We=(Ai=$t.subtitleTrack)===null||Ai===void 0?void 0:Ai.id)!==null&&We!==void 0?We:$t._id,gi.mode=gi.default?"hidden":"disabled",gi.removeCue=S,gi.attr=(cn=$t.subtitleTrack)===null||cn===void 0?void 0:cn.attrs}))}),_t.on("cues:parsed",(Qt)=>{let qt=Qt.detail,$t=Se.find((he)=>he.is_hls_embedded&&!he.removed&&(he.default&&qt.track==="default"||he.track_id===qt.track||"subtitles"+he.track_id===qt.track||"captions"+he.track_id===qt.track));$t&&qt.cues.forEach((he)=>$t.addCue(he))}),_t.textTracks.addEventListener("addtrack",()=>{let Qt=si();if(Se.length===Qt.length&&Se.every(($t,he)=>$t===Qt[he]))return;let qt=Xe();if(Qt.map(function($t){return~["showing","hidden"].indexOf($t.mode)&&(qt=$t,$t.mode="disabled",$t.is_active=!1),$t.oncuechange=function(he){var de;if(!($t===Xe()||gt(_t)&&_t.hasState("is-fullscreen")))return $t.mode="disabled";((de=tt.subtitles)===null||de===void 0?void 0:de.native)||_t.emit(he.type,{track:he.target})},$t}),F(Re,Rt,Qt.map(function($t){return{text:$t.label,onclick:Je.bind(0,_t,$t)}})),Se=Qt,!qt)return oi();Je(_t,qt),F(Re,Jt,{selected_index:Se.indexOf(qt)})}),_t.on("cuechange",function(Qt){var qt;let $t=(qt=Qt.data)===null||qt===void 0?void 0:qt.track;if(!$t||!["captions","subtitles","descriptions"].includes($t.kind))return;let he=Array.from(o($t,"activeCues",[])).filter((de,Oi,en)=>Oi===en.findIndex((Ai)=>de.id===Ai.id)).sort((de,Oi)=>typeof de.line!="number"||typeof Oi.line!="number"?0:de.line-Oi.line);g(ai,he)}),_t.on(["playlist/advance","src"],(Qt)=>{_t.currentSrc&&(Qt.type==="src"&&["is-playlist",R].some((qt)=>_t.root.classList.contains(qt))||(delete _t.opts.subtitles,Ii(_t),Ge=[],oi(),Se=[],Qe=[],si().forEach((qt)=>qt.removed=!0),F(Re,Rt,[])))})}}).pluginName="subtitles",we.events=ce,we);return function(q,tt){if(typeof go=="object"&&typeof po!="undefined")return tt;if(document.currentScript===null)return tt;"flowplayer"in q||(q.flowplayer={extensions:[]});let Lt=q.flowplayer;return typeof Lt=="function"?(Lt(tt),tt):(Array.isArray(Lt.extensions)||(Lt.extensions=[]),~Lt.extensions.indexOf(tt)||Lt.extensions.push(tt),tt)}(window,se)})});var Jc=gn((vo,yo)=>{(function(o,g){typeof vo=="object"&&typeof yo!="undefined"?yo.exports=g():typeof define=="function"&&define.amd?define(g):((o=typeof globalThis!="undefined"?globalThis:o||self).flowplayer=o.flowplayer||{},o.flowplayer.thumbnails=g())})(vo,function(){var o;function g(W,G){if(function(J){return Object.values(o).includes(J)}(G=G||o.Anonymous))return W instanceof HTMLVideoElement&&(W.poster="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),"crossOrigin"in W?W.crossOrigin=G:W.setAttribute("crossorigin",G),W}function S(W){let G=document.createElement("a");return G.href=W,G.origin}(function(W){W.Anonymous="anonymous",W.UseCredentials="use-credentials",W.Empty=""})(o||(o={}));function R(W,G){return W.querySelector("track[id='"+G+"']")}function L(W,G){let J=document.createElement("track");return J.src=G,function(st,pt){try{return st.src.startsWith("blob:"),S(st.src)!==S(pt)}catch(at){return console.error(at),!0}}(W,G)&&(g(W),g(J)),J}var P=Object.freeze({__proto__:null,THUMBNAILS_RENDER:"thumbnails:render",THUMBNAILS_HIDE:"thumbnails:hide"});function F(W,G){let J=W._customElements.get(G);return J&&W.root.querySelector(J)||void 0}let z=(W,G)=>new(((J,st)=>{let pt=J.get(st);if(!pt)throw new Error(`no flowplayer component with the name ${st} exists`);let at=window.customElements.get(st);if(!at)throw new Error(`no default flowplayer component with the name ${st} exists`);let gt=window.customElements.get(pt);return typeof gt!="function"?at:gt})(W._customElements,G))(W);class j extends HTMLElement{constructor(W){super(),this.player=W}}class Nt extends j{constructor(W){super(W),this.className="fp-thumbnail-carousel",this.carousel=this.makeCarousel(),this.addEventListener("thumbnails:render",this.renderCarousel.bind(this,W)),this.addEventListener("thumbnails:hide",()=>W.root.classList.remove("with-thumbnails"))}renderCarousel(W,G){let{previous:J,current:st,next:pt}=G.detail;W.root.classList.add("with-thumbnails"),J&&this.renderCarouselItem(this.carousel.previous,J),st&&this.renderCarouselItem(this.carousel.current,st),pt&&this.renderCarouselItem(this.carousel.next,pt)}makeCarousel(){return{previous:this.makeCarouselItem("previous"),current:this.makeCarouselItem("current"),next:this.makeCarouselItem("next")}}makeCarouselItem(W){let G=document.createElement("div");return G.classList.add("thumbnail",W),this.append(G),G}renderCarouselItem(W,G){let J=W.style;J.backgroundImage=`url("${G.url}")`,J.backgroundPositionX="-"+G.x+"px ",J.backgroundPositionY="-"+G.y+"px",J.height=G.h+"px",J.width=G.w+"px"}}function ne(W){let G=document.createElement("a");return G.href=W,G}let A=/#xywh=(\d+),(\d+),(\d+),(\d+)$/,Ft=/^(https:|https:|\/)/;function H(W,G){let J=ne(W.src),st=ne(G),[pt,at,gt,Rt,Jt]=(st.hash.match(A)||[]).map((xt)=>parseInt(xt,10));return{x:at,y:gt,w:Rt,h:Jt,url:ft(G,J)}}function ft(W,G){if(W.match(Ft))return W;try{return new URL(W,G.href).toString()}catch(J){return""}}let Ct="is-source-processing";function Mt(W,G,J){let st=function(pt,at){let gt=new CustomEvent(pt,{detail:at,cancelable:!0});return at&&Object.defineProperty(gt,"data",{get:()=>at}),gt}(G,J);return W.dispatchEvent(st),W}var lt;(function(){let W=!1;try{let G=Object.defineProperty({},"passive",{get:function(){W=!0}});window.addEventListener("testPassive",null,G),window.removeEventListener("testPassive",null,G)}catch(G){}})();let C=((lt=class W{static activeThumbnails(G,J){var st,pt;let at=R(G,"thumbnails");if(!at)return;let gt=Array.from(at.track.cues||{length:0}),Rt=gt.find((xt)=>xt.startTime<=J&&J<=xt.endTime);if(!Rt)return{};let Jt=gt.indexOf(Rt);return{previous:H(at,((st=gt[Jt-1])===null||st===void 0?void 0:st.text)||""),current:H(at,(Rt==null?void 0:Rt.text)||""),next:H(at,((pt=gt[Jt+1])===null||pt===void 0?void 0:pt.text)||"")}}constructor(G){((J,st,pt)=>{window.customElements.get(st)||window.customElements.define(st,pt),J.customElements.get(st)||J.customElements.set(st,st)})(G,"flowplayer-thumbnails-carousel",Nt)}init(G,J,st){let pt=F(st,"flowplayer-ui"),at=z(st,"flowplayer-thumbnails-carousel"),gt=F(st,"flowplayer-control");st.reaper&&pt&>&&(pt.insertBefore(at,gt),st.once("mount",()=>{this.attachTimelineListeners(st,at)}),st.textTracks.addEventListener("addtrack",function(Rt){let Jt=Rt.track;(Jt==null?void 0:Jt.id)==="thumbnails"&&(Jt.mode="hidden")}),st.on("config",function(){var Rt;let Jt=(Rt=G==null?void 0:G.thumbnails)===null||Rt===void 0?void 0:Rt.src;if(typeof Jt=="string")return function(xt,ce){if(function(mt,Dt){return mt.querySelector("track[src='"+Dt+"']")}(xt,ce))return;let dt=L(xt,ce);return dt.kind="metadata",dt.id="thumbnails",dt.src=ce,xt.append(dt),dt}(st,Jt)}),st.on(["playlist/advance","src"],(Rt)=>{st.currentSrc&&(Rt.type==="src"&&["is-playlist",Ct].some((Jt)=>st.root.classList.contains(Jt))||(delete G.thumbnails,function(Jt){let xt=R(Jt,"thumbnails");xt&&xt.remove()}(st)))}))}attachTimelineListeners(G,J){G.on("timeline/gesture/move",({data:st})=>{let pt=st==null?void 0:st.percent;if(typeof pt!="number")return;if(!Number.isFinite(G.duration))return;let at=Math.max(0,Math.min(G.duration,G.duration*(pt/100))),gt=lt.activeThumbnails(G,at);gt&&requestAnimationFrame(()=>Mt(J,"thumbnails:render",Object.assign(Object.assign({},gt),{timestamp:at})))}),G.on("timeline/gesture/end",()=>{G.root.classList.contains("with-thumbnails")&&Mt(J,"thumbnails:hide")})}}).pluginName="thumbnails",lt.events=P,lt);return function(W,G){if(typeof vo=="object"&&typeof yo!="undefined")return G;if(document.currentScript===null)return G;"flowplayer"in W||(W.flowplayer={extensions:[]});let J=W.flowplayer;return typeof J=="function"?(J(G),G):(Array.isArray(J.extensions)||(J.extensions=[]),~J.extensions.indexOf(G)||J.extensions.push(G),G)}(window,C)})});var Qc=gn((Eo,So)=>{(function(o,g){typeof Eo=="object"&&typeof So!="undefined"?So.exports=g():typeof define=="function"&&define.amd?define(g):((o=typeof globalThis!="undefined"?globalThis:o||self).flowplayer=o.flowplayer||{},o.flowplayer.vtsel=g())})(Eo,function(){let o=(lt,C)=>new(((W,G)=>{let J=W.get(G);if(!J)throw new Error(`no flowplayer component with the name ${G} exists`);let st=window.customElements.get(G);if(!st)throw new Error(`no default flowplayer component with the name ${G} exists`);let pt=window.customElements.get(J);return typeof pt!="function"?st:pt})(lt._customElements,C))(lt);class g extends HTMLElement{constructor(lt){super(),this.player=lt}}let S="fp-on",R="fp-invis";class L extends g{constructor(lt){super(lt),this.player=lt,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=F(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener("click",(C)=>{if(C.defaultPrevented)return;C.preventDefault();let W=this.menuContainer.open;W||(P(),document.active_menu=this.menuContainer),this.menuContainer.open=!W,lt.root.classList.toggle("has-menu-opened",!W),this.summaryEle.setAttribute("aria-expanded",W?"false":"true")}),this.addEventListener("focusin",(C)=>{let W=C.target;W instanceof HTMLLIElement&&W.setAttribute("aria-selected","true")}),this.addEventListener("focusout",(C)=>{let W=C.target;W instanceof HTMLLIElement&&W.setAttribute("aria-selected","false")}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(lt){if(this.className=lt.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=lt.id||F()),this.summaryEle.setAttribute("aria-label",lt.menuTitle||"Menu"),lt.summaryTitle&&(this.summaryEle.textContent=lt.summaryTitle),lt.summaryIcon){let C=o(this.player,lt.summaryIcon);C.setAttribute("tabindex",""),this.summaryEle.append(C)}lt.menuTitle&&(this.menuTitle.textContent=lt.menuTitle),this.menu.classList.toggle("fp-icons",!!lt.icons),this.addEventListener(lt.options_event,(C)=>{this.render(C.data)}),lt.item_selected_event&&this.addEventListener(lt.item_selected_event,(C)=>{C.data!==void 0&&this.select_item(C.data.selected_index)})}render(lt){this.olEle&&(this.olEle.innerHTML="",lt&<.forEach(this.menuOption,this),this.toggle_visibility(!(lt==null?void 0:lt.length)))}menuOption(lt,C){let W=document.createElement("li");W.setAttribute("role","menuitem"),W.setAttribute("aria-selected","false"),W.setAttribute("tabindex","0"),lt.icon&&W.append(lt.icon);let G=document.createElement("span");G.textContent=lt.text,W.append(G),W.addEventListener("click",()=>{this.select_item(C),typeof lt.onclick=="function"&<.onclick()}),this.olEle.appendChild(W),lt.selected&&this.select_item(C)}select_item(lt){this.options.forEach((C,W)=>{C.classList.toggle(S,W===lt)})}unselect_item(){this.options.forEach((lt)=>{lt.classList.remove(S)})}toggle_visibility(lt){this.classList.toggle(R,lt),this.menu.style.setProperty("display",lt?"none":"flex")}}function P(){Array.from(document.querySelectorAll(".fp-engine")).forEach((lt)=>{var C;let W=lt.root.querySelector("details[open].fp-menu-container");W&&(W.open=!1,(C=W.querySelector("summary"))===null||C===void 0||C.removeAttribute("aria-expanded"),lt.root.classList.toggle("has-menu-opened",!1))})}function F(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}document.addEventListener("click",function(lt){this.active_menu&&!lt.composedPath().includes(this.active_menu)&&(P(),this.active_menu=void 0)});function z(lt,C,W){let G=function(J,st){let pt=new CustomEvent(J,{detail:st,cancelable:!0});return st&&Object.defineProperty(pt,"data",{get:()=>st}),pt}(C,W);return lt.dispatchEvent(G),lt}var j;(function(){let lt=!1;try{let C=Object.defineProperty({},"passive",{get:function(){lt=!0}});window.addEventListener("testPassive",null,C),window.removeEventListener("testPassive",null,C)}catch(C){}})(),function(lt){lt[lt.Idle=0]="Idle",lt[lt.Receiving=1]="Receiving",lt[lt.Starting=2]="Starting"}(j||(j={}));var Nt=function(lt){var C={exports:{}};return lt(C,C.exports),C.exports}(function(lt,C){var W,G,J,st,pt;W=/^(?=((?:[a-zA-Z0-9+\-.]+:)?))\1(?=((?:\/\/[^\/?#]*)?))\2(?=((?:(?:[^?#\/]*\/)*[^;?#\/]*)?))\3((?:;[^?#]*)?)(\?[^#]*)?(#[^]*)?$/,G=/^(?=([^\/?#]*))\1([^]*)$/,J=/(?:\/|^)\.(?=\/)/g,st=/(?:\/|^)\.\.\/(?!\.\.\/)[^\/]*(?=\/)/g,pt={buildAbsoluteURL:function(at,gt,Rt){if(Rt=Rt||{},at=at.trim(),!(gt=gt.trim())){if(!Rt.alwaysNormalize)return at;var Jt=pt.parseURL(at);if(!Jt)throw new Error("Error trying to parse base URL.");return Jt.path=pt.normalizePath(Jt.path),pt.buildURLFromParts(Jt)}var xt=pt.parseURL(gt);if(!xt)throw new Error("Error trying to parse relative URL.");if(xt.scheme)return Rt.alwaysNormalize?(xt.path=pt.normalizePath(xt.path),pt.buildURLFromParts(xt)):gt;var ce=pt.parseURL(at);if(!ce)throw new Error("Error trying to parse base URL.");if(!ce.netLoc&&ce.path&&ce.path[0]!=="/"){var dt=G.exec(ce.path);ce.netLoc=dt[1],ce.path=dt[2]}ce.netLoc&&!ce.path&&(ce.path="/");var mt={scheme:ce.scheme,netLoc:xt.netLoc,path:null,params:xt.params,query:xt.query,fragment:xt.fragment};if(!xt.netLoc&&(mt.netLoc=ce.netLoc,xt.path[0]!=="/"))if(xt.path){var Dt=ce.path,te=Dt.substring(0,Dt.lastIndexOf("/")+1)+xt.path;mt.path=pt.normalizePath(te)}else mt.path=ce.path,xt.params||(mt.params=ce.params,xt.query||(mt.query=ce.query));return mt.path===null&&(mt.path=Rt.alwaysNormalize?pt.normalizePath(xt.path):xt.path),pt.buildURLFromParts(mt)},parseURL:function(at){var gt=W.exec(at);return gt?{scheme:gt[1]||"",netLoc:gt[2]||"",path:gt[3]||"",params:gt[4]||"",query:gt[5]||"",fragment:gt[6]||""}:null},normalizePath:function(at){for(at=at.split("").reverse().join("").replace(J,"");at.length!==(at=at.replace(st,"")).length;);return at.split("").reverse().join("")},buildURLFromParts:function(at){return at.scheme+at.netLoc+at.path+at.params+at.query+at.fragment}},lt.exports=pt});let ne=/#EXT-X-MEDIA:(.*)/g,A=/(.+?)=(".*?"|.*?)(?:,|$)/g;function Ft(lt,C,W,G){let J=W,st={label:lt,default:W,data:G||[]};return Object.defineProperty(st,"selected",{get:()=>J,set(pt){var at;typeof pt=="boolean"&&J!==pt&&(J&&((at=C.tracks)===null||at===void 0?void 0:at.filter((gt)=>gt.selected).length)===1||(J=pt,pt&&C.emit("tracks:video:select",{track:st})))}})}class H{constructor(lt){typeof lt=="string"&&(lt=H.parseAttrList(lt)),Object.keys(lt).forEach((C)=>{lt.hasOwnProperty(C)&&(C.substring(0,2)==="X-"&&(this.clientAttrs=this.clientAttrs||[],this.clientAttrs.push(C)),this[C]=lt[C])})}bool(lt){return this[lt]==="YES"}static parseAttrList(lt){let C,W={};for(A.lastIndex=0;(C=A.exec(lt))!==null;){let G=C[2];G.indexOf('"')===0&&G.lastIndexOf('"')===G.length-1&&(G=G.slice(1,-1)),W[C[1].trim()]=G}return W}}var ft,Ct=Object.freeze({__proto__:null,PARSE_TRACKS:"parse:video:tracks",VIDEO_TRACK_SELECT:"tracks:video:select",VIDEO_TRACKS:"videoTracks",TRACKS:"video:tracks",SWITCH:"video:update"});let Mt=((ft=class lt{constructor(C){((W,G,J)=>{window.customElements.get(G)||window.customElements.define(G,J),W.customElements.get(G)||W.customElements.set(G,G)})(C,"flowplayer-video-menu",L)}init(C,W,G){var J;let st=o(G,"flowplayer-video-menu");st instanceof L&&st.setMenuAttrs({summaryTitle:G.i18n("vtsel.button_txt","Video"),menuTitle:G.i18n("vtsel.menu_title","Video Track"),class:"fp-vsel",options_event:ft.events.TRACKS,item_selected_event:ft.events.SWITCH}),G.on("mount",function(){var pt;(pt=function(at,gt){let Rt=at._customElements.get(gt);return Rt&&at.root.querySelector(Rt)||void 0}(G,G.hasState("is-tv")?"flowplayer-tv-menu":"flowplayer-control"))===null||pt===void 0||pt.append(st)}),G.on("src",()=>{G.tracks=[],z(st,ft.events.TRACKS,[])}),G.on("parse:video:tracks",(pt)=>{let at=pt.detail;at&&function(gt,Rt,Jt){var xt,ce,dt,mt,Dt,te,re;let we,se=0;for(ne.lastIndex=0;(we=ne.exec(Rt))!==null;){let q=new H(we[1]);if(q.TYPE==="VIDEO"){let tt=(xt=gt.tracks)===null||xt===void 0?void 0:xt.find((_t)=>_t.label===(q.NAME||q.LANGUAGE||"Track "+se));if(tt||(tt=Ft(q.NAME||q.LANGUAGE||se+++"",gt,q.bool("DEFAULT")),q.bool("DEFAULT")&&(tt.data=(ce=gt.hls)===null||ce===void 0?void 0:ce.levels.slice(0)),(dt=gt.tracks)===null||dt===void 0||dt.push(tt)),q.bool("DEFAULT"))continue;let Lt={details:void 0,audioGroupIds:(mt=gt.hls)===null||mt===void 0?void 0:mt.levels[0].audioGroupIds,attrs:{},urlId:0,url:[q.URI?Nt.buildAbsoluteURL(Jt,q.URI,{alwaysNormalize:!0}):""],uri:q.URI?Nt.buildAbsoluteURL(Jt,q.URI,{alwaysNormalize:!0}):"",level:(Dt=tt.data)===null||Dt===void 0?void 0:Dt.length,name:"level "+((te=tt.data)===null||te===void 0?void 0:te.length)};(re=tt.data)===null||re===void 0||re.push(Lt)}}}(G,at.manifest,at.url)}),(J=G.videoTracks)===null||J===void 0||J.addEventListener("addtrack",()=>{C.is_native&&(G.tracks=Array.from(G.videoTracks||[]).map((pt,at)=>Ft(pt.label?pt.label:"track "+at,G,pt.selected)),G.emit("videoTracks",G.tracks))}),G.on("loadeddata",()=>{var pt;if(!C.is_native||!G.videoTracks){if((pt=G.tracks)===null||pt===void 0?void 0:pt.length)return G.emit("videoTracks",G.tracks);G.tracks=[Ft("default",G,!0)],G.emit("videoTracks",G.tracks)}}),G.on("videoTracks",()=>{let pt=G.tracks;pt&&Array.isArray(pt)&&(z(st,ft.events.TRACKS,pt.map((at)=>({text:at.label,onclick:()=>at.selected=!0}))),z(st,ft.events.SWITCH,{selected_index:pt.findIndex((at)=>at.default)}),st instanceof L&&st.toggle_visibility((pt==null?void 0:pt.length)<2))}),G.on("tracks:video:select",(pt)=>{let at=pt.detail.track,gt=G.tracks;if(!at||!gt||!Array.isArray(gt))return;if(z(st,ft.events.SWITCH,{selected_index:gt.indexOf(at)}),!G.opts.is_native||!G.videoTracks)return;G.videoTracks[gt.indexOf(at)].selected=!0;let Rt=gt.find((Jt)=>Jt.selected&&Jt!==at);Rt&&(Rt.selected=!1,G.videoTracks[gt.indexOf(Rt)].selected=!1)}),G.on("rts/status",(pt)=>{var at;let gt=pt.detail.status,Rt=pt.detail.data;if(gt===j.Idle)return z(st,ft.events.TRACKS,[]),G.tracks=[];gt===j.Receiving&&((at=G==null?void 0:G.tracks)===null||at===void 0||at.push(Ft((Rt==null?void 0:Rt.sourceId)||"Main",G,!(Rt==null?void 0:Rt.sourceId),Rt)))})}}).pluginName="vtsel",ft.events=Ct,ft);return function(lt,C){if(typeof Eo=="object"&&typeof So!="undefined")return C;if(document.currentScript===null)return C;"flowplayer"in lt||(lt.flowplayer={extensions:[]});let W=lt.flowplayer;return typeof W=="function"?(W(C),C):(Array.isArray(W.extensions)||(W.extensions=[]),~W.extensions.indexOf(C)||W.extensions.push(C),C)}(window,Mt)})});var hc=document.createElement("style");hc.textContent=`.fp-spins-container {
|
|
33
|
+
Switching to level ${Q} @ ${0|mt} bps`),s.trigger(b.FRAG_LOAD_EMERGENCY_ABORTED,{frag:i,part:r,stats:u})},this.hls=e,this.bwEstimator=this.initEstimator(),this.registerListeners()}resetEstimator(e){e&&(I.log("setting initial bwe to "+e),this.hls.config.abrEwmaDefaultEstimate=e),this.firstSelection=-1,this.bwEstimator=this.initEstimator()}initEstimator(){let e=this.hls.config;return new ta(e.abrEwmaSlowVoD,e.abrEwmaFastVoD,e.abrEwmaDefaultEstimate)}registerListeners(){let{hls:e}=this;e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.FRAG_LOADING,this.onFragLoading,this),e.on(b.FRAG_LOADED,this.onFragLoaded,this),e.on(b.FRAG_BUFFERED,this.onFragBuffered,this),e.on(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(b.LEVEL_LOADED,this.onLevelLoaded,this),e.on(b.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(b.MAX_AUTO_LEVEL_UPDATED,this.onMaxAutoLevelUpdated,this),e.on(b.ERROR,this.onError,this)}unregisterListeners(){let{hls:e}=this;e&&(e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.FRAG_LOADING,this.onFragLoading,this),e.off(b.FRAG_LOADED,this.onFragLoaded,this),e.off(b.FRAG_BUFFERED,this.onFragBuffered,this),e.off(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(b.LEVEL_LOADED,this.onLevelLoaded,this),e.off(b.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(b.MAX_AUTO_LEVEL_UPDATED,this.onMaxAutoLevelUpdated,this),e.off(b.ERROR,this.onError,this))}destroy(){this.unregisterListeners(),this.clearTimer(),this.hls=this._abandonRulesCheck=null,this.fragCurrent=this.partCurrent=null}onManifestLoading(e,i){this.lastLoadedFragLevel=-1,this.firstSelection=-1,this.lastLevelLoadSec=0,this.fragCurrent=this.partCurrent=null,this.onLevelsUpdated(),this.clearTimer()}onLevelsUpdated(){this.lastLoadedFragLevel>-1&&this.fragCurrent&&(this.lastLoadedFragLevel=this.fragCurrent.level),this._nextAutoLevel=-1,this.onMaxAutoLevelUpdated(),this.codecTiers=null,this.audioTracksByGroup=null}onMaxAutoLevelUpdated(){this.firstSelection=-1,this.nextAutoLevelKey=""}onFragLoading(e,i){let r=i.frag;if(!this.ignoreFragment(r)){var s;if(!r.bitrateTest)this.fragCurrent=r,this.partCurrent=(s=i.part)!=null?s:null;this.clearTimer(),this.timer=self.setInterval(this._abandonRulesCheck,100)}}onLevelSwitching(e,i){this.clearTimer()}onError(e,i){if(!i.fatal)switch(i.details){case P.BUFFER_ADD_CODEC_ERROR:case P.BUFFER_APPEND_ERROR:this.lastLoadedFragLevel=-1,this.firstSelection=-1;break;case P.FRAG_LOAD_TIMEOUT:{let r=i.frag,{fragCurrent:s,partCurrent:a}=this;if(r&&s&&r.sn===s.sn&&r.level===s.level){let l=performance.now(),c=a?a.stats:r.stats,u=l-c.loading.start,d=c.loading.first?c.loading.first-c.loading.start:-1;if(c.loaded&&d>-1){let m=this.bwEstimator.getEstimateTTFB();this.bwEstimator.sample(u-Math.min(m,d),c.loaded)}else this.bwEstimator.sampleTTFB(u)}break}}}getTimeToLoadFrag(e,i,r,s){return e+r/i+(s?this.lastLevelLoadSec:0)}onLevelLoaded(e,i){let r=this.hls.config,{loading:s}=i.stats,a=s.end-s.start;L(a)&&(this.lastLevelLoadSec=a/1000),i.details.live?this.bwEstimator.update(r.abrEwmaSlowLive,r.abrEwmaFastLive):this.bwEstimator.update(r.abrEwmaSlowVoD,r.abrEwmaFastVoD)}onFragLoaded(e,{frag:i,part:r}){let s=r?r.stats:i.stats;if(i.type===ie&&this.bwEstimator.sampleTTFB(s.loading.first-s.loading.start),!this.ignoreFragment(i)){if(this.clearTimer(),i.level===this._nextAutoLevel&&(this._nextAutoLevel=-1),this.firstSelection=-1,this.hls.config.abrMaxWithRealBitrate){let a=r?r.duration:i.duration,l=this.hls.levels[i.level],c=(l.loaded?l.loaded.bytes:0)+s.loaded,u=(l.loaded?l.loaded.duration:0)+a;l.loaded={bytes:c,duration:u},l.realBitrate=Math.round(8*c/u)}if(i.bitrateTest){let a={stats:s,frag:i,part:r,id:i.type};this.onFragBuffered(b.FRAG_BUFFERED,a),i.bitrateTest=!1}else this.lastLoadedFragLevel=i.level}}onFragBuffered(e,i){let{frag:r,part:s}=i,a=s!=null&&s.stats.loaded?s.stats:r.stats;if(a.aborted)return;if(this.ignoreFragment(r))return;let l=a.parsing.end-a.loading.start-Math.min(a.loading.first-a.loading.start,this.bwEstimator.getEstimateTTFB());this.bwEstimator.sample(l,a.loaded),a.bwEstimate=this.getBwEstimate(),r.bitrateTest?this.bitrateTestDelay=l/1000:this.bitrateTestDelay=0}ignoreFragment(e){return e.type!==ie||e.sn==="initSegment"}clearTimer(){this.timer>-1&&(self.clearInterval(this.timer),this.timer=-1)}get firstAutoLevel(){let{maxAutoLevel:e,minAutoLevel:i}=this.hls,r=this.getBwEstimate(),s=this.hls.config.maxStarvationDelay,a=this.findBestLevel(r,i,e,0,s,1,1);if(a>-1)return a;let l=this.hls.firstLevel,c=Math.min(Math.max(l,i),e);return I.warn(`[abr] Could not find best starting auto level. Defaulting to first in playlist ${l} clamped to ${c}`),c}get forcedAutoLevel(){return this.nextAutoLevelKey?-1:this._nextAutoLevel}get nextAutoLevel(){let e=this.forcedAutoLevel,i=this.bwEstimator.canEstimate(),r=this.lastLoadedFragLevel>-1;if(!(e===-1||i&&r&&this.nextAutoLevelKey!==this.getAutoLevelKey()))return e;let s=i&&r?this.getNextABRAutoLevel():this.firstAutoLevel;if(e!==-1){let a=this.hls.levels;if(a.length>Math.max(e,s)&&a[e].loadError<=a[s].loadError)return e}return this._nextAutoLevel=s,this.nextAutoLevelKey=this.getAutoLevelKey(),s}getAutoLevelKey(){return`${this.getBwEstimate()}_${this.getStarvationDelay().toFixed(2)}`}getNextABRAutoLevel(){let{fragCurrent:e,partCurrent:i,hls:r}=this,{maxAutoLevel:s,config:a,minAutoLevel:l}=r,c=i?i.duration:e?e.duration:0,u=this.getBwEstimate(),d=this.getStarvationDelay(),m=a.abrBandWidthFactor,y=a.abrBandWidthUpFactor;if(d){let k=this.findBestLevel(u,l,s,d,0,m,y);if(k>=0)return k}let S=c?Math.min(c,a.maxStarvationDelay):a.maxStarvationDelay;if(!d){let k=this.bitrateTestDelay;if(k)S=(c?Math.min(c,a.maxLoadingDelay):a.maxLoadingDelay)-k,I.info(`[abr] bitrate test took ${Math.round(1000*k)}ms, set first fragment max fetchDuration to ${Math.round(1000*S)} ms`),m=y=1}let T=this.findBestLevel(u,l,s,d,S,m,y);if(I.info(`[abr] ${d?"rebuffering expected":"buffer is empty"}, optimal quality level ${T}`),T>-1)return T;let w=r.levels[l],D=r.levels[r.loadLevel];return(w==null?void 0:w.bitrate)<(D==null?void 0:D.bitrate)?l:r.loadLevel}getStarvationDelay(){let e=this.hls,i=e.media;if(!i)return 1/0;let r=i&&i.playbackRate!==0?Math.abs(i.playbackRate):1,s=e.mainForwardBufferInfo;return(s?s.len:0)/r}getBwEstimate(){return this.bwEstimator.canEstimate()?this.bwEstimator.getEstimate():this.hls.config.abrEwmaDefaultEstimate}findBestLevel(e,i,r,s,a,l,c){var u;let d=s+a,m=this.lastLoadedFragLevel,y=m===-1?this.hls.firstLevel:m,{fragCurrent:S,partCurrent:T}=this,{levels:w,allAudioTracks:D,loadLevel:k,config:N}=this.hls;if(w.length===1)return 0;let x=w[y],G=!(x==null||(u=x.details)==null||!u.live),Y=k===-1||m===-1,rt,J="SDR",ut=(x==null?void 0:x.frameRate)||0,{audioPreference:ft,videoPreference:Z}=N,Q=this.audioTracksByGroup||(this.audioTracksByGroup=function(Mt){return Mt.reduce((ot,vt)=>{let Ct=ot.groups[vt.groupId];Ct||(Ct=ot.groups[vt.groupId]={tracks:[],channels:{2:0},hasDefault:!1,hasAutoSelect:!1}),Ct.tracks.push(vt);let It=vt.channels||"2";return Ct.channels[It]=(Ct.channels[It]||0)+1,Ct.hasDefault=Ct.hasDefault||vt.default,Ct.hasAutoSelect=Ct.hasAutoSelect||vt.autoselect,Ct.hasDefault&&(ot.hasDefaultAudio=!0),Ct.hasAutoSelect&&(ot.hasAutoSelectAudio=!0),ot},{hasDefaultAudio:!1,hasAutoSelectAudio:!1,groups:{}})}(D));if(Y){if(this.firstSelection!==-1)return this.firstSelection;let Mt=function(le,me,he,Ie,ri){let pe=Object.keys(le),yr=Ie==null?void 0:Ie.channels,Te=Ie==null?void 0:Ie.audioCodec,Co=yr&&parseInt(yr)===2,Aa=!0,Ur=!1,Qi=1/0,gn=1/0,pn=1/0,ac=0,_a=[],{preferHDR:jf,allowedVideoRanges:zf}=Dl(me,ri);for(let Oe=pe.length;Oe--;){let we=le[pe[Oe]];Aa=we.channels[2]>0,Qi=Math.min(Qi,we.minHeight),gn=Math.min(gn,we.minFramerate),pn=Math.min(pn,we.minBitrate);let Me=zf.filter((oc)=>we.videoRanges[oc]>0);Me.length>0&&(Ur=!0,_a=Me)}Qi=L(Qi)?Qi:0,gn=L(gn)?gn:0;let qu=Math.max(1080,Qi),Xu=Math.max(30,gn);return pn=L(pn)?pn:he,he=Math.max(pn,he),Ur||(me=void 0,_a=[]),{codecSet:pe.reduce((Oe,we)=>{let Me=le[we];if(we===Oe)return Oe;if(Me.minBitrate>he)return Be(we,`min bitrate of ${Me.minBitrate} > current estimate of ${he}`),Oe;if(!Me.hasDefaultAudio)return Be(we,"no renditions with default or auto-select sound found"),Oe;if(Te&&we.indexOf(Te.substring(0,4))%5!=0)return Be(we,`audio codec preference "${Te}" not found`),Oe;if(yr&&!Co){if(!Me.channels[yr])return Be(we,`no renditions with ${yr} channel sound found (channels options: ${Object.keys(Me.channels)})`),Oe}else if((!Te||Co)&&Aa&&Me.channels[2]===0)return Be(we,"no renditions with stereo sound found"),Oe;return Me.minHeight>qu?(Be(we,`min resolution of ${Me.minHeight} > maximum of ${qu}`),Oe):Me.minFramerate>Xu?(Be(we,`min framerate of ${Me.minFramerate} > maximum of ${Xu}`),Oe):_a.some((oc)=>Me.videoRanges[oc]>0)?Me.maxScore<ac?(Be(we,`max score of ${Me.maxScore} < selected max of ${ac}`),Oe):Oe&&(Jr(we)>=Jr(Oe)||Me.fragmentError>le[Oe].fragmentError)?Oe:(ac=Me.maxScore,we):(Be(we,`no variants with VIDEO-RANGE of ${JSON.stringify(_a)} found`),Oe)},void 0),videoRanges:_a,preferHDR:jf,minFramerate:gn,minBitrate:pn}}(this.codecTiers||(this.codecTiers=function(le,me,he,Ie){return le.slice(he,Ie+1).reduce((ri,pe)=>{if(!pe.codecSet)return ri;let yr=pe.audioGroups,Te=ri[pe.codecSet];Te||(ri[pe.codecSet]=Te={minBitrate:1/0,minHeight:1/0,minFramerate:1/0,maxScore:0,videoRanges:{SDR:0},channels:{2:0},hasDefaultAudio:!yr,fragmentError:0}),Te.minBitrate=Math.min(Te.minBitrate,pe.bitrate);let Co=Math.min(pe.height,pe.width);return Te.minHeight=Math.min(Te.minHeight,Co),Te.minFramerate=Math.min(Te.minFramerate,pe.frameRate),Te.maxScore=Math.max(Te.maxScore,pe.score),Te.fragmentError+=pe.fragmentError,Te.videoRanges[pe.videoRange]=(Te.videoRanges[pe.videoRange]||0)+1,yr&&yr.forEach((Aa)=>{if(!Aa)return;let Ur=me.groups[Aa];Ur&&(Te.hasDefaultAudio=Te.hasDefaultAudio||me.hasDefaultAudio?Ur.hasDefault:Ur.hasAutoSelect||!me.hasDefaultAudio&&!me.hasAutoSelectAudio,Object.keys(Ur.channels).forEach((Qi)=>{Te.channels[Qi]=(Te.channels[Qi]||0)+Ur.channels[Qi]}))}),ri},{})}(w,Q,i,r)),J,e,ft,Z),{codecSet:ot,videoRanges:vt,minFramerate:Ct,minBitrate:It,preferHDR:Gt}=Mt;rt=ot,J=Gt?vt[vt.length-1]:vt[0],ut=Ct,e=Math.max(e,It),I.log("[abr] picked start tier "+JSON.stringify(Mt))}else rt=x==null?void 0:x.codecSet,J=x==null?void 0:x.videoRange;let Dt=T?T.duration:S?S.duration:0,mt=this.bwEstimator.getEstimateTTFB()/1000,Rt=[];for(let Mt=r;Mt>=i;Mt--){var Ot;let ot=w[Mt],vt=Mt>y;if(!ot)continue;if(N.useMediaCapabilities&&!ot.supportedResult&&!ot.supportedPromise){let he=navigator.mediaCapabilities;typeof(he==null?void 0:he.decodingInfo)=="function"&&Cl(ot,Q,J,ut,e,ft)?(ot.supportedPromise=Xi(ot,Q,he),ot.supportedPromise.then((Ie)=>{if(!this.hls)return;ot.supportedResult=Ie;let ri=this.hls.levels,pe=ri.indexOf(ot);Ie.error?I.warn(`[abr] MediaCapabilities decodingInfo error: "${Ie.error}" for level ${pe} ${JSON.stringify(Ie)}`):Ie.supported||(I.warn(`[abr] Unsupported MediaCapabilities decodingInfo result for level ${pe} ${JSON.stringify(Ie)}`),pe>-1&&ri.length>1&&(I.log("[abr] Removing unsupported level "+pe),this.hls.removeLevel(pe)))})):ot.supportedResult=Hn}if(rt&&ot.codecSet!==rt||J&&ot.videoRange!==J||vt&&ut>ot.frameRate||!vt&&ut>0&&ut<ot.frameRate||ot.supportedResult&&((Ot=ot.supportedResult.decodingInfoResults)==null||!Ot[0].smooth)){Rt.push(Mt);continue}let Ct=ot.details,It=(T?Ct==null?void 0:Ct.partTarget:Ct==null?void 0:Ct.averagetargetduration)||Dt,Gt;Gt=vt?c*e:l*e;let le=Dt&&s>=2*Dt&&a===0?w[Mt].averageBitrate:w[Mt].maxBitrate,me=this.getTimeToLoadFrag(mt,Gt,le*It,Ct===void 0);if(Gt>=le&&(Mt===m||ot.loadError===0&&ot.fragmentError===0)&&(me<=mt||!L(me)||G&&!this.bitrateTestDelay||me<d)){let he=this.forcedAutoLevel;return Mt===k||he!==-1&&he===k||(Rt.length&&I.trace(`[abr] Skipped level(s) ${Rt.join(",")} of ${r} max with CODECS and VIDEO-RANGE:"${w[Rt[0]].codecs}" ${w[Rt[0]].videoRange}; not compatible with "${x.codecs}" ${J}`),I.info(`[abr] switch candidate:${y}->${Mt} adjustedbw(${Math.round(Gt)})-bitrate=${Math.round(Gt-le)} ttfb:${mt.toFixed(1)} avgDuration:${It.toFixed(1)} maxFetchDuration:${d.toFixed(1)} fetchDuration:${me.toFixed(1)} firstSelection:${Y} codecSet:${rt} videoRange:${J} hls.loadLevel:${k}`)),Y&&(this.firstSelection=Mt),Mt}}return-1}set nextAutoLevel(e){let{maxAutoLevel:i,minAutoLevel:r}=this.hls,s=Math.min(Math.max(e,r),i);this._nextAutoLevel!==s&&(this.nextAutoLevelKey="",this._nextAutoLevel=s)}},bufferController:class t{constructor(e){this.details=null,this._objectUrl=null,this.operationQueue=void 0,this.listeners=void 0,this.hls=void 0,this.bufferCodecEventsExpected=0,this._bufferCodecEventsTotal=0,this.media=null,this.mediaSource=null,this.lastMpegAudioChunk=null,this.appendSource=void 0,this.appendErrors={audio:0,video:0,audiovideo:0},this.tracks={},this.pendingTracks={},this.sourceBuffer=void 0,this.log=void 0,this.warn=void 0,this.error=void 0,this._onEndStreaming=(s)=>{this.hls&&this.hls.pauseBuffering()},this._onStartStreaming=(s)=>{this.hls&&this.hls.resumeBuffering()},this._onMediaSourceOpen=()=>{let{media:s,mediaSource:a}=this;this.log("Media source opened"),s&&(s.removeEventListener("emptied",this._onMediaEmptied),this.updateMediaElementDuration(),this.hls.trigger(b.MEDIA_ATTACHED,{media:s,mediaSource:a})),a&&a.removeEventListener("sourceopen",this._onMediaSourceOpen),this.checkPendingTracks()},this._onMediaSourceClose=()=>{this.log("Media source closed")},this._onMediaSourceEnded=()=>{this.log("Media source ended")},this._onMediaEmptied=()=>{let{mediaSrc:s,_objectUrl:a}=this;s!==a&&I.error(`Media element src was set while attaching MediaSource (${a} > ${s})`)},this.hls=e;let i="[buffer-controller]";var r;this.appendSource=(r=Ni(e.config.preferManagedMediaSource),typeof self!="undefined"&&r===self.ManagedMediaSource),this.log=I.log.bind(I,i),this.warn=I.warn.bind(I,i),this.error=I.error.bind(I,i),this._initSourceBuffer(),this.registerListeners()}hasSourceTypes(){return this.getSourceBufferTypes().length>0||Object.keys(this.pendingTracks).length>0}destroy(){this.unregisterListeners(),this.details=null,this.lastMpegAudioChunk=null,this.hls=null}registerListeners(){let{hls:e}=this;e.on(b.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_PARSED,this.onManifestParsed,this),e.on(b.BUFFER_RESET,this.onBufferReset,this),e.on(b.BUFFER_APPENDING,this.onBufferAppending,this),e.on(b.BUFFER_CODECS,this.onBufferCodecs,this),e.on(b.BUFFER_EOS,this.onBufferEos,this),e.on(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(b.LEVEL_UPDATED,this.onLevelUpdated,this),e.on(b.FRAG_PARSED,this.onFragParsed,this),e.on(b.FRAG_CHANGED,this.onFragChanged,this)}unregisterListeners(){let{hls:e}=this;e.off(b.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_PARSED,this.onManifestParsed,this),e.off(b.BUFFER_RESET,this.onBufferReset,this),e.off(b.BUFFER_APPENDING,this.onBufferAppending,this),e.off(b.BUFFER_CODECS,this.onBufferCodecs,this),e.off(b.BUFFER_EOS,this.onBufferEos,this),e.off(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(b.LEVEL_UPDATED,this.onLevelUpdated,this),e.off(b.FRAG_PARSED,this.onFragParsed,this),e.off(b.FRAG_CHANGED,this.onFragChanged,this)}_initSourceBuffer(){this.sourceBuffer={},this.operationQueue=new au(this.sourceBuffer),this.listeners={audio:[],video:[],audiovideo:[]},this.appendErrors={audio:0,video:0,audiovideo:0},this.lastMpegAudioChunk=null}onManifestLoading(){this.bufferCodecEventsExpected=this._bufferCodecEventsTotal=0,this.details=null}onManifestParsed(e,i){let r=2;(i.audio&&!i.video||!i.altAudio)&&(r=1),this.bufferCodecEventsExpected=this._bufferCodecEventsTotal=r,this.log(this.bufferCodecEventsExpected+" bufferCodec event(s) expected")}onMediaAttaching(e,i){let r=this.media=i.media,s=Ni(this.appendSource);if(r&&s){var a;let l=this.mediaSource=new s;this.log("created media source: "+((a=l.constructor)==null?void 0:a.name)),l.addEventListener("sourceopen",this._onMediaSourceOpen),l.addEventListener("sourceended",this._onMediaSourceEnded),l.addEventListener("sourceclose",this._onMediaSourceClose),this.appendSource&&(l.addEventListener("startstreaming",this._onStartStreaming),l.addEventListener("endstreaming",this._onEndStreaming));let c=this._objectUrl=self.URL.createObjectURL(l);if(this.appendSource)try{r.removeAttribute("src");let u=self.ManagedMediaSource;r.disableRemotePlayback=r.disableRemotePlayback||u&&l instanceof u,lu(r),function(d,m){let y=self.document.createElement("source");y.type="video/mp4",y.src=m,d.appendChild(y)}(r,c),r.load()}catch(u){r.src=c}else r.src=c;r.addEventListener("emptied",this._onMediaEmptied)}}onMediaDetaching(){let{media:e,mediaSource:i,_objectUrl:r}=this;if(i){if(this.log("media source detaching"),i.readyState==="open")try{i.endOfStream()}catch(s){this.warn(`onMediaDetaching: ${s.message} while calling endOfStream`)}this.onBufferReset(),i.removeEventListener("sourceopen",this._onMediaSourceOpen),i.removeEventListener("sourceended",this._onMediaSourceEnded),i.removeEventListener("sourceclose",this._onMediaSourceClose),this.appendSource&&(i.removeEventListener("startstreaming",this._onStartStreaming),i.removeEventListener("endstreaming",this._onEndStreaming)),e&&(e.removeEventListener("emptied",this._onMediaEmptied),r&&self.URL.revokeObjectURL(r),this.mediaSrc===r?(e.removeAttribute("src"),this.appendSource&&lu(e),e.load()):this.warn("media|source.src was changed by a third party - skip cleanup")),this.mediaSource=null,this.media=null,this._objectUrl=null,this.bufferCodecEventsExpected=this._bufferCodecEventsTotal,this.pendingTracks={},this.tracks={}}this.hls.trigger(b.MEDIA_DETACHED,void 0)}onBufferReset(){this.getSourceBufferTypes().forEach((e)=>{this.resetBuffer(e)}),this._initSourceBuffer()}resetBuffer(e){let i=this.sourceBuffer[e];try{var r;if(i)this.removeBufferListeners(e),this.sourceBuffer[e]=void 0,(r=this.mediaSource)!=null&&r.sourceBuffers.length&&this.mediaSource.removeSourceBuffer(i)}catch(s){this.warn("onBufferReset "+e,s)}}onBufferCodecs(e,i){let r=this.getSourceBufferTypes().length,s=Object.keys(i);if(s.forEach((l)=>{if(r){let u=this.tracks[l];if(u&&typeof u.buffer.changeType=="function"){var c;let{id:d,codec:m,levelCodec:y,container:S,metadata:T}=i[l],w=Xa(u.codec,u.levelCodec),D=w==null?void 0:w.replace(ou,"$1"),k=Xa(m,y),N=(c=k)==null?void 0:c.replace(ou,"$1");if(k&&D!==N){l.slice(0,5)==="audio"&&(k=Qr(k,this.appendSource));let x=`${S};codecs=${k}`;this.appendChangeType(l,x),this.log(`switching codec ${w} to ${k}`),this.tracks[l]={buffer:u.buffer,codec:m,container:S,levelCodec:y,metadata:T,id:d}}}}else this.pendingTracks[l]=i[l]}),r)return;let a=Math.max(this.bufferCodecEventsExpected-1,0);this.bufferCodecEventsExpected!==a&&(this.log(`${a} bufferCodec event(s) expected ${s.join(",")}`),this.bufferCodecEventsExpected=a),this.mediaSource&&this.mediaSource.readyState==="open"&&this.checkPendingTracks()}appendChangeType(e,i){let{operationQueue:r}=this,s={execute:()=>{let a=this.sourceBuffer[e];a&&(this.log(`changing ${e} sourceBuffer type to ${i}`),a.changeType(i)),r.shiftAndExecuteNext(e)},onStart:()=>{},onComplete:()=>{},onError:(a)=>{this.warn(`Failed to change ${e} SourceBuffer type`,a)}};r.append(s,e,!!this.pendingTracks[e])}onBufferAppending(e,i){let{hls:r,operationQueue:s,tracks:a}=this,{data:l,type:c,frag:u,part:d,chunkMeta:m}=i,y=m.buffering[c],S=self.performance.now();y.start=S;let T=u.stats.buffering,w=d?d.stats.buffering:null;T.start===0&&(T.start=S),w&&w.start===0&&(w.start=S);let D=a.audio,k=!1;c==="audio"&&(D==null?void 0:D.container)==="audio/mpeg"&&(k=!this.lastMpegAudioChunk||m.id===1||this.lastMpegAudioChunk.sn!==m.sn,this.lastMpegAudioChunk=m);let N=u.start,x={execute:()=>{if(y.executeStart=self.performance.now(),k){let G=this.sourceBuffer[c];if(G){let Y=N-G.timestampOffset;Math.abs(Y)>=0.1&&(this.log(`Updating audio SourceBuffer timestampOffset to ${N} (delta: ${Y}) sn: ${u.sn})`),G.timestampOffset=N)}}this.appendExecutor(l,c)},onStart:()=>{},onComplete:()=>{let G=self.performance.now();y.executeEnd=y.end=G,T.first===0&&(T.first=G),w&&w.first===0&&(w.first=G);let{sourceBuffer:Y}=this,rt={};for(let J in Y)rt[J]=Jt.getBuffered(Y[J]);this.appendErrors[c]=0,c==="audio"||c==="video"?this.appendErrors.audiovideo=0:(this.appendErrors.audio=0,this.appendErrors.video=0),this.hls.trigger(b.BUFFER_APPENDED,{type:c,frag:u,part:d,chunkMeta:m,parent:u.type,timeRanges:rt})},onError:(G)=>{let Y={type:H.MEDIA_ERROR,parent:u.type,details:P.BUFFER_APPEND_ERROR,sourceBufferName:c,frag:u,part:d,chunkMeta:m,error:G,err:G,fatal:!1};if(G.code===DOMException.QUOTA_EXCEEDED_ERR)Y.details=P.BUFFER_FULL_ERROR;else{let rt=++this.appendErrors[c];Y.details=P.BUFFER_APPEND_ERROR,this.warn(`Failed ${rt}/${r.config.appendErrorMaxRetry} times to append segment in "${c}" sourceBuffer`),rt>=r.config.appendErrorMaxRetry&&(Y.fatal=!0)}r.trigger(b.ERROR,Y)}};s.append(x,c,!!this.pendingTracks[c])}onBufferFlushing(e,i){let{operationQueue:r}=this,s=(a)=>({execute:this.removeExecutor.bind(this,a,i.startOffset,i.endOffset),onStart:()=>{},onComplete:()=>{this.hls.trigger(b.BUFFER_FLUSHED,{type:a})},onError:(l)=>{this.warn(`Failed to remove from ${a} SourceBuffer`,l)}});i.type?r.append(s(i.type),i.type):this.getSourceBufferTypes().forEach((a)=>{r.append(s(a),a)})}onFragParsed(e,i){let{frag:r,part:s}=i,a=[],l=s?s.elementaryStreams:r.elementaryStreams;l[Pt]?a.push("audiovideo"):(l[lt]&&a.push("audio"),l[St]&&a.push("video")),a.length===0&&this.warn(`Fragments must have at least one ElementaryStreamType set. type: ${r.type} level: ${r.level} sn: ${r.sn}`),this.blockBuffers(()=>{let c=self.performance.now();r.stats.buffering.end=c,s&&(s.stats.buffering.end=c);let u=s?s.stats:r.stats;this.hls.trigger(b.FRAG_BUFFERED,{frag:r,part:s,stats:u,id:r.type})},a)}onFragChanged(e,i){this.trimBuffers()}onBufferEos(e,i){this.getSourceBufferTypes().reduce((r,s)=>{let a=this.sourceBuffer[s];return!a||i.type&&i.type!==s||(a.ending=!0,a.ended||(a.ended=!0,this.log(s+" sourceBuffer now EOS"))),r&&!(a&&!a.ended)},!0)&&(this.log("Queueing mediaSource.endOfStream()"),this.blockBuffers(()=>{this.getSourceBufferTypes().forEach((s)=>{let a=this.sourceBuffer[s];a&&(a.ending=!1)});let{mediaSource:r}=this;r&&r.readyState==="open"?(this.log("Calling mediaSource.endOfStream()"),r.endOfStream()):r&&this.log("Could not call mediaSource.endOfStream(). mediaSource.readyState: "+r.readyState)}))}onLevelUpdated(e,{details:i}){i.fragments.length&&(this.details=i,this.getSourceBufferTypes().length?this.blockBuffers(this.updateMediaElementDuration.bind(this)):this.updateMediaElementDuration())}trimBuffers(){let{hls:e,details:i,media:r}=this;if(!r||i===null)return;if(!this.getSourceBufferTypes().length)return;let s=e.config,a=r.currentTime,l=i.levelTargetDuration,c=i.live&&s.liveBackBufferLength!==null?s.liveBackBufferLength:s.backBufferLength;if(L(c)&&c>0){let u=Math.max(c,l),d=Math.floor(a/l)*l-u;this.flushBackBuffer(a,l,d)}if(L(s.frontBufferFlushThreshold)&&s.frontBufferFlushThreshold>0){let u=Math.max(s.maxBufferLength,s.frontBufferFlushThreshold),d=Math.max(u,l),m=Math.floor(a/l)*l+d;this.flushFrontBuffer(a,l,m)}}flushBackBuffer(e,i,r){let{details:s,sourceBuffer:a}=this;this.getSourceBufferTypes().forEach((l)=>{let c=a[l];if(c){let u=Jt.getBuffered(c);if(u.length>0&&r>u.start(0)){if(this.hls.trigger(b.BACK_BUFFER_REACHED,{bufferEnd:r}),s!=null&&s.live)this.hls.trigger(b.LIVE_BACK_BUFFER_REACHED,{bufferEnd:r});else if(c.ended&&u.end(u.length-1)-e<2*i)return void this.log(`Cannot flush ${l} back buffer while SourceBuffer is in ended state`);this.hls.trigger(b.BUFFER_FLUSHING,{startOffset:0,endOffset:r,type:l})}}})}flushFrontBuffer(e,i,r){let{sourceBuffer:s}=this;this.getSourceBufferTypes().forEach((a)=>{let l=s[a];if(l){let c=Jt.getBuffered(l),u=c.length;if(u<2)return;let d=c.start(u-1),m=c.end(u-1);if(r>d||e>=d&&e<=m)return;if(l.ended&&e-m<2*i)return void this.log(`Cannot flush ${a} front buffer while SourceBuffer is in ended state`);this.hls.trigger(b.BUFFER_FLUSHING,{startOffset:d,endOffset:1/0,type:a})}})}updateMediaElementDuration(){if(!this.details||!this.media||!this.mediaSource||this.mediaSource.readyState!=="open")return;let{details:e,hls:i,media:r,mediaSource:s}=this,a=e.fragments[0].start+e.totalduration,l=r.duration,c=L(s.duration)?s.duration:0;e.live&&i.config.liveDurationInfinity?(s.duration=1/0,this.updateSeekableRange(e)):(a>c&&a>l||!L(l))&&(this.log("Updating Media Source duration to "+a.toFixed(3)),s.duration=a)}updateSeekableRange(e){let i=this.mediaSource,r=e.fragments;if(r.length&&e.live&&i!=null&&i.setLiveSeekableRange){let s=Math.max(0,r[0].start),a=Math.max(s,s+e.totalduration);this.log(`Media Source duration is set to ${i.duration}. Setting seekable range to ${s}-${a}.`),i.setLiveSeekableRange(s,a)}}checkPendingTracks(){let{bufferCodecEventsExpected:e,operationQueue:i,pendingTracks:r}=this,s=Object.keys(r).length;if(s&&(!e||s===2||("audiovideo"in r))){this.createSourceBuffers(r),this.pendingTracks={};let a=this.getSourceBufferTypes();if(a.length)this.hls.trigger(b.BUFFER_CREATED,{tracks:this.tracks}),a.forEach((l)=>{i.executeNext(l)});else{let l=new Error("could not create source buffer for media codec(s)");this.hls.trigger(b.ERROR,{type:H.MEDIA_ERROR,details:P.BUFFER_INCOMPATIBLE_CODECS_ERROR,fatal:!0,error:l,reason:l.message})}}}createSourceBuffers(e){let{sourceBuffer:i,mediaSource:r}=this;if(!r)throw Error("createSourceBuffers called when mediaSource was null");for(let a in e)if(!i[a]){var s;let l=e[a];if(!l)throw Error(`source buffer exists for track ${a}, however track does not`);let c=((s=l.levelCodec)==null?void 0:s.indexOf(","))===-1?l.levelCodec:l.codec;c&&a.slice(0,5)==="audio"&&(c=Qr(c,this.appendSource));let u=`${l.container};codecs=${c}`;this.log(`creating sourceBuffer(${u})`);try{let d=i[a]=r.addSourceBuffer(u),m=a;this.addBufferListener(m,"updatestart",this._onSBUpdateStart),this.addBufferListener(m,"updateend",this._onSBUpdateEnd),this.addBufferListener(m,"error",this._onSBUpdateError),this.appendSource&&this.addBufferListener(m,"bufferedchange",(y,S)=>{let T=S.removedRanges;T!=null&&T.length&&this.hls.trigger(b.BUFFER_FLUSHED,{type:a})}),this.tracks[a]={buffer:d,codec:c,container:l.container,levelCodec:l.levelCodec,metadata:l.metadata,id:l.id}}catch(d){this.error("error while trying to add sourceBuffer: "+d.message),this.hls.trigger(b.ERROR,{type:H.MEDIA_ERROR,details:P.BUFFER_ADD_CODEC_ERROR,fatal:!1,error:d,sourceBufferName:a,mimeType:u})}}}get mediaSrc(){var e;let i=((e=this.media)==null?void 0:e.firstChild)||this.media;return i==null?void 0:i.src}_onSBUpdateStart(e){let{operationQueue:i}=this;i.current(e).onStart()}_onSBUpdateEnd(e){var i;if(((i=this.mediaSource)==null?void 0:i.readyState)==="closed")return void this.resetBuffer(e);let{operationQueue:r}=this;r.current(e).onComplete(),r.shiftAndExecuteNext(e)}_onSBUpdateError(e,i){var r;let s=new Error(`${e} SourceBuffer error. MediaSource readyState: ${(r=this.mediaSource)==null?void 0:r.readyState}`);this.error(""+s,i),this.hls.trigger(b.ERROR,{type:H.MEDIA_ERROR,details:P.BUFFER_APPENDING_ERROR,sourceBufferName:e,error:s,fatal:!1});let a=this.operationQueue.current(e);a&&a.onError(s)}removeExecutor(e,i,r){let{media:s,mediaSource:a,operationQueue:l,sourceBuffer:c}=this,u=c[e];if(!s||!a||!u)return this.warn(`Attempting to remove from the ${e} SourceBuffer, but it does not exist`),void l.shiftAndExecuteNext(e);let d=L(s.duration)?s.duration:1/0,m=L(a.duration)?a.duration:1/0,y=Math.max(0,i),S=Math.min(r,d,m);S>y&&(!u.ending||u.ended)?(u.ended=!1,this.log(`Removing [${y},${S}] from the ${e} SourceBuffer`),u.remove(y,S)):l.shiftAndExecuteNext(e)}appendExecutor(e,i){let r=this.sourceBuffer[i];if(r)r.ended=!1,r.appendBuffer(e);else if(!this.pendingTracks[i])throw new Error(`Attempting to append to the ${i} SourceBuffer, but it does not exist`)}blockBuffers(e,i=this.getSourceBufferTypes()){if(!i.length)return this.log("Blocking operation requested, but no SourceBuffers exist"),void Promise.resolve().then(e);let{operationQueue:r}=this,s=i.map((a)=>r.appendBlocker(a));Promise.all(s).then(()=>{e(),i.forEach((a)=>{let l=this.sourceBuffer[a];l!=null&&l.updating||r.shiftAndExecuteNext(a)})})}getSourceBufferTypes(){return Object.keys(this.sourceBuffer)}addBufferListener(e,i,r){let s=this.sourceBuffer[e];if(!s)return;let a=r.bind(this,e);this.listeners[e].push({event:i,listener:a}),s.addEventListener(i,a)}removeBufferListeners(e){let i=this.sourceBuffer[e];i&&this.listeners[e].forEach((r)=>{i.removeEventListener(r.event,r.listener)})}},capLevelController:ql,errorController:class t{constructor(e){this.hls=void 0,this.playlistError=0,this.penalizedRenditions={},this.log=void 0,this.warn=void 0,this.error=void 0,this.hls=e,this.log=I.log.bind(I,"[info]:"),this.warn=I.warn.bind(I,"[warning]:"),this.error=I.error.bind(I,"[error]:"),this.registerListeners()}registerListeners(){let e=this.hls;e.on(b.ERROR,this.onError,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.LEVEL_UPDATED,this.onLevelUpdated,this)}unregisterListeners(){let e=this.hls;e&&(e.off(b.ERROR,this.onError,this),e.off(b.ERROR,this.onErrorOut,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.LEVEL_UPDATED,this.onLevelUpdated,this))}destroy(){this.unregisterListeners(),this.hls=null,this.penalizedRenditions={}}startLoad(e){}stopLoad(){this.playlistError=0}getVariantLevelIndex(e){return(e==null?void 0:e.type)===ie?e.level:this.hls.loadLevel}onManifestLoading(){this.playlistError=0,this.penalizedRenditions={}}onLevelUpdated(){this.playlistError=0}onError(e,i){var r,s;if(i.fatal)return;let a=this.hls,l=i.context;switch(i.details){case P.FRAG_LOAD_ERROR:case P.FRAG_LOAD_TIMEOUT:case P.KEY_LOAD_ERROR:case P.KEY_LOAD_TIMEOUT:return void(i.errorAction=this.getFragRetryOrSwitchAction(i));case P.FRAG_PARSING_ERROR:if((r=i.frag)!=null&&r.gap)return void(i.errorAction={action:Js,flags:fr});case P.FRAG_GAP:case P.FRAG_DECRYPT_ERROR:return i.errorAction=this.getFragRetryOrSwitchAction(i),void(i.errorAction.action=xi);case P.LEVEL_EMPTY_ERROR:case P.LEVEL_PARSING_ERROR:{var c,u;let d=i.parent===ie?i.level:a.loadLevel;i.details===P.LEVEL_EMPTY_ERROR&&(c=i.context)!=null&&(u=c.levelDetails)!=null&&u.live?i.errorAction=this.getPlaylistRetryOrSwitchAction(i,d):(i.levelRetry=!1,i.errorAction=this.getLevelSwitchAction(i,d))}return;case P.LEVEL_LOAD_ERROR:case P.LEVEL_LOAD_TIMEOUT:return void(typeof(l==null?void 0:l.level)=="number"&&(i.errorAction=this.getPlaylistRetryOrSwitchAction(i,l.level)));case P.AUDIO_TRACK_LOAD_ERROR:case P.AUDIO_TRACK_LOAD_TIMEOUT:case P.SUBTITLE_LOAD_ERROR:case P.SUBTITLE_TRACK_LOAD_TIMEOUT:if(l){let d=a.levels[a.loadLevel];if(d&&(l.type===ei&&d.hasAudioGroup(l.groupId)||l.type===pi&&d.hasSubtitleGroup(l.groupId)))return i.errorAction=this.getPlaylistRetryOrSwitchAction(i,a.loadLevel),i.errorAction.action=xi,void(i.errorAction.flags=Qs)}return;case P.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:{let d=a.levels[a.loadLevel],m=d==null?void 0:d.attrs["HDCP-LEVEL"];m?i.errorAction={action:xi,flags:Zs,hdcpLevel:m}:this.keySystemError(i)}return;case P.BUFFER_ADD_CODEC_ERROR:case P.REMUX_ALLOC_ERROR:case P.BUFFER_APPEND_ERROR:return void(i.errorAction=this.getLevelSwitchAction(i,(s=i.level)!=null?s:a.loadLevel));case P.INTERNAL_EXCEPTION:case P.BUFFER_APPENDING_ERROR:case P.BUFFER_FULL_ERROR:case P.LEVEL_SWITCH_ERROR:case P.BUFFER_STALLED_ERROR:case P.BUFFER_SEEK_OVER_HOLE:case P.BUFFER_NUDGE_ON_STALL:return void(i.errorAction={action:Js,flags:fr})}i.type===H.KEY_SYSTEM_ERROR&&this.keySystemError(i)}keySystemError(e){let i=this.getVariantLevelIndex(e.frag);e.levelRetry=!1,e.errorAction=this.getLevelSwitchAction(e,i)}getPlaylistRetryOrSwitchAction(e,i){let r=lo(this.hls.config.playlistLoadPolicy,e),s=this.playlistError++;if(kr(r,s,Gn(e),e.response))return{action:De,flags:fr,retryConfig:r,retryCount:s};let a=this.getLevelSwitchAction(e,i);return r&&(a.retryConfig=r,a.retryCount=s),a}getFragRetryOrSwitchAction(e){let i=this.hls,r=this.getVariantLevelIndex(e.frag),s=i.levels[r],{fragLoadPolicy:a,keyLoadPolicy:l}=i.config,c=lo(e.details.startsWith("key")?l:a,e),u=i.levels.reduce((m,y)=>m+y.fragmentError,0);if(s){if(e.details!==P.FRAG_GAP&&s.fragmentError++,kr(c,u,Gn(e),e.response))return{action:De,flags:fr,retryConfig:c,retryCount:u}}let d=this.getLevelSwitchAction(e,r);return c&&(d.retryConfig=c,d.retryCount=u),d}getLevelSwitchAction(e,i){let r=this.hls;i==null&&(i=r.loadLevel);let s=this.hls.levels[i];if(s){var a,l;let d=e.details;s.loadError++,d===P.BUFFER_APPEND_ERROR&&s.fragmentError++;let m=-1,{levels:y,loadLevel:S,minAutoLevel:T,maxAutoLevel:w}=r;r.autoLevelEnabled||(r.loadLevel=-1);let D=(a=e.frag)==null?void 0:a.type,k=(D===Ue&&d===P.FRAG_PARSING_ERROR||e.sourceBufferName==="audio"&&(d===P.BUFFER_ADD_CODEC_ERROR||d===P.BUFFER_APPEND_ERROR))&&y.some(({audioCodec:Y})=>s.audioCodec!==Y),N=e.sourceBufferName==="video"&&(d===P.BUFFER_ADD_CODEC_ERROR||d===P.BUFFER_APPEND_ERROR)&&y.some(({codecSet:Y,audioCodec:rt})=>s.codecSet!==Y&&s.audioCodec===rt),{type:x,groupId:G}=(l=e.context)!=null?l:{};for(let Y=y.length;Y--;){let rt=(Y+S)%y.length;if(rt!==S&&rt>=T&&rt<=w&&y[rt].loadError===0){var c,u;let J=y[rt];if(d===P.FRAG_GAP&&e.frag){let ut=y[rt].details;if(ut){let ft=Cr(e.frag,ut.fragments,e.frag.start);if(ft!=null&&ft.gap)continue}}else{if(x===ei&&J.hasAudioGroup(G)||x===pi&&J.hasSubtitleGroup(G))continue;if(D===Ue&&(c=s.audioGroups)!=null&&c.some((ut)=>J.hasAudioGroup(ut))||D===bi&&(u=s.subtitleGroups)!=null&&u.some((ut)=>J.hasSubtitleGroup(ut))||k&&s.audioCodec===J.audioCodec||!k&&s.audioCodec!==J.audioCodec||N&&s.codecSet===J.codecSet)continue}m=rt;break}}if(m>-1&&r.loadLevel!==m)return e.levelRetry=!0,this.playlistError=0,{action:xi,flags:fr,nextAutoLevel:m}}return{action:xi,flags:Qs}}onErrorOut(e,i){var r;switch((r=i.errorAction)==null?void 0:r.action){case Js:break;case xi:this.sendAlternateToPenaltyBox(i),i.errorAction.resolved||i.details===P.FRAG_GAP?/MediaSource readyState: ended/.test(i.error.message)&&(this.warn(`MediaSource ended after "${i.sourceBufferName}" sourceBuffer append error. Attempting to recover from media error.`),this.hls.recoverMediaError()):i.fatal=!0}i.fatal&&this.hls.stopLoad()}sendAlternateToPenaltyBox(e){let i=this.hls,r=e.errorAction;if(!r)return;let{flags:s,hdcpLevel:a,nextAutoLevel:l}=r;switch(s){case fr:this.switchLevel(e,l);break;case Zs:a&&(i.maxHdcpLevel=Ys[Ys.indexOf(a)-1],r.resolved=!0),this.warn(`Restricting playback to HDCP-LEVEL of "${i.maxHdcpLevel}" or lower`)}r.resolved||this.switchLevel(e,l)}switchLevel(e,i){i!==void 0&&e.errorAction&&(this.warn(`switching to level ${i} after ${e.details}`),this.hls.nextAutoLevel=i,e.errorAction.resolved=!0,this.hls.nextLoadLevel=this.hls.nextAutoLevel)}},fpsController:class t{constructor(e){this.hls=void 0,this.isVideoPlaybackQualityAvailable=!1,this.timer=void 0,this.media=null,this.lastTime=void 0,this.lastDroppedFrames=0,this.lastDecodedFrames=0,this.streamController=void 0,this.hls=e,this.registerListeners()}setStreamController(e){this.streamController=e}registerListeners(){this.hls.on(b.MEDIA_ATTACHING,this.onMediaAttaching,this)}unregisterListeners(){this.hls.off(b.MEDIA_ATTACHING,this.onMediaAttaching,this)}destroy(){this.timer&&clearInterval(this.timer),this.unregisterListeners(),this.isVideoPlaybackQualityAvailable=!1,this.media=null}onMediaAttaching(e,i){let r=this.hls.config;if(r.capLevelOnFPSDrop){let s=i.media instanceof self.HTMLVideoElement?i.media:null;this.media=s,s&&typeof s.getVideoPlaybackQuality=="function"&&(this.isVideoPlaybackQualityAvailable=!0),self.clearInterval(this.timer),this.timer=self.setInterval(this.checkFPSInterval.bind(this),r.fpsDroppedMonitoringPeriod)}}checkFPS(e,i,r){let s=performance.now();if(i){if(this.lastTime){let a=s-this.lastTime,l=r-this.lastDroppedFrames,c=i-this.lastDecodedFrames,u=1000*l/a,d=this.hls;if(d.trigger(b.FPS_DROP,{currentDropped:l,currentDecoded:c,totalDroppedFrames:r}),u>0&&l>d.config.fpsDroppedMonitoringThreshold*c){let m=d.currentLevel;I.warn("drop FPS ratio greater than max allowed value for currentLevel: "+m),m>0&&(d.autoLevelCapping===-1||d.autoLevelCapping>=m)&&(m-=1,d.trigger(b.FPS_DROP_LEVEL_CAPPING,{level:m,droppedLevel:d.currentLevel}),d.autoLevelCapping=m,this.streamController.nextLevelSwitch())}}this.lastTime=s,this.lastDroppedFrames=r,this.lastDecodedFrames=i}}checkFPSInterval(){let e=this.media;if(e)if(this.isVideoPlaybackQualityAvailable){let i=e.getVideoPlaybackQuality();this.checkFPS(e,i.totalVideoFrames,i.droppedVideoFrames)}else this.checkFPS(e,e.webkitDecodedFrameCount,e.webkitDroppedFrameCount)}},stretchShortVideoTrack:!1,maxAudioFramesDrift:1,forceKeyFrameOnDiscontinuity:!0,abrEwmaFastLive:3,abrEwmaSlowLive:9,abrEwmaFastVoD:3,abrEwmaSlowVoD:9,abrEwmaDefaultEstimate:500000,abrEwmaDefaultEstimateMax:5000000,abrBandWidthFactor:0.95,abrBandWidthUpFactor:0.7,abrMaxWithRealBitrate:!1,maxStarvationDelay:4,maxLoadingDelay:4,minAutoBitrate:0,emeEnabled:!1,widevineLicenseUrl:void 0,drmSystems:{},drmSystemOptions:{},requestMediaKeySystemAccessFunc:xe,testBandwidth:!0,progressive:!1,lowLatencyMode:!0,cmcd:void 0,enableDateRangeMetadataCues:!0,enableEmsgMetadataCues:!0,enableID3MetadataCues:!0,useMediaCapabilities:!0,certLoadPolicy:{default:{maxTimeToFirstByteMs:8000,maxLoadTimeMs:20000,timeoutRetry:null,errorRetry:null}},keyLoadPolicy:{default:{maxTimeToFirstByteMs:8000,maxLoadTimeMs:20000,timeoutRetry:{maxNumRetry:1,retryDelayMs:1000,maxRetryDelayMs:20000,backoff:"linear"},errorRetry:{maxNumRetry:8,retryDelayMs:1000,maxRetryDelayMs:20000,backoff:"linear"}}},manifestLoadPolicy:{default:{maxTimeToFirstByteMs:1/0,maxLoadTimeMs:20000,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1000,maxRetryDelayMs:8000}}},playlistLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:20000,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:2,retryDelayMs:1000,maxRetryDelayMs:8000}}},fragLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:120000,timeoutRetry:{maxNumRetry:4,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:6,retryDelayMs:1000,maxRetryDelayMs:8000}}},steeringManifestLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:20000,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1000,maxRetryDelayMs:8000}}},manifestLoadingTimeOut:1e4,manifestLoadingMaxRetry:1,manifestLoadingRetryDelay:1000,manifestLoadingMaxRetryTimeout:64000,levelLoadingTimeOut:1e4,levelLoadingMaxRetry:4,levelLoadingRetryDelay:1000,levelLoadingMaxRetryTimeout:64000,fragLoadingTimeOut:20000,fragLoadingMaxRetry:6,fragLoadingRetryDelay:1000,fragLoadingMaxRetryTimeout:64000},{cueHandler:Of,enableWebVTT:!0,enableIMSC1:!0,enableCEA708Captions:!0,captionsTextTrack1Label:"English",captionsTextTrack1LanguageCode:"en",captionsTextTrack2Label:"Spanish",captionsTextTrack2LanguageCode:"es",captionsTextTrack3Label:"Unknown CC",captionsTextTrack3LanguageCode:"",captionsTextTrack4Label:"Unknown CC",captionsTextTrack4LanguageCode:"",renderTextTracksNatively:!0}),{},{subtitleStreamController:class t extends dn{constructor(e,i,r){super(e,i,r,"[subtitle-stream-controller]",bi),this.currentTrackId=-1,this.tracksBuffered=[],this.mainDetails=null,this._registerListeners()}onHandlerDestroying(){this._unregisterListeners(),super.onHandlerDestroying(),this.mainDetails=null}_registerListeners(){let{hls:e}=this;e.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.LEVEL_LOADED,this.onLevelLoaded,this),e.on(b.ERROR,this.onError,this),e.on(b.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.on(b.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.on(b.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.on(b.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),e.on(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(b.FRAG_BUFFERED,this.onFragBuffered,this)}_unregisterListeners(){let{hls:e}=this;e.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.LEVEL_LOADED,this.onLevelLoaded,this),e.off(b.ERROR,this.onError,this),e.off(b.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(b.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.off(b.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.off(b.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),e.off(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(b.FRAG_BUFFERED,this.onFragBuffered,this)}startLoad(e){this.stopLoad(),this.state=Zt,this.setInterval(500),this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()}onManifestLoading(){this.mainDetails=null,this.fragmentTracker.removeAllFragments()}onMediaDetaching(){this.tracksBuffered=[],super.onMediaDetaching()}onLevelLoaded(e,i){this.mainDetails=i.details}onSubtitleFragProcessed(e,i){let{frag:r,success:s}=i;if(this.fragPrevious=r,this.state=Zt,!s)return;let a=this.tracksBuffered[this.currentTrackId];if(!a)return;let l,c=r.start;for(let d=0;d<a.length;d++)if(c>=a[d].start&&c<=a[d].end){l=a[d];break}let u=r.start+r.duration;l?l.end=u:(l={start:c,end:u},a.push(l)),this.fragmentTracker.fragBuffered(r),this.fragBufferedComplete(r,null)}onBufferFlushing(e,i){let{startOffset:r,endOffset:s}=i;if(r===0&&s!==Number.POSITIVE_INFINITY){let a=s-1;if(a<=0)return;i.endOffsetSubtitles=Math.max(0,a),this.tracksBuffered.forEach((l)=>{for(let c=0;c<l.length;)if(l[c].end<=a)l.shift();else{if(!(l[c].start<a))break;l[c].start=a,c++}}),this.fragmentTracker.removeFragmentsInRange(r,a,bi)}}onFragBuffered(e,i){var r;this.loadedmetadata||i.frag.type!==ie||(r=this.media)!=null&&r.buffered.length&&(this.loadedmetadata=!0)}onError(e,i){let r=i.frag;(r==null?void 0:r.type)===bi&&(this.fragCurrent&&this.fragCurrent.abortRequests(),this.state!==oi&&(this.state=Zt))}onSubtitleTracksUpdated(e,{subtitleTracks:i}){this.levels&&nu(this.levels,i)?this.levels=i.map((r)=>new ur(r)):(this.tracksBuffered=[],this.levels=i.map((r)=>{let s=new ur(r);return this.tracksBuffered[s.id]=[],s}),this.fragmentTracker.removeFragmentsInRange(0,Number.POSITIVE_INFINITY,bi),this.fragPrevious=null,this.mediaBuffer=null)}onSubtitleTrackSwitch(e,i){var r;if(this.currentTrackId=i.id,(r=this.levels)==null||!r.length||this.currentTrackId===-1)return void this.clearInterval();let s=this.levels[this.currentTrackId];s!=null&&s.details?this.mediaBuffer=this.mediaBufferTimeRanges:this.mediaBuffer=null,s&&this.setInterval(500)}onSubtitleTrackLoaded(e,i){var r;let{currentTrackId:s,levels:a}=this,{details:l,id:c}=i;if(!a)return void this.warn("Subtitle tracks were reset while loading level "+c);let u=a[s];if(c>=a.length||c!==s||!u)return;this.log(`Subtitle track ${c} loaded [${l.startSN},${l.endSN}]${l.lastPartSn?`[part-${l.lastPartSn}-${l.lastPartIndex}]`:""},duration:${l.totalduration}`),this.mediaBuffer=this.mediaBufferTimeRanges;let d=0;if(l.live||(r=u.details)!=null&&r.live){let y=this.mainDetails;if(l.deltaUpdateFailed||!y)return;let S=y.fragments[0];var m;if(u.details)d=this.alignPlaylists(l,u.details,(m=this.levelLastLoaded)==null?void 0:m.details),d===0&&S&&(d=S.start,rn(l,d));else l.hasProgramDateTime&&y.hasProgramDateTime?(Wn(l,y),d=l.fragments[0].start):S&&(d=S.start,rn(l,d))}if(u.details=l,this.levelLastLoaded=u,this.startFragRequested||!this.mainDetails&&l.live||this.setStartPosition(this.mainDetails||l,d),this.tick(),l.live&&!this.fragCurrent&&this.media&&this.state===Zt)Cr(null,l.fragments,this.media.currentTime,0)||(this.warn("Subtitle playlist not aligned with playback"),u.details=void 0)}_handleFragmentLoadComplete(e){let{frag:i,payload:r}=e,s=i.decryptdata,a=this.hls;if(!this.fragContextChanged(i)&&r&&r.byteLength>0&&s!=null&&s.key&&s.iv&&s.method==="AES-128"){let l=performance.now();this.decrypter.decrypt(new Uint8Array(r),s.key.buffer,s.iv.buffer).catch((c)=>{throw a.trigger(b.ERROR,{type:H.MEDIA_ERROR,details:P.FRAG_DECRYPT_ERROR,fatal:!1,error:c,reason:c.message,frag:i}),c}).then((c)=>{let u=performance.now();a.trigger(b.FRAG_DECRYPTED,{frag:i,payload:c,stats:{tstart:l,tdecrypt:u}})}).catch((c)=>{this.warn(`${c.name}: ${c.message}`),this.state=Zt})}}doTick(){if(this.media){if(this.state===Zt){let{currentTrackId:e,levels:i}=this,r=i==null?void 0:i[e];if(!r||!i.length||!r.details)return;let{config:s}=this,a=this.getLoadPosition(),l=Jt.bufferedInfo(this.tracksBuffered[this.currentTrackId]||[],a,s.maxBufferHole),{end:c,len:u}=l,d=this.getFwdBufferInfo(this.media,ie),m=r.details;if(u>this.getMaxBufferLength(d==null?void 0:d.len)+m.levelTargetDuration)return;let y=m.fragments,S=y.length,T=m.edge,w=null,D=this.fragPrevious;if(c<T){let k=s.maxFragLookUpTolerance,N=c>T-k?0:k;w=Cr(D,y,Math.max(y[0].start,c),N),!w&&D&&D.start<y[0].start&&(w=y[0])}else w=y[S-1];if(!w)return;if(w=this.mapToInitFragWhenRequired(w),w.sn!=="initSegment"){let k=y[w.sn-m.startSN-1];k&&k.cc===w.cc&&this.fragmentTracker.getState(k)===ze&&(w=k)}this.fragmentTracker.getState(w)===ze&&this.loadFragment(w,r,c)}}else this.state=Zt}getMaxBufferLength(e){let i=super.getMaxBufferLength();return e?Math.max(i,e):i}loadFragment(e,i,r){this.fragCurrent=e,e.sn==="initSegment"?this._loadInitSegment(e,i):(this.startFragRequested=!0,super.loadFragment(e,i,r))}get mediaBufferTimeRanges(){return new su(this.tracksBuffered[this.currentTrackId]||[])}},subtitleTrackController:class t extends _e{constructor(e){super(e,"[subtitle-track-controller]"),this.media=null,this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0,this.queuedDefaultTrack=-1,this.asyncPollTrackChange=()=>this.pollTrackChange(0),this.useTextTrackPolling=!1,this.subtitlePollingInterval=-1,this._subtitleDisplay=!0,this.onTextTracksChanged=()=>{if(this.useTextTrackPolling||self.clearInterval(this.subtitlePollingInterval),!this.media||!this.hls.config.renderTextTracksNatively)return;let i=null,r=xn(this.media.textTracks);for(let a=0;a<r.length;a++)if(r[a].mode==="hidden")i=r[a];else if(r[a].mode==="showing"){i=r[a];break}let s=this.findTrackForTextTrack(i);this.subtitleTrack!==s&&this.setSubtitleTrack(s)},this.registerListeners()}destroy(){this.unregisterListeners(),this.tracks.length=0,this.tracksInGroup.length=0,this.currentTrack=null,this.onTextTracksChanged=this.asyncPollTrackChange=null,super.destroy()}get subtitleDisplay(){return this._subtitleDisplay}set subtitleDisplay(e){this._subtitleDisplay=e,this.trackId>-1&&this.toggleTrackModes()}registerListeners(){let{hls:e}=this;e.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_PARSED,this.onManifestParsed,this),e.on(b.LEVEL_LOADING,this.onLevelLoading,this),e.on(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(b.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.on(b.ERROR,this.onError,this)}unregisterListeners(){let{hls:e}=this;e.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_PARSED,this.onManifestParsed,this),e.off(b.LEVEL_LOADING,this.onLevelLoading,this),e.off(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(b.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.off(b.ERROR,this.onError,this)}onMediaAttached(e,i){this.media=i.media,this.media&&(this.queuedDefaultTrack>-1&&(this.subtitleTrack=this.queuedDefaultTrack,this.queuedDefaultTrack=-1),this.useTextTrackPolling=!(this.media.textTracks&&("onchange"in this.media.textTracks)),this.useTextTrackPolling?this.pollTrackChange(500):this.media.textTracks.addEventListener("change",this.asyncPollTrackChange))}pollTrackChange(e){self.clearInterval(this.subtitlePollingInterval),this.subtitlePollingInterval=self.setInterval(this.onTextTracksChanged,e)}onMediaDetaching(){if(!this.media)return;self.clearInterval(this.subtitlePollingInterval),this.useTextTrackPolling||this.media.textTracks.removeEventListener("change",this.asyncPollTrackChange),this.trackId>-1&&(this.queuedDefaultTrack=this.trackId),xn(this.media.textTracks).forEach((e)=>{cr(e)}),this.subtitleTrack=-1,this.media=null}onManifestLoading(){this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0}onManifestParsed(e,i){this.tracks=i.subtitleTracks}onSubtitleTrackLoaded(e,i){let{id:r,groupId:s,details:a}=i,l=this.tracksInGroup[r];if(!l||l.groupId!==s)return void this.warn(`Subtitle track with id:${r} and group:${s} not found in active group ${l==null?void 0:l.groupId}`);let c=l.details;l.details=i.details,this.log(`Subtitle track ${r} "${l.name}" lang:${l.lang} group:${s} loaded [${a.startSN}-${a.endSN}]`),r===this.trackId&&this.playlistLoaded(r,i,c)}onLevelLoading(e,i){this.switchLevel(i.level)}onLevelSwitching(e,i){this.switchLevel(i.level)}switchLevel(e){let i=this.hls.levels[e];if(!i)return;let r=i.subtitleGroups||null,s=this.groupIds,a=this.currentTrack;if(!r||(s==null?void 0:s.length)!==(r==null?void 0:r.length)||r!=null&&r.some((l)=>(s==null?void 0:s.indexOf(l))===-1)){this.groupIds=r,this.trackId=-1,this.currentTrack=null;let l=this.tracks.filter((m)=>!r||r.indexOf(m.groupId)!==-1);if(l.length)this.selectDefaultTrack&&!l.some((m)=>m.default)&&(this.selectDefaultTrack=!1),l.forEach((m,y)=>{m.id=y});else if(!a&&!this.tracksInGroup.length)return;this.tracksInGroup=l;let c=this.hls.config.subtitlePreference;if(!a&&c){this.selectDefaultTrack=!1;let m=Ai(c,l);if(m>-1)a=l[m];else{let y=Ai(c,this.tracks);a=this.tracks[y]}}let u=this.findTrackId(a);u===-1&&a&&(u=this.findTrackId(null));let d={subtitleTracks:l};this.log(`Updating subtitle tracks, ${l.length} track(s) found in "${r==null?void 0:r.join(",")}" group-id`),this.hls.trigger(b.SUBTITLE_TRACKS_UPDATED,d),u!==-1&&this.trackId===-1&&this.setSubtitleTrack(u)}else this.shouldReloadPlaylist(a)&&this.setSubtitleTrack(this.trackId)}findTrackId(e){let i=this.tracksInGroup,r=this.selectDefaultTrack;for(let s=0;s<i.length;s++){let a=i[s];if((!r||a.default)&&(r||e)&&(!e||Dr(a,e)))return s}if(e){for(let s=0;s<i.length;s++){let a=i[s];if(is(e.attrs,a.attrs,["LANGUAGE","ASSOC-LANGUAGE","CHARACTERISTICS"]))return s}for(let s=0;s<i.length;s++){let a=i[s];if(is(e.attrs,a.attrs,["LANGUAGE"]))return s}}return-1}findTrackForTextTrack(e){if(e){let i=this.tracksInGroup;for(let r=0;r<i.length;r++)if(Fl(i[r],e))return r}return-1}onError(e,i){!i.fatal&&i.context&&(i.context.type!==pi||i.context.id!==this.trackId||this.groupIds&&this.groupIds.indexOf(i.context.groupId)===-1||this.checkRetry(i))}get allSubtitleTracks(){return this.tracks}get subtitleTracks(){return this.tracksInGroup}get subtitleTrack(){return this.trackId}set subtitleTrack(e){this.selectDefaultTrack=!1,this.setSubtitleTrack(e)}setSubtitleOption(e){if(this.hls.config.subtitlePreference=e,e){let i=this.allSubtitleTracks;if(this.selectDefaultTrack=!1,i.length){let r=this.currentTrack;if(r&&Dr(e,r))return r;let s=Ai(e,this.tracksInGroup);if(s>-1){let a=this.tracksInGroup[s];return this.setSubtitleTrack(s),a}if(r)return null;{let a=Ai(e,i);if(a>-1)return i[a]}}}return null}loadPlaylist(e){super.loadPlaylist();let i=this.currentTrack;if(this.shouldLoadPlaylist(i)&&i){let{id:r,groupId:s,url:a}=i;if(e)try{a=e.addDirectives(a)}catch(l){this.warn("Could not construct new URL with HLS Delivery Directives: "+l)}this.log("Loading subtitle playlist for id "+r),this.hls.trigger(b.SUBTITLE_TRACK_LOADING,{url:a,id:r,groupId:s,deliveryDirectives:e||null})}}toggleTrackModes(){let{media:e}=this;if(!e)return;let i=xn(e.textTracks),r=this.currentTrack,s;if(r&&(s=i.filter((a)=>Fl(r,a))[0],s||this.warn(`Unable to find subtitle TextTrack with name "${r.name}" and language "${r.lang}"`)),[].slice.call(i).forEach((a)=>{a.mode!=="disabled"&&a!==s&&(a.mode="disabled")}),s){let a=this.subtitleDisplay?"showing":"hidden";s.mode!==a&&(s.mode=a)}}setSubtitleTrack(e){let i=this.tracksInGroup;if(!this.media)return void(this.queuedDefaultTrack=e);if(e<-1||e>=i.length||!L(e))return void this.warn("Invalid subtitle track id: "+e);this.clearTimer(),this.selectDefaultTrack=!1;let r=this.currentTrack,s=i[e]||null;if(this.trackId=e,this.currentTrack=s,this.toggleTrackModes(),!s)return void this.hls.trigger(b.SUBTITLE_TRACK_SWITCH,{id:e});let a=!!s.details&&!s.details.live;if(e===this.trackId&&s===r&&a)return;this.log("Switching to subtitle-track "+e+(s?` "${s.name}" lang:${s.lang} group:${s.groupId}`:""));let{id:l,groupId:c="",name:u,type:d,url:m}=s;this.hls.trigger(b.SUBTITLE_TRACK_SWITCH,{id:l,groupId:c,name:u,type:d,url:m});let y=this.switchParams(s.url,r==null?void 0:r.details,s.details);this.loadPlaylist(y)}},timelineController:class t{constructor(e){this.hls=void 0,this.media=null,this.config=void 0,this.enabled=!0,this.Cues=void 0,this.textTracks=[],this.tracks=[],this.initPTS=[],this.unparsedVttFrags=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.cea608Parser1=void 0,this.cea608Parser2=void 0,this.lastCc=-1,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs={ccOffset:0,presentationOffset:0,0:{start:0,prevCC:-1,new:!0}},this.captionsProperties=void 0,this.hls=e,this.config=e.config,this.Cues=e.config.cueHandler,this.captionsProperties={textTrack1:{label:this.config.captionsTextTrack1Label,languageCode:this.config.captionsTextTrack1LanguageCode},textTrack2:{label:this.config.captionsTextTrack2Label,languageCode:this.config.captionsTextTrack2LanguageCode},textTrack3:{label:this.config.captionsTextTrack3Label,languageCode:this.config.captionsTextTrack3LanguageCode},textTrack4:{label:this.config.captionsTextTrack4Label,languageCode:this.config.captionsTextTrack4LanguageCode}},e.on(b.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(b.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.on(b.FRAG_LOADING,this.onFragLoading,this),e.on(b.FRAG_LOADED,this.onFragLoaded,this),e.on(b.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.on(b.FRAG_DECRYPTED,this.onFragDecrypted,this),e.on(b.INIT_PTS_FOUND,this.onInitPtsFound,this),e.on(b.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.on(b.BUFFER_FLUSHING,this.onBufferFlushing,this)}destroy(){let{hls:e}=this;e.off(b.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(b.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(b.FRAG_LOADING,this.onFragLoading,this),e.off(b.FRAG_LOADED,this.onFragLoaded,this),e.off(b.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.off(b.FRAG_DECRYPTED,this.onFragDecrypted,this),e.off(b.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(b.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.off(b.BUFFER_FLUSHING,this.onBufferFlushing,this),this.hls=this.config=null,this.cea608Parser1=this.cea608Parser2=void 0}initCea608Parsers(){if(this.config.enableCEA708Captions&&(!this.cea608Parser1||!this.cea608Parser2)){let e=new va(this,"textTrack1"),i=new va(this,"textTrack2"),r=new va(this,"textTrack3"),s=new va(this,"textTrack4");this.cea608Parser1=new $l(1,e,i),this.cea608Parser2=new $l(3,r,s)}}addCues(e,i,r,s,a){let l=!1;for(let y=a.length;y--;){let S=a[y],T=(c=S[0],u=S[1],d=i,m=r,Math.min(u,m)-Math.max(c,d));if(T>=0&&(S[0]=Math.min(S[0],i),S[1]=Math.max(S[1],r),l=!0,T/(r-i)>0.5))return}var c,u,d,m;if(l||a.push([i,r]),this.config.renderTextTracksNatively){let y=this.captionsTracks[e];this.Cues.newCue(y,i,r,s)}else{let y=this.Cues.newCue(null,i,r,s);this.hls.trigger(b.CUES_PARSED,{type:"captions",cues:y,track:e})}}onInitPtsFound(e,{frag:i,id:r,initPTS:s,timescale:a}){let{unparsedVttFrags:l}=this;r==="main"&&(this.initPTS[i.cc]={baseTime:s,timescale:a}),l.length&&(this.unparsedVttFrags=[],l.forEach((c)=>{this.onFragLoaded(b.FRAG_LOADED,c)}))}getExistingTrack(e,i){let{media:r}=this;if(r)for(let s=0;s<r.textTracks.length;s++){let a=r.textTracks[s];if(Ru(a,{name:e,lang:i,attrs:{}}))return a}return null}createCaptionsTrack(e){this.config.renderTextTracksNatively?this.createNativeTrack(e):this.createNonNativeTrack(e)}createNativeTrack(e){if(this.captionsTracks[e])return;let{captionsProperties:i,captionsTracks:r,media:s}=this,{label:a,languageCode:l}=i[e],c=this.getExistingTrack(a,l);if(c)r[e]=c,cr(r[e]),Hs(r[e],s);else{let u=this.createTextTrack("captions",a,l);u&&(u[e]=!0,r[e]=u)}}createNonNativeTrack(e){if(this.nonNativeCaptionsTracks[e])return;let i=this.captionsProperties[e];if(!i)return;let r={_id:e,label:i.label,kind:"captions",default:!!i.media&&!!i.media.default,closedCaptions:i.media};this.nonNativeCaptionsTracks[e]=r,this.hls.trigger(b.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:[r]})}createTextTrack(e,i,r){let s=this.media;if(s)return s.addTextTrack(e,i,r)}onMediaAttaching(e,i){this.media=i.media,this._cleanTracks()}onMediaDetaching(){let{captionsTracks:e}=this;Object.keys(e).forEach((i)=>{cr(e[i]),delete e[i]}),this.nonNativeCaptionsTracks={}}onManifestLoading(){this.lastCc=-1,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs={ccOffset:0,presentationOffset:0,0:{start:0,prevCC:-1,new:!0}},this._cleanTracks(),this.tracks=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.textTracks=[],this.unparsedVttFrags=[],this.initPTS=[],this.cea608Parser1&&this.cea608Parser2&&(this.cea608Parser1.reset(),this.cea608Parser2.reset())}_cleanTracks(){let{media:e}=this;if(!e)return;let i=e.textTracks;if(i)for(let r=0;r<i.length;r++)cr(i[r])}onSubtitleTracksUpdated(e,i){let r=i.subtitleTracks||[],s=r.some((a)=>a.textCodec==="stpp.ttml.im1t");if(this.config.enableWebVTT||s&&this.config.enableIMSC1){if(nu(this.tracks,r))return void(this.tracks=r);if(this.textTracks=[],this.tracks=r,this.config.renderTextTracksNatively){let a=this.media,l=a?xn(a.textTracks):null;if(this.tracks.forEach((c,u)=>{let d;if(l){let m=null;for(let y=0;y<l.length;y++)if(l[y]&&Ru(l[y],c)){m=l[y],l[y]=null;break}m&&(d=m)}if(d)cr(d);else{let m=wu(c);d=this.createTextTrack(m,c.name,c.lang),d&&(d.mode="disabled")}d&&this.textTracks.push(d)}),l!=null&&l.length){let c=l.filter((u)=>u!==null).map((u)=>u.label);c.length&&I.warn(`Media element contains unused subtitle tracks: ${c.join(", ")}. Replace media element for each source to clear TextTracks and captions menu.`)}}else if(this.tracks.length){let a=this.tracks.map((l)=>({label:l.name,kind:l.type.toLowerCase(),default:l.default,subtitleTrack:l}));this.hls.trigger(b.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:a})}}}onManifestLoaded(e,i){this.config.enableCEA708Captions&&i.captions&&i.captions.forEach((r)=>{let s=/(?:CC|SERVICE)([1-4])/.exec(r.instreamId);if(!s)return;let a="textTrack"+s[1],l=this.captionsProperties[a];l&&(l.label=r.name,r.lang&&(l.languageCode=r.lang),l.media=r)})}closedCaptionsForLevel(e){let i=this.hls.levels[e.level];return i==null?void 0:i.attrs["CLOSED-CAPTIONS"]}onFragLoading(e,i){this.initCea608Parsers();let{cea608Parser1:r,cea608Parser2:s,lastCc:a,lastSn:l,lastPartIndex:c}=this;if(this.enabled&&r&&s&&i.frag.type===ie){var u,d;let{cc:m,sn:y}=i.frag,S=(u=i==null||(d=i.part)==null?void 0:d.index)!=null?u:-1;y===l+1||y===l&&S===c+1||m===a||(r.reset(),s.reset()),this.lastCc=m,this.lastSn=y,this.lastPartIndex=S}}onFragLoaded(e,i){let{frag:r,payload:s}=i;if(r.type===bi)if(s.byteLength){let a=r.decryptdata,l="stats"in i;if(a==null||!a.encrypted||l){let c=this.tracks[r.level],u=this.vttCCs;u[r.cc]||(u[r.cc]={start:r.start,prevCC:this.prevCC,new:!0},this.prevCC=r.cc),c&&c.textCodec==="stpp.ttml.im1t"?this._parseIMSC1(r,s):this._parseVTTs(i)}}else this.hls.trigger(b.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:r,error:new Error("Empty subtitle payload")})}_parseIMSC1(e,i){let r=this.hls;Au(i,this.initPTS[e.cc],(s)=>{this._appendCues(s,e.level),r.trigger(b.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:e})},(s)=>{I.log("Failed to parse IMSC1: "+s),r.trigger(b.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:e,error:s})})}_parseVTTs(e){var i;let{frag:r,payload:s}=e,{initPTS:a,unparsedVttFrags:l}=this,c=a.length-1;if(!a[r.cc]&&c===-1)return void l.push(e);let u=this.hls;pf((i=r.initSegment)!=null&&i.data?si(r.initSegment.data,new Uint8Array(s)):s,this.initPTS[r.cc],this.vttCCs,r.cc,r.start,(d)=>{this._appendCues(d,r.level),u.trigger(b.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:r})},(d)=>{let m=d.message==="Missing initPTS for VTT MPEGTS";m?l.push(e):this._fallbackToIMSC1(r,s),I.log("Failed to parse VTT cue: "+d),m&&c>r.cc||u.trigger(b.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:r,error:d})})}_fallbackToIMSC1(e,i){let r=this.tracks[e.level];r.textCodec||Au(i,this.initPTS[e.cc],()=>{r.textCodec="stpp.ttml.im1t",this._parseIMSC1(e,i)},()=>{r.textCodec="wvtt"})}_appendCues(e,i){let r=this.hls;if(this.config.renderTextTracksNatively){let s=this.textTracks[i];if(!s||s.mode==="disabled")return;e.forEach((a)=>io(s,a))}else{let s=this.tracks[i];if(!s)return;let a=s.default?"default":"subtitles"+i;r.trigger(b.CUES_PARSED,{type:"subtitles",cues:e,track:a})}}onFragDecrypted(e,i){let{frag:r}=i;r.type===bi&&this.onFragLoaded(b.FRAG_LOADED,i)}onSubtitleTracksCleared(){this.tracks=[],this.captionsTracks={}}onFragParsingUserdata(e,i){this.initCea608Parsers();let{cea608Parser1:r,cea608Parser2:s}=this;if(!this.enabled||!r||!s)return;let{frag:a,samples:l}=i;if(a.type!==ie||this.closedCaptionsForLevel(a)!=="NONE")for(let c=0;c<l.length;c++){let u=l[c].bytes;if(u){let d=this.extractCea608Data(u);r.addData(l[c].pts,d[0]),s.addData(l[c].pts,d[1])}}}onBufferFlushing(e,{startOffset:i,endOffset:r,endOffsetSubtitles:s,type:a}){let{media:l}=this;if(l&&!(l.currentTime<r)){if(!a||a==="video"){let{captionsTracks:c}=this;Object.keys(c).forEach((u)=>Pn(c[u],i,r))}if(this.config.renderTextTracksNatively&&i===0&&s!==void 0){let{textTracks:c}=this;Object.keys(c).forEach((u)=>Pn(c[u],i,s))}}}extractCea608Data(e){let i=[[],[]],r=31&e[0],s=2;for(let a=0;a<r;a++){let l=e[s++],c=127&e[s++],u=127&e[s++];if(c===0&&u===0)continue;if((4&l)!=0){let d=3&l;d!==0&&d!==1||(i[d].push(c),i[d].push(u))}}return i}},audioStreamController:class t extends dn{constructor(e,i,r){super(e,i,r,"[audio-stream-controller]",Ue),this.videoBuffer=null,this.videoTrackCC=-1,this.waitingVideoCC=-1,this.bufferedTrack=null,this.switchingTrack=null,this.trackId=-1,this.waitingData=null,this.mainDetails=null,this.flushing=!1,this.bufferFlushed=!1,this.cachedTrackLoadedData=null,this._registerListeners()}onHandlerDestroying(){this._unregisterListeners(),super.onHandlerDestroying(),this.mainDetails=null,this.bufferedTrack=null,this.switchingTrack=null}_registerListeners(){let{hls:e}=this;e.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.LEVEL_LOADED,this.onLevelLoaded,this),e.on(b.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),e.on(b.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.on(b.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.on(b.ERROR,this.onError,this),e.on(b.BUFFER_RESET,this.onBufferReset,this),e.on(b.BUFFER_CREATED,this.onBufferCreated,this),e.on(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(b.BUFFER_FLUSHED,this.onBufferFlushed,this),e.on(b.INIT_PTS_FOUND,this.onInitPtsFound,this),e.on(b.FRAG_BUFFERED,this.onFragBuffered,this)}_unregisterListeners(){let{hls:e}=this;e.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.LEVEL_LOADED,this.onLevelLoaded,this),e.off(b.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),e.off(b.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.off(b.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.off(b.ERROR,this.onError,this),e.off(b.BUFFER_RESET,this.onBufferReset,this),e.off(b.BUFFER_CREATED,this.onBufferCreated,this),e.off(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(b.BUFFER_FLUSHED,this.onBufferFlushed,this),e.off(b.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(b.FRAG_BUFFERED,this.onFragBuffered,this)}onInitPtsFound(e,{frag:i,id:r,initPTS:s,timescale:a}){if(r==="main"){let l=i.cc;this.initPTS[i.cc]={baseTime:s,timescale:a},this.log(`InitPTS for cc: ${l} found from main: ${s}`),this.videoTrackCC=l,this.state===Li&&this.tick()}}startLoad(e){if(!this.levels)return this.startPosition=e,void(this.state=oi);let i=this.lastCurrentTime;this.stopLoad(),this.setInterval(100),i>0&&e===-1?(this.log("Override startPosition with lastCurrentTime @"+i.toFixed(3)),e=i,this.state=Zt):(this.loadedmetadata=!1,this.state=Pr),this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()}doTick(){switch(this.state){case Zt:this.doTickIdle();break;case Pr:{var e;let{levels:r,trackId:s}=this,a=r==null||(e=r[s])==null?void 0:e.details;if(a){if(this.waitForCdnTuneIn(a))break;this.state=Li}break}case Nr:{var i;let r=performance.now(),s=this.retryDate;if(!s||r>=s||(i=this.media)!=null&&i.seeking){let{levels:a,trackId:l}=this;this.log("RetryDate reached, switch back to IDLE state"),this.resetStartWhenNotLoaded((a==null?void 0:a[l])||null),this.state=Zt}break}case Li:{let r=this.waitingData;if(r){let{frag:s,part:a,cache:l,complete:c}=r;if(this.initPTS[s.cc]!==void 0){this.waitingData=null,this.waitingVideoCC=-1,this.state=Mr;let u={frag:s,part:a,payload:l.flush(),networkDetails:null};this._handleFragmentLoadProgress(u),c&&super._handleFragmentLoadComplete(u)}else if(this.videoTrackCC!==this.waitingVideoCC)this.log(`Waiting fragment cc (${s.cc}) cancelled because video is at cc ${this.videoTrackCC}`),this.clearWaitingFragment();else{let u=this.getLoadPosition(),d=Jt.bufferInfo(this.mediaBuffer,u,this.config.maxBufferHole);hr(d.end,this.config.maxFragLookUpTolerance,s)<0&&(this.log(`Waiting fragment cc (${s.cc}) @ ${s.start} cancelled because another fragment at ${d.end} is needed`),this.clearWaitingFragment())}}else this.state=Zt}}this.onTickEnd()}clearWaitingFragment(){let e=this.waitingData;e&&(this.fragmentTracker.removeFragment(e.frag),this.waitingData=null,this.waitingVideoCC=-1,this.state=Zt)}resetLoadingState(){this.clearWaitingFragment(),super.resetLoadingState()}onTickEnd(){let{media:e}=this;e!=null&&e.readyState&&(this.lastCurrentTime=e.currentTime)}doTickIdle(){let{hls:e,levels:i,media:r,trackId:s}=this,a=e.config;if(!r&&(this.startFragRequested||!a.startFragPrefetch)||i==null||!i[s])return;let l=i[s],c=l.details;if(!c||c.live&&this.levelLastLoaded!==l||this.waitForCdnTuneIn(c))return void(this.state=Pr);let u=this.mediaBuffer?this.mediaBuffer:this.media;this.bufferFlushed&&u&&(this.bufferFlushed=!1,this.afterBufferFlushed(u,lt,Ue));let d=this.getFwdBufferInfo(u,Ue);if(d===null)return;let{bufferedTrack:m,switchingTrack:y}=this;if(!y&&this._streamEnded(d,c))return e.trigger(b.BUFFER_EOS,{type:"audio"}),void(this.state=un);let S=this.getFwdBufferInfo(this.videoBuffer?this.videoBuffer:this.media,ie),T=d.len,w=this.getMaxBufferLength(S==null?void 0:S.len),D=c.fragments,k=D[0].start,N=this.flushing?this.getLoadPosition():d.end;if(y&&r){let rt=this.getLoadPosition();m&&!is(y.attrs,m.attrs)&&(N=rt),c.PTSKnown&&rt<k&&(d.end>k||d.nextStart)&&(this.log("Alt audio track ahead of main track, seek to start of alt audio track"),r.currentTime=k+0.05)}if(T>=w&&!y&&N<D[D.length-1].start)return;let x=this.getNextFragment(N,c),G=!1;if(x&&this.isLoopLoading(x,N)&&(G=!!x.gap,x=this.getNextFragmentLoopLoading(x,c,d,ie,w)),!x)return void(this.bufferFlushed=!0);let Y=S&&x.start>S.end+c.targetduration;if(Y||(S==null||!S.len)&&d.len){let rt=this.getAppendedFrag(x.start,ie);if(rt===null)return;if(G||(G=!!rt.gap||!!Y&&S.len===0),Y&&!G||G&&d.nextStart&&d.nextStart<rt.end)return}this.loadFragment(x,l,N)}getMaxBufferLength(e){let i=super.getMaxBufferLength();return e?Math.min(Math.max(i,e),this.config.maxMaxBufferLength):i}onMediaDetaching(){this.videoBuffer=null,this.bufferFlushed=this.flushing=!1,super.onMediaDetaching()}onAudioTracksUpdated(e,{audioTracks:i}){this.resetTransmuxer(),this.levels=i.map((r)=>new ur(r))}onAudioTrackSwitching(e,i){let r=!!i.url;this.trackId=i.id;let{fragCurrent:s}=this;s&&(s.abortRequests(),this.removeUnbufferedFrags(s.start)),this.resetLoadingState(),r?this.setInterval(100):this.resetTransmuxer(),r?(this.switchingTrack=i,this.state=Zt,this.flushAudioIfNeeded(i)):(this.switchingTrack=null,this.bufferedTrack=i,this.state=oi),this.tick()}onManifestLoading(){this.fragmentTracker.removeAllFragments(),this.startPosition=this.lastCurrentTime=0,this.bufferFlushed=this.flushing=!1,this.levels=this.mainDetails=this.waitingData=this.bufferedTrack=this.cachedTrackLoadedData=this.switchingTrack=null,this.startFragRequested=!1,this.trackId=this.videoTrackCC=this.waitingVideoCC=-1}onLevelLoaded(e,i){this.mainDetails=i.details,this.cachedTrackLoadedData!==null&&(this.hls.trigger(b.AUDIO_TRACK_LOADED,this.cachedTrackLoadedData),this.cachedTrackLoadedData=null)}onAudioTrackLoaded(e,i){var r;if(this.mainDetails==null)return void(this.cachedTrackLoadedData=i);let{levels:s}=this,{details:a,id:l}=i;if(!s)return void this.warn("Audio tracks were reset while loading level "+l);this.log(`Audio track ${l} loaded [${a.startSN},${a.endSN}]${a.lastPartSn?`[part-${a.lastPartSn}-${a.lastPartIndex}]`:""},duration:${a.totalduration}`);let c=s[l],u=0;if(a.live||(r=c.details)!=null&&r.live){this.checkLiveUpdate(a);let m=this.mainDetails;if(a.deltaUpdateFailed||!m)return;var d;if(!c.details&&a.hasProgramDateTime&&m.hasProgramDateTime)Wn(a,m),u=a.fragments[0].start;else u=this.alignPlaylists(a,c.details,(d=this.levelLastLoaded)==null?void 0:d.details)}c.details=a,this.levelLastLoaded=c,this.startFragRequested||!this.mainDetails&&a.live||this.setStartPosition(this.mainDetails||a,u),this.state!==Pr||this.waitForCdnTuneIn(a)||(this.state=Zt),this.tick()}_handleFragmentLoadProgress(e){var i;let{frag:r,part:s,payload:a}=e,{config:l,trackId:c,levels:u}=this;if(!u)return void this.warn(`Audio tracks were reset while fragment load was in progress. Fragment ${r.sn} of level ${r.level} will not be buffered`);let d=u[c];if(!d)return void this.warn("Audio track is undefined on fragment load progress");let m=d.details;if(!m)return this.warn("Audio track details undefined on fragment load progress"),void this.removeUnbufferedFrags(r.start);let y=l.defaultAudioCodec||d.audioCodec||"mp4a.40.2",S=this.transmuxer;S||(S=this.transmuxer=new xl(this.hls,Ue,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)));let T=this.initPTS[r.cc],w=(i=r.initSegment)==null?void 0:i.data;if(T!==void 0){let k=s?s.index:-1,N=k!==-1,x=new Or(r.level,r.sn,r.stats.chunkCount,a.byteLength,k,N);S.push(a,w,y,"",r,s,m.totalduration,!1,x,T)}else{this.log(`Unknown video PTS for cc ${r.cc}, waiting for video PTS before demuxing audio frag ${r.sn} of [${m.startSN} ,${m.endSN}],track ${c}`);let{cache:D}=this.waitingData=this.waitingData||{frag:r,part:s,cache:new jn,complete:!1};D.push(new Uint8Array(a)),this.waitingVideoCC=this.videoTrackCC,this.state=Li}}_handleFragmentLoadComplete(e){this.waitingData?this.waitingData.complete=!0:super._handleFragmentLoadComplete(e)}onBufferReset(){this.mediaBuffer=this.videoBuffer=null,this.loadedmetadata=!1}onBufferCreated(e,i){let r=i.tracks.audio;r&&(this.mediaBuffer=r.buffer||null),i.tracks.video&&(this.videoBuffer=i.tracks.video.buffer||null)}onFragBuffered(e,i){let{frag:r,part:s}=i;if(r.type===Ue)if(this.fragContextChanged(r))this.warn(`Fragment ${r.sn}${s?" p: "+s.index:""} of level ${r.level} finished buffering, but was aborted. state: ${this.state}, audioSwitch: ${this.switchingTrack?this.switchingTrack.name:"false"}`);else{if(r.sn!=="initSegment"){this.fragPrevious=r;let a=this.switchingTrack;a&&(this.bufferedTrack=a,this.switchingTrack=null,this.hls.trigger(b.AUDIO_TRACK_SWITCHED,E({},a)))}this.fragBufferedComplete(r,s)}else if(!this.loadedmetadata&&r.type===ie){let a=this.videoBuffer||this.media;if(a)Jt.getBuffered(a).length&&(this.loadedmetadata=!0)}}onError(e,i){var r;if(i.fatal)this.state=xr;else switch(i.details){case P.FRAG_GAP:case P.FRAG_PARSING_ERROR:case P.FRAG_DECRYPT_ERROR:case P.FRAG_LOAD_ERROR:case P.FRAG_LOAD_TIMEOUT:case P.KEY_LOAD_ERROR:case P.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(Ue,i);break;case P.AUDIO_TRACK_LOAD_ERROR:case P.AUDIO_TRACK_LOAD_TIMEOUT:case P.LEVEL_PARSING_ERROR:i.levelRetry||this.state!==Pr||((r=i.context)==null?void 0:r.type)!==ei||(this.state=Zt);break;case P.BUFFER_APPEND_ERROR:case P.BUFFER_FULL_ERROR:if(!i.parent||i.parent!=="audio")return;if(i.details===P.BUFFER_APPEND_ERROR)return void this.resetLoadingState();this.reduceLengthAndFlushBuffer(i)&&(this.bufferedTrack=null,super.flushMainBuffer(0,Number.POSITIVE_INFINITY,"audio"));break;case P.INTERNAL_EXCEPTION:this.recoverWorkerError(i)}}onBufferFlushing(e,{type:i}){i!==St&&(this.flushing=!0)}onBufferFlushed(e,{type:i}){if(i!==St){this.flushing=!1,this.bufferFlushed=!0,this.state===un&&(this.state=Zt);let r=this.mediaBuffer||this.media;r&&(this.afterBufferFlushed(r,i,Ue),this.tick())}}_handleTransmuxComplete(e){var i;let r="audio",{hls:s}=this,{remuxResult:a,chunkMeta:l}=e,c=this.getCurrentContext(l);if(!c)return void this.resetWhenMissingContext(l);let{frag:u,part:d,level:m}=c,{details:y}=m,{audio:S,text:T,id3:w,initSegment:D}=a;if(!this.fragContextChanged(u)&&y){if(this.state=Fi,this.switchingTrack&&S&&this.completeAudioSwitch(this.switchingTrack),D!=null&&D.tracks){let k=u.initSegment||u;this._bufferInitSegment(m,D.tracks,k,l),s.trigger(b.FRAG_PARSING_INIT_SEGMENT,{frag:k,id:"audio",tracks:D.tracks})}if(S){let{startPTS:k,endPTS:N,startDTS:x,endDTS:G}=S;d&&(d.elementaryStreams[lt]={startPTS:k,endPTS:N,startDTS:x,endDTS:G}),u.setElementaryStreamInfo(lt,k,N,x,G),this.bufferFragmentData(S,u,d,l)}if(w!=null&&(i=w.samples)!=null&&i.length){let k=A({id:"audio",frag:u,details:y},w);s.trigger(b.FRAG_PARSING_METADATA,k)}if(T){let k=A({id:"audio",frag:u,details:y},T);s.trigger(b.FRAG_PARSING_USERDATA,k)}}else this.fragmentTracker.removeFragment(u)}_bufferInitSegment(e,i,r,s){if(this.state!==Fi)return;i.video&&delete i.video;let a=i.audio;if(!a)return;a.id="audio";let l=e.audioCodec;this.log(`Init audio buffer, container:${a.container}, codecs[level/parsed]=[${l}/${a.codec}]`),l&&l.split(",").length===1&&(a.levelCodec=l),this.hls.trigger(b.BUFFER_CODECS,i);let c=a.initSegment;if(c!=null&&c.byteLength){let u={type:"audio",frag:r,part:null,chunkMeta:s,parent:r.type,data:c};this.hls.trigger(b.BUFFER_APPENDING,u)}this.tickImmediate()}loadFragment(e,i,r){let s=this.fragmentTracker.getState(e);var a;if(this.fragCurrent=e,this.switchingTrack||s===ze||s===gr)if(e.sn==="initSegment")this._loadInitSegment(e,i);else if((a=i.details)!=null&&a.live&&!this.initPTS[e.cc]){this.log(`Waiting for video PTS in continuity counter ${e.cc} of live stream before loading audio fragment ${e.sn} of level ${this.trackId}`),this.state=Li;let l=this.mainDetails;l&&l.fragments[0].start!==i.details.fragments[0].start&&Wn(i.details,l)}else this.startFragRequested=!0,super.loadFragment(e,i,r);else this.clearTrackerIfNeeded(e)}flushAudioIfNeeded(e){let{media:i,bufferedTrack:r}=this,s=r==null?void 0:r.attrs,a=e.attrs;i&&s&&(s.CHANNELS!==a.CHANNELS||r.name!==e.name||r.lang!==e.lang)&&(this.log("Switching audio track : flushing all audio"),super.flushMainBuffer(0,Number.POSITIVE_INFINITY,"audio"),this.bufferedTrack=null)}completeAudioSwitch(e){let{hls:i}=this;this.flushAudioIfNeeded(e),this.bufferedTrack=e,this.switchingTrack=null,i.trigger(b.AUDIO_TRACK_SWITCHED,E({},e))}},audioTrackController:class t extends _e{constructor(e){super(e,"[audio-track-controller]"),this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0,this.registerListeners()}registerListeners(){let{hls:e}=this;e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_PARSED,this.onManifestParsed,this),e.on(b.LEVEL_LOADING,this.onLevelLoading,this),e.on(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(b.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.on(b.ERROR,this.onError,this)}unregisterListeners(){let{hls:e}=this;e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_PARSED,this.onManifestParsed,this),e.off(b.LEVEL_LOADING,this.onLevelLoading,this),e.off(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(b.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.off(b.ERROR,this.onError,this)}destroy(){this.unregisterListeners(),this.tracks.length=0,this.tracksInGroup.length=0,this.currentTrack=null,super.destroy()}onManifestLoading(){this.tracks=[],this.tracksInGroup=[],this.groupIds=null,this.currentTrack=null,this.trackId=-1,this.selectDefaultTrack=!0}onManifestParsed(e,i){this.tracks=i.audioTracks||[]}onAudioTrackLoaded(e,i){let{id:r,groupId:s,details:a}=i,l=this.tracksInGroup[r];if(!l||l.groupId!==s)return void this.warn(`Audio track with id:${r} and group:${s} not found in active group ${l==null?void 0:l.groupId}`);let c=l.details;l.details=i.details,this.log(`Audio track ${r} "${l.name}" lang:${l.lang} group:${s} loaded [${a.startSN}-${a.endSN}]`),r===this.trackId&&this.playlistLoaded(r,i,c)}onLevelLoading(e,i){this.switchLevel(i.level)}onLevelSwitching(e,i){this.switchLevel(i.level)}switchLevel(e){let i=this.hls.levels[e];if(!i)return;let r=i.audioGroups||null,s=this.groupIds,a=this.currentTrack;if(!r||(s==null?void 0:s.length)!==(r==null?void 0:r.length)||r!=null&&r.some((c)=>(s==null?void 0:s.indexOf(c))===-1)){this.groupIds=r,this.trackId=-1,this.currentTrack=null;let c=this.tracks.filter((S)=>!r||r.indexOf(S.groupId)!==-1);if(c.length)this.selectDefaultTrack&&!c.some((S)=>S.default)&&(this.selectDefaultTrack=!1),c.forEach((S,T)=>{S.id=T});else if(!a&&!this.tracksInGroup.length)return;this.tracksInGroup=c;let u=this.hls.config.audioPreference;if(!a&&u){let S=Ai(u,c,Ir);if(S>-1)a=c[S];else{let T=Ai(u,this.tracks);a=this.tracks[T]}}let d=this.findTrackId(a);d===-1&&a&&(d=this.findTrackId(null));let m={audioTracks:c};this.log(`Updating audio tracks, ${c.length} track(s) found in group(s): ${r==null?void 0:r.join(",")}`),this.hls.trigger(b.AUDIO_TRACKS_UPDATED,m);let y=this.trackId;if(d!==-1&&y===-1)this.setAudioTrack(d);else if(c.length&&y===-1){var l;let S=new Error(`No audio track selected for current audio group-ID(s): ${(l=this.groupIds)==null?void 0:l.join(",")} track count: ${c.length}`);this.warn(S.message),this.hls.trigger(b.ERROR,{type:H.MEDIA_ERROR,details:P.AUDIO_TRACK_LOAD_ERROR,fatal:!0,error:S})}}else this.shouldReloadPlaylist(a)&&this.setAudioTrack(this.trackId)}onError(e,i){!i.fatal&&i.context&&(i.context.type!==ei||i.context.id!==this.trackId||this.groupIds&&this.groupIds.indexOf(i.context.groupId)===-1||(this.requestScheduled=-1,this.checkRetry(i)))}get allAudioTracks(){return this.tracks}get audioTracks(){return this.tracksInGroup}get audioTrack(){return this.trackId}set audioTrack(e){this.selectDefaultTrack=!1,this.setAudioTrack(e)}setAudioOption(e){let i=this.hls;if(i.config.audioPreference=e,e){let r=this.allAudioTracks;if(this.selectDefaultTrack=!1,r.length){let s=this.currentTrack;if(s&&Dr(e,s,Ir))return s;let a=Ai(e,this.tracksInGroup,Ir);if(a>-1){let l=this.tracksInGroup[a];return this.setAudioTrack(a),l}if(s){let l=i.loadLevel;l===-1&&(l=i.firstAutoLevel);let c=function(u,d,m,y,S){let T=d[y],w=d.reduce((G,Y,rt)=>{let J=Y.uri;return(G[J]||(G[J]=[])).push(rt),G},{})[T.uri];w.length>1&&(y=Math.max.apply(Math,w));let{videoRange:D,frameRate:k}=T,N=T.codecSet.substring(0,4),x=uo(d,y,(G)=>{if(G.videoRange!==D||G.frameRate!==k||G.codecSet.substring(0,4)!==N)return!1;let Y=G.audioGroups,rt=m.filter((J)=>!Y||Y.indexOf(J.groupId)!==-1);return Ai(u,rt,S)>-1});return x>-1?x:uo(d,y,(G)=>{let Y=G.audioGroups,rt=m.filter((J)=>!Y||Y.indexOf(J.groupId)!==-1);return Ai(u,rt,S)>-1})}(e,i.levels,r,l,Ir);if(c===-1)return null;i.nextLoadLevel=c}if(e.channels||e.audioCodec){let l=Ai(e,r);if(l>-1)return r[l]}}}return null}setAudioTrack(e){let i=this.tracksInGroup;if(e<0||e>=i.length)return void this.warn("Invalid audio track id: "+e);this.clearTimer(),this.selectDefaultTrack=!1;let r=this.currentTrack,s=i[e],a=s.details&&!s.details.live;if(e===this.trackId&&s===r&&a)return;if(this.log(`Switching to audio-track ${e} "${s.name}" lang:${s.lang} group:${s.groupId} channels:${s.channels}`),this.trackId=e,this.currentTrack=s,this.hls.trigger(b.AUDIO_TRACK_SWITCHING,E({},s)),a)return;let l=this.switchParams(s.url,r==null?void 0:r.details,s.details);this.loadPlaylist(l)}findTrackId(e){let i=this.tracksInGroup;for(let r=0;r<i.length;r++){let s=i[r];if((!this.selectDefaultTrack||s.default)&&(!e||Dr(e,s,Ir)))return r}if(e){let{name:r,lang:s,assocLang:a,characteristics:l,audioCodec:c,channels:u}=e;for(let d=0;d<i.length;d++)if(Dr({name:r,lang:s,assocLang:a,characteristics:l,audioCodec:c,channels:u},i[d],Ir))return d;for(let d=0;d<i.length;d++){let m=i[d];if(is(e.attrs,m.attrs,["LANGUAGE","ASSOC-LANGUAGE","CHARACTERISTICS"]))return d}for(let d=0;d<i.length;d++){let m=i[d];if(is(e.attrs,m.attrs,["LANGUAGE"]))return d}}return-1}loadPlaylist(e){let i=this.currentTrack;if(this.shouldLoadPlaylist(i)&&i){super.loadPlaylist();let{id:r,groupId:s,url:a}=i;if(e)try{a=e.addDirectives(a)}catch(l){this.warn("Could not construct new URL with HLS Delivery Directives: "+l)}this.log(`loading audio-track playlist ${r} "${i.name}" lang:${i.lang} group:${s}`),this.clearTimer(),this.hls.trigger(b.AUDIO_TRACK_LOADING,{url:a,id:r,groupId:s,deliveryDirectives:e||null})}}},emeController:ns,cmcdController:class t{constructor(e){this.hls=void 0,this.config=void 0,this.media=void 0,this.sid=void 0,this.cid=void 0,this.useHeaders=!1,this.includeKeys=void 0,this.initialized=!1,this.starved=!1,this.buffering=!0,this.audioBuffer=void 0,this.videoBuffer=void 0,this.onWaiting=()=>{this.initialized&&(this.starved=!0),this.buffering=!0},this.onPlaying=()=>{this.initialized||(this.initialized=!0),this.buffering=!1},this.applyPlaylistData=(s)=>{try{this.apply(s,{ot:qe.MANIFEST,su:!this.initialized})}catch(a){I.warn("Could not generate manifest CMCD data.",a)}},this.applyFragmentData=(s)=>{try{let a=s.frag,l=this.hls.levels[a.level],c=this.getObjectType(a),u={d:1000*a.duration,ot:c};c!==qe.VIDEO&&c!==qe.AUDIO&&c!=qe.MUXED||(u.br=l.bitrate/1000,u.tb=this.getTopBandwidth(c)/1000,u.bl=this.getBufferLength(c)),this.apply(s,u)}catch(a){I.warn("Could not generate segment CMCD data.",a)}},this.hls=e;let i=this.config=e.config,{cmcd:r}=i;r!=null&&(i.pLoader=this.createPlaylistLoader(),i.fLoader=this.createFragmentLoader(),this.sid=r.sessionId||function(){try{return crypto.randomUUID()}catch(s){try{let a=URL.createObjectURL(new Blob),l=a.toString();return URL.revokeObjectURL(a),l.slice(l.lastIndexOf("/")+1)}catch(a){let l=new Date().getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(c)=>{let u=(l+16*Math.random())%16|0;return l=Math.floor(l/16),(c=="x"?u:3&u|8).toString(16)})}}}(),this.cid=r.contentId,this.useHeaders=r.useHeaders===!0,this.includeKeys=r.includeKeys,this.registerListeners())}registerListeners(){let e=this.hls;e.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(b.MEDIA_DETACHED,this.onMediaDetached,this),e.on(b.BUFFER_CREATED,this.onBufferCreated,this)}unregisterListeners(){let e=this.hls;e.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(b.MEDIA_DETACHED,this.onMediaDetached,this),e.off(b.BUFFER_CREATED,this.onBufferCreated,this)}destroy(){this.unregisterListeners(),this.onMediaDetached(),this.hls=this.config=this.audioBuffer=this.videoBuffer=null,this.onWaiting=this.onPlaying=null}onMediaAttached(e,i){this.media=i.media,this.media.addEventListener("waiting",this.onWaiting),this.media.addEventListener("playing",this.onPlaying)}onMediaDetached(){this.media&&(this.media.removeEventListener("waiting",this.onWaiting),this.media.removeEventListener("playing",this.onPlaying),this.media=null)}onBufferCreated(e,i){var r,s;this.audioBuffer=(r=i.tracks.audio)==null?void 0:r.buffer,this.videoBuffer=(s=i.tracks.video)==null?void 0:s.buffer}createData(){var e;return{v:1,sf:Xl.HLS,sid:this.sid,cid:this.cid,pr:(e=this.media)==null?void 0:e.playbackRate,mtp:this.hls.bandwidthEstimate/1000}}apply(e,i={}){A(i,this.createData());let r=i.ot===qe.INIT||i.ot===qe.VIDEO||i.ot===qe.MUXED;this.starved&&r&&(i.bs=!0,i.su=!0,this.starved=!1),i.su==null&&(i.su=this.buffering);let{includeKeys:s}=this;s&&(i=Object.keys(i).reduce((a,l)=>(s.includes(l)&&(a[l]=i[l]),a),{})),this.useHeaders?(e.headers||(e.headers={}),wf(e.headers,i)):e.url=Rf(e.url,i)}getObjectType(e){let{type:i}=e;return i==="subtitle"?qe.TIMED_TEXT:e.sn==="initSegment"?qe.INIT:i==="audio"?qe.AUDIO:i==="main"?this.hls.audioTracks.length?qe.VIDEO:qe.MUXED:void 0}getTopBandwidth(e){let i,r=0,s=this.hls;if(e===qe.AUDIO)i=s.audioTracks;else{let a=s.maxAutoLevel,l=a>-1?a+1:s.levels.length;i=s.levels.slice(0,l)}for(let a of i)a.bitrate>r&&(r=a.bitrate);return r>0?r:NaN}getBufferLength(e){let i=this.hls.media,r=e===qe.AUDIO?this.audioBuffer:this.videoBuffer;if(!r||!i)return NaN;return 1000*Jt.bufferInfo(r,i.currentTime,this.config.maxBufferHole).len}createPlaylistLoader(){let{pLoader:e}=this.config,i=this.applyPlaylistData,r=e||this.config.loader;return class s{constructor(a){this.loader=void 0,this.loader=new r(a)}get stats(){return this.loader.stats}get context(){return this.loader.context}destroy(){this.loader.destroy()}abort(){this.loader.abort()}load(a,l,c){i(a),this.loader.load(a,l,c)}}}createFragmentLoader(){let{fLoader:e}=this.config,i=this.applyFragmentData,r=e||this.config.loader;return class s{constructor(a){this.loader=void 0,this.loader=new r(a)}get stats(){return this.loader.stats}get context(){return this.loader.context}destroy(){this.loader.destroy()}abort(){this.loader.abort()}load(a,l,c){i(a),this.loader.load(a,l,c)}}}},contentSteeringController:class t{constructor(e){this.hls=void 0,this.log=void 0,this.loader=null,this.uri=null,this.pathwayId=".",this.pathwayPriority=null,this.timeToLoad=300,this.reloadTimer=-1,this.updated=0,this.started=!1,this.enabled=!0,this.levels=null,this.audioTracks=null,this.subtitleTracks=null,this.penalizedPathways={},this.hls=e,this.log=I.log.bind(I,"[content-steering]:"),this.registerListeners()}registerListeners(){let e=this.hls;e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(b.MANIFEST_PARSED,this.onManifestParsed,this),e.on(b.ERROR,this.onError,this)}unregisterListeners(){let e=this.hls;e&&(e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(b.MANIFEST_PARSED,this.onManifestParsed,this),e.off(b.ERROR,this.onError,this))}startLoad(){if(this.started=!0,this.clearTimeout(),this.enabled&&this.uri){if(this.updated){let e=1000*this.timeToLoad-(performance.now()-this.updated);if(e>0)return void this.scheduleRefresh(this.uri,e)}this.loadSteeringManifest(this.uri)}}stopLoad(){this.started=!1,this.loader&&(this.loader.destroy(),this.loader=null),this.clearTimeout()}clearTimeout(){this.reloadTimer!==-1&&(self.clearTimeout(this.reloadTimer),this.reloadTimer=-1)}destroy(){this.unregisterListeners(),this.stopLoad(),this.hls=null,this.levels=this.audioTracks=this.subtitleTracks=null}removeLevel(e){let i=this.levels;i&&(this.levels=i.filter((r)=>r!==e))}onManifestLoading(){this.stopLoad(),this.enabled=!0,this.timeToLoad=300,this.updated=0,this.uri=null,this.pathwayId=".",this.levels=this.audioTracks=this.subtitleTracks=null}onManifestLoaded(e,i){let{contentSteering:r}=i;r!==null&&(this.pathwayId=r.pathwayId,this.uri=r.uri,this.started&&this.startLoad())}onManifestParsed(e,i){this.audioTracks=i.audioTracks,this.subtitleTracks=i.subtitleTracks}onError(e,i){let{errorAction:r}=i;if((r==null?void 0:r.action)===xi&&r.flags===Qs){let s=this.levels,a=this.pathwayPriority,l=this.pathwayId;if(i.context){let{groupId:c,pathwayId:u,type:d}=i.context;c&&s?l=this.getPathwayForGroupId(c,d,l):u&&(l=u)}l in this.penalizedPathways||(this.penalizedPathways[l]=performance.now()),!a&&s&&(a=s.reduce((c,u)=>(c.indexOf(u.pathwayId)===-1&&c.push(u.pathwayId),c),[])),a&&a.length>1&&(this.updatePathwayPriority(a),r.resolved=this.pathwayId!==l),r.resolved||I.warn(`Could not resolve ${i.details} ("${i.error.message}") with content-steering for Pathway: ${l} levels: ${s?s.length:s} priorities: ${JSON.stringify(a)} penalized: ${JSON.stringify(this.penalizedPathways)}`)}}filterParsedLevels(e){this.levels=e;let i=this.getLevelsForPathway(this.pathwayId);if(i.length===0){let r=e[0].pathwayId;this.log(`No levels found in Pathway ${this.pathwayId}. Setting initial Pathway to "${r}"`),i=this.getLevelsForPathway(r),this.pathwayId=r}return i.length!==e.length?(this.log(`Found ${i.length}/${e.length} levels in Pathway "${this.pathwayId}"`),i):e}getLevelsForPathway(e){return this.levels===null?[]:this.levels.filter((i)=>e===i.pathwayId)}updatePathwayPriority(e){let i;this.pathwayPriority=e;let r=this.penalizedPathways,s=performance.now();Object.keys(r).forEach((a)=>{s-r[a]>300000&&delete r[a]});for(let a=0;a<e.length;a++){let l=e[a];if(l in r)continue;if(l===this.pathwayId)return;let c=this.hls.nextLoadLevel,u=this.hls.levels[c];if(i=this.getLevelsForPathway(l),i.length>0){this.log(`Setting Pathway to "${l}"`),this.pathwayId=l,qs(i),this.hls.trigger(b.LEVELS_UPDATED,{levels:i});let d=this.hls.levels[c];u&&d&&this.levels&&(d.attrs["STABLE-VARIANT-ID"]!==u.attrs["STABLE-VARIANT-ID"]&&d.bitrate!==u.bitrate&&this.log(`Unstable Pathways change from bitrate ${u.bitrate} to ${d.bitrate}`),this.hls.nextLoadLevel=c);break}}}getPathwayForGroupId(e,i,r){let s=this.getLevelsForPathway(r).concat(this.levels||[]);for(let a=0;a<s.length;a++)if(i===ei&&s[a].hasAudioGroup(e)||i===pi&&s[a].hasSubtitleGroup(e))return s[a].pathwayId;return r}clonePathways(e){let i=this.levels;if(!i)return;let r={},s={};e.forEach((a)=>{let{ID:l,"BASE-ID":c,"URI-REPLACEMENT":u}=a;if(i.some((m)=>m.pathwayId===l))return;let d=this.getLevelsForPathway(c).map((m)=>{let y=new j(m.attrs);y["PATHWAY-ID"]=l;let S=y.AUDIO&&`${y.AUDIO}_clone_${l}`,T=y.SUBTITLES&&`${y.SUBTITLES}_clone_${l}`;S&&(r[y.AUDIO]=S,y.AUDIO=S),T&&(s[y.SUBTITLES]=T,y.SUBTITLES=T);let w=Nu(m.uri,y["STABLE-VARIANT-ID"],"PER-VARIANT-URIS",u),D=new ur({attrs:y,audioCodec:m.audioCodec,bitrate:m.bitrate,height:m.height,name:m.name,url:w,videoCodec:m.videoCodec,width:m.width});if(m.audioGroups)for(let k=1;k<m.audioGroups.length;k++)D.addGroupId("audio",`${m.audioGroups[k]}_clone_${l}`);if(m.subtitleGroups)for(let k=1;k<m.subtitleGroups.length;k++)D.addGroupId("text",`${m.subtitleGroups[k]}_clone_${l}`);return D});i.push(...d),Mu(this.audioTracks,r,u,l),Mu(this.subtitleTracks,s,u,l)})}loadSteeringManifest(e){let i=this.hls.config,r=i.loader,s;this.loader&&this.loader.destroy(),this.loader=new r(i);try{s=new self.URL(e)}catch(m){return this.enabled=!1,void this.log("Failed to parse Steering Manifest URI: "+e)}if(s.protocol!=="data:"){let m=0|(this.hls.bandwidthEstimate||i.abrEwmaDefaultEstimate);s.searchParams.set("_HLS_pathway",this.pathwayId),s.searchParams.set("_HLS_throughput",""+m)}let a={responseType:"json",url:s.href},l=i.steeringManifestLoadPolicy.default,c=l.errorRetry||l.timeoutRetry||{},u={loadPolicy:l,timeout:l.maxLoadTimeMs,maxRetry:c.maxNumRetry||0,retryDelay:c.retryDelayMs||0,maxRetryDelay:c.maxRetryDelayMs||0},d={onSuccess:(m,y,S,T)=>{this.log(`Loaded steering manifest: "${s}"`);let w=m.data;if(w.VERSION!==1)return void this.log(`Steering VERSION ${w.VERSION} not supported!`);this.updated=performance.now(),this.timeToLoad=w.TTL;let{"RELOAD-URI":D,"PATHWAY-CLONES":k,"PATHWAY-PRIORITY":N}=w;if(D)try{this.uri=new self.URL(D,s).href}catch(G){return this.enabled=!1,void this.log("Failed to parse Steering Manifest RELOAD-URI: "+D)}this.scheduleRefresh(this.uri||S.url),k&&this.clonePathways(k);let x={steeringManifest:w,url:s.toString()};this.hls.trigger(b.STEERING_MANIFEST_LOADED,x),N&&this.updatePathwayPriority(N)},onError:(m,y,S,T)=>{if(this.log(`Error loading steering manifest: ${m.code} ${m.text} (${y.url})`),this.stopLoad(),m.code===410)return this.enabled=!1,void this.log(`Steering manifest ${y.url} no longer available`);let w=1000*this.timeToLoad;if(m.code!==429)this.scheduleRefresh(this.uri||y.url,w);else{let D=this.loader;if(typeof(D==null?void 0:D.getResponseHeader)=="function"){let k=D.getResponseHeader("Retry-After");k&&(w=1000*parseFloat(k))}this.log(`Steering manifest ${y.url} rate limited`)}},onTimeout:(m,y,S)=>{this.log(`Timeout loading steering manifest (${y.url})`),this.scheduleRefresh(this.uri||y.url)}};this.log("Requesting steering manifest: "+s),this.loader.load(a,u,d)}scheduleRefresh(e,i=1000*this.timeToLoad){this.clearTimeout(),this.reloadTimer=self.setTimeout(()=>{var r;let s=(r=this.hls)==null?void 0:r.media;!s||s.ended?this.scheduleRefresh(e,1000*this.timeToLoad):this.loadSteeringManifest(e)},i)}}});function rc(t){return t&&typeof t=="object"?Array.isArray(t)?t.map(rc):Object.keys(t).reduce((e,i)=>(e[i]=rc(t[i]),e),{}):t}function Mf(t){let e=t.loader;if(e!==ic&&e!==ec)I.log("[config]: Custom loader detected, cannot enable progressive streaming"),t.progressive=!1;else(function(){if(self.fetch&&self.AbortController&&self.ReadableStream&&self.Request)try{return new self.ReadableStream({}),!0}catch(i){}return!1})()&&(t.loader=ic,t.progressive=!0,t.enableSoftwareAES=!0,I.log("[config]: Progressive streaming enabled, using FetchLoader"))}let nc;class Fu extends _e{constructor(t,e){super(t,"[level-controller]"),this._levels=[],this._firstLevel=-1,this._maxAutoLevel=-1,this._startLevel=void 0,this.currentLevel=null,this.currentLevelIndex=-1,this.manualLevelIndex=-1,this.steering=void 0,this.onParsedComplete=void 0,this.steering=e,this._registerListeners()}_registerListeners(){let{hls:t}=this;t.on(b.MANIFEST_LOADING,this.onManifestLoading,this),t.on(b.MANIFEST_LOADED,this.onManifestLoaded,this),t.on(b.LEVEL_LOADED,this.onLevelLoaded,this),t.on(b.LEVELS_UPDATED,this.onLevelsUpdated,this),t.on(b.FRAG_BUFFERED,this.onFragBuffered,this),t.on(b.ERROR,this.onError,this)}_unregisterListeners(){let{hls:t}=this;t.off(b.MANIFEST_LOADING,this.onManifestLoading,this),t.off(b.MANIFEST_LOADED,this.onManifestLoaded,this),t.off(b.LEVEL_LOADED,this.onLevelLoaded,this),t.off(b.LEVELS_UPDATED,this.onLevelsUpdated,this),t.off(b.FRAG_BUFFERED,this.onFragBuffered,this),t.off(b.ERROR,this.onError,this)}destroy(){this._unregisterListeners(),this.steering=null,this.resetLevels(),super.destroy()}stopLoad(){this._levels.forEach((t)=>{t.loadError=0,t.fragmentError=0}),super.stopLoad()}resetLevels(){this._startLevel=void 0,this.manualLevelIndex=-1,this.currentLevelIndex=-1,this.currentLevel=null,this._levels=[],this._maxAutoLevel=-1}onManifestLoading(t,e){this.resetLevels()}onManifestLoaded(t,e){let i=this.hls.config.preferManagedMediaSource,r=[],s={},a={},l=!1,c=!1,u=!1;e.levels.forEach((d)=>{var m,y;let S=d.attrs,{audioCodec:T,videoCodec:w}=d;((m=T)==null?void 0:m.indexOf("mp4a.40.34"))!==-1&&(nc||(nc=/chrome|firefox/i.test(navigator.userAgent)),nc&&(d.audioCodec=T=void 0)),T&&(d.audioCodec=T=Qr(T,i)),((y=w)==null?void 0:y.indexOf("avc1"))===0&&(w=d.videoCodec=function(Z){let Q=Z.split(".");if(Q.length>2){let Dt=Q.shift()+".";return Dt+=parseInt(Q.shift()).toString(16),Dt+=("000"+parseInt(Q.shift()).toString(16)).slice(-4),Dt}return Z}(w));let{width:D,height:k,unknownCodecs:N}=d;if(l||(l=!(!D||!k)),c||(c=!!w),u||(u=!!T),N!=null&&N.length||T&&!Dn(T,"audio",i)||w&&!Dn(w,"video",i))return;let{CODECS:x,"FRAME-RATE":G,"HDCP-LEVEL":Y,"PATHWAY-ID":rt,RESOLUTION:J,"VIDEO-RANGE":ut}=S,ft=`${(rt||".")+"-"}${d.bitrate}-${J}-${G}-${x}-${ut}-${Y}`;if(s[ft])if(s[ft].uri===d.url||d.attrs["PATHWAY-ID"])s[ft].addGroupId("audio",S.AUDIO),s[ft].addGroupId("text",S.SUBTITLES);else{let Z=a[ft]+=1;d.attrs["PATHWAY-ID"]=new Array(Z+1).join(".");let Q=new ur(d);s[ft]=Q,r.push(Q)}else{let Z=new ur(d);s[ft]=Z,a[ft]=1,r.push(Z)}}),this.filterAndSortMediaOptions(r,e,l,c,u)}filterAndSortMediaOptions(t,e,i,r,s){let a=[],l=[],c=t;if((i||r)&&s&&(c=c.filter(({videoCodec:T,videoRange:w,width:D,height:k})=>{return(!!T||!(!D||!k))&&(!!(N=w)&&Un.indexOf(N)>-1);var N})),c.length===0)return void Promise.resolve().then(()=>{if(this.hls){e.levels.length&&this.warn("One or more CODECS in variant not supported: "+JSON.stringify(e.levels[0].attrs));let T=new Error("no level with compatible codecs found in manifest");this.hls.trigger(b.ERROR,{type:H.MEDIA_ERROR,details:P.MANIFEST_INCOMPATIBLE_CODECS_ERROR,fatal:!0,url:e.url,error:T,reason:T.message})}});if(e.audioTracks){let{preferManagedMediaSource:T}=this.hls.config;a=e.audioTracks.filter((w)=>!w.audioCodec||Dn(w.audioCodec,"audio",T)),Uu(a)}e.subtitles&&(l=e.subtitles,Uu(l));let u=c.slice(0);c.sort((T,w)=>{if(T.attrs["HDCP-LEVEL"]!==w.attrs["HDCP-LEVEL"])return(T.attrs["HDCP-LEVEL"]||"")>(w.attrs["HDCP-LEVEL"]||"")?1:-1;if(i&&T.height!==w.height)return T.height-w.height;if(T.frameRate!==w.frameRate)return T.frameRate-w.frameRate;if(T.videoRange!==w.videoRange)return Un.indexOf(T.videoRange)-Un.indexOf(w.videoRange);if(T.videoCodec!==w.videoCodec){let D=Ee(T.videoCodec),k=Ee(w.videoCodec);if(D!==k)return k-D}if(T.uri===w.uri&&T.codecSet!==w.codecSet){let D=Jr(T.codecSet),k=Jr(w.codecSet);if(D!==k)return k-D}return T.averageBitrate!==w.averageBitrate?T.averageBitrate-w.averageBitrate:0});let d=u[0];if(this.steering&&(c=this.steering.filterParsedLevels(c),c.length!==u.length)){for(let T=0;T<u.length;T++)if(u[T].pathwayId===c[0].pathwayId){d=u[T];break}}this._levels=c;for(let T=0;T<c.length;T++)if(c[T]===d){var m;this._firstLevel=T;let w=d.bitrate,D=this.hls.bandwidthEstimate;if(this.log(`manifest loaded, ${c.length} level(s) found, first bitrate: ${w}`),((m=this.hls.userConfig)==null?void 0:m.abrEwmaDefaultEstimate)===void 0){let k=Math.min(w,this.hls.config.abrEwmaDefaultEstimateMax);k>D&&D===xu.abrEwmaDefaultEstimate&&(this.hls.bandwidthEstimate=k)}break}let y=s&&!r,S={levels:c,audioTracks:a,subtitleTracks:l,sessionData:e.sessionData,sessionKeys:e.sessionKeys,firstLevel:this._firstLevel,stats:e.stats,audio:s,video:r,altAudio:!y&&a.some((T)=>!!T.url)};this.hls.trigger(b.MANIFEST_PARSED,S),(this.hls.config.autoStartLoad||this.hls.forceStartLoad)&&this.hls.startLoad(this.hls.config.startPosition)}get levels(){return this._levels.length===0?null:this._levels}get level(){return this.currentLevelIndex}set level(t){let e=this._levels;if(e.length===0)return;if(t<0||t>=e.length){let d=new Error("invalid level idx"),m=t<0;if(this.hls.trigger(b.ERROR,{type:H.OTHER_ERROR,details:P.LEVEL_SWITCH_ERROR,level:t,fatal:m,error:d,reason:d.message}),m)return;t=Math.min(t,e.length-1)}let i=this.currentLevelIndex,r=this.currentLevel,s=r?r.attrs["PATHWAY-ID"]:void 0,a=e[t],l=a.attrs["PATHWAY-ID"];if(this.currentLevelIndex=t,this.currentLevel=a,i===t&&a.details&&r&&s===l)return;this.log(`Switching to level ${t} (${a.height?a.height+"p ":""}${a.videoRange?a.videoRange+" ":""}${a.codecSet?a.codecSet+" ":""}@${a.bitrate})${l?" with Pathway "+l:""} from level ${i}${s?" with Pathway "+s:""}`);let c={level:t,attrs:a.attrs,details:a.details,bitrate:a.bitrate,averageBitrate:a.averageBitrate,maxBitrate:a.maxBitrate,realBitrate:a.realBitrate,width:a.width,height:a.height,codecSet:a.codecSet,audioCodec:a.audioCodec,videoCodec:a.videoCodec,audioGroups:a.audioGroups,subtitleGroups:a.subtitleGroups,loaded:a.loaded,loadError:a.loadError,fragmentError:a.fragmentError,name:a.name,id:a.id,uri:a.uri,url:a.url,urlId:0,audioGroupIds:a.audioGroupIds,textGroupIds:a.textGroupIds};this.hls.trigger(b.LEVEL_SWITCHING,c);let u=a.details;if(!u||u.live){let d=this.switchParams(a.uri,r==null?void 0:r.details,u);this.loadPlaylist(d)}}get manualLevel(){return this.manualLevelIndex}set manualLevel(t){this.manualLevelIndex=t,this._startLevel===void 0&&(this._startLevel=t),t!==-1&&(this.level=t)}get firstLevel(){return this._firstLevel}set firstLevel(t){this._firstLevel=t}get startLevel(){if(this._startLevel===void 0){let t=this.hls.config.startLevel;return t!==void 0?t:this.hls.firstAutoLevel}return this._startLevel}set startLevel(t){this._startLevel=t}onError(t,e){!e.fatal&&e.context&&e.context.type===Pi&&e.context.level===this.level&&this.checkRetry(e)}onFragBuffered(t,{frag:e}){if(e!==void 0&&e.type===ie){let i=e.elementaryStreams;if(!Object.keys(i).some((s)=>!!i[s]))return;let r=this._levels[e.level];r!=null&&r.loadError&&(this.log(`Resetting level error count of ${r.loadError} on frag buffered`),r.loadError=0)}}onLevelLoaded(t,e){var i;let{level:r,details:s}=e,a=this._levels[r];var l;if(!a)return this.warn("Invalid level index "+r),void((l=e.deliveryDirectives)!=null&&l.skip&&(s.deltaUpdateFailed=!0));r===this.currentLevelIndex?(a.fragmentError===0&&(a.loadError=0),this.playlistLoaded(r,e,a.details)):(i=e.deliveryDirectives)!=null&&i.skip&&(s.deltaUpdateFailed=!0)}loadPlaylist(t){super.loadPlaylist();let e=this.currentLevelIndex,i=this.currentLevel;if(i&&this.shouldLoadPlaylist(i)){let r=i.uri;if(t)try{r=t.addDirectives(r)}catch(a){this.warn("Could not construct new URL with HLS Delivery Directives: "+a)}let s=i.attrs["PATHWAY-ID"];this.log(`Loading level index ${e}${(t==null?void 0:t.msn)!==void 0?" at sn "+t.msn+" part "+t.part:""} with${s?" Pathway "+s:""} ${r}`),this.clearTimer(),this.hls.trigger(b.LEVEL_LOADING,{url:r,level:e,pathwayId:i.attrs["PATHWAY-ID"],id:0,deliveryDirectives:t||null})}}get nextLoadLevel(){return this.manualLevelIndex!==-1?this.manualLevelIndex:this.hls.nextAutoLevel}set nextLoadLevel(t){this.level=t,this.manualLevelIndex===-1&&(this.hls.nextAutoLevel=t)}removeLevel(t){var e;let i=this._levels.filter((r,s)=>s!==t||(this.steering&&this.steering.removeLevel(r),r===this.currentLevel&&(this.currentLevel=null,this.currentLevelIndex=-1,r.details&&r.details.fragments.forEach((a)=>a.level=-1)),!1));qs(i),this._levels=i,this.currentLevelIndex>-1&&(e=this.currentLevel)!=null&&e.details&&(this.currentLevelIndex=this.currentLevel.details.fragments[0].level),this.hls.trigger(b.LEVELS_UPDATED,{levels:i})}onLevelsUpdated(t,{levels:e}){this._levels=e}checkMaxAutoUpdated(){let{autoLevelCapping:t,maxAutoLevel:e,maxHdcpLevel:i}=this.hls;this._maxAutoLevel!==e&&(this._maxAutoLevel=e,this.hls.trigger(b.MAX_AUTO_LEVEL_UPDATED,{autoLevelCapping:t,levels:this.levels,maxAutoLevel:e,minAutoLevel:this.hls.minAutoLevel,maxHdcpLevel:i}))}}function Uu(t){let e={};t.forEach((i)=>{let r=i.groupId||"";i.id=e[r]=e[r]||0,e[r]++})}class Bu{constructor(t){this.config=void 0,this.keyUriToKeyInfo={},this.emeController=null,this.config=t}abort(t){for(let i in this.keyUriToKeyInfo){let r=this.keyUriToKeyInfo[i].loader;if(r){var e;if(t&&t!==((e=r.context)==null?void 0:e.frag.type))return;r.abort()}}}detach(){for(let t in this.keyUriToKeyInfo){let e=this.keyUriToKeyInfo[t];(e.mediaKeySessionContext||e.decryptdata.isCommonEncryption)&&delete this.keyUriToKeyInfo[t]}}destroy(){this.detach();for(let t in this.keyUriToKeyInfo){let e=this.keyUriToKeyInfo[t].loader;e&&e.destroy()}this.keyUriToKeyInfo={}}createKeyLoadError(t,e=P.KEY_LOAD_ERROR,i,r,s){return new _i({type:H.NETWORK_ERROR,details:e,fatal:!1,frag:t,response:s,error:i,networkDetails:r})}loadClear(t,e){if(this.emeController&&this.config.emeEnabled){let{sn:i,cc:r}=t;for(let s=0;s<e.length;s++){let a=e[s];if(r<=a.cc&&(i==="initSegment"||a.sn==="initSegment"||i<a.sn)){this.emeController.selectKeySystemFormat(a).then((l)=>{a.setKeyFormat(l)});break}}}}load(t){return!t.decryptdata&&t.encrypted&&this.emeController?this.emeController.selectKeySystemFormat(t).then((e)=>this.loadInternal(t,e)):this.loadInternal(t)}loadInternal(t,e){var i,r;e&&t.setKeyFormat(e);let s=t.decryptdata;if(!s){let u=new Error(e?"Expected frag.decryptdata to be defined after setting format "+e:"Missing decryption data on fragment in onKeyLoading");return Promise.reject(this.createKeyLoadError(t,P.KEY_LOAD_ERROR,u))}let a=s.uri;if(!a)return Promise.reject(this.createKeyLoadError(t,P.KEY_LOAD_ERROR,new Error(`Invalid key URI: "${a}"`)));let l=this.keyUriToKeyInfo[a];if((i=l)!=null&&i.decryptdata.key)return s.key=l.decryptdata.key,Promise.resolve({frag:t,keyInfo:l});var c;if((r=l)!=null&&r.keyLoadPromise)switch((c=l.mediaKeySessionContext)==null?void 0:c.keyStatus){case void 0:case"status-pending":case"usable":case"usable-in-future":return l.keyLoadPromise.then((u)=>(s.key=u.keyInfo.decryptdata.key,{frag:t,keyInfo:l}))}switch(l=this.keyUriToKeyInfo[a]={decryptdata:s,keyLoadPromise:null,loader:null,mediaKeySessionContext:null},s.method){case"ISO-23001-7":case"SAMPLE-AES":case"SAMPLE-AES-CENC":case"SAMPLE-AES-CTR":return s.keyFormat==="identity"?this.loadKeyHTTP(l,t):this.loadKeyEME(l,t);case"AES-128":return this.loadKeyHTTP(l,t);default:return Promise.reject(this.createKeyLoadError(t,P.KEY_LOAD_ERROR,new Error(`Key supplied with unsupported METHOD: "${s.method}"`)))}}loadKeyEME(t,e){let i={frag:e,keyInfo:t};if(this.emeController&&this.config.emeEnabled){let r=this.emeController.loadKey(i);if(r)return(t.keyLoadPromise=r.then((s)=>(t.mediaKeySessionContext=s,i))).catch((s)=>{throw t.keyLoadPromise=null,s})}return Promise.resolve(i)}loadKeyHTTP(t,e){let i=this.config,r=new i.loader(i);return e.keyLoader=t.loader=r,t.keyLoadPromise=new Promise((s,a)=>{let l={keyInfo:t,frag:e,responseType:"arraybuffer",url:t.decryptdata.uri},c=i.keyLoadPolicy.default,u={loadPolicy:c,timeout:c.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},d={onSuccess:(m,y,S,T)=>{let{frag:w,keyInfo:D,url:k}=S;if(!w.decryptdata||D!==this.keyUriToKeyInfo[k])return a(this.createKeyLoadError(w,P.KEY_LOAD_ERROR,new Error("after key load, decryptdata unset or changed"),T));D.decryptdata.key=w.decryptdata.key=new Uint8Array(m.data),w.keyLoader=null,D.loader=null,s({frag:w,keyInfo:D})},onError:(m,y,S,T)=>{this.resetLoader(y),a(this.createKeyLoadError(e,P.KEY_LOAD_ERROR,new Error(`HTTP Error ${m.code} loading key ${m.text}`),S,E({url:l.url,data:void 0},m)))},onTimeout:(m,y,S)=>{this.resetLoader(y),a(this.createKeyLoadError(e,P.KEY_LOAD_TIMEOUT,new Error("key loading timed out"),S))},onAbort:(m,y,S)=>{this.resetLoader(y),a(this.createKeyLoadError(e,P.INTERNAL_ABORTED,new Error("key loading aborted"),S))}};r.load(l,u,d)})}resetLoader(t){let{frag:e,keyInfo:i,url:r}=t,s=i.loader;e.keyLoader===s&&(e.keyLoader=null,i.loader=null),delete this.keyUriToKeyInfo[r],s&&s.destroy()}}function $u(){return self.SourceBuffer||self.WebKitSourceBuffer}function Gu(){if(!Ni())return!1;let t=$u();return!t||t.prototype&&typeof t.prototype.appendBuffer=="function"&&typeof t.prototype.remove=="function"}class Hu{constructor(t,e,i,r){this.config=void 0,this.media=null,this.fragmentTracker=void 0,this.hls=void 0,this.nudgeRetry=0,this.stallReported=!1,this.stalled=null,this.moved=!1,this.seeking=!1,this.config=t,this.media=e,this.fragmentTracker=i,this.hls=r}destroy(){this.media=null,this.hls=this.fragmentTracker=null}poll(t,e){let{config:i,media:r,stalled:s}=this;if(r===null)return;let{currentTime:a,seeking:l}=r,c=this.seeking&&!l,u=!this.seeking&&l;if(this.seeking=l,a!==t){if(this.moved=!0,l||(this.nudgeRetry=0),s!==null){if(this.stallReported){let D=self.performance.now()-s;I.warn(`playback not stuck anymore @${a}, after ${Math.round(D)}ms`),this.stallReported=!1}this.stalled=null}return}if(u||c)return void(this.stalled=null);if(r.paused&&!l||r.ended||r.playbackRate===0||!Jt.getBuffered(r).length)return void(this.nudgeRetry=0);let d=Jt.bufferInfo(r,a,0),m=d.nextStart||0;if(l){let D=d.len>2,k=!m||e&&e.start<=a||m-a>2&&!this.fragmentTracker.getPartialFragment(a);if(D||k)return;this.moved=!1}if(!this.moved&&this.stalled!==null){var y;if(!(d.len>0)&&!m)return;let D=Math.max(m,d.start||0)-a,k=this.hls.levels?this.hls.levels[this.hls.currentLevel]:null,N=(k==null||(y=k.details)==null?void 0:y.live)?2*k.details.targetduration:2,x=this.fragmentTracker.getPartialFragment(a);if(D>0&&(D<=N||x))return void(r.paused||this._trySkipBufferHole(x))}let S=self.performance.now();if(s===null)return void(this.stalled=S);let T=S-s;if(!l&&T>=250&&(this._reportStall(d),!this.media))return;let w=Jt.bufferInfo(r,a,i.maxBufferHole);this._tryFixBufferStall(w,T)}_tryFixBufferStall(t,e){let{config:i,fragmentTracker:r,media:s}=this;if(s===null)return;let a=s.currentTime,l=r.getPartialFragment(a);if(l){if(this._trySkipBufferHole(l)||!this.media)return}(t.len>i.maxBufferHole||t.nextStart&&t.nextStart-a<i.maxBufferHole)&&e>1000*i.highBufferWatchdogPeriod&&(I.warn("Trying to nudge playhead over buffer-hole"),this.stalled=null,this._tryNudgeBuffer())}_reportStall(t){let{hls:e,media:i,stallReported:r}=this;if(!r&&i){this.stallReported=!0;let s=new Error(`Playback stalling at @${i.currentTime} due to low buffer (${JSON.stringify(t)})`);I.warn(s.message),e.trigger(b.ERROR,{type:H.MEDIA_ERROR,details:P.BUFFER_STALLED_ERROR,fatal:!1,error:s,buffer:t.len})}}_trySkipBufferHole(t){let{config:e,hls:i,media:r}=this;if(r===null)return 0;let s=r.currentTime,a=Jt.bufferInfo(r,s,0),l=s<a.start?a.start:a.nextStart;if(l){let c=a.len<=e.maxBufferHole,u=a.len>0&&a.len<1&&r.readyState<3,d=l-s;if(d>0&&(c||u)){if(d>e.maxBufferHole){let{fragmentTracker:y}=this,S=!1;if(s===0){let T=y.getAppendedFrag(0,ie);T&&l<T.end&&(S=!0)}if(!S){let T=t||y.getAppendedFrag(s,ie);if(T){let w=!1,D=T.end;for(;D<l;){let k=y.getPartialFragment(D);if(!k){w=!0;break}D+=k.duration}if(w)return 0}}}let m=Math.max(l+0.05,s+0.1);if(I.warn(`skipping hole, adjusting currentTime from ${s} to ${m}`),this.moved=!0,this.stalled=null,r.currentTime=m,t&&!t.gap){let y=new Error(`fragment loaded with buffer holes, seeking from ${s} to ${m}`);i.trigger(b.ERROR,{type:H.MEDIA_ERROR,details:P.BUFFER_SEEK_OVER_HOLE,fatal:!1,error:y,reason:y.message,frag:t})}return m}}return 0}_tryNudgeBuffer(){let{config:t,hls:e,media:i,nudgeRetry:r}=this;if(i===null)return;let s=i.currentTime;if(this.nudgeRetry++,r<t.nudgeMaxRetry){let a=s+(r+1)*t.nudgeOffset,l=new Error(`Nudging 'currentTime' from ${s} to ${a}`);I.warn(l.message),i.currentTime=a,e.trigger(b.ERROR,{type:H.MEDIA_ERROR,details:P.BUFFER_NUDGE_ON_STALL,error:l,fatal:!1})}else{let a=new Error(`Playhead still not moving while enough data buffered @${s} after ${t.nudgeMaxRetry} nudges`);I.error(a.message),e.trigger(b.ERROR,{type:H.MEDIA_ERROR,details:P.BUFFER_STALLED_ERROR,error:a,fatal:!0})}}}class Vu extends dn{constructor(t,e,i){super(t,e,i,"[stream-controller]",ie),this.audioCodecSwap=!1,this.gapController=null,this.level=-1,this._forceStartLoad=!1,this.altAudio=!1,this.audioOnly=!1,this.fragPlaying=null,this.onvplaying=null,this.onvseeked=null,this.fragLastKbps=0,this.couldBacktrack=!1,this.backtrackFragment=null,this.audioCodecSwitch=!1,this.videoBuffer=null,this._registerListeners()}_registerListeners(){let{hls:t}=this;t.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),t.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),t.on(b.MANIFEST_LOADING,this.onManifestLoading,this),t.on(b.MANIFEST_PARSED,this.onManifestParsed,this),t.on(b.LEVEL_LOADING,this.onLevelLoading,this),t.on(b.LEVEL_LOADED,this.onLevelLoaded,this),t.on(b.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),t.on(b.ERROR,this.onError,this),t.on(b.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),t.on(b.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),t.on(b.BUFFER_CREATED,this.onBufferCreated,this),t.on(b.BUFFER_FLUSHED,this.onBufferFlushed,this),t.on(b.LEVELS_UPDATED,this.onLevelsUpdated,this),t.on(b.FRAG_BUFFERED,this.onFragBuffered,this)}_unregisterListeners(){let{hls:t}=this;t.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),t.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),t.off(b.MANIFEST_LOADING,this.onManifestLoading,this),t.off(b.MANIFEST_PARSED,this.onManifestParsed,this),t.off(b.LEVEL_LOADED,this.onLevelLoaded,this),t.off(b.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),t.off(b.ERROR,this.onError,this),t.off(b.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),t.off(b.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),t.off(b.BUFFER_CREATED,this.onBufferCreated,this),t.off(b.BUFFER_FLUSHED,this.onBufferFlushed,this),t.off(b.LEVELS_UPDATED,this.onLevelsUpdated,this),t.off(b.FRAG_BUFFERED,this.onFragBuffered,this)}onHandlerDestroying(){this._unregisterListeners(),super.onHandlerDestroying()}startLoad(t){if(this.levels){let{lastCurrentTime:e,hls:i}=this;if(this.stopLoad(),this.setInterval(100),this.level=-1,!this.startFragRequested){let r=i.startLevel;r===-1&&(i.config.testBandwidth&&this.levels.length>1?(r=0,this.bitrateTest=!0):r=i.firstAutoLevel),i.nextLoadLevel=r,this.level=i.loadLevel,this.loadedmetadata=!1}e>0&&t===-1&&(this.log("Override startPosition with lastCurrentTime @"+e.toFixed(3)),t=e),this.state=Zt,this.nextLoadPosition=this.startPosition=this.lastCurrentTime=t,this.tick()}else this._forceStartLoad=!0,this.state=oi}stopLoad(){this._forceStartLoad=!1,super.stopLoad()}doTick(){switch(this.state){case fe:{let{levels:e,level:i}=this,r=e==null?void 0:e[i],s=r==null?void 0:r.details;if(s&&(!s.live||this.levelLastLoaded===r)){if(this.waitForCdnTuneIn(s))break;this.state=Zt;break}if(this.hls.nextLoadLevel!==this.level){this.state=Zt;break}break}case Nr:{var t;let e=self.performance.now(),i=this.retryDate;if(!i||e>=i||(t=this.media)!=null&&t.seeking){let{levels:r,level:s}=this,a=r==null?void 0:r[s];this.resetStartWhenNotLoaded(a||null),this.state=Zt}}}this.state===Zt&&this.doTickIdle(),this.onTickEnd()}onTickEnd(){super.onTickEnd(),this.checkBuffer(),this.checkFragmentChanged()}doTickIdle(){let{hls:t,levelLastLoaded:e,levels:i,media:r}=this;if(e===null||!r&&(this.startFragRequested||!t.config.startFragPrefetch))return;if(this.altAudio&&this.audioOnly)return;let s=t.nextLoadLevel;if(i==null||!i[s])return;let a=i[s],l=this.getMainFwdBufferInfo();if(l===null)return;let c=this.getLevelDetails();if(c&&this._streamEnded(l,c)){let w={};return this.altAudio&&(w.type="video"),this.hls.trigger(b.BUFFER_EOS,w),void(this.state=un)}t.loadLevel!==s&&t.manualLevel===-1&&this.log(`Adapting to level ${s} from level ${this.level}`),this.level=t.nextLoadLevel=s;let u=a.details;if(!u||this.state===fe||u.live&&this.levelLastLoaded!==a)return this.level=s,void(this.state=fe);let d=l.len,m=this.getMaxBufferLength(a.maxBitrate);if(d>=m)return;this.backtrackFragment&&this.backtrackFragment.start>l.end&&(this.backtrackFragment=null);let y=this.backtrackFragment?this.backtrackFragment.start:l.end,S=this.getNextFragment(y,u);if(this.couldBacktrack&&!this.fragPrevious&&S&&S.sn!=="initSegment"&&this.fragmentTracker.getState(S)!==de){var T;let w=((T=this.backtrackFragment)!=null?T:S).sn-u.startSN,D=u.fragments[w-1];D&&S.cc===D.cc&&(S=D,this.fragmentTracker.removeFragment(D))}else this.backtrackFragment&&l.len&&(this.backtrackFragment=null);if(S&&this.isLoopLoading(S,y)){if(!S.gap){let w=this.audioOnly&&!this.altAudio?lt:St,D=(w===St?this.videoBuffer:this.mediaBuffer)||this.media;D&&this.afterBufferFlushed(D,w,ie)}S=this.getNextFragmentLoopLoading(S,u,l,ie,m)}S&&(!S.initSegment||S.initSegment.data||this.bitrateTest||(S=S.initSegment),this.loadFragment(S,a,y))}loadFragment(t,e,i){let r=this.fragmentTracker.getState(t);this.fragCurrent=t,r===ze||r===gr?t.sn==="initSegment"?this._loadInitSegment(t,e):this.bitrateTest?(this.log(`Fragment ${t.sn} of level ${t.level} is being downloaded to test bitrate and will not be buffered`),this._loadBitrateTestFrag(t,e)):(this.startFragRequested=!0,super.loadFragment(t,e,i)):this.clearTrackerIfNeeded(t)}getBufferedFrag(t){return this.fragmentTracker.getBufferedFrag(t,ie)}followingBufferedFrag(t){return t?this.getBufferedFrag(t.end+0.5):null}immediateLevelSwitch(){this.abortCurrentFrag(),this.flushMainBuffer(0,Number.POSITIVE_INFINITY)}nextLevelSwitch(){let{levels:t,media:e}=this;if(e!=null&&e.readyState){let i,r=this.getAppendedFrag(e.currentTime);r&&r.start>1&&this.flushMainBuffer(0,r.start-1);let s=this.getLevelDetails();if(s!=null&&s.live){let l=this.getMainFwdBufferInfo();if(!l||l.len<2*s.targetduration)return}if(!e.paused&&t){let l=t[this.hls.nextLoadLevel],c=this.fragLastKbps;i=c&&this.fragCurrent?this.fragCurrent.duration*l.maxBitrate/(1000*c)+1:0}else i=0;let a=this.getBufferedFrag(e.currentTime+i);if(a){let l=this.followingBufferedFrag(a);if(l){this.abortCurrentFrag();let c=l.maxStartPTS?l.maxStartPTS:l.start,u=l.duration,d=Math.max(a.end,c+Math.min(Math.max(u-this.config.maxFragLookUpTolerance,u*(this.couldBacktrack?0.5:0.125)),u*(this.couldBacktrack?0.75:0.25)));this.flushMainBuffer(d,Number.POSITIVE_INFINITY)}}}}abortCurrentFrag(){let t=this.fragCurrent;switch(this.fragCurrent=null,this.backtrackFragment=null,t&&(t.abortRequests(),this.fragmentTracker.removeFragment(t)),this.state){case oa:case Mr:case Nr:case Fi:case cn:this.state=Zt}this.nextLoadPosition=this.getLoadPosition()}flushMainBuffer(t,e){super.flushMainBuffer(t,e,this.altAudio?"video":null)}onMediaAttached(t,e){super.onMediaAttached(t,e);let i=e.media;this.onvplaying=this.onMediaPlaying.bind(this),this.onvseeked=this.onMediaSeeked.bind(this),i.addEventListener("playing",this.onvplaying),i.addEventListener("seeked",this.onvseeked),this.gapController=new Hu(this.config,i,this.fragmentTracker,this.hls)}onMediaDetaching(){let{media:t}=this;t&&this.onvplaying&&this.onvseeked&&(t.removeEventListener("playing",this.onvplaying),t.removeEventListener("seeked",this.onvseeked),this.onvplaying=this.onvseeked=null,this.videoBuffer=null),this.fragPlaying=null,this.gapController&&(this.gapController.destroy(),this.gapController=null),super.onMediaDetaching()}onMediaPlaying(){this.tick()}onMediaSeeked(){let t=this.media,e=t?t.currentTime:null;L(e)&&this.log("Media seeked to "+e.toFixed(3));let i=this.getMainFwdBufferInfo();i!==null&&i.len!==0?this.tick():this.warn(`Main forward buffer length on "seeked" event ${i?i.len:"empty"})`)}onManifestLoading(){this.log("Trigger BUFFER_RESET"),this.hls.trigger(b.BUFFER_RESET,void 0),this.fragmentTracker.removeAllFragments(),this.couldBacktrack=!1,this.startPosition=this.lastCurrentTime=this.fragLastKbps=0,this.levels=this.fragPlaying=this.backtrackFragment=this.levelLastLoaded=null,this.altAudio=this.audioOnly=this.startFragRequested=!1}onManifestParsed(t,e){let i=!1,r=!1;e.levels.forEach((s)=>{let a=s.audioCodec;a&&(i=i||a.indexOf("mp4a.40.2")!==-1,r=r||a.indexOf("mp4a.40.5")!==-1)}),this.audioCodecSwitch=i&&r&&!function(){var s;let a=$u();return typeof(a==null||(s=a.prototype)==null?void 0:s.changeType)=="function"}(),this.audioCodecSwitch&&this.log("Both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"),this.levels=e.levels,this.startFragRequested=!1}onLevelLoading(t,e){let{levels:i}=this;if(!i||this.state!==Zt)return;let r=i[e.level];(!r.details||r.details.live&&this.levelLastLoaded!==r||this.waitForCdnTuneIn(r.details))&&(this.state=fe)}onLevelLoaded(t,e){var i;let{levels:r}=this,s=e.level,a=e.details,l=a.totalduration;if(!r)return void this.warn("Levels were reset while loading level "+s);this.log(`Level ${s} loaded [${a.startSN},${a.endSN}]${a.lastPartSn?`[part-${a.lastPartSn}-${a.lastPartIndex}]`:""}, cc [${a.startCC}, ${a.endCC}] duration:${l}`);let c=r[s],u=this.fragCurrent;!u||this.state!==Mr&&this.state!==Nr||u.level!==e.level&&u.loader&&this.abortCurrentFrag();let d=0;if(a.live||(i=c.details)!=null&&i.live){var m;if(this.checkLiveUpdate(a),a.deltaUpdateFailed)return;d=this.alignPlaylists(a,c.details,(m=this.levelLastLoaded)==null?void 0:m.details)}if(c.details=a,this.levelLastLoaded=c,this.hls.trigger(b.LEVEL_UPDATED,{details:a,level:s}),this.state===fe){if(this.waitForCdnTuneIn(a))return;this.state=Zt}this.startFragRequested?a.live&&this.synchronizeToLiveEdge(a):this.setStartPosition(a,d),this.tick()}_handleFragmentLoadProgress(t){var e;let{frag:i,part:r,payload:s}=t,{levels:a}=this;if(!a)return void this.warn(`Levels were reset while fragment load was in progress. Fragment ${i.sn} of level ${i.level} will not be buffered`);let l=a[i.level],c=l.details;if(!c)return this.warn(`Dropping fragment ${i.sn} of level ${i.level} after level details were reset`),void this.fragmentTracker.removeFragment(i);let u=l.videoCodec,d=c.PTSKnown||!c.live,m=(e=i.initSegment)==null?void 0:e.data,y=this._getAudioCodec(l),S=this.transmuxer=this.transmuxer||new xl(this.hls,ie,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)),T=r?r.index:-1,w=T!==-1,D=new Or(i.level,i.sn,i.stats.chunkCount,s.byteLength,T,w),k=this.initPTS[i.cc];S.push(s,m,y,u,i,r,c.totalduration,d,D,k)}onAudioTrackSwitching(t,e){let i=this.altAudio;if(!e.url){if(this.mediaBuffer!==this.media){this.log("Switching on main audio, use media.buffered to schedule main fragment loading"),this.mediaBuffer=this.media;let s=this.fragCurrent;s&&(this.log("Switching to main audio track, cancel main fragment load"),s.abortRequests(),this.fragmentTracker.removeFragment(s)),this.resetTransmuxer(),this.resetLoadingState()}else this.audioOnly&&this.resetTransmuxer();let r=this.hls;i&&(r.trigger(b.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:null}),this.fragmentTracker.removeAllFragments()),r.trigger(b.AUDIO_TRACK_SWITCHED,e)}}onAudioTrackSwitched(t,e){let i=e.id,r=!!this.hls.audioTracks[i].url;if(r){let s=this.videoBuffer;s&&this.mediaBuffer!==s&&(this.log("Switching on alternate audio, use video.buffered to schedule main fragment loading"),this.mediaBuffer=s)}this.altAudio=r,this.tick()}onBufferCreated(t,e){let i=e.tracks,r,s,a=!1;for(let l in i){let c=i[l];if(c.id==="main"){if(s=l,r=c,l==="video"){let u=i[l];u&&(this.videoBuffer=u.buffer)}}else a=!0}a&&r?(this.log(`Alternate track found, use ${s}.buffered to schedule main fragment loading`),this.mediaBuffer=r.buffer):this.mediaBuffer=this.media}onFragBuffered(t,e){let{frag:i,part:r}=e;if(i&&i.type!==ie)return;if(this.fragContextChanged(i))return this.warn(`Fragment ${i.sn}${r?" p: "+r.index:""} of level ${i.level} finished buffering, but was aborted. state: ${this.state}`),void(this.state===cn&&(this.state=Zt));let s=r?r.stats:i.stats;this.fragLastKbps=Math.round(8*s.total/(s.buffering.end-s.loading.first)),i.sn!=="initSegment"&&(this.fragPrevious=i),this.fragBufferedComplete(i,r)}onError(t,e){var i;if(e.fatal)this.state=xr;else switch(e.details){case P.FRAG_GAP:case P.FRAG_PARSING_ERROR:case P.FRAG_DECRYPT_ERROR:case P.FRAG_LOAD_ERROR:case P.FRAG_LOAD_TIMEOUT:case P.KEY_LOAD_ERROR:case P.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(ie,e);break;case P.LEVEL_LOAD_ERROR:case P.LEVEL_LOAD_TIMEOUT:case P.LEVEL_PARSING_ERROR:e.levelRetry||this.state!==fe||((i=e.context)==null?void 0:i.type)!==Pi||(this.state=Zt);break;case P.BUFFER_APPEND_ERROR:case P.BUFFER_FULL_ERROR:if(!e.parent||e.parent!=="main")return;if(e.details===P.BUFFER_APPEND_ERROR)return void this.resetLoadingState();this.reduceLengthAndFlushBuffer(e)&&this.flushMainBuffer(0,Number.POSITIVE_INFINITY);break;case P.INTERNAL_EXCEPTION:this.recoverWorkerError(e)}}checkBuffer(){let{media:t,gapController:e}=this;if(t&&e&&t.readyState){if(this.loadedmetadata||!Jt.getBuffered(t).length){let i=this.state!==Zt?this.fragCurrent:null;e.poll(this.lastCurrentTime,i)}this.lastCurrentTime=t.currentTime}}onFragLoadEmergencyAborted(){this.state=Zt,this.loadedmetadata||(this.startFragRequested=!1,this.nextLoadPosition=this.startPosition),this.tickImmediate()}onBufferFlushed(t,{type:e}){if(e!==lt||this.audioOnly&&!this.altAudio){let i=(e===St?this.videoBuffer:this.mediaBuffer)||this.media;this.afterBufferFlushed(i,e,ie),this.tick()}}onLevelsUpdated(t,e){this.level>-1&&this.fragCurrent&&(this.level=this.fragCurrent.level),this.levels=e.levels}swapAudioCodec(){this.audioCodecSwap=!this.audioCodecSwap}seekToStartPos(){let{media:t}=this;if(!t)return;let e=t.currentTime,i=this.startPosition;if(i>=0&&e<i){if(t.seeking)return void this.log(`could not seek to ${i}, already seeking at ${e}`);let r=Jt.getBuffered(t),s=(r.length?r.start(0):0)-i;s>0&&(s<this.config.maxBufferHole||s<this.config.maxFragLookUpTolerance)&&(this.log(`adjusting start position by ${s} to match buffer start`),i+=s,this.startPosition=i),this.log(`seek to target start position ${i} from current time ${e}`),t.currentTime=i}}_getAudioCodec(t){let e=this.config.defaultAudioCodec||t.audioCodec;return this.audioCodecSwap&&e&&(this.log("Swapping audio codec"),e=e.indexOf("mp4a.40.5")!==-1?"mp4a.40.2":"mp4a.40.5"),e}_loadBitrateTestFrag(t,e){t.bitrateTest=!0,this._doFragLoad(t,e).then((i)=>{let{hls:r}=this;if(!i||this.fragContextChanged(t))return;e.fragmentError=0,this.state=Zt,this.startFragRequested=!1,this.bitrateTest=!1;let s=t.stats;s.parsing.start=s.parsing.end=s.buffering.start=s.buffering.end=self.performance.now(),r.trigger(b.FRAG_LOADED,i),t.bitrateTest=!1})}_handleTransmuxComplete(t){var e;let i="main",{hls:r}=this,{remuxResult:s,chunkMeta:a}=t,l=this.getCurrentContext(a);if(!l)return void this.resetWhenMissingContext(a);let{frag:c,part:u,level:d}=l,{video:m,text:y,id3:S,initSegment:T}=s,{details:w}=d,D=this.altAudio?void 0:s.audio;if(this.fragContextChanged(c))this.fragmentTracker.removeFragment(c);else{if(this.state=Fi,T){if(T!=null&&T.tracks){let x=c.initSegment||c;this._bufferInitSegment(d,T.tracks,x,a),r.trigger(b.FRAG_PARSING_INIT_SEGMENT,{frag:x,id:"main",tracks:T.tracks})}let{initPTS:k,timescale:N}=T;L(k)&&(this.initPTS[c.cc]={baseTime:k,timescale:N},r.trigger(b.INIT_PTS_FOUND,{frag:c,id:"main",initPTS:k,timescale:N}))}if(m&&w&&c.sn!=="initSegment"){let k=w.fragments[c.sn-1-w.startSN],N=c.sn===w.startSN,x=!k||c.cc>k.cc;if(s.independent!==!1){let{startPTS:G,endPTS:Y,startDTS:rt,endDTS:J}=m;if(u)u.elementaryStreams[m.type]={startPTS:G,endPTS:Y,startDTS:rt,endDTS:J};else if(m.firstKeyFrame&&m.independent&&a.id===1&&!x&&(this.couldBacktrack=!0),m.dropped&&m.independent){let ut=this.getMainFwdBufferInfo(),ft=(ut?ut.end:this.getLoadPosition())+this.config.maxBufferHole,Z=m.firstKeyFramePTS?m.firstKeyFramePTS:G;if(!N&&ft<Z-this.config.maxBufferHole&&!x)return void this.backtrack(c);x&&(c.gap=!0),c.setElementaryStreamInfo(m.type,c.start,Y,c.start,J,!0)}else N&&G>2&&(c.gap=!0);c.setElementaryStreamInfo(m.type,G,Y,rt,J),this.backtrackFragment&&(this.backtrackFragment=c),this.bufferFragmentData(m,c,u,a,N||x)}else{if(!N&&!x)return void this.backtrack(c);c.gap=!0}}if(D){let{startPTS:k,endPTS:N,startDTS:x,endDTS:G}=D;u&&(u.elementaryStreams[lt]={startPTS:k,endPTS:N,startDTS:x,endDTS:G}),c.setElementaryStreamInfo(lt,k,N,x,G),this.bufferFragmentData(D,c,u,a)}if(w&&S!=null&&(e=S.samples)!=null&&e.length){let k={id:"main",frag:c,details:w,samples:S.samples};r.trigger(b.FRAG_PARSING_METADATA,k)}if(w&&y){let k={id:"main",frag:c,details:w,samples:y.samples};r.trigger(b.FRAG_PARSING_USERDATA,k)}}}_bufferInitSegment(t,e,i,r){if(this.state!==Fi)return;this.audioOnly=!!e.audio&&!e.video,this.altAudio&&!this.audioOnly&&delete e.audio;let{audio:s,video:a,audiovideo:l}=e;if(s){let c=t.audioCodec,u=navigator.userAgent.toLowerCase();this.audioCodecSwitch&&(c&&(c=c.indexOf("mp4a.40.5")!==-1?"mp4a.40.2":"mp4a.40.5"),s.metadata.channelCount!==1&&u.indexOf("firefox")===-1&&(c="mp4a.40.5")),c&&c.indexOf("mp4a.40.5")!==-1&&u.indexOf("android")!==-1&&s.container!=="audio/mpeg"&&(c="mp4a.40.2",this.log("Android: force audio codec to "+c)),t.audioCodec&&t.audioCodec!==c&&this.log(`Swapping manifest audio codec "${t.audioCodec}" for "${c}"`),s.levelCodec=c,s.id="main",this.log(`Init audio buffer, container:${s.container}, codecs[selected/level/parsed]=[${c||""}/${t.audioCodec||""}/${s.codec}]`)}a&&(a.levelCodec=t.videoCodec,a.id="main",this.log(`Init video buffer, container:${a.container}, codecs[level/parsed]=[${t.videoCodec||""}/${a.codec}]`)),l&&this.log(`Init audiovideo buffer, container:${l.container}, codecs[level/parsed]=[${t.codecs}/${l.codec}]`),this.hls.trigger(b.BUFFER_CODECS,e),Object.keys(e).forEach((c)=>{let u=e[c].initSegment;u!=null&&u.byteLength&&this.hls.trigger(b.BUFFER_APPENDING,{type:c,data:u,frag:i,part:null,chunkMeta:r,parent:i.type})}),this.tickImmediate()}getMainFwdBufferInfo(){return this.getFwdBufferInfo(this.mediaBuffer?this.mediaBuffer:this.media,ie)}backtrack(t){this.couldBacktrack=!0,this.backtrackFragment=t,this.resetTransmuxer(),this.flushBufferGap(t),this.fragmentTracker.removeFragment(t),this.fragPrevious=null,this.nextLoadPosition=t.start,this.state=Zt}checkFragmentChanged(){let t=this.media,e=null;if(t&&t.readyState>1&&t.seeking===!1){let i=t.currentTime;if(Jt.isBuffered(t,i)?e=this.getAppendedFrag(i):Jt.isBuffered(t,i+0.1)&&(e=this.getAppendedFrag(i+0.1)),e){this.backtrackFragment=null;let r=this.fragPlaying,s=e.level;r&&e.sn===r.sn&&r.level===s||(this.fragPlaying=e,this.hls.trigger(b.FRAG_CHANGED,{frag:e}),r&&r.level===s||this.hls.trigger(b.LEVEL_SWITCHED,{level:s}))}}}get nextLevel(){let t=this.nextBufferedFrag;return t?t.level:-1}get currentFrag(){let t=this.media;return t?this.fragPlaying||this.getAppendedFrag(t.currentTime):null}get currentProgramDateTime(){let t=this.media;if(t){let e=t.currentTime,i=this.currentFrag;if(i&&L(e)&&L(i.programDateTime)){let r=i.programDateTime+1000*(e-i.start);return new Date(r)}}return null}get currentLevel(){let t=this.currentFrag;return t?t.level:-1}get nextBufferedFrag(){let t=this.currentFrag;return t?this.followingBufferedFrag(t):null}get forceStartLoad(){return this._forceStartLoad}}class Le{static get version(){return"1.5.8"}static isMSESupported(){return Gu()}static isSupported(){return function(){if(!Gu())return!1;let t=Ni();return typeof(t==null?void 0:t.isTypeSupported)=="function"&&(["avc1.42E01E,mp4a.40.2","av01.0.01M.08","vp09.00.50.08"].some((e)=>t.isTypeSupported(wr(e,"video")))||["mp4a.40.2","fLaC"].some((e)=>t.isTypeSupported(wr(e,"audio"))))}()}static getMediaSource(){return Ni()}static get Events(){return b}static get ErrorTypes(){return H}static get ErrorDetails(){return P}static get DefaultConfig(){return Le.defaultConfig?Le.defaultConfig:xu}static set DefaultConfig(t){Le.defaultConfig=t}constructor(t={}){this.config=void 0,this.userConfig=void 0,this.coreComponents=void 0,this.networkControllers=void 0,this.started=!1,this._emitter=new Pl,this._autoLevelCapping=-1,this._maxHdcpLevel=null,this.abrController=void 0,this.bufferController=void 0,this.capLevelController=void 0,this.latencyController=void 0,this.levelController=void 0,this.streamController=void 0,this.audioTrackController=void 0,this.subtitleTrackController=void 0,this.emeController=void 0,this.cmcdController=void 0,this._media=null,this.url=null,this.triggeringException=void 0,function(Z,Q){if(typeof console=="object"&&Z===!0||typeof Z=="object"){q(Z,"debug","log","info","warn","error");try{Et.log(`Debug logs enabled for "${Q}" in hls.js version 1.5.8`)}catch(Dt){Et=at}}else Et=at}(t.debug||!1,"Hls instance");let e=this.config=function(Z,Q){if((Q.liveSyncDurationCount||Q.liveMaxLatencyDurationCount)&&(Q.liveSyncDuration||Q.liveMaxLatencyDuration))throw new Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");if(Q.liveMaxLatencyDurationCount!==void 0&&(Q.liveSyncDurationCount===void 0||Q.liveMaxLatencyDurationCount<=Q.liveSyncDurationCount))throw new Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be greater than "liveSyncDurationCount"');if(Q.liveMaxLatencyDuration!==void 0&&(Q.liveSyncDuration===void 0||Q.liveMaxLatencyDuration<=Q.liveSyncDuration))throw new Error('Illegal hls.js config: "liveMaxLatencyDuration" must be greater than "liveSyncDuration"');let Dt=rc(Z),mt=["TimeOut","MaxRetry","RetryDelay","MaxRetryTimeout"];return["manifest","level","frag"].forEach((Rt)=>{let Ot=(Rt==="level"?"playlist":Rt)+"LoadPolicy",Mt=Q[Ot]===void 0,ot=[];mt.forEach((vt)=>{let Ct=`${Rt}Loading${vt}`,It=Q[Ct];if(It!==void 0&&Mt){ot.push(Ct);let Gt=Dt[Ot].default;switch(Q[Ot]={default:Gt},vt){case"TimeOut":Gt.maxLoadTimeMs=It,Gt.maxTimeToFirstByteMs=It;break;case"MaxRetry":Gt.errorRetry.maxNumRetry=It,Gt.timeoutRetry.maxNumRetry=It;break;case"RetryDelay":Gt.errorRetry.retryDelayMs=It,Gt.timeoutRetry.retryDelayMs=It;break;case"MaxRetryTimeout":Gt.errorRetry.maxRetryDelayMs=It,Gt.timeoutRetry.maxRetryDelayMs=It}}}),ot.length&&I.warn(`hls.js config: "${ot.join('", "')}" setting(s) are deprecated, use "${Ot}": ${JSON.stringify(Q[Ot])}`)}),E(E({},Dt),Q)}(Le.DefaultConfig,t);this.userConfig=t,e.progressive&&Mf(e);let{abrController:i,bufferController:r,capLevelController:s,errorController:a,fpsController:l}=e,c=new a(this),u=this.abrController=new i(this),d=this.bufferController=new r(this),m=this.capLevelController=new s(this),y=new l(this),S=new eo(this),T=new ro(this),w=e.contentSteeringController,D=w?new w(this):null,k=this.levelController=new Fu(this,D),N=new ia(this),x=new Bu(this.config),G=this.streamController=new Vu(this,N,x);m.setStreamController(G),y.setStreamController(G);let Y=[S,k,G];D&&Y.splice(1,0,D),this.networkControllers=Y;let rt=[u,d,m,y,T,N];this.audioTrackController=this.createController(e.audioTrackController,Y);let J=e.audioStreamController;J&&Y.push(new J(this,N,x)),this.subtitleTrackController=this.createController(e.subtitleTrackController,Y);let ut=e.subtitleStreamController;ut&&Y.push(new ut(this,N,x)),this.createController(e.timelineController,rt),x.emeController=this.emeController=this.createController(e.emeController,rt),this.cmcdController=this.createController(e.cmcdController,rt),this.latencyController=this.createController(Ws,rt),this.coreComponents=rt,Y.push(c);let ft=c.onErrorOut;typeof ft=="function"&&this.on(b.ERROR,ft,c)}createController(t,e){if(t){let i=new t(this);return e&&e.push(i),i}return null}on(t,e,i=this){this._emitter.on(t,e,i)}once(t,e,i=this){this._emitter.once(t,e,i)}removeAllListeners(t){this._emitter.removeAllListeners(t)}off(t,e,i=this,r){this._emitter.off(t,e,i,r)}listeners(t){return this._emitter.listeners(t)}emit(t,e,i){return this._emitter.emit(t,e,i)}trigger(t,e){if(this.config.debug)return this.emit(t,t,e);try{return this.emit(t,t,e)}catch(i){if(I.error("An internal error happened while handling event "+t+'. Error message: "'+i.message+'". Here is a stacktrace:',i),!this.triggeringException){this.triggeringException=!0;let r=t===b.ERROR;this.trigger(b.ERROR,{type:H.OTHER_ERROR,details:P.INTERNAL_EXCEPTION,fatal:r,event:t,error:i}),this.triggeringException=!1}}return!1}listenerCount(t){return this._emitter.listenerCount(t)}destroy(){I.log("destroy"),this.trigger(b.DESTROYING,void 0),this.detachMedia(),this.removeAllListeners(),this._autoLevelCapping=-1,this.url=null,this.networkControllers.forEach((e)=>e.destroy()),this.networkControllers.length=0,this.coreComponents.forEach((e)=>e.destroy()),this.coreComponents.length=0;let t=this.config;t.xhrSetup=t.fetchSetup=void 0,this.userConfig=null}attachMedia(t){I.log("attachMedia"),this._media=t,this.trigger(b.MEDIA_ATTACHING,{media:t})}detachMedia(){I.log("detachMedia"),this.trigger(b.MEDIA_DETACHING,void 0),this._media=null}loadSource(t){this.stopLoad();let e=this.media,i=this.url,r=this.url=h.buildAbsoluteURL(self.location.href,t,{alwaysNormalize:!0});this._autoLevelCapping=-1,this._maxHdcpLevel=null,I.log("loadSource:"+r),e&&i&&(i!==r||this.bufferController.hasSourceTypes())&&(this.detachMedia(),this.attachMedia(e)),this.trigger(b.MANIFEST_LOADING,{url:t})}startLoad(t=-1){I.log(`startLoad(${t})`),this.started=!0,this.networkControllers.forEach((e)=>{e.startLoad(t)})}stopLoad(){I.log("stopLoad"),this.started=!1,this.networkControllers.forEach((t)=>{t.stopLoad()})}resumeBuffering(){this.started&&this.networkControllers.forEach((t)=>{"fragmentLoader"in t&&t.startLoad(-1)})}pauseBuffering(){this.networkControllers.forEach((t)=>{"fragmentLoader"in t&&t.stopLoad()})}swapAudioCodec(){I.log("swapAudioCodec"),this.streamController.swapAudioCodec()}recoverMediaError(){I.log("recoverMediaError");let t=this._media;this.detachMedia(),t&&this.attachMedia(t)}removeLevel(t){this.levelController.removeLevel(t)}get levels(){return this.levelController.levels||[]}get currentLevel(){return this.streamController.currentLevel}set currentLevel(t){I.log("set currentLevel:"+t),this.levelController.manualLevel=t,this.streamController.immediateLevelSwitch()}get nextLevel(){return this.streamController.nextLevel}set nextLevel(t){I.log("set nextLevel:"+t),this.levelController.manualLevel=t,this.streamController.nextLevelSwitch()}get loadLevel(){return this.levelController.level}set loadLevel(t){I.log("set loadLevel:"+t),this.levelController.manualLevel=t}get nextLoadLevel(){return this.levelController.nextLoadLevel}set nextLoadLevel(t){this.levelController.nextLoadLevel=t}get firstLevel(){return Math.max(this.levelController.firstLevel,this.minAutoLevel)}set firstLevel(t){I.log("set firstLevel:"+t),this.levelController.firstLevel=t}get startLevel(){let t=this.levelController.startLevel;return t===-1&&this.abrController.forcedAutoLevel>-1?this.abrController.forcedAutoLevel:t}set startLevel(t){I.log("set startLevel:"+t),t!==-1&&(t=Math.max(t,this.minAutoLevel)),this.levelController.startLevel=t}get capLevelToPlayerSize(){return this.config.capLevelToPlayerSize}set capLevelToPlayerSize(t){let e=!!t;e!==this.config.capLevelToPlayerSize&&(e?this.capLevelController.startCapping():(this.capLevelController.stopCapping(),this.autoLevelCapping=-1,this.streamController.nextLevelSwitch()),this.config.capLevelToPlayerSize=e)}get autoLevelCapping(){return this._autoLevelCapping}get bandwidthEstimate(){let{bwEstimator:t}=this.abrController;return t?t.getEstimate():NaN}set bandwidthEstimate(t){this.abrController.resetEstimator(t)}get ttfbEstimate(){let{bwEstimator:t}=this.abrController;return t?t.getEstimateTTFB():NaN}set autoLevelCapping(t){this._autoLevelCapping!==t&&(I.log("set autoLevelCapping:"+t),this._autoLevelCapping=t,this.levelController.checkMaxAutoUpdated())}get maxHdcpLevel(){return this._maxHdcpLevel}set maxHdcpLevel(t){(function(e){return Ys.indexOf(e)>-1})(t)&&this._maxHdcpLevel!==t&&(this._maxHdcpLevel=t,this.levelController.checkMaxAutoUpdated())}get autoLevelEnabled(){return this.levelController.manualLevel===-1}get manualLevel(){return this.levelController.manualLevel}get minAutoLevel(){let{levels:t,config:{minAutoBitrate:e}}=this;if(!t)return 0;let i=t.length;for(let r=0;r<i;r++)if(t[r].maxBitrate>=e)return r;return 0}get maxAutoLevel(){let{levels:t,autoLevelCapping:e,maxHdcpLevel:i}=this,r;if(r=e===-1&&t!=null&&t.length?t.length-1:e,i)for(let s=r;s--;){let a=t[s].attrs["HDCP-LEVEL"];if(a&&a<=i)return s}return r}get firstAutoLevel(){return this.abrController.firstAutoLevel}get nextAutoLevel(){return this.abrController.nextAutoLevel}set nextAutoLevel(t){this.abrController.nextAutoLevel=t}get playingDate(){return this.streamController.currentProgramDateTime}get mainForwardBufferInfo(){return this.streamController.getMainFwdBufferInfo()}setAudioOption(t){var e;return(e=this.audioTrackController)==null?void 0:e.setAudioOption(t)}setSubtitleOption(t){var e;return(e=this.subtitleTrackController)==null||e.setSubtitleOption(t),null}get allAudioTracks(){let t=this.audioTrackController;return t?t.allAudioTracks:[]}get audioTracks(){let t=this.audioTrackController;return t?t.audioTracks:[]}get audioTrack(){let t=this.audioTrackController;return t?t.audioTrack:-1}set audioTrack(t){let e=this.audioTrackController;e&&(e.audioTrack=t)}get allSubtitleTracks(){let t=this.subtitleTrackController;return t?t.allSubtitleTracks:[]}get subtitleTracks(){let t=this.subtitleTrackController;return t?t.subtitleTracks:[]}get subtitleTrack(){let t=this.subtitleTrackController;return t?t.subtitleTrack:-1}get media(){return this._media}set subtitleTrack(t){let e=this.subtitleTrackController;e&&(e.subtitleTrack=t)}get subtitleDisplay(){let t=this.subtitleTrackController;return!!t&&t.subtitleDisplay}set subtitleDisplay(t){let e=this.subtitleTrackController;e&&(e.subtitleDisplay=t)}get lowLatencyMode(){return this.config.lowLatencyMode}set lowLatencyMode(t){this.config.lowLatencyMode=t}get liveSyncPosition(){return this.latencyController.liveSyncPosition}get latency(){return this.latencyController.latency}get maxLatency(){return this.latencyController.maxLatency}get targetLatency(){return this.latencyController.targetLatency}get drift(){return this.latencyController.drift}get forceStartLoad(){return this.streamController.forceStartLoad}}Le.defaultConfig=void 0;var Nf=Object.freeze({__proto__:null,ATTACHED:"hls:attached"});function Pf(t){let e=function(){let i=typeof document!="undefined"&&typeof window!="undefined",r=i?navigator.userAgent:"",s=/iP(hone|od)/i.test(r)&&!/iPad/.test(r)&&!/IEMobile/i.test(r),a=/Android/.test(r)&&!/Firefox/.test(r),l=/^((?!chrome|android).)*safari/i.test(r),c=/chrome|crios/i.test(r)&&!/opr|opera|chromium|edg|ucbrowser|googlebot/i.test(r),u=/firefox|fxios/i.test(r)&&!/seamonkey/i.test(r),d=/edg/i.test(r),m=/opr|opera/i.test(r),y=/SamsungBrowser/.test(r),S=y&&/SMART-TV/.test(r);return{controls:!s,video:function(T){return i&&document.createElement("video").canPlayType(T)},lang:i&&window.navigator.language,android:a,iphone:s,safari:l,edge:d,opera:m,chrome:c,firefox:u,ios:i&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,samsung:y,samsung_tv:y&&S,touch:"ontouchstart"in window,tizen:"tizen"in window,webOS:"webos"in window}}();switch(t){case"com.widevine.alpha":return e.chrome||e.firefox||e.edge||e.opera;case"org.w3.clearkey":return e.chrome||e.firefox;case"com.apple.fps.1_0":return e.safari;case"com.microsoft.playready":return e.edge}}let Ku="application/vnd.apple.mpegURL",xf=[Ku,"application/x-mpegurl"],Ff=document.createElement("video").canPlayType(Ku);function Uf(t){let{pathname:e}=function(i){let r=document.createElement("a");return r.href=i,r}(t);return e.endsWith(".m3u8")}let Ri=window&&window.Hls||Le;function Bf(t,e){let i=t.seekable;if(typeof t.opts!="object"||i.length==0)return{head:0,tail:0};let r=function(a){var l;let c=a.seekable;return c.length?a.hasState("is-chromecast-playing")||!((l=a.hls)===null||l===void 0?void 0:l.liveSyncPosition)?c.end(c.length-1):a.hls.liveSyncPosition:0}(t),s=e||t.live_state.dvr_window;return{head:r,tail:typeof s!="number"||r-s<0?i.start(0):r-s}}let qt={Unknown:"00-00",MediaUnknown:"01-00",MediaUnavailable:"01-01",MediaUnsupportedVideoFormat:"01-02",MediaUnsupportedAudioFormat:"01-03",MediaBitrateExceeded:"01-04",MediaBufferOverread:"01-05",MediaIntegerOverflow:"01-06",MediaQuotaExceeded:"01-07",MediaInvalidCompositionDuration:"01-08",MediaInvalidCompositionSourceDuration:"01-09",MediaInvalidCompositionSourceStartTime:"01-10",MediaMalformedDepth:"01-11",PlaybackUnknown:"02-00",PlaybackVideoBufferUnderRun:"02-01",PlaybackAudioBufferUnderRun:"02-02",PlaybackVideoBufferingTimeout:"02-03",PlaybackAudioBufferingTimeout:"02-04",PlaybackManifestParseError:"02-05",PlaybackVideoDecodeError:"02-06",PlaybackAudioDecodeError:"02-07",PlaybackDroppedFramesExceeded:"02-08",PlaybackPlayheadExceedsDuration:"02-09",PlaybackUnsupportedDevice:"02-10",PlaybackManifestLoadError:"02-11",PlaybackManifestLoadTimeout:"02-12",PlaybackManifestParsingError:"02-13",PlaybackManifestIncompatibleCodecs:"02-14",PlaybackLevelEmptyError:"02-15",PlaybackLevelLoadError:"02-16",PlaybackLevelLoadTimeout:"02-17",PlaybackLevelSwitchError:"02-18",PlaybackAudioTrackLoadError:"02-19",PlaybackAudioTrackLoadTimeout:"02-20",PlaybackFragLoadError:"02-21",PlaybackFragLoadTimeout:"02-22",PlaybackFragDecryptError:"02-23",PlaybackFragParsingError:"02-24",PlaybackFragGap:"02-25",PlaybackRemuxAllocError:"02-26",PlaybackBufferAddCodecError:"02-27",PlaybackBufferIncompatibleCodecs:"02-28",PlaybackBufferAppendError:"02-29",PlaybackBufferStalledError:"02-30",PlaybackBufferFullError:"02-31",PlaybackBufferSeekOverHole:"02-32",PlaybackBufferNudgeOnStall:"02-33",PlaybackInternalException:"02-34",PlaybackInternalAborted:"02-35",PlaybackManifestLoaderFailure:"02-36",PlaybackSegmentBaseLoaderError:"02-37",PlaybackTimeSyncFailed:"02-38",PlaybackFragmentLoaderFailure:"02-39",PlaybackAppendError:"02-40",PlaybackRemoveError:"02-41",PlaybackDataUpdateFailed:"02-42",PlaybackManifestNoStreams:"02-43",PlaybackUnknownManifestType:"02-44",PlaybackDashInsufficientSegmentInfo:"02-45",PlaybackDashNoRepresentations:"02-46",PlaybackDashNoAdaptationSets:"02-47",PlaybackDashNoInitSegment:"02-48",PlaybackDashUnsupportedContainerFormat:"02-49",PlaybackDashKeySystemMismatch:"02-50",PlaybackMultipleKeyIDs:"02-51",PlaybackDashConflictingKeyIDs:"02-52",PlaybackRestrictedStreams:"02-53",PlaybackHlsMasterAndMediaTags:"02-54",PlaybackRepresentationIdConflict:"02-55",PlaybackHlsUnsupportedKeyFormats:"02-56",PlaybackManifestNoVariants:"02-57",PlaybackHlsUndeclaredVariables:"02-58",PlaybackAes128InvalidKeyLength:"02-59",PlaybackDashConflictingAes128Keys:"02-60",PlaybackDashUnsupportedAes128Encryption:"02-61",PlaybackManifestPatchMismatch:"02-62",PlaybackEmptyMediaPlaylist:"02-63",PlaybackNonContiguousCompositionTrack:"02-64",PlaybackDecoderNotFound:"02-65",PlaybackDecoderTemporarilyUnavailable:"02-66",PlaybackIncompatibleAsset:"02-67",PlaybackNoCompatibleExternalDisplay:"02-69",PlaybackOutOfMemory:"02-70",PlaybackToneMappingFailed:"02-71",PlaybackVideoCompositorFailed:"02-72",NetworkUnknown:"03-00",NetworkNoInternet:"03-01",NetworkRequestTimeout:"03-02",NetworkUnableToResolveHost:"03-03",NetworkResourceNotFound:"03-04",NetworkExpiredUrl:"03-05",NetworkUrlResolutionFailed:"03-06",NetworkDownloadErrorIdManifest:"03-07",NetworkDownloadErrorIdSidx:"03-08",NetworkDownloadErrorIdContent:"03-09",NetworkDownloadErrorIdInitialization:"03-10",NetworkDownloadErrorIdXlink:"03-11",NetworkHttpRequestFailed:"03-12",NetworkMaxRetriesExceeded:"03-13",NetworkSegmentMissing:"03-14",NetworkHttp400BadRequest:"03-400",NetworkHttp401Unauthorized:"03-401",NetworkHttp402PaymentRequired:"03-402",NetworkHttp403Forbidden:"03-403",NetworkHttp404NotFound:"03-404",NetworkHttp405MethodNotAllowed:"03-405",NetworkHttp406NotAcceptable:"03-406",NetworkHttp407ProxyAuthenticationRequired:"03-407",NetworkHttp408RequestTimeout:"03-408",NetworkHttp409Conflict:"03-409",NetworkHttp410Gone:"03-410",NetworkHttp411LengthRequired:"03-411",NetworkHttp412PreconditionFailed:"03-412",NetworkHttp413PayloadTooLarge:"03-413",NetworkHttp414URITooLong:"03-414",NetworkHttp415UnsupportedMediaType:"03-415",NetworkHttp416RangeNotSatisfiable:"03-416",NetworkHttp417ExpectationFailed:"03-417",NetworkHttp418ImATeapot:"03-418",NetworkHttp421MisdirectedRequest:"03-421",NetworkHttp422UnprocessableEntity:"03-422",NetworkHttp423Locked:"03-423",NetworkHttp424FailedDependency:"03-424",NetworkHttp425TooEarly:"03-425",NetworkHttp426UpgradeRequired:"03-426",NetworkHttp428PreconditionRequired:"03-428",NetworkHttp429TooManyRequests:"03-429",NetworkHttp431RequestHeaderFieldsTooLarge:"03-431",NetworkHttp451UnavailableForLegalReasons:"03-451",NetworkHttp500InternalServerError:"03-500",NetworkHttp501NotImplemented:"03-501",NetworkHttp502BadGateway:"03-502",NetworkHttp503ServiceUnavailable:"03-503",NetworkHttp504GatewayTimeout:"03-504",NetworkHttp505HTTPVersionNotSupported:"03-505",NetworkHttp506VariantAlsoNegotiates:"03-506",NetworkHttp507InsufficientStorage:"03-507",NetworkHttp508LoopDetected:"03-508",NetworkHttp510NotExtended:"03-510",NetworkHttp511NetworkAuthenticationRequired:"03-511",ContentProtectionUnknown:"04-00",ContentProtectionConcurrentStreamLimitExceeded:"04-01",ContentProtectionEntitlementRefused:"04-02",ContentProtectionLicenseExpired:"04-03",ContentProtectionBadLicenseRequest:"04-04",ContentProtectionLicenseServerTimeout:"04-05",ContentProtectionInsufficientHDCPSupport:"04-06",ContentProtectionGeoRestricted:"04-07",ContentProtectionParentalControlRestricted:"04-08",ContentProtectionCDNUnauthorized:"04-09",ContentProtectionInvalidAccessToken:"04-10",ContentProtectionKeySystemNoKeys:"04-11",ContentProtectionKeySystemNoAccess:"04-12",ContentProtectionKeySystemNoSession:"04-13",ContentProtectionKeySystemNoConfiguredLicense:"04-14",ContentProtectionKeySystemCertificateRequestFailed:"04-15",ContentProtectionKeySystemCertificateUpdateFailed:"04-16",ContentProtectionKeySystemSessionUpdateFailed:"04-17",ContentProtectionKeySystemStatusOutputRestricted:"04-18",ContentProtectionKeySystemStatusInternalError:"04-19",ContentProtectionKeyLoadError:"04-20",ContentProtectionKeyLoadTimeout:"04-21",ContentProtectionCapabilityMediaKeysError:"04-22",ContentProtectionManifestKeySystemUnknown:"04-23",ContentProtectionKeySystemUnavailable:"04-24",ContentProtectionCDMCreationFailed:"04-25",ContentProtectionCDMAttachFailed:"04-26",ContentProtectionCDMServerCertificateRejected:"04-27",ContentProtectionCDMSessionCreationFailed:"04-28",ContentProtectionCDMLicenseRequestFailed:"04-29",ContentProtectionCDMLicenseResponseRejected:"04-30",ContentProtectionManifestMissingDRMInfo:"04-31",ContentProtectionLicenseServerMissing:"04-32",ContentProtectionOfflineSessionRemoved:"04-33",ContentProtectionInitDataTransformationError:"04-34",ContentProtectionServerCertificateRequestFailed:"04-35",ContentProtectionInsufficientHDCPVersion:"04-36",ContentProtectionHDCPVersionCheckFailed:"04-37",AdsUnknown:"08-00",AdsVastParseError:"08-100",AdsInvalidVastSchema:"08-101",AdsVastVersionNotSupported:"08-102",AdsUnexpectedAdType:"08-200",AdsCreativeLinearityMismatch:"08-201",AdsCreativeDurationMismatch:"08-202",AdsCreativeSizeMismatch:"08-203",AdsWrapperVastError:"08-300",AdsVastResponseRedirectTimeout:"08-301",AdsWrapperLimitReached:"08-302",AdsVastResponseEmpty:"08-303",AdsLinearAdDisplayError:"08-400",AdsMediaFileNotFound:"08-401",AdsMediaFileUnavailable:"08-402",AdsUnsupportedMimeType:"08-403",AdsUnableToDisplayMediaFile:"08-405",AdsMezzanineFileMissing:"08-406",AdsMezzanineFileDownloaded:"08-407",AdsRejectedAd:"08-408",AdsInteractiveCreativeError:"08-409",AdsVerificationNodeExecutionError:"08-410",AdsNonLinearAdDisplayError:"08-500",AdsNonLinearAdSizeMismatch:"08-501",AdsNonLinearAdFetchError:"08-502",AdsNonLinearUnsupportedType:"08-503",AdsCompanionAdDisplayError:"08-600",AdsCompanionAdSizeMismatch:"08-601",AdsRequiredCompanionAdError:"08-602",AdsCompanionAdFetchError:"08-603",AdsUndefinedVastError:"08-900",AdsUnknownVpaidError:"08-901",AdsVastDocumentEmpty:"08-999"},sc=Object.fromEntries(Object.entries(qt).map(([t,e])=>[e,t])),$f=[1e7]+"-1000-4000-8000-100000000000",Wu="on",ko="off";class Ea extends Error{static getErrorKey(t){return t in sc?sc[t]:sc["00-00"]}constructor(t,e,i={}){super(t),this.message=t,this.flowplayerErrorCode=e,this.config=i,this.id=typeof crypto=="undefined"?"":$f.replace(/[018]/g,(r)=>(r^crypto.getRandomValues(new Uint8Array(1))[0]&15>>r/4).toString(16)),this.isFatal=!!i.isFatal,this.errorKey=Ea.getErrorKey(this.flowplayerErrorCode)||"unknown"}toJSON(){return{message:this.message,flowplayer_error_code:this.flowplayerErrorCode,id:this.id,root_error_id:this.config.rootErrorId,resource:this.config.resource,is_fatal:this.isFatal,is_retry:!!this.config.isRetry}}}function Gf(t){switch(t){case P.KEY_SYSTEM_NO_KEYS:return qt.ContentProtectionKeySystemNoKeys;case P.KEY_SYSTEM_NO_ACCESS:return qt.ContentProtectionKeySystemNoAccess;case P.KEY_SYSTEM_NO_SESSION:return qt.ContentProtectionKeySystemNoSession;case P.KEY_SYSTEM_NO_CONFIGURED_LICENSE:return qt.ContentProtectionKeySystemNoConfiguredLicense;case P.KEY_SYSTEM_LICENSE_REQUEST_FAILED:return qt.ContentProtectionCDMLicenseRequestFailed;case P.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED:return qt.ContentProtectionServerCertificateRequestFailed;case P.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED:return qt.ContentProtectionKeySystemCertificateUpdateFailed;case P.KEY_SYSTEM_SESSION_UPDATE_FAILED:return qt.ContentProtectionKeySystemSessionUpdateFailed;case P.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:return qt.ContentProtectionKeySystemStatusOutputRestricted;case P.KEY_SYSTEM_STATUS_INTERNAL_ERROR:return qt.ContentProtectionKeySystemStatusInternalError;case P.MANIFEST_LOAD_ERROR:return qt.PlaybackManifestLoadError;case P.MANIFEST_LOAD_TIMEOUT:return qt.PlaybackManifestLoadTimeout;case P.MANIFEST_PARSING_ERROR:return qt.PlaybackManifestParsingError;case P.MANIFEST_INCOMPATIBLE_CODECS_ERROR:return qt.PlaybackManifestIncompatibleCodecs;case P.LEVEL_EMPTY_ERROR:return qt.PlaybackLevelEmptyError;case P.LEVEL_LOAD_ERROR:return qt.PlaybackLevelLoadError;case P.LEVEL_LOAD_TIMEOUT:return qt.PlaybackLevelLoadTimeout;case P.LEVEL_PARSING_ERROR:return qt.PlaybackManifestParsingError;case P.LEVEL_SWITCH_ERROR:return qt.PlaybackLevelSwitchError;case P.AUDIO_TRACK_LOAD_ERROR:return qt.PlaybackAudioTrackLoadError;case P.AUDIO_TRACK_LOAD_TIMEOUT:return qt.PlaybackAudioTrackLoadTimeout;case P.SUBTITLE_LOAD_ERROR:return qt.NetworkDownloadErrorIdContent;case P.SUBTITLE_TRACK_LOAD_TIMEOUT:return qt.NetworkRequestTimeout;case P.FRAG_LOAD_ERROR:return qt.PlaybackFragLoadError;case P.FRAG_LOAD_TIMEOUT:return qt.PlaybackFragLoadTimeout;case P.FRAG_DECRYPT_ERROR:return qt.PlaybackFragDecryptError;case P.FRAG_PARSING_ERROR:return qt.PlaybackFragParsingError;case P.FRAG_GAP:return qt.PlaybackFragGap;case P.REMUX_ALLOC_ERROR:return qt.PlaybackRemuxAllocError;case P.KEY_LOAD_ERROR:return qt.ContentProtectionKeyLoadError;case P.KEY_LOAD_TIMEOUT:return qt.ContentProtectionKeyLoadTimeout;case P.BUFFER_ADD_CODEC_ERROR:return qt.PlaybackBufferAddCodecError;case P.BUFFER_INCOMPATIBLE_CODECS_ERROR:return qt.PlaybackBufferIncompatibleCodecs;case P.BUFFER_APPEND_ERROR:return qt.PlaybackBufferAppendError;case P.BUFFER_APPENDING_ERROR:return qt.PlaybackAppendError;case P.BUFFER_STALLED_ERROR:return qt.PlaybackBufferStalledError;case P.BUFFER_FULL_ERROR:return qt.PlaybackBufferFullError;case P.BUFFER_SEEK_OVER_HOLE:return qt.PlaybackBufferSeekOverHole;case P.BUFFER_NUDGE_ON_STALL:return qt.PlaybackBufferNudgeOnStall;case P.INTERNAL_EXCEPTION:return qt.PlaybackInternalException;case P.INTERNAL_ABORTED:return qt.PlaybackInternalAborted;case P.UNKNOWN:default:return qt.Unknown}}function Hf(t,e,i){let r={},s={error_type:e.type,resource:e.url||t.original_src,isFatal:e.fatal};return e.fatal?(e.type===i.ErrorTypes.MEDIA_ERROR&&(s.showErrorUI=!1,r.retry=Wu,r.retryTimeout=0),[i.ErrorTypes.KEY_SYSTEM_ERROR,i.ErrorTypes.MUX_ERROR,i.ErrorTypes.OTHER_ERROR].includes(e.type)&&(r.retry=ko),Object.assign(s,{retryOpts:r})):(r.retry=ko,Object.assign(s,{retryOpts:r}))}var ya,Sa;function Yu(t,e){let i=function(){try{return localStorage.getItem("flowplayer/debug")}catch(s){return""}}(),r=(s,...a)=>{try{let l=(e==null?void 0:e.debug)||i;l&&t.match(l)&&console.log(`flowplayer/${t} -- ${s}`,...a)}catch(l){console.warn(l)}};return r.log=r,r}(function(t){t[t.LOW=1]="LOW",t[t.MEDIUM=2]="MEDIUM",t[t.HIGH=4]="HIGH"})(ya||(ya={})),function(t){t[t.FRAGMENT_ERRORS=0]="FRAGMENT_ERRORS",t[t.STALE_MANIFEST=1]="STALE_MANIFEST"}(Sa||(Sa={}));let Vf=Yu("hls:failover");class ju{constructor(){this.playlistCounts={},this.fragmentFailures={},this.ttlMilliseconds=3000}setHls(t){this.hls=t}reset(){return this.playlistCounts={},this.fragmentFailures={},this}failover(t){var e,i;this.reset();let r=this.hls;if(!r)return;let{levelController:s,streamController:a}=r,l=s.steering;if(!s||!a||!l)return;let c=s.currentLevel;if(!c)return;let u=l.levels.filter((d)=>d.pathwayId!==c.pathwayId);u.length&&((e=r.media)===null||e===void 0||e.dispatchEvent(new CustomEvent("hls/failover",{detail:{reason:t,from:(i=c.details)===null||i===void 0?void 0:i.url}})),s._levels=a.levels=u)}currentLevel(){var t;return(t=this.hls)===null||t===void 0?void 0:t.levels[this.hls.currentLevel]}nextTTL(){var t;let e=Date.now()+this.ttlMilliseconds,i=this.currentLevel();if(!i)return e;let r=(t=i.details)===null||t===void 0?void 0:t.averagetargetduration;return r?Date.now()+500*r:e}ensurePlaylistUpdating(t,e){this.playlistCounts[t]||(this.playlistCounts[t]={checksum:e,count:0,ttl:this.nextTTL()});let i=this.playlistCounts[t];Date.now()<i.ttl||(i.count=i.checksum===e?i.count+1:0,i.ttl=this.nextTTL(),i.checksum=e,i.count<3||(Vf(`${t} / no change in ${i.count} tries`,this.playlistCounts),this.failover(Sa.STALE_MANIFEST)))}trackFragmentError(t){let e=this.fragmentFailures[t]||0;this.fragmentFailures[t]=e+1,this.fragmentFailures[t]>2&&this.failover(Sa.FRAGMENT_ERRORS)}createPlaylistLoader(t){let e=this;return class extends Le.DefaultConfig.loader{load(i,r,s){let a=s.onSuccess;s.onSuccess=({data:l,url:c},...u)=>{(i==null?void 0:i.type)==="manifest"&&(t.manifest=l),e.ensurePlaylistUpdating(c,l),a({data:l,url:c},...u)},super.load(i,r,s)}}}createFragmentLoader(){let t=this;return class extends Le.DefaultConfig.loader{load(e,i,r){let s=r.onError;r.onError=(a)=>{t.trackFragmentError(a.url),s(...arguments)},super.load(e,i,r)}}}}let as=Yu("hls");function Kf(t,e){if(t.drm&&location.protocol!=="https:"&&location.hostname!=="localhost"&&location.hostname!=="127.0.0.1"){let i=new Ea("drm is unavailable in http contexts",qt.ContentProtectionKeySystemUnavailable,{resource:t.src,isFatal:!0,retryOpts:{retry:ko}});return e.emit("flowplayer:error",{error:i}),!1}return!0}function Wf(t,e,i,r){if(!t.reaper||!i.src)return;if(t.hls&&t.hls.destroy(),!Kf(i,t))return;(function(s,a,l,c,u){(function(d,m){d.on(Le.Events.AUDIO_TRACKS_UPDATED,function(S,T){m.emit("audio:tracks",T.audioTracks)}),d.on(Le.Events.AUDIO_TRACK_SWITCHING,function(S,T){m.emit("audio:update",T)}),d.on(Le.Events.MANIFEST_PARSED,function(S,T){T.audioTracks&&m.emit("audio:tracks",T.audioTracks)});let y=function(S){var T;let w=(T=S.data)===null||T===void 0?void 0:T.id;typeof w=="number"&&w!=d.audioTrack&&setTimeout(function(){d.audioTrack=w},0)};m.on("audio:set",y),m.on("src",function(){m.off("audio:set",y)})})(s,c),function(d,m){d.on(Le.Events.NON_NATIVE_TEXT_TRACKS_FOUND,(y,S)=>{d.subtitleTracks.length||m.emit("tracks:text:all",S)}),d.on(Le.Events.SUBTITLE_TRACKS_UPDATED,(y,S)=>{m.emit("tracks:text:all",{tracks:S.subtitleTracks.map((T)=>Object.assign({},{subtitleTrack:T}))})}),d.on(Le.Events.CUES_PARSED,(y,S)=>{m.emit("cues:parsed",S)})}(s,c),function(d,m,y){d.on("src",function(){d.hls&&(d.hls.destroy(),delete d.hls,m.manifest=void 0)}),d.on("reap",function(){y&&y.destroy()})}(c,l,s),function(d,m,y){let S={media_recovers:0,audio_swaps:0},T=0;d.on("error",(w)=>{var D,k,N;d.hls&&((D=d==null?void 0:d.error)===null||D===void 0?void 0:D.code)===MediaError.MEDIA_ERR_DECODE&&(w.preventDefault(),++T,d.emit("flowplayer:error",{error:new Ea((N=(k=d==null?void 0:d.error)===null||k===void 0?void 0:k.message)!==null&&N!==void 0?N:"An error occurred while decoding the media.",qt.PlaybackVideoDecodeError,{isFatal:!0,showErrorUI:T>=5,retryOpts:{retry:T<5?Wu:ko,retryTimeout:0}})}))}),d.on("canplay",()=>T=0),d.on("retry",(w)=>{var D,k,N;if(!d.hls)return;w.preventDefault();let x=w.detail.error,G=x.config;return x.flowplayerErrorCode===qt.PlaybackVideoDecodeError?(m.config.autoStartLoad=!0,m.recoverMediaError(),d.setState("is-waiting",!1)):G.error_type?G.error_type===Ri.ErrorTypes.NETWORK_ERROR?(y.src&&m.loadSource(d.original_src),G.autoplay?d.togglePlay(!0):(d.setState("is-waiting",!1),d.emit("retry/done"))):G.error_type===Ri.ErrorTypes.MEDIA_ERROR?(as("recovering from "+G.error_type),S.media_recovers+5000>Date.now()&&S.audio_swaps==0?((D=d.hls)===null||D===void 0||D.swapAudioCodec(),as(`calling swapAudioCodec() : {count=${S.audio_swaps}}`),S.audio_swaps++,S.media_recovers=Date.now(),(k=d.hls)===null||k===void 0||k.recoverMediaError(),d.setState("is-waiting",!1)):(S.media_recovers=Date.now(),S.audio_swaps=0,(N=d.hls)===null||N===void 0||N.recoverMediaError(),d.setState("is-waiting",!1))):void 0:void 0}),m.on(Ri.Events.ERROR,function(w,D){var k;d.reaper!=0&&(function(N,x,G){N.emit("flowplayer:error",{error:new Ea(x.error.message,Gf(x.details),Hf(N,x,G))})}(d,D,Ri),D.fatal&&([Ri.ErrorTypes.NETWORK_ERROR,Ri.ErrorTypes.MEDIA_ERROR].includes(D.type)||(k=d.hls)===null||k===void 0||k.destroy()))})}(c,s,u),function(d,m){d.on("remotesession:started",()=>{d.hls&&(d.hls.stopLoad(),delete d.opts.start_time)}),d.on("remotesession:ended",(y)=>{if(!m)return;if(!d.opts.live)return ba(d,y.detail.currentTime);y.preventDefault();let S=function(T){let w=T.currentTime,D=Bf(T);return{progress:Math.min(100,Math.max(0,(w-D.tail)/(D.head-D.tail)*100)),is_live:w-D.head>=-10}}(d).progress;m.once(Ri.Events.LEVEL_LOADED,()=>{if(d.hls!==m)return;let T=d.live_state.dvr_window||0,w=m.liveSyncPosition||d.seekable.end(0);if(d.hasState("no-timeline")||isNaN(S))return d.currentTime=w;d.currentTime=w-T*((100-S)/100)}),ba(d)})}(c,s),function(d,m,y,S,T){let w;d.once(Le.Events.LEVEL_LOADING,function(){m.emit("content:loadstart")}),d.on(Ri.Events.MANIFEST_PARSED,function(N,x){let G=zu(x.levels);m.emit("qualities",G),m.emit("parse:video:tracks",{url:T.src,manifest:S.manifest}),function(Y,rt,J){var ut,ft;if(!Y.hls)return;as("Initializer::maybe_start_load_with_quality (start_quality, preload): (%d, %s)",rt.start_quality,rt.preload),rt.start_quality!==void 0&&J.length&&(ya.HIGH&rt.start_quality&&(Y.hls.startLevel=J[0].level),ya.LOW&rt.start_quality&&(Y.hls.startLevel=J[J.length-1].level),ya.MEDIUM&rt.start_quality&&(Y.hls.startLevel=J[Math.ceil(J.length/2)-1].level));let Z=((ut=rt.hls)===null||ut===void 0?void 0:ut.maxBufferSize)||1024,Q=((ft=rt.hls)===null||ft===void 0?void 0:ft.maxBufferLength)||30;as("Setting maxBufferSize to %d",Z),Y.hls.config.maxBufferSize=Z,rt.preload==="metadata"&&as("preload === metadata, setting maxBufferLength to 1sec"),Y.hls.config.maxBufferLength=rt.preload==="metadata"?1:Q,Y.once("playing",()=>{as("Playback started, set maxBufferLenght to %d",Q),Y.hls&&(Y.hls.config.maxBufferLength=Q)}),(rt.preload!=="none"||rt.autoplay&&Y.hasState("is-in-viewport"))&&ba(Y,rt.start_time||-1)}(m,y,G.slice(0,-1))}),m.on(["beforeplay","viewenter"],(N)=>{if(m.hls&&!m.hasState("is-casting")&&!m.hasState("is-loaded")&&y.preload==="none"&&(N.type!=="viewenter"||y.autoplay))return m.hls.levels.length?ba(m,y.start_time||-1):void m.hls.once(Ri.Events.MANIFEST_PARSED,()=>{setTimeout(()=>{ba(m,y.start_time||-1)},0)})}),d.on(Ri.Events.LEVEL_SWITCHING,(N,x)=>{if(d.nextLoadLevel===w)return;w=d.nextLoadLevel;let G=d.levels[d.currentLevel],Y=d.levels[x.level];m.emit("qualitychange",{before:G,after:Y,plugin:"hls",automatic:d.autoLevelEnabled,downscale:Y.bitrate<G.bitrate})});let D=function(N){var x;let G=(x=N.data)===null||x===void 0?void 0:x.level;typeof G=="number"&&(d.levels[G]||G===-1?d.nextLevel=G:console.error(new Error("skipping invalid quality: "+N.data)))};m.on("quality:set",D),m.on("src",function(){m.off("quality:set",D)}),m.on("tracks:video:select",function(N){var x,G;let Y=N.detail.track,rt=(x=m.tracks)===null||x===void 0?void 0:x.find((ft)=>ft.selected&&ft!==Y),J=m.hls;if(!rt||!Y||!J)return;rt.selected=!1;let ut=(G=Y.data)===null||G===void 0?void 0:G.slice(0).map((ft)=>(ft.details=void 0,ft));J.stopLoad(),J.levelController._levels=J.streamController.levels=ut,J.currentLevel=-1,m.emit("qualities",zu(ut)),m.hasState("is-starting")&&!m.hasState("is-loading")||J.startLoad()});let k=m.opt("start_time");k&&m.once("loadedmetadata",function(){m.currentTime=k})}(s,c,a,l,u),function(d,m){d.on(Le.Events.FRAG_PARSING_METADATA,function(y,S){m.emit("ssai:hls:metadata",S)})}(s,c),function(d,m){d.on(Le.Events.BUFFER_CREATED,(y,S)=>{let T=S.tracks.video||S.tracks.audiovideo;if(!T)return m.emit("audioonlysource");let w=T==null?void 0:T.metadata.height,D=T==null?void 0:T.metadata.width;!m.opt("ratio")&&w&&D&&m.setOpts({ratio:D+":"+w})})}(s,c),function(d,m,y){let S="live"in y==0;m.on(Ri.Events.LEVEL_LOADED,function(T,w){var D,k;S&&d.setOpts({live:w.details.live});let N=(k=(D=m.levels[w.level])===null||D===void 0?void 0:D.details)===null||k===void 0?void 0:k.fragments;if(!N)return;let x=N[1].start||0,G=m.liveSyncPosition||N[N.length-1].end;d.emit("dvr/window",G-x)})}(c,s,a)})(function(s,a,l,c){var u,d,m,y,S,T,w,D;let k=new ju,N=function(G){return Object.assign(Object.assign({autoStartLoad:!1,levelLoadingMaxRetry:1},G.hls),{startPosition:G.start_time||-1})}(s);N.renderTextTracksNatively=!1,N.captionsTextTrack1Label=(d=(u=s==null?void 0:s.hls)===null||u===void 0?void 0:u.captionsTextTrack1Label)!==null&&d!==void 0?d:"CC1",N.captionsTextTrack2Label=(y=(m=s==null?void 0:s.hls)===null||m===void 0?void 0:m.captionsTextTrack2Label)!==null&&y!==void 0?y:"CC2",N.captionsTextTrack3Label=(T=(S=s==null?void 0:s.hls)===null||S===void 0?void 0:S.captionsTextTrack3Label)!==null&&T!==void 0?T:"CC3",N.captionsTextTrack4Label=(D=(w=s==null?void 0:s.hls)===null||w===void 0?void 0:w.captionsTextTrack4Label)!==null&&D!==void 0?D:"CC4",N.pLoader=k.createPlaylistLoader(a),N.fLoader=k.createFragmentLoader();let x=l.hls=new Ri(N);return k.setHls(x),x.subtitleDisplay=!1,x.attachMedia(l),x.loadSource(c.src),setTimeout(()=>l.emit("hls:attached",{hls:l.hls})),x}(e,r,t,i),e,r,t,i)}function ba(t,e){var i;!t.hasState("is-loaded")&&t.setState("is-loading",!0),(i=t.hls)===null||i===void 0||i.startLoad(e)}function zu(t){let e=t.map((i,r)=>Object.assign(i,{level:r})).sort((i,r)=>r.width-i.width);return t.length>1&&t.every((i)=>i.bitrate!==void 0)&&e.push({name:"AUTO",level:-1,width:0,height:0}),e}var Ta;let Yf=((Ta=class t{init(){}onload(e,i,r,s){Wf(r,e,s,this)}wants(e,i,r){return Le.isSupported()&&function({src:s="",type:a="",drm:l},c){let u=c==null?void 0:c.hls,d=Boolean(u==null?void 0:u.native);return(!Ff||!d)&&(!(l&&!Object.keys(l).find((m)=>Pf(m)))&&(!(!a||!xf.includes(a))||Uf(s)))}(i,r)}}).pluginName="hls",Ta.events=Nf,Ta.version=Le.version,Ta.failover={Reasons:Sa},Ta);return function(t,e){if(typeof Wo=="object"&&typeof Yo!="undefined")return e;if(document.currentScript===null)return e;"flowplayer"in t||(t.flowplayer={extensions:[]});let i=t.flowplayer;return typeof i=="function"?(i(e),e):(Array.isArray(i.extensions)||(i.extensions=[]),~i.extensions.indexOf(e)||i.extensions.push(e),e)}(window,Yf)})});var Nd=Ce((jo,zo)=>{(function(n,o){typeof jo=="object"&&typeof zo!="undefined"?zo.exports=o():typeof define=="function"&&define.amd?define(o):((n=typeof globalThis!="undefined"?globalThis:n||self).flowplayer=n.flowplayer||{},n.flowplayer.qsel=o())})(jo,function(){function n(W,at,Et){let q=function(I){return Array.isArray(I)?I.slice(0):I.split(".")}(at);for(;q.length;){if(W==null)return Et;let I=q.shift();if(typeof I!="string")return Et;W=W[I]}return W==null?Et:W}let o=(W,at)=>new(((Et,q)=>{let I=Et.get(q);if(!I)throw new Error(`no flowplayer component with the name ${q} exists`);let B=window.customElements.get(q);if(!B)throw new Error(`no default flowplayer component with the name ${q} exists`);let F=window.customElements.get(I);return typeof F!="function"?B:F})(W._customElements,at))(W);class h extends HTMLElement{constructor(W){super(),this.player=W}}let v="fp-on",E="fp-invis";class _ extends h{constructor(W){super(W),this.player=W,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=A(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener("click",(at)=>{if(at.defaultPrevented)return;at.preventDefault();let Et=this.menuContainer.open;Et||(R(),document.active_menu=this.menuContainer),this.menuContainer.open=!Et,W.root.classList.toggle("has-menu-opened",!Et),this.summaryEle.setAttribute("aria-expanded",Et?"false":"true")}),this.addEventListener("focusin",(at)=>{let Et=at.target;Et instanceof HTMLLIElement&&Et.setAttribute("aria-selected","true")}),this.addEventListener("focusout",(at)=>{let Et=at.target;Et instanceof HTMLLIElement&&Et.setAttribute("aria-selected","false")}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(W){if(this.className=W.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=W.id||A()),this.summaryEle.setAttribute("aria-label",W.menuTitle||"Menu"),W.summaryTitle&&(this.summaryEle.textContent=W.summaryTitle),W.summaryIcon){let at=o(this.player,W.summaryIcon);at.setAttribute("tabindex",""),this.summaryEle.append(at)}W.menuTitle&&(this.menuTitle.textContent=W.menuTitle),this.menu.classList.toggle("fp-icons",!!W.icons),this.addEventListener(W.options_event,(at)=>{this.render(at.data)}),W.item_selected_event&&this.addEventListener(W.item_selected_event,(at)=>{at.data!==void 0&&this.select_item(at.data.selected_index)})}render(W){this.olEle&&(this.olEle.innerHTML="",W&&W.forEach(this.menuOption,this),this.toggle_visibility(!(W==null?void 0:W.length)))}menuOption(W,at){let Et=document.createElement("li");Et.setAttribute("role","menuitem"),Et.setAttribute("aria-selected","false"),Et.setAttribute("tabindex","0"),W.icon&&Et.append(W.icon);let q=document.createElement("span");q.textContent=W.text,Et.append(q),Et.addEventListener("click",()=>{this.select_item(at),typeof W.onclick=="function"&&W.onclick()}),this.olEle.appendChild(Et),W.selected&&this.select_item(at)}select_item(W){this.options.forEach((at,Et)=>{at.classList.toggle(v,Et===W)})}unselect_item(){this.options.forEach((W)=>{W.classList.remove(v)})}toggle_visibility(W){this.classList.toggle(E,W),this.menu.style.setProperty("display",W?"none":"flex")}}function R(){Array.from(document.querySelectorAll(".fp-engine")).forEach((W)=>{var at;let Et=W.root.querySelector("details[open].fp-menu-container");Et&&(Et.open=!1,(at=Et.querySelector("summary"))===null||at===void 0||at.removeAttribute("aria-expanded"),W.root.classList.toggle("has-menu-opened",!1))})}function A(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function L(W,at,Et){let q=function(I,B){let F=new CustomEvent(I,{detail:B,cancelable:!0});return B&&Object.defineProperty(F,"data",{get:()=>B}),F}(at,Et);return W.dispatchEvent(q),W}document.addEventListener("click",function(W){this.active_menu&&!W.composedPath().includes(this.active_menu)&&(R(),this.active_menu=void 0)}),function(){let W=!1;try{let at=Object.defineProperty({},"passive",{get:function(){W=!0}});window.addEventListener("testPassive",null,at),window.removeEventListener("testPassive",null,at)}catch(at){}}();var M,X=Object.freeze({__proto__:null,SET_QUALITY:"quality:set",TRACKS:"quality:tracks",SWITCH:"quality:update",QUALITIES:"qualities"});let b=((M=class W{constructor(at){((Et,q,I)=>{window.customElements.get(q)||window.customElements.define(q,I),Et.customElements.get(q)||Et.customElements.set(q,q)})(at,"flowplayer-quality-menu",_)}init(at,Et,q){if(at.qsel===!1)return;let I=o(q,"flowplayer-quality-menu");I instanceof _&&I.setMenuAttrs({summaryTitle:"HD",menuTitle:q.i18n("qsel.menu_title"),class:"fp-qsel",options_event:M.events.TRACKS,item_selected_event:M.events.SWITCH}),q.on("mount",function(){var B;(B=function(F,j){let tt=F._customElements.get(j);return tt&&F.root.querySelector(tt)||void 0}(q,q.hasState("is-tv")?"flowplayer-tv-menu":"flowplayer-control"))===null||B===void 0||B.append(I)}),q.on("qualities",(B)=>{if(!Array.isArray(B.detail))return;let F=B.detail,j=n(at,"qsel.labels",[]);L(I,M.events.TRACKS,F.flatMap((tt,ct)=>typeof j[ct]!="boolean"||j[ct]?{text:P(tt,j[ct]),onclick:H.bind(0,q,tt)}:[])),I instanceof _&&I.toggle_visibility(F.length<2)})}}).pluginName="qsel",M.events=X,M);function H(W,at){W.emit("quality:set",at)}function P(W,at){return at||(W.height?`${W.height}p${W.height>719?" HD":""}`:W.width?`${W.width}p${W.height>1279?" HD":""}`:("name"in W)&&W.name?W.name:"0p")}return function(W,at){if(typeof jo=="object"&&typeof zo!="undefined")return at;if(document.currentScript===null)return at;"flowplayer"in W||(W.flowplayer={extensions:[]});let Et=W.flowplayer;return typeof Et=="function"?(Et(at),at):(Array.isArray(Et.extensions)||(Et.extensions=[]),~Et.extensions.indexOf(at)||Et.extensions.push(at),at)}(window,b)})});var Pd=Ce((qo,Xo)=>{(function(n,o){typeof qo=="object"&&typeof Xo!="undefined"?Xo.exports=o():typeof define=="function"&&define.amd?define(o):((n=typeof globalThis!="undefined"?globalThis:n||self).flowplayer=n.flowplayer||{},n.flowplayer.share=o())})(qo,function(){let n={name:"fp-facebook"},o={name:"fp-link"},h={name:"fp-share"},v={name:"fp-embed"},E={name:"fp-twitter"};function _(nt,dt,bt){let Bt=function(Kt){return Array.isArray(Kt)?Kt.slice(0):Kt.split(".")}(dt);for(;Bt.length;){if(nt==null)return bt;let Kt=Bt.shift();if(typeof Kt!="string")return bt;nt=nt[Kt]}return nt==null?bt:nt}function R(){try{return(document.querySelector("meta[name='description']")||{content:""}).content}catch(nt){return""}}function A(nt){if(typeof nt.link=="string")return nt.link;let dt=document.querySelector("link[rel=canonical]");return dt?dt.href:window.location.toString()}class L extends HTMLElement{constructor(nt){super(),this.player=nt}}class M extends L{constructor(nt,dt){super(nt),this.classList.add("fp-icon",dt.name),dt.title&&this.setAttribute("title",dt.title),dt.title&&this.setAttribute("aria-label",dt.title),dt.translation_key&&this.setAttribute("aria-label",nt.i18n(dt.translation_key)),this.setAttribute("tabindex","0"),this.setAttribute("focusable","true")}}let X=(nt,dt)=>new(((bt,Bt)=>{let Kt=bt.get(Bt);if(!Kt)throw new Error(`no flowplayer component with the name ${Bt} exists`);let ce=window.customElements.get(Bt);if(!ce)throw new Error(`no default flowplayer component with the name ${Bt} exists`);let jt=window.customElements.get(Kt);return typeof jt!="function"?ce:jt})(nt._customElements,dt))(nt),b=(nt,dt,bt)=>{window.customElements.get(dt)||window.customElements.define(dt,bt),nt.customElements.get(dt)||nt.customElements.set(dt,dt)},H="fp-on",P="fp-invis";class W extends L{constructor(nt){super(nt),this.player=nt,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=Et(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener("click",(dt)=>{if(dt.defaultPrevented)return;dt.preventDefault();let bt=this.menuContainer.open;bt||(at(),document.active_menu=this.menuContainer),this.menuContainer.open=!bt,nt.root.classList.toggle("has-menu-opened",!bt),this.summaryEle.setAttribute("aria-expanded",bt?"false":"true")}),this.addEventListener("focusin",(dt)=>{let bt=dt.target;bt instanceof HTMLLIElement&&bt.setAttribute("aria-selected","true")}),this.addEventListener("focusout",(dt)=>{let bt=dt.target;bt instanceof HTMLLIElement&&bt.setAttribute("aria-selected","false")}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(nt){if(this.className=nt.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=nt.id||Et()),this.summaryEle.setAttribute("aria-label",nt.menuTitle||"Menu"),nt.summaryTitle&&(this.summaryEle.textContent=nt.summaryTitle),nt.summaryIcon){let dt=X(this.player,nt.summaryIcon);dt.setAttribute("tabindex",""),this.summaryEle.append(dt)}nt.menuTitle&&(this.menuTitle.textContent=nt.menuTitle),this.menu.classList.toggle("fp-icons",!!nt.icons),this.addEventListener(nt.options_event,(dt)=>{this.render(dt.data)}),nt.item_selected_event&&this.addEventListener(nt.item_selected_event,(dt)=>{dt.data!==void 0&&this.select_item(dt.data.selected_index)})}render(nt){this.olEle&&(this.olEle.innerHTML="",nt&&nt.forEach(this.menuOption,this),this.toggle_visibility(!(nt==null?void 0:nt.length)))}menuOption(nt,dt){let bt=document.createElement("li");bt.setAttribute("role","menuitem"),bt.setAttribute("aria-selected","false"),bt.setAttribute("tabindex","0"),nt.icon&&bt.append(nt.icon);let Bt=document.createElement("span");Bt.textContent=nt.text,bt.append(Bt),bt.addEventListener("click",()=>{this.select_item(dt),typeof nt.onclick=="function"&&nt.onclick()}),this.olEle.appendChild(bt),nt.selected&&this.select_item(dt)}select_item(nt){this.options.forEach((dt,bt)=>{dt.classList.toggle(H,bt===nt)})}unselect_item(){this.options.forEach((nt)=>{nt.classList.remove(H)})}toggle_visibility(nt){this.classList.toggle(P,nt),this.menu.style.setProperty("display",nt?"none":"flex")}}function at(){Array.from(document.querySelectorAll(".fp-engine")).forEach((nt)=>{var dt;let bt=nt.root.querySelector("details[open].fp-menu-container");bt&&(bt.open=!1,(dt=bt.querySelector("summary"))===null||dt===void 0||dt.removeAttribute("aria-expanded"),nt.root.classList.toggle("has-menu-opened",!1))})}function Et(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function q(nt,dt,bt){let Bt=function(Kt,ce){let jt=new CustomEvent(Kt,{detail:ce,cancelable:!0});return ce&&Object.defineProperty(jt,"data",{get:()=>ce}),jt}(dt,bt);return nt.dispatchEvent(Bt),nt}function I(nt,dt){let bt=nt._customElements.get(dt);return bt&&nt.root.querySelector(bt)||void 0}document.addEventListener("click",function(nt){this.active_menu&&!nt.composedPath().includes(this.active_menu)&&(at(),this.active_menu=void 0)}),function(){let nt=!1;try{let dt=Object.defineProperty({},"passive",{get:function(){nt=!0}});window.addEventListener("testPassive",null,dt),window.removeEventListener("testPassive",null,dt)}catch(dt){}}();let B="flowplayer-share-menu";var F;let j=((F=class nt{constructor(dt){this.umd=dt,this.share_options=[],b(dt,B,W),b(this.umd,"flowplayer-facebook-icon",class extends M{constructor(bt){super(bt,n)}}),b(this.umd,"flowplayer-twitter-icon",class extends M{constructor(bt){super(bt,E)}}),b(this.umd,"flowplayer-link-icon",class extends M{constructor(bt){super(bt,o)}}),b(this.umd,"flowplayer-embed-icon",class extends M{constructor(bt){super(bt,v)}}),b(this.umd,"flowplayer-share-icon",class extends M{constructor(bt){super(bt,h)}})}init(dt,bt,Bt){let Kt=X(Bt,B);Kt instanceof W&&Kt.setMenuAttrs({menuTitle:Bt.i18n("share.menu_title"),class:"fp-share-menu fp-togglable",summaryIcon:"flowplayer-share-icon",icons:!0,options_event:F.events.OPTIONS});let ce={prev_config:0,webshare_listener:0};Bt.on("mount",function(){var jt;(jt=I(Bt,"flowplayer-header-left-zone"))===null||jt===void 0||jt.append(Kt),Kt instanceof W&&Kt.menuContainer.addEventListener("toggle",function(){bt.classList.toggle("is-share-menu",this.open);let K=I(Bt,"flowplayer-control");this.open&&(bt.classList.contains("is-small")?Bt.pause():K&&function(it,pt){if(!pt)return;it.menu.style.maxHeight=pt.getBoundingClientRect().top+parseFloat(window.getComputedStyle(pt).getPropertyValue("padding"))-it.menuContainer.getBoundingClientRect().bottom+"px"}(Kt,K))})}),Bt.on("config",(jt)=>{let K=_(jt,"data.share",{});if(K===!1)return Kt instanceof W&&void Kt.classList.remove("webshare-enabled");if(ce.prev_config===K)return;if(ce.prev_config=K,Kt instanceof W&&function(){try{return window.location.protocol==="https:"&&typeof navigator.share=="function"}catch(pt){return!1}}()&&_(K,"web_share",!0))return function(pt){pt.classList.add("webshare-enabled")}(Kt),ce.webshare_listener||function(pt,gt,Lt){Lt.webshare_listener=!0,gt.addEventListener("click",function(){if(!gt.classList.contains("webshare-enabled"))return;gt.menuContainer.open=!1,navigator.share({title:_(pt,"share.title",document.title),text:_(pt,"share.text",R()),url:A(_(pt,"share",{}))}).catch(function(){})})}(dt,Kt,ce);this.share_options=[];let it=typeof K.link=="string"?K.link:window.location.toString();if(K.iframe){let pt=typeof K.iframe=="string"?K.iframe:it;this.share_options.push(tt(Bt,Kt,"share.embed",lt.bind(null,pt,Bt),X(Bt,"flowplayer-embed-icon")))}K.link&&this.share_options.push(tt(Bt,Kt,"share.link",St.bind(null,it),X(Bt,"flowplayer-link-icon"))),K.facebook&&this.share_options.push(tt(Bt,Kt,"Facebook",Pt.bind(null,it),X(Bt,"flowplayer-facebook-icon"))),K.twitter&&this.share_options.push(tt(Bt,Kt,"Twitter",$t.bind(null,it),X(Bt,"flowplayer-twitter-icon"))),q(Kt,F.events.OPTIONS,this.share_options)})}add_options(dt,...bt){let Bt=dt.root.querySelector(B);Bt&&bt.forEach((Kt)=>{let ce=tt(dt,Bt,Kt.text,Kt.onclick,Kt.icon);Bt.menuOption(ce,Bt.options.length)})}}).pluginName="share",F.events={OPTIONS:"share:options"},F);function tt(nt,dt,bt,Bt,Kt){return{text:ct(nt,bt),icon:Kt,onclick:st.bind(null,nt,dt,Bt)}}function ct(nt,dt){return dt.indexOf("share.")===0?nt.i18n(dt):dt}function st(nt,dt,bt){dt instanceof W&&dt.unselect_item();let Bt=bt();Bt.success&&Bt.message&&nt.message&&nt.emit(nt.message.events.SHOW_MESSAGE,{message:Bt.message})}function lt(nt,dt){let bt=dt.videoHeight/dt.videoWidth;return St('<div style="position:relative;width:100%;display:inline-block;"><iframe src="__IFRAME_SRC__" allowfullscreen style="border:none;position:absolute;top:0;left:0;width:100%;height:100%;"></iframe><div style="padding-top: __RATIO__%;"></div></div>'.replace("__IFRAME_SRC__",encodeURI(nt)).replace("__RATIO__",""+100*bt))}function St(nt){let dt=document.createElement("textarea");dt.setAttribute("style","position:absolute;opacity:0"),dt.value=nt;let bt=document.body;bt.append(dt),dt.select();let Bt=document.execCommand("copy");return bt.removeChild(dt),{success:Bt,message:Bt?"<trans share.clipboard_success trans>":"<trans share.clipboard_failure trans>"}}function Pt(nt){return zt("https://www.facebook.com/sharer.php?u="+encodeURIComponent(nt)),{success:!0}}function $t(nt){return zt("https://twitter.com/intent/tweet?url="+encodeURIComponent(nt)),{success:!0}}function zt(nt){let dt,bt=screen.height,Bt=screen.width,Kt=Math.round(Bt/2-275);dt=0,bt>420&&(dt=Math.round(bt/2-210)),window.open(nt,"sharer","scrollbars=yes,resizable=yes,toolbar=no,location=yes,width=550,height=420,left="+Kt+",top="+dt)}return function(nt,dt){if(typeof qo=="object"&&typeof Xo!="undefined")return dt;if(document.currentScript===null)return dt;"flowplayer"in nt||(nt.flowplayer={extensions:[]});let bt=nt.flowplayer;return typeof bt=="function"?(bt(dt),dt):(Array.isArray(bt.extensions)||(bt.extensions=[]),~bt.extensions.indexOf(dt)||bt.extensions.push(dt),dt)}(window,j)})});var xd=Ce((Jo,Qo)=>{(function(n,o){typeof Jo=="object"&&typeof Qo!="undefined"?Qo.exports=o():typeof define=="function"&&define.amd?define(o):((n=typeof globalThis!="undefined"?globalThis:n||self).flowplayer=n.flowplayer||{},n.flowplayer.subtitles=o())})(Jo,function(){function n(K,it,pt){let gt=function(Lt){return Array.isArray(Lt)?Lt.slice(0):Lt.split(".")}(it);for(;gt.length;){if(K==null)return pt;let Lt=gt.shift();if(typeof Lt!="string")return pt;K=K[Lt]}return K==null?pt:K}function o(K,it){K.innerHTML="",it.forEach(function(pt){let gt=document.createElement("pre");gt.classList.add("fp-cue"),function(Lt,ve){let ue=Lt.style,Je=ve.size;ue.setProperty("--caption-size",Je.toString());let xe=ve.position;xe&&xe!=="auto"&&ve?ue.setProperty("--caption-position",xe.toString()):ue.removeProperty("--caption-position");let ke="captions-align-"+ve.align;Array.from(Lt.classList).forEach(function(ne){ne!=ke&&(ne=="captions-vertical"&&ve.vertical||ne.startsWith("captions")&&Lt.classList.remove(ne))}),Lt.classList.add(ke),Lt.classList.toggle("captions-vertical",!!ve.vertical)}(K,pt),gt.appendChild(pt.getCueAsHTML()),K.appendChild(gt)})}function h(){}let v="is-source-processing",E=(K,it)=>new(((pt,gt)=>{let Lt=pt.get(gt);if(!Lt)throw new Error(`no flowplayer component with the name ${gt} exists`);let ve=window.customElements.get(gt);if(!ve)throw new Error(`no default flowplayer component with the name ${gt} exists`);let ue=window.customElements.get(Lt);return typeof ue!="function"?ve:ue})(K._customElements,it))(K),_=(K,it,pt)=>{window.customElements.get(it)||window.customElements.define(it,pt),K.customElements.get(it)||K.customElements.set(it,it)};function R(K,it,pt){let gt=function(Lt,ve){let ue=new CustomEvent(Lt,{detail:ve,cancelable:!0});return ve&&Object.defineProperty(ue,"data",{get:()=>ve}),ue}(it,pt);return K.dispatchEvent(gt),K}function A(K,it){let pt=K._customElements.get(it);return pt&&K.root.querySelector(pt)||void 0}(function(){let K=!1;try{let it=Object.defineProperty({},"passive",{get:function(){K=!0}});window.addEventListener("testPassive",null,it),window.removeEventListener("testPassive",null,it)}catch(it){}})();class L extends HTMLElement{constructor(K){super(),this.player=K}}let M="fp-on",X="fp-invis";class b extends L{constructor(K){super(K),this.player=K,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=P(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener("click",(it)=>{if(it.defaultPrevented)return;it.preventDefault();let pt=this.menuContainer.open;pt||(H(),document.active_menu=this.menuContainer),this.menuContainer.open=!pt,K.root.classList.toggle("has-menu-opened",!pt),this.summaryEle.setAttribute("aria-expanded",pt?"false":"true")}),this.addEventListener("focusin",(it)=>{let pt=it.target;pt instanceof HTMLLIElement&&pt.setAttribute("aria-selected","true")}),this.addEventListener("focusout",(it)=>{let pt=it.target;pt instanceof HTMLLIElement&&pt.setAttribute("aria-selected","false")}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(K){if(this.className=K.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=K.id||P()),this.summaryEle.setAttribute("aria-label",K.menuTitle||"Menu"),K.summaryTitle&&(this.summaryEle.textContent=K.summaryTitle),K.summaryIcon){let it=E(this.player,K.summaryIcon);it.setAttribute("tabindex",""),this.summaryEle.append(it)}K.menuTitle&&(this.menuTitle.textContent=K.menuTitle),this.menu.classList.toggle("fp-icons",!!K.icons),this.addEventListener(K.options_event,(it)=>{this.render(it.data)}),K.item_selected_event&&this.addEventListener(K.item_selected_event,(it)=>{it.data!==void 0&&this.select_item(it.data.selected_index)})}render(K){this.olEle&&(this.olEle.innerHTML="",K&&K.forEach(this.menuOption,this),this.toggle_visibility(!(K==null?void 0:K.length)))}menuOption(K,it){let pt=document.createElement("li");pt.setAttribute("role","menuitem"),pt.setAttribute("aria-selected","false"),pt.setAttribute("tabindex","0"),K.icon&&pt.append(K.icon);let gt=document.createElement("span");gt.textContent=K.text,pt.append(gt),pt.addEventListener("click",()=>{this.select_item(it),typeof K.onclick=="function"&&K.onclick()}),this.olEle.appendChild(pt),K.selected&&this.select_item(it)}select_item(K){this.options.forEach((it,pt)=>{it.classList.toggle(M,pt===K)})}unselect_item(){this.options.forEach((K)=>{K.classList.remove(M)})}toggle_visibility(K){this.classList.toggle(X,K),this.menu.style.setProperty("display",K?"none":"flex")}}function H(){Array.from(document.querySelectorAll(".fp-engine")).forEach((K)=>{var it;let pt=K.root.querySelector("details[open].fp-menu-container");pt&&(pt.open=!1,(it=pt.querySelector("summary"))===null||it===void 0||it.removeAttribute("aria-expanded"),K.root.classList.toggle("has-menu-opened",!1))})}function P(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}document.addEventListener("click",function(K){this.active_menu&&!K.composedPath().includes(this.active_menu)&&(H(),this.active_menu=void 0)});let W=["255, 255, 255","255, 255, 0","0, 255, 0","0, 255, 255","0, 0, 255","255, 0, 255","255, 0, 0","0, 0, 0"],at=[0.25,0.5,0.75,1,1.25,1.5,1.75,2,3,4],Et=["White","Yellow","Green","Cyan","Blue","Magenta","Red","Black"],q=["Monospaced Serif","Proportional Serif","Monospaced Sans-Serif","Proportional Sans-Serif","Casual","Cursive"],I=["Courier New, monospace","serif","Andale Mono, Lucida Console, monospace","sans-serif","Comic Sans MS, Impact, fantasy","Monotype Corsiva, cursive"],B=["None","Drop shadow","Raised","Depressed","Outline"],F=["","rgb(34, 34, 34) 2px 2px 3px, rgb(34, 34, 34) 2px 2px 4px, rgb(34, 34, 34) 2px 2px 5px","rgb(34, 34, 34) 1px 1px, rgb(34, 34, 34) 2px 2px, rgb(34, 34, 34) 3px 3px","rgb(204, 204, 204) 1px 1px, rgb(204, 204, 204) 0px 1px, rgb(34, 34, 34) -1px -1px, rgb(34, 34, 34) 0px -1px","rgb(34, 34, 34) 0px 0px 1px, rgb(34, 34, 34) 0px 0px 1px, rgb(34, 34, 34) 0px 0px 1px, rgb(34, 34, 34) 0px 0px 1px, rgb(34, 34, 34) 0px 0px 1px"];class j{constructor(K,it,pt,gt,Lt){this.player=K,this.labels=it,this.values=pt,this.css_variable=gt,this.default_value=Lt,this.selected=K._storage.getItem(gt)||Lt}set selected(K){document.documentElement.style.setProperty(this.css_variable,K),this.player._storage.setItem(this.css_variable,K)}get selected(){return document.documentElement.style.getPropertyValue(this.css_variable)}}var tt;(function(K){K[K.main=0]="main",K[K.tracks=1]="tracks",K[K.style=2]="style",K[K.styleOpt=3]="styleOpt"})(tt||(tt={}));class ct extends b{constructor(K){if(super(K),this.state=tt.main,this.selectedTrackIdx=-1,this.isTV=!1,this.styleOpts=function(gt){return{[gt.i18n("cc.properties.fontSize","Font size")]:new j(gt,at.map((Lt)=>100*Lt+"%"),at.map((Lt)=>100*Lt+"%"),"--fp-sub-font-size","100%"),[gt.i18n("cc.properties.fontFamily","Font family")]:new j(gt,q.map((Lt)=>gt.i18n("cc.fontFamily."+Lt,Lt)),I,"--fp-sub-font-family","sans-serif"),[gt.i18n("cc.properties.fontColor","Font color")]:new j(gt,Et.map((Lt)=>gt.i18n("cc.colors."+Lt,Lt)),W,"--fp-sub-font-color",W[0]),[gt.i18n("cc.properties.fontOpacity","Font opacity")]:new j(gt,at.flatMap((Lt)=>Lt>1?[]:100*Lt+"%"),at.flatMap((Lt)=>Lt>1?[]:Lt+""),"--fp-sub-font-opacity","1"),[gt.i18n("cc.properties.backgroundColor","Background color")]:new j(gt,Et.map((Lt)=>gt.i18n("cc.colors."+Lt,Lt)),W,"--fp-sub-background-color",W[7]),[gt.i18n("cc.properties.backgroundOpacity","Background opacity")]:new j(gt,at.flatMap((Lt)=>Lt>1?[]:100*Lt+"%"),at.flatMap((Lt)=>Lt>1?[]:Lt+""),"--fp-sub-background-opacity","0.5"),[gt.i18n("cc.properties.characterEdgeStyle","Character edge style")]:new j(gt,B.map((Lt)=>gt.i18n("cc.edgeStyle."+Lt,Lt)),F,"--fp-sub-edge-style","")}}(K),K.on("mount",()=>{setTimeout(()=>this.isTV=K.hasState("is-tv"),0),this.classList.toggle("subs-native",!!K.opt("subtitles.native"))}),K.on(jt.events.TRACK_UPDATED,(gt)=>this.summaryEle.classList.toggle("fp-color-text",!!gt.detail)),K.opt("subtitles.native"))return;let it=E(this.player,"flowplayer-menu-back");it.setAttribute("aria-label","Back to previous menu"),this.menuHeader.prepend(it),it.addEventListener("click",()=>this.navigateBack());let pt=E(this.player,"flowplayer-subs-menu-icon");pt.setAttribute("aria-label","Open style menu"),pt.addEventListener("click",()=>this.createMenu(tt.style)),this.menuHeader.insertBefore(pt,this.menuTitle),this.summaryEle.addEventListener("click",()=>{this.menuContainer.open||this.createMenu(tt.main)}),this.menu.addEventListener("click",(gt)=>{(gt.target===pt||gt.target===it||this.state!==tt.main&>.target!==this.closeEle)&>.preventDefault()}),this.addEventListener(jt.events.TRACKS,(gt)=>{var Lt;this.tracks=gt.detail,this.selectedTrackIdx=-1,this.toggle_visibility(!((Lt=this==null?void 0:this.tracks)===null||Lt===void 0?void 0:Lt.length)),this.state===(this.isTV?tt.tracks:tt.main)&&this.createMenu(this.isTV?tt.tracks:tt.main)}),this.addEventListener(jt.events.SWITCH,(gt)=>{this.selectedTrackIdx=gt.detail.selected_index,this.state===(this.isTV?tt.tracks:tt.main)&&this.select_item(this.selectedTrackIdx)}),this.player.addEventListener("tv-menu:will-open",()=>{var gt;((gt=this.tracks)===null||gt===void 0?void 0:gt.length)&&this.createMenu(tt.main)}),this.player.on(["tv-menu:will-close","keyboard:close:menus"],(gt)=>{var Lt;this.state!==tt.main&&((Lt=document.activeElement)===null||Lt===void 0?void 0:Lt.closest(".fp-menu"))===this.menu&&(this.navigateBack(),gt.preventDefault())})}navigateBack(){switch(this.state){case tt.style:case tt.tracks:return this.createMenu(tt.main);case tt.styleOpt:return this.createMenu(tt.style)}}getMenuTitle(){switch(this.state){case tt.main:return this.player.i18n("cc.menu_title","Subtitles");case tt.tracks:return this.player.i18n("cc.tracks","Tracks");case tt.style:return this.player.i18n("cc.options","Options");default:return""}}createMenuOpts(K){switch(this.state){case tt.main:return this.isTV?this.createTvMainMenuOpts():this.createTracksMenuOpts();case tt.tracks:return this.createTracksMenuOpts();case tt.style:return this.createStyleMenuOpts();case tt.styleOpt:return K?this.createStylePropertyMenuOpts(this.styleOpts[K]):[]}}createMenu(K,it){var pt;this.state=K,this.menu.classList.toggle("fp-submenu",K>0),this.menuTitle.textContent=it||this.getMenuTitle(),this.render(this.createMenuOpts(it)),(pt=this.menu.querySelector("li"))===null||pt===void 0||pt.focus()}createTvMainMenuOpts(){return[{text:this.player.i18n("cc.tracks","Tracks"),onclick:this.createMenu.bind(this,tt.tracks)},{text:this.player.i18n("cc.options","Options"),onclick:this.createMenu.bind(this,tt.style)}]}createTracksMenuOpts(){return Array.isArray(this==null?void 0:this.tracks)?this.tracks.map((K,it)=>({text:K.text,onclick:()=>{K.onclick(),this.selectedTrackIdx=this.selectedTrackIdx===it?-1:it},selected:this.selectedTrackIdx===it})):[]}createStyleMenuOpts(){let K=Object.keys(this.styleOpts).map((it)=>({text:it,onclick:this.createMenu.bind(this,tt.styleOpt,it)}));return K.push({text:this.player.i18n("cc.reset","Reset"),onclick:()=>Object.values(this.styleOpts).forEach((it)=>it.selected=it.default_value)}),K}createStylePropertyMenuOpts(K){return K.labels.map((it,pt)=>({text:it,onclick:()=>{K.selected=K.values[pt]},selected:pt===K.values.indexOf(K.selected)}))}select_item(K){if(this.state!==tt.style)return this.state===tt.styleOpt?super.select_item(K):void this.options.forEach((it,pt)=>{it.classList.toggle(M,pt===K&&!it.classList.contains(M))})}}class st extends L{constructor(K,it){super(K),this.classList.add("fp-icon",it.name),it.title&&this.setAttribute("title",it.title),it.title&&this.setAttribute("aria-label",it.title),it.translation_key&&this.setAttribute("aria-label",K.i18n(it.translation_key)),this.setAttribute("tabindex","0"),this.setAttribute("focusable","true")}}function lt(K){return!document.fullscreenEnabled&&typeof K.webkitEnterFullScreen=="function"&&typeof K.webkitExitFullScreen=="function"}let St="subs:tracks",Pt="subs:change";var $t,zt=Object.freeze({__proto__:null,TRACK_UPDATED:"tracks:text:updated",TRACKS:St,SWITCH:Pt,CUES_PARSED:"cues:parsed",TEXT_TRACKS:"tracks:text:all"});function nt(K,it){if(function(pt){return Object.values($t).includes(pt)}(it=it||$t.Anonymous))return K instanceof HTMLVideoElement&&(K.poster="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),"crossOrigin"in K?K.crossOrigin=it:K.setAttribute("crossorigin",it),K}function dt(K){let it=document.createElement("a");return it.href=K,it.origin}function bt(K,it){let pt=document.createElement("track");pt.className="fp-track renderable",pt.kind=it.kind||"captions",pt.label=it.label||it.lang||"",pt.lang=it.lang||"",pt.id=["fp",it.lang].join("-");let gt=pt.track;return gt.removeCue=h,typeof it.crossorigin!="string"&&function(Lt,ve){try{return Lt.src.startsWith("blob:"),dt(Lt.src)!==dt(ve)}catch(ue){return console.error(ue),!0}}(K,it.src)&&(nt(K),it.crossorigin=K.getAttribute("crossorigin")),"crossorigin"in it&&nt(K,it.crossorigin),Object.keys(it).forEach((Lt)=>{Lt!=="default"&&(pt[Lt]=it[Lt])}),gt.mode=it.default?"hidden":"disabled",K.appendChild(pt),pt}(function(K){K.Anonymous="anonymous",K.UseCredentials="use-credentials",K.Empty=""})($t||($t={}));let Bt={translation_key:"cc.menu_title",name:"fp-subtitles-menu"},Kt={name:"fp-menu-back"};var ce;let jt=((ce=class K{constructor(it){_(it,"flowplayer-subtitles-menu",ct),_(it,"flowplayer-subs-menu-icon",class extends st{constructor(pt){super(pt,Bt)}}),_(it,"flowplayer-menu-back",class extends st{constructor(pt){super(pt,Kt)}})}init(it,pt,gt){var Lt,ve;let ue=E(gt,"flowplayer-subtitles-menu");ue instanceof ct&&ue.setMenuAttrs({class:"fp-cc",summaryTitle:gt.i18n("cc.button","CC"),menuTitle:gt.i18n("cc.menu_title","Subtitles"),options_event:((Lt=it.subtitles)===null||Lt===void 0?void 0:Lt.native)?St:void 0,item_selected_event:((ve=it.subtitles)===null||ve===void 0?void 0:ve.native)?Pt:void 0});let Je=function(xt){let Nt=document.createElement("div");return Nt.classList.add("fp-captions"),Nt.ontouchend=(_t)=>xt.emit(_t.type),Nt.onclick=(_t)=>xt.emit(_t.type),Nt}(gt),xe,ke=[],ne=[];function Ve(){return Array.from(gt.textTracks).filter((xt)=>~["captions","subtitles","descriptions"].indexOf(xt.kind)&&!xt.removed&&xt.label)}function Qe(){return Ve().find((xt)=>xt.is_active)}function ui(xt){Array.from(xt.querySelectorAll("track")).forEach((Nt)=>{["captions","subtitles","descriptions"].includes(Nt.kind)&&xt.removeChild(Nt)})}function Ke(xt,Nt,_t){R(Nt,St,_t.map(function(se){return{text:se.label,onclick:Ci.bind(0,xt,se)}}));let Xt=Qe();return Xt?Ve().find((se)=>se===Xt)?void R(Nt,Pt,{selected_index:_t.indexOf(Xt)}):We():xt.emit("tracks:text:updated")}function Ci(xt,Nt){var _t,Xt;if(Nt==Qe())return We();We(),Nt.is_hls_embedded&&typeof Nt.track_id=="number"&&xt.hls&&(xt.hls.subtitleTrack=Nt.track_id),Nt.mode=((_t=xt.opts.subtitles)===null||_t===void 0?void 0:_t.native)?"showing":"hidden",Nt.is_active=!0,xt.emit("tracks:text:updated",Nt),((Xt=xt.opts.subtitles)===null||Xt===void 0?void 0:Xt.native)||xt.emit("cuechange",{track:Nt})}function We(){let xt=Qe();xt&&(gt.emit("tracks:text:updated"),xt.mode="disabled",xt.is_active=!1,o(Je,[]))}(function(xt){if(!lt(xt))return;xt.on("webkitbeginfullscreen",()=>{let Nt=Qe();Nt&&(Nt.mode="showing")}),xt.on("webkitendfullscreen",()=>{var Nt;let _t=Ve().find((Xt)=>Xt.mode==="showing");_t&&!((Nt=xt.opts.subtitles)===null||Nt===void 0?void 0:Nt.native)&&(_t.mode="hidden"),_t!==Qe()&&(_t?Ci(xt,_t):We(),R(ue,Pt,{selected_index:_t?ne.indexOf(_t):-1}))})})(gt),gt.on("mount",function(){var xt,Nt;let _t=A(gt,"flowplayer-control");if(!_t)return(xt=A(gt,"flowplayer-ui"))===null||xt===void 0?void 0:xt.appendChild(Je);_t.insertAdjacentElement("beforebegin",Je),(Nt=gt.hasState("is-tv")?A(gt,"flowplayer-tv-menu"):_t)===null||Nt===void 0||Nt.append(ue)}),gt.on("config",function(xt){var Nt,_t;let Xt=(_t=(Nt=xt.data)===null||Nt===void 0?void 0:Nt.subtitles)===null||_t===void 0?void 0:_t.tracks;Xt&&ke!==Xt&&(ke=Xt,ui(gt),ne=Ve(),Ke(gt,ue,ne),ke.forEach((se)=>bt(gt,se)))}),gt.on("tracks:text:all",(xt)=>{let Nt=xt.detail.tracks;Nt!==xe&&(xe=Nt,ne=ne.flatMap((_t)=>_t.is_hls_embedded?(_t.removed=!0,[]):_t),Ke(gt,ue,ne),Nt.filter((_t)=>{var Xt,se;return~["subtitles","captions"].indexOf((_t==null?void 0:_t.kind)||((se=(Xt=_t==null?void 0:_t.subtitleTrack)===null||Xt===void 0?void 0:Xt.type)===null||se===void 0?void 0:se.toLocaleLowerCase())||"")}).forEach((_t)=>{var Xt,se,di,ar,Di,Fe,or;let Ze=gt.addTextTrack(_t.kind==="captions"?"captions":"subtitles",((Xt=_t.subtitleTrack)===null||Xt===void 0?void 0:Xt.name)||_t.label,(se=_t.subtitleTrack)===null||se===void 0?void 0:se.lang);Ze.is_hls_embedded=!0,Ze.default=((di=_t.subtitleTrack)===null||di===void 0?void 0:di.default)!==void 0?(ar=_t.subtitleTrack)===null||ar===void 0?void 0:ar.default:_t.default,Ze.track_id=(Fe=(Di=_t.subtitleTrack)===null||Di===void 0?void 0:Di.id)!==null&&Fe!==void 0?Fe:_t._id,Ze.mode=Ze.default?"hidden":"disabled",Ze.removeCue=h,Ze.attr=(or=_t.subtitleTrack)===null||or===void 0?void 0:or.attrs}))}),gt.on("cues:parsed",(xt)=>{let Nt=xt.detail,_t=ne.find((Xt)=>Xt.is_hls_embedded&&!Xt.removed&&(Xt.default&&Nt.track==="default"||Xt.track_id===Nt.track||"subtitles"+Xt.track_id===Nt.track||"captions"+Xt.track_id===Nt.track));_t&&Nt.cues.forEach((Xt)=>_t.addCue(Xt))}),gt.textTracks.addEventListener("addtrack",()=>{let xt=Ve();if(ne.length===xt.length&&ne.every((_t,Xt)=>_t===xt[Xt]))return;let Nt=Qe();if(xt.map(function(_t){return~["showing","hidden"].indexOf(_t.mode)&&(Nt=_t,_t.mode="disabled",_t.is_active=!1),_t.oncuechange=function(Xt){var se;if(!(_t===Qe()||lt(gt)&>.hasState("is-fullscreen")))return _t.mode="disabled";((se=it.subtitles)===null||se===void 0?void 0:se.native)||gt.emit(Xt.type,{track:Xt.target})},_t}),R(ue,St,xt.map(function(_t){return{text:_t.label,onclick:Ci.bind(0,gt,_t)}})),ne=xt,!Nt)return We();Ci(gt,Nt),R(ue,Pt,{selected_index:ne.indexOf(Nt)})}),gt.on("cuechange",function(xt){var Nt;let _t=(Nt=xt.data)===null||Nt===void 0?void 0:Nt.track;if(!_t||!["captions","subtitles","descriptions"].includes(_t.kind))return;let Xt=Array.from(n(_t,"activeCues",[])).filter((se,di,ar)=>di===ar.findIndex((Di)=>se.id===Di.id)).sort((se,di)=>typeof se.line!="number"||typeof di.line!="number"?0:se.line-di.line);o(Je,Xt)}),gt.on(["playlist/advance","src"],(xt)=>{gt.currentSrc&&(xt.type==="src"&&["is-playlist",v].some((Nt)=>gt.root.classList.contains(Nt))||(delete gt.opts.subtitles,ui(gt),ke=[],We(),ne=[],xe=[],Ve().forEach((Nt)=>Nt.removed=!0),R(ue,St,[])))})}}).pluginName="subtitles",ce.events=zt,ce);return function(K,it){if(typeof Jo=="object"&&typeof Qo!="undefined")return it;if(document.currentScript===null)return it;"flowplayer"in K||(K.flowplayer={extensions:[]});let pt=K.flowplayer;return typeof pt=="function"?(pt(it),it):(Array.isArray(pt.extensions)||(pt.extensions=[]),~pt.extensions.indexOf(it)||pt.extensions.push(it),it)}(window,jt)})});var Fd=Ce((Zo,tl)=>{(function(n,o){typeof Zo=="object"&&typeof tl!="undefined"?tl.exports=o():typeof define=="function"&&define.amd?define(o):((n=typeof globalThis!="undefined"?globalThis:n||self).flowplayer=n.flowplayer||{},n.flowplayer.thumbnails=o())})(Zo,function(){var n;function o(B,F){if(function(j){return Object.values(n).includes(j)}(F=F||n.Anonymous))return B instanceof HTMLVideoElement&&(B.poster="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),"crossOrigin"in B?B.crossOrigin=F:B.setAttribute("crossorigin",F),B}function h(B){let F=document.createElement("a");return F.href=B,F.origin}(function(B){B.Anonymous="anonymous",B.UseCredentials="use-credentials",B.Empty=""})(n||(n={}));function v(B,F){return B.querySelector("track[id='"+F+"']")}function E(B,F){let j=document.createElement("track");return j.src=F,function(tt,ct){try{return tt.src.startsWith("blob:"),h(tt.src)!==h(ct)}catch(st){return console.error(st),!0}}(B,F)&&(o(B),o(j)),j}var _=Object.freeze({__proto__:null,THUMBNAILS_RENDER:"thumbnails:render",THUMBNAILS_HIDE:"thumbnails:hide"});function R(B,F){let j=B._customElements.get(F);return j&&B.root.querySelector(j)||void 0}let A=(B,F)=>new(((j,tt)=>{let ct=j.get(tt);if(!ct)throw new Error(`no flowplayer component with the name ${tt} exists`);let st=window.customElements.get(tt);if(!st)throw new Error(`no default flowplayer component with the name ${tt} exists`);let lt=window.customElements.get(ct);return typeof lt!="function"?st:lt})(B._customElements,F))(B);class L extends HTMLElement{constructor(B){super(),this.player=B}}class M extends L{constructor(B){super(B),this.className="fp-thumbnail-carousel",this.carousel=this.makeCarousel(),this.addEventListener("thumbnails:render",this.renderCarousel.bind(this,B)),this.addEventListener("thumbnails:hide",()=>B.root.classList.remove("with-thumbnails"))}renderCarousel(B,F){let{previous:j,current:tt,next:ct}=F.detail;B.root.classList.add("with-thumbnails"),j&&this.renderCarouselItem(this.carousel.previous,j),tt&&this.renderCarouselItem(this.carousel.current,tt),ct&&this.renderCarouselItem(this.carousel.next,ct)}makeCarousel(){return{previous:this.makeCarouselItem("previous"),current:this.makeCarouselItem("current"),next:this.makeCarouselItem("next")}}makeCarouselItem(B){let F=document.createElement("div");return F.classList.add("thumbnail",B),this.append(F),F}renderCarouselItem(B,F){let j=B.style;j.backgroundImage=`url("${F.url}")`,j.backgroundPositionX="-"+F.x+"px ",j.backgroundPositionY="-"+F.y+"px",j.height=F.h+"px",j.width=F.w+"px"}}function X(B){let F=document.createElement("a");return F.href=B,F}let b=/#xywh=(\d+),(\d+),(\d+),(\d+)$/,H=/^(https:|https:|\/)/;function P(B,F){let j=X(B.src),tt=X(F),[ct,st,lt,St,Pt]=(tt.hash.match(b)||[]).map(($t)=>parseInt($t,10));return{x:st,y:lt,w:St,h:Pt,url:W(F,j)}}function W(B,F){if(B.match(H))return B;try{return new URL(B,F.href).toString()}catch(j){return""}}let at="is-source-processing";function Et(B,F,j){let tt=function(ct,st){let lt=new CustomEvent(ct,{detail:st,cancelable:!0});return st&&Object.defineProperty(lt,"data",{get:()=>st}),lt}(F,j);return B.dispatchEvent(tt),B}var q;(function(){let B=!1;try{let F=Object.defineProperty({},"passive",{get:function(){B=!0}});window.addEventListener("testPassive",null,F),window.removeEventListener("testPassive",null,F)}catch(F){}})();let I=((q=class B{static activeThumbnails(F,j){var tt,ct;let st=v(F,"thumbnails");if(!st)return;let lt=Array.from(st.track.cues||{length:0}),St=lt.find(($t)=>$t.startTime<=j&&j<=$t.endTime);if(!St)return{};let Pt=lt.indexOf(St);return{previous:P(st,((tt=lt[Pt-1])===null||tt===void 0?void 0:tt.text)||""),current:P(st,(St==null?void 0:St.text)||""),next:P(st,((ct=lt[Pt+1])===null||ct===void 0?void 0:ct.text)||"")}}constructor(F){((j,tt,ct)=>{window.customElements.get(tt)||window.customElements.define(tt,ct),j.customElements.get(tt)||j.customElements.set(tt,tt)})(F,"flowplayer-thumbnails-carousel",M)}init(F,j,tt){let ct=R(tt,"flowplayer-ui"),st=A(tt,"flowplayer-thumbnails-carousel"),lt=R(tt,"flowplayer-control");tt.reaper&&ct&<&&(ct.insertBefore(st,lt),tt.once("mount",()=>{this.attachTimelineListeners(tt,st)}),tt.textTracks.addEventListener("addtrack",function(St){let Pt=St.track;(Pt==null?void 0:Pt.id)==="thumbnails"&&(Pt.mode="hidden")}),tt.on("config",function(){var St;let Pt=(St=F==null?void 0:F.thumbnails)===null||St===void 0?void 0:St.src;if(typeof Pt=="string")return function($t,zt){if(function(dt,bt){return dt.querySelector("track[src='"+bt+"']")}($t,zt))return;let nt=E($t,zt);return nt.kind="metadata",nt.id="thumbnails",nt.src=zt,$t.append(nt),nt}(tt,Pt)}),tt.on(["playlist/advance","src"],(St)=>{tt.currentSrc&&(St.type==="src"&&["is-playlist",at].some((Pt)=>tt.root.classList.contains(Pt))||(delete F.thumbnails,function(Pt){let $t=v(Pt,"thumbnails");$t&&$t.remove()}(tt)))}))}attachTimelineListeners(F,j){F.on("timeline/gesture/move",({data:tt})=>{let ct=tt==null?void 0:tt.percent;if(typeof ct!="number")return;if(!Number.isFinite(F.duration))return;let st=Math.max(0,Math.min(F.duration,F.duration*(ct/100))),lt=q.activeThumbnails(F,st);lt&&requestAnimationFrame(()=>Et(j,"thumbnails:render",Object.assign(Object.assign({},lt),{timestamp:st})))}),F.on("timeline/gesture/end",()=>{F.root.classList.contains("with-thumbnails")&&Et(j,"thumbnails:hide")})}}).pluginName="thumbnails",q.events=_,q);return function(B,F){if(typeof Zo=="object"&&typeof tl!="undefined")return F;if(document.currentScript===null)return F;"flowplayer"in B||(B.flowplayer={extensions:[]});let j=B.flowplayer;return typeof j=="function"?(j(F),F):(Array.isArray(j.extensions)||(j.extensions=[]),~j.extensions.indexOf(F)||j.extensions.push(F),F)}(window,I)})});var Ud=Ce((el,il)=>{(function(n,o){typeof el=="object"&&typeof il!="undefined"?il.exports=o():typeof define=="function"&&define.amd?define(o):((n=typeof globalThis!="undefined"?globalThis:n||self).flowplayer=n.flowplayer||{},n.flowplayer.vtsel=o())})(el,function(){let n=(q,I)=>new(((B,F)=>{let j=B.get(F);if(!j)throw new Error(`no flowplayer component with the name ${F} exists`);let tt=window.customElements.get(F);if(!tt)throw new Error(`no default flowplayer component with the name ${F} exists`);let ct=window.customElements.get(j);return typeof ct!="function"?tt:ct})(q._customElements,I))(q);class o extends HTMLElement{constructor(q){super(),this.player=q}}let h="fp-on",v="fp-invis";class E extends o{constructor(q){super(q),this.player=q,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=R(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener("click",(I)=>{if(I.defaultPrevented)return;I.preventDefault();let B=this.menuContainer.open;B||(_(),document.active_menu=this.menuContainer),this.menuContainer.open=!B,q.root.classList.toggle("has-menu-opened",!B),this.summaryEle.setAttribute("aria-expanded",B?"false":"true")}),this.addEventListener("focusin",(I)=>{let B=I.target;B instanceof HTMLLIElement&&B.setAttribute("aria-selected","true")}),this.addEventListener("focusout",(I)=>{let B=I.target;B instanceof HTMLLIElement&&B.setAttribute("aria-selected","false")}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(q){if(this.className=q.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=q.id||R()),this.summaryEle.setAttribute("aria-label",q.menuTitle||"Menu"),q.summaryTitle&&(this.summaryEle.textContent=q.summaryTitle),q.summaryIcon){let I=n(this.player,q.summaryIcon);I.setAttribute("tabindex",""),this.summaryEle.append(I)}q.menuTitle&&(this.menuTitle.textContent=q.menuTitle),this.menu.classList.toggle("fp-icons",!!q.icons),this.addEventListener(q.options_event,(I)=>{this.render(I.data)}),q.item_selected_event&&this.addEventListener(q.item_selected_event,(I)=>{I.data!==void 0&&this.select_item(I.data.selected_index)})}render(q){this.olEle&&(this.olEle.innerHTML="",q&&q.forEach(this.menuOption,this),this.toggle_visibility(!(q==null?void 0:q.length)))}menuOption(q,I){let B=document.createElement("li");B.setAttribute("role","menuitem"),B.setAttribute("aria-selected","false"),B.setAttribute("tabindex","0"),q.icon&&B.append(q.icon);let F=document.createElement("span");F.textContent=q.text,B.append(F),B.addEventListener("click",()=>{this.select_item(I),typeof q.onclick=="function"&&q.onclick()}),this.olEle.appendChild(B),q.selected&&this.select_item(I)}select_item(q){this.options.forEach((I,B)=>{I.classList.toggle(h,B===q)})}unselect_item(){this.options.forEach((q)=>{q.classList.remove(h)})}toggle_visibility(q){this.classList.toggle(v,q),this.menu.style.setProperty("display",q?"none":"flex")}}function _(){Array.from(document.querySelectorAll(".fp-engine")).forEach((q)=>{var I;let B=q.root.querySelector("details[open].fp-menu-container");B&&(B.open=!1,(I=B.querySelector("summary"))===null||I===void 0||I.removeAttribute("aria-expanded"),q.root.classList.toggle("has-menu-opened",!1))})}function R(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}document.addEventListener("click",function(q){this.active_menu&&!q.composedPath().includes(this.active_menu)&&(_(),this.active_menu=void 0)});function A(q,I,B){let F=function(j,tt){let ct=new CustomEvent(j,{detail:tt,cancelable:!0});return tt&&Object.defineProperty(ct,"data",{get:()=>tt}),ct}(I,B);return q.dispatchEvent(F),q}var L;(function(){let q=!1;try{let I=Object.defineProperty({},"passive",{get:function(){q=!0}});window.addEventListener("testPassive",null,I),window.removeEventListener("testPassive",null,I)}catch(I){}})(),function(q){q[q.Idle=0]="Idle",q[q.Receiving=1]="Receiving",q[q.Starting=2]="Starting"}(L||(L={}));var M=function(q){var I={exports:{}};return q(I,I.exports),I.exports}(function(q,I){var B,F,j,tt,ct;B=/^(?=((?:[a-zA-Z0-9+\-.]+:)?))\1(?=((?:\/\/[^\/?#]*)?))\2(?=((?:(?:[^?#\/]*\/)*[^;?#\/]*)?))\3((?:;[^?#]*)?)(\?[^#]*)?(#[^]*)?$/,F=/^(?=([^\/?#]*))\1([^]*)$/,j=/(?:\/|^)\.(?=\/)/g,tt=/(?:\/|^)\.\.\/(?!\.\.\/)[^\/]*(?=\/)/g,ct={buildAbsoluteURL:function(st,lt,St){if(St=St||{},st=st.trim(),!(lt=lt.trim())){if(!St.alwaysNormalize)return st;var Pt=ct.parseURL(st);if(!Pt)throw new Error("Error trying to parse base URL.");return Pt.path=ct.normalizePath(Pt.path),ct.buildURLFromParts(Pt)}var $t=ct.parseURL(lt);if(!$t)throw new Error("Error trying to parse relative URL.");if($t.scheme)return St.alwaysNormalize?($t.path=ct.normalizePath($t.path),ct.buildURLFromParts($t)):lt;var zt=ct.parseURL(st);if(!zt)throw new Error("Error trying to parse base URL.");if(!zt.netLoc&&zt.path&&zt.path[0]!=="/"){var nt=F.exec(zt.path);zt.netLoc=nt[1],zt.path=nt[2]}zt.netLoc&&!zt.path&&(zt.path="/");var dt={scheme:zt.scheme,netLoc:$t.netLoc,path:null,params:$t.params,query:$t.query,fragment:$t.fragment};if(!$t.netLoc&&(dt.netLoc=zt.netLoc,$t.path[0]!=="/"))if($t.path){var bt=zt.path,Bt=bt.substring(0,bt.lastIndexOf("/")+1)+$t.path;dt.path=ct.normalizePath(Bt)}else dt.path=zt.path,$t.params||(dt.params=zt.params,$t.query||(dt.query=zt.query));return dt.path===null&&(dt.path=St.alwaysNormalize?ct.normalizePath($t.path):$t.path),ct.buildURLFromParts(dt)},parseURL:function(st){var lt=B.exec(st);return lt?{scheme:lt[1]||"",netLoc:lt[2]||"",path:lt[3]||"",params:lt[4]||"",query:lt[5]||"",fragment:lt[6]||""}:null},normalizePath:function(st){for(st=st.split("").reverse().join("").replace(j,"");st.length!==(st=st.replace(tt,"")).length;);return st.split("").reverse().join("")},buildURLFromParts:function(st){return st.scheme+st.netLoc+st.path+st.params+st.query+st.fragment}},q.exports=ct});let X=/#EXT-X-MEDIA:(.*)/g,b=/(.+?)=(".*?"|.*?)(?:,|$)/g;function H(q,I,B,F){let j=B,tt={label:q,default:B,data:F||[]};return Object.defineProperty(tt,"selected",{get:()=>j,set(ct){var st;typeof ct=="boolean"&&j!==ct&&(j&&((st=I.tracks)===null||st===void 0?void 0:st.filter((lt)=>lt.selected).length)===1||(j=ct,ct&&I.emit("tracks:video:select",{track:tt})))}})}class P{constructor(q){typeof q=="string"&&(q=P.parseAttrList(q)),Object.keys(q).forEach((I)=>{q.hasOwnProperty(I)&&(I.substring(0,2)==="X-"&&(this.clientAttrs=this.clientAttrs||[],this.clientAttrs.push(I)),this[I]=q[I])})}bool(q){return this[q]==="YES"}static parseAttrList(q){let I,B={};for(b.lastIndex=0;(I=b.exec(q))!==null;){let F=I[2];F.indexOf('"')===0&&F.lastIndexOf('"')===F.length-1&&(F=F.slice(1,-1)),B[I[1].trim()]=F}return B}}var W,at=Object.freeze({__proto__:null,PARSE_TRACKS:"parse:video:tracks",VIDEO_TRACK_SELECT:"tracks:video:select",VIDEO_TRACKS:"videoTracks",TRACKS:"video:tracks",SWITCH:"video:update"});let Et=((W=class q{constructor(I){((B,F,j)=>{window.customElements.get(F)||window.customElements.define(F,j),B.customElements.get(F)||B.customElements.set(F,F)})(I,"flowplayer-video-menu",E)}init(I,B,F){var j;let tt=n(F,"flowplayer-video-menu");tt instanceof E&&tt.setMenuAttrs({summaryTitle:F.i18n("vtsel.button_txt","Video"),menuTitle:F.i18n("vtsel.menu_title","Video Track"),class:"fp-vsel",options_event:W.events.TRACKS,item_selected_event:W.events.SWITCH}),F.on("mount",function(){var ct;(ct=function(st,lt){let St=st._customElements.get(lt);return St&&st.root.querySelector(St)||void 0}(F,F.hasState("is-tv")?"flowplayer-tv-menu":"flowplayer-control"))===null||ct===void 0||ct.append(tt)}),F.on("src",()=>{F.tracks=[],A(tt,W.events.TRACKS,[])}),F.on("parse:video:tracks",(ct)=>{let st=ct.detail;st&&function(lt,St,Pt){var $t,zt,nt,dt,bt,Bt,Kt;let ce,jt=0;for(X.lastIndex=0;(ce=X.exec(St))!==null;){let K=new P(ce[1]);if(K.TYPE==="VIDEO"){let it=($t=lt.tracks)===null||$t===void 0?void 0:$t.find((gt)=>gt.label===(K.NAME||K.LANGUAGE||"Track "+jt));if(it||(it=H(K.NAME||K.LANGUAGE||jt+++"",lt,K.bool("DEFAULT")),K.bool("DEFAULT")&&(it.data=(zt=lt.hls)===null||zt===void 0?void 0:zt.levels.slice(0)),(nt=lt.tracks)===null||nt===void 0||nt.push(it)),K.bool("DEFAULT"))continue;let pt={details:void 0,audioGroupIds:(dt=lt.hls)===null||dt===void 0?void 0:dt.levels[0].audioGroupIds,attrs:{},urlId:0,url:[K.URI?M.buildAbsoluteURL(Pt,K.URI,{alwaysNormalize:!0}):""],uri:K.URI?M.buildAbsoluteURL(Pt,K.URI,{alwaysNormalize:!0}):"",level:(bt=it.data)===null||bt===void 0?void 0:bt.length,name:"level "+((Bt=it.data)===null||Bt===void 0?void 0:Bt.length)};(Kt=it.data)===null||Kt===void 0||Kt.push(pt)}}}(F,st.manifest,st.url)}),(j=F.videoTracks)===null||j===void 0||j.addEventListener("addtrack",()=>{I.is_native&&(F.tracks=Array.from(F.videoTracks||[]).map((ct,st)=>H(ct.label?ct.label:"track "+st,F,ct.selected)),F.emit("videoTracks",F.tracks))}),F.on("loadeddata",()=>{var ct;if(!I.is_native||!F.videoTracks){if((ct=F.tracks)===null||ct===void 0?void 0:ct.length)return F.emit("videoTracks",F.tracks);F.tracks=[H("default",F,!0)],F.emit("videoTracks",F.tracks)}}),F.on("videoTracks",()=>{let ct=F.tracks;ct&&Array.isArray(ct)&&(A(tt,W.events.TRACKS,ct.map((st)=>({text:st.label,onclick:()=>st.selected=!0}))),A(tt,W.events.SWITCH,{selected_index:ct.findIndex((st)=>st.default)}),tt instanceof E&&tt.toggle_visibility((ct==null?void 0:ct.length)<2))}),F.on("tracks:video:select",(ct)=>{let st=ct.detail.track,lt=F.tracks;if(!st||!lt||!Array.isArray(lt))return;if(A(tt,W.events.SWITCH,{selected_index:lt.indexOf(st)}),!F.opts.is_native||!F.videoTracks)return;F.videoTracks[lt.indexOf(st)].selected=!0;let St=lt.find((Pt)=>Pt.selected&&Pt!==st);St&&(St.selected=!1,F.videoTracks[lt.indexOf(St)].selected=!1)}),F.on("rts/status",(ct)=>{var st;let lt=ct.detail.status,St=ct.detail.data;if(lt===L.Idle)return A(tt,W.events.TRACKS,[]),F.tracks=[];lt===L.Receiving&&((st=F==null?void 0:F.tracks)===null||st===void 0||st.push(H((St==null?void 0:St.sourceId)||"Main",F,!(St==null?void 0:St.sourceId),St)))})}}).pluginName="vtsel",W.events=at,W);return function(q,I){if(typeof el=="object"&&typeof il!="undefined")return I;if(document.currentScript===null)return I;"flowplayer"in q||(q.flowplayer={extensions:[]});let B=q.flowplayer;return typeof B=="function"?(B(I),I):(Array.isArray(B.extensions)||(B.extensions=[]),~B.extensions.indexOf(I)||B.extensions.push(I),I)}(window,Et)})});var fh=Ce((Ua,Dc)=>{(function(n,o){typeof Ua=="object"&&typeof Dc=="object"?Dc.exports=o():typeof define=="function"&&define.amd?define([],o):typeof Ua=="object"?Ua.bowser=o():n.bowser=o()})(Ua,function(){return function(n){var o={};function h(v){if(o[v])return o[v].exports;var E=o[v]={i:v,l:!1,exports:{}};return n[v].call(E.exports,E,E.exports,h),E.l=!0,E.exports}return h.m=n,h.c=o,h.d=function(v,E,_){h.o(v,E)||Object.defineProperty(v,E,{enumerable:!0,get:_})},h.r=function(v){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(v,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(v,"__esModule",{value:!0})},h.t=function(v,E){if(1&E&&(v=h(v)),8&E)return v;if(4&E&&typeof v=="object"&&v&&v.__esModule)return v;var _=Object.create(null);if(h.r(_),Object.defineProperty(_,"default",{enumerable:!0,value:v}),2&E&&typeof v!="string")for(var R in v)h.d(_,R,function(A){return v[A]}.bind(null,R));return _},h.n=function(v){var E=v&&v.__esModule?function(){return v.default}:function(){return v};return h.d(E,"a",E),E},h.o=function(v,E){return Object.prototype.hasOwnProperty.call(v,E)},h.p="",h(h.s=90)}({17:function(n,o,h){o.__esModule=!0,o.default=void 0;var v=h(18),E=function(){function _(){}return _.getFirstMatch=function(R,A){var L=A.match(R);return L&&L.length>0&&L[1]||""},_.getSecondMatch=function(R,A){var L=A.match(R);return L&&L.length>1&&L[2]||""},_.matchAndReturnConst=function(R,A,L){if(R.test(A))return L},_.getWindowsVersionName=function(R){switch(R){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}},_.getMacOSVersionName=function(R){var A=R.split(".").splice(0,2).map(function(L){return parseInt(L,10)||0});if(A.push(0),A[0]===10)switch(A[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}},_.getAndroidVersionName=function(R){var A=R.split(".").splice(0,2).map(function(L){return parseInt(L,10)||0});if(A.push(0),!(A[0]===1&&A[1]<5))return A[0]===1&&A[1]<6?"Cupcake":A[0]===1&&A[1]>=6?"Donut":A[0]===2&&A[1]<2?"Eclair":A[0]===2&&A[1]===2?"Froyo":A[0]===2&&A[1]>2?"Gingerbread":A[0]===3?"Honeycomb":A[0]===4&&A[1]<1?"Ice Cream Sandwich":A[0]===4&&A[1]<4?"Jelly Bean":A[0]===4&&A[1]>=4?"KitKat":A[0]===5?"Lollipop":A[0]===6?"Marshmallow":A[0]===7?"Nougat":A[0]===8?"Oreo":A[0]===9?"Pie":void 0},_.getVersionPrecision=function(R){return R.split(".").length},_.compareVersions=function(R,A,L){L===void 0&&(L=!1);var M=_.getVersionPrecision(R),X=_.getVersionPrecision(A),b=Math.max(M,X),H=0,P=_.map([R,A],function(W){var at=b-_.getVersionPrecision(W),Et=W+new Array(at+1).join(".0");return _.map(Et.split("."),function(q){return new Array(20-q.length).join("0")+q}).reverse()});for(L&&(H=b-Math.min(M,X)),b-=1;b>=H;){if(P[0][b]>P[1][b])return 1;if(P[0][b]===P[1][b]){if(b===H)return 0;b-=1}else if(P[0][b]<P[1][b])return-1}},_.map=function(R,A){var L,M=[];if(Array.prototype.map)return Array.prototype.map.call(R,A);for(L=0;L<R.length;L+=1)M.push(A(R[L]));return M},_.find=function(R,A){var L,M;if(Array.prototype.find)return Array.prototype.find.call(R,A);for(L=0,M=R.length;L<M;L+=1){var X=R[L];if(A(X,L))return X}},_.assign=function(R){for(var A,L,M=R,X=arguments.length,b=new Array(X>1?X-1:0),H=1;H<X;H++)b[H-1]=arguments[H];if(Object.assign)return Object.assign.apply(Object,[R].concat(b));var P=function(){var W=b[A];typeof W=="object"&&W!==null&&Object.keys(W).forEach(function(at){M[at]=W[at]})};for(A=0,L=b.length;A<L;A+=1)P();return R},_.getBrowserAlias=function(R){return v.BROWSER_ALIASES_MAP[R]},_.getBrowserTypeByAlias=function(R){return v.BROWSER_MAP[R]||""},_}();o.default=E,n.exports=o.default},18:function(n,o,h){o.__esModule=!0,o.ENGINE_MAP=o.OS_MAP=o.PLATFORMS_MAP=o.BROWSER_MAP=o.BROWSER_ALIASES_MAP=void 0,o.BROWSER_ALIASES_MAP={"Amazon Silk":"amazon_silk","Android Browser":"android",Bada:"bada",BlackBerry:"blackberry",Chrome:"chrome",Chromium:"chromium",Electron:"electron",Epiphany:"epiphany",Firefox:"firefox",Focus:"focus",Generic:"generic","Google Search":"google_search",Googlebot:"googlebot","Internet Explorer":"ie","K-Meleon":"k_meleon",Maxthon:"maxthon","Microsoft Edge":"edge","MZ Browser":"mz","NAVER Whale Browser":"naver",Opera:"opera","Opera Coast":"opera_coast","Pale Moon":"pale_moon",PhantomJS:"phantomjs",Puffin:"puffin",QupZilla:"qupzilla",QQ:"qq",QQLite:"qqlite",Safari:"safari",Sailfish:"sailfish","Samsung Internet for Android":"samsung_internet",SeaMonkey:"seamonkey",Sleipnir:"sleipnir",Swing:"swing",Tizen:"tizen","UC Browser":"uc",Vivaldi:"vivaldi","WebOS Browser":"webos",WeChat:"wechat","Yandex Browser":"yandex",Roku:"roku"},o.BROWSER_MAP={amazon_silk:"Amazon Silk",android:"Android Browser",bada:"Bada",blackberry:"BlackBerry",chrome:"Chrome",chromium:"Chromium",electron:"Electron",epiphany:"Epiphany",firefox:"Firefox",focus:"Focus",generic:"Generic",googlebot:"Googlebot",google_search:"Google Search",ie:"Internet Explorer",k_meleon:"K-Meleon",maxthon:"Maxthon",edge:"Microsoft Edge",mz:"MZ Browser",naver:"NAVER Whale Browser",opera:"Opera",opera_coast:"Opera Coast",pale_moon:"Pale Moon",phantomjs:"PhantomJS",puffin:"Puffin",qupzilla:"QupZilla",qq:"QQ Browser",qqlite:"QQ Browser Lite",safari:"Safari",sailfish:"Sailfish",samsung_internet:"Samsung Internet for Android",seamonkey:"SeaMonkey",sleipnir:"Sleipnir",swing:"Swing",tizen:"Tizen",uc:"UC Browser",vivaldi:"Vivaldi",webos:"WebOS Browser",wechat:"WeChat",yandex:"Yandex Browser"},o.PLATFORMS_MAP={tablet:"tablet",mobile:"mobile",desktop:"desktop",tv:"tv",bot:"bot"},o.OS_MAP={WindowsPhone:"Windows Phone",Windows:"Windows",MacOS:"macOS",iOS:"iOS",Android:"Android",WebOS:"WebOS",BlackBerry:"BlackBerry",Bada:"Bada",Tizen:"Tizen",Linux:"Linux",ChromeOS:"Chrome OS",PlayStation4:"PlayStation 4",Roku:"Roku"},o.ENGINE_MAP={EdgeHTML:"EdgeHTML",Blink:"Blink",Trident:"Trident",Presto:"Presto",Gecko:"Gecko",WebKit:"WebKit"}},90:function(n,o,h){o.__esModule=!0,o.default=void 0;var v,E=(v=h(91))&&v.__esModule?v:{default:v},_=h(18);function R(L,M){for(var X=0;X<M.length;X++){var b=M[X];b.enumerable=b.enumerable||!1,b.configurable=!0,"value"in b&&(b.writable=!0),Object.defineProperty(L,b.key,b)}}var A=function(){function L(){}var M,X,b;return L.getParser=function(H,P){if(P===void 0&&(P=!1),typeof H!="string")throw new Error("UserAgent should be a string");return new E.default(H,P)},L.parse=function(H){return new E.default(H).getResult()},M=L,b=[{key:"BROWSER_MAP",get:function(){return _.BROWSER_MAP}},{key:"ENGINE_MAP",get:function(){return _.ENGINE_MAP}},{key:"OS_MAP",get:function(){return _.OS_MAP}},{key:"PLATFORMS_MAP",get:function(){return _.PLATFORMS_MAP}}],(X=null)&&R(M.prototype,X),b&&R(M,b),L}();o.default=A,n.exports=o.default},91:function(n,o,h){o.__esModule=!0,o.default=void 0;var v=L(h(92)),E=L(h(93)),_=L(h(94)),R=L(h(95)),A=L(h(17));function L(X){return X&&X.__esModule?X:{default:X}}var M=function(){function X(H,P){if(P===void 0&&(P=!1),H==null||H==="")throw new Error("UserAgent parameter can't be empty");this._ua=H,this.parsedResult={},P!==!0&&this.parse()}var b=X.prototype;return b.getUA=function(){return this._ua},b.test=function(H){return H.test(this._ua)},b.parseBrowser=function(){var H=this;this.parsedResult.browser={};var P=A.default.find(v.default,function(W){if(typeof W.test=="function")return W.test(H);if(Array.isArray(W.test))return W.test.some(function(at){return H.test(at)});throw new Error("Browser's test function is not valid")});return P&&(this.parsedResult.browser=P.describe(this.getUA())),this.parsedResult.browser},b.getBrowser=function(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()},b.getBrowserName=function(H){return H?String(this.getBrowser().name).toLowerCase()||"":this.getBrowser().name||""},b.getBrowserVersion=function(){return this.getBrowser().version},b.getOS=function(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()},b.parseOS=function(){var H=this;this.parsedResult.os={};var P=A.default.find(E.default,function(W){if(typeof W.test=="function")return W.test(H);if(Array.isArray(W.test))return W.test.some(function(at){return H.test(at)});throw new Error("Browser's test function is not valid")});return P&&(this.parsedResult.os=P.describe(this.getUA())),this.parsedResult.os},b.getOSName=function(H){var P=this.getOS().name;return H?String(P).toLowerCase()||"":P||""},b.getOSVersion=function(){return this.getOS().version},b.getPlatform=function(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()},b.getPlatformType=function(H){H===void 0&&(H=!1);var P=this.getPlatform().type;return H?String(P).toLowerCase()||"":P||""},b.parsePlatform=function(){var H=this;this.parsedResult.platform={};var P=A.default.find(_.default,function(W){if(typeof W.test=="function")return W.test(H);if(Array.isArray(W.test))return W.test.some(function(at){return H.test(at)});throw new Error("Browser's test function is not valid")});return P&&(this.parsedResult.platform=P.describe(this.getUA())),this.parsedResult.platform},b.getEngine=function(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()},b.getEngineName=function(H){return H?String(this.getEngine().name).toLowerCase()||"":this.getEngine().name||""},b.parseEngine=function(){var H=this;this.parsedResult.engine={};var P=A.default.find(R.default,function(W){if(typeof W.test=="function")return W.test(H);if(Array.isArray(W.test))return W.test.some(function(at){return H.test(at)});throw new Error("Browser's test function is not valid")});return P&&(this.parsedResult.engine=P.describe(this.getUA())),this.parsedResult.engine},b.parse=function(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this},b.getResult=function(){return A.default.assign({},this.parsedResult)},b.satisfies=function(H){var P=this,W={},at=0,Et={},q=0;if(Object.keys(H).forEach(function(lt){var St=H[lt];typeof St=="string"?(Et[lt]=St,q+=1):typeof St=="object"&&(W[lt]=St,at+=1)}),at>0){var I=Object.keys(W),B=A.default.find(I,function(lt){return P.isOS(lt)});if(B){var F=this.satisfies(W[B]);if(F!==void 0)return F}var j=A.default.find(I,function(lt){return P.isPlatform(lt)});if(j){var tt=this.satisfies(W[j]);if(tt!==void 0)return tt}}if(q>0){var ct=Object.keys(Et),st=A.default.find(ct,function(lt){return P.isBrowser(lt,!0)});if(st!==void 0)return this.compareVersion(Et[st])}},b.isBrowser=function(H,P){P===void 0&&(P=!1);var W=this.getBrowserName().toLowerCase(),at=H.toLowerCase(),Et=A.default.getBrowserTypeByAlias(at);return P&&Et&&(at=Et.toLowerCase()),at===W},b.compareVersion=function(H){var P=[0],W=H,at=!1,Et=this.getBrowserVersion();if(typeof Et=="string")return H[0]===">"||H[0]==="<"?(W=H.substr(1),H[1]==="="?(at=!0,W=H.substr(2)):P=[],H[0]===">"?P.push(1):P.push(-1)):H[0]==="="?W=H.substr(1):H[0]==="~"&&(at=!0,W=H.substr(1)),P.indexOf(A.default.compareVersions(Et,W,at))>-1},b.isOS=function(H){return this.getOSName(!0)===String(H).toLowerCase()},b.isPlatform=function(H){return this.getPlatformType(!0)===String(H).toLowerCase()},b.isEngine=function(H){return this.getEngineName(!0)===String(H).toLowerCase()},b.is=function(H,P){return P===void 0&&(P=!1),this.isBrowser(H,P)||this.isOS(H)||this.isPlatform(H)},b.some=function(H){var P=this;return H===void 0&&(H=[]),H.some(function(W){return P.is(W)})},X}();o.default=M,n.exports=o.default},92:function(n,o,h){o.__esModule=!0,o.default=void 0;var v,E=(v=h(17))&&v.__esModule?v:{default:v},_=/version\/(\d+(\.?_?\d+)+)/i,R=[{test:[/googlebot/i],describe:function(A){var L={name:"Googlebot"},M=E.default.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,A)||E.default.getFirstMatch(_,A);return M&&(L.version=M),L}},{test:[/opera/i],describe:function(A){var L={name:"Opera"},M=E.default.getFirstMatch(_,A)||E.default.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}},{test:[/opr\/|opios/i],describe:function(A){var L={name:"Opera"},M=E.default.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,A)||E.default.getFirstMatch(_,A);return M&&(L.version=M),L}},{test:[/SamsungBrowser/i],describe:function(A){var L={name:"Samsung Internet for Android"},M=E.default.getFirstMatch(_,A)||E.default.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}},{test:[/Whale/i],describe:function(A){var L={name:"NAVER Whale Browser"},M=E.default.getFirstMatch(_,A)||E.default.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,A);return M&&(L.version=M),L}},{test:[/PaleMoon/i],describe:function(A){var L={name:"Pale Moon"},M=E.default.getFirstMatch(_,A)||E.default.getFirstMatch(/(?:PaleMoon)[\s/](\d+(?:\.\d+)+)/i,A);return M&&(L.version=M),L}},{test:[/MZBrowser/i],describe:function(A){var L={name:"MZ Browser"},M=E.default.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,A)||E.default.getFirstMatch(_,A);return M&&(L.version=M),L}},{test:[/focus/i],describe:function(A){var L={name:"Focus"},M=E.default.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,A)||E.default.getFirstMatch(_,A);return M&&(L.version=M),L}},{test:[/swing/i],describe:function(A){var L={name:"Swing"},M=E.default.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,A)||E.default.getFirstMatch(_,A);return M&&(L.version=M),L}},{test:[/coast/i],describe:function(A){var L={name:"Opera Coast"},M=E.default.getFirstMatch(_,A)||E.default.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe:function(A){var L={name:"Opera Touch"},M=E.default.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,A)||E.default.getFirstMatch(_,A);return M&&(L.version=M),L}},{test:[/yabrowser/i],describe:function(A){var L={name:"Yandex Browser"},M=E.default.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,A)||E.default.getFirstMatch(_,A);return M&&(L.version=M),L}},{test:[/ucbrowser/i],describe:function(A){var L={name:"UC Browser"},M=E.default.getFirstMatch(_,A)||E.default.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}},{test:[/Maxthon|mxios/i],describe:function(A){var L={name:"Maxthon"},M=E.default.getFirstMatch(_,A)||E.default.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}},{test:[/epiphany/i],describe:function(A){var L={name:"Epiphany"},M=E.default.getFirstMatch(_,A)||E.default.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}},{test:[/puffin/i],describe:function(A){var L={name:"Puffin"},M=E.default.getFirstMatch(_,A)||E.default.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}},{test:[/sleipnir/i],describe:function(A){var L={name:"Sleipnir"},M=E.default.getFirstMatch(_,A)||E.default.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}},{test:[/k-meleon/i],describe:function(A){var L={name:"K-Meleon"},M=E.default.getFirstMatch(_,A)||E.default.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}},{test:[/micromessenger/i],describe:function(A){var L={name:"WeChat"},M=E.default.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,A)||E.default.getFirstMatch(_,A);return M&&(L.version=M),L}},{test:[/qqbrowser/i],describe:function(A){var L={name:/qqbrowserlite/i.test(A)?"QQ Browser Lite":"QQ Browser"},M=E.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,A)||E.default.getFirstMatch(_,A);return M&&(L.version=M),L}},{test:[/msie|trident/i],describe:function(A){var L={name:"Internet Explorer"},M=E.default.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}},{test:[/\sedg\//i],describe:function(A){var L={name:"Microsoft Edge"},M=E.default.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}},{test:[/edg([ea]|ios)/i],describe:function(A){var L={name:"Microsoft Edge"},M=E.default.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}},{test:[/vivaldi/i],describe:function(A){var L={name:"Vivaldi"},M=E.default.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}},{test:[/seamonkey/i],describe:function(A){var L={name:"SeaMonkey"},M=E.default.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}},{test:[/sailfish/i],describe:function(A){var L={name:"Sailfish"},M=E.default.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,A);return M&&(L.version=M),L}},{test:[/silk/i],describe:function(A){var L={name:"Amazon Silk"},M=E.default.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}},{test:[/phantom/i],describe:function(A){var L={name:"PhantomJS"},M=E.default.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}},{test:[/slimerjs/i],describe:function(A){var L={name:"SlimerJS"},M=E.default.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(A){var L={name:"BlackBerry"},M=E.default.getFirstMatch(_,A)||E.default.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}},{test:[/(web|hpw)[o0]s/i],describe:function(A){var L={name:"WebOS Browser"},M=E.default.getFirstMatch(_,A)||E.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}},{test:[/bada/i],describe:function(A){var L={name:"Bada"},M=E.default.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}},{test:[/tizen/i],describe:function(A){var L={name:"Tizen"},M=E.default.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,A)||E.default.getFirstMatch(_,A);return M&&(L.version=M),L}},{test:[/qupzilla/i],describe:function(A){var L={name:"QupZilla"},M=E.default.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,A)||E.default.getFirstMatch(_,A);return M&&(L.version=M),L}},{test:[/firefox|iceweasel|fxios/i],describe:function(A){var L={name:"Firefox"},M=E.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}},{test:[/electron/i],describe:function(A){var L={name:"Electron"},M=E.default.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}},{test:[/MiuiBrowser/i],describe:function(A){var L={name:"Miui"},M=E.default.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}},{test:[/chromium/i],describe:function(A){var L={name:"Chromium"},M=E.default.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,A)||E.default.getFirstMatch(_,A);return M&&(L.version=M),L}},{test:[/chrome|crios|crmo/i],describe:function(A){var L={name:"Chrome"},M=E.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}},{test:[/GSA/i],describe:function(A){var L={name:"Google Search"},M=E.default.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}},{test:function(A){var L=!A.test(/like android/i),M=A.test(/android/i);return L&&M},describe:function(A){var L={name:"Android Browser"},M=E.default.getFirstMatch(_,A);return M&&(L.version=M),L}},{test:[/playstation 4/i],describe:function(A){var L={name:"PlayStation 4"},M=E.default.getFirstMatch(_,A);return M&&(L.version=M),L}},{test:[/safari|applewebkit/i],describe:function(A){var L={name:"Safari"},M=E.default.getFirstMatch(_,A);return M&&(L.version=M),L}},{test:[/.*/i],describe:function(A){var L=A.search("\\(")!==-1?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:E.default.getFirstMatch(L,A),version:E.default.getSecondMatch(L,A)}}}];o.default=R,n.exports=o.default},93:function(n,o,h){o.__esModule=!0,o.default=void 0;var v,E=(v=h(17))&&v.__esModule?v:{default:v},_=h(18),R=[{test:[/Roku\/DVP/],describe:function(A){var L=E.default.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,A);return{name:_.OS_MAP.Roku,version:L}}},{test:[/windows phone/i],describe:function(A){var L=E.default.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,A);return{name:_.OS_MAP.WindowsPhone,version:L}}},{test:[/windows /i],describe:function(A){var L=E.default.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,A),M=E.default.getWindowsVersionName(L);return{name:_.OS_MAP.Windows,version:L,versionName:M}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(A){var L={name:_.OS_MAP.iOS},M=E.default.getSecondMatch(/(Version\/)(\d[\d.]+)/,A);return M&&(L.version=M),L}},{test:[/macintosh/i],describe:function(A){var L=E.default.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,A).replace(/[_\s]/g,"."),M=E.default.getMacOSVersionName(L),X={name:_.OS_MAP.MacOS,version:L};return M&&(X.versionName=M),X}},{test:[/(ipod|iphone|ipad)/i],describe:function(A){var L=E.default.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,A).replace(/[_\s]/g,".");return{name:_.OS_MAP.iOS,version:L}}},{test:function(A){var L=!A.test(/like android/i),M=A.test(/android/i);return L&&M},describe:function(A){var L=E.default.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,A),M=E.default.getAndroidVersionName(L),X={name:_.OS_MAP.Android,version:L};return M&&(X.versionName=M),X}},{test:[/(web|hpw)[o0]s/i],describe:function(A){var L=E.default.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,A),M={name:_.OS_MAP.WebOS};return L&&L.length&&(M.version=L),M}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(A){var L=E.default.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,A)||E.default.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,A)||E.default.getFirstMatch(/\bbb(\d+)/i,A);return{name:_.OS_MAP.BlackBerry,version:L}}},{test:[/bada/i],describe:function(A){var L=E.default.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,A);return{name:_.OS_MAP.Bada,version:L}}},{test:[/tizen/i],describe:function(A){var L=E.default.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,A);return{name:_.OS_MAP.Tizen,version:L}}},{test:[/linux/i],describe:function(){return{name:_.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:_.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(A){var L=E.default.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,A);return{name:_.OS_MAP.PlayStation4,version:L}}}];o.default=R,n.exports=o.default},94:function(n,o,h){o.__esModule=!0,o.default=void 0;var v,E=(v=h(17))&&v.__esModule?v:{default:v},_=h(18),R=[{test:[/googlebot/i],describe:function(){return{type:_.PLATFORMS_MAP.bot,vendor:"Google"}}},{test:[/huawei/i],describe:function(A){var L=E.default.getFirstMatch(/(can-l01)/i,A)&&"Nova",M={type:_.PLATFORMS_MAP.mobile,vendor:"Huawei"};return L&&(M.model=L),M}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:function(){return{type:_.PLATFORMS_MAP.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe:function(){return{type:_.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(){return{type:_.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe:function(){return{type:_.PLATFORMS_MAP.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe:function(){return{type:_.PLATFORMS_MAP.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:_.PLATFORMS_MAP.tablet}}},{test:function(A){var L=A.test(/ipod|iphone/i),M=A.test(/like (ipod|iphone)/i);return L&&!M},describe:function(A){var L=E.default.getFirstMatch(/(ipod|iphone)/i,A);return{type:_.PLATFORMS_MAP.mobile,vendor:"Apple",model:L}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:_.PLATFORMS_MAP.mobile,vendor:"Nexus"}}},{test:[/Nokia/i],describe:function(A){var L=E.default.getFirstMatch(/Nokia\s+([0-9]+(\.[0-9]+)?)/i,A),M={type:_.PLATFORMS_MAP.mobile,vendor:"Nokia"};return L&&(M.model=L),M}},{test:[/[^-]mobi/i],describe:function(){return{type:_.PLATFORMS_MAP.mobile}}},{test:function(A){return A.getBrowserName(!0)==="blackberry"},describe:function(){return{type:_.PLATFORMS_MAP.mobile,vendor:"BlackBerry"}}},{test:function(A){return A.getBrowserName(!0)==="bada"},describe:function(){return{type:_.PLATFORMS_MAP.mobile}}},{test:function(A){return A.getBrowserName()==="windows phone"},describe:function(){return{type:_.PLATFORMS_MAP.mobile,vendor:"Microsoft"}}},{test:function(A){var L=Number(String(A.getOSVersion()).split(".")[0]);return A.getOSName(!0)==="android"&&L>=3},describe:function(){return{type:_.PLATFORMS_MAP.tablet}}},{test:function(A){return A.getOSName(!0)==="android"},describe:function(){return{type:_.PLATFORMS_MAP.mobile}}},{test:function(A){return A.getOSName(!0)==="macos"},describe:function(){return{type:_.PLATFORMS_MAP.desktop,vendor:"Apple"}}},{test:function(A){return A.getOSName(!0)==="windows"},describe:function(){return{type:_.PLATFORMS_MAP.desktop}}},{test:function(A){return A.getOSName(!0)==="linux"},describe:function(){return{type:_.PLATFORMS_MAP.desktop}}},{test:function(A){return A.getOSName(!0)==="playstation 4"},describe:function(){return{type:_.PLATFORMS_MAP.tv}}},{test:function(A){return A.getOSName(!0)==="roku"},describe:function(){return{type:_.PLATFORMS_MAP.tv}}}];o.default=R,n.exports=o.default},95:function(n,o,h){o.__esModule=!0,o.default=void 0;var v,E=(v=h(17))&&v.__esModule?v:{default:v},_=h(18),R=[{test:function(A){return A.getBrowserName(!0)==="microsoft edge"},describe:function(A){if(/\sedg\//i.test(A))return{name:_.ENGINE_MAP.Blink};var L=E.default.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,A);return{name:_.ENGINE_MAP.EdgeHTML,version:L}}},{test:[/trident/i],describe:function(A){var L={name:_.ENGINE_MAP.Trident},M=E.default.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}},{test:function(A){return A.test(/presto/i)},describe:function(A){var L={name:_.ENGINE_MAP.Presto},M=E.default.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}},{test:function(A){var L=A.test(/gecko/i),M=A.test(/like gecko/i);return L&&!M},describe:function(A){var L={name:_.ENGINE_MAP.Gecko},M=E.default.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return{name:_.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(A){var L={name:_.ENGINE_MAP.WebKit},M=E.default.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,A);return M&&(L.version=M),L}}];o.default=R,n.exports=o.default}})})});var Fc=Ce((M1,Eh)=>{var xc=Object.prototype.hasOwnProperty,nr=function(){var n=[];for(var o=0;o<256;++o)n.push("%"+((o<16?"0":"")+o.toString(16)).toUpperCase());return n}(),Gv=function n(o){var h;while(o.length){var v=o.pop();if(h=v.obj[v.prop],Array.isArray(h)){var E=[];for(var _=0;_<h.length;++_)if(typeof h[_]!=="undefined")E.push(h[_]);v.obj[v.prop]=E}}return h},vh=function n(o,h){var v=h&&h.plainObjects?Object.create(null):{};for(var E=0;E<o.length;++E)if(typeof o[E]!=="undefined")v[E]=o[E];return v},Hv=function n(o,h,v){if(!h)return o;if(typeof h!=="object"){if(Array.isArray(o))o.push(h);else if(o&&typeof o==="object"){if(v&&(v.plainObjects||v.allowPrototypes)||!xc.call(Object.prototype,h))o[h]=!0}else return[o,h];return o}if(!o||typeof o!=="object")return[o].concat(h);var E=o;if(Array.isArray(o)&&!Array.isArray(h))E=vh(o,v);if(Array.isArray(o)&&Array.isArray(h))return h.forEach(function(_,R){if(xc.call(o,R)){var A=o[R];if(A&&typeof A==="object"&&_&&typeof _==="object")o[R]=n(A,_,v);else o.push(_)}else o[R]=_}),o;return Object.keys(h).reduce(function(_,R){var A=h[R];if(xc.call(_,R))_[R]=n(_[R],A,v);else _[R]=A;return _},E)},Vv=function n(o,h){return Object.keys(h).reduce(function(v,E){return v[E]=h[E],v},o)},Kv=function(n){try{return decodeURIComponent(n.replace(/\+/g," "))}catch(o){return n}},Wv=function n(o){if(o.length===0)return o;var h=typeof o==="string"?o:String(o),v="";for(var E=0;E<h.length;++E){var _=h.charCodeAt(E);if(_===45||_===46||_===95||_===126||_>=48&&_<=57||_>=65&&_<=90||_>=97&&_<=122){v+=h.charAt(E);continue}if(_<128){v=v+nr[_];continue}if(_<2048){v=v+(nr[192|_>>6]+nr[128|_&63]);continue}if(_<55296||_>=57344){v=v+(nr[224|_>>12]+nr[128|_>>6&63]+nr[128|_&63]);continue}E+=1,_=65536+((_&1023)<<10|h.charCodeAt(E)&1023),v+=nr[240|_>>18]+nr[128|_>>12&63]+nr[128|_>>6&63]+nr[128|_&63]}return v},Yv=function n(o){var h=[{obj:{o},prop:"o"}],v=[];for(var E=0;E<h.length;++E){var _=h[E],R=_.obj[_.prop],A=Object.keys(R);for(var L=0;L<A.length;++L){var M=A[L],X=R[M];if(typeof X==="object"&&X!==null&&v.indexOf(X)===-1)h.push({obj:R,prop:M}),v.push(X)}}return Gv(h)},jv=function n(o){return Object.prototype.toString.call(o)==="[object RegExp]"},zv=function n(o){if(o===null||typeof o==="undefined")return!1;return!!(o.constructor&&o.constructor.isBuffer&&o.constructor.isBuffer(o))};Eh.exports={arrayToObject:vh,assign:Vv,compact:Yv,decode:Kv,encode:Wv,isBuffer:zv,isRegExp:jv,merge:Hv}});var Uc=Ce((N1,yh)=>{var qv=String.prototype.replace,Xv=/%20/g;yh.exports={default:"RFC3986",formatters:{RFC1738:function(n){return qv.call(n,Xv,"+")},RFC3986:function(n){return String(n)}},RFC1738:"RFC1738",RFC3986:"RFC3986"}});var Th=Ce((P1,bh)=>{var Gc=Fc(),Bc=Uc(),Sh={brackets:function n(o){return o+"[]"},indices:function n(o,h){return o+"["+h+"]"},repeat:function n(o){return o}},yl=Array.isArray,Jv=Array.prototype.push,$c=function(n,o){Jv.apply(n,yl(o)?o:[o])},Qv=Date.prototype.toISOString,sr={delimiter:"&",encode:!0,encoder:Gc.encode,encodeValuesOnly:!1,serializeDate:function n(o){return Qv.call(o)},skipNulls:!1,strictNullHandling:!1},Zv=function n(o,h,v,E,_,R,A,L,M,X,b,H){var P=o;if(typeof A==="function")P=A(h,P);else if(P instanceof Date)P=X(P);if(P===null){if(E)return R&&!H?R(h,sr.encoder):h;P=""}if(typeof P==="string"||typeof P==="number"||typeof P==="boolean"||Gc.isBuffer(P)){if(R){var W=H?h:R(h,sr.encoder);return[b(W)+"="+b(R(P,sr.encoder))]}return[b(h)+"="+b(String(P))]}var at=[];if(typeof P==="undefined")return at;var Et;if(yl(A))Et=A;else{var q=Object.keys(P);Et=L?q.sort(L):q}for(var I=0;I<Et.length;++I){var B=Et[I];if(_&&P[B]===null)continue;if(yl(P))$c(at,n(P[B],v(h,B),v,E,_,R,A,L,M,X,b,H));else $c(at,n(P[B],h+(M?"."+B:"["+B+"]"),v,E,_,R,A,L,M,X,b,H))}return at};bh.exports=function(n,o){var h=n,v=o?Gc.assign({},o):{};if(v.encoder!==null&&typeof v.encoder!=="undefined"&&typeof v.encoder!=="function")throw new TypeError("Encoder has to be a function.");var E=typeof v.delimiter==="undefined"?sr.delimiter:v.delimiter,_=typeof v.strictNullHandling==="boolean"?v.strictNullHandling:sr.strictNullHandling,R=typeof v.skipNulls==="boolean"?v.skipNulls:sr.skipNulls,A=typeof v.encode==="boolean"?v.encode:sr.encode,L=typeof v.encoder==="function"?v.encoder:sr.encoder,M=typeof v.sort==="function"?v.sort:null,X=typeof v.allowDots==="undefined"?!1:v.allowDots,b=typeof v.serializeDate==="function"?v.serializeDate:sr.serializeDate,H=typeof v.encodeValuesOnly==="boolean"?v.encodeValuesOnly:sr.encodeValuesOnly;if(typeof v.format==="undefined")v.format=Bc.default;else if(!Object.prototype.hasOwnProperty.call(Bc.formatters,v.format))throw new TypeError("Unknown format option provided.");var P=Bc.formatters[v.format],W,at;if(typeof v.filter==="function")at=v.filter,h=at("",h);else if(yl(v.filter))at=v.filter,W=at;var Et=[];if(typeof h!=="object"||h===null)return"";var q;if(v.arrayFormat in Sh)q=v.arrayFormat;else if("indices"in v)q=v.indices?"indices":"repeat";else q="indices";var I=Sh[q];if(!W)W=Object.keys(h);if(M)W.sort(M);for(var B=0;B<W.length;++B){var F=W[B];if(R&&h[F]===null)continue;$c(Et,Zv(h[F],F,I,_,R,A?L:null,at,M,X,b,P,H))}var j=Et.join(E),tt=v.addQueryPrefix===!0?"?":"";return j.length>0?tt+j:""}});var _h=Ce((x1,Ah)=>{var Ba=Fc(),Hc=Object.prototype.hasOwnProperty,ki={allowDots:!1,allowPrototypes:!1,arrayLimit:20,decoder:Ba.decode,delimiter:"&",depth:5,parameterLimit:1000,plainObjects:!1,strictNullHandling:!1},tE=function n(o,h){var v={},E=h.ignoreQueryPrefix?o.replace(/^\?/,""):o,_=h.parameterLimit===1/0?void 0:h.parameterLimit,R=E.split(h.delimiter,_);for(var A=0;A<R.length;++A){var L=R[A],M=L.indexOf("]="),X=M===-1?L.indexOf("="):M+1,b,H;if(X===-1)b=h.decoder(L,ki.decoder),H=h.strictNullHandling?null:"";else b=h.decoder(L.slice(0,X),ki.decoder),H=h.decoder(L.slice(X+1),ki.decoder);if(Hc.call(v,b))v[b]=[].concat(v[b]).concat(H);else v[b]=H}return v},eE=function(n,o,h){var v=o;for(var E=n.length-1;E>=0;--E){var _,R=n[E];if(R==="[]"&&h.parseArrays)_=[].concat(v);else{_=h.plainObjects?Object.create(null):{};var A=R.charAt(0)==="["&&R.charAt(R.length-1)==="]"?R.slice(1,-1):R,L=parseInt(A,10);if(!h.parseArrays&&A==="")_={0:v};else if(!isNaN(L)&&R!==A&&String(L)===A&&L>=0&&(h.parseArrays&&L<=h.arrayLimit))_=[],_[L]=v;else if(A!=="__proto__")_[A]=v}v=_}return v},iE=function n(o,h,v){if(!o)return;var E=v.allowDots?o.replace(/\.([^.[]+)/g,"[$1]"):o,_=/(\[[^[\]]*])/,R=/(\[[^[\]]*])/g,A=_.exec(E),L=A?E.slice(0,A.index):E,M=[];if(L){if(!v.plainObjects&&Hc.call(Object.prototype,L)){if(!v.allowPrototypes)return}M.push(L)}var X=0;while((A=R.exec(E))!==null&&X<v.depth){if(X+=1,!v.plainObjects&&Hc.call(Object.prototype,A[1].slice(1,-1))){if(!v.allowPrototypes)return}M.push(A[1])}if(A)M.push("["+E.slice(A.index)+"]");return eE(M,h,v)};Ah.exports=function(n,o){var h=o?Ba.assign({},o):{};if(h.decoder!==null&&h.decoder!==void 0&&typeof h.decoder!=="function")throw new TypeError("Decoder has to be a function.");if(h.ignoreQueryPrefix=h.ignoreQueryPrefix===!0,h.delimiter=typeof h.delimiter==="string"||Ba.isRegExp(h.delimiter)?h.delimiter:ki.delimiter,h.depth=typeof h.depth==="number"?h.depth:ki.depth,h.arrayLimit=typeof h.arrayLimit==="number"?h.arrayLimit:ki.arrayLimit,h.parseArrays=h.parseArrays!==!1,h.decoder=typeof h.decoder==="function"?h.decoder:ki.decoder,h.allowDots=typeof h.allowDots==="boolean"?h.allowDots:ki.allowDots,h.plainObjects=typeof h.plainObjects==="boolean"?h.plainObjects:ki.plainObjects,h.allowPrototypes=typeof h.allowPrototypes==="boolean"?h.allowPrototypes:ki.allowPrototypes,h.parameterLimit=typeof h.parameterLimit==="number"?h.parameterLimit:ki.parameterLimit,h.strictNullHandling=typeof h.strictNullHandling==="boolean"?h.strictNullHandling:ki.strictNullHandling,n===""||n===null||typeof n==="undefined")return h.plainObjects?Object.create(null):{};var v=typeof n==="string"?tE(n,h):n,E=h.plainObjects?Object.create(null):{},_=Object.keys(v);for(var R=0;R<_.length;++R){var A=_[R],L=iE(A,v[A],h);E=Ba.merge(E,L,h)}return Ba.compact(E)}});var wh=Ce((F1,Lh)=>{var rE=Th(),nE=_h(),sE=Uc();Lh.exports={formats:sE,parse:nE,stringify:rE}});var Ju=document.createElement("style");Ju.textContent=`.fp-spins-container {
|
|
51
34
|
container-type: inline-size;
|
|
52
35
|
container-name: spins-container;
|
|
53
36
|
display: flex;
|
|
@@ -71,11 +54,9 @@ Error `,{adTag:O,err:U}),this.requestAd(O,m+1,y)}}resetSchedule(c){this._schedul
|
|
|
71
54
|
aspect-ratio: 9 / 16;
|
|
72
55
|
}
|
|
73
56
|
|
|
74
|
-
.fp-spins-container
|
|
75
|
-
margin: 0 auto;
|
|
57
|
+
.fp-spins-container {
|
|
76
58
|
aspect-ratio: 9 / 16;
|
|
77
59
|
width: unset;
|
|
78
|
-
height: 95%;
|
|
79
60
|
}
|
|
80
61
|
|
|
81
62
|
.fp-spins-container .flowplayer.is-spins .fp-controls {
|
|
@@ -102,11 +83,18 @@ Error `,{adTag:O,err:U}),this.requestAd(O,m+1,y)}}resetSchedule(c){this._schedul
|
|
|
102
83
|
}
|
|
103
84
|
|
|
104
85
|
.is-spins {
|
|
105
|
-
position: absolute !important;
|
|
106
|
-
left: 0;
|
|
107
|
-
right: 0;
|
|
108
86
|
z-index: 1;
|
|
109
87
|
height: 100%;
|
|
88
|
+
position: absolute;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.is-spins.is-ad-player {
|
|
92
|
+
z-index: 3;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.is-spins.is-ad-player .fp-controls,
|
|
96
|
+
.is-spins.is-ad-player .fp-header {
|
|
97
|
+
display: none;
|
|
110
98
|
}
|
|
111
99
|
|
|
112
100
|
.is-spins.is-paused .fp-footer {
|
|
@@ -204,4 +192,16 @@ Error `,{adTag:O,err:U}),this.requestAd(O,m+1,y)}}resetSchedule(c){this._schedul
|
|
|
204
192
|
.is-spins.is-paused:not(.has-menu-opened) .fp-controls {
|
|
205
193
|
transform: translateY(-2em);
|
|
206
194
|
}
|
|
207
|
-
`;document.head.prepend(hc);var fc={};el(fc,{SPIN_IN_VIEWPORT:()=>ma,SPIN_CREATED:()=>il});var il="spin:created",ma="spin:viewport";function nl(...o){let g=[].join.call(o,"/");if(g[0]!=="/")g="/"+g;return"https://ljsp.lwcdn.com/web/public/native/config"+g}function rl(o){return~o.indexOf("/")?o:"/media/"+o}var tu=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/,eu=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/,iu=/^[A-Za-z0-9]{8}$/,nu=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/[A-Za-z0-9]{8}$/;function ru(o,g){if(tu.test(o)||eu.test(o))return g.type="video/ovp",!0;return!1}function su(o,g){if(iu.test(o)||nu.test(o)){if(g)g.type="video/ovp";return!0}return!1}function au(o){return typeof o==="object"&&o.type==="ovp/base64"}function mc(o,g){return ru(o,g)||su(o,g)||au(g)}var bt={};el(bt,{void:()=>Vu,util:()=>Le,unknown:()=>Hu,union:()=>Yu,undefined:()=>Uu,tuple:()=>Ju,transformer:()=>oh,symbol:()=>Bu,string:()=>Ac,strictObject:()=>qu,setErrorMap:()=>cu,set:()=>th,record:()=>Qu,quotelessJson:()=>ou,promise:()=>ah,preprocess:()=>dh,pipeline:()=>uh,ostring:()=>hh,optional:()=>lh,onumber:()=>fh,oboolean:()=>mh,objectUtil:()=>sl,object:()=>ju,number:()=>_c,nullable:()=>ch,null:()=>$u,never:()=>Ku,nativeEnum:()=>sh,nan:()=>Pu,map:()=>Zu,makeIssue:()=>ga,literal:()=>nh,lazy:()=>ih,late:()=>xu,isValid:()=>vr,isDirty:()=>qa,isAsync:()=>Ts,isAborted:()=>ja,intersection:()=>Xu,instanceof:()=>Nu,getParsedType:()=>_n,getErrorMap:()=>bs,function:()=>eh,enum:()=>rh,effect:()=>oh,discriminatedUnion:()=>zu,defaultErrorMap:()=>qn,datetimeRegex:()=>Sc,date:()=>Fu,custom:()=>Tc,coerce:()=>gh,boolean:()=>Lc,bigint:()=>Mu,array:()=>Wu,any:()=>Gu,addIssueToContext:()=>Ht,ZodVoid:()=>va,ZodUnknown:()=>yr,ZodUnion:()=>Rs,ZodUndefined:()=>ws,ZodType:()=>Ae,ZodTuple:()=>wn,ZodTransformer:()=>Sn,ZodSymbol:()=>pa,ZodString:()=>pn,ZodSet:()=>qr,ZodSchema:()=>Ae,ZodRecord:()=>ya,ZodReadonly:()=>Ps,ZodPromise:()=>Yr,ZodPipeline:()=>ba,ZodParsedType:()=>Ut,ZodOptional:()=>yn,ZodObject:()=>je,ZodNumber:()=>Er,ZodNullable:()=>zn,ZodNull:()=>ks,ZodNever:()=>Ln,ZodNativeEnum:()=>Os,ZodNaN:()=>Sa,ZodMap:()=>Ea,ZodLiteral:()=>Is,ZodLazy:()=>Cs,ZodIssueCode:()=>kt,ZodIntersection:()=>Ds,ZodFunction:()=>_s,ZodFirstPartyTypeKind:()=>ue,ZodError:()=>ji,ZodEnum:()=>br,ZodEffects:()=>Sn,ZodDiscriminatedUnion:()=>Ya,ZodDefault:()=>xs,ZodDate:()=>Wr,ZodCatch:()=>Ns,ZodBranded:()=>za,ZodBoolean:()=>Ls,ZodBigInt:()=>Sr,ZodArray:()=>vn,ZodAny:()=>jr,Schema:()=>Ae,ParseStatus:()=>Ti,OK:()=>Ci,NEVER:()=>ph,INVALID:()=>le,EMPTY_PATH:()=>du,DIRTY:()=>Vr,BRAND:()=>Ou});var Le;(function(o){o.assertEqual=(L)=>{};function g(L){}o.assertIs=g;function S(L){throw new Error}o.assertNever=S,o.arrayToEnum=(L)=>{let P={};for(let F of L)P[F]=F;return P},o.getValidEnumValues=(L)=>{let P=o.objectKeys(L).filter((z)=>typeof L[L[z]]!=="number"),F={};for(let z of P)F[z]=L[z];return o.objectValues(F)},o.objectValues=(L)=>{return o.objectKeys(L).map(function(P){return L[P]})},o.objectKeys=typeof Object.keys==="function"?(L)=>Object.keys(L):(L)=>{let P=[];for(let F in L)if(Object.prototype.hasOwnProperty.call(L,F))P.push(F);return P},o.find=(L,P)=>{for(let F of L)if(P(F))return F;return},o.isInteger=typeof Number.isInteger==="function"?(L)=>Number.isInteger(L):(L)=>typeof L==="number"&&Number.isFinite(L)&&Math.floor(L)===L;function R(L,P=" | "){return L.map((F)=>typeof F==="string"?`'${F}'`:F).join(P)}o.joinValues=R,o.jsonStringifyReplacer=(L,P)=>{if(typeof P==="bigint")return P.toString();return P}})(Le||(Le={}));var sl;(function(o){o.mergeShapes=(g,S)=>{return{...g,...S}}})(sl||(sl={}));var Ut=Le.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),_n=(o)=>{switch(typeof o){case"undefined":return Ut.undefined;case"string":return Ut.string;case"number":return Number.isNaN(o)?Ut.nan:Ut.number;case"boolean":return Ut.boolean;case"function":return Ut.function;case"bigint":return Ut.bigint;case"symbol":return Ut.symbol;case"object":if(Array.isArray(o))return Ut.array;if(o===null)return Ut.null;if(o.then&&typeof o.then==="function"&&o.catch&&typeof o.catch==="function")return Ut.promise;if(typeof Map!=="undefined"&&o instanceof Map)return Ut.map;if(typeof Set!=="undefined"&&o instanceof Set)return Ut.set;if(typeof Date!=="undefined"&&o instanceof Date)return Ut.date;return Ut.object;default:return Ut.unknown}};var kt=Le.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),ou=(o)=>{return JSON.stringify(o,null,2).replace(/"([^"]+)":/g,"$1:")};class ji extends Error{get errors(){return this.issues}constructor(o){super();this.issues=[],this.addIssue=(S)=>{this.issues=[...this.issues,S]},this.addIssues=(S=[])=>{this.issues=[...this.issues,...S]};let g=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,g);else this.__proto__=g;this.name="ZodError",this.issues=o}format(o){let g=o||function(L){return L.message},S={_errors:[]},R=(L)=>{for(let P of L.issues)if(P.code==="invalid_union")P.unionErrors.map(R);else if(P.code==="invalid_return_type")R(P.returnTypeError);else if(P.code==="invalid_arguments")R(P.argumentsError);else if(P.path.length===0)S._errors.push(g(P));else{let F=S,z=0;while(z<P.path.length){let j=P.path[z];if(z!==P.path.length-1)F[j]=F[j]||{_errors:[]};else F[j]=F[j]||{_errors:[]},F[j]._errors.push(g(P));F=F[j],z++}}};return R(this),S}static assert(o){if(!(o instanceof ji))throw new Error(`Not a ZodError: ${o}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Le.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(o=(g)=>g.message){let g={},S=[];for(let R of this.issues)if(R.path.length>0){let L=R.path[0];g[L]=g[L]||[],g[L].push(o(R))}else S.push(o(R));return{formErrors:S,fieldErrors:g}}get formErrors(){return this.flatten()}}ji.create=(o)=>{return new ji(o)};var lu=(o,g)=>{let S;switch(o.code){case kt.invalid_type:if(o.received===Ut.undefined)S="Required";else S=`Expected ${o.expected}, received ${o.received}`;break;case kt.invalid_literal:S=`Invalid literal value, expected ${JSON.stringify(o.expected,Le.jsonStringifyReplacer)}`;break;case kt.unrecognized_keys:S=`Unrecognized key(s) in object: ${Le.joinValues(o.keys,", ")}`;break;case kt.invalid_union:S="Invalid input";break;case kt.invalid_union_discriminator:S=`Invalid discriminator value. Expected ${Le.joinValues(o.options)}`;break;case kt.invalid_enum_value:S=`Invalid enum value. Expected ${Le.joinValues(o.options)}, received '${o.received}'`;break;case kt.invalid_arguments:S="Invalid function arguments";break;case kt.invalid_return_type:S="Invalid function return type";break;case kt.invalid_date:S="Invalid date";break;case kt.invalid_string:if(typeof o.validation==="object")if("includes"in o.validation){if(S=`Invalid input: must include "${o.validation.includes}"`,typeof o.validation.position==="number")S=`${S} at one or more positions greater than or equal to ${o.validation.position}`}else if("startsWith"in o.validation)S=`Invalid input: must start with "${o.validation.startsWith}"`;else if("endsWith"in o.validation)S=`Invalid input: must end with "${o.validation.endsWith}"`;else Le.assertNever(o.validation);else if(o.validation!=="regex")S=`Invalid ${o.validation}`;else S="Invalid";break;case kt.too_small:if(o.type==="array")S=`Array must contain ${o.exact?"exactly":o.inclusive?"at least":"more than"} ${o.minimum} element(s)`;else if(o.type==="string")S=`String must contain ${o.exact?"exactly":o.inclusive?"at least":"over"} ${o.minimum} character(s)`;else if(o.type==="number")S=`Number must be ${o.exact?"exactly equal to ":o.inclusive?"greater than or equal to ":"greater than "}${o.minimum}`;else if(o.type==="bigint")S=`Number must be ${o.exact?"exactly equal to ":o.inclusive?"greater than or equal to ":"greater than "}${o.minimum}`;else if(o.type==="date")S=`Date must be ${o.exact?"exactly equal to ":o.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(o.minimum))}`;else S="Invalid input";break;case kt.too_big:if(o.type==="array")S=`Array must contain ${o.exact?"exactly":o.inclusive?"at most":"less than"} ${o.maximum} element(s)`;else if(o.type==="string")S=`String must contain ${o.exact?"exactly":o.inclusive?"at most":"under"} ${o.maximum} character(s)`;else if(o.type==="number")S=`Number must be ${o.exact?"exactly":o.inclusive?"less than or equal to":"less than"} ${o.maximum}`;else if(o.type==="bigint")S=`BigInt must be ${o.exact?"exactly":o.inclusive?"less than or equal to":"less than"} ${o.maximum}`;else if(o.type==="date")S=`Date must be ${o.exact?"exactly":o.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(o.maximum))}`;else S="Invalid input";break;case kt.custom:S="Invalid input";break;case kt.invalid_intersection_types:S="Intersection results could not be merged";break;case kt.not_multiple_of:S=`Number must be a multiple of ${o.multipleOf}`;break;case kt.not_finite:S="Number must be finite";break;default:S=g.defaultError,Le.assertNever(o)}return{message:S}},qn=lu;var gc=qn;function cu(o){gc=o}function bs(){return gc}var ga=(o)=>{let{data:g,path:S,errorMaps:R,issueData:L}=o,P=[...S,...L.path||[]],F={...L,path:P};if(L.message!==void 0)return{...L,path:P,message:L.message};let z="",j=R.filter((Nt)=>!!Nt).slice().reverse();for(let Nt of j)z=Nt(F,{data:g,defaultError:z}).message;return{...L,path:P,message:z}},du=[];function Ht(o,g){let S=bs(),R=ga({issueData:g,data:o.data,path:o.path,errorMaps:[o.common.contextualErrorMap,o.schemaErrorMap,S,S===qn?void 0:qn].filter((L)=>!!L)});o.common.issues.push(R)}class Ti{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(o,g){let S=[];for(let R of g){if(R.status==="aborted")return le;if(R.status==="dirty")o.dirty();S.push(R.value)}return{status:o.value,value:S}}static async mergeObjectAsync(o,g){let S=[];for(let R of g){let L=await R.key,P=await R.value;S.push({key:L,value:P})}return Ti.mergeObjectSync(o,S)}static mergeObjectSync(o,g){let S={};for(let R of g){let{key:L,value:P}=R;if(L.status==="aborted")return le;if(P.status==="aborted")return le;if(L.status==="dirty")o.dirty();if(P.status==="dirty")o.dirty();if(L.value!=="__proto__"&&(typeof P.value!=="undefined"||R.alwaysSet))S[L.value]=P.value}return{status:o.value,value:S}}}var le=Object.freeze({status:"aborted"}),Vr=(o)=>({status:"dirty",value:o}),Ci=(o)=>({status:"valid",value:o}),ja=(o)=>o.status==="aborted",qa=(o)=>o.status==="dirty",vr=(o)=>o.status==="valid",Ts=(o)=>typeof Promise!=="undefined"&&o instanceof Promise;var ee;(function(o){o.errToObj=(g)=>typeof g==="string"?{message:g}:g||{},o.toString=(g)=>typeof g==="string"?g:g?.message})(ee||(ee={}));class En{constructor(o,g,S,R){this._cachedPath=[],this.parent=o,this.data=g,this._path=S,this._key=R}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var pc=(o,g)=>{if(vr(g))return{success:!0,data:g.value};else{if(!o.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let S=new ji(o.common.issues);return this._error=S,this._error}}}};function Ee(o){if(!o)return{};let{errorMap:g,invalid_type_error:S,required_error:R,description:L}=o;if(g&&(S||R))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(g)return{errorMap:g,description:L};return{errorMap:(F,z)=>{let{message:j}=o;if(F.code==="invalid_enum_value")return{message:j??z.defaultError};if(typeof z.data==="undefined")return{message:j??R??z.defaultError};if(F.code!=="invalid_type")return{message:z.defaultError};return{message:j??S??z.defaultError}},description:L}}class Ae{get description(){return this._def.description}_getType(o){return _n(o.data)}_getOrReturnCtx(o,g){return g||{common:o.parent.common,data:o.data,parsedType:_n(o.data),schemaErrorMap:this._def.errorMap,path:o.path,parent:o.parent}}_processInputParams(o){return{status:new Ti,ctx:{common:o.parent.common,data:o.data,parsedType:_n(o.data),schemaErrorMap:this._def.errorMap,path:o.path,parent:o.parent}}}_parseSync(o){let g=this._parse(o);if(Ts(g))throw new Error("Synchronous parse encountered promise.");return g}_parseAsync(o){let g=this._parse(o);return Promise.resolve(g)}parse(o,g){let S=this.safeParse(o,g);if(S.success)return S.data;throw S.error}safeParse(o,g){let S={common:{issues:[],async:g?.async??!1,contextualErrorMap:g?.errorMap},path:g?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:o,parsedType:_n(o)},R=this._parseSync({data:o,path:S.path,parent:S});return pc(S,R)}"~validate"(o){let g={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:o,parsedType:_n(o)};if(!this["~standard"].async)try{let S=this._parseSync({data:o,path:[],parent:g});return vr(S)?{value:S.value}:{issues:g.common.issues}}catch(S){if(S?.message?.toLowerCase()?.includes("encountered"))this["~standard"].async=!0;g.common={issues:[],async:!0}}return this._parseAsync({data:o,path:[],parent:g}).then((S)=>vr(S)?{value:S.value}:{issues:g.common.issues})}async parseAsync(o,g){let S=await this.safeParseAsync(o,g);if(S.success)return S.data;throw S.error}async safeParseAsync(o,g){let S={common:{issues:[],contextualErrorMap:g?.errorMap,async:!0},path:g?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:o,parsedType:_n(o)},R=this._parse({data:o,path:S.path,parent:S}),L=await(Ts(R)?R:Promise.resolve(R));return pc(S,L)}refine(o,g){let S=(R)=>{if(typeof g==="string"||typeof g==="undefined")return{message:g};else if(typeof g==="function")return g(R);else return g};return this._refinement((R,L)=>{let P=o(R),F=()=>L.addIssue({code:kt.custom,...S(R)});if(typeof Promise!=="undefined"&&P instanceof Promise)return P.then((z)=>{if(!z)return F(),!1;else return!0});if(!P)return F(),!1;else return!0})}refinement(o,g){return this._refinement((S,R)=>{if(!o(S))return R.addIssue(typeof g==="function"?g(S,R):g),!1;else return!0})}_refinement(o){return new Sn({schema:this,typeName:ue.ZodEffects,effect:{type:"refinement",refinement:o}})}superRefine(o){return this._refinement(o)}constructor(o){this.spa=this.safeParseAsync,this._def=o,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:(g)=>this["~validate"](g)}}optional(){return yn.create(this,this._def)}nullable(){return zn.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return vn.create(this)}promise(){return Yr.create(this,this._def)}or(o){return Rs.create([this,o],this._def)}and(o){return Ds.create(this,o,this._def)}transform(o){return new Sn({...Ee(this._def),schema:this,typeName:ue.ZodEffects,effect:{type:"transform",transform:o}})}default(o){let g=typeof o==="function"?o:()=>o;return new xs({...Ee(this._def),innerType:this,defaultValue:g,typeName:ue.ZodDefault})}brand(){return new za({typeName:ue.ZodBranded,type:this,...Ee(this._def)})}catch(o){let g=typeof o==="function"?o:()=>o;return new Ns({...Ee(this._def),innerType:this,catchValue:g,typeName:ue.ZodCatch})}describe(o){return new this.constructor({...this._def,description:o})}pipe(o){return ba.create(this,o)}readonly(){return Ps.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var uu=/^c[^\s-]{8,}$/i,hu=/^[0-9a-z]+$/,fu=/^[0-9A-HJKMNP-TV-Z]{26}$/i,mu=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,gu=/^[a-z0-9_-]{21}$/i,pu=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,vu=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,yu=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Eu="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",al,Su=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,bu=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Tu=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Au=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,_u=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Lu=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,yc="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",wu=new RegExp(`^${yc}$`);function Ec(o){let g="[0-5]\\d";if(o.precision)g=`${g}\\.\\d{${o.precision}}`;else if(o.precision==null)g=`${g}(\\.\\d+)?`;let S=o.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${g})${S}`}function ku(o){return new RegExp(`^${Ec(o)}$`)}function Sc(o){let g=`${yc}T${Ec(o)}`,S=[];if(S.push(o.local?"Z?":"Z"),o.offset)S.push("([+-]\\d{2}:?\\d{2})");return g=`${g}(${S.join("|")})`,new RegExp(`^${g}$`)}function Ru(o,g){if((g==="v4"||!g)&&Su.test(o))return!0;if((g==="v6"||!g)&&Tu.test(o))return!0;return!1}function Du(o,g){if(!pu.test(o))return!1;try{let[S]=o.split(".");if(!S)return!1;let R=S.replace(/-/g,"+").replace(/_/g,"/").padEnd(S.length+(4-S.length%4)%4,"="),L=JSON.parse(atob(R));if(typeof L!=="object"||L===null)return!1;if("typ"in L&&L?.typ!=="JWT")return!1;if(!L.alg)return!1;if(g&&L.alg!==g)return!1;return!0}catch{return!1}}function Cu(o,g){if((g==="v4"||!g)&&bu.test(o))return!0;if((g==="v6"||!g)&&Au.test(o))return!0;return!1}class pn extends Ae{_parse(o){if(this._def.coerce)o.data=String(o.data);if(this._getType(o)!==Ut.string){let L=this._getOrReturnCtx(o);return Ht(L,{code:kt.invalid_type,expected:Ut.string,received:L.parsedType}),le}let S=new Ti,R=void 0;for(let L of this._def.checks)if(L.kind==="min"){if(o.data.length<L.value)R=this._getOrReturnCtx(o,R),Ht(R,{code:kt.too_small,minimum:L.value,type:"string",inclusive:!0,exact:!1,message:L.message}),S.dirty()}else if(L.kind==="max"){if(o.data.length>L.value)R=this._getOrReturnCtx(o,R),Ht(R,{code:kt.too_big,maximum:L.value,type:"string",inclusive:!0,exact:!1,message:L.message}),S.dirty()}else if(L.kind==="length"){let P=o.data.length>L.value,F=o.data.length<L.value;if(P||F){if(R=this._getOrReturnCtx(o,R),P)Ht(R,{code:kt.too_big,maximum:L.value,type:"string",inclusive:!0,exact:!0,message:L.message});else if(F)Ht(R,{code:kt.too_small,minimum:L.value,type:"string",inclusive:!0,exact:!0,message:L.message});S.dirty()}}else if(L.kind==="email"){if(!yu.test(o.data))R=this._getOrReturnCtx(o,R),Ht(R,{validation:"email",code:kt.invalid_string,message:L.message}),S.dirty()}else if(L.kind==="emoji"){if(!al)al=new RegExp(Eu,"u");if(!al.test(o.data))R=this._getOrReturnCtx(o,R),Ht(R,{validation:"emoji",code:kt.invalid_string,message:L.message}),S.dirty()}else if(L.kind==="uuid"){if(!mu.test(o.data))R=this._getOrReturnCtx(o,R),Ht(R,{validation:"uuid",code:kt.invalid_string,message:L.message}),S.dirty()}else if(L.kind==="nanoid"){if(!gu.test(o.data))R=this._getOrReturnCtx(o,R),Ht(R,{validation:"nanoid",code:kt.invalid_string,message:L.message}),S.dirty()}else if(L.kind==="cuid"){if(!uu.test(o.data))R=this._getOrReturnCtx(o,R),Ht(R,{validation:"cuid",code:kt.invalid_string,message:L.message}),S.dirty()}else if(L.kind==="cuid2"){if(!hu.test(o.data))R=this._getOrReturnCtx(o,R),Ht(R,{validation:"cuid2",code:kt.invalid_string,message:L.message}),S.dirty()}else if(L.kind==="ulid"){if(!fu.test(o.data))R=this._getOrReturnCtx(o,R),Ht(R,{validation:"ulid",code:kt.invalid_string,message:L.message}),S.dirty()}else if(L.kind==="url")try{new URL(o.data)}catch{R=this._getOrReturnCtx(o,R),Ht(R,{validation:"url",code:kt.invalid_string,message:L.message}),S.dirty()}else if(L.kind==="regex"){if(L.regex.lastIndex=0,!L.regex.test(o.data))R=this._getOrReturnCtx(o,R),Ht(R,{validation:"regex",code:kt.invalid_string,message:L.message}),S.dirty()}else if(L.kind==="trim")o.data=o.data.trim();else if(L.kind==="includes"){if(!o.data.includes(L.value,L.position))R=this._getOrReturnCtx(o,R),Ht(R,{code:kt.invalid_string,validation:{includes:L.value,position:L.position},message:L.message}),S.dirty()}else if(L.kind==="toLowerCase")o.data=o.data.toLowerCase();else if(L.kind==="toUpperCase")o.data=o.data.toUpperCase();else if(L.kind==="startsWith"){if(!o.data.startsWith(L.value))R=this._getOrReturnCtx(o,R),Ht(R,{code:kt.invalid_string,validation:{startsWith:L.value},message:L.message}),S.dirty()}else if(L.kind==="endsWith"){if(!o.data.endsWith(L.value))R=this._getOrReturnCtx(o,R),Ht(R,{code:kt.invalid_string,validation:{endsWith:L.value},message:L.message}),S.dirty()}else if(L.kind==="datetime"){if(!Sc(L).test(o.data))R=this._getOrReturnCtx(o,R),Ht(R,{code:kt.invalid_string,validation:"datetime",message:L.message}),S.dirty()}else if(L.kind==="date"){if(!wu.test(o.data))R=this._getOrReturnCtx(o,R),Ht(R,{code:kt.invalid_string,validation:"date",message:L.message}),S.dirty()}else if(L.kind==="time"){if(!ku(L).test(o.data))R=this._getOrReturnCtx(o,R),Ht(R,{code:kt.invalid_string,validation:"time",message:L.message}),S.dirty()}else if(L.kind==="duration"){if(!vu.test(o.data))R=this._getOrReturnCtx(o,R),Ht(R,{validation:"duration",code:kt.invalid_string,message:L.message}),S.dirty()}else if(L.kind==="ip"){if(!Ru(o.data,L.version))R=this._getOrReturnCtx(o,R),Ht(R,{validation:"ip",code:kt.invalid_string,message:L.message}),S.dirty()}else if(L.kind==="jwt"){if(!Du(o.data,L.alg))R=this._getOrReturnCtx(o,R),Ht(R,{validation:"jwt",code:kt.invalid_string,message:L.message}),S.dirty()}else if(L.kind==="cidr"){if(!Cu(o.data,L.version))R=this._getOrReturnCtx(o,R),Ht(R,{validation:"cidr",code:kt.invalid_string,message:L.message}),S.dirty()}else if(L.kind==="base64"){if(!_u.test(o.data))R=this._getOrReturnCtx(o,R),Ht(R,{validation:"base64",code:kt.invalid_string,message:L.message}),S.dirty()}else if(L.kind==="base64url"){if(!Lu.test(o.data))R=this._getOrReturnCtx(o,R),Ht(R,{validation:"base64url",code:kt.invalid_string,message:L.message}),S.dirty()}else Le.assertNever(L);return{status:S.value,value:o.data}}_regex(o,g,S){return this.refinement((R)=>o.test(R),{validation:g,code:kt.invalid_string,...ee.errToObj(S)})}_addCheck(o){return new pn({...this._def,checks:[...this._def.checks,o]})}email(o){return this._addCheck({kind:"email",...ee.errToObj(o)})}url(o){return this._addCheck({kind:"url",...ee.errToObj(o)})}emoji(o){return this._addCheck({kind:"emoji",...ee.errToObj(o)})}uuid(o){return this._addCheck({kind:"uuid",...ee.errToObj(o)})}nanoid(o){return this._addCheck({kind:"nanoid",...ee.errToObj(o)})}cuid(o){return this._addCheck({kind:"cuid",...ee.errToObj(o)})}cuid2(o){return this._addCheck({kind:"cuid2",...ee.errToObj(o)})}ulid(o){return this._addCheck({kind:"ulid",...ee.errToObj(o)})}base64(o){return this._addCheck({kind:"base64",...ee.errToObj(o)})}base64url(o){return this._addCheck({kind:"base64url",...ee.errToObj(o)})}jwt(o){return this._addCheck({kind:"jwt",...ee.errToObj(o)})}ip(o){return this._addCheck({kind:"ip",...ee.errToObj(o)})}cidr(o){return this._addCheck({kind:"cidr",...ee.errToObj(o)})}datetime(o){if(typeof o==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:o});return this._addCheck({kind:"datetime",precision:typeof o?.precision==="undefined"?null:o?.precision,offset:o?.offset??!1,local:o?.local??!1,...ee.errToObj(o?.message)})}date(o){return this._addCheck({kind:"date",message:o})}time(o){if(typeof o==="string")return this._addCheck({kind:"time",precision:null,message:o});return this._addCheck({kind:"time",precision:typeof o?.precision==="undefined"?null:o?.precision,...ee.errToObj(o?.message)})}duration(o){return this._addCheck({kind:"duration",...ee.errToObj(o)})}regex(o,g){return this._addCheck({kind:"regex",regex:o,...ee.errToObj(g)})}includes(o,g){return this._addCheck({kind:"includes",value:o,position:g?.position,...ee.errToObj(g?.message)})}startsWith(o,g){return this._addCheck({kind:"startsWith",value:o,...ee.errToObj(g)})}endsWith(o,g){return this._addCheck({kind:"endsWith",value:o,...ee.errToObj(g)})}min(o,g){return this._addCheck({kind:"min",value:o,...ee.errToObj(g)})}max(o,g){return this._addCheck({kind:"max",value:o,...ee.errToObj(g)})}length(o,g){return this._addCheck({kind:"length",value:o,...ee.errToObj(g)})}nonempty(o){return this.min(1,ee.errToObj(o))}trim(){return new pn({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new pn({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new pn({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((o)=>o.kind==="datetime")}get isDate(){return!!this._def.checks.find((o)=>o.kind==="date")}get isTime(){return!!this._def.checks.find((o)=>o.kind==="time")}get isDuration(){return!!this._def.checks.find((o)=>o.kind==="duration")}get isEmail(){return!!this._def.checks.find((o)=>o.kind==="email")}get isURL(){return!!this._def.checks.find((o)=>o.kind==="url")}get isEmoji(){return!!this._def.checks.find((o)=>o.kind==="emoji")}get isUUID(){return!!this._def.checks.find((o)=>o.kind==="uuid")}get isNANOID(){return!!this._def.checks.find((o)=>o.kind==="nanoid")}get isCUID(){return!!this._def.checks.find((o)=>o.kind==="cuid")}get isCUID2(){return!!this._def.checks.find((o)=>o.kind==="cuid2")}get isULID(){return!!this._def.checks.find((o)=>o.kind==="ulid")}get isIP(){return!!this._def.checks.find((o)=>o.kind==="ip")}get isCIDR(){return!!this._def.checks.find((o)=>o.kind==="cidr")}get isBase64(){return!!this._def.checks.find((o)=>o.kind==="base64")}get isBase64url(){return!!this._def.checks.find((o)=>o.kind==="base64url")}get minLength(){let o=null;for(let g of this._def.checks)if(g.kind==="min"){if(o===null||g.value>o)o=g.value}return o}get maxLength(){let o=null;for(let g of this._def.checks)if(g.kind==="max"){if(o===null||g.value<o)o=g.value}return o}}pn.create=(o)=>{return new pn({checks:[],typeName:ue.ZodString,coerce:o?.coerce??!1,...Ee(o)})};function Iu(o,g){let S=(o.toString().split(".")[1]||"").length,R=(g.toString().split(".")[1]||"").length,L=S>R?S:R,P=Number.parseInt(o.toFixed(L).replace(".","")),F=Number.parseInt(g.toFixed(L).replace(".",""));return P%F/10**L}class Er extends Ae{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(o){if(this._def.coerce)o.data=Number(o.data);if(this._getType(o)!==Ut.number){let L=this._getOrReturnCtx(o);return Ht(L,{code:kt.invalid_type,expected:Ut.number,received:L.parsedType}),le}let S=void 0,R=new Ti;for(let L of this._def.checks)if(L.kind==="int"){if(!Le.isInteger(o.data))S=this._getOrReturnCtx(o,S),Ht(S,{code:kt.invalid_type,expected:"integer",received:"float",message:L.message}),R.dirty()}else if(L.kind==="min"){if(L.inclusive?o.data<L.value:o.data<=L.value)S=this._getOrReturnCtx(o,S),Ht(S,{code:kt.too_small,minimum:L.value,type:"number",inclusive:L.inclusive,exact:!1,message:L.message}),R.dirty()}else if(L.kind==="max"){if(L.inclusive?o.data>L.value:o.data>=L.value)S=this._getOrReturnCtx(o,S),Ht(S,{code:kt.too_big,maximum:L.value,type:"number",inclusive:L.inclusive,exact:!1,message:L.message}),R.dirty()}else if(L.kind==="multipleOf"){if(Iu(o.data,L.value)!==0)S=this._getOrReturnCtx(o,S),Ht(S,{code:kt.not_multiple_of,multipleOf:L.value,message:L.message}),R.dirty()}else if(L.kind==="finite"){if(!Number.isFinite(o.data))S=this._getOrReturnCtx(o,S),Ht(S,{code:kt.not_finite,message:L.message}),R.dirty()}else Le.assertNever(L);return{status:R.value,value:o.data}}gte(o,g){return this.setLimit("min",o,!0,ee.toString(g))}gt(o,g){return this.setLimit("min",o,!1,ee.toString(g))}lte(o,g){return this.setLimit("max",o,!0,ee.toString(g))}lt(o,g){return this.setLimit("max",o,!1,ee.toString(g))}setLimit(o,g,S,R){return new Er({...this._def,checks:[...this._def.checks,{kind:o,value:g,inclusive:S,message:ee.toString(R)}]})}_addCheck(o){return new Er({...this._def,checks:[...this._def.checks,o]})}int(o){return this._addCheck({kind:"int",message:ee.toString(o)})}positive(o){return this._addCheck({kind:"min",value:0,inclusive:!1,message:ee.toString(o)})}negative(o){return this._addCheck({kind:"max",value:0,inclusive:!1,message:ee.toString(o)})}nonpositive(o){return this._addCheck({kind:"max",value:0,inclusive:!0,message:ee.toString(o)})}nonnegative(o){return this._addCheck({kind:"min",value:0,inclusive:!0,message:ee.toString(o)})}multipleOf(o,g){return this._addCheck({kind:"multipleOf",value:o,message:ee.toString(g)})}finite(o){return this._addCheck({kind:"finite",message:ee.toString(o)})}safe(o){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:ee.toString(o)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:ee.toString(o)})}get minValue(){let o=null;for(let g of this._def.checks)if(g.kind==="min"){if(o===null||g.value>o)o=g.value}return o}get maxValue(){let o=null;for(let g of this._def.checks)if(g.kind==="max"){if(o===null||g.value<o)o=g.value}return o}get isInt(){return!!this._def.checks.find((o)=>o.kind==="int"||o.kind==="multipleOf"&&Le.isInteger(o.value))}get isFinite(){let o=null,g=null;for(let S of this._def.checks)if(S.kind==="finite"||S.kind==="int"||S.kind==="multipleOf")return!0;else if(S.kind==="min"){if(g===null||S.value>g)g=S.value}else if(S.kind==="max"){if(o===null||S.value<o)o=S.value}return Number.isFinite(g)&&Number.isFinite(o)}}Er.create=(o)=>{return new Er({checks:[],typeName:ue.ZodNumber,coerce:o?.coerce||!1,...Ee(o)})};class Sr extends Ae{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(o){if(this._def.coerce)try{o.data=BigInt(o.data)}catch{return this._getInvalidInput(o)}if(this._getType(o)!==Ut.bigint)return this._getInvalidInput(o);let S=void 0,R=new Ti;for(let L of this._def.checks)if(L.kind==="min"){if(L.inclusive?o.data<L.value:o.data<=L.value)S=this._getOrReturnCtx(o,S),Ht(S,{code:kt.too_small,type:"bigint",minimum:L.value,inclusive:L.inclusive,message:L.message}),R.dirty()}else if(L.kind==="max"){if(L.inclusive?o.data>L.value:o.data>=L.value)S=this._getOrReturnCtx(o,S),Ht(S,{code:kt.too_big,type:"bigint",maximum:L.value,inclusive:L.inclusive,message:L.message}),R.dirty()}else if(L.kind==="multipleOf"){if(o.data%L.value!==BigInt(0))S=this._getOrReturnCtx(o,S),Ht(S,{code:kt.not_multiple_of,multipleOf:L.value,message:L.message}),R.dirty()}else Le.assertNever(L);return{status:R.value,value:o.data}}_getInvalidInput(o){let g=this._getOrReturnCtx(o);return Ht(g,{code:kt.invalid_type,expected:Ut.bigint,received:g.parsedType}),le}gte(o,g){return this.setLimit("min",o,!0,ee.toString(g))}gt(o,g){return this.setLimit("min",o,!1,ee.toString(g))}lte(o,g){return this.setLimit("max",o,!0,ee.toString(g))}lt(o,g){return this.setLimit("max",o,!1,ee.toString(g))}setLimit(o,g,S,R){return new Sr({...this._def,checks:[...this._def.checks,{kind:o,value:g,inclusive:S,message:ee.toString(R)}]})}_addCheck(o){return new Sr({...this._def,checks:[...this._def.checks,o]})}positive(o){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:ee.toString(o)})}negative(o){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:ee.toString(o)})}nonpositive(o){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:ee.toString(o)})}nonnegative(o){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:ee.toString(o)})}multipleOf(o,g){return this._addCheck({kind:"multipleOf",value:o,message:ee.toString(g)})}get minValue(){let o=null;for(let g of this._def.checks)if(g.kind==="min"){if(o===null||g.value>o)o=g.value}return o}get maxValue(){let o=null;for(let g of this._def.checks)if(g.kind==="max"){if(o===null||g.value<o)o=g.value}return o}}Sr.create=(o)=>{return new Sr({checks:[],typeName:ue.ZodBigInt,coerce:o?.coerce??!1,...Ee(o)})};class Ls extends Ae{_parse(o){if(this._def.coerce)o.data=Boolean(o.data);if(this._getType(o)!==Ut.boolean){let S=this._getOrReturnCtx(o);return Ht(S,{code:kt.invalid_type,expected:Ut.boolean,received:S.parsedType}),le}return Ci(o.data)}}Ls.create=(o)=>{return new Ls({typeName:ue.ZodBoolean,coerce:o?.coerce||!1,...Ee(o)})};class Wr extends Ae{_parse(o){if(this._def.coerce)o.data=new Date(o.data);if(this._getType(o)!==Ut.date){let L=this._getOrReturnCtx(o);return Ht(L,{code:kt.invalid_type,expected:Ut.date,received:L.parsedType}),le}if(Number.isNaN(o.data.getTime())){let L=this._getOrReturnCtx(o);return Ht(L,{code:kt.invalid_date}),le}let S=new Ti,R=void 0;for(let L of this._def.checks)if(L.kind==="min"){if(o.data.getTime()<L.value)R=this._getOrReturnCtx(o,R),Ht(R,{code:kt.too_small,message:L.message,inclusive:!0,exact:!1,minimum:L.value,type:"date"}),S.dirty()}else if(L.kind==="max"){if(o.data.getTime()>L.value)R=this._getOrReturnCtx(o,R),Ht(R,{code:kt.too_big,message:L.message,inclusive:!0,exact:!1,maximum:L.value,type:"date"}),S.dirty()}else Le.assertNever(L);return{status:S.value,value:new Date(o.data.getTime())}}_addCheck(o){return new Wr({...this._def,checks:[...this._def.checks,o]})}min(o,g){return this._addCheck({kind:"min",value:o.getTime(),message:ee.toString(g)})}max(o,g){return this._addCheck({kind:"max",value:o.getTime(),message:ee.toString(g)})}get minDate(){let o=null;for(let g of this._def.checks)if(g.kind==="min"){if(o===null||g.value>o)o=g.value}return o!=null?new Date(o):null}get maxDate(){let o=null;for(let g of this._def.checks)if(g.kind==="max"){if(o===null||g.value<o)o=g.value}return o!=null?new Date(o):null}}Wr.create=(o)=>{return new Wr({checks:[],coerce:o?.coerce||!1,typeName:ue.ZodDate,...Ee(o)})};class pa extends Ae{_parse(o){if(this._getType(o)!==Ut.symbol){let S=this._getOrReturnCtx(o);return Ht(S,{code:kt.invalid_type,expected:Ut.symbol,received:S.parsedType}),le}return Ci(o.data)}}pa.create=(o)=>{return new pa({typeName:ue.ZodSymbol,...Ee(o)})};class ws extends Ae{_parse(o){if(this._getType(o)!==Ut.undefined){let S=this._getOrReturnCtx(o);return Ht(S,{code:kt.invalid_type,expected:Ut.undefined,received:S.parsedType}),le}return Ci(o.data)}}ws.create=(o)=>{return new ws({typeName:ue.ZodUndefined,...Ee(o)})};class ks extends Ae{_parse(o){if(this._getType(o)!==Ut.null){let S=this._getOrReturnCtx(o);return Ht(S,{code:kt.invalid_type,expected:Ut.null,received:S.parsedType}),le}return Ci(o.data)}}ks.create=(o)=>{return new ks({typeName:ue.ZodNull,...Ee(o)})};class jr extends Ae{constructor(){super(...arguments);this._any=!0}_parse(o){return Ci(o.data)}}jr.create=(o)=>{return new jr({typeName:ue.ZodAny,...Ee(o)})};class yr extends Ae{constructor(){super(...arguments);this._unknown=!0}_parse(o){return Ci(o.data)}}yr.create=(o)=>{return new yr({typeName:ue.ZodUnknown,...Ee(o)})};class Ln extends Ae{_parse(o){let g=this._getOrReturnCtx(o);return Ht(g,{code:kt.invalid_type,expected:Ut.never,received:g.parsedType}),le}}Ln.create=(o)=>{return new Ln({typeName:ue.ZodNever,...Ee(o)})};class va extends Ae{_parse(o){if(this._getType(o)!==Ut.undefined){let S=this._getOrReturnCtx(o);return Ht(S,{code:kt.invalid_type,expected:Ut.void,received:S.parsedType}),le}return Ci(o.data)}}va.create=(o)=>{return new va({typeName:ue.ZodVoid,...Ee(o)})};class vn extends Ae{_parse(o){let{ctx:g,status:S}=this._processInputParams(o),R=this._def;if(g.parsedType!==Ut.array)return Ht(g,{code:kt.invalid_type,expected:Ut.array,received:g.parsedType}),le;if(R.exactLength!==null){let P=g.data.length>R.exactLength.value,F=g.data.length<R.exactLength.value;if(P||F)Ht(g,{code:P?kt.too_big:kt.too_small,minimum:F?R.exactLength.value:void 0,maximum:P?R.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:R.exactLength.message}),S.dirty()}if(R.minLength!==null){if(g.data.length<R.minLength.value)Ht(g,{code:kt.too_small,minimum:R.minLength.value,type:"array",inclusive:!0,exact:!1,message:R.minLength.message}),S.dirty()}if(R.maxLength!==null){if(g.data.length>R.maxLength.value)Ht(g,{code:kt.too_big,maximum:R.maxLength.value,type:"array",inclusive:!0,exact:!1,message:R.maxLength.message}),S.dirty()}if(g.common.async)return Promise.all([...g.data].map((P,F)=>{return R.type._parseAsync(new En(g,P,g.path,F))})).then((P)=>{return Ti.mergeArray(S,P)});let L=[...g.data].map((P,F)=>{return R.type._parseSync(new En(g,P,g.path,F))});return Ti.mergeArray(S,L)}get element(){return this._def.type}min(o,g){return new vn({...this._def,minLength:{value:o,message:ee.toString(g)}})}max(o,g){return new vn({...this._def,maxLength:{value:o,message:ee.toString(g)}})}length(o,g){return new vn({...this._def,exactLength:{value:o,message:ee.toString(g)}})}nonempty(o){return this.min(1,o)}}vn.create=(o,g)=>{return new vn({type:o,minLength:null,maxLength:null,exactLength:null,typeName:ue.ZodArray,...Ee(g)})};function As(o){if(o instanceof je){let g={};for(let S in o.shape){let R=o.shape[S];g[S]=yn.create(As(R))}return new je({...o._def,shape:()=>g})}else if(o instanceof vn)return new vn({...o._def,type:As(o.element)});else if(o instanceof yn)return yn.create(As(o.unwrap()));else if(o instanceof zn)return zn.create(As(o.unwrap()));else if(o instanceof wn)return wn.create(o.items.map((g)=>As(g)));else return o}class je extends Ae{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let o=this._def.shape(),g=Le.objectKeys(o);return this._cached={shape:o,keys:g},this._cached}_parse(o){if(this._getType(o)!==Ut.object){let j=this._getOrReturnCtx(o);return Ht(j,{code:kt.invalid_type,expected:Ut.object,received:j.parsedType}),le}let{status:S,ctx:R}=this._processInputParams(o),{shape:L,keys:P}=this._getCached(),F=[];if(!(this._def.catchall instanceof Ln&&this._def.unknownKeys==="strip")){for(let j in R.data)if(!P.includes(j))F.push(j)}let z=[];for(let j of P){let Nt=L[j],ne=R.data[j];z.push({key:{status:"valid",value:j},value:Nt._parse(new En(R,ne,R.path,j)),alwaysSet:j in R.data})}if(this._def.catchall instanceof Ln){let j=this._def.unknownKeys;if(j==="passthrough")for(let Nt of F)z.push({key:{status:"valid",value:Nt},value:{status:"valid",value:R.data[Nt]}});else if(j==="strict"){if(F.length>0)Ht(R,{code:kt.unrecognized_keys,keys:F}),S.dirty()}else if(j==="strip");else throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let j=this._def.catchall;for(let Nt of F){let ne=R.data[Nt];z.push({key:{status:"valid",value:Nt},value:j._parse(new En(R,ne,R.path,Nt)),alwaysSet:Nt in R.data})}}if(R.common.async)return Promise.resolve().then(async()=>{let j=[];for(let Nt of z){let ne=await Nt.key,A=await Nt.value;j.push({key:ne,value:A,alwaysSet:Nt.alwaysSet})}return j}).then((j)=>{return Ti.mergeObjectSync(S,j)});else return Ti.mergeObjectSync(S,z)}get shape(){return this._def.shape()}strict(o){return ee.errToObj,new je({...this._def,unknownKeys:"strict",...o!==void 0?{errorMap:(g,S)=>{let R=this._def.errorMap?.(g,S).message??S.defaultError;if(g.code==="unrecognized_keys")return{message:ee.errToObj(o).message??R};return{message:R}}}:{}})}strip(){return new je({...this._def,unknownKeys:"strip"})}passthrough(){return new je({...this._def,unknownKeys:"passthrough"})}extend(o){return new je({...this._def,shape:()=>({...this._def.shape(),...o})})}merge(o){return new je({unknownKeys:o._def.unknownKeys,catchall:o._def.catchall,shape:()=>({...this._def.shape(),...o._def.shape()}),typeName:ue.ZodObject})}setKey(o,g){return this.augment({[o]:g})}catchall(o){return new je({...this._def,catchall:o})}pick(o){let g={};for(let S of Le.objectKeys(o))if(o[S]&&this.shape[S])g[S]=this.shape[S];return new je({...this._def,shape:()=>g})}omit(o){let g={};for(let S of Le.objectKeys(this.shape))if(!o[S])g[S]=this.shape[S];return new je({...this._def,shape:()=>g})}deepPartial(){return As(this)}partial(o){let g={};for(let S of Le.objectKeys(this.shape)){let R=this.shape[S];if(o&&!o[S])g[S]=R;else g[S]=R.optional()}return new je({...this._def,shape:()=>g})}required(o){let g={};for(let S of Le.objectKeys(this.shape))if(o&&!o[S])g[S]=this.shape[S];else{let L=this.shape[S];while(L instanceof yn)L=L._def.innerType;g[S]=L}return new je({...this._def,shape:()=>g})}keyof(){return bc(Le.objectKeys(this.shape))}}je.create=(o,g)=>{return new je({shape:()=>o,unknownKeys:"strip",catchall:Ln.create(),typeName:ue.ZodObject,...Ee(g)})};je.strictCreate=(o,g)=>{return new je({shape:()=>o,unknownKeys:"strict",catchall:Ln.create(),typeName:ue.ZodObject,...Ee(g)})};je.lazycreate=(o,g)=>{return new je({shape:o,unknownKeys:"strip",catchall:Ln.create(),typeName:ue.ZodObject,...Ee(g)})};class Rs extends Ae{_parse(o){let{ctx:g}=this._processInputParams(o),S=this._def.options;function R(L){for(let F of L)if(F.result.status==="valid")return F.result;for(let F of L)if(F.result.status==="dirty")return g.common.issues.push(...F.ctx.common.issues),F.result;let P=L.map((F)=>new ji(F.ctx.common.issues));return Ht(g,{code:kt.invalid_union,unionErrors:P}),le}if(g.common.async)return Promise.all(S.map(async(L)=>{let P={...g,common:{...g.common,issues:[]},parent:null};return{result:await L._parseAsync({data:g.data,path:g.path,parent:P}),ctx:P}})).then(R);else{let L=void 0,P=[];for(let z of S){let j={...g,common:{...g.common,issues:[]},parent:null},Nt=z._parseSync({data:g.data,path:g.path,parent:j});if(Nt.status==="valid")return Nt;else if(Nt.status==="dirty"&&!L)L={result:Nt,ctx:j};if(j.common.issues.length)P.push(j.common.issues)}if(L)return g.common.issues.push(...L.ctx.common.issues),L.result;let F=P.map((z)=>new ji(z));return Ht(g,{code:kt.invalid_union,unionErrors:F}),le}}get options(){return this._def.options}}Rs.create=(o,g)=>{return new Rs({options:o,typeName:ue.ZodUnion,...Ee(g)})};var Yn=(o)=>{if(o instanceof Cs)return Yn(o.schema);else if(o instanceof Sn)return Yn(o.innerType());else if(o instanceof Is)return[o.value];else if(o instanceof br)return o.options;else if(o instanceof Os)return Le.objectValues(o.enum);else if(o instanceof xs)return Yn(o._def.innerType);else if(o instanceof ws)return[void 0];else if(o instanceof ks)return[null];else if(o instanceof yn)return[void 0,...Yn(o.unwrap())];else if(o instanceof zn)return[null,...Yn(o.unwrap())];else if(o instanceof za)return Yn(o.unwrap());else if(o instanceof Ps)return Yn(o.unwrap());else if(o instanceof Ns)return Yn(o._def.innerType);else return[]};class Ya extends Ae{_parse(o){let{ctx:g}=this._processInputParams(o);if(g.parsedType!==Ut.object)return Ht(g,{code:kt.invalid_type,expected:Ut.object,received:g.parsedType}),le;let S=this.discriminator,R=g.data[S],L=this.optionsMap.get(R);if(!L)return Ht(g,{code:kt.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[S]}),le;if(g.common.async)return L._parseAsync({data:g.data,path:g.path,parent:g});else return L._parseSync({data:g.data,path:g.path,parent:g})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(o,g,S){let R=new Map;for(let L of g){let P=Yn(L.shape[o]);if(!P.length)throw new Error(`A discriminator value for key \`${o}\` could not be extracted from all schema options`);for(let F of P){if(R.has(F))throw new Error(`Discriminator property ${String(o)} has duplicate value ${String(F)}`);R.set(F,L)}}return new Ya({typeName:ue.ZodDiscriminatedUnion,discriminator:o,options:g,optionsMap:R,...Ee(S)})}}function ol(o,g){let S=_n(o),R=_n(g);if(o===g)return{valid:!0,data:o};else if(S===Ut.object&&R===Ut.object){let L=Le.objectKeys(g),P=Le.objectKeys(o).filter((z)=>L.indexOf(z)!==-1),F={...o,...g};for(let z of P){let j=ol(o[z],g[z]);if(!j.valid)return{valid:!1};F[z]=j.data}return{valid:!0,data:F}}else if(S===Ut.array&&R===Ut.array){if(o.length!==g.length)return{valid:!1};let L=[];for(let P=0;P<o.length;P++){let F=o[P],z=g[P],j=ol(F,z);if(!j.valid)return{valid:!1};L.push(j.data)}return{valid:!0,data:L}}else if(S===Ut.date&&R===Ut.date&&+o===+g)return{valid:!0,data:o};else return{valid:!1}}class Ds extends Ae{_parse(o){let{status:g,ctx:S}=this._processInputParams(o),R=(L,P)=>{if(ja(L)||ja(P))return le;let F=ol(L.value,P.value);if(!F.valid)return Ht(S,{code:kt.invalid_intersection_types}),le;if(qa(L)||qa(P))g.dirty();return{status:g.value,value:F.data}};if(S.common.async)return Promise.all([this._def.left._parseAsync({data:S.data,path:S.path,parent:S}),this._def.right._parseAsync({data:S.data,path:S.path,parent:S})]).then(([L,P])=>R(L,P));else return R(this._def.left._parseSync({data:S.data,path:S.path,parent:S}),this._def.right._parseSync({data:S.data,path:S.path,parent:S}))}}Ds.create=(o,g,S)=>{return new Ds({left:o,right:g,typeName:ue.ZodIntersection,...Ee(S)})};class wn extends Ae{_parse(o){let{status:g,ctx:S}=this._processInputParams(o);if(S.parsedType!==Ut.array)return Ht(S,{code:kt.invalid_type,expected:Ut.array,received:S.parsedType}),le;if(S.data.length<this._def.items.length)return Ht(S,{code:kt.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),le;if(!this._def.rest&&S.data.length>this._def.items.length)Ht(S,{code:kt.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),g.dirty();let L=[...S.data].map((P,F)=>{let z=this._def.items[F]||this._def.rest;if(!z)return null;return z._parse(new En(S,P,S.path,F))}).filter((P)=>!!P);if(S.common.async)return Promise.all(L).then((P)=>{return Ti.mergeArray(g,P)});else return Ti.mergeArray(g,L)}get items(){return this._def.items}rest(o){return new wn({...this._def,rest:o})}}wn.create=(o,g)=>{if(!Array.isArray(o))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new wn({items:o,typeName:ue.ZodTuple,rest:null,...Ee(g)})};class ya extends Ae{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(o){let{status:g,ctx:S}=this._processInputParams(o);if(S.parsedType!==Ut.object)return Ht(S,{code:kt.invalid_type,expected:Ut.object,received:S.parsedType}),le;let R=[],L=this._def.keyType,P=this._def.valueType;for(let F in S.data)R.push({key:L._parse(new En(S,F,S.path,F)),value:P._parse(new En(S,S.data[F],S.path,F)),alwaysSet:F in S.data});if(S.common.async)return Ti.mergeObjectAsync(g,R);else return Ti.mergeObjectSync(g,R)}get element(){return this._def.valueType}static create(o,g,S){if(g instanceof Ae)return new ya({keyType:o,valueType:g,typeName:ue.ZodRecord,...Ee(S)});return new ya({keyType:pn.create(),valueType:o,typeName:ue.ZodRecord,...Ee(g)})}}class Ea extends Ae{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(o){let{status:g,ctx:S}=this._processInputParams(o);if(S.parsedType!==Ut.map)return Ht(S,{code:kt.invalid_type,expected:Ut.map,received:S.parsedType}),le;let R=this._def.keyType,L=this._def.valueType,P=[...S.data.entries()].map(([F,z],j)=>{return{key:R._parse(new En(S,F,S.path,[j,"key"])),value:L._parse(new En(S,z,S.path,[j,"value"]))}});if(S.common.async){let F=new Map;return Promise.resolve().then(async()=>{for(let z of P){let j=await z.key,Nt=await z.value;if(j.status==="aborted"||Nt.status==="aborted")return le;if(j.status==="dirty"||Nt.status==="dirty")g.dirty();F.set(j.value,Nt.value)}return{status:g.value,value:F}})}else{let F=new Map;for(let z of P){let{key:j,value:Nt}=z;if(j.status==="aborted"||Nt.status==="aborted")return le;if(j.status==="dirty"||Nt.status==="dirty")g.dirty();F.set(j.value,Nt.value)}return{status:g.value,value:F}}}}Ea.create=(o,g,S)=>{return new Ea({valueType:g,keyType:o,typeName:ue.ZodMap,...Ee(S)})};class qr extends Ae{_parse(o){let{status:g,ctx:S}=this._processInputParams(o);if(S.parsedType!==Ut.set)return Ht(S,{code:kt.invalid_type,expected:Ut.set,received:S.parsedType}),le;let R=this._def;if(R.minSize!==null){if(S.data.size<R.minSize.value)Ht(S,{code:kt.too_small,minimum:R.minSize.value,type:"set",inclusive:!0,exact:!1,message:R.minSize.message}),g.dirty()}if(R.maxSize!==null){if(S.data.size>R.maxSize.value)Ht(S,{code:kt.too_big,maximum:R.maxSize.value,type:"set",inclusive:!0,exact:!1,message:R.maxSize.message}),g.dirty()}let L=this._def.valueType;function P(z){let j=new Set;for(let Nt of z){if(Nt.status==="aborted")return le;if(Nt.status==="dirty")g.dirty();j.add(Nt.value)}return{status:g.value,value:j}}let F=[...S.data.values()].map((z,j)=>L._parse(new En(S,z,S.path,j)));if(S.common.async)return Promise.all(F).then((z)=>P(z));else return P(F)}min(o,g){return new qr({...this._def,minSize:{value:o,message:ee.toString(g)}})}max(o,g){return new qr({...this._def,maxSize:{value:o,message:ee.toString(g)}})}size(o,g){return this.min(o,g).max(o,g)}nonempty(o){return this.min(1,o)}}qr.create=(o,g)=>{return new qr({valueType:o,minSize:null,maxSize:null,typeName:ue.ZodSet,...Ee(g)})};class _s extends Ae{constructor(){super(...arguments);this.validate=this.implement}_parse(o){let{ctx:g}=this._processInputParams(o);if(g.parsedType!==Ut.function)return Ht(g,{code:kt.invalid_type,expected:Ut.function,received:g.parsedType}),le;function S(F,z){return ga({data:F,path:g.path,errorMaps:[g.common.contextualErrorMap,g.schemaErrorMap,bs(),qn].filter((j)=>!!j),issueData:{code:kt.invalid_arguments,argumentsError:z}})}function R(F,z){return ga({data:F,path:g.path,errorMaps:[g.common.contextualErrorMap,g.schemaErrorMap,bs(),qn].filter((j)=>!!j),issueData:{code:kt.invalid_return_type,returnTypeError:z}})}let L={errorMap:g.common.contextualErrorMap},P=g.data;if(this._def.returns instanceof Yr){let F=this;return Ci(async function(...z){let j=new ji([]),Nt=await F._def.args.parseAsync(z,L).catch((Ft)=>{throw j.addIssue(S(z,Ft)),j}),ne=await Reflect.apply(P,this,Nt);return await F._def.returns._def.type.parseAsync(ne,L).catch((Ft)=>{throw j.addIssue(R(ne,Ft)),j})})}else{let F=this;return Ci(function(...z){let j=F._def.args.safeParse(z,L);if(!j.success)throw new ji([S(z,j.error)]);let Nt=Reflect.apply(P,this,j.data),ne=F._def.returns.safeParse(Nt,L);if(!ne.success)throw new ji([R(Nt,ne.error)]);return ne.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...o){return new _s({...this._def,args:wn.create(o).rest(yr.create())})}returns(o){return new _s({...this._def,returns:o})}implement(o){return this.parse(o)}strictImplement(o){return this.parse(o)}static create(o,g,S){return new _s({args:o?o:wn.create([]).rest(yr.create()),returns:g||yr.create(),typeName:ue.ZodFunction,...Ee(S)})}}class Cs extends Ae{get schema(){return this._def.getter()}_parse(o){let{ctx:g}=this._processInputParams(o);return this._def.getter()._parse({data:g.data,path:g.path,parent:g})}}Cs.create=(o,g)=>{return new Cs({getter:o,typeName:ue.ZodLazy,...Ee(g)})};class Is extends Ae{_parse(o){if(o.data!==this._def.value){let g=this._getOrReturnCtx(o);return Ht(g,{received:g.data,code:kt.invalid_literal,expected:this._def.value}),le}return{status:"valid",value:o.data}}get value(){return this._def.value}}Is.create=(o,g)=>{return new Is({value:o,typeName:ue.ZodLiteral,...Ee(g)})};function bc(o,g){return new br({values:o,typeName:ue.ZodEnum,...Ee(g)})}class br extends Ae{_parse(o){if(typeof o.data!=="string"){let g=this._getOrReturnCtx(o),S=this._def.values;return Ht(g,{expected:Le.joinValues(S),received:g.parsedType,code:kt.invalid_type}),le}if(!this._cache)this._cache=new Set(this._def.values);if(!this._cache.has(o.data)){let g=this._getOrReturnCtx(o),S=this._def.values;return Ht(g,{received:g.data,code:kt.invalid_enum_value,options:S}),le}return Ci(o.data)}get options(){return this._def.values}get enum(){let o={};for(let g of this._def.values)o[g]=g;return o}get Values(){let o={};for(let g of this._def.values)o[g]=g;return o}get Enum(){let o={};for(let g of this._def.values)o[g]=g;return o}extract(o,g=this._def){return br.create(o,{...this._def,...g})}exclude(o,g=this._def){return br.create(this.options.filter((S)=>!o.includes(S)),{...this._def,...g})}}br.create=bc;class Os extends Ae{_parse(o){let g=Le.getValidEnumValues(this._def.values),S=this._getOrReturnCtx(o);if(S.parsedType!==Ut.string&&S.parsedType!==Ut.number){let R=Le.objectValues(g);return Ht(S,{expected:Le.joinValues(R),received:S.parsedType,code:kt.invalid_type}),le}if(!this._cache)this._cache=new Set(Le.getValidEnumValues(this._def.values));if(!this._cache.has(o.data)){let R=Le.objectValues(g);return Ht(S,{received:S.data,code:kt.invalid_enum_value,options:R}),le}return Ci(o.data)}get enum(){return this._def.values}}Os.create=(o,g)=>{return new Os({values:o,typeName:ue.ZodNativeEnum,...Ee(g)})};class Yr extends Ae{unwrap(){return this._def.type}_parse(o){let{ctx:g}=this._processInputParams(o);if(g.parsedType!==Ut.promise&&g.common.async===!1)return Ht(g,{code:kt.invalid_type,expected:Ut.promise,received:g.parsedType}),le;let S=g.parsedType===Ut.promise?g.data:Promise.resolve(g.data);return Ci(S.then((R)=>{return this._def.type.parseAsync(R,{path:g.path,errorMap:g.common.contextualErrorMap})}))}}Yr.create=(o,g)=>{return new Yr({type:o,typeName:ue.ZodPromise,...Ee(g)})};class Sn extends Ae{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===ue.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(o){let{status:g,ctx:S}=this._processInputParams(o),R=this._def.effect||null,L={addIssue:(P)=>{if(Ht(S,P),P.fatal)g.abort();else g.dirty()},get path(){return S.path}};if(L.addIssue=L.addIssue.bind(L),R.type==="preprocess"){let P=R.transform(S.data,L);if(S.common.async)return Promise.resolve(P).then(async(F)=>{if(g.value==="aborted")return le;let z=await this._def.schema._parseAsync({data:F,path:S.path,parent:S});if(z.status==="aborted")return le;if(z.status==="dirty")return Vr(z.value);if(g.value==="dirty")return Vr(z.value);return z});else{if(g.value==="aborted")return le;let F=this._def.schema._parseSync({data:P,path:S.path,parent:S});if(F.status==="aborted")return le;if(F.status==="dirty")return Vr(F.value);if(g.value==="dirty")return Vr(F.value);return F}}if(R.type==="refinement"){let P=(F)=>{let z=R.refinement(F,L);if(S.common.async)return Promise.resolve(z);if(z instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return F};if(S.common.async===!1){let F=this._def.schema._parseSync({data:S.data,path:S.path,parent:S});if(F.status==="aborted")return le;if(F.status==="dirty")g.dirty();return P(F.value),{status:g.value,value:F.value}}else return this._def.schema._parseAsync({data:S.data,path:S.path,parent:S}).then((F)=>{if(F.status==="aborted")return le;if(F.status==="dirty")g.dirty();return P(F.value).then(()=>{return{status:g.value,value:F.value}})})}if(R.type==="transform")if(S.common.async===!1){let P=this._def.schema._parseSync({data:S.data,path:S.path,parent:S});if(!vr(P))return le;let F=R.transform(P.value,L);if(F instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:g.value,value:F}}else return this._def.schema._parseAsync({data:S.data,path:S.path,parent:S}).then((P)=>{if(!vr(P))return le;return Promise.resolve(R.transform(P.value,L)).then((F)=>({status:g.value,value:F}))});Le.assertNever(R)}}Sn.create=(o,g,S)=>{return new Sn({schema:o,typeName:ue.ZodEffects,effect:g,...Ee(S)})};Sn.createWithPreprocess=(o,g,S)=>{return new Sn({schema:g,effect:{type:"preprocess",transform:o},typeName:ue.ZodEffects,...Ee(S)})};class yn extends Ae{_parse(o){if(this._getType(o)===Ut.undefined)return Ci(void 0);return this._def.innerType._parse(o)}unwrap(){return this._def.innerType}}yn.create=(o,g)=>{return new yn({innerType:o,typeName:ue.ZodOptional,...Ee(g)})};class zn extends Ae{_parse(o){if(this._getType(o)===Ut.null)return Ci(null);return this._def.innerType._parse(o)}unwrap(){return this._def.innerType}}zn.create=(o,g)=>{return new zn({innerType:o,typeName:ue.ZodNullable,...Ee(g)})};class xs extends Ae{_parse(o){let{ctx:g}=this._processInputParams(o),S=g.data;if(g.parsedType===Ut.undefined)S=this._def.defaultValue();return this._def.innerType._parse({data:S,path:g.path,parent:g})}removeDefault(){return this._def.innerType}}xs.create=(o,g)=>{return new xs({innerType:o,typeName:ue.ZodDefault,defaultValue:typeof g.default==="function"?g.default:()=>g.default,...Ee(g)})};class Ns extends Ae{_parse(o){let{ctx:g}=this._processInputParams(o),S={...g,common:{...g.common,issues:[]}},R=this._def.innerType._parse({data:S.data,path:S.path,parent:{...S}});if(Ts(R))return R.then((L)=>{return{status:"valid",value:L.status==="valid"?L.value:this._def.catchValue({get error(){return new ji(S.common.issues)},input:S.data})}});else return{status:"valid",value:R.status==="valid"?R.value:this._def.catchValue({get error(){return new ji(S.common.issues)},input:S.data})}}removeCatch(){return this._def.innerType}}Ns.create=(o,g)=>{return new Ns({innerType:o,typeName:ue.ZodCatch,catchValue:typeof g.catch==="function"?g.catch:()=>g.catch,...Ee(g)})};class Sa extends Ae{_parse(o){if(this._getType(o)!==Ut.nan){let S=this._getOrReturnCtx(o);return Ht(S,{code:kt.invalid_type,expected:Ut.nan,received:S.parsedType}),le}return{status:"valid",value:o.data}}}Sa.create=(o)=>{return new Sa({typeName:ue.ZodNaN,...Ee(o)})};var Ou=Symbol("zod_brand");class za extends Ae{_parse(o){let{ctx:g}=this._processInputParams(o),S=g.data;return this._def.type._parse({data:S,path:g.path,parent:g})}unwrap(){return this._def.type}}class ba extends Ae{_parse(o){let{status:g,ctx:S}=this._processInputParams(o);if(S.common.async)return(async()=>{let L=await this._def.in._parseAsync({data:S.data,path:S.path,parent:S});if(L.status==="aborted")return le;if(L.status==="dirty")return g.dirty(),Vr(L.value);else return this._def.out._parseAsync({data:L.value,path:S.path,parent:S})})();else{let R=this._def.in._parseSync({data:S.data,path:S.path,parent:S});if(R.status==="aborted")return le;if(R.status==="dirty")return g.dirty(),{status:"dirty",value:R.value};else return this._def.out._parseSync({data:R.value,path:S.path,parent:S})}}static create(o,g){return new ba({in:o,out:g,typeName:ue.ZodPipeline})}}class Ps extends Ae{_parse(o){let g=this._def.innerType._parse(o),S=(R)=>{if(vr(R))R.value=Object.freeze(R.value);return R};return Ts(g)?g.then((R)=>S(R)):S(g)}unwrap(){return this._def.innerType}}Ps.create=(o,g)=>{return new Ps({innerType:o,typeName:ue.ZodReadonly,...Ee(g)})};function vc(o,g){let S=typeof o==="function"?o(g):typeof o==="string"?{message:o}:o;return typeof S==="string"?{message:S}:S}function Tc(o,g={},S){if(o)return jr.create().superRefine((R,L)=>{let P=o(R);if(P instanceof Promise)return P.then((F)=>{if(!F){let z=vc(g,R),j=z.fatal??S??!0;L.addIssue({code:"custom",...z,fatal:j})}});if(!P){let F=vc(g,R),z=F.fatal??S??!0;L.addIssue({code:"custom",...F,fatal:z})}return});return jr.create()}var xu={object:je.lazycreate},ue;(function(o){o.ZodString="ZodString",o.ZodNumber="ZodNumber",o.ZodNaN="ZodNaN",o.ZodBigInt="ZodBigInt",o.ZodBoolean="ZodBoolean",o.ZodDate="ZodDate",o.ZodSymbol="ZodSymbol",o.ZodUndefined="ZodUndefined",o.ZodNull="ZodNull",o.ZodAny="ZodAny",o.ZodUnknown="ZodUnknown",o.ZodNever="ZodNever",o.ZodVoid="ZodVoid",o.ZodArray="ZodArray",o.ZodObject="ZodObject",o.ZodUnion="ZodUnion",o.ZodDiscriminatedUnion="ZodDiscriminatedUnion",o.ZodIntersection="ZodIntersection",o.ZodTuple="ZodTuple",o.ZodRecord="ZodRecord",o.ZodMap="ZodMap",o.ZodSet="ZodSet",o.ZodFunction="ZodFunction",o.ZodLazy="ZodLazy",o.ZodLiteral="ZodLiteral",o.ZodEnum="ZodEnum",o.ZodEffects="ZodEffects",o.ZodNativeEnum="ZodNativeEnum",o.ZodOptional="ZodOptional",o.ZodNullable="ZodNullable",o.ZodDefault="ZodDefault",o.ZodCatch="ZodCatch",o.ZodPromise="ZodPromise",o.ZodBranded="ZodBranded",o.ZodPipeline="ZodPipeline",o.ZodReadonly="ZodReadonly"})(ue||(ue={}));var Nu=(o,g={message:`Input not instance of ${o.name}`})=>Tc((S)=>S instanceof o,g),Ac=pn.create,_c=Er.create,Pu=Sa.create,Mu=Sr.create,Lc=Ls.create,Fu=Wr.create,Bu=pa.create,Uu=ws.create,$u=ks.create,Gu=jr.create,Hu=yr.create,Ku=Ln.create,Vu=va.create,Wu=vn.create,ju=je.create,qu=je.strictCreate,Yu=Rs.create,zu=Ya.create,Xu=Ds.create,Ju=wn.create,Qu=ya.create,Zu=Ea.create,th=qr.create,eh=_s.create,ih=Cs.create,nh=Is.create,rh=br.create,sh=Os.create,ah=Yr.create,oh=Sn.create,lh=yn.create,ch=zn.create,dh=Sn.createWithPreprocess,uh=ba.create,hh=()=>Ac().optional(),fh=()=>_c().optional(),mh=()=>Lc().optional(),gh={string:(o)=>pn.create({...o,coerce:!0}),number:(o)=>Er.create({...o,coerce:!0}),boolean:(o)=>Ls.create({...o,coerce:!0}),bigint:(o)=>Sr.create({...o,coerce:!0}),date:(o)=>Wr.create({...o,coerce:!0})};var ph=le;var ll=["subtitles","vtsel","ads","share","thumbnails","asel","qsel"];var wc=bt.object({url:bt.union([bt.string(),bt.array(bt.string()),bt.object({src:bt.string(),type:bt.string()}),bt.array(bt.object({src:bt.string(),type:bt.string()}))]).optional(),title:bt.string().optional(),poster:bt.string().optional(),description:bt.string().optional(),subtitles:bt.object({native:bt.boolean().optional(),show:bt.boolean().optional(),tracks:bt.array(bt.object({src:bt.string(),lang:bt.string().optional(),label:bt.string().optional(),crossorigin:bt.string().optional().nullable(),default:bt.boolean().optional(),kind:bt.union([bt.literal("captions"),bt.literal("chapters"),bt.literal("subtitles")]).optional(),mode:bt.union([bt.literal("hidden"),bt.literal("showing"),bt.literal("disabled")]).optional(),id:bt.string().optional()})).optional()}).optional(),thumbnails:bt.object({src:bt.string()}).optional(),metadata:bt.object({id:bt.string().optional(),media_id:bt.string().optional(),title:bt.string().optional(),description:bt.string().optional(),site_id:bt.string().optional(),sitegroup_id:bt.string().optional(),no_ads:bt.boolean().optional(),ad_keywords:bt.string().optional(),category_id:bt.string().optional(),category_name:bt.string().optional(),tags:bt.string().optional(),duration:bt.number().optional(),player_id:bt.string().optional()}).optional()}),cl=wc.transform(({url:o,...g})=>({src:o,...g})),Ta=bt.object({playlist:bt.union([bt.string(),bt.object({src:bt.string(),type:bt.string()}),bt.array(cl)]),lang:bt.string().optional(),consent:bt.number().default(9),token:bt.string().optional(),ui:bt.number().optional(),plugins:bt.array(bt.enum(ll)).default([...ll].filter((o)=>o!=="qsel")),brand_color:bt.string().optional(),recommendations:bt.boolean().optional(),metadata:bt.object({playlist_title:bt.string().optional(),player_id:bt.string().optional()}).optional(),share:bt.object({share_type:bt.string(),iframe:bt.boolean(),link:bt.boolean(),facebook:bt.boolean(),twitter:bt.boolean()}).optional(),ima:bt.object({NumRedirects:bt.number().optional(),timeout:bt.number().optional(),total_loading_timeout:bt.number().optional(),show_all_ads_on_seek:bt.boolean().optional(),ads:bt.array(bt.object({adTag:bt.union([bt.string(),bt.array(bt.string()),bt.function().args().returns(bt.promise(bt.string()))]),restart:bt.boolean().optional(),time:bt.number()})),Locale:bt.string().optional(),locale:bt.string().optional(),parameters:bt.record(bt.any()).optional(),autopause:bt.boolean().optional()}).optional()}),lp=Ta.omit({playlist:!0}).extend({playlist:bt.array(cl)}),dl=wc.omit({url:!0}).and(bt.object({src:bt.union([bt.string(),bt.array(bt.string()),bt.object({src:bt.string(),type:bt.string()}),bt.array(bt.object({src:bt.string(),type:bt.string()}))])})),kc=Ta.omit({plugins:!0}).omit({playlist:!0}).extend({playlist:bt.array(dl)}),Rc=bt.array(cl);function vh(o){let g=document.createElement("a");g.href=o;let S=g.pathname?.split(".");return S.length>1&&S[S.length-1]}function yh(o){switch(o){case"video/mpd":return"application/dash+xml";case"video/m3u8":return"application/x-mpegurl";default:return o}}var Ic=({src:o,...g})=>[{src:o,type:o?yh(`video/${vh(o)}`):"",...g}];function Dc(o){return Ic({src:o})}function Cc({src:o,type:g,...S}){if(o&&g)return[{src:o,type:g,...S}];if(g&&!o)return[{type:g,...S}];return Ic({src:o,...S})}function Oc(o){if(typeof o==="string")return Dc(o);if(!Array.isArray(o)&&typeof o==="object")return Cc(o);return o.reduce((g,S)=>{if(typeof S==="string")S=Dc(S);if(typeof S==="object"&&!Array.isArray(S))S=Cc(S);return g.concat(S)},[])}async function xc(o){if(Array.isArray(o.playlist))return o;let g=typeof o.playlist==="object"?o.playlist.src:o.playlist,S=nl(rl(g)),R=await fetch(S);if(!R.ok)throw new Error(`Failed to fetch playlist: ${R.status} ${R.statusText}`);let L=await R.json(),P=kc.parse(L);return P.playlist.forEach((F)=>{Object.assign(F,{...F.metadata})}),Object.assign(o,{...P,...o,playlist:P.playlist})}async function Xa(o,g,S){(await Promise.all(g.map(Eh))).forEach((L,P)=>{let F=new(window.customElements.get("flowplayer-spin"))(o,L);o.emit(il,{spin:F,config:L,index:S.length+P}),o.append(F)})}async function Eh(o){let g=Oc(o.src||"");if(g.length!==1||!mc(g[0].src||"",g[0]))return o;try{let S=nl(rl(g[0].src??"")),R=await fetch(S);if(!R.ok)return o;let L=await R.json(),P=dl.parse(L);return delete o.src,Object.assign(o,{...P,...P.metadata??{},...o})}catch{return o}}var Ms=mn(Pc(),1);function zr(){let o=document.querySelectorAll("flowplayer-spin");return Array.from(o)}function ul(o){let g=o.root.getAttribute("spin-index");return parseFloat(g)}function Mc(o,g){let S=g[0].getBoundingClientRect().height,R=g[1].getBoundingClientRect().top-g[0].getBoundingClientRect().bottom;return Math.round(o.scrollTop/(S+R))}function Ja(o,g,S){let R=g.getBoundingClientRect().top,L=S.getBoundingClientRect().top,P=g.scrollTop;o.root.style.top=`${P-R+L}px`}function hl(o,g){let[S,R]=Array.from(o.querySelectorAll(".fp-engine")),L=S.root.getAttribute("spin-index")===g;return{primaryPlayer:L?S:R,secondaryPlayer:L?R:S}}function Qa(o,g,S,R){if(R.spinsLoading)return;let L=R.primarySpinIndex>=g.length-2;if(!(g.length<S.length)||!L)return;let F=S.slice(g.length,g.length+5);R.spinsLoading=Xa(o,F,g).then(()=>{ng(o,g,R),R.spinsLoading=void 0})}function ng(o,g,S){if(S.primarySpinIndex!==g.length-1)return;let{primaryPlayer:R,secondaryPlayer:L}=hl(o,String(S.primarySpinIndex));if(ul(L)>S.primarySpinIndex)return;return Xr(o,R,L,S.primarySpinIndex+1)}function Fc(o){if(o.hasState("is-loaded"))return;let g=o.opts.is_native;if(o.hls)return o.hls.startLoad();if(g)return o.load()}function Bc(o,g,S,R){let L=zr()[R],P=g[R];return S.setSrc(P.src??""),S.setOpts(P),S.root.setAttribute("spin-index",String(R)),Ja(S,o,L),{spin:L,config:P,index:R}}function Aa(o,g,S){o.emit(ma,Bc(o,o.items,g,S))}function Xr(o,g,S,R){if(Bc(o,o.items,S,R),g.hasState("is-loaded"))return Fc(S);let L=Fc.bind(null,S),P=()=>g.off(Ms.CAN_PLAY,L);g.once(Ms.CAN_PLAY,L),g.once(Ms.SOURCE,P),S.once(Ms.SOURCE,P)}function Uc(o){let{items:g,state:S}=o,R;o.addEventListener("scroll",()=>{clearTimeout(R),R=setTimeout(()=>{let L=zr();if(L.length<=1)return;let P=Mc(o,L),F=S.primarySpinIndex-P;if(!F)return;let{primaryPlayer:z,secondaryPlayer:j}=hl(o,String(S.primarySpinIndex));if(F>0)sg(o,z,j,P);if(F<0)rg(o,L,g,z,j,P,Math.abs(F));S.primarySpinIndex=P,ag(z,j),Qa(o,L,g.slice(),S)},150)})}function rg(o,g,S,R,L,P,F){if(F===1)o.emit(ma,{config:S[P],spin:g[P],index:P});if(F>1)Aa(o,L,P);if(g.length-1>P)return Xr(o,L,R,P+1)}function sg(o,g,S,R){Aa(o,S,R),Xr(o,S,g,R+1)}function ag(o,g){o.root.setAttribute("next",""),o.root.removeAttribute("current"),g.root.setAttribute("current",""),g.root.removeAttribute("next")}class fl extends HTMLElement{items=[];state={primarySpinIndex:0,spinsLoading:void 0};constructor(){super();this.classList.add("fp-spins-container","init"),Uc(this)}addSpins(o){let g=Rc.parse(o);if(!g.length)return;if(this.items.push(...g),this.classList.contains("init"))return;Qa(this,zr(),this.items,this.state)}on(o,g,S){this.addEventListener(o,g,S)}emit(o,g){this.dispatchEvent(new CustomEvent(o,{detail:g}))}off(o,g){this.removeEventListener(o,g)}createPlayerWrapper(...o){let g=document.createElement("div");g.classList.add("fp-player-wrapper"),this.prepend(g),g.append(...o)}}async function $c(o){await new Promise((g)=>{if(document.querySelector(".fp-spins-container"))return g(null);let S=new MutationObserver(()=>{if(!document.querySelector(".fp-spins-container"))return;S.disconnect(),g(null)});S.observe(document,{childList:!0,subtree:!0})}),Gc(o)}function Gc(o){let g=o.getBoundingClientRect().top;o.style.height=`${window.innerHeight-g}px`}function Hc(o,g){window.addEventListener("resize",()=>{Gc(o);let S=zr();g.forEach((R)=>{let L=S[ul(R)];if(!L)return;Ja(R,o,L)})})}class Za extends HTMLElement{menuContainer;summaryEle;mainMenu;menuHeader;menuTitle;olEle;closeEle;player;constructor(o){super();this.className="fp-menu-dialog",this.player=o,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.mainMenu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.mainMenu.classList.add("fp-menu","fp-main-menu"),this.mainMenu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.mainMenu),this.menuTitle.textContent=this.player.i18n("core.settings","Settings"),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button"),this.summaryEle.setAttribute("aria-label","Settings"),this.append(this.menuContainer),this.toggleVisibility(),o.on("keyboard:close:menus",this.onKeyboardCloseMenu.bind(this)),o.root.addEventListener("click",this.onRootClick.bind(this)),this.addEventListener("click",this.onMenuClick.bind(this)),["focusin","focusout"].forEach((g)=>this.mainMenu.addEventListener(g,this.onFocus.bind(this)))}appendMenu(o){this.createDialogOpt(o),this.addSubMenuBackButton(o.menuHeader),this.menuContainer.append(o.menu),o.remove()}createDialogOpt(o){let g=document.createElement("li");g.textContent=o.menuHeader.querySelector("h3")?.textContent||"";let S=this.detectSubMenuType(o.classList);this.toggleDialogOpt(o.menu,g,S),o.addEventListener(this.findSubMenuOptionsEvent(S),()=>{this.toggleDialogOpt(o.menu,g,S)}),g.onclick=S===1?this.onSubtitlesOptClick.bind(this,o):this.onOptClick.bind(this,o),g.setAttribute("role","menuitem"),g.setAttribute("aria-selected","false"),g.setAttribute("tabindex","0"),g.setAttribute("aria-haspopup","true"),g.setAttribute("aria-label",o.menuHeader.querySelector("h3")?.textContent||"")}toggleDialogOpt(o,g,S){try{o.querySelectorAll("li").length>(S===1?0:1)?this.olEle.appendChild(g):this.olEle.removeChild(g)}catch(R){}this.toggleVisibility()}addSubMenuBackButton(o){let g=document.createElement("div");g.className="fp-icon fp-menu-back fp-back-button",g.setAttribute("aria-hidden","true"),o.append(g)}openMenu(o){this.querySelectorAll(".fp-menu")?.forEach((g)=>{if(g===o)return;g?.classList.add("is-close")}),o.classList.remove("is-close"),o.querySelector("li")?.focus()}toggleMenuDialog(o){this.menuContainer.open=o,this.player.root.classList.toggle("has-menu-opened",o),this.summaryEle.setAttribute("aria-expanded",o+"")}toggleVisibility(){let o=!this.olEle.querySelectorAll("li").length;if(this.style.setProperty("display",o?"none":"block"),o&&this.menuContainer.open)this.toggleMenuDialog(!1)}onMenuClick(o){if(o.defaultPrevented)return;o.preventDefault();let g=o.target;if(g?.classList?.contains("fp-menu-back")||g?.closest("li"))return this.openMenu(this.mainMenu);let S=!this.menuContainer.open;if(S)this.openMenu(this.mainMenu);this.toggleMenuDialog(S)}onFocus(o){let g=o.target;if(!(g instanceof HTMLLIElement))return;g.setAttribute("aria-selected",o.type==="focusin"?"true":"false")}onOptClick(o,g){g.preventDefault(),this.openMenu(o.menu)}onSubtitlesOptClick(o,g){if(!this.player?.opt?.("subtitles.native"))o.createMenu(0);this.onOptClick(o,g)}onRootClick(o){if(o.composedPath().includes(this))return;this.toggleMenuDialog(!1)}onKeyboardCloseMenu(o){if(o.defaultPrevented)return;if(o.preventDefault(),this.mainMenu.classList.contains("is-close"))return this.openMenu(this.mainMenu);this.toggleMenuDialog(!1),this.summaryEle.focus()}detectSubMenuType(o){if(o.contains("fp-asel"))return 0;if(o.contains("fp-qsel"))return 2;if(o.contains("fp-speed"))return 4;if(o.contains("fp-cc"))return 1;if(o.contains("fp-vsel"))return 3}findSubMenuOptionsEvent(o){switch(o){case 0:return"audio:tracks";case 2:return"quality:tracks";case 4:return"speed:options";case 1:return"subs:tracks";case 3:return"video:tracks";default:return""}}}function ml(o,g,S){let L=new(window.customElements.get("flowplayer-spin-player"));L.setAttribute(S,"");let P=o(L,{...g,preload:"none",autopause:!0,ui:(g.ui??0)|2048|16384|1|(o.support().android?2:0),autoplay:1,loop:!0});return P.root.classList.add("is-spins"),og(P),P}function og(o){let g=o.root.querySelector("flowplayer-control");if(!g)return;if(!window.customElements.get("flowplayer-menu-dialog"))window.customElements.define("flowplayer-menu-dialog",Za);let S=document.createElement("div");S.classList.add("fp-spin-controls-bar"),g.prepend(S);let R=o.root.querySelector("flowplayer-volume-control");if(R)S.append(R);let L=new Za(o);S.append(L),["flowplayer-subtitles-menu","flowplayer-speed-menu","flowplayer-quality-menu","flowplayer-audio-menu","flowplayer-video-menu"].forEach((P)=>{let F=o.root.querySelector(P);if(F)L.appendMenu(F)})}class gl extends HTMLElement{constructor(o,g){super();if(this.classList.add("fp-spin"),g.poster)this.style.backgroundImage=`url(${g.poster})`}}class pl extends HTMLElement{}var Zc=mn(Kc(),1),td=mn(Vc(),1),ed=mn(Wc(),1),id=mn(jc(),1),nd=mn(qc(),1),rd=mn(Yc(),1),sd=mn(zc(),1),ad=mn(Xc(),1),od=mn(Jc(),1),ld=mn(Qc(),1);var vl={};el(vl,{zh:()=>wg,tr:()=>Lg,tlh:()=>_g,sv:()=>Ag,sk:()=>Tg,pt:()=>bg,pl:()=>Sg,oc:()=>Eg,nn:()=>yg,nl:()=>vg,nb:()=>pg,he:()=>gg,gr:()=>mg,fr:()=>fg,fi:()=>hg,es:()=>ug,en:()=>dg,de:()=>cg,cs:()=>lg});var lg={ads:{ad:"Reklama",ads:"Reklamy",advertisement:"Reklama",indicator:"Reklamy"},audio:{button_txt:"Audio",menu_title:"Audio"},cc:{button:"CC",menu_title:"Titulky"},core:{exit_fullscreen:"Vypnout režim celé obrazovky",fullscreen:"Zapnout režim celé obrazovky",mute:"Vypnout zvuk",pause:"Pauza",play:"Přehrát",unmute:"Zapnout zvuk",volume:"Hlasitost"},ovp:{starting_in:"Odpočítavání"},playlist:{cancel:"Cancel",up_next:"Další"},qsel:{menu_title:"Kvalita"},share:{clipboard_failure:"Přístup do schránky se nezdařil",clipboard_success:"Kód na stránku je nyní ve vaší schránce",embed:"Kód na stránku",link:"Odkaz",menu_title:"Sdílet"},speed:{menu_title:"Rychlost"}},cg={ads:{ad:"Werbung",ads:"Werbung",advertisement:"Werbung",indicator:"Werbung"},audio:{button_txt:"Ton",menu_title:"Ton"},cc:{button:"CC",menu_title:"Untertitel"},core:{exit_fullscreen:"Vollbild verlassen",fullscreen:"Vollbild",mute:"Ton aus",pause:"Pause",play:"Abspielen",unmute:"Ton ein",volume:"Lautstärke"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Abbrechen",up_next:"Nächste"},qsel:{menu_title:"Qualität"},share:{clipboard_failure:"Zugriff auf Zwischenablage fehlgeschlagen",clipboard_success:"Embedcode in die Zwischenablage kopiert",embed:"Einbetten",link:"Link",menu_title:"Teilen"},speed:{menu_title:"Geschwindigkeit"}},dg={ads:{ad:"Ad",ads:"Ads",advertisement:"Advertisement",indicator:"Ads"},audio:{button_txt:"Audio",menu_title:"Audio"},cc:{button:"CC",menu_title:"Subtitles",options:"Options",tracks:"Tracks",reset:"Reset",colors:{Black:"Black",Blue:"Blue",Cyan:"Cyan",Green:"Green",Magenta:"Magenta",Red:"Red",White:"White",Yellow:"Yellow"},edgeStyle:{None:"None","Drop shadow":"Drop shadow",Raised:"Raised",Depressed:"Depressed",Outline:"Outline"},fontFamily:{"Monospaced Serif":"Monospaced Serif","Proportional Serif":"Proportional Serif","Monospaced Sans-Serif":"Monospaced Sans-Serif","Proportional Sans-Serif":"Proportional Sans-Serif",Casual:"Casual",Cursive:"Cursive"},properties:{fontFamily:"Font family",fontSize:"Font size",fontColor:"Font color",fontOpacity:"Font opacity",backgroundColor:"Background color",backgroundOpacity:"Background opacity",characterEdgeStyle:"Character edge style"}},chromecast:{start:"start casting",stop:"stop casting"},core:{exit_fullscreen:"Exit fullscreen",fullscreen:"Fullscreen",mute:"Mute",pause:"Pause",play:"Play",seconds:"Seconds",timeline_aria_label:"Seek slider",unmute:"Unmute",volume:"Volume"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Cancel",up_next:"Up next"},qsel:{menu_title:"Quality"},share:{clipboard_failure:"Access to clipboard failed",clipboard_success:"The text is now on your clipboard",embed:"Embed",link:"Link",menu_title:"Share"},speed:{menu_title:"Speed"},vtsel:{button_txt:"Video",menu_title:"Video Track"}},ug={ads:{ad:"Anúncio",ads:"Anúncios",advertisement:"Anúncio",indicator:"Anúncios"},audio:{button_txt:"Áudio",menu_title:"Áudio"},cc:{button:"CC",menu_title:"Subtítulos"},core:{exit_fullscreen:"Pantalla no completa",fullscreen:"Pantalla completa",mute:"Silenciar",pause:"Pausa",play:"Reproducir",unmute:"No silenciado",volume:"Volumen"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Cancelar",up_next:"Siguiente"},qsel:{menu_title:"Calidad"},share:{clipboard_failure:"Fallo en el acceso al portapapeles",clipboard_success:"El código de insercíon ahora está en tu portapapeles",embed:"Insertar",link:"Enlace",menu_title:"Compartir"},speed:{menu_title:"Velocidad"}},hg={ads:{ad:"Mainos",ads:"Mainos",advertisement:"Mainos",indicator:"Mainos"},audio:{button_txt:"Kieli",menu_title:"Kieli"},cc:{button:"CC",menu_title:"Tekstitys"},core:{exit_fullscreen:"Poistu kokonäytön tilasta",fullscreen:"Koko näytön tila",mute:"Vaimenna",pause:"Keskeytä",play:"Toista",unmute:"Poista vaimennus",volume:"Äänenvoimakkuus"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Peruuta",up_next:"Seuraavaksi"},qsel:{menu_title:"Laatu"},share:{clipboard_failure:"Leikepöydän käyttö epäonnistui",clipboard_success:"Kopioitu leikepöydälle",embed:"Upota",link:"Linkki",menu_title:"Jaa"},speed:{menu_title:"Nopeus"}},fg={ads:{ad:"Annonce",ads:"Annonces",advertisement:"Annonce",indicator:"Annonces"},audio:{button_txt:"Son",menu_title:"Son"},cc:{button:"CC",menu_title:"Sous-titres"},core:{exit_fullscreen:"Quitter le mode plein écran",fullscreen:"Plein écran",mute:"Sourdine",pause:"Pause",play:"Lecture",unmute:"Son activé",volume:"Volume"},ovp:{starting_in:"Compte à rebours"},playlist:{cancel:"Annuler",up_next:"Suivant"},qsel:{menu_title:"Qualité"},share:{clipboard_failure:"L'accès au presse-papier a échoué",clipboard_success:"Le code embed est maintenant dans votre presse-papiers",embed:"Embed",link:"Lien",menu_title:"Partager"},speed:{menu_title:"Vitesse"}},mg={ads:{ad:"Διαφήμιση",ads:"Διαφήμισεις",advertisement:"Διαφήμιση",indicator:"Διαφήμισεις"},audio:{button_txt:"Ηχος",menu_title:"Κομμάτι ήχου"},cc:{button:"ΥΠ",menu_title:"Υπότιτλοι",options:"Επιλογες",tracks:"Κομματια",reset:"Επαναφορα",colors:{Black:"Μαυρο",Blue:"Μπλε",Cyan:"Γαλαζιο",Green:"Πρασσινο",Magenta:"Ροζ",Red:"Κοκκινο",White:"Λευκο",Yellow:"Κιτρινο"},edgeStyle:{None:"Κανενα","Drop shadow":"Αναπτυσσομενη σκια",Raised:"Αναγλυφο",Depressed:"Πεπλατυσμενο",Outline:"Περιγραμμα"},fontFamily:{"Monospaced Serif":"Serif σταθερου πλατους","Proportional Serif":"Serif αναλογικου πλατους","Monospaced Sans-Serif":"Sans-Serif σταθερου πλατους","Proportional Sans-Serif":"Sans-Serif αναλογικου πλατους",Casual:"Απλες",Cursive:"Λοξες"},properties:{fontFamily:"Οικογενεια γραμματοσειρων",fontSize:"Μεγεθος γραμματοσειρας",fontColor:"Χρωμα γραμματοσειρας",fontOpacity:"Αδιαφανεια γραμματοσειρας",backgroundColor:"Χρωμα φοντου",backgroundOpacity:"Αδιαφανεια φοντου",characterEdgeStyle:"Στιλ ακρων χαρακτηρα"}},core:{exit_fullscreen:"Έξοδος πλήρους οθονης",fullscreen:"Πλήρης οθόνη",mute:"Σίγαση",pause:"Παύση",play:"Αναπαραγωγή",unmute:"Κατάργηση σίγασης",volume:"Ενταση ήχου"},ovp:{starting_in:"Αντίστροφη μέτρηση"},playlist:{cancel:"Ακύρωση",up_next:"Επόμενο Βίντεο"},qsel:{menu_title:"Ανάλυση εικόνας"},share:{clipboard_failure:"Η αντιγραφη της επιλογής απέτυχε",clipboard_success:"H επιλογή αντιγράφηκε επιτυχώς",embed:"Κώδικας Ενσωμάτωσης",link:"Σύνδεσμος",menu_title:"Κοινοποίηση"},speed:{menu_title:"Ταχύτητα"}},gg={ads:{ad:"מודעה",ads:"מודעה",advertisement:"מודעה",indicator:"מודעה"},audio:{button_txt:"שֶׁמַע",menu_title:"שֶׁמַע"},cc:{button:"CC",menu_title:"כתוביות"},core:{exit_fullscreen:"צא ממסך מלא",fullscreen:"מסך מלא",mute:"לְהַשְׁתִיק",pause:"עצור",play:"נגן",unmute:"בטל השתקה",volume:"עוצמת שמע"},ovp:{starting_in:"ספירה לאחור"},playlist:{cancel:"לְבַטֵל",up_next:"הבא"},qsel:{menu_title:"איכות"},share:{clipboard_failure:"הגישה ללוח נכשלה",clipboard_success:"הטקסט נמצא כעת על הלוח שלך",embed:"לְשַׁבֵּץ",link:"קישור",menu_title:"לַחֲלוֹק"},speed:{menu_title:"מְהִירוּת"}},pg={ads:{ad:"Reklame",ads:"Reklame",advertisement:"Reklame",indicator:"Reklame"},audio:{button_txt:"Lydspor",menu_title:"Lydspor"},cc:{button:"CC",menu_title:"Teksting"},core:{exit_fullscreen:"Avslutt fullskjerm",fullscreen:"Fullskjerm",mute:"Skru av lyd",pause:"Pause",play:"Spill av",unmute:"Skru på lyd",volume:"Volum"},ovp:{starting_in:"Sendingen starter om"},playlist:{cancel:"Cancel",up_next:"Neste video"},qsel:{menu_title:"Kvalitet"},share:{clipboard_failure:"Tilgang til utklippstavlen mislyktes",clipboard_success:"Teksten er nå på utklippstavlen din",embed:"Embed",link:"Link",menu_title:"Del"},speed:{menu_title:"Hastighet"}},vg={ads:{ad:"Ad",ads:"Ads",advertisement:"Advertentie",indicator:"Ads"},audio:{button_txt:"Audio",menu_title:"Audio"},cc:{button:"CC",menu_title:"Ondertiteling"},core:{exit_fullscreen:"Sluit fullscreen",fullscreen:"Fullscreen",mute:"Dempen",pause:"Pause",play:"Play",unmute:"Dempen opheffen",volume:"Volume"},ovp:{starting_in:"Start over"},playlist:{cancel:"Annuleren",up_next:"Volgende"},qsel:{menu_title:"Kwaliteit"},share:{clipboard_failure:"Toegang tot klembord mislukt",clipboard_success:"De tekst staat nu op je klembord",embed:"Embed",link:"Link",menu_title:"Deel"},speed:{menu_title:"Snelheid"}},yg={ads:{ad:"Reklame",ads:"Reklame",advertisement:"Reklame",indicator:"Reklame"},audio:{button_txt:"Lydspor",menu_title:"Lydspor"},cc:{button:"CC",menu_title:"Teksting"},core:{exit_fullscreen:"Avslutt fullskjerm",fullscreen:"Fullskjerm",mute:"Skru av lyd",pause:"Pause",play:"Spel av",unmute:"Skru på lyd",volume:"Volum"},ovp:{starting_in:"Nedteljing"},playlist:{cancel:"Cancel",up_next:"Neste video"},qsel:{menu_title:"Kvalitet"},share:{clipboard_failure:"Tilgang til utklippstavlen mislyktes",clipboard_success:"Teksten er no på utklippstavlen din",embed:"Embed",link:"Link",menu_title:"Del"},speed:{menu_title:"Hastighet"}},Eg={ads:{ad:"Publicitat",ads:"Publicitats",advertisement:"Publicitat",indicator:"Pubs"},audio:{button_txt:"Àudio",menu_title:"Àudio"},cc:{button:"ST",menu_title:"Sostítol"},core:{exit_fullscreen:"Sortir de l’ecran complèt",fullscreen:"Ecran complèt",mute:"Amudir",pause:"Pausa",play:"Lectura",unmute:"Restablir lo son",volume:"Volum"},ovp:{starting_in:"Descompte"},playlist:{cancel:"Anullar",up_next:"Seguent"},qsel:{menu_title:"Qualitat"},share:{clipboard_failure:"Fracàs de l’accès al quichapapièrs",clipboard_success:"Lo tèxt es copiat al quichapapièrs",embed:"Integrar",link:"Ligam",menu_title:"Partejar"},speed:{menu_title:"Velocitat"}},Sg={ads:{ad:"Reklama",ads:"Reklama",advertisement:"Reklama",indicator:"Reklama"},audio:{button_txt:"Audio",menu_title:"Audio"},cc:{button:"CC",menu_title:"Napisy"},core:{exit_fullscreen:"Wyjdź z pełnego ekranu",fullscreen:"Pełny ekran",mute:"Wyciszenie",pause:"Pauza",play:"Odtwarzaj",unmute:"Wyłącz wyciszenie",volume:"Głośność"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Anuluj",up_next:"Następny"},qsel:{menu_title:"Jakość"},share:{clipboard_failure:"Błąd dostępu do schowka",clipboard_success:"Kod embedu jest teraz w twoim schowku.",embed:"Osadź",link:"Link",menu_title:"Share"},speed:{menu_title:"Prędkość"}},bg={ads:{ad:"Anúncio",ads:"Anúncios",advertisement:"Anúncio",indicator:"Anúncios"},audio:{button_txt:"Áudio",menu_title:"Áudio"},cc:{button:"CC",menu_title:"Subtítulos"},core:{exit_fullscreen:"Tela não cheia",fullscreen:"Tela cheia",mute:"Silenciar",pause:"Pausa",play:"Reproduzir",unmute:"Não silenciado",volume:"Volume"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Cancelar",up_next:"A seguir"},qsel:{menu_title:"Qualidade"},share:{clipboard_failure:"Falha no acesso à área de transferência",clipboard_success:"O código de inserção está agora na sua área de transferência",embed:"Embutir",link:"Link",menu_title:"Compartilhar"},speed:{menu_title:"Velocidade"}},Tg={ads:{ad:"Reklama",ads:"Reklamy",advertisement:"Reklama",indicator:"Reklamy"},audio:{button_txt:"Audio",menu_title:"Audio"},cc:{button:"CC",menu_title:"Titulky"},core:{exit_fullscreen:"Vypnúť režim celej obrazovky",fullscreen:"Zapnúť režim celej obrazovky",mute:"Vypnúť zvuk",pause:"Pauza",play:"Prehrať",unmute:"Zapnúť zvuk",volume:"Hlasitosť"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Cancel",up_next:"Ďalšie"},qsel:{menu_title:"Kvalita"},share:{clipboard_failure:"Access to clipboard failed",clipboard_success:"Kód na stránku je teraz vo vašej schránke",embed:"Kód na stránku",link:"Odkaz",menu_title:"Zdieľať"},speed:{menu_title:"rRýchlosť"}},Ag={ads:{ad:"Reklam",ads:"Reklam",advertisement:"Reklam",indicator:"Reklam"},audio:{button_txt:"Ljud",menu_title:"Ljud"},cc:{button:"CC",menu_title:"Undertexter"},core:{exit_fullscreen:"Avsluta helskärm",fullscreen:"Helskärm",mute:"Ljud av",pause:"Paus",play:"Spela",unmute:"Ljud på",volume:"Volym"},ovp:{starting_in:"Börjar om"},playlist:{cancel:"Avbryt",up_next:"Nästa"},qsel:{menu_title:"Kvalitet"},share:{clipboard_failure:"Åtkomst till Urklipp misslyckades",clipboard_success:"Inbäddningskoden är nu kopierad",embed:"Bädda in",link:"Länk",menu_title:"Dela"},speed:{menu_title:"Hastighet"}},_g={ads:{ad:"'chel",ads:"tlhaw'DIyuS",advertisement:"'uQ'a'",indicator:"chel"},audio:{button_txt:"qaStaHvIS",menu_title:"qaStaHvIS"},cc:{button:"CC",menu_title:"qeylIS"},core:{exit_fullscreen:"tlhoy'",fullscreen:"che'",mute:"jaS",pause:"yev",play:"chu'",unmute:"Huy'vam",volume:"muq"},ovp:{starting_in:"qornel"},playlist:{cancel:"qil",up_next:"Hu'"},qsel:{menu_title:"boqral"},share:{clipboard_failure:"SengDaj LopmeH mIv'a'",clipboard_success:"che'rup neH 'oH buStaHvIS.",embed:"tlhIlwI'",link:"Hol",menu_title:"SaH"},speed:{menu_title:"pIp"}},Lg={ads:{ad:"Reklam",ads:"Reklamlar",advertisement:"Reklam",indicator:"Reklamlar"},audio:{button_txt:"Ses",menu_title:"Ses"},cc:{button:"CC",menu_title:"Altyazılar"},core:{exit_fullscreen:"Tam ekrandan çık",fullscreen:"Tam ekran",mute:"Sessiz",pause:"Duraklat",play:"Oynat",unmute:"Sesi aç",volume:"Ses"},ovp:{starting_in:"Geri sayım"},playlist:{cancel:"İptal",up_next:"Sonraki"},qsel:{menu_title:"Kalite"},share:{clipboard_failure:"Panoya erişim başarısız oldu",clipboard_success:"Metin panoya kopyalandı",embed:"Yerleştir",link:"Bağlantı",menu_title:"Paylaş"},speed:{menu_title:"Hız"}},wg={ads:{ad:"广告",ads:"广告",advertisement:"广告",indicator:"广告"},audio:{button_txt:"声音",menu_title:"声音"},cc:{button:"字幕",menu_title:"字幕"},core:{exit_fullscreen:"退出全屏",fullscreen:"全屏",mute:"静音",pause:"暂停",play:"播放",unmute:"取消静音",volume:"音量"},ovp:{starting_in:"倒计时"},playlist:{cancel:"取消",up_next:"即将播放"},qsel:{menu_title:"清晰度"},share:{clipboard_failure:"无法复制到剪贴板",clipboard_success:"已复制到剪贴板",embed:"嵌入",link:"链接",menu_title:"分享"},speed:{menu_title:"倍速"},vtsel:{button_txt:"视频",menu_title:"视频轨道"}};var kg=Zc.default(nd.default,id.default);function cd(o){let g=kg;return Object.assign(g.i18n,vl),[ad.default,od.default,ld.default,td.default,ed.default,sd.default,rd.default].forEach((S)=>{if(!o.plugins.includes(S.pluginName))return;g(S)}),g}if(!window.customElements.get("flowplayer-spin"))window.customElements.define("flowplayer-spin",gl);if(!window.customElements.get("flowplayer-spins-container"))window.customElements.define("flowplayer-spins-container",fl);if(!window.customElements.get("flowplayer-spin-player"))window.customElements.define("flowplayer-spin-player",pl);function g0(o){let S=new(window.customElements.get("flowplayer-spins-container")),R=Ta.parse(o),L=cd(R);return setTimeout(()=>Rg(L,S,Ta.parse(o)),0),S}async function Rg(o,g,S){await Dg();let{playlist:R,...L}=await xc(S);g.items.push(...R);let P=ml(o,L,"current"),F=ml(o,L,"next");await $c(g),Hc(g,[P,F]),await Xa(g,g.items.slice(0,5),[]),g.createPlayerWrapper(P.root,F.root),Aa(g,P,0),Xr(g,P,F,1),g.classList.remove("init")}async function Dg(){await new Promise((o,g)=>{if(document.getElementById("flowplayer-style-sheet")){o();return}let S=document.createElement("link");S.rel="stylesheet",S.id="flowplayer-style-sheet",S.href="https://cdn.flowplayer.com/releases/native/3/stable/style/flowplayer.css",S.onload=()=>o(),S.onerror=()=>g(new Error("Failed to load stylesheet")),document.head.prepend(S)})}export{fc as events,g0 as createSpins};
|
|
195
|
+
`;document.head.prepend(Ju);var Qu={};cc(Qu,{SPIN_IN_VIEWPORT:()=>Bi,SPIN_CREATED:()=>uc});var uc="spin:created",Bi="spin:viewport";function dc(...n){let o=[].join.call(n,"/");if(o[0]!=="/")o="/"+o;return"https://ljsp.lwcdn.com/web/public/native/config"+o}function hc(n){return~n.indexOf("/")?n:"/media/"+n}var Zf=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/,tm=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/,em=/^[A-Za-z0-9]{8}$/,im=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/[A-Za-z0-9]{8}$/;function rm(n,o){if(Zf.test(n)||tm.test(n))return o.type="video/ovp",!0;return!1}function nm(n,o){if(em.test(n)||im.test(n)){if(o)o.type="video/ovp";return!0}return!1}function sm(n){return typeof n==="object"&&n.type==="ovp/base64"}function Zu(n,o){return rm(n,o)||nm(n,o)||sm(o)}var ht={};cc(ht,{void:()=>Vm,util:()=>re,unknown:()=>Gm,union:()=>jm,undefined:()=>Um,tuple:()=>Xm,transformer:()=>ag,symbol:()=>Fm,string:()=>ld,strictObject:()=>Ym,setErrorMap:()=>lm,set:()=>Zm,record:()=>Jm,quotelessJson:()=>am,promise:()=>sg,preprocess:()=>cg,pipeline:()=>ug,ostring:()=>dg,optional:()=>og,onumber:()=>hg,oboolean:()=>fg,objectUtil:()=>fc,object:()=>Wm,number:()=>cd,nullable:()=>lg,null:()=>Bm,never:()=>Hm,nativeEnum:()=>ng,nan:()=>Nm,map:()=>Qm,makeIssue:()=>La,literal:()=>ig,lazy:()=>eg,late:()=>Om,isValid:()=>Br,isDirty:()=>Io,isAsync:()=>ls,isAborted:()=>Do,intersection:()=>qm,instanceof:()=>Mm,getParsedType:()=>Zi,getErrorMap:()=>os,function:()=>tg,enum:()=>rg,effect:()=>ag,discriminatedUnion:()=>zm,defaultErrorMap:()=>Sr,datetimeRegex:()=>sd,date:()=>xm,custom:()=>od,coerce:()=>mg,boolean:()=>ud,bigint:()=>Pm,array:()=>Km,any:()=>$m,addIssueToContext:()=>wt,ZodVoid:()=>Ra,ZodUnknown:()=>$r,ZodUnion:()=>ms,ZodUndefined:()=>hs,ZodType:()=>ee,ZodTuple:()=>er,ZodTransformer:()=>Ki,ZodSymbol:()=>wa,ZodString:()=>$i,ZodSet:()=>Sn,ZodSchema:()=>ee,ZodRecord:()=>ka,ZodReadonly:()=>bs,ZodPromise:()=>bn,ZodPipeline:()=>Ia,ZodParsedType:()=>At,ZodOptional:()=>Hi,ZodObject:()=>Se,ZodNumber:()=>Gr,ZodNullable:()=>Tr,ZodNull:()=>fs,ZodNever:()=>tr,ZodNativeEnum:()=>Es,ZodNaN:()=>Da,ZodMap:()=>Ca,ZodLiteral:()=>vs,ZodLazy:()=>ps,ZodIssueCode:()=>yt,ZodIntersection:()=>gs,ZodFunction:()=>us,ZodFirstPartyTypeKind:()=>Yt,ZodError:()=>li,ZodEnum:()=>Vr,ZodEffects:()=>Ki,ZodDiscriminatedUnion:()=>Oo,ZodDefault:()=>ys,ZodDate:()=>En,ZodCatch:()=>Ss,ZodBranded:()=>Mo,ZodBoolean:()=>ds,ZodBigInt:()=>Hr,ZodArray:()=>Gi,ZodAny:()=>yn,Schema:()=>ee,ParseStatus:()=>He,OK:()=>Xe,NEVER:()=>gg,INVALID:()=>Vt,EMPTY_PATH:()=>cm,DIRTY:()=>vn,BRAND:()=>Im});var re;(function(n){n.assertEqual=(E)=>{};function o(E){}n.assertIs=o;function h(E){throw new Error}n.assertNever=h,n.arrayToEnum=(E)=>{let _={};for(let R of E)_[R]=R;return _},n.getValidEnumValues=(E)=>{let _=n.objectKeys(E).filter((A)=>typeof E[E[A]]!=="number"),R={};for(let A of _)R[A]=E[A];return n.objectValues(R)},n.objectValues=(E)=>{return n.objectKeys(E).map(function(_){return E[_]})},n.objectKeys=typeof Object.keys==="function"?(E)=>Object.keys(E):(E)=>{let _=[];for(let R in E)if(Object.prototype.hasOwnProperty.call(E,R))_.push(R);return _},n.find=(E,_)=>{for(let R of E)if(_(R))return R;return},n.isInteger=typeof Number.isInteger==="function"?(E)=>Number.isInteger(E):(E)=>typeof E==="number"&&Number.isFinite(E)&&Math.floor(E)===E;function v(E,_=" | "){return E.map((R)=>typeof R==="string"?`'${R}'`:R).join(_)}n.joinValues=v,n.jsonStringifyReplacer=(E,_)=>{if(typeof _==="bigint")return _.toString();return _}})(re||(re={}));var fc;(function(n){n.mergeShapes=(o,h)=>{return{...o,...h}}})(fc||(fc={}));var At=re.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Zi=(n)=>{switch(typeof n){case"undefined":return At.undefined;case"string":return At.string;case"number":return Number.isNaN(n)?At.nan:At.number;case"boolean":return At.boolean;case"function":return At.function;case"bigint":return At.bigint;case"symbol":return At.symbol;case"object":if(Array.isArray(n))return At.array;if(n===null)return At.null;if(n.then&&typeof n.then==="function"&&n.catch&&typeof n.catch==="function")return At.promise;if(typeof Map!=="undefined"&&n instanceof Map)return At.map;if(typeof Set!=="undefined"&&n instanceof Set)return At.set;if(typeof Date!=="undefined"&&n instanceof Date)return At.date;return At.object;default:return At.unknown}};var yt=re.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),am=(n)=>{return JSON.stringify(n,null,2).replace(/"([^"]+)":/g,"$1:")};class li extends Error{get errors(){return this.issues}constructor(n){super();this.issues=[],this.addIssue=(h)=>{this.issues=[...this.issues,h]},this.addIssues=(h=[])=>{this.issues=[...this.issues,...h]};let o=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,o);else this.__proto__=o;this.name="ZodError",this.issues=n}format(n){let o=n||function(E){return E.message},h={_errors:[]},v=(E)=>{for(let _ of E.issues)if(_.code==="invalid_union")_.unionErrors.map(v);else if(_.code==="invalid_return_type")v(_.returnTypeError);else if(_.code==="invalid_arguments")v(_.argumentsError);else if(_.path.length===0)h._errors.push(o(_));else{let R=h,A=0;while(A<_.path.length){let L=_.path[A];if(A!==_.path.length-1)R[L]=R[L]||{_errors:[]};else R[L]=R[L]||{_errors:[]},R[L]._errors.push(o(_));R=R[L],A++}}};return v(this),h}static assert(n){if(!(n instanceof li))throw new Error(`Not a ZodError: ${n}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,re.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(n=(o)=>o.message){let o={},h=[];for(let v of this.issues)if(v.path.length>0){let E=v.path[0];o[E]=o[E]||[],o[E].push(n(v))}else h.push(n(v));return{formErrors:h,fieldErrors:o}}get formErrors(){return this.flatten()}}li.create=(n)=>{return new li(n)};var om=(n,o)=>{let h;switch(n.code){case yt.invalid_type:if(n.received===At.undefined)h="Required";else h=`Expected ${n.expected}, received ${n.received}`;break;case yt.invalid_literal:h=`Invalid literal value, expected ${JSON.stringify(n.expected,re.jsonStringifyReplacer)}`;break;case yt.unrecognized_keys:h=`Unrecognized key(s) in object: ${re.joinValues(n.keys,", ")}`;break;case yt.invalid_union:h="Invalid input";break;case yt.invalid_union_discriminator:h=`Invalid discriminator value. Expected ${re.joinValues(n.options)}`;break;case yt.invalid_enum_value:h=`Invalid enum value. Expected ${re.joinValues(n.options)}, received '${n.received}'`;break;case yt.invalid_arguments:h="Invalid function arguments";break;case yt.invalid_return_type:h="Invalid function return type";break;case yt.invalid_date:h="Invalid date";break;case yt.invalid_string:if(typeof n.validation==="object")if("includes"in n.validation){if(h=`Invalid input: must include "${n.validation.includes}"`,typeof n.validation.position==="number")h=`${h} at one or more positions greater than or equal to ${n.validation.position}`}else if("startsWith"in n.validation)h=`Invalid input: must start with "${n.validation.startsWith}"`;else if("endsWith"in n.validation)h=`Invalid input: must end with "${n.validation.endsWith}"`;else re.assertNever(n.validation);else if(n.validation!=="regex")h=`Invalid ${n.validation}`;else h="Invalid";break;case yt.too_small:if(n.type==="array")h=`Array must contain ${n.exact?"exactly":n.inclusive?"at least":"more than"} ${n.minimum} element(s)`;else if(n.type==="string")h=`String must contain ${n.exact?"exactly":n.inclusive?"at least":"over"} ${n.minimum} character(s)`;else if(n.type==="number")h=`Number must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${n.minimum}`;else if(n.type==="bigint")h=`Number must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${n.minimum}`;else if(n.type==="date")h=`Date must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(n.minimum))}`;else h="Invalid input";break;case yt.too_big:if(n.type==="array")h=`Array must contain ${n.exact?"exactly":n.inclusive?"at most":"less than"} ${n.maximum} element(s)`;else if(n.type==="string")h=`String must contain ${n.exact?"exactly":n.inclusive?"at most":"under"} ${n.maximum} character(s)`;else if(n.type==="number")h=`Number must be ${n.exact?"exactly":n.inclusive?"less than or equal to":"less than"} ${n.maximum}`;else if(n.type==="bigint")h=`BigInt must be ${n.exact?"exactly":n.inclusive?"less than or equal to":"less than"} ${n.maximum}`;else if(n.type==="date")h=`Date must be ${n.exact?"exactly":n.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(n.maximum))}`;else h="Invalid input";break;case yt.custom:h="Invalid input";break;case yt.invalid_intersection_types:h="Intersection results could not be merged";break;case yt.not_multiple_of:h=`Number must be a multiple of ${n.multipleOf}`;break;case yt.not_finite:h="Number must be finite";break;default:h=o.defaultError,re.assertNever(n)}return{message:h}},Sr=om;var td=Sr;function lm(n){td=n}function os(){return td}var La=(n)=>{let{data:o,path:h,errorMaps:v,issueData:E}=n,_=[...h,...E.path||[]],R={...E,path:_};if(E.message!==void 0)return{...E,path:_,message:E.message};let A="",L=v.filter((M)=>!!M).slice().reverse();for(let M of L)A=M(R,{data:o,defaultError:A}).message;return{...E,path:_,message:A}},cm=[];function wt(n,o){let h=os(),v=La({issueData:o,data:n.data,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,h,h===Sr?void 0:Sr].filter((E)=>!!E)});n.common.issues.push(v)}class He{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(n,o){let h=[];for(let v of o){if(v.status==="aborted")return Vt;if(v.status==="dirty")n.dirty();h.push(v.value)}return{status:n.value,value:h}}static async mergeObjectAsync(n,o){let h=[];for(let v of o){let E=await v.key,_=await v.value;h.push({key:E,value:_})}return He.mergeObjectSync(n,h)}static mergeObjectSync(n,o){let h={};for(let v of o){let{key:E,value:_}=v;if(E.status==="aborted")return Vt;if(_.status==="aborted")return Vt;if(E.status==="dirty")n.dirty();if(_.status==="dirty")n.dirty();if(E.value!=="__proto__"&&(typeof _.value!=="undefined"||v.alwaysSet))h[E.value]=_.value}return{status:n.value,value:h}}}var Vt=Object.freeze({status:"aborted"}),vn=(n)=>({status:"dirty",value:n}),Xe=(n)=>({status:"valid",value:n}),Do=(n)=>n.status==="aborted",Io=(n)=>n.status==="dirty",Br=(n)=>n.status==="valid",ls=(n)=>typeof Promise!=="undefined"&&n instanceof Promise;var Ut;(function(n){n.errToObj=(o)=>typeof o==="string"?{message:o}:o||{},n.toString=(o)=>typeof o==="string"?o:o?.message})(Ut||(Ut={}));class Vi{constructor(n,o,h,v){this._cachedPath=[],this.parent=n,this.data=o,this._path=h,this._key=v}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var ed=(n,o)=>{if(Br(o))return{success:!0,data:o.value};else{if(!n.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let h=new li(n.common.issues);return this._error=h,this._error}}}};function Qt(n){if(!n)return{};let{errorMap:o,invalid_type_error:h,required_error:v,description:E}=n;if(o&&(h||v))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(o)return{errorMap:o,description:E};return{errorMap:(R,A)=>{let{message:L}=n;if(R.code==="invalid_enum_value")return{message:L??A.defaultError};if(typeof A.data==="undefined")return{message:L??v??A.defaultError};if(R.code!=="invalid_type")return{message:A.defaultError};return{message:L??h??A.defaultError}},description:E}}class ee{get description(){return this._def.description}_getType(n){return Zi(n.data)}_getOrReturnCtx(n,o){return o||{common:n.parent.common,data:n.data,parsedType:Zi(n.data),schemaErrorMap:this._def.errorMap,path:n.path,parent:n.parent}}_processInputParams(n){return{status:new He,ctx:{common:n.parent.common,data:n.data,parsedType:Zi(n.data),schemaErrorMap:this._def.errorMap,path:n.path,parent:n.parent}}}_parseSync(n){let o=this._parse(n);if(ls(o))throw new Error("Synchronous parse encountered promise.");return o}_parseAsync(n){let o=this._parse(n);return Promise.resolve(o)}parse(n,o){let h=this.safeParse(n,o);if(h.success)return h.data;throw h.error}safeParse(n,o){let h={common:{issues:[],async:o?.async??!1,contextualErrorMap:o?.errorMap},path:o?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:n,parsedType:Zi(n)},v=this._parseSync({data:n,path:h.path,parent:h});return ed(h,v)}"~validate"(n){let o={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:n,parsedType:Zi(n)};if(!this["~standard"].async)try{let h=this._parseSync({data:n,path:[],parent:o});return Br(h)?{value:h.value}:{issues:o.common.issues}}catch(h){if(h?.message?.toLowerCase()?.includes("encountered"))this["~standard"].async=!0;o.common={issues:[],async:!0}}return this._parseAsync({data:n,path:[],parent:o}).then((h)=>Br(h)?{value:h.value}:{issues:o.common.issues})}async parseAsync(n,o){let h=await this.safeParseAsync(n,o);if(h.success)return h.data;throw h.error}async safeParseAsync(n,o){let h={common:{issues:[],contextualErrorMap:o?.errorMap,async:!0},path:o?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:n,parsedType:Zi(n)},v=this._parse({data:n,path:h.path,parent:h}),E=await(ls(v)?v:Promise.resolve(v));return ed(h,E)}refine(n,o){let h=(v)=>{if(typeof o==="string"||typeof o==="undefined")return{message:o};else if(typeof o==="function")return o(v);else return o};return this._refinement((v,E)=>{let _=n(v),R=()=>E.addIssue({code:yt.custom,...h(v)});if(typeof Promise!=="undefined"&&_ instanceof Promise)return _.then((A)=>{if(!A)return R(),!1;else return!0});if(!_)return R(),!1;else return!0})}refinement(n,o){return this._refinement((h,v)=>{if(!n(h))return v.addIssue(typeof o==="function"?o(h,v):o),!1;else return!0})}_refinement(n){return new Ki({schema:this,typeName:Yt.ZodEffects,effect:{type:"refinement",refinement:n}})}superRefine(n){return this._refinement(n)}constructor(n){this.spa=this.safeParseAsync,this._def=n,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:(o)=>this["~validate"](o)}}optional(){return Hi.create(this,this._def)}nullable(){return Tr.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Gi.create(this)}promise(){return bn.create(this,this._def)}or(n){return ms.create([this,n],this._def)}and(n){return gs.create(this,n,this._def)}transform(n){return new Ki({...Qt(this._def),schema:this,typeName:Yt.ZodEffects,effect:{type:"transform",transform:n}})}default(n){let o=typeof n==="function"?n:()=>n;return new ys({...Qt(this._def),innerType:this,defaultValue:o,typeName:Yt.ZodDefault})}brand(){return new Mo({typeName:Yt.ZodBranded,type:this,...Qt(this._def)})}catch(n){let o=typeof n==="function"?n:()=>n;return new Ss({...Qt(this._def),innerType:this,catchValue:o,typeName:Yt.ZodCatch})}describe(n){return new this.constructor({...this._def,description:n})}pipe(n){return Ia.create(this,n)}readonly(){return bs.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var um=/^c[^\s-]{8,}$/i,dm=/^[0-9a-z]+$/,hm=/^[0-9A-HJKMNP-TV-Z]{26}$/i,fm=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,mm=/^[a-z0-9_-]{21}$/i,gm=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,pm=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,vm=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Em="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",mc,ym=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Sm=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,bm=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Tm=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Am=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,_m=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,rd="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Lm=new RegExp(`^${rd}$`);function nd(n){let o="[0-5]\\d";if(n.precision)o=`${o}\\.\\d{${n.precision}}`;else if(n.precision==null)o=`${o}(\\.\\d+)?`;let h=n.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${o})${h}`}function wm(n){return new RegExp(`^${nd(n)}$`)}function sd(n){let o=`${rd}T${nd(n)}`,h=[];if(h.push(n.local?"Z?":"Z"),n.offset)h.push("([+-]\\d{2}:?\\d{2})");return o=`${o}(${h.join("|")})`,new RegExp(`^${o}$`)}function Rm(n,o){if((o==="v4"||!o)&&ym.test(n))return!0;if((o==="v6"||!o)&&bm.test(n))return!0;return!1}function km(n,o){if(!gm.test(n))return!1;try{let[h]=n.split(".");if(!h)return!1;let v=h.replace(/-/g,"+").replace(/_/g,"/").padEnd(h.length+(4-h.length%4)%4,"="),E=JSON.parse(atob(v));if(typeof E!=="object"||E===null)return!1;if("typ"in E&&E?.typ!=="JWT")return!1;if(!E.alg)return!1;if(o&&E.alg!==o)return!1;return!0}catch{return!1}}function Cm(n,o){if((o==="v4"||!o)&&Sm.test(n))return!0;if((o==="v6"||!o)&&Tm.test(n))return!0;return!1}class $i extends ee{_parse(n){if(this._def.coerce)n.data=String(n.data);if(this._getType(n)!==At.string){let E=this._getOrReturnCtx(n);return wt(E,{code:yt.invalid_type,expected:At.string,received:E.parsedType}),Vt}let h=new He,v=void 0;for(let E of this._def.checks)if(E.kind==="min"){if(n.data.length<E.value)v=this._getOrReturnCtx(n,v),wt(v,{code:yt.too_small,minimum:E.value,type:"string",inclusive:!0,exact:!1,message:E.message}),h.dirty()}else if(E.kind==="max"){if(n.data.length>E.value)v=this._getOrReturnCtx(n,v),wt(v,{code:yt.too_big,maximum:E.value,type:"string",inclusive:!0,exact:!1,message:E.message}),h.dirty()}else if(E.kind==="length"){let _=n.data.length>E.value,R=n.data.length<E.value;if(_||R){if(v=this._getOrReturnCtx(n,v),_)wt(v,{code:yt.too_big,maximum:E.value,type:"string",inclusive:!0,exact:!0,message:E.message});else if(R)wt(v,{code:yt.too_small,minimum:E.value,type:"string",inclusive:!0,exact:!0,message:E.message});h.dirty()}}else if(E.kind==="email"){if(!vm.test(n.data))v=this._getOrReturnCtx(n,v),wt(v,{validation:"email",code:yt.invalid_string,message:E.message}),h.dirty()}else if(E.kind==="emoji"){if(!mc)mc=new RegExp(Em,"u");if(!mc.test(n.data))v=this._getOrReturnCtx(n,v),wt(v,{validation:"emoji",code:yt.invalid_string,message:E.message}),h.dirty()}else if(E.kind==="uuid"){if(!fm.test(n.data))v=this._getOrReturnCtx(n,v),wt(v,{validation:"uuid",code:yt.invalid_string,message:E.message}),h.dirty()}else if(E.kind==="nanoid"){if(!mm.test(n.data))v=this._getOrReturnCtx(n,v),wt(v,{validation:"nanoid",code:yt.invalid_string,message:E.message}),h.dirty()}else if(E.kind==="cuid"){if(!um.test(n.data))v=this._getOrReturnCtx(n,v),wt(v,{validation:"cuid",code:yt.invalid_string,message:E.message}),h.dirty()}else if(E.kind==="cuid2"){if(!dm.test(n.data))v=this._getOrReturnCtx(n,v),wt(v,{validation:"cuid2",code:yt.invalid_string,message:E.message}),h.dirty()}else if(E.kind==="ulid"){if(!hm.test(n.data))v=this._getOrReturnCtx(n,v),wt(v,{validation:"ulid",code:yt.invalid_string,message:E.message}),h.dirty()}else if(E.kind==="url")try{new URL(n.data)}catch{v=this._getOrReturnCtx(n,v),wt(v,{validation:"url",code:yt.invalid_string,message:E.message}),h.dirty()}else if(E.kind==="regex"){if(E.regex.lastIndex=0,!E.regex.test(n.data))v=this._getOrReturnCtx(n,v),wt(v,{validation:"regex",code:yt.invalid_string,message:E.message}),h.dirty()}else if(E.kind==="trim")n.data=n.data.trim();else if(E.kind==="includes"){if(!n.data.includes(E.value,E.position))v=this._getOrReturnCtx(n,v),wt(v,{code:yt.invalid_string,validation:{includes:E.value,position:E.position},message:E.message}),h.dirty()}else if(E.kind==="toLowerCase")n.data=n.data.toLowerCase();else if(E.kind==="toUpperCase")n.data=n.data.toUpperCase();else if(E.kind==="startsWith"){if(!n.data.startsWith(E.value))v=this._getOrReturnCtx(n,v),wt(v,{code:yt.invalid_string,validation:{startsWith:E.value},message:E.message}),h.dirty()}else if(E.kind==="endsWith"){if(!n.data.endsWith(E.value))v=this._getOrReturnCtx(n,v),wt(v,{code:yt.invalid_string,validation:{endsWith:E.value},message:E.message}),h.dirty()}else if(E.kind==="datetime"){if(!sd(E).test(n.data))v=this._getOrReturnCtx(n,v),wt(v,{code:yt.invalid_string,validation:"datetime",message:E.message}),h.dirty()}else if(E.kind==="date"){if(!Lm.test(n.data))v=this._getOrReturnCtx(n,v),wt(v,{code:yt.invalid_string,validation:"date",message:E.message}),h.dirty()}else if(E.kind==="time"){if(!wm(E).test(n.data))v=this._getOrReturnCtx(n,v),wt(v,{code:yt.invalid_string,validation:"time",message:E.message}),h.dirty()}else if(E.kind==="duration"){if(!pm.test(n.data))v=this._getOrReturnCtx(n,v),wt(v,{validation:"duration",code:yt.invalid_string,message:E.message}),h.dirty()}else if(E.kind==="ip"){if(!Rm(n.data,E.version))v=this._getOrReturnCtx(n,v),wt(v,{validation:"ip",code:yt.invalid_string,message:E.message}),h.dirty()}else if(E.kind==="jwt"){if(!km(n.data,E.alg))v=this._getOrReturnCtx(n,v),wt(v,{validation:"jwt",code:yt.invalid_string,message:E.message}),h.dirty()}else if(E.kind==="cidr"){if(!Cm(n.data,E.version))v=this._getOrReturnCtx(n,v),wt(v,{validation:"cidr",code:yt.invalid_string,message:E.message}),h.dirty()}else if(E.kind==="base64"){if(!Am.test(n.data))v=this._getOrReturnCtx(n,v),wt(v,{validation:"base64",code:yt.invalid_string,message:E.message}),h.dirty()}else if(E.kind==="base64url"){if(!_m.test(n.data))v=this._getOrReturnCtx(n,v),wt(v,{validation:"base64url",code:yt.invalid_string,message:E.message}),h.dirty()}else re.assertNever(E);return{status:h.value,value:n.data}}_regex(n,o,h){return this.refinement((v)=>n.test(v),{validation:o,code:yt.invalid_string,...Ut.errToObj(h)})}_addCheck(n){return new $i({...this._def,checks:[...this._def.checks,n]})}email(n){return this._addCheck({kind:"email",...Ut.errToObj(n)})}url(n){return this._addCheck({kind:"url",...Ut.errToObj(n)})}emoji(n){return this._addCheck({kind:"emoji",...Ut.errToObj(n)})}uuid(n){return this._addCheck({kind:"uuid",...Ut.errToObj(n)})}nanoid(n){return this._addCheck({kind:"nanoid",...Ut.errToObj(n)})}cuid(n){return this._addCheck({kind:"cuid",...Ut.errToObj(n)})}cuid2(n){return this._addCheck({kind:"cuid2",...Ut.errToObj(n)})}ulid(n){return this._addCheck({kind:"ulid",...Ut.errToObj(n)})}base64(n){return this._addCheck({kind:"base64",...Ut.errToObj(n)})}base64url(n){return this._addCheck({kind:"base64url",...Ut.errToObj(n)})}jwt(n){return this._addCheck({kind:"jwt",...Ut.errToObj(n)})}ip(n){return this._addCheck({kind:"ip",...Ut.errToObj(n)})}cidr(n){return this._addCheck({kind:"cidr",...Ut.errToObj(n)})}datetime(n){if(typeof n==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:n});return this._addCheck({kind:"datetime",precision:typeof n?.precision==="undefined"?null:n?.precision,offset:n?.offset??!1,local:n?.local??!1,...Ut.errToObj(n?.message)})}date(n){return this._addCheck({kind:"date",message:n})}time(n){if(typeof n==="string")return this._addCheck({kind:"time",precision:null,message:n});return this._addCheck({kind:"time",precision:typeof n?.precision==="undefined"?null:n?.precision,...Ut.errToObj(n?.message)})}duration(n){return this._addCheck({kind:"duration",...Ut.errToObj(n)})}regex(n,o){return this._addCheck({kind:"regex",regex:n,...Ut.errToObj(o)})}includes(n,o){return this._addCheck({kind:"includes",value:n,position:o?.position,...Ut.errToObj(o?.message)})}startsWith(n,o){return this._addCheck({kind:"startsWith",value:n,...Ut.errToObj(o)})}endsWith(n,o){return this._addCheck({kind:"endsWith",value:n,...Ut.errToObj(o)})}min(n,o){return this._addCheck({kind:"min",value:n,...Ut.errToObj(o)})}max(n,o){return this._addCheck({kind:"max",value:n,...Ut.errToObj(o)})}length(n,o){return this._addCheck({kind:"length",value:n,...Ut.errToObj(o)})}nonempty(n){return this.min(1,Ut.errToObj(n))}trim(){return new $i({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new $i({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new $i({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((n)=>n.kind==="datetime")}get isDate(){return!!this._def.checks.find((n)=>n.kind==="date")}get isTime(){return!!this._def.checks.find((n)=>n.kind==="time")}get isDuration(){return!!this._def.checks.find((n)=>n.kind==="duration")}get isEmail(){return!!this._def.checks.find((n)=>n.kind==="email")}get isURL(){return!!this._def.checks.find((n)=>n.kind==="url")}get isEmoji(){return!!this._def.checks.find((n)=>n.kind==="emoji")}get isUUID(){return!!this._def.checks.find((n)=>n.kind==="uuid")}get isNANOID(){return!!this._def.checks.find((n)=>n.kind==="nanoid")}get isCUID(){return!!this._def.checks.find((n)=>n.kind==="cuid")}get isCUID2(){return!!this._def.checks.find((n)=>n.kind==="cuid2")}get isULID(){return!!this._def.checks.find((n)=>n.kind==="ulid")}get isIP(){return!!this._def.checks.find((n)=>n.kind==="ip")}get isCIDR(){return!!this._def.checks.find((n)=>n.kind==="cidr")}get isBase64(){return!!this._def.checks.find((n)=>n.kind==="base64")}get isBase64url(){return!!this._def.checks.find((n)=>n.kind==="base64url")}get minLength(){let n=null;for(let o of this._def.checks)if(o.kind==="min"){if(n===null||o.value>n)n=o.value}return n}get maxLength(){let n=null;for(let o of this._def.checks)if(o.kind==="max"){if(n===null||o.value<n)n=o.value}return n}}$i.create=(n)=>{return new $i({checks:[],typeName:Yt.ZodString,coerce:n?.coerce??!1,...Qt(n)})};function Dm(n,o){let h=(n.toString().split(".")[1]||"").length,v=(o.toString().split(".")[1]||"").length,E=h>v?h:v,_=Number.parseInt(n.toFixed(E).replace(".","")),R=Number.parseInt(o.toFixed(E).replace(".",""));return _%R/10**E}class Gr extends ee{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(n){if(this._def.coerce)n.data=Number(n.data);if(this._getType(n)!==At.number){let E=this._getOrReturnCtx(n);return wt(E,{code:yt.invalid_type,expected:At.number,received:E.parsedType}),Vt}let h=void 0,v=new He;for(let E of this._def.checks)if(E.kind==="int"){if(!re.isInteger(n.data))h=this._getOrReturnCtx(n,h),wt(h,{code:yt.invalid_type,expected:"integer",received:"float",message:E.message}),v.dirty()}else if(E.kind==="min"){if(E.inclusive?n.data<E.value:n.data<=E.value)h=this._getOrReturnCtx(n,h),wt(h,{code:yt.too_small,minimum:E.value,type:"number",inclusive:E.inclusive,exact:!1,message:E.message}),v.dirty()}else if(E.kind==="max"){if(E.inclusive?n.data>E.value:n.data>=E.value)h=this._getOrReturnCtx(n,h),wt(h,{code:yt.too_big,maximum:E.value,type:"number",inclusive:E.inclusive,exact:!1,message:E.message}),v.dirty()}else if(E.kind==="multipleOf"){if(Dm(n.data,E.value)!==0)h=this._getOrReturnCtx(n,h),wt(h,{code:yt.not_multiple_of,multipleOf:E.value,message:E.message}),v.dirty()}else if(E.kind==="finite"){if(!Number.isFinite(n.data))h=this._getOrReturnCtx(n,h),wt(h,{code:yt.not_finite,message:E.message}),v.dirty()}else re.assertNever(E);return{status:v.value,value:n.data}}gte(n,o){return this.setLimit("min",n,!0,Ut.toString(o))}gt(n,o){return this.setLimit("min",n,!1,Ut.toString(o))}lte(n,o){return this.setLimit("max",n,!0,Ut.toString(o))}lt(n,o){return this.setLimit("max",n,!1,Ut.toString(o))}setLimit(n,o,h,v){return new Gr({...this._def,checks:[...this._def.checks,{kind:n,value:o,inclusive:h,message:Ut.toString(v)}]})}_addCheck(n){return new Gr({...this._def,checks:[...this._def.checks,n]})}int(n){return this._addCheck({kind:"int",message:Ut.toString(n)})}positive(n){return this._addCheck({kind:"min",value:0,inclusive:!1,message:Ut.toString(n)})}negative(n){return this._addCheck({kind:"max",value:0,inclusive:!1,message:Ut.toString(n)})}nonpositive(n){return this._addCheck({kind:"max",value:0,inclusive:!0,message:Ut.toString(n)})}nonnegative(n){return this._addCheck({kind:"min",value:0,inclusive:!0,message:Ut.toString(n)})}multipleOf(n,o){return this._addCheck({kind:"multipleOf",value:n,message:Ut.toString(o)})}finite(n){return this._addCheck({kind:"finite",message:Ut.toString(n)})}safe(n){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:Ut.toString(n)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:Ut.toString(n)})}get minValue(){let n=null;for(let o of this._def.checks)if(o.kind==="min"){if(n===null||o.value>n)n=o.value}return n}get maxValue(){let n=null;for(let o of this._def.checks)if(o.kind==="max"){if(n===null||o.value<n)n=o.value}return n}get isInt(){return!!this._def.checks.find((n)=>n.kind==="int"||n.kind==="multipleOf"&&re.isInteger(n.value))}get isFinite(){let n=null,o=null;for(let h of this._def.checks)if(h.kind==="finite"||h.kind==="int"||h.kind==="multipleOf")return!0;else if(h.kind==="min"){if(o===null||h.value>o)o=h.value}else if(h.kind==="max"){if(n===null||h.value<n)n=h.value}return Number.isFinite(o)&&Number.isFinite(n)}}Gr.create=(n)=>{return new Gr({checks:[],typeName:Yt.ZodNumber,coerce:n?.coerce||!1,...Qt(n)})};class Hr extends ee{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(n){if(this._def.coerce)try{n.data=BigInt(n.data)}catch{return this._getInvalidInput(n)}if(this._getType(n)!==At.bigint)return this._getInvalidInput(n);let h=void 0,v=new He;for(let E of this._def.checks)if(E.kind==="min"){if(E.inclusive?n.data<E.value:n.data<=E.value)h=this._getOrReturnCtx(n,h),wt(h,{code:yt.too_small,type:"bigint",minimum:E.value,inclusive:E.inclusive,message:E.message}),v.dirty()}else if(E.kind==="max"){if(E.inclusive?n.data>E.value:n.data>=E.value)h=this._getOrReturnCtx(n,h),wt(h,{code:yt.too_big,type:"bigint",maximum:E.value,inclusive:E.inclusive,message:E.message}),v.dirty()}else if(E.kind==="multipleOf"){if(n.data%E.value!==BigInt(0))h=this._getOrReturnCtx(n,h),wt(h,{code:yt.not_multiple_of,multipleOf:E.value,message:E.message}),v.dirty()}else re.assertNever(E);return{status:v.value,value:n.data}}_getInvalidInput(n){let o=this._getOrReturnCtx(n);return wt(o,{code:yt.invalid_type,expected:At.bigint,received:o.parsedType}),Vt}gte(n,o){return this.setLimit("min",n,!0,Ut.toString(o))}gt(n,o){return this.setLimit("min",n,!1,Ut.toString(o))}lte(n,o){return this.setLimit("max",n,!0,Ut.toString(o))}lt(n,o){return this.setLimit("max",n,!1,Ut.toString(o))}setLimit(n,o,h,v){return new Hr({...this._def,checks:[...this._def.checks,{kind:n,value:o,inclusive:h,message:Ut.toString(v)}]})}_addCheck(n){return new Hr({...this._def,checks:[...this._def.checks,n]})}positive(n){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:Ut.toString(n)})}negative(n){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:Ut.toString(n)})}nonpositive(n){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:Ut.toString(n)})}nonnegative(n){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:Ut.toString(n)})}multipleOf(n,o){return this._addCheck({kind:"multipleOf",value:n,message:Ut.toString(o)})}get minValue(){let n=null;for(let o of this._def.checks)if(o.kind==="min"){if(n===null||o.value>n)n=o.value}return n}get maxValue(){let n=null;for(let o of this._def.checks)if(o.kind==="max"){if(n===null||o.value<n)n=o.value}return n}}Hr.create=(n)=>{return new Hr({checks:[],typeName:Yt.ZodBigInt,coerce:n?.coerce??!1,...Qt(n)})};class ds extends ee{_parse(n){if(this._def.coerce)n.data=Boolean(n.data);if(this._getType(n)!==At.boolean){let h=this._getOrReturnCtx(n);return wt(h,{code:yt.invalid_type,expected:At.boolean,received:h.parsedType}),Vt}return Xe(n.data)}}ds.create=(n)=>{return new ds({typeName:Yt.ZodBoolean,coerce:n?.coerce||!1,...Qt(n)})};class En extends ee{_parse(n){if(this._def.coerce)n.data=new Date(n.data);if(this._getType(n)!==At.date){let E=this._getOrReturnCtx(n);return wt(E,{code:yt.invalid_type,expected:At.date,received:E.parsedType}),Vt}if(Number.isNaN(n.data.getTime())){let E=this._getOrReturnCtx(n);return wt(E,{code:yt.invalid_date}),Vt}let h=new He,v=void 0;for(let E of this._def.checks)if(E.kind==="min"){if(n.data.getTime()<E.value)v=this._getOrReturnCtx(n,v),wt(v,{code:yt.too_small,message:E.message,inclusive:!0,exact:!1,minimum:E.value,type:"date"}),h.dirty()}else if(E.kind==="max"){if(n.data.getTime()>E.value)v=this._getOrReturnCtx(n,v),wt(v,{code:yt.too_big,message:E.message,inclusive:!0,exact:!1,maximum:E.value,type:"date"}),h.dirty()}else re.assertNever(E);return{status:h.value,value:new Date(n.data.getTime())}}_addCheck(n){return new En({...this._def,checks:[...this._def.checks,n]})}min(n,o){return this._addCheck({kind:"min",value:n.getTime(),message:Ut.toString(o)})}max(n,o){return this._addCheck({kind:"max",value:n.getTime(),message:Ut.toString(o)})}get minDate(){let n=null;for(let o of this._def.checks)if(o.kind==="min"){if(n===null||o.value>n)n=o.value}return n!=null?new Date(n):null}get maxDate(){let n=null;for(let o of this._def.checks)if(o.kind==="max"){if(n===null||o.value<n)n=o.value}return n!=null?new Date(n):null}}En.create=(n)=>{return new En({checks:[],coerce:n?.coerce||!1,typeName:Yt.ZodDate,...Qt(n)})};class wa extends ee{_parse(n){if(this._getType(n)!==At.symbol){let h=this._getOrReturnCtx(n);return wt(h,{code:yt.invalid_type,expected:At.symbol,received:h.parsedType}),Vt}return Xe(n.data)}}wa.create=(n)=>{return new wa({typeName:Yt.ZodSymbol,...Qt(n)})};class hs extends ee{_parse(n){if(this._getType(n)!==At.undefined){let h=this._getOrReturnCtx(n);return wt(h,{code:yt.invalid_type,expected:At.undefined,received:h.parsedType}),Vt}return Xe(n.data)}}hs.create=(n)=>{return new hs({typeName:Yt.ZodUndefined,...Qt(n)})};class fs extends ee{_parse(n){if(this._getType(n)!==At.null){let h=this._getOrReturnCtx(n);return wt(h,{code:yt.invalid_type,expected:At.null,received:h.parsedType}),Vt}return Xe(n.data)}}fs.create=(n)=>{return new fs({typeName:Yt.ZodNull,...Qt(n)})};class yn extends ee{constructor(){super(...arguments);this._any=!0}_parse(n){return Xe(n.data)}}yn.create=(n)=>{return new yn({typeName:Yt.ZodAny,...Qt(n)})};class $r extends ee{constructor(){super(...arguments);this._unknown=!0}_parse(n){return Xe(n.data)}}$r.create=(n)=>{return new $r({typeName:Yt.ZodUnknown,...Qt(n)})};class tr extends ee{_parse(n){let o=this._getOrReturnCtx(n);return wt(o,{code:yt.invalid_type,expected:At.never,received:o.parsedType}),Vt}}tr.create=(n)=>{return new tr({typeName:Yt.ZodNever,...Qt(n)})};class Ra extends ee{_parse(n){if(this._getType(n)!==At.undefined){let h=this._getOrReturnCtx(n);return wt(h,{code:yt.invalid_type,expected:At.void,received:h.parsedType}),Vt}return Xe(n.data)}}Ra.create=(n)=>{return new Ra({typeName:Yt.ZodVoid,...Qt(n)})};class Gi extends ee{_parse(n){let{ctx:o,status:h}=this._processInputParams(n),v=this._def;if(o.parsedType!==At.array)return wt(o,{code:yt.invalid_type,expected:At.array,received:o.parsedType}),Vt;if(v.exactLength!==null){let _=o.data.length>v.exactLength.value,R=o.data.length<v.exactLength.value;if(_||R)wt(o,{code:_?yt.too_big:yt.too_small,minimum:R?v.exactLength.value:void 0,maximum:_?v.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:v.exactLength.message}),h.dirty()}if(v.minLength!==null){if(o.data.length<v.minLength.value)wt(o,{code:yt.too_small,minimum:v.minLength.value,type:"array",inclusive:!0,exact:!1,message:v.minLength.message}),h.dirty()}if(v.maxLength!==null){if(o.data.length>v.maxLength.value)wt(o,{code:yt.too_big,maximum:v.maxLength.value,type:"array",inclusive:!0,exact:!1,message:v.maxLength.message}),h.dirty()}if(o.common.async)return Promise.all([...o.data].map((_,R)=>{return v.type._parseAsync(new Vi(o,_,o.path,R))})).then((_)=>{return He.mergeArray(h,_)});let E=[...o.data].map((_,R)=>{return v.type._parseSync(new Vi(o,_,o.path,R))});return He.mergeArray(h,E)}get element(){return this._def.type}min(n,o){return new Gi({...this._def,minLength:{value:n,message:Ut.toString(o)}})}max(n,o){return new Gi({...this._def,maxLength:{value:n,message:Ut.toString(o)}})}length(n,o){return new Gi({...this._def,exactLength:{value:n,message:Ut.toString(o)}})}nonempty(n){return this.min(1,n)}}Gi.create=(n,o)=>{return new Gi({type:n,minLength:null,maxLength:null,exactLength:null,typeName:Yt.ZodArray,...Qt(o)})};function cs(n){if(n instanceof Se){let o={};for(let h in n.shape){let v=n.shape[h];o[h]=Hi.create(cs(v))}return new Se({...n._def,shape:()=>o})}else if(n instanceof Gi)return new Gi({...n._def,type:cs(n.element)});else if(n instanceof Hi)return Hi.create(cs(n.unwrap()));else if(n instanceof Tr)return Tr.create(cs(n.unwrap()));else if(n instanceof er)return er.create(n.items.map((o)=>cs(o)));else return n}class Se extends ee{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let n=this._def.shape(),o=re.objectKeys(n);return this._cached={shape:n,keys:o},this._cached}_parse(n){if(this._getType(n)!==At.object){let L=this._getOrReturnCtx(n);return wt(L,{code:yt.invalid_type,expected:At.object,received:L.parsedType}),Vt}let{status:h,ctx:v}=this._processInputParams(n),{shape:E,keys:_}=this._getCached(),R=[];if(!(this._def.catchall instanceof tr&&this._def.unknownKeys==="strip")){for(let L in v.data)if(!_.includes(L))R.push(L)}let A=[];for(let L of _){let M=E[L],X=v.data[L];A.push({key:{status:"valid",value:L},value:M._parse(new Vi(v,X,v.path,L)),alwaysSet:L in v.data})}if(this._def.catchall instanceof tr){let L=this._def.unknownKeys;if(L==="passthrough")for(let M of R)A.push({key:{status:"valid",value:M},value:{status:"valid",value:v.data[M]}});else if(L==="strict"){if(R.length>0)wt(v,{code:yt.unrecognized_keys,keys:R}),h.dirty()}else if(L==="strip");else throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let L=this._def.catchall;for(let M of R){let X=v.data[M];A.push({key:{status:"valid",value:M},value:L._parse(new Vi(v,X,v.path,M)),alwaysSet:M in v.data})}}if(v.common.async)return Promise.resolve().then(async()=>{let L=[];for(let M of A){let X=await M.key,b=await M.value;L.push({key:X,value:b,alwaysSet:M.alwaysSet})}return L}).then((L)=>{return He.mergeObjectSync(h,L)});else return He.mergeObjectSync(h,A)}get shape(){return this._def.shape()}strict(n){return Ut.errToObj,new Se({...this._def,unknownKeys:"strict",...n!==void 0?{errorMap:(o,h)=>{let v=this._def.errorMap?.(o,h).message??h.defaultError;if(o.code==="unrecognized_keys")return{message:Ut.errToObj(n).message??v};return{message:v}}}:{}})}strip(){return new Se({...this._def,unknownKeys:"strip"})}passthrough(){return new Se({...this._def,unknownKeys:"passthrough"})}extend(n){return new Se({...this._def,shape:()=>({...this._def.shape(),...n})})}merge(n){return new Se({unknownKeys:n._def.unknownKeys,catchall:n._def.catchall,shape:()=>({...this._def.shape(),...n._def.shape()}),typeName:Yt.ZodObject})}setKey(n,o){return this.augment({[n]:o})}catchall(n){return new Se({...this._def,catchall:n})}pick(n){let o={};for(let h of re.objectKeys(n))if(n[h]&&this.shape[h])o[h]=this.shape[h];return new Se({...this._def,shape:()=>o})}omit(n){let o={};for(let h of re.objectKeys(this.shape))if(!n[h])o[h]=this.shape[h];return new Se({...this._def,shape:()=>o})}deepPartial(){return cs(this)}partial(n){let o={};for(let h of re.objectKeys(this.shape)){let v=this.shape[h];if(n&&!n[h])o[h]=v;else o[h]=v.optional()}return new Se({...this._def,shape:()=>o})}required(n){let o={};for(let h of re.objectKeys(this.shape))if(n&&!n[h])o[h]=this.shape[h];else{let E=this.shape[h];while(E instanceof Hi)E=E._def.innerType;o[h]=E}return new Se({...this._def,shape:()=>o})}keyof(){return ad(re.objectKeys(this.shape))}}Se.create=(n,o)=>{return new Se({shape:()=>n,unknownKeys:"strip",catchall:tr.create(),typeName:Yt.ZodObject,...Qt(o)})};Se.strictCreate=(n,o)=>{return new Se({shape:()=>n,unknownKeys:"strict",catchall:tr.create(),typeName:Yt.ZodObject,...Qt(o)})};Se.lazycreate=(n,o)=>{return new Se({shape:n,unknownKeys:"strip",catchall:tr.create(),typeName:Yt.ZodObject,...Qt(o)})};class ms extends ee{_parse(n){let{ctx:o}=this._processInputParams(n),h=this._def.options;function v(E){for(let R of E)if(R.result.status==="valid")return R.result;for(let R of E)if(R.result.status==="dirty")return o.common.issues.push(...R.ctx.common.issues),R.result;let _=E.map((R)=>new li(R.ctx.common.issues));return wt(o,{code:yt.invalid_union,unionErrors:_}),Vt}if(o.common.async)return Promise.all(h.map(async(E)=>{let _={...o,common:{...o.common,issues:[]},parent:null};return{result:await E._parseAsync({data:o.data,path:o.path,parent:_}),ctx:_}})).then(v);else{let E=void 0,_=[];for(let A of h){let L={...o,common:{...o.common,issues:[]},parent:null},M=A._parseSync({data:o.data,path:o.path,parent:L});if(M.status==="valid")return M;else if(M.status==="dirty"&&!E)E={result:M,ctx:L};if(L.common.issues.length)_.push(L.common.issues)}if(E)return o.common.issues.push(...E.ctx.common.issues),E.result;let R=_.map((A)=>new li(A));return wt(o,{code:yt.invalid_union,unionErrors:R}),Vt}}get options(){return this._def.options}}ms.create=(n,o)=>{return new ms({options:n,typeName:Yt.ZodUnion,...Qt(o)})};var br=(n)=>{if(n instanceof ps)return br(n.schema);else if(n instanceof Ki)return br(n.innerType());else if(n instanceof vs)return[n.value];else if(n instanceof Vr)return n.options;else if(n instanceof Es)return re.objectValues(n.enum);else if(n instanceof ys)return br(n._def.innerType);else if(n instanceof hs)return[void 0];else if(n instanceof fs)return[null];else if(n instanceof Hi)return[void 0,...br(n.unwrap())];else if(n instanceof Tr)return[null,...br(n.unwrap())];else if(n instanceof Mo)return br(n.unwrap());else if(n instanceof bs)return br(n.unwrap());else if(n instanceof Ss)return br(n._def.innerType);else return[]};class Oo extends ee{_parse(n){let{ctx:o}=this._processInputParams(n);if(o.parsedType!==At.object)return wt(o,{code:yt.invalid_type,expected:At.object,received:o.parsedType}),Vt;let h=this.discriminator,v=o.data[h],E=this.optionsMap.get(v);if(!E)return wt(o,{code:yt.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[h]}),Vt;if(o.common.async)return E._parseAsync({data:o.data,path:o.path,parent:o});else return E._parseSync({data:o.data,path:o.path,parent:o})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(n,o,h){let v=new Map;for(let E of o){let _=br(E.shape[n]);if(!_.length)throw new Error(`A discriminator value for key \`${n}\` could not be extracted from all schema options`);for(let R of _){if(v.has(R))throw new Error(`Discriminator property ${String(n)} has duplicate value ${String(R)}`);v.set(R,E)}}return new Oo({typeName:Yt.ZodDiscriminatedUnion,discriminator:n,options:o,optionsMap:v,...Qt(h)})}}function gc(n,o){let h=Zi(n),v=Zi(o);if(n===o)return{valid:!0,data:n};else if(h===At.object&&v===At.object){let E=re.objectKeys(o),_=re.objectKeys(n).filter((A)=>E.indexOf(A)!==-1),R={...n,...o};for(let A of _){let L=gc(n[A],o[A]);if(!L.valid)return{valid:!1};R[A]=L.data}return{valid:!0,data:R}}else if(h===At.array&&v===At.array){if(n.length!==o.length)return{valid:!1};let E=[];for(let _=0;_<n.length;_++){let R=n[_],A=o[_],L=gc(R,A);if(!L.valid)return{valid:!1};E.push(L.data)}return{valid:!0,data:E}}else if(h===At.date&&v===At.date&&+n===+o)return{valid:!0,data:n};else return{valid:!1}}class gs extends ee{_parse(n){let{status:o,ctx:h}=this._processInputParams(n),v=(E,_)=>{if(Do(E)||Do(_))return Vt;let R=gc(E.value,_.value);if(!R.valid)return wt(h,{code:yt.invalid_intersection_types}),Vt;if(Io(E)||Io(_))o.dirty();return{status:o.value,value:R.data}};if(h.common.async)return Promise.all([this._def.left._parseAsync({data:h.data,path:h.path,parent:h}),this._def.right._parseAsync({data:h.data,path:h.path,parent:h})]).then(([E,_])=>v(E,_));else return v(this._def.left._parseSync({data:h.data,path:h.path,parent:h}),this._def.right._parseSync({data:h.data,path:h.path,parent:h}))}}gs.create=(n,o,h)=>{return new gs({left:n,right:o,typeName:Yt.ZodIntersection,...Qt(h)})};class er extends ee{_parse(n){let{status:o,ctx:h}=this._processInputParams(n);if(h.parsedType!==At.array)return wt(h,{code:yt.invalid_type,expected:At.array,received:h.parsedType}),Vt;if(h.data.length<this._def.items.length)return wt(h,{code:yt.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),Vt;if(!this._def.rest&&h.data.length>this._def.items.length)wt(h,{code:yt.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),o.dirty();let E=[...h.data].map((_,R)=>{let A=this._def.items[R]||this._def.rest;if(!A)return null;return A._parse(new Vi(h,_,h.path,R))}).filter((_)=>!!_);if(h.common.async)return Promise.all(E).then((_)=>{return He.mergeArray(o,_)});else return He.mergeArray(o,E)}get items(){return this._def.items}rest(n){return new er({...this._def,rest:n})}}er.create=(n,o)=>{if(!Array.isArray(n))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new er({items:n,typeName:Yt.ZodTuple,rest:null,...Qt(o)})};class ka extends ee{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(n){let{status:o,ctx:h}=this._processInputParams(n);if(h.parsedType!==At.object)return wt(h,{code:yt.invalid_type,expected:At.object,received:h.parsedType}),Vt;let v=[],E=this._def.keyType,_=this._def.valueType;for(let R in h.data)v.push({key:E._parse(new Vi(h,R,h.path,R)),value:_._parse(new Vi(h,h.data[R],h.path,R)),alwaysSet:R in h.data});if(h.common.async)return He.mergeObjectAsync(o,v);else return He.mergeObjectSync(o,v)}get element(){return this._def.valueType}static create(n,o,h){if(o instanceof ee)return new ka({keyType:n,valueType:o,typeName:Yt.ZodRecord,...Qt(h)});return new ka({keyType:$i.create(),valueType:n,typeName:Yt.ZodRecord,...Qt(o)})}}class Ca extends ee{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(n){let{status:o,ctx:h}=this._processInputParams(n);if(h.parsedType!==At.map)return wt(h,{code:yt.invalid_type,expected:At.map,received:h.parsedType}),Vt;let v=this._def.keyType,E=this._def.valueType,_=[...h.data.entries()].map(([R,A],L)=>{return{key:v._parse(new Vi(h,R,h.path,[L,"key"])),value:E._parse(new Vi(h,A,h.path,[L,"value"]))}});if(h.common.async){let R=new Map;return Promise.resolve().then(async()=>{for(let A of _){let L=await A.key,M=await A.value;if(L.status==="aborted"||M.status==="aborted")return Vt;if(L.status==="dirty"||M.status==="dirty")o.dirty();R.set(L.value,M.value)}return{status:o.value,value:R}})}else{let R=new Map;for(let A of _){let{key:L,value:M}=A;if(L.status==="aborted"||M.status==="aborted")return Vt;if(L.status==="dirty"||M.status==="dirty")o.dirty();R.set(L.value,M.value)}return{status:o.value,value:R}}}}Ca.create=(n,o,h)=>{return new Ca({valueType:o,keyType:n,typeName:Yt.ZodMap,...Qt(h)})};class Sn extends ee{_parse(n){let{status:o,ctx:h}=this._processInputParams(n);if(h.parsedType!==At.set)return wt(h,{code:yt.invalid_type,expected:At.set,received:h.parsedType}),Vt;let v=this._def;if(v.minSize!==null){if(h.data.size<v.minSize.value)wt(h,{code:yt.too_small,minimum:v.minSize.value,type:"set",inclusive:!0,exact:!1,message:v.minSize.message}),o.dirty()}if(v.maxSize!==null){if(h.data.size>v.maxSize.value)wt(h,{code:yt.too_big,maximum:v.maxSize.value,type:"set",inclusive:!0,exact:!1,message:v.maxSize.message}),o.dirty()}let E=this._def.valueType;function _(A){let L=new Set;for(let M of A){if(M.status==="aborted")return Vt;if(M.status==="dirty")o.dirty();L.add(M.value)}return{status:o.value,value:L}}let R=[...h.data.values()].map((A,L)=>E._parse(new Vi(h,A,h.path,L)));if(h.common.async)return Promise.all(R).then((A)=>_(A));else return _(R)}min(n,o){return new Sn({...this._def,minSize:{value:n,message:Ut.toString(o)}})}max(n,o){return new Sn({...this._def,maxSize:{value:n,message:Ut.toString(o)}})}size(n,o){return this.min(n,o).max(n,o)}nonempty(n){return this.min(1,n)}}Sn.create=(n,o)=>{return new Sn({valueType:n,minSize:null,maxSize:null,typeName:Yt.ZodSet,...Qt(o)})};class us extends ee{constructor(){super(...arguments);this.validate=this.implement}_parse(n){let{ctx:o}=this._processInputParams(n);if(o.parsedType!==At.function)return wt(o,{code:yt.invalid_type,expected:At.function,received:o.parsedType}),Vt;function h(R,A){return La({data:R,path:o.path,errorMaps:[o.common.contextualErrorMap,o.schemaErrorMap,os(),Sr].filter((L)=>!!L),issueData:{code:yt.invalid_arguments,argumentsError:A}})}function v(R,A){return La({data:R,path:o.path,errorMaps:[o.common.contextualErrorMap,o.schemaErrorMap,os(),Sr].filter((L)=>!!L),issueData:{code:yt.invalid_return_type,returnTypeError:A}})}let E={errorMap:o.common.contextualErrorMap},_=o.data;if(this._def.returns instanceof bn){let R=this;return Xe(async function(...A){let L=new li([]),M=await R._def.args.parseAsync(A,E).catch((H)=>{throw L.addIssue(h(A,H)),L}),X=await Reflect.apply(_,this,M);return await R._def.returns._def.type.parseAsync(X,E).catch((H)=>{throw L.addIssue(v(X,H)),L})})}else{let R=this;return Xe(function(...A){let L=R._def.args.safeParse(A,E);if(!L.success)throw new li([h(A,L.error)]);let M=Reflect.apply(_,this,L.data),X=R._def.returns.safeParse(M,E);if(!X.success)throw new li([v(M,X.error)]);return X.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...n){return new us({...this._def,args:er.create(n).rest($r.create())})}returns(n){return new us({...this._def,returns:n})}implement(n){return this.parse(n)}strictImplement(n){return this.parse(n)}static create(n,o,h){return new us({args:n?n:er.create([]).rest($r.create()),returns:o||$r.create(),typeName:Yt.ZodFunction,...Qt(h)})}}class ps extends ee{get schema(){return this._def.getter()}_parse(n){let{ctx:o}=this._processInputParams(n);return this._def.getter()._parse({data:o.data,path:o.path,parent:o})}}ps.create=(n,o)=>{return new ps({getter:n,typeName:Yt.ZodLazy,...Qt(o)})};class vs extends ee{_parse(n){if(n.data!==this._def.value){let o=this._getOrReturnCtx(n);return wt(o,{received:o.data,code:yt.invalid_literal,expected:this._def.value}),Vt}return{status:"valid",value:n.data}}get value(){return this._def.value}}vs.create=(n,o)=>{return new vs({value:n,typeName:Yt.ZodLiteral,...Qt(o)})};function ad(n,o){return new Vr({values:n,typeName:Yt.ZodEnum,...Qt(o)})}class Vr extends ee{_parse(n){if(typeof n.data!=="string"){let o=this._getOrReturnCtx(n),h=this._def.values;return wt(o,{expected:re.joinValues(h),received:o.parsedType,code:yt.invalid_type}),Vt}if(!this._cache)this._cache=new Set(this._def.values);if(!this._cache.has(n.data)){let o=this._getOrReturnCtx(n),h=this._def.values;return wt(o,{received:o.data,code:yt.invalid_enum_value,options:h}),Vt}return Xe(n.data)}get options(){return this._def.values}get enum(){let n={};for(let o of this._def.values)n[o]=o;return n}get Values(){let n={};for(let o of this._def.values)n[o]=o;return n}get Enum(){let n={};for(let o of this._def.values)n[o]=o;return n}extract(n,o=this._def){return Vr.create(n,{...this._def,...o})}exclude(n,o=this._def){return Vr.create(this.options.filter((h)=>!n.includes(h)),{...this._def,...o})}}Vr.create=ad;class Es extends ee{_parse(n){let o=re.getValidEnumValues(this._def.values),h=this._getOrReturnCtx(n);if(h.parsedType!==At.string&&h.parsedType!==At.number){let v=re.objectValues(o);return wt(h,{expected:re.joinValues(v),received:h.parsedType,code:yt.invalid_type}),Vt}if(!this._cache)this._cache=new Set(re.getValidEnumValues(this._def.values));if(!this._cache.has(n.data)){let v=re.objectValues(o);return wt(h,{received:h.data,code:yt.invalid_enum_value,options:v}),Vt}return Xe(n.data)}get enum(){return this._def.values}}Es.create=(n,o)=>{return new Es({values:n,typeName:Yt.ZodNativeEnum,...Qt(o)})};class bn extends ee{unwrap(){return this._def.type}_parse(n){let{ctx:o}=this._processInputParams(n);if(o.parsedType!==At.promise&&o.common.async===!1)return wt(o,{code:yt.invalid_type,expected:At.promise,received:o.parsedType}),Vt;let h=o.parsedType===At.promise?o.data:Promise.resolve(o.data);return Xe(h.then((v)=>{return this._def.type.parseAsync(v,{path:o.path,errorMap:o.common.contextualErrorMap})}))}}bn.create=(n,o)=>{return new bn({type:n,typeName:Yt.ZodPromise,...Qt(o)})};class Ki extends ee{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Yt.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(n){let{status:o,ctx:h}=this._processInputParams(n),v=this._def.effect||null,E={addIssue:(_)=>{if(wt(h,_),_.fatal)o.abort();else o.dirty()},get path(){return h.path}};if(E.addIssue=E.addIssue.bind(E),v.type==="preprocess"){let _=v.transform(h.data,E);if(h.common.async)return Promise.resolve(_).then(async(R)=>{if(o.value==="aborted")return Vt;let A=await this._def.schema._parseAsync({data:R,path:h.path,parent:h});if(A.status==="aborted")return Vt;if(A.status==="dirty")return vn(A.value);if(o.value==="dirty")return vn(A.value);return A});else{if(o.value==="aborted")return Vt;let R=this._def.schema._parseSync({data:_,path:h.path,parent:h});if(R.status==="aborted")return Vt;if(R.status==="dirty")return vn(R.value);if(o.value==="dirty")return vn(R.value);return R}}if(v.type==="refinement"){let _=(R)=>{let A=v.refinement(R,E);if(h.common.async)return Promise.resolve(A);if(A instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return R};if(h.common.async===!1){let R=this._def.schema._parseSync({data:h.data,path:h.path,parent:h});if(R.status==="aborted")return Vt;if(R.status==="dirty")o.dirty();return _(R.value),{status:o.value,value:R.value}}else return this._def.schema._parseAsync({data:h.data,path:h.path,parent:h}).then((R)=>{if(R.status==="aborted")return Vt;if(R.status==="dirty")o.dirty();return _(R.value).then(()=>{return{status:o.value,value:R.value}})})}if(v.type==="transform")if(h.common.async===!1){let _=this._def.schema._parseSync({data:h.data,path:h.path,parent:h});if(!Br(_))return Vt;let R=v.transform(_.value,E);if(R instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:o.value,value:R}}else return this._def.schema._parseAsync({data:h.data,path:h.path,parent:h}).then((_)=>{if(!Br(_))return Vt;return Promise.resolve(v.transform(_.value,E)).then((R)=>({status:o.value,value:R}))});re.assertNever(v)}}Ki.create=(n,o,h)=>{return new Ki({schema:n,typeName:Yt.ZodEffects,effect:o,...Qt(h)})};Ki.createWithPreprocess=(n,o,h)=>{return new Ki({schema:o,effect:{type:"preprocess",transform:n},typeName:Yt.ZodEffects,...Qt(h)})};class Hi extends ee{_parse(n){if(this._getType(n)===At.undefined)return Xe(void 0);return this._def.innerType._parse(n)}unwrap(){return this._def.innerType}}Hi.create=(n,o)=>{return new Hi({innerType:n,typeName:Yt.ZodOptional,...Qt(o)})};class Tr extends ee{_parse(n){if(this._getType(n)===At.null)return Xe(null);return this._def.innerType._parse(n)}unwrap(){return this._def.innerType}}Tr.create=(n,o)=>{return new Tr({innerType:n,typeName:Yt.ZodNullable,...Qt(o)})};class ys extends ee{_parse(n){let{ctx:o}=this._processInputParams(n),h=o.data;if(o.parsedType===At.undefined)h=this._def.defaultValue();return this._def.innerType._parse({data:h,path:o.path,parent:o})}removeDefault(){return this._def.innerType}}ys.create=(n,o)=>{return new ys({innerType:n,typeName:Yt.ZodDefault,defaultValue:typeof o.default==="function"?o.default:()=>o.default,...Qt(o)})};class Ss extends ee{_parse(n){let{ctx:o}=this._processInputParams(n),h={...o,common:{...o.common,issues:[]}},v=this._def.innerType._parse({data:h.data,path:h.path,parent:{...h}});if(ls(v))return v.then((E)=>{return{status:"valid",value:E.status==="valid"?E.value:this._def.catchValue({get error(){return new li(h.common.issues)},input:h.data})}});else return{status:"valid",value:v.status==="valid"?v.value:this._def.catchValue({get error(){return new li(h.common.issues)},input:h.data})}}removeCatch(){return this._def.innerType}}Ss.create=(n,o)=>{return new Ss({innerType:n,typeName:Yt.ZodCatch,catchValue:typeof o.catch==="function"?o.catch:()=>o.catch,...Qt(o)})};class Da extends ee{_parse(n){if(this._getType(n)!==At.nan){let h=this._getOrReturnCtx(n);return wt(h,{code:yt.invalid_type,expected:At.nan,received:h.parsedType}),Vt}return{status:"valid",value:n.data}}}Da.create=(n)=>{return new Da({typeName:Yt.ZodNaN,...Qt(n)})};var Im=Symbol("zod_brand");class Mo extends ee{_parse(n){let{ctx:o}=this._processInputParams(n),h=o.data;return this._def.type._parse({data:h,path:o.path,parent:o})}unwrap(){return this._def.type}}class Ia extends ee{_parse(n){let{status:o,ctx:h}=this._processInputParams(n);if(h.common.async)return(async()=>{let E=await this._def.in._parseAsync({data:h.data,path:h.path,parent:h});if(E.status==="aborted")return Vt;if(E.status==="dirty")return o.dirty(),vn(E.value);else return this._def.out._parseAsync({data:E.value,path:h.path,parent:h})})();else{let v=this._def.in._parseSync({data:h.data,path:h.path,parent:h});if(v.status==="aborted")return Vt;if(v.status==="dirty")return o.dirty(),{status:"dirty",value:v.value};else return this._def.out._parseSync({data:v.value,path:h.path,parent:h})}}static create(n,o){return new Ia({in:n,out:o,typeName:Yt.ZodPipeline})}}class bs extends ee{_parse(n){let o=this._def.innerType._parse(n),h=(v)=>{if(Br(v))v.value=Object.freeze(v.value);return v};return ls(o)?o.then((v)=>h(v)):h(o)}unwrap(){return this._def.innerType}}bs.create=(n,o)=>{return new bs({innerType:n,typeName:Yt.ZodReadonly,...Qt(o)})};function id(n,o){let h=typeof n==="function"?n(o):typeof n==="string"?{message:n}:n;return typeof h==="string"?{message:h}:h}function od(n,o={},h){if(n)return yn.create().superRefine((v,E)=>{let _=n(v);if(_ instanceof Promise)return _.then((R)=>{if(!R){let A=id(o,v),L=A.fatal??h??!0;E.addIssue({code:"custom",...A,fatal:L})}});if(!_){let R=id(o,v),A=R.fatal??h??!0;E.addIssue({code:"custom",...R,fatal:A})}return});return yn.create()}var Om={object:Se.lazycreate},Yt;(function(n){n.ZodString="ZodString",n.ZodNumber="ZodNumber",n.ZodNaN="ZodNaN",n.ZodBigInt="ZodBigInt",n.ZodBoolean="ZodBoolean",n.ZodDate="ZodDate",n.ZodSymbol="ZodSymbol",n.ZodUndefined="ZodUndefined",n.ZodNull="ZodNull",n.ZodAny="ZodAny",n.ZodUnknown="ZodUnknown",n.ZodNever="ZodNever",n.ZodVoid="ZodVoid",n.ZodArray="ZodArray",n.ZodObject="ZodObject",n.ZodUnion="ZodUnion",n.ZodDiscriminatedUnion="ZodDiscriminatedUnion",n.ZodIntersection="ZodIntersection",n.ZodTuple="ZodTuple",n.ZodRecord="ZodRecord",n.ZodMap="ZodMap",n.ZodSet="ZodSet",n.ZodFunction="ZodFunction",n.ZodLazy="ZodLazy",n.ZodLiteral="ZodLiteral",n.ZodEnum="ZodEnum",n.ZodEffects="ZodEffects",n.ZodNativeEnum="ZodNativeEnum",n.ZodOptional="ZodOptional",n.ZodNullable="ZodNullable",n.ZodDefault="ZodDefault",n.ZodCatch="ZodCatch",n.ZodPromise="ZodPromise",n.ZodBranded="ZodBranded",n.ZodPipeline="ZodPipeline",n.ZodReadonly="ZodReadonly"})(Yt||(Yt={}));var Mm=(n,o={message:`Input not instance of ${n.name}`})=>od((h)=>h instanceof n,o),ld=$i.create,cd=Gr.create,Nm=Da.create,Pm=Hr.create,ud=ds.create,xm=En.create,Fm=wa.create,Um=hs.create,Bm=fs.create,$m=yn.create,Gm=$r.create,Hm=tr.create,Vm=Ra.create,Km=Gi.create,Wm=Se.create,Ym=Se.strictCreate,jm=ms.create,zm=Oo.create,qm=gs.create,Xm=er.create,Jm=ka.create,Qm=Ca.create,Zm=Sn.create,tg=us.create,eg=ps.create,ig=vs.create,rg=Vr.create,ng=Es.create,sg=bn.create,ag=Ki.create,og=Hi.create,lg=Tr.create,cg=Ki.createWithPreprocess,ug=Ia.create,dg=()=>ld().optional(),hg=()=>cd().optional(),fg=()=>ud().optional(),mg={string:(n)=>$i.create({...n,coerce:!0}),number:(n)=>Gr.create({...n,coerce:!0}),boolean:(n)=>ds.create({...n,coerce:!0}),bigint:(n)=>Hr.create({...n,coerce:!0}),date:(n)=>En.create({...n,coerce:!0})};var gg=Vt;var pc=["subtitles","vtsel","ads","share","thumbnails","asel","qsel"];var dd=ht.object({url:ht.union([ht.string(),ht.array(ht.string()),ht.object({src:ht.string(),type:ht.string()}),ht.array(ht.object({src:ht.string(),type:ht.string()}))]).optional(),title:ht.string().optional(),poster:ht.string().optional(),description:ht.string().optional(),subtitles:ht.object({native:ht.boolean().optional(),show:ht.boolean().optional(),tracks:ht.array(ht.object({src:ht.string(),lang:ht.string().optional(),label:ht.string().optional(),crossorigin:ht.string().optional().nullable(),default:ht.boolean().optional(),kind:ht.union([ht.literal("captions"),ht.literal("chapters"),ht.literal("subtitles")]).optional(),mode:ht.union([ht.literal("hidden"),ht.literal("showing"),ht.literal("disabled")]).optional(),id:ht.string().optional()})).optional()}).optional(),thumbnails:ht.object({src:ht.string()}).optional(),metadata:ht.object({id:ht.string().optional(),media_id:ht.string().optional(),title:ht.string().optional(),description:ht.string().optional(),site_id:ht.string().optional(),sitegroup_id:ht.string().optional(),no_ads:ht.boolean().optional(),ad_keywords:ht.string().optional(),category_id:ht.string().optional(),category_name:ht.string().optional(),tags:ht.string().optional(),duration:ht.number().optional(),player_id:ht.string().optional()}).optional()}),vc=dd.transform(({url:n,...o})=>({src:n,...o})),No=ht.object({playlist:ht.union([ht.string(),ht.object({src:ht.string(),type:ht.string()}),ht.array(vc)]),lang:ht.string().optional(),consent:ht.number().default(9),token:ht.string().optional(),ui:ht.number().optional(),plugins:ht.array(ht.enum(pc)).default([...pc].filter((n)=>n!=="qsel")),brand_color:ht.string().optional(),recommendations:ht.boolean().optional(),metadata:ht.object({playlist_title:ht.string().optional(),player_id:ht.string().optional()}).optional(),adsFrequency:ht.number().int().nonnegative().optional().default(10),share:ht.object({share_type:ht.string(),iframe:ht.boolean(),link:ht.boolean(),facebook:ht.boolean(),twitter:ht.boolean()}).optional(),ima:ht.object({NumRedirects:ht.number().optional(),timeout:ht.number().optional(),total_loading_timeout:ht.number().optional(),show_all_ads_on_seek:ht.boolean().optional(),ads:ht.array(ht.object({adTag:ht.union([ht.string(),ht.array(ht.string()),ht.function().args().returns(ht.promise(ht.string()))]),restart:ht.boolean().optional(),time:ht.number()})),Locale:ht.string().optional(),locale:ht.string().optional(),parameters:ht.record(ht.any()).optional(),autopause:ht.boolean().optional()}).optional()}),fy=No.omit({playlist:!0}).extend({playlist:ht.array(vc)}),Ec=dd.omit({url:!0}).and(ht.object({src:ht.union([ht.string(),ht.array(ht.string()),ht.object({src:ht.string(),type:ht.string()}),ht.array(ht.object({src:ht.string(),type:ht.string()}))])})),hd=No.omit({plugins:!0}).omit({playlist:!0}).extend({playlist:ht.array(Ec)}),fd=ht.array(vc);function pg(n){let o=document.createElement("a");o.href=n;let h=o.pathname?.split(".");return h.length>1&&h[h.length-1]}function vg(n){switch(n){case"video/mpd":return"application/dash+xml";case"video/m3u8":return"application/x-mpegurl";default:return n}}var pd=({src:n,...o})=>[{src:n,type:n?vg(`video/${pg(n)}`):"",...o}];function md(n){return pd({src:n})}function gd({src:n,type:o,...h}){if(n&&o)return[{src:n,type:o,...h}];if(o&&!n)return[{type:o,...h}];return pd({src:n,...h})}function vd(n){if(typeof n==="string")return md(n);if(!Array.isArray(n)&&typeof n==="object")return gd(n);return n.reduce((o,h)=>{if(typeof h==="string")h=md(h);if(typeof h==="object"&&!Array.isArray(h))h=gd(h);return o.concat(h)},[])}async function Ed(n){if(Array.isArray(n.playlist))return n;let o=typeof n.playlist==="object"?n.playlist.src:n.playlist,h=dc(hc(o)),v=await fetch(h);if(!v.ok)throw new Error(`Failed to fetch playlist: ${v.status} ${v.statusText}`);let E=await v.json(),_=hd.parse(E);return _.playlist.forEach((R)=>{Object.assign(R,{...R.metadata})}),Object.assign(n,{..._,...n,playlist:_.playlist})}async function Po(n,o,h){(await Promise.all(o.map(Eg))).forEach((E,_)=>{let R=h.length+_,A=new(window.customElements.get("flowplayer-spin"))(n,E);n.emit(uc,{spin:A,config:E,index:R}),n.append(A),n.maybeCreateAdPlayer(R,A)})}async function Eg(n){let o=vd(n.src||"");if(o.length!==1||!Zu(o[0].src||"",o[0]))return n;try{let h=dc(hc(o[0].src??"")),v=await fetch(h);if(!v.ok)return n;let E=await v.json(),_=Ec.parse(E);return delete n.src,Object.assign(n,{..._,..._.metadata??{},...n})}catch{return n}}var wd=Ne(_d(),1);var Ld=["localhost","127.0.0.1","0.0.0.0","s.codepen.io","cdpn.io","try.flowplayer.com"];function Ma(n,o){if(~Ld.indexOf(n))return!0;return n.indexOf(o)===n.length-o.length}Ma.check_whitelist=(n)=>!!~Ld.indexOf(n);function Tn(n,o){let h={valid_jwt:!1,raw:"",data:{acl:0},exp:0},v={c:"{}",exp:0};o=o||{};try{v=wd.default(n),h.valid_jwt=!0}catch(E){}if(h.raw=n,h.data=JSON.parse(v.c),h.exp=v.exp,o.require_valid_token)Tn.validate(h);return h}Tn.validate=(n)=>{if(typeof n==="string")n=Tn(n);if(!n||!n.raw){if(Ma.check_whitelist(window.location.hostname))return!0;throw new Error("No token provided in configuration")}if(!n.valid_jwt)throw new Error("Invalid token provided");let o=window.location.hostname,h=Ma.bind(null,o);if(n.data.domain?.length&&!n.data.domain.some(h))throw new Error("Domain not allowed");if(n.exp*1000-Date.now()<0)throw new Error("Expired token");return!0};Tn.id=(n)=>{if(!n)return;if(typeof n==="string")n=Tn(n);return n.data.id};var bc;((_)=>{_[_.ADS=2]="ADS";_[_.ANALYTICS=4]="ANALYTICS";_[_.NO_METERING=8]="NO_METERING";_[_.DEVELOPER_PLAN=16]="DEVELOPER_PLAN";_[_.WOWZA_VIDEO=32]="WOWZA_VIDEO"})(bc||={});function Ar(n){return{grant:n,is_granted:(h)=>(n&h)===h}}Ar.of=Ar;Ar.from_token=(n)=>{let o=Tn(n,{require_valid_token:!0});return Ar.of(o.data.acl)};Ar.permissions=bc;var Wr=Ne(An(),1);function Kr(){let n=document.querySelectorAll("flowplayer-spin");return Array.from(n)}function sv(n){let o=n.root.getAttribute("spin-index");return parseFloat(o)}function xo(n,o){if(o.length===1)return 0;let h=o[0].getBoundingClientRect().height,v=o[1].getBoundingClientRect().top-o[0].getBoundingClientRect().bottom;return Math.round(n.scrollTop/(h+v))}function _r(n,o){return document.querySelector(`${o?"flowplayer-ad-player":"flowplayer-spin-player"}[spin-index="${n}"] video`)}function Tc(n,o){let[h,v]=Array.from(n.querySelectorAll("flowplayer-spin-player .fp-engine")),E=h.root.getAttribute("spin-index")===o;return{primaryPlayer:E?h:v,secondaryPlayer:E?v:h}}function Fo(n,o,h,v){if(v.spinsLoading)return;let E=v.primarySpinIndex>=o.length-2;if(!(o.length<h.length)||!E)return;let R=h.slice(o.length,o.length+5);v.spinsLoading=Po(n,R,o).then(()=>{av(n,o,v),v.spinsLoading=void 0})}function av(n,o,h){if(h.primarySpinIndex!==o.length-1)return;let{primaryPlayer:v,secondaryPlayer:E}=Tc(n,String(h.primarySpinIndex));if(sv(E)>h.primarySpinIndex)return;return _n(n,v,E,h.primarySpinIndex+1)}function Uo(n){if(n.hasState("is-loaded"))return;if(n.hls)return n.hls.startLoad();if(n.opts.is_native)return n.load()}function kd(n,o,h,v){let E=Kr()[v],_=o[v];return h.setSrc(_.src??""),h.setOpts(_),h.root.setAttribute("spin-index",String(v)),E.appendChild(h.root),{spin:E,config:_,index:v}}function Cd(n,o){if(n.hasState("is-loaded"))return Uo(o);let h=()=>{Uo(o),v()},v=()=>{n.off("ad-request-completed",h),o.off(Wr.SOURCE,v)};n.once("ad-request-completed",h),o.once(Wr.SOURCE,v)}function Na(n,o,h){let v=_r(h,!0);if(n.emit(Bi,kd(n,n.items,o,h)),!v||!o.paused||o.hasState("will-play"))return;Cd(v,o)}function _n(n,o,h,v){kd(n,n.items,h,v);let E=_r(v,!0);if(!E){if(o.hasState("is-loaded"))return Uo(h);let _=()=>Uo(h),R=()=>o.off(Wr.CAN_PLAY,_);o.once(Wr.CAN_PLAY,_),o.once(Wr.SOURCE,R),h.once(Wr.SOURCE,R);return}Cd(E,h)}var Bd=Ne(Dd(),1),$d=Ne(Id(),1),Gd=Ne(Od(),1),Hd=Ne(Md(),1),Vd=Ne(Nd(),1),Kd=Ne(Pd(),1),Wd=Ne(xd(),1),Yd=Ne(Fd(),1),jd=Ne(Ud(),1);var Ac={};cc(Ac,{zh:()=>Lv,tr:()=>_v,tlh:()=>Av,sv:()=>Tv,sk:()=>bv,pt:()=>Sv,pl:()=>yv,oc:()=>Ev,nn:()=>vv,nl:()=>pv,nb:()=>gv,he:()=>mv,gr:()=>fv,fr:()=>hv,fi:()=>dv,es:()=>uv,en:()=>cv,de:()=>lv,cs:()=>ov});var ov={ads:{ad:"Reklama",ads:"Reklamy",advertisement:"Reklama",indicator:"Reklamy"},audio:{button_txt:"Audio",menu_title:"Audio"},cc:{button:"CC",menu_title:"Titulky"},core:{exit_fullscreen:"Vypnout režim celé obrazovky",fullscreen:"Zapnout režim celé obrazovky",mute:"Vypnout zvuk",pause:"Pauza",play:"Přehrát",unmute:"Zapnout zvuk",volume:"Hlasitost"},ovp:{starting_in:"Odpočítavání"},playlist:{cancel:"Cancel",up_next:"Další"},qsel:{menu_title:"Kvalita"},share:{clipboard_failure:"Přístup do schránky se nezdařil",clipboard_success:"Kód na stránku je nyní ve vaší schránce",embed:"Kód na stránku",link:"Odkaz",menu_title:"Sdílet"},speed:{menu_title:"Rychlost"}},lv={ads:{ad:"Werbung",ads:"Werbung",advertisement:"Werbung",indicator:"Werbung"},audio:{button_txt:"Ton",menu_title:"Ton"},cc:{button:"CC",menu_title:"Untertitel"},core:{exit_fullscreen:"Vollbild verlassen",fullscreen:"Vollbild",mute:"Ton aus",pause:"Pause",play:"Abspielen",unmute:"Ton ein",volume:"Lautstärke"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Abbrechen",up_next:"Nächste"},qsel:{menu_title:"Qualität"},share:{clipboard_failure:"Zugriff auf Zwischenablage fehlgeschlagen",clipboard_success:"Embedcode in die Zwischenablage kopiert",embed:"Einbetten",link:"Link",menu_title:"Teilen"},speed:{menu_title:"Geschwindigkeit"}},cv={ads:{ad:"Ad",ads:"Ads",advertisement:"Advertisement",indicator:"Ads"},audio:{button_txt:"Audio",menu_title:"Audio"},cc:{button:"CC",menu_title:"Subtitles",options:"Options",tracks:"Tracks",reset:"Reset",colors:{Black:"Black",Blue:"Blue",Cyan:"Cyan",Green:"Green",Magenta:"Magenta",Red:"Red",White:"White",Yellow:"Yellow"},edgeStyle:{None:"None","Drop shadow":"Drop shadow",Raised:"Raised",Depressed:"Depressed",Outline:"Outline"},fontFamily:{"Monospaced Serif":"Monospaced Serif","Proportional Serif":"Proportional Serif","Monospaced Sans-Serif":"Monospaced Sans-Serif","Proportional Sans-Serif":"Proportional Sans-Serif",Casual:"Casual",Cursive:"Cursive"},properties:{fontFamily:"Font family",fontSize:"Font size",fontColor:"Font color",fontOpacity:"Font opacity",backgroundColor:"Background color",backgroundOpacity:"Background opacity",characterEdgeStyle:"Character edge style"}},chromecast:{start:"start casting",stop:"stop casting"},core:{exit_fullscreen:"Exit fullscreen",fullscreen:"Fullscreen",mute:"Mute",pause:"Pause",play:"Play",seconds:"Seconds",timeline_aria_label:"Seek slider",unmute:"Unmute",volume:"Volume"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Cancel",up_next:"Up next"},qsel:{menu_title:"Quality"},share:{clipboard_failure:"Access to clipboard failed",clipboard_success:"The text is now on your clipboard",embed:"Embed",link:"Link",menu_title:"Share"},speed:{menu_title:"Speed"},vtsel:{button_txt:"Video",menu_title:"Video Track"}},uv={ads:{ad:"Anúncio",ads:"Anúncios",advertisement:"Anúncio",indicator:"Anúncios"},audio:{button_txt:"Áudio",menu_title:"Áudio"},cc:{button:"CC",menu_title:"Subtítulos"},core:{exit_fullscreen:"Pantalla no completa",fullscreen:"Pantalla completa",mute:"Silenciar",pause:"Pausa",play:"Reproducir",unmute:"No silenciado",volume:"Volumen"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Cancelar",up_next:"Siguiente"},qsel:{menu_title:"Calidad"},share:{clipboard_failure:"Fallo en el acceso al portapapeles",clipboard_success:"El código de insercíon ahora está en tu portapapeles",embed:"Insertar",link:"Enlace",menu_title:"Compartir"},speed:{menu_title:"Velocidad"}},dv={ads:{ad:"Mainos",ads:"Mainos",advertisement:"Mainos",indicator:"Mainos"},audio:{button_txt:"Kieli",menu_title:"Kieli"},cc:{button:"CC",menu_title:"Tekstitys"},core:{exit_fullscreen:"Poistu kokonäytön tilasta",fullscreen:"Koko näytön tila",mute:"Vaimenna",pause:"Keskeytä",play:"Toista",unmute:"Poista vaimennus",volume:"Äänenvoimakkuus"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Peruuta",up_next:"Seuraavaksi"},qsel:{menu_title:"Laatu"},share:{clipboard_failure:"Leikepöydän käyttö epäonnistui",clipboard_success:"Kopioitu leikepöydälle",embed:"Upota",link:"Linkki",menu_title:"Jaa"},speed:{menu_title:"Nopeus"}},hv={ads:{ad:"Annonce",ads:"Annonces",advertisement:"Annonce",indicator:"Annonces"},audio:{button_txt:"Son",menu_title:"Son"},cc:{button:"CC",menu_title:"Sous-titres"},core:{exit_fullscreen:"Quitter le mode plein écran",fullscreen:"Plein écran",mute:"Sourdine",pause:"Pause",play:"Lecture",unmute:"Son activé",volume:"Volume"},ovp:{starting_in:"Compte à rebours"},playlist:{cancel:"Annuler",up_next:"Suivant"},qsel:{menu_title:"Qualité"},share:{clipboard_failure:"L'accès au presse-papier a échoué",clipboard_success:"Le code embed est maintenant dans votre presse-papiers",embed:"Embed",link:"Lien",menu_title:"Partager"},speed:{menu_title:"Vitesse"}},fv={ads:{ad:"Διαφήμιση",ads:"Διαφήμισεις",advertisement:"Διαφήμιση",indicator:"Διαφήμισεις"},audio:{button_txt:"Ηχος",menu_title:"Κομμάτι ήχου"},cc:{button:"ΥΠ",menu_title:"Υπότιτλοι",options:"Επιλογες",tracks:"Κομματια",reset:"Επαναφορα",colors:{Black:"Μαυρο",Blue:"Μπλε",Cyan:"Γαλαζιο",Green:"Πρασσινο",Magenta:"Ροζ",Red:"Κοκκινο",White:"Λευκο",Yellow:"Κιτρινο"},edgeStyle:{None:"Κανενα","Drop shadow":"Αναπτυσσομενη σκια",Raised:"Αναγλυφο",Depressed:"Πεπλατυσμενο",Outline:"Περιγραμμα"},fontFamily:{"Monospaced Serif":"Serif σταθερου πλατους","Proportional Serif":"Serif αναλογικου πλατους","Monospaced Sans-Serif":"Sans-Serif σταθερου πλατους","Proportional Sans-Serif":"Sans-Serif αναλογικου πλατους",Casual:"Απλες",Cursive:"Λοξες"},properties:{fontFamily:"Οικογενεια γραμματοσειρων",fontSize:"Μεγεθος γραμματοσειρας",fontColor:"Χρωμα γραμματοσειρας",fontOpacity:"Αδιαφανεια γραμματοσειρας",backgroundColor:"Χρωμα φοντου",backgroundOpacity:"Αδιαφανεια φοντου",characterEdgeStyle:"Στιλ ακρων χαρακτηρα"}},core:{exit_fullscreen:"Έξοδος πλήρους οθονης",fullscreen:"Πλήρης οθόνη",mute:"Σίγαση",pause:"Παύση",play:"Αναπαραγωγή",unmute:"Κατάργηση σίγασης",volume:"Ενταση ήχου"},ovp:{starting_in:"Αντίστροφη μέτρηση"},playlist:{cancel:"Ακύρωση",up_next:"Επόμενο Βίντεο"},qsel:{menu_title:"Ανάλυση εικόνας"},share:{clipboard_failure:"Η αντιγραφη της επιλογής απέτυχε",clipboard_success:"H επιλογή αντιγράφηκε επιτυχώς",embed:"Κώδικας Ενσωμάτωσης",link:"Σύνδεσμος",menu_title:"Κοινοποίηση"},speed:{menu_title:"Ταχύτητα"}},mv={ads:{ad:"מודעה",ads:"מודעה",advertisement:"מודעה",indicator:"מודעה"},audio:{button_txt:"שֶׁמַע",menu_title:"שֶׁמַע"},cc:{button:"CC",menu_title:"כתוביות"},core:{exit_fullscreen:"צא ממסך מלא",fullscreen:"מסך מלא",mute:"לְהַשְׁתִיק",pause:"עצור",play:"נגן",unmute:"בטל השתקה",volume:"עוצמת שמע"},ovp:{starting_in:"ספירה לאחור"},playlist:{cancel:"לְבַטֵל",up_next:"הבא"},qsel:{menu_title:"איכות"},share:{clipboard_failure:"הגישה ללוח נכשלה",clipboard_success:"הטקסט נמצא כעת על הלוח שלך",embed:"לְשַׁבֵּץ",link:"קישור",menu_title:"לַחֲלוֹק"},speed:{menu_title:"מְהִירוּת"}},gv={ads:{ad:"Reklame",ads:"Reklame",advertisement:"Reklame",indicator:"Reklame"},audio:{button_txt:"Lydspor",menu_title:"Lydspor"},cc:{button:"CC",menu_title:"Teksting"},core:{exit_fullscreen:"Avslutt fullskjerm",fullscreen:"Fullskjerm",mute:"Skru av lyd",pause:"Pause",play:"Spill av",unmute:"Skru på lyd",volume:"Volum"},ovp:{starting_in:"Sendingen starter om"},playlist:{cancel:"Cancel",up_next:"Neste video"},qsel:{menu_title:"Kvalitet"},share:{clipboard_failure:"Tilgang til utklippstavlen mislyktes",clipboard_success:"Teksten er nå på utklippstavlen din",embed:"Embed",link:"Link",menu_title:"Del"},speed:{menu_title:"Hastighet"}},pv={ads:{ad:"Ad",ads:"Ads",advertisement:"Advertentie",indicator:"Ads"},audio:{button_txt:"Audio",menu_title:"Audio"},cc:{button:"CC",menu_title:"Ondertiteling"},core:{exit_fullscreen:"Sluit fullscreen",fullscreen:"Fullscreen",mute:"Dempen",pause:"Pause",play:"Play",unmute:"Dempen opheffen",volume:"Volume"},ovp:{starting_in:"Start over"},playlist:{cancel:"Annuleren",up_next:"Volgende"},qsel:{menu_title:"Kwaliteit"},share:{clipboard_failure:"Toegang tot klembord mislukt",clipboard_success:"De tekst staat nu op je klembord",embed:"Embed",link:"Link",menu_title:"Deel"},speed:{menu_title:"Snelheid"}},vv={ads:{ad:"Reklame",ads:"Reklame",advertisement:"Reklame",indicator:"Reklame"},audio:{button_txt:"Lydspor",menu_title:"Lydspor"},cc:{button:"CC",menu_title:"Teksting"},core:{exit_fullscreen:"Avslutt fullskjerm",fullscreen:"Fullskjerm",mute:"Skru av lyd",pause:"Pause",play:"Spel av",unmute:"Skru på lyd",volume:"Volum"},ovp:{starting_in:"Nedteljing"},playlist:{cancel:"Cancel",up_next:"Neste video"},qsel:{menu_title:"Kvalitet"},share:{clipboard_failure:"Tilgang til utklippstavlen mislyktes",clipboard_success:"Teksten er no på utklippstavlen din",embed:"Embed",link:"Link",menu_title:"Del"},speed:{menu_title:"Hastighet"}},Ev={ads:{ad:"Publicitat",ads:"Publicitats",advertisement:"Publicitat",indicator:"Pubs"},audio:{button_txt:"Àudio",menu_title:"Àudio"},cc:{button:"ST",menu_title:"Sostítol"},core:{exit_fullscreen:"Sortir de l’ecran complèt",fullscreen:"Ecran complèt",mute:"Amudir",pause:"Pausa",play:"Lectura",unmute:"Restablir lo son",volume:"Volum"},ovp:{starting_in:"Descompte"},playlist:{cancel:"Anullar",up_next:"Seguent"},qsel:{menu_title:"Qualitat"},share:{clipboard_failure:"Fracàs de l’accès al quichapapièrs",clipboard_success:"Lo tèxt es copiat al quichapapièrs",embed:"Integrar",link:"Ligam",menu_title:"Partejar"},speed:{menu_title:"Velocitat"}},yv={ads:{ad:"Reklama",ads:"Reklama",advertisement:"Reklama",indicator:"Reklama"},audio:{button_txt:"Audio",menu_title:"Audio"},cc:{button:"CC",menu_title:"Napisy"},core:{exit_fullscreen:"Wyjdź z pełnego ekranu",fullscreen:"Pełny ekran",mute:"Wyciszenie",pause:"Pauza",play:"Odtwarzaj",unmute:"Wyłącz wyciszenie",volume:"Głośność"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Anuluj",up_next:"Następny"},qsel:{menu_title:"Jakość"},share:{clipboard_failure:"Błąd dostępu do schowka",clipboard_success:"Kod embedu jest teraz w twoim schowku.",embed:"Osadź",link:"Link",menu_title:"Share"},speed:{menu_title:"Prędkość"}},Sv={ads:{ad:"Anúncio",ads:"Anúncios",advertisement:"Anúncio",indicator:"Anúncios"},audio:{button_txt:"Áudio",menu_title:"Áudio"},cc:{button:"CC",menu_title:"Subtítulos"},core:{exit_fullscreen:"Tela não cheia",fullscreen:"Tela cheia",mute:"Silenciar",pause:"Pausa",play:"Reproduzir",unmute:"Não silenciado",volume:"Volume"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Cancelar",up_next:"A seguir"},qsel:{menu_title:"Qualidade"},share:{clipboard_failure:"Falha no acesso à área de transferência",clipboard_success:"O código de inserção está agora na sua área de transferência",embed:"Embutir",link:"Link",menu_title:"Compartilhar"},speed:{menu_title:"Velocidade"}},bv={ads:{ad:"Reklama",ads:"Reklamy",advertisement:"Reklama",indicator:"Reklamy"},audio:{button_txt:"Audio",menu_title:"Audio"},cc:{button:"CC",menu_title:"Titulky"},core:{exit_fullscreen:"Vypnúť režim celej obrazovky",fullscreen:"Zapnúť režim celej obrazovky",mute:"Vypnúť zvuk",pause:"Pauza",play:"Prehrať",unmute:"Zapnúť zvuk",volume:"Hlasitosť"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Cancel",up_next:"Ďalšie"},qsel:{menu_title:"Kvalita"},share:{clipboard_failure:"Access to clipboard failed",clipboard_success:"Kód na stránku je teraz vo vašej schránke",embed:"Kód na stránku",link:"Odkaz",menu_title:"Zdieľať"},speed:{menu_title:"rRýchlosť"}},Tv={ads:{ad:"Reklam",ads:"Reklam",advertisement:"Reklam",indicator:"Reklam"},audio:{button_txt:"Ljud",menu_title:"Ljud"},cc:{button:"CC",menu_title:"Undertexter"},core:{exit_fullscreen:"Avsluta helskärm",fullscreen:"Helskärm",mute:"Ljud av",pause:"Paus",play:"Spela",unmute:"Ljud på",volume:"Volym"},ovp:{starting_in:"Börjar om"},playlist:{cancel:"Avbryt",up_next:"Nästa"},qsel:{menu_title:"Kvalitet"},share:{clipboard_failure:"Åtkomst till Urklipp misslyckades",clipboard_success:"Inbäddningskoden är nu kopierad",embed:"Bädda in",link:"Länk",menu_title:"Dela"},speed:{menu_title:"Hastighet"}},Av={ads:{ad:"'chel",ads:"tlhaw'DIyuS",advertisement:"'uQ'a'",indicator:"chel"},audio:{button_txt:"qaStaHvIS",menu_title:"qaStaHvIS"},cc:{button:"CC",menu_title:"qeylIS"},core:{exit_fullscreen:"tlhoy'",fullscreen:"che'",mute:"jaS",pause:"yev",play:"chu'",unmute:"Huy'vam",volume:"muq"},ovp:{starting_in:"qornel"},playlist:{cancel:"qil",up_next:"Hu'"},qsel:{menu_title:"boqral"},share:{clipboard_failure:"SengDaj LopmeH mIv'a'",clipboard_success:"che'rup neH 'oH buStaHvIS.",embed:"tlhIlwI'",link:"Hol",menu_title:"SaH"},speed:{menu_title:"pIp"}},_v={ads:{ad:"Reklam",ads:"Reklamlar",advertisement:"Reklam",indicator:"Reklamlar"},audio:{button_txt:"Ses",menu_title:"Ses"},cc:{button:"CC",menu_title:"Altyazılar"},core:{exit_fullscreen:"Tam ekrandan çık",fullscreen:"Tam ekran",mute:"Sessiz",pause:"Duraklat",play:"Oynat",unmute:"Sesi aç",volume:"Ses"},ovp:{starting_in:"Geri sayım"},playlist:{cancel:"İptal",up_next:"Sonraki"},qsel:{menu_title:"Kalite"},share:{clipboard_failure:"Panoya erişim başarısız oldu",clipboard_success:"Metin panoya kopyalandı",embed:"Yerleştir",link:"Bağlantı",menu_title:"Paylaş"},speed:{menu_title:"Hız"}},Lv={ads:{ad:"广告",ads:"广告",advertisement:"广告",indicator:"广告"},audio:{button_txt:"声音",menu_title:"声音"},cc:{button:"字幕",menu_title:"字幕"},core:{exit_fullscreen:"退出全屏",fullscreen:"全屏",mute:"静音",pause:"暂停",play:"播放",unmute:"取消静音",volume:"音量"},ovp:{starting_in:"倒计时"},playlist:{cancel:"取消",up_next:"即将播放"},qsel:{menu_title:"清晰度"},share:{clipboard_failure:"无法复制到剪贴板",clipboard_success:"已复制到剪贴板",embed:"嵌入",link:"链接",menu_title:"分享"},speed:{menu_title:"倍速"},vtsel:{button_txt:"视频",menu_title:"视频轨道"}};var Ts=Bd.default(Hd.default,Gd.default),wv=Ts.extensions,rl=Ts.version;Object.assign(Ts.i18n,Ac);function _c(n){return Ts.extensions=wv.slice(),[Wd.default,Yd.default,jd.default,$d.default,Kd.default,Vd.default].forEach((o)=>{if(!n.includes(o.pluginName))return;Ts.extensions.push(o)}),Ts}var Ha=Ne(An(),1);var tf=Ne(An(),1);var zd="flowplayer-ad-ui",nl="flowplayer-ad-controls",sl="flowplayer-ad-countdown",al="flowplayer-ad-indicator";var bl=Ne(An(),1);function kv(){try{return localStorage.getItem("flowplayer/debug")}catch(n){return""}}function Re(n,o){let h=kv(),v=(E,..._)=>{try{let R=o?.debug||h;if(R&&n.match(R))console.log(`flowplayer/${n} -- ${E}`,..._)}catch(R){console.warn(R)}};return v.log=v,v}var ol="ad-initialized",As="ad-playback-error",_s="ad-teardown",Lc="ad-videotag-attached";var Yr="ad-request-error",ll="ad-requested",cl="ad-request-completed",Pa="ad-pause-content",ir="ad-started",Ls="ad-completed",xa="ad-paused",ul="ad-resumed";var jr="ad-progress",ws="ad-skipped",qd="ad-muted",wc="ad-volume-changed";var Xd="ad-timeout",Wi="ad-break-completed",Jd="ad-postroll-finished",Qd="ad-preroll-finished";var Zd="vpaid-init",th="ad-ima-adapter-init",eh="ad-ima-before-ads-request",ih="ad-ima-rendering-settings",dl="ad-adapter-init-failed",hl="ad-play-requested",Fa="reload-ad-requested",fl="ad-error",ml="request/ad/pause",gl="request/ad/play",pl="request/ad/muteunmute";var Rs="ad/set-ui-flags";class ks{_ads;_opts;_nextIndex;_postroll;_loadPending;_postrollActive;constructor(n,o={}){this._ads=n;this._opts=o;this._nextIndex=0,this._postroll=void 0,this._loadPending=!1,this._postrollActive=!1,this.reset(this._ads)}toJSON(){let n=(this._ads||[]).slice(this._nextIndex);if(this._postroll)n.push(this._postroll);return n}reset(n){this.setAds(n),this._nextIndex=0,this._postrollActive=!1}resetCounter(){this._nextIndex=0,this._postrollActive=!1}setAds(n){this._ads=n||[],this.sort()}getAds(){return this._ads}getNextAd(n){return this._ads[this._nextIndex]||n}getCurrentAd(){if(this._postrollActive)return this._postroll;if(this._loadPending)return 0;return this._ads[this._nextIndex-1]}getPostroll(){return this._postroll}isDrained(){return this._nextIndex+1>this._ads.length}setPostrollActive(){this._postrollActive=!0}updateContentDuration(n){this._opts.content_duration=n}increment(){++this._nextIndex}decrement(){this._nextIndex>0&&--this._nextIndex}getNextIndex(){return this._nextIndex}getCurrentType(){let n=this.getCurrentAd();if(!n)return;return ks.kindOf(n.time)}sort(){this._postroll=this._ads.find((n)=>n.time===-1),this._ads=this._ads.filter((n)=>n!==this._postroll).sort((n,o)=>{if(n.time===o.time)return this._ads.indexOf(n)-this._ads.indexOf(o);return n.time-o.time})}shallPlayAd(n){if(this._loadPending)return!1;let o=this.getCurrentAd()||this.getNextAd();return!!(o&&o.time<=n&&o.time!==-1)}shallPlayNext(){let n=this.getNextAd(),o=this.getCurrentAd();return!!(n&&o&&n.time===o.time)}waitForLoad(n,o,h){if(this._loadPending=!1,!o)return!1;let v=h?this._opts.preload_advance:0;if(o.time>=0)this._loadPending=n<o.time-v;else if(o.time===-1)this._loadPending=this._opts.content_duration>0&&n!==-1?n<this._opts.content_duration-v:n!==-1;return this._loadPending}static hasPreroll(n){return!!n.find((o)=>o.time===0)}static isOutstream(n){return ks.hasPreroll(n)&&!!n[0].outstream}static kindOf(n){switch(n){case 0:return"preroll";case-1:return"postroll";default:return"midroll"}}}var lh=Ne(An(),1);class Rc{requestStart;adRequestStart(n){if(typeof n!=="number")return;if(typeof this.requestStart==="number")return;this.requestStart=performance.now()}adRequestEnd(){this.requestStart=void 0}getRemainingAdLoadTime(n,o){return typeof o!=="number"||typeof this.requestStart!=="number"?n:Math.max(0,o-(performance.now()-this.requestStart))}}function rh(n,o,h){let v=(E)=>{h(E),n.removeEventListener(o,v)};return n.addEventListener(o,v),()=>n.removeEventListener(o,v)}function nh(n){try{return n.getAdPodInfo().getPodIndex()}catch(o){return}}function sh(n){try{return n.getAdPodInfo().getAdPosition()}catch(o){return}}function ah(n){try{return n.getAdPodInfo().getTotalAds()}catch(o){return}}var vl=Re("ads/timers");class kc{intervals;timers;constructor(n={},o={}){this.intervals=n;this.timers=o}}var Iv=-1;function Ov(){return++Iv}function Mv(n,o){return vl(`TimerRegistry.removeTimeout() -> ${o}`,n.timers),clearTimeout(n.timers[o]),delete n.timers[o],n}function oh(n,o,h){let v=setInterval(h,o);if(vl(`TimerRegistry.createInterval() -> ${v}`,n.intervals),typeof v==="object"){let E=Ov();return n.intervals[E]=E,E}return n.intervals[v]=v,v}function Nv(n,o){return vl(`TimerRegistry.removeInterval() -> ${o}`,n.intervals),clearInterval(n.intervals[o]),delete n.intervals[o],n}function Cs(n){if(!n)return;return vl("TimerRegistry.empty()",Object.keys(n.timers),Object.keys(n.intervals)),Object.keys(n.intervals).forEach((o)=>Nv(n,o)),Object.keys(n.timers).forEach((o)=>Mv(n,o)),n}class wn{eventHandler;log;_timers;_started;_volumeLevel;_adLoaded;_currentDuration;_currentRemaining;_currentDisplayTs;_adLinear;_dimensions;_adHandlers;opts;_adsManager;_adsLoader;_adDisplayContainer;videoTag;customPlaybackEnabled;_paused;loadingController;_all_ads_completed;google;_isInitialized;_adBreakTime;_prepared;constructor(n){this.eventHandler=n;this.log=Re("ads/adapter/ima"),this.google=window.google,this._adHandlers=[],this._timers=new kc,this._started=!1,this._volumeLevel=0,this._adLoaded=!1,this.customPlaybackEnabled=!1,this._paused=!1,this._all_ads_completed=!1,this._currentDuration=0,this._currentRemaining=0,this._currentDisplayTs=0,this._isInitialized=!1,this._adBreakTime=0,this._prepared=!1,this.opts={},this.loadingController=new Rc}async init(n){if(this.log("init",this.videoTag,n),this.opts=n,this._dimensions={width:n.width,height:n.height,linear:n.linear},this._prepared=!0,!this._isInitialized&&this.videoTag)await this.initAdapter()}async initAdapter(){this.log("initAdapter",this.opts);try{await this.initialize(this.opts),this._isInitialized=!0}catch(n){this.log("initAdapter failed:",n),this._prepared=!1,this.eventHandler.trigger(dl)}}isReady(){return!!this._isInitialized}setVideoTag(n){this.videoTag=n,this.customPlaybackEnabled=!1,n.root.classList.toggle("ads-custom-playback-enabled",this.customPlaybackEnabled)}setAdBreakTime(n){this._adBreakTime=n}getAdBreakTime(){return this._adBreakTime}isCustomPlaybackEnabled(){return this.customPlaybackEnabled}isAttemptingPrerollOnIOS(){return!!this?.videoTag?.root.classList.contains("preroll-ios")}setAttemptingPrerollOnIOS(n){this?.videoTag?.root.classList.toggle("preroll-ios",n)}isLinearAd(){return!!this._adLinear}getVideoTag(){return this.videoTag}getDimensions(){return this._dimensions||{}}getOpts(){return this.opts}isPaused(){return this._paused}destroy(){let n=this;Cs(this._timers),this._adHandlers?.forEach((o)=>o()),n._adHandlers=void 0,this._adDisplayContainer?.destroy(),n._adDisplayContainer=void 0,this._adsLoader?.destroy(),n._adsLoader=void 0,this._adsManager?.destroy(),n._adsManager=void 0}stop(){this._adsManager?.stop()}initialize(n){let o=this.isAdPod(),h=this._adLoaded||o;if(this.cleanup(),!this.videoTag)return console.warn("videoTag not set during initialization");this.opts=n,this._volumeLevel=n.volume;let v=this.google.ima.settings;try{}catch(E){}if(n.NumRedirects=n.NumRedirects||n.redirects,v.setVpaidMode(n.VpaidMode||this.google.ima.ImaSdkSettings.VpaidMode.INSECURE),v.setDisableCustomPlaybackForIOS10Plus(!this.customPlaybackEnabled),"NumRedirects"in n)v.setNumRedirects(n.NumRedirects);if("AutoPlayAdBreaks"in n)v.setAutoPlayAdBreaks(n.AutoPlayAdBreaks);if("Locale"in n)v.setLocale(n.Locale);if("Ppid"in n)v.setPpid(n.Ppid);if(!document.body.contains(n.container))throw new Error("AdDisplayContainer was not found in the document.body");if(this._adDisplayContainer=new this.google.ima.AdDisplayContainer(n.container,this.videoTag),this._adDisplayContainer.initialize(),this._adsLoader=new this.google.ima.AdsLoader(this._adDisplayContainer),this.log("ima.initialise(:wait -> ADS_MANAGER_LOADED)",{...n,volume:this.videoTag.volume,muted:this.videoTag.muted}),this._adsLoader.addEventListener(this.google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,(E)=>{if(!this.videoTag)return;this.log(`ima.initialise(:done -> ADS_MANAGER_LOADED)
|
|
196
|
+
%o`,{...n,volume:this.videoTag.volume,muted:this.videoTag.muted});let _=new this.google.ima.AdsRenderingSettings;this.log("ima.rendering(preload: %s)",!!n.preload_ads),_.useStyledNonLinearAds=!0,_.enablePreloading=!!n.preload_ads,_.loadVideoTimeout=n.media_timeout||-1,_.restoreCustomPlaybackStateOnAdBreakComplete=this.customPlaybackEnabled,this.customPlaybackEnabled&&(_.playAdsAfterTime=this.videoTag.currentTime),this.eventHandler.trigger(ih,_);let R=this._adsManager=E.getAdsManager(this.videoTag,_);this.eventHandler.trigger(th,R),R.addEventListener(this.google.ima.AdEvent.Type.LOADED,()=>{this.log("debug(ima.adsManager): google.ima.AdEvent.Type.LOADED")}),R.addEventListener(this.google.ima.AdErrorEvent.Type.AD_ERROR,()=>{this.log("debug(ima.adsManager): google.ima.AdErrorEvent.Type.AD_ERROR")}),R.addEventListener(this.google.ima.AdEvent.Type.STARTED,()=>{this.log("debug(ima.adsManager): google.ima.AdEvent.Type.STARTED")}),R.addEventListener(this.google.ima.AdEvent.Type.AD_PROGRESS,(X)=>{let b=X.getAdData()?.duration,H=X.getAdData()?.currentTime;if(Number.isNaN(b)||Number.isNaN(H))return;this._currentRemaining=b-H,this.eventHandler.trigger(jr,{remaining:this._currentRemaining,duration:b})}),R.addEventListener(this.google.ima.AdEvent.Type.STARTED,(X)=>{this._currentRemaining=-1,this.debugEvent(X);let b=X.getAd();if(!b)return;if(this._currentDuration=b.getDuration(),this._currentDisplayTs=Date.now(),this.emitWithAd(ir,b),b.isLinear())wn.pollRemaining({ima:this,adsManager:R})}),R.addEventListener(this.google.ima.AdEvent.Type.COMPLETE,(X)=>{this.debugEvent(X);let b=X.getAd();if(b)this.emitWithAd(Ls,b);Cs(this._timers)}),R.addEventListener(this.google.ima.AdEvent.Type.SKIPPED,(X)=>{this.debugEvent(X);let b=X.getAd();if(b)this.emitWithAd(ws,b)}),R.addEventListener(this.google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED,(X)=>{if(this.isAdPod()&&this.videoTag){let H=Math.abs(this.videoTag.currentTime-this.videoTag.duration)<1?-1:this.videoTag.currentTime;this.setAdBreakTime(H)}this.debugEvent(X);let b=X.getAd();if(b)this.emitWithAd(Pa,b)}),R.addEventListener(this.google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED,(X)=>{this.debugEvent(X),this._started=!1,this._currentDisplayTs=0,this.eventHandler.trigger(Wi,{force:!0})}),R.addEventListener(this.google.ima.AdEvent.Type.VOLUME_CHANGED,(X)=>{this.log("IMA::volume(type: %s, event: %o)",X);let b=R.getVolume();this._volumeLevel=b,this.eventHandler.trigger(wc,b)});let A=(X)=>{this._paused=X,this.eventHandler.trigger(X?xa:ul)};R.addEventListener(this.google.ima.AdEvent.Type.PAUSED,()=>A(!0)),R.addEventListener(this.google.ima.AdEvent.Type.RESUMED,()=>A(!1)),R.addEventListener(this.google.ima.AdEvent.Type.STARTED,()=>A(!1)),R.addEventListener(this.google.ima.AdEvent.Type.VOLUME_MUTED,(X)=>{this.log("IMA::volume(type: %s, event: %o)","mute",X),this.eventHandler.trigger(qd)});let{width:L,height:M}=n;if(!L||!M)return;R.init(L,M,this.google.ima.ViewMode.NORMAL),this.log("ima.initialise: done initializing")}),h)this.log("Event(reload: %s)",Fa),this.eventHandler.trigger(Fa,o);this.eventHandler.trigger(ol,this)}destroyManager(n="unknown"){if(!this._adsManager)return this.log("ima::destroyManager(:skip, label: %s)",n);this.log("ima::destroyManager(:ok, label: %s)",n),this._adsManager.destroy()}reset(){this.destroyManager("reset"),Cs(this._timers),this.clearAdHandlers(),this._started=!1,this._adLoaded=!1}cleanup(){if(this.destroyManager("cleanup"),this._adsLoader)this._adsLoader.destroy();if(this._adDisplayContainer)this._adDisplayContainer.destroy();this._adLoaded=!1}waitForAdsManager(){return new Promise((n)=>{this.log("ima.waitForAdsManager:",this._adsManager),this.once(this._adsLoader,this.google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,()=>{this.log("ima.waitForAdsManager(:ok)",this._adsManager),n(this._adsManager)})})}async initAd(n,o=5000){if(this.log(`ima.initAd(adTag: ${n}, timeout: ${o})`),!this.customPlaybackEnabled)this.loadingController.adRequestStart(this.opts.total_loading_timeout);try{if(await this.requestAd(n,this.loadingController.getRemainingAdLoadTime(o,this.opts.total_loading_timeout)),this._adLoaded=!0,this.customPlaybackEnabled)return;this._adsManager?.updateAdsRenderingSettings({loadVideoTimeout:this.loadingController.getRemainingAdLoadTime(this.opts.media_timeout||-1,this.opts.total_loading_timeout)})}catch(h){throw this.log("ima.initAd:",h),this._adLoaded=!1,h}finally{Cs(this._timers)}}async requestAd(n,o){if(this.destroyManager("requestAd"),!this.videoTag)return;this.setAdBreakTime(this.videoTag.currentTime);let{autoplay:h=!1}=this.opts,v=Date.now(),E=this.videoTag.muted;this._volumeLevel=this.videoTag.volume;let _=E||this._volumeLevel===0;this._all_ads_completed=!1,this.log("ima.requestAd(%o)",{...this.opts,autoplay:h,muted:E,timeout:o,adTag:n,_volumeLevel:this._volumeLevel,manager:this._adsManager}),this.clearAdHandlers();let R=new this.google.ima.AdsRequest;R.adTagUrl=n;let{height:A,width:L}=this.opts;if(L)R.linearAdSlotWidth=L;if(A)R.linearAdSlotHeight=A;if(!this.opts.disable_non_linear_ads&&L)R.nonLinearAdSlotWidth=L;if(!this.opts.disable_non_linear_ads&&A)R.nonLinearAdSlotHeight=A-50;if(R.setAdWillAutoPlay(h),R.setAdWillPlayMuted(_),R.vastLoadTimeout=o,this.eventHandler.trigger(eh,{request:R}),!this._adsLoader)return;return new Promise(async(M,X)=>{let b=this.waitForAdsManager();this._adsLoader?.requestAds(R),this.once(this._adsLoader,this.google.ima.AdErrorEvent.Type.AD_ERROR,(H)=>{X(()=>{return this.emitError(Yr,H),Promise.reject(new Error("Ad load failed"))})}),setTimeout(()=>{X(()=>{b.then((P)=>{if(P.destroy(),this._adsManager===P)this._adsManager=void 0});let H=new Error("Ad internal timeout reached");return this.eventHandler.trigger(Xd,H),Promise.reject(H)})},o),M(await b)}).then((M)=>{return new Promise((X,b)=>{this.volume(_?0:this._volumeLevel),this.eventHandler.trigger(wc,this._volumeLevel);let H=this.cuepoints();if(H?.length&&H[0]!==0)return X({ad:!1,adsManager:M});this.once(M,this.google.ima.AdErrorEvent.Type.AD_ERROR,(P)=>{b(()=>{return this.emitError(Yr,P),Promise.reject(P)})}),this.once(M,this.google.ima.AdEvent.Type.ALL_ADS_COMPLETED,()=>{this._all_ads_completed=!0,X(null)}),this.once(M,this.google.ima.AdEvent.Type.LOADED,(P)=>{this.eventHandler.trigger(cl,{request_load_time:Date.now()-v});let W=P.getAd();if(!W)return;if(this.log("ima.requestAd: AD_REQUEST_COMPLETED",W.getContentType()),W.getContentType()==="application/javascript")this.eventHandler.trigger(Zd,W);X(null)}),this.once(M,this.google.ima.AdEvent.Type.CLICK,()=>{this.log("ima.requestAd: click event"),this.pause()})})},(M)=>M())}async playAd(){if(this.log("ima.playAd()",this),!this._adsManager||!this._adLoaded)return;let n=this.currentAd();if(!n)return;if(this.customPlaybackEnabled&&!n.isLinear())return;try{await this.startAndWaitForAdCompletion(this._adsManager,n.isLinear())}catch(o){throw this.log("ima.playAd",o),o}finally{this._adLoaded=!1,Cs(this._timers)}}startAndWaitForAdCompletion(n,o){if(this._started)return;return this.log("ima.startAndWaitForAdCompletion(manager: %o)",{volume:n.getVolume()}),new Promise((h,v)=>{let E=!1;this.once(n,this.google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED,()=>{if(this.log("ima.startAndWaitForAdCompletion: CONTENT_RESUME_REQUESTED <<< happened"),this._started=!1,E)return this.log("ima.startAndWaitForAdCompletion: Content resume requested, but trying to recover from ad error");h()}),this.once(n,this.google.ima.AdErrorEvent.Type.AD_ERROR,async(A)=>{this.log("ima.startAndWaitForAdCompletion: beginning error recovery ->",A),E=!0;try{let{ok:L}=await wn.pollForFatalError({err:A,ima:this});if(L)E=!1}catch(L){this._started=!1,v(A)}});let _=this.getVideoTag();if(!_)return;let R=()=>{if(o)this._started=!0;n.start(),this.eventHandler.trigger(hl)};if(!o||_.hasState("is-in-viewport"))return R();if(!_.paused)_.pause();_.once(lh.VIEW_ENTER,()=>R())})}pause(){this.log("ima.pause()"),this._adsManager?.pause()}resume(){this.log("ima.resume()"),this._adsManager?.resume()}volume(n){if(!this._adsManager)return;try{if(arguments.length>0&&typeof n==="number")this._adsManager.setVolume(n);return this._volumeLevel=this._adsManager.getVolume()}catch(o){this.log("ima.volume() failed (%o)",o)}}onResize({width:n,height:o,linear:h,silent:v,resize_non_linear:E}){if(!this._adsManager)return;if(this._adLinear=typeof h==="undefined"?this._adLinear:h,!this.opts)return;if(!n&&!o)return;if(h===!1)n=n+10,o=o+10;if(this._dimensions={width:n,height:o,linear:h},h)this.opts.width=n,this.opts.height=o;if(!this._adLinear&&!E)return;if(!v)this.log("ima.onResize %s x %s",n,o);this._adsManager.resize(n,o,this.google.ima.ViewMode.NORMAL)}onAdRequestEnd(){if(this.customPlaybackEnabled)return;this.loadingController.adRequestEnd(),this._adsManager?.updateAdsRenderingSettings({loadVideoTimeout:this.opts.media_timeout||-1})}getAdInfo(){let n=this.currentAd();if(!n)return;return{duration:n.getDuration(),currentTime:this._currentRemaining}}currentAd(){let n=this._adsManager;if(!n)return;return n.getCurrentAd()}isAdPod(){let n=this.cuepoints();return!!(n&&n.length>1)}cuepoints(){return this._adsManager?.getCuePoints()}async contentComplete(){this.log("ima.contentComplete() -> ",this),this._adsLoader?.contentComplete();let n=this.cuepoints();if(!n||n.indexOf(-1)===-1)return;await new Promise((o)=>{wn.race(this.eventHandler,[Wi,fl],o)})}isUiDisabled(){try{let n=this.currentAd();return n&&n.isUiDisabled()}catch(n){return null}}getAdPodInfo(){try{return this.currentAd()?.getAdPodInfo()}catch(n){return null}}canDismissNonLinear(){let n=this.currentAd();if(!n||n.isLinear()||!this._adsManager||!this._currentDisplayTs)return!0;let o=Date.now(),h=n.getMinSuggestedDuration();return o-this._currentDisplayTs>h*1000}static unwrapError(n,o){if(!n)return"";if(typeof n.getMessage==="function")return n.getMessage();if(n.message)return n.message;return o||""}static pollForFatalError({err:n,ima:o}){let h;try{let E=n.getError(),_=E.getInnerError();h={reason:_?wn.unwrapError(_,E.message):"",type:E.getType(),code:E.getErrorCode()}}catch(E){}let v=o._currentRemaining;return new Promise((E,_)=>{let R=setTimeout(()=>{if(o.eventHandler)o.eventHandler.trigger(As,h);_(new Error("Ad not progressing"))},2500);o.eventHandler.once(jr,(A)=>{let L=A.detail.remaining;if(L!==-1&&L<v)clearTimeout(R),E({ok:1})})})}static pollRemaining({ima:n,adsManager:o}){let h=-1;return oh(n._timers,250,()=>{let v=o.getRemainingTime();if(n._currentRemaining!==-1&&n._currentRemaining<=v)return;if(n._currentRemaining=o.getRemainingTime(),h===n._currentRemaining)return;h=n._currentRemaining,n.eventHandler.trigger(jr,{remaining:n._currentRemaining,duration:n._currentDuration})})}once(n,o,h){this._adHandlers.push(rh(n,o,h))}static race(n,o,h){o.forEach((v)=>{let E=(..._)=>{o.forEach((R)=>n.removeListener(R,E)),h(_)};n.on(v,E)})}clearAdHandlers(){this.log("ima.clearAdHandlers"),this._adHandlers.forEach((n)=>n()),this._adHandlers=[]}emitWithAd(n,o){if(this.log("ima.emitWithAd",n,o),!this._adsManager)return;let h=sh(o),v=ah(o),E={ad:{duration:o.getDuration(),width:o.getWidth(),height:o.getHeight(),position:h,totals:v},volume:this._adsManager.getVolume(),vast_ad_id:o.getAdId(),linear:o.isLinear(),mime_type:o.getContentType(),ima_event:!0};this.log(`emitWithAd::event(name: ${n}, data: %o, ad: %o)`,E,o),this.eventHandler.trigger(n,E)}emitError(n,o){let h={vast_error_type:o.getError().getType(),reason:o.getError().getMessage(),vast_error:o.getError().getErrorCode()};this.log(`ima.error(${n})`,h),this.eventHandler.trigger(n,h)}debugEvent(n){try{let o=n.getAd();if(!o)return;this.log(`ima.event.${n.type} ->`,{event:n,data:n.getAdData(),position:nh(o),ad:o})}catch(o){}}}function ch(n,o){return n.adapter?new n.adapter(o):new wn(o)}var Pv=Re("fpads:ads:state");class El{_state;static of(){return new El}constructor(n=0){this._state=n}reset(){this._state=0}toggleState(n,o){if(typeof n==="undefined")Pv(new Error("AdState cannot toggleState for `undefined`"));if(typeof o==="undefined")return this._state^=n;if(!o)return this._state&=~n;this._state|=n}hasAll(n){return this._state===(this._state|n)}hasAny(n){return!!(this._state&n)}get state(){return this._state}}var Cc={URL:"https://fp-eu-w1-aai.flowplayer.com/in",METHOD:"POST"},uh=[ll,Yr,cl,Ls,ir,fl,ws],dh=["event_type","ad_tag_id","media_id","player_id","site_id","sitegroup_id","rnd","os","device","browser","browser_version","plugin_version","player_version"],hh=["vast_error","reason","request_load_time","ad_type","vast_ad_id"];var mh=Ne(fh(),1);var Fv=mh.default.parse(window.navigator.userAgent),{platform:Uv,os:Ic,browser:Oc}=Fv,Mc=(n)=>n?.toLowerCase(),gh={rnd:Math.random().toString(36).substr(2,32),os:Mc(Ic.name+(Ic.versionName?` ${Ic.versionName}`:"")),device:Mc(Uv.type),browser:Mc(Oc.name),browser_version:((Oc?.version)?Oc.version:"unknown").split(".").shift(),plugin_version:rl};var Yi={ok:Re("fpads:analytics:request-queue"),err:Re("fpads:analytics:request-queue:err"),warn:Re("fpads:analytics:request-queue:warn")};class Ae{pending;open;stats;static MAX_OPEN_REQUESTS=3;static REQUEST_TIMEOUT_MS=4000;static REQUEST_TTL_MS=5000;static MAX_FAILURE_COUNT=3;static of(){return new Ae}static is_empty(n){return n.pending.length===0}static is_high_water(n){return n.open.length===Ae.MAX_OPEN_REQUESTS}static maybe_spawn_req(n){if(Ae.is_empty(n))return Yi.ok("maybe_spawn_req called Queue that is EMPTY"),n;if(Ae.is_high_water(n))return Yi.warn("maybe_spawn_req called on Queue that is HIGH_WATER"),n;try{let o=Ae.lpop(n);if(o)Ae.request(n,o)}catch(o){Yi.err(o)}}static increment_failures(n){if(n.stats.failures++,n.stats.failures>Ae.MAX_FAILURE_COUNT)n.stats.ttl=Date.now()+Ae.REQUEST_TTL_MS;return n}static handle_error(n,o){Ae.rm(n,o),Ae.increment_failures(n)}static request(n,[o,h,v]){if(Yi.ok(`Request[${v.event_type}] request`,v,n.stats),Date.now()<n.stats.ttl)return Yi.warn(`Request[${v.event_type}] skipping because too many errors too quickly`,n.stats);let E=new XMLHttpRequest;n.open.push(E),E.timeout=Ae.REQUEST_TIMEOUT_MS,E.ontimeout=()=>{Ae.handle_error(n,E),Yi.warn(`Request[${v.event_type}] timed out in ${E.timeout}ms`,n.stats)},E.onerror=(_)=>{if(Ae.handle_error(n,E),_)Yi.err(_);Yi.warn(`Request[${v.event_type}] encountered an Error`,E.responseText,n.stats)},E.onreadystatechange=()=>{if(E.readyState===XMLHttpRequest.DONE)Ae.rm(n,E);if(Math.floor(E.status/100)===2)return},E.onload=()=>{if(Ae.rm(n,E),n.stats.failures)n.stats.failures--;Yi.ok(`Request[${v.event_type}] :ok`,E.status)},E.open(h,o),E.setRequestHeader("Content-Type","text/plain;charset=UTF-8");try{E.send(JSON.stringify(v))}catch(_){Yi.err(_)}}static rpush(n,...o){return o.forEach((h)=>{if(Ae.is_high_water(n))return Yi.warn("Too many open requests, skipping",n.stats);n.pending.push(h),Ae.maybe_spawn_req(n)}),n}static lpop(n){return n.pending.shift()}static rm(n,o){let h=n.open.lastIndexOf(o);if(~h)n.open.splice(h,1);return n}constructor(n=[],o=[],h={failures:0,ttl:0}){this.pending=n;this.open=o;this.stats=h}}var Nc=Re("ads/analytics"),Bv=Ae.of(),Pc=(...n)=>Object.assign({},...n),$v=(n,...o)=>Object.keys(n).filter((h)=>~o.indexOf(h)).reduce((h,v)=>Object.assign(h,{[v]:n[v]}),{});class rr{emitter;static of(n,o){return new rr(n,o)}static ensure_required_keys(n,o){return n.required_keys.filter((h)=>!(h in o))}static pluck_valid_keys(n,o){return $v(o,...n.valid_keys)}static mergeMetadata(n,o={}){return n.metadata=rr.pluck_valid_keys(n,Pc(n.metadata,o,{player_version:rl})),n}events;required_keys;optional_keys;valid_keys;metadata;constructor(n,o={}){this.emitter=n;this.metadata=Pc(gh,o.metadata||{}),this.emitter=n,this.events=o.events||[],this.required_keys=o.required_keys||[],this.optional_keys=o.optional_keys||[],this.valid_keys=this.required_keys.slice(0).concat(this.optional_keys),Nc(this),this.wireup()}wireup(){this.events.forEach((n)=>{this.emitter.on(n,(o)=>{let h=o.detail,v=Pc(this.metadata,{event_type:n},h),E=rr.pluck_valid_keys(this,v),_=rr.ensure_required_keys(this,E);if(Nc(`Event[${n}]`,{payload:E,observation:h}),_.length)return Nc(`Analytics.validate_metadata() failed for
|
|
197
|
+
Event[${n}]
|
|
198
|
+
missing keys: ${_}`,E);Ae.rpush(Bv,[Cc.URL,Cc.METHOD,E])})})}destroy(){let n=this;n.emitter=n.metadata=n.events=n.required_keys=n.optional_keys=n.valid_keys=void 0}}var ph=(n)=>rr.of(n,{required_keys:dh,optional_keys:hh,events:uh});var Vc=Ne(wh(),1);var aE=Re("fpads:macros"),Rh=/\[([\s\S]+?)\]/g,oE=/\{([\s\S]+?)\}/g,lE=/__([\s\S]+?)__/g;class ci{vars;pattern;static patterns={BRACKETS:Rh,CURLY:oE,UNDERSCORE:lE};static run(n){try{return n()}catch(o){console.error(o);return}}static merge(...n){return n.reduce((o,h)=>{return Object.assign(o,h)},{})}static cast(n){if(typeof n==="undefined")return"";if(typeof n==="function")return encodeURIComponent(ci.run(n)||"");if(typeof n==="string")return encodeURIComponent(n);if(typeof n==="number")return n.toString();if(typeof n==="boolean")return n.toString();return""}static normalize(n){return n.trim()}static process_obj(n,o,h){return Object.keys(n).reduce((v,E)=>{let _=ci.process_str(E,o,h,!0),R=n[E];if(R===null)return v[_]=R,v;if(typeof R==="object")return v[_]=ci.process_obj(R,o,h),v;if(typeof R==="string")return v[_]=ci.process_str(R,o,h),v;return console.error(new Error(`${R} at ${E} not a handled Macro type`)),v},{})}static process_str(n,o,h,v=!1){return n.replace(o.pattern,(E,_)=>{let R=ci.normalize(_);if(!(R in h)||typeof h[R]==="undefined")return E;let A=h[R],L=v?A:ci.cast(A);return aE("Macro.replace(raw: %s, macro: %s, value: %s)",v,_,L),L})}constructor(n={},o=Rh){this.vars=n;this.pattern=o}fork(n={},o=this.pattern){let h=ci.merge(this.vars,n);return new ci(h,o)}compile(n,o={}){let h=ci.merge(this.vars,o),[v,E]=n.split("?"),_=Vc.default.parse(E||"",{strictNullHandling:!0,decoder:(A)=>A}),R=Vc.default.stringify(ci.process_obj(_,this,h),{encode:!1,strictNullHandling:!0});return ci.process_str(v,this,h,!0)+"?"+R}}var kh=/^flowplayer:\/\/(.+)/;async function Sl(n){if(typeof n==="string"&&kh.test(n)){let o=kh.exec(n),h=o&&window[o[1]];if(h)return Sl(h)}if(typeof n!=="function")return n;try{return await n()}catch(o){return""}}async function Kc(n){if(typeof n==="function")return[await Sl(n)];if(typeof n==="string")return[await Sl(n)];if(Array.isArray(n)){let o=n;return await Promise.all(o.map(Sl))}if(typeof n==="object"&&n&&n.adTag)return await Kc(n.adTag);throw new Error(`
|
|
199
|
+
unhandled ads type ${typeof n}:
|
|
200
|
+
${JSON.stringify(n)}
|
|
201
|
+
can be:
|
|
202
|
+
| Array<string>
|
|
203
|
+
| string
|
|
204
|
+
| function
|
|
205
|
+
| {adTag: Array<string>|string|function}
|
|
206
|
+
`)}function cE(){let n=window;return typeof n.__flowplayerAdParameters==="object"?n.__flowplayerAdParameters:{}}function Ch(n,o={width:0,height:0}){let h,v;try{let L=document.createElement("a");L.href=h=window.location!==window.parent.location?document.referrer:document.location.href,v=L.hostname}catch(L){console.error(L)}let{width:E,height:_}=o,{video_source:R}=n||{},A=cE();return{random:Date.now(),page_url:h,domain:v,player_width:E,player_height:_,video_url:R,videourl:R,...A}}class Wc{_bus;_listeners;constructor(n=document.createElement("div"),o=[]){this._bus=n;this._listeners=o}removeAllListeners(){this._listeners.length=0,this._bus=document.createElement("div")}emit(n,o){let h=new CustomEvent(n,{detail:o||{}});this._bus.dispatchEvent(h)}on(n,o){this._listeners.push([n,o]),this._bus.addEventListener(n,o,{passive:!0})}once(n,o){this._bus.addEventListener(n,o,{once:!0})}removeListener(n,o){this._bus.removeEventListener(n,o)}}var{prototype:uE,getPrototypeOf:dE}=Object;function Dh(n){if(n===null||typeof n!=="object")return!1;return dE(n)===uE}var Pe=Re("ads/controller"),fE=50,mE={show_all_ads_on_seek:!1,timeout:5000,preload_advance:10};class Yc extends Wc{adapter;opts;analytics;_macros;_schedule;_state;_lastAd;content_processing_src;constructor(n={}){super();this.adapter=ch(n,this),this.opts={...mE,...n},this.analytics=ph(this),this._state=El.of(),this._schedule=void 0,this._lastAd=void 0,this._macros=new ci(n.parameters||{}),this.wireup(),this.content_processing_src=!1}reset(){return this.removeAllListeners(),this.wireup(),this.analytics?.wireup(),this._state.reset(),this.adapter.reset(),this}destroy(){this.removeAllListeners(),this.analytics?.destroy(),this.adapter?.destroy();let n=this;n.analytics=void 0,n.opts=void 0,n.adapter=void 0,n._state=void 0,n._schedule=void 0,n._lastAd=void 0,n._macros=void 0}stop(){this.adapter?.stop()}onContentNewSrc(){this._state.reset(),this.adapter.destroyManager(),this.adapter.contentComplete()}wireup(){let n=()=>{this.adapter.onAdRequestEnd(),this.videoTag?.setState("ad-paused",!1),this.videoTag?.setState("ad-playing",!0),this._state.toggleState(16,!0)};this.on(hl,n),this.on(ir,n),this.on(ul,n);let o=(h)=>{if(h?.type!==Yr)this.adapter.onAdRequestEnd();if(this.videoTag?.setState("ad-paused",h?.type===xa),this.videoTag?.setState("ad-playing",!1),!this.adPlaying)return;this._state.toggleState(16,!1)};this.on(Wi,o),this.on(_s,o),this.on(As,o),this.on(Yr,o),this.on(xa,o),this.on(ws,o),this.on(Ls,o),this.on(Wi,()=>{requestAnimationFrame(()=>{this._state.toggleState(8,!1)})}),this.on(dl,()=>{console.error("Adapter init failed"),o(),this._state.toggleState(32,!0)}),this.on(Fa,async(h)=>{if(Pe("Ads.on(RELOAD_AD_REQUESTED)",h),!this._schedule)return;if(o(),h)return this._schedule.reset(this._schedule.getAds());if(this._state.hasAny(4))this._schedule.decrement(),this._state.toggleState(4,!1)})}async initialize(n,o={},h){if(Pe("Ads.initialize():",n,o,h),this._state.toggleState(1,!0),Object.assign(this.opts,o),Array.isArray(n))this.setSchedule(n);if(await this.adapter.init(this.opts),this._macros=this._macros.fork(Object.assign({},o.parameters||{},{autoplay:o.autoplay,muted:o.muted})),this.adapter.isReady())await this.adapterInitialized(h);return this}get videoTag(){return this.adapter.getVideoTag()}get adInfo(){return this.adapter.getAdInfo()}async setVideoTag(n){if(Pe("Ads.setVideoTag():",n),await this.adapter.setVideoTag(n),this.trigger(Lc,n),this.adapter.isReady())await this.adapterInitialized();n.on(ml,()=>this.adapter.pause()),n.on(gl,()=>this.adapter.resume()),n.on(pl,()=>n.toggleMute()),n.on(bl.VOLUME_CHANGE,()=>{this.adapter.volume(n.muted?0:n.volume===0?0.1:n.volume)}),n.on(bl.SOURCE,()=>{if(!n.hasState("ad-playing")&&!n.hasState("ad-paused"))return this.onContentNewSrc();if(this.stop(),!this.adapter.isLinearAd())return this.onContentNewSrc();this.setIsContentProcessingNewSrc(!0),this.once(Wi,()=>{setTimeout(()=>{this.setIsContentProcessingNewSrc(!1),this.onContentNewSrc()},0)})})}waitForVideoTag(){return new Promise((n)=>{let o=this.adapter.getVideoTag();if(o)return n(o);this.on(Lc,(h)=>{this.once(ol,()=>n(h))})})}async adapterInitialized(n){if(Pe("Ads.adapterInitialized()"),this._state.toggleState(1,!1),this._state.toggleState(8,!!this.hasPreroll()),await this.setCurrentTime(0,n),this.checkIfBreakComplete(),this.adapter.isAdPod()||n&&!this.opts.autoplay)return;this.trigger(_s)}async fetchNextAd(n,o=0){if(!this._schedule)return;if(!this.adapter.isReady())return;if(o>fE)throw this._state.toggleState(32,!0),this._state.toggleState(2,!1),new Error("Ads.fetchNextAd() :max_recursion_depth");let h=this._schedule?.getNextAd()||this._schedule?.getPostroll();if(h&&!this.adapter.canDismissNonLinear()&&n!==-1)return;if(this._schedule.waitForLoad(n,h,this.opts.preload_ads)){this._state.toggleState(2,!1);return}if(h===this._schedule.getPostroll()){if(this._schedule.setPostrollActive(),n!==-1){this._state.toggleState(2,!1);return}}if(!this._schedule.isDrained())this._schedule.increment();if(!h){this._state.toggleState(2,!1);return}Pe("Ads.fetchNextAd",h),this._state.toggleState(2,!0);try{await this.requestAd(h),this._state.toggleState(4,!0),this._state.toggleState(2,!1);return}catch(v){if(Pe("Ads.fetchNextAd(err: %o, ad: %o)",v,h),this.setLastAd(h),h!==this._schedule.getPostroll())return await this.fetchNextAd(n,++o);this._state.toggleState(2,!1);return}}skipAdsOnSeek(n){if(!this._schedule)return;let o=this._schedule.getNextAd();while(o&&o.time<n)this._schedule.increment(),o=this._schedule.getNextAd()}async setCurrentTime(n,o=!1,h=!1){if(!this._schedule)return;if(!this.adapter.isReady())return;if(this._state.hasAny(2))return;if(this._state.hasAny(16)&&this.adapter.isLinearAd())return;let v=n===0&&this._schedule.getNextIndex()===0;try{if(h&&!this.opts.show_all_ads_on_seek)this.skipAdsOnSeek(n);if(!this._state.hasAny(4))await this.fetchNextAd(n);if(!this._state.hasAny(4)||!this.shallPlayAd(n)||o)return;await this.playAd(),await this.setCurrentTime(n),this.checkIfBreakComplete()}catch(E){Pe("setCurrentTime: Error(from: setCurrentTime, message: %s)",E.message)}finally{if(v)this.trigger(Qd)}}async playAd(){if(!this._state.hasAny(4))return;this._state.toggleState(4,!1),this._state.toggleState(8,!0);let n=this._schedule?.getCurrentAd();try{await this.adapter.playAd()}catch(o){console.error("Ads.playAd: error",o)}finally{if(n)this.setLastAd(n)}}checkIfBreakComplete(){if(!this._state.hasAny(8))return Pe("Ads.checkIfBreakComplete(:bail, ad: %o)",this.getLastAd());if(Pe("Ads.checkIfBreakComplete(:run, ad: %o)",this.getLastAd()),this._state.toggleState(8,!1),!this.adapter.isAdPod())this.trigger(Wi)}resetScheduleCounter(){if(!this._schedule)return;this._schedule.resetCounter()}setSchedule(n,o){if(o&&!Number.isNaN(o)&&this._schedule)this._schedule.updateContentDuration(o);if(this._schedule&&this._schedule.getNextIndex()>0)return this._schedule.setAds(n);this._schedule=new ks(n,{preload_advance:this.opts.preload_advance,content_duration:o?0:o})}toJSON(){if(!this._schedule)return[];return this._schedule.toJSON()}trigger(n,o={}){if(!this.adapter.getVideoTag())return;if(!this._state)return;if(n===Wi&&this._state.hasAny(8)&&!this.adapter.isAdPod()&&!o.force)return Pe("skipping AD_BREAK_COMPLETE reason: %s pod=%s",this._state.toString(),this.adapter.isAdPod());if(!Dh(o))return this.dispatch(n,o);let v=Object.assign({},this.adapter.getOpts()||{},this._schedule?.getCurrentAd()||{},{ad_type:this.ad_type},o);return this.dispatch(n,v)}dispatch(n,o){let h=this.adapter.getVideoTag();if(!h)return;if(Pe(":dispatch",n,o),this.adapter.isAdPod()&&typeof o==="object"&&"time"in o&&o.ad_type!=="preroll")o.time=this.adapter.getAdBreakTime();try{let v={outstream:o.outstream,ad_type:o.ad_type,ad_break_time:o.time,ad_remaining_seconds:o.remaining,ad_muted:o.muted,ad_duration_seconds:o.duration,ad_error_reason:o.reason,ad_vast_error:o.vast_error,ad_vast_error_type:o.vast_error_type,ad_request_load_type:o.request_load_time},E={event:"ads/"+n,detail:v};h.dispatchEvent(new CustomEvent("health:record",{detail:E}))}catch(v){Pe(":error",v)}h?.emit(n,o),this.emit(n,o)}get ad_type(){if(!this.videoTag)return;if(!this.adapter.isAdPod())return this._schedule?.getCurrentType();let n=this.adapter.getAdBreakTime();if(n===-1)return"postroll";if(this.videoTag.hasState("is-live")||n<1)return"preroll";return"midroll"}shouldRestartContent(){if(this.getIsContentProcessingNewSrc())return!1;if(this.adapter.isAdPod())return!0;let n=this.getLastAd();if(!n)return!0;if(n.outstream)return!1;if(n.restart===!1)return!1;return!0}async finished(n){if(!this._schedule)return;if(Pe("Ads.finished"),this.adapter.isCustomPlaybackEnabled()&&this._state.hasAny(16)&&this.adapter.isLinearAd())return;Pe("Ads.finished: trying to play postroll");try{if(!this._schedule.getPostroll())return Pe("Ads.finished: no postroll found"),await this.adapter.contentComplete();if(!this._state.hasAny(4))await this.fetchNextAd(-1);await this.playAd(),this.adapter.contentComplete()}catch(o){Pe("Ads.finished: postroll failed:",o)}finally{if(this.trigger(Jd),this.checkIfBreakComplete(),typeof n==="function")n()}}hasPreroll(){return this._schedule&&ks.hasPreroll(this._schedule.getAds())}shallPlayAd(n){if(this.adapter?.isAdPod())return!1;if(!this._state||this._state.hasAny(32))return!1;return!!this._schedule?.shallPlayAd(n)}setLastAd(n){return this._lastAd=n,this}setIsContentProcessingNewSrc(n){this.content_processing_src=n}getLastAd(){return this._lastAd}getIsContentProcessingNewSrc(){return this.content_processing_src}mergeMacros(n={}){return this._macros=this._macros.fork(Object.assign({},n)),this}get paused(){return this.adapter?.isPaused()}pause(){this.adapter?.pause()}resume(){this.adapter?.resume()}resize(n){this.adapter?.onResize(n)}async requestAd(n,o=0,h=this.opts.timeout){if(!this._state)return;Pe("Ads.requestAd(ad: %o)",{ad:n,timeout:h,idx:o});let v=await Kc(n);if(typeof v[o]==="undefined")return setTimeout(()=>this.trigger(_s),0),Promise.reject(new Error("Ad failed, no fallbacks left"));if(!v[o])return await this.requestAd(v,o+1,h);this.trigger(ll,n);let E=this._macros.compile(v[o],Ch(this.opts,this.adapter.getDimensions()));try{return void await this.adapter.initAd(E,h)}catch(_){return Pe(`Ads.requestAd(:fallback, idx: ${o}, length: ${v.length}, adTag: ${v[o]})
|
|
207
|
+
Error `,{adTag:v,err:_}),this.requestAd(v,o+1,h)}}resetSchedule(n){this._schedule?.reset(n)}get adPlaying(){return this._state?.hasAny(16)}get adBreak(){return this._state?.hasAny(8)}get adRequesting(){return this._state.hasAny(2)}get adLinear(){return this.adBreak&&this.adapter.isLinearAd()}}var Os=Ne(An(),1);var gE=new Blob([new Uint8Array([255,227,24,196,0,0,0,3,72,1,64,0,0,4,132,16,31,227,192,225,76,255,67,12,255,221,27,255,228,97,73,63,255,195,131,69,192,232,223,255,255,207,102,239,255,255,255,101,158,206,70,20,59,255,254,95,70,149,66,4,16,128,0,2,2,32,240,138,255,36,106,183,255,227,24,196,59,11,34,62,80,49,135,40,0,253,29,191,209,200,141,71,7,255,252,152,74,15,130,33,185,6,63,255,252,195,70,203,86,53,15,255,255,247,103,76,121,64,32,47,255,34,227,194,209,138,76,65,77,69,51,46,57,55,170,170,170,170,170,170,170,170,170,170,255,227,24,196,73,13,153,210,100,81,135,56,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170])],{type:"audio/mpeg"}),pE=new Blob([new Uint8Array([0,0,0,28,102,116,121,112,105,115,111,109,0,0,2,0,105,115,111,109,105,115,111,50,109,112,52,49,0,0,0,8,102,114,101,101,0,0,2,239,109,100,97,116,33,16,5,32,164,27,255,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,167,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,33,16,5,32,164,27,255,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,167,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,2,194,109,111,111,118,0,0,0,108,109,118,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,232,0,0,0,47,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,1,236,116,114,97,107,0,0,0,92,116,107,104,100,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,101,100,116,115,0,0,0,28,101,108,115,116,0,0,0,0,0,0,0,1,0,0,0,47,0,0,0,0,0,1,0,0,0,0,1,100,109,100,105,97,0,0,0,32,109,100,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,68,0,0,8,0,85,196,0,0,0,0,0,45,104,100,108,114,0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0,0,0,1,15,109,105,110,102,0,0,0,16,115,109,104,100,0,0,0,0,0,0,0,0,0,0,0,36,100,105,110,102,0,0,0,28,100,114,101,102,0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1,0,0,0,211,115,116,98,108,0,0,0,103,115,116,115,100,0,0,0,0,0,0,0,1,0,0,0,87,109,112,52,97,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,16,0,0,0,0,172,68,0,0,0,0,0,51,101,115,100,115,0,0,0,0,3,128,128,128,34,0,2,0,4,128,128,128,20,64,21,0,0,0,0,1,244,0,0,1,243,249,5,128,128,128,2,18,16,6,128,128,128,1,2,0,0,0,24,115,116,116,115,0,0,0,0,0,0,0,1,0,0,0,2,0,0,4,0,0,0,0,28,115,116,115,99,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,28,115,116,115,122,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,115,0,0,1,116,0,0,0,20,115,116,99,111,0,0,0,0,0,0,0,1,0,0,0,44,0,0,0,98,117,100,116,97,0,0,0,90,109,101,116,97,0,0,0,0,0,0,0,33,104,100,108,114,0,0,0,0,0,0,0,0,109,100,105,114,97,112,112,108,0,0,0,0,0,0,0,0,0,0,0,0,45,105,108,115,116,0,0,0,37,169,116,111,111,0,0,0,29,100,97,116,97,0,0,0,1,0,0,0,0,76,97,118,102,53,54,46,52,48,46,49,48,49])],{type:"video/mp4"});function Ih(n){return Object.assign({muted:!1,timeout:250,inline:!1},n)}function Oh(n,o){var{muted:h,timeout:v,inline:E}=n,_=o(),R=_.element,A=_.source,L=void 0,M=void 0,X=void 0;if(R.muted=h,h===!0)R.setAttribute("muted","muted");if(E===!0)R.setAttribute("playsinline","playsinline");return R.src=A,new Promise(function(b){if(L=R.play(),M=setTimeout(function(){X(!1,new Error("Timeout "+v+" ms has been reached"))},v),X=function H(P){var W=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;R.remove(),R.srcObject=null,clearTimeout(M),b({result:P,error:W})},L!==void 0)L.then(function(){return X(!0)}).catch(function(H){return X(!1,H)});else X(!0)})}function vE(n){return n=Ih(n),Oh(n,function(){return{element:document.createElement("video"),source:URL.createObjectURL(pE)}})}function EE(n){return n=Ih(n),Oh(n,function(){return{element:document.createElement("audio"),source:URL.createObjectURL(gE)}})}var yE={audio:EE,video:vE},Mh=yE;var SE=500,Tl=void 0;async function jc(n=!0){if(Tl)return Tl;return Tl=await Mh.video({timeout:SE,muted:n}),Tl}function Is(n){return{width:n.clientWidth,height:n.clientHeight}}function Ds(n,o,h){if(typeof h==="number")h=h+"px";return n.style.setProperty(o,h),n}function Nh(n){if(n.clientWidth>0||n.clientHeight)return Is(n);let o={height:n.style.height};Ds(n,"opacity",0),Ds(n,"display","absolute"),Ds(n,"display","inline-block"),Ds(n,"height","auto");let h=Is(n);return Ds(n,"height",o.height),Ds(n,"opacity",1),h}var AE=Re("ads/lifecycle"),zc=[As,_s,Wi];async function Ph(n){if(n.state.started)return;await _E(n)}async function _E({ads:n,content:o,adContainer:h,ima:v,state:E,config:_}){E.started=!0;let{ads:R,...A}=v,L=Is(o.root),M=_?.muted||o.muted,X=Object.assign({container:h,volume:M?0:o.volume,muted:M,autoplay:_?.autoplay||!1,video_source:o.original_src,preload_ads:_?.ima?.preload_ads,...A,...L});AE("start():",X,E),await n.initialize(!1,X,E.preload)}function xh({ads:n,content:o,seek:h=!1}){if(!n)return;n.setCurrentTime(o.currentTime,void 0,h)}var Fh=1,Uh=2,Bh=4,$h=8,Gh=16,Hh=32,Vh=64;var wE=["progress","duration","remaining"];class $a extends HTMLElement{player;static get observedAttributes(){return wE}constructor(n){super();this.player=n;this.className="fp-ad-ui",this.append(...n.createComponents(nl,sl)),n.on(Rs,(o)=>{let{ui_flags:h}=o.detail;if(h=h||0,($h&h)>0){let v=document.createElement("div");v.classList.add("ad-attribution"),v.textContent=this.player.i18n("ads.advertisement","Advertisement"),this.append(v)}})}}var Wh=new Blob([new Uint8Array([0,0,0,28,102,116,121,112,105,115,111,109,0,0,2,0,105,115,111,109,105,115,111,50,109,112,52,49,0,0,0,8,102,114,101,101,0,0,2,239,109,100,97,116,33,16,5,32,164,27,255,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,167,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,33,16,5,32,164,27,255,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,167,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,2,194,109,111,111,118,0,0,0,108,109,118,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,232,0,0,0,47,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,1,236,116,114,97,107,0,0,0,92,116,107,104,100,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,101,100,116,115,0,0,0,28,101,108,115,116,0,0,0,0,0,0,0,1,0,0,0,47,0,0,0,0,0,1,0,0,0,0,1,100,109,100,105,97,0,0,0,32,109,100,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,68,0,0,8,0,85,196,0,0,0,0,0,45,104,100,108,114,0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0,0,0,1,15,109,105,110,102,0,0,0,16,115,109,104,100,0,0,0,0,0,0,0,0,0,0,0,36,100,105,110,102,0,0,0,28,100,114,101,102,0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1,0,0,0,211,115,116,98,108,0,0,0,103,115,116,115,100,0,0,0,0,0,0,0,1,0,0,0,87,109,112,52,97,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,16,0,0,0,0,172,68,0,0,0,0,0,51,101,115,100,115,0,0,0,0,3,128,128,128,34,0,2,0,4,128,128,128,20,64,21,0,0,0,0,1,244,0,0,1,243,249,5,128,128,128,2,18,16,6,128,128,128,1,2,0,0,0,24,115,116,116,115,0,0,0,0,0,0,0,1,0,0,0,2,0,0,4,0,0,0,0,28,115,116,115,99,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,28,115,116,115,122,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,115,0,0,1,116,0,0,0,20,115,116,99,111,0,0,0,0,0,0,0,1,0,0,0,44,0,0,0,98,117,100,116,97,0,0,0,90,109,101,116,97,0,0,0,0,0,0,0,33,104,100,108,114,0,0,0,0,0,0,0,0,109,100,105,114,97,112,112,108,0,0,0,0,0,0,0,0,0,0,0,0,45,105,108,115,116,0,0,0,37,169,116,111,111,0,0,0,29,100,97,116,97,0,0,0,1,0,0,0,0,76,97,118,102,53,54,46,52,48,46,49,48,49])],{type:"video/mp4"});var qc=Re("fpads:native:outstream"),Yh={OUTSTREAM:"is-outstream",HIDDEN:"is-outstream-hidden",SHOWING:"is-outstream-visible",DONE:"is-outstream-done"};class ji{static CLASS=Yh;ads;root;content;ima;dimensions;state=0;adUi;initialVolumeState;constructor({ads:n,root:o,content:h,ima:v}){qc("creating Outstream instance"),this.content=h,this.ads=n,this.root=o,this.ima=v,this.dimensions=Nh(this.root),this.adUi=new $a(h),this.initialVolumeState={},o.classList.add(Yh.OUTSTREAM),o.append(this.adUi),this.hide(),this.ads.on(Pa,(_)=>{if(this.state===3)return;let R=!!_.detail?.linear;this.ads.resize({...this.dimensions,linear:R})}),h.on(Os.RESIZE,(_)=>{if(this.state===3)return;let R=_.detail;if(!R)return;this.dimensions={width:R.contentRect.width,height:R.contentRect.height},this.ads.resize(this.dimensions)});let E=!0;h.on(Os.VIEW_ENTER,()=>{if(!E||v.autopause===!1)return;n.resume()}),h.on(Os.VIEW_LEAVE,()=>{if(v.autopause===!1)return;E=!n.paused,n.pause()}),this.setup(),setTimeout(()=>{return this.state=1,this.begin_life_cycle()},0)}hide(){return this}show(){this.root.classList.remove(ji.CLASS.HIDDEN),this.root.classList.add(ji.CLASS.SHOWING),this.content.setState("ad-linear",!0)}async begin_life_cycle(){this.state=2;let{error:n,result:o}=await jc(!1),{result:h}=await jc(!0);if(this.content.emit(Rs,{ui_flags:this.content.opts.ads?.ui}),this.attach_ad_listeners(),this.initialVolumeState={can_autoplay:!!(o||h),muted:!o},qc(`Outstream.show() :autoplay >> sound=${o}`),n&&this.content&&!o)this.content.muted=!0,this.content.volume=0;await this.ads.setVideoTag(this.content),await Ph({ads:this.ads,content:this.content,adContainer:this.adUi,ima:this.ima,state:{listening:!1},config:this.content.opts}),xh({content:this.content,ads:this.ads}),this.state=2}attach_ad_listeners(){this.ads.once(Pa,()=>{this.show()});let o=()=>{zc.forEach((v)=>this.ads.removeListener(v,o));let h=new CustomEvent("ads-outstream-teardown");qc("Outstream(:teardown)",h),this.content.dispatchEvent(h)};zc.forEach((h)=>this.ads.once(h,o)),this.content.once("ads-outstream-teardown",(h)=>{setTimeout(()=>{this.dispose()},0)})}empty_src(){this.content.setSrc({type:"video/mp4",src:URL.createObjectURL(Wh)})}setup(){this.root.classList.add(ji.CLASS.OUTSTREAM),this.root.classList.add(ji.CLASS.HIDDEN),this.content.setState("ad-linear",!1),this.empty_src()}reset_ui(){let n=this.root;n.classList.remove(ji.CLASS.SHOWING),n.classList.remove(ji.CLASS.OUTSTREAM)}dispose(){if(this.state===3)return;let n=this.root,o=this.content;this.reset_ui(),n.classList.add(ji.CLASS.OUTSTREAM),n.classList.add(ji.CLASS.DONE);let h=this;h.video=h.container=h.ads=0,this.state=3,o.destroy(),n.innerHTML=""}}class Xc extends HTMLElement{player;static get observedAttributes(){return["remaining"]}constructor(n){super();this.player=n;this.className="fp-ad-countdown",n.on(jr,(o)=>{let{duration:h,remaining:v}=o.detail;this.setAttribute("duration",h+""),this.setAttribute("remaining",v+"")}),n.on(ir,(o)=>{if(!o.detail.linear)return;this.style.setProperty("--ad-percent-previous","0"),this.style.setProperty("--ad-percent-complete","0")}),this.addEventListener("animationend",()=>{let o=this.style.getPropertyValue("--ad-percent-complete")||"0";this.style.setProperty("--ad-percent-previous",o)})}attributeChangedCallback(n,o,h){switch(n){case"remaining":return this.onRemaining(h)}}onRemaining(n){let o=parseFloat(this.getAttribute("duration")||"0");if(!n)n=o+"";let h=parseFloat(n),v=this.style.getPropertyValue("--ad-percent-complete")||"0";this.style.setProperty("--ad-percent-previous",v),this.classList.remove("go");let E=((o-h)/o*100).toFixed(3);requestAnimationFrame(()=>{this.style.setProperty("--ad-percent-complete",E),this.classList.add("go")})}}class Jc extends HTMLElement{player;static get observedAttributes(){return["position","totals"]}element;constructor(n){super();this.player=n;this.render(),n.on(ir,(o)=>{let{position:h,totals:v}=o.detail.ad;this.setAttribute("position",h+""),this.setAttribute("totals",v+"")})}attributeChangedCallback(n,o){switch(n){case"position":case"totals":return this.updateText()}}updateText(){if(!this.element)return;let n=parseFloat(this.getAttribute("position")||"0"),o=parseFloat(this.getAttribute("totals")||"0");this.element.textContent=`${this.player.i18n("ads.indicator","ADS")} ${n} / ${o}`}render(){this.element=document.createElement("div"),this.element.classList.add("ad-indicator","fp-color-text"),this.element.textContent=this.player.i18n("ads.indicator","ADS"),this.append(this.element)}}var RE=(n,o)=>{let h=n.get(o);if(!h)throw new Error(`no flowplayer component with the name ${o} exists`);let v=window.customElements.get(o);if(!v)throw new Error(`no default flowplayer component with the name ${o} exists`);let E=window.customElements.get(h);if(typeof E!=="function")return v;return E},Ms=(n,o)=>{return new(RE(n._customElements,o))(n)},Ga=(n,o,h)=>{window.customElements.get(o)||window.customElements.define(o,h),n.customElements.get(o)||n.customElements.set(o,o)};var jh="flowplayer-volume-bar";var zh="flowplayer-small-play-icon",qh="flowplayer-small-pause-icon";var Xh="flowplayer-volume-icon";class Qc extends HTMLElement{player;constructor(n){super();this.player=n;this.classList.add("fp-ad-controls"),this.append(this.adRemainingTime(),Ms(this.player,al),this.playbackButtons(),this.volumeBtn(),Ms(this.player,jh),this.adChoices()),n.on(Rs,this.applyStyleFlags.bind(this))}volumeBtn(){let n=Ms(this.player,Xh);return n.onclick=()=>this.player.emit(pl),n}playbackButtons(){let n=document.createElement("div");n.classList.add("ad-playback-controls");let o=Ms(this.player,zh),h=Ms(this.player,qh);return o.addEventListener("click",()=>{this.player.emit(gl),setTimeout(()=>{if(h.focus)h.focus()},100)}),h.addEventListener("click",()=>{this.player.emit(ml),setTimeout(()=>{if(o.focus)o.focus()},100)}),n.append(o,h),n}adChoices(){let n=document.createElement("div");return n.classList.add("fp-ad-choices"),n.textContent=this.player.i18n("ads.adchoices","AdChoices"),n.addEventListener("click",(o)=>{o.preventDefault(),this.player.togglePlay(!1),window.open("https://adssettings.google.com","_blank")}),n}adRemainingTime(){let n=document.createElement("div");return n.classList.add("fp-ad-remaining","fp-color-text"),this.prepend(n),this.player.on(jr,(o)=>{let h=o.detail.remaining;n.textContent=kE(parseFloat(h+""))}),n}applyStyleFlags(n){let o=n.detail.ui_flags??0;this.classList.toggle("is-ad-controls-sticky",(Fh&o)>0),this.classList.toggle("no-indicator",(Bh&o)>0),this.classList.toggle("is-ad-choices",(Gh&o)>0),this.classList.toggle("no-volume-bar",(Vh&o)===0),this.classList.toggle("is-ad-remaining",(Hh&o)>0),this.classList.toggle("no-fullscreen",(Uh&o)>0)}}function kE(n){if(Number.isNaN(n)||n>=Number.MAX_SAFE_INTEGER)return"";let o=n<0?"-":"";n=Math.round(Math.abs(n));let h=Math.floor(n/3600),v=Math.floor(n/60);if(n=n-v*60,h>=1)return v-=h*60,o+h+":"+Al(v)+":"+Al(n);return o+Al(v)+":"+Al(n)}function Al(n){let o=typeof n==="number"?n:parseInt(n,10);return(o>9?"":"0")+o}function Jh(n){return n&&typeof n.time==="number"}function Qh(n){return n&&typeof n.percentage==="number"&&typeof n.time!=="number"}function Zh(n,o){if(!Array.isArray(n))return console.warn("AdSchedule was not an Array"),[];return n.filter((h)=>Jh(h)||Qh(h)).reduce((h,v)=>{if(Jh(v))return h.push(v),h;if(v.lazy)return h.push(v),h;if(Qh(v)){let E=Object.assign({},v),_=!v.percentage?0:v.percentage*o;if(!Number.isNaN(_))E.time=_<0||_===o?-1:_;return h.push(E),h}return h},[])}class Zc{constructor(n){Ga(n,zd,$a),Ga(n,nl,Qc),Ga(n,sl,Xc),Ga(n,al,Jc)}startUp(n,o,h){n.setState("has-started",!0);let v=n.ads=new Yc,E=v.analytics;v.resize(Is(n.root)),n.once(tf.REAP,()=>{v?.destroy()});let _=n.duration;if(o.ads=Zh(o.ads,_),v.setSchedule(o.ads,_),h.metadata)rr.mergeMetadata(E,h.metadata);if(h.metadata)v.mergeMacros(h.metadata);if(h.metadata&&o.parameters)o.parameters={...o.parameters,...h.metadata};if(rr.mergeMetadata(E,{muted:n.muted||!1,autoplay:!1}),h.lang&&!o.Locale)o.Locale=h.lang;new ji({root:n.root,content:n,ads:v,ima:o})}}function rf(n,o,h,v,E,_){let R=window.customElements.get("flowplayer-ad-player"),A=new Zc(o),L=new R,M=o(L,{...v,poster:n.items[E].poster});M.root.classList.add("is-spins","is-ad-player","is-starting"),M.root.setAttribute("spin-index",String(E)),_.append(L);let X=xo(n,Kr()),b=(H)=>{X=H.detail.index,ef(h,v,X,M,E,A)};if(n.on(Bi,b),M.once("ad-request-completed",()=>{M.setState("is-loaded",!0)}),M.once("ads-outstream-teardown",()=>{if(M.root.remove(),X!==E)return n.off(Bi,b);let H=_r(X,!1);if(n.off(Bi,b),!H)return;H?.togglePlay(!0).then(()=>{if(!H.paused)return;H.muted=!0,H.play()})}),X+1===E)return ef(h,v,X,M,E,A)}function ef(n,o,h,v,E,_){if(v.hasState("has-started"))return;if(h===E)return _.startUp(v,n,o);if(h+1!==E)return;let R=_r(h,!1);if(!R)return _.startUp(v,n,o);if(R.hasState("is-loaded"))return _.startUp(v,n,o);let A=()=>_.startUp(v,n,o),L=()=>R.off(Ha.CAN_PLAY,A);R.once(Ha.CAN_PLAY,A),R.once(Ha.SOURCE,L)}class _l extends HTMLElement{menuContainer;summaryEle;mainMenu;menuHeader;menuTitle;olEle;closeEle;player;constructor(n){super();this.className="fp-menu-dialog",this.player=n,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.mainMenu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.mainMenu.classList.add("fp-menu","fp-main-menu"),this.mainMenu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.mainMenu),this.menuTitle.textContent=this.player.i18n("core.settings","Settings"),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button"),this.summaryEle.setAttribute("aria-label","Settings"),this.append(this.menuContainer),this.toggleVisibility(),n.on("keyboard:close:menus",this.onKeyboardCloseMenu.bind(this)),n.root.addEventListener("click",this.onRootClick.bind(this)),this.addEventListener("click",this.onMenuClick.bind(this)),["focusin","focusout"].forEach((o)=>this.mainMenu.addEventListener(o,this.onFocus.bind(this)))}appendMenu(n){this.createDialogOpt(n),this.addSubMenuBackButton(n.menuHeader),this.menuContainer.append(n.menu),n.remove()}createDialogOpt(n){let o=document.createElement("li");o.textContent=n.menuHeader.querySelector("h3")?.textContent||"";let h=this.detectSubMenuType(n.classList);this.toggleDialogOpt(n.menu,o,h),n.addEventListener(this.findSubMenuOptionsEvent(h),()=>{this.toggleDialogOpt(n.menu,o,h)}),o.onclick=h===1?this.onSubtitlesOptClick.bind(this,n):this.onOptClick.bind(this,n),o.setAttribute("role","menuitem"),o.setAttribute("aria-selected","false"),o.setAttribute("tabindex","0"),o.setAttribute("aria-haspopup","true"),o.setAttribute("aria-label",n.menuHeader.querySelector("h3")?.textContent||"")}toggleDialogOpt(n,o,h){try{n.querySelectorAll("li").length>(h===1?0:1)?this.olEle.appendChild(o):this.olEle.removeChild(o)}catch(v){}this.toggleVisibility()}addSubMenuBackButton(n){let o=document.createElement("div");o.className="fp-icon fp-menu-back fp-back-button",o.setAttribute("aria-hidden","true"),n.append(o)}openMenu(n){this.querySelectorAll(".fp-menu")?.forEach((o)=>{if(o===n)return;o?.classList.add("is-close")}),n.classList.remove("is-close"),n.querySelector("li")?.focus()}toggleMenuDialog(n){this.menuContainer.open=n,this.player.root.classList.toggle("has-menu-opened",n),this.summaryEle.setAttribute("aria-expanded",n+"")}toggleVisibility(){let n=!this.olEle.querySelectorAll("li").length;if(this.style.setProperty("display",n?"none":"block"),n&&this.menuContainer.open)this.toggleMenuDialog(!1)}onMenuClick(n){if(n.defaultPrevented)return;n.preventDefault();let o=n.target;if(o?.classList?.contains("fp-menu-back")||o?.closest("li"))return this.openMenu(this.mainMenu);let h=!this.menuContainer.open;if(h)this.openMenu(this.mainMenu);this.toggleMenuDialog(h)}onFocus(n){let o=n.target;if(!(o instanceof HTMLLIElement))return;o.setAttribute("aria-selected",n.type==="focusin"?"true":"false")}onOptClick(n,o){o.preventDefault(),this.openMenu(n.menu)}onSubtitlesOptClick(n,o){if(!this.player?.opt?.("subtitles.native"))n.createMenu(0);this.onOptClick(n,o)}onRootClick(n){if(n.composedPath().includes(this))return;this.toggleMenuDialog(!1)}onKeyboardCloseMenu(n){if(n.defaultPrevented)return;if(n.preventDefault(),this.mainMenu.classList.contains("is-close"))return this.openMenu(this.mainMenu);this.toggleMenuDialog(!1),this.summaryEle.focus()}detectSubMenuType(n){if(n.contains("fp-asel"))return 0;if(n.contains("fp-qsel"))return 2;if(n.contains("fp-speed"))return 4;if(n.contains("fp-cc"))return 1;if(n.contains("fp-vsel"))return 3}findSubMenuOptionsEvent(n){switch(n){case 0:return"audio:tracks";case 2:return"quality:tracks";case 4:return"speed:options";case 1:return"subs:tracks";case 3:return"video:tracks";default:return""}}}function tu(n,o,h){let E=new(window.customElements.get("flowplayer-spin-player"));E.setAttribute(h,"");let _=n(E,{...o,preload:"none",autopause:!0,ui:(o.ui??0)|2048|16384|1|(n.support().android?2:0),loop:!0});return _.root.classList.add("is-spins"),CE(_),_}function CE(n){let o=n.root.querySelector("flowplayer-control");if(!o)return;if(!window.customElements.get("flowplayer-menu-dialog"))window.customElements.define("flowplayer-menu-dialog",_l);let h=document.createElement("div");h.classList.add("fp-spin-controls-bar"),o.prepend(h);let v=n.root.querySelector("flowplayer-volume-control");if(v)h.append(v);let E=new _l(n);h.append(E),["flowplayer-subtitles-menu","flowplayer-speed-menu","flowplayer-quality-menu","flowplayer-audio-menu","flowplayer-video-menu"].forEach((_)=>{let R=n.root.querySelector(_);if(R)E.appendMenu(R)})}function nf(n){let{items:o,state:h}=n,v;n.addEventListener("scroll",()=>{clearTimeout(v),v=setTimeout(()=>{let E=Kr();if(E.length<=1)return;let _=xo(n,E),R=h.primarySpinIndex-_;if(!R)return;let{primaryPlayer:A,secondaryPlayer:L}=Tc(n,String(h.primarySpinIndex));if(R>0)IE(n,A,L,_);if(R<0)DE(n,E,o,A,L,_,Math.abs(R));h.primarySpinIndex=_,OE(A,L),Fo(n,E,o.slice(),h)},150)})}function DE(n,o,h,v,E,_,R){if(R===1)n.emit(Bi,{config:h[_],spin:o[_],index:_});if(R>1)Na(n,E,_);if(o.length-1>_)return _n(n,E,v,_+1)}function IE(n,o,h,v){Na(n,h,v),_n(n,h,o,v+1)}function OE(n,o){n.root.setAttribute("next",""),n.root.removeAttribute("current"),o.root.setAttribute("current",""),o.root.removeAttribute("next")}class eu extends HTMLElement{items=[];mainConfig;ima;state={primarySpinIndex:0,spinsLoading:void 0};constructor(){super();this.classList.add("fp-spins-container","init"),nf(this),this.on(Bi,(n)=>{let o=n.detail.index;if(_r(o,!0))return;let v=_r(o,!1);if(!v)return;v?.togglePlay(!0).then(()=>{if(!v.paused)return;v.muted=!0,v.play()})})}init({playlist:n,ima:o,...h}){if(this.items.push(...n),this.mainConfig=h,this.ima=o,!this.ima)return;Object.assign(this.ima,{preload_ads:!0})}maybeCreateAdPlayer(n,o){try{if(!window?.google?.ima)return;if(!this.mainConfig)return;if(!Ar.from_token(this.mainConfig.token||"").is_granted(Ar.permissions.ADS))return;if(!this.ima||!this.ima.ads||!this.ima.ads.length)return;if((n+1)%this.mainConfig.adsFrequency!==0)return;rf(this,_c([]),this.ima,this.mainConfig,n,o)}catch(h){}}addContentPlayers(){if(!this.mainConfig)return;let n=_c(this.mainConfig.plugins),o=tu(n,this.mainConfig,"current"),h=tu(n,this.mainConfig,"next");Na(this,o,0),_n(this,o,h,1),this.classList.remove("init")}addSpins(n){let o=fd.parse(n);if(!o.length)return;if(this.items.push(...o),this.classList.contains("init"))return;Fo(this,Kr(),this.items,this.state)}on(n,o,h){this.addEventListener(n,o,h)}emit(n,o){this.dispatchEvent(new CustomEvent(n,{detail:o}))}off(n,o){this.removeEventListener(n,o)}}async function sf(n){await new Promise((o)=>{if(document.querySelector(".fp-spins-container"))return o(null);let h=new MutationObserver(()=>{if(!document.querySelector(".fp-spins-container"))return;h.disconnect(),o(null)});h.observe(document,{childList:!0,subtree:!0})}),af(n)}function af(n){let o=n.getBoundingClientRect().top;n.style.height=`${window.innerHeight-o}px`}function of(n){window.addEventListener("resize",()=>{af(n)})}class iu extends HTMLElement{constructor(n,o){super();if(this.classList.add("fp-spin"),o.poster)this.style.backgroundImage=`url(${o.poster})`}}lf();if(!window.customElements.get("flowplayer-spin"))window.customElements.define("flowplayer-spin",iu);if(!window.customElements.get("flowplayer-spins-container"))window.customElements.define("flowplayer-spins-container",eu);if(!window.customElements.get("flowplayer-spin-player"))window.customElements.define("flowplayer-spin-player",class extends HTMLElement{});if(!window.customElements.get("flowplayer-ad-player"))window.customElements.define("flowplayer-ad-player",class extends HTMLElement{});function ob(n){let h=new(window.customElements.get("flowplayer-spins-container"));return setTimeout(()=>ME(h,No.parse(n)),0),h}async function ME(n,o){await NE();let h=await Ed(o);n.init(h),await sf(n),await lf(),of(n),await Po(n,n.items.slice(0,5),[]),n.addContentPlayers()}async function NE(){await new Promise((n,o)=>{if(document.getElementById("flowplayer-style-sheet")){n();return}let h=document.createElement("link");h.rel="stylesheet",h.id="flowplayer-style-sheet",h.href="https://cdn.flowplayer.com/releases/native/3/stable/style/flowplayer.css",h.onload=()=>n(),h.onerror=()=>o(new Error("Failed to load stylesheet")),document.head.prepend(h)})}function lf(){let o=document.querySelector('script[src="https://imasdk.googleapis.com/js/sdkloader/ima3.js"]');if(o)return o.loadingPromise;let h=document.createElement("script");return h.src="https://imasdk.googleapis.com/js/sdkloader/ima3.js",h.async=!0,h.loadingPromise=new Promise((v)=>{h.addEventListener("load",()=>v(),{once:!0}),h.addEventListener("error",()=>v(),{once:!0})}),document.head.append(h),h.loadingPromise}export{Qu as events,ob as createSpins};
|