{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/global/window.js","webpack:///./node_modules/react/index.js","webpack:///./node_modules/@videojs/vhs-utils/es/byte-helpers.js","webpack:///./node_modules/global/document.js","webpack:///./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack:///./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack:///./node_modules/keycode/index.js","webpack:///./node_modules/@videojs/vhs-utils/es/codecs.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./node_modules/mpd-parser/dist/mpd-parser.es.js","webpack:///./node_modules/@videojs/vhs-utils/es/media-groups.js","webpack:///./node_modules/@videojs/vhs-utils/es/id3-helpers.js","webpack:///./node_modules/@videojs/vhs-utils/es/resolve-url.js","webpack:///./app/javascript/shared/utils/services/default_headers.js","webpack:///./app/javascript/shared/utils/services/get_token.js","webpack:///(webpack)/buildin/global.js","webpack:///./app/javascript/shared/utils/video.js","webpack:///./node_modules/mux.js/lib/utils/clock.js","webpack:///./node_modules/@videojs/vhs-utils/es/mp4-helpers.js","webpack:///./node_modules/@videojs/vhs-utils/es/opus-helpers.js","webpack:///./node_modules/@videojs/vhs-utils/es/ebml-helpers.js","webpack:///./node_modules/@videojs/vhs-utils/es/nal-helpers.js","webpack:///./node_modules/@videojs/vhs-utils/es/containers.js","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/@xmldom/xmldom/lib/conventions.js","webpack:///./node_modules/@videojs/vhs-utils/es/decode-b64-to-uint8-array.js","webpack:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack:///./app/javascript/shared/icons/Video/index.js","webpack:///./node_modules/@videojs/xhr/lib/index.js","webpack:///./node_modules/videojs-vtt.js/lib/browser-index.js","webpack:///./node_modules/url-toolkit/src/url-toolkit.js","webpack:///./node_modules/@videojs/vhs-utils/es/media-types.js","webpack:///./node_modules/object-assign/index.js","webpack:///./node_modules/@xmldom/xmldom/lib/dom.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/react-dom/index.js","webpack:///./node_modules/video.js/dist/video.es.js","webpack:///./node_modules/safe-json-parse/tuple.js","webpack:///./node_modules/@babel/runtime/helpers/construct.js","webpack:///./node_modules/@babel/runtime/helpers/inherits.js","webpack:///./node_modules/@xmldom/xmldom/lib/index.js","webpack:///./node_modules/mux.js/lib/tools/parse-sidx.js","webpack:///./node_modules/snarkdown/dist/snarkdown.es.js","webpack:///./app/javascript/shared/components/VideoPlayer/options.js","webpack:///./app/javascript/shared/utils/db_to_gain.js","webpack:///./app/javascript/shared/components/VideoPlayer/index.js","webpack:///./app/javascript/shared/components/CPlayer/index.js","webpack:///./node_modules/@videojs/vhs-utils/es/stream.js","webpack:///./node_modules/m3u8-parser/dist/m3u8-parser.es.js","webpack:///./node_modules/react/cjs/react.production.min.js","webpack:///./node_modules/react-dom/cjs/react-dom.production.min.js","webpack:///./node_modules/scheduler/index.js","webpack:///./node_modules/scheduler/cjs/scheduler.production.min.js","webpack:///./node_modules/is-function/index.js","webpack:///./node_modules/@videojs/xhr/lib/http-handler.js","webpack:///./node_modules/videojs-vtt.js/lib/vtt.js","webpack:///./node_modules/videojs-vtt.js/lib/vttcue.js","webpack:///./node_modules/videojs-vtt.js/lib/vttregion.js","webpack:///./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/@xmldom/xmldom/lib/dom-parser.js","webpack:///./node_modules/@xmldom/xmldom/lib/entities.js","webpack:///./node_modules/@xmldom/xmldom/lib/sax.js","webpack:///./node_modules/mux.js/lib/utils/numbers.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./app/javascript/PublicClient/utils/search_params.js","webpack:///./app/javascript/PublicClient/utils/service/view.js","webpack:///./app/javascript/PublicClient/index.js","webpack:///./app/javascript/packs/public.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","win","window","global","self","a","b","padStart","len","str","acc","repeat","toString","slice","isTypedArray","obj","ArrayBuffer","isView","buffer","isArrayBufferView","toUint8","bytes","Uint8Array","Array","isArray","byteOffset","byteLength","toHexString","length","toBinaryString","BigInt","Number","BYTE_TABLE","bytesToNumber","Uint16Array","_temp","_ref","_ref$signed","signed","_ref$le","le","fn","number","total","byte","exponent","Math","abs","max","numberToBytes","_temp2","_ref2$le","x","byteCount","ceil","countBits","byteIndex","bytesToString","string","String","fromCharCode","apply","decodeURIComponent","escape","e","stringToBytes","stringIsBytes","unescape","encodeURIComponent","view","charCodeAt","concatTypedArrays","_len","arguments","buffers","_key","filter","totalLen","reduce","buf","tempBuffer","offset","forEach","set","bytesMatch","_temp3","_ref3","_ref3$offset","_ref3$mask","mask","every","bByte","doccy","minDoc","document","topLevel","setPrototypeOf","subClass","superClass","constructor","ReferenceError","keyCode","searchInput","hasKeyCode","which","charCode","names","foundNamedKey","search","codes","toLowerCase","aliases","isEventKey","event","nameOrCode","undefined","code","title","alias","regexs","mp4","webm","ogg","video","audio","text","muxerVideo","muxerAudio","muxerText","mediaTypes","upperMediaTypes","translateLegacyCodec","codec","replace","orig","profile","avcLevel","parseCodecs","codecString","codecs","split","result","codecType","trim","match","exec","type","substring","details","push","mediaType","codecsFromDefault","master","audioGroupId","mediaGroups","AUDIO","audioGroup","audioType","default","playlists","attributes","CODECS","isAudioCodec","test","getMimeForCodec","map","container","browserSupportsCodec","MediaSource","isTypeSupported","muxerSupportsCodec","DEFAULT_AUDIO_CODEC","DEFAULT_VIDEO_CODEC","val","isUndefined","isObject","isFunction","isArrayBuffer","isBuffer","isFormData","FormData","isString","isNumber","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","navigator","product","merge","assignValue","deepMerge","extend","thisArg","_extends","assign","target","source","this","objects","keys","concat","values","k","flatten","lists","y","from","list","findIndex","matchingFunction","errors","_ref$baseUrl","baseUrl","_ref$source","_ref$range","range","_ref$indexRange","indexRange","segment","uri","resolvedUri","ranges","startRange","parseInt","endRange","MAX_SAFE_INTEGER","byterange","parseEndNumber","endNumber","isNaN","segmentRange","static","duration","_attributes$timescale","timescale","sourceDuration","periodDuration","segmentDuration","start","end","dynamic","NOW","clientOffset","availabilityStartTime","_attributes$timescale2","_attributes$periodSta","periodStart","_attributes$minimumUp","minimumUpdatePeriod","_attributes$timeShift","timeShiftBufferDepth","Infinity","now","periodStartWC","segmentCount","availableStart","floor","availableEnd","min","parseByDuration","_attributes$timescale4","_segmentRange$type","segments","_attributes$timescale3","_attributes$startNumb","startNumber","timeline","time","toSegments","index","sectionDuration","segmentsFromBase","_attributes$initializ","initialization","_attributes$indexRang","presentationTime","_attributes$number","Error","initSegment","sourceURL","segmentTimeInfo","addSidxSegmentsToPlaylist$1","playlist","sidx","startIndex","sidxByteRange","sidxEnd","mediaReferences","references","referenceType","endList","mediaSequence","firstOffset","reference","size","referencedSize","subsegmentDuration","endIndex","SUPPORTED_MEDIA_TYPES","getUniqueTimelineStarts","timelineStarts","keyFunction","el","sort","manifest","callback","mediaGroupPlaylists","properties","group","label","groupKey","labelKey","mediaProperties","updateMediaSequenceForPlaylist","_ref2","positionManifestOnTimeline","_ref5","oldManifest","newManifest","oldPlaylists","newPlaylists","discontinuitySequence","_ref4","oldPlaylist","NAME","findPlaylistWithName","firstNewSegment","oldMatchingSegmentIndex","oldSegment","discontinuity","discontinuityStarts","unshift","updateSequenceNumbers","generateSidxKey","mergeDiscontiguousPlaylists","id","lang","_acc$name$segments","contentProtection","sidxMapping","sidxKey","sidxMatch","addSidxSegmentsToPlaylists","formatVideoPlaylist","_attributes2","SUBTITLES","RESOLUTION","width","height","BANDWIDTH","bandwidth","targetDuration","videoOnly","mimeType","contentType","audioOnly","vttOnly","_ref6","flattenMediaGroupPlaylists","mediaGroupObject","labelContents","toM3u8","_ref8","_mediaGroups","dashPlaylists","locations","_ref8$sidxMapping","previousManifest","_dashPlaylists$0$attr","suggestedPresentationDelay","videoPlaylists","audioPlaylists","vttPlaylists","captions","captionServices","Boolean","allowCache","VIDEO","isAudioOnly","organizedAudioGroup","mainPlaylist","formattedPlaylists","role","language","roleLabel","autoselect","formatted","_attributes","formatAudioPlaylist","organizeAudioPlaylists","organizedVttGroup","_m3u8Attributes","m3u8Attributes","formatVttPlaylist","organizeVttPlaylists","playlistTimelineStarts","_ref9","_ref7","subs","cc","svcObj","svc","service","channel","instreamId","aspectRatio","easyReader","getLiveRValue","parseByTimeline","segmentTimeline","_attributes$minimumUp2","_attributes$media","media","sIndex","S","segmentTime","count","nextS","indexOf","identifierPattern","constructTemplateUrl","url","identifier","format","join","identifierReplacement","templateValues","RepresentationID","Bandwidth","mapSegment","parseTemplateInfo","Time","presentationTimeOffset","segmentsFromList","_attributes$segmentUr","segmentUrls","segmentUrlMap","segmentUrlObject","segmentUrl","mediaRange","SegmentURLToSegmentObject","generateSegments","segmentAttributes","segmentsFn","segmentInfo","template","base","segmentsInfo","_segmentAttributes","_segmentAttributes$ti","findChildren","element","childNodes","tagName","getContent","textContent","parseDuration","_match$slice","year","month","day","hour","minute","second","parseFloat","parsers","mediaPresentationDuration","Date","parse","parsedValue","DEFAULT","parseAttributes","parseFn","keySystemsMap","referenceUrls","baseUrlElements","baseUrlElement","getSegmentInformation","adaptationSet","segmentTemplate","segmentList","tag","segmentBase","segmentTimelineParentNode","segmentInitializationParentNode","segmentInitialization","toRepresentations","periodAttributes","periodBaseUrls","periodSegmentInfo","adaptationSetAttributes","adaptationSetBaseUrls","roleAttributes","attrs","accessibility","schemeIdUri","_value$split","flags","_value$split2","_value$split2$","opts","opt","_opt$split","labelVal","nodeValue","node","keySystem","psshNode","pssh","psshBuffer","representations","adaptationSetSegmentInfo","representation","repBaseUrlElements","repBaseUrls","representationSegmentInfo","inheritBaseUrls","toAdaptationSets","mpdAttributes","mpdBaseUrls","period","adaptationSets","manifestString","xml","mpd","parser","parseFromString","documentElement","getElementsByTagName","options","parsedManifestInfo","_options","_options$manifestUri","manifestUri","_options$NOW","_options$clientOffset","periodNodes","periods","priorPeriod","priorPeriodAttributes","mpdType","getPeriodStart","representationInfo","inheritAttributes","parseUTCTiming","UTCTimingNode","method","parseUTCTimingScheme","ID3","getId3Offset","returnSize","getId3Size","relativeUrl","location","href","nativeURL","URL","protocolLess","removeLocation","buildAbsoluteURL","newUrl","protocol","defaultHeaders","querySelector","content","g","Function","hasSources","getMp4","hls","getHls","getPoster","images","is_poster","original","secondsToVideoTs","secondsToAudioTs","videoTsToSeconds","audioTsToSeconds","audioTsToVideoTs","videoTsToAudioTs","metadataTsToSeconds","seconds","sampleRate","timestamp","timelineStartPts","keepOriginalTimestamps","ONE_SECOND_IN_TS","DESCRIPTORS","path","results","headerSize","z","_DESCRIPTORS$z","subarray","desc","dependsOnEsId","ocrEsId","descriptors","oti","streamType","bufferSize","maxBitrate","avgBitrate","findBox","paths","complete","normalizePaths","data","EBML_TAGS","EBML","DocType","Segment","SegmentInfo","Tracks","Track","TrackNumber","DefaultDuration","TrackEntry","TrackType","FlagDefault","CodecID","CodecPrivate","VideoTrack","AudioTrack","Cluster","Timestamp","TimestampScale","BlockGroup","BlockDuration","Block","SimpleBlock","LENGTH_TABLE","removeLength","getLength","valueBytes","normalizePath","getInfinityDataSize","innerid","dataHeader","findEbml","dataStart","dataEnd","NAL_TYPE_ONE","NAL_TYPE_TWO","EMULATION_PREVENTION","positions","newLength","newData","sourceIndex","shift","dataType","types","nalLimit","nalStart","nalsFound","nalOffset","nalType","CONSTANTS","_isLikely","aac","mp3","docType","mkv","matroska","mov","fmp4","moof","moov","ac3","ts","flac","avi","riff","wav","findH264Nal","findH265Nal","isLikelyTypes","isLikelyFn","isLikely","freeze","oc","MIME_TYPE","HTML","isHTML","XML_APPLICATION","XML_TEXT","XML_XHTML_APPLICATION","XML_SVG_IMAGE","NAMESPACE","SVG","XML","XMLNS","decodeB64ToUint8Array","b64Text","decodedString","atob","Buffer","array","_setPrototypeOf","__proto__","Video","props","viewBox","className","createXHR","httpHandler","initParams","params","_createXHR","called","err","response","body","getBody","xhr","responseText","responseType","responseXML","firefoxBugTakenEffect","nodeName","getXml","isJson","JSON","errorFunc","evt","clearTimeout","timeoutTimer","statusCode","failureResponse","loadFunc","aborted","status","useXDR","headers","rawRequest","getAllResponseHeaders","row","parseHeaders","cors","XDomainRequest","XMLHttpRequest","sync","json","stringify","onreadystatechange","readyState","setTimeout","onload","onerror","onprogress","onabort","ontimeout","open","username","password","withCredentials","timeout","abort","setRequestHeader","isEmpty","beforeSend","send","iterator","forEachArray","toUpperCase","vttjs","WebVTT","VTTCue","VTTRegion","cueShim","regionShim","nativeVTTCue","nativeVTTRegion","shim","restore","URL_REGEX","FIRST_SEGMENT_REGEX","SLASH_DOT_REGEX","SLASH_DOT_DOT_REGEX","URLToolkit","baseURL","relativeURL","alwaysNormalize","basePartsForNormalise","parseURL","buildURLFromParts","relativeParts","scheme","baseParts","netLoc","pathParts","builtParts","query","fragment","baseURLPath","newPath","lastIndexOf","parts","reverse","MPEGURL_REGEX","DASH_REGEX","simpleTypeFromSourceType","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","toObject","TypeError","test1","getOwnPropertyNames","test2","test3","letter","shouldUseNative","symbols","to","notEmptyString","input","orderedSetReducer","current","toOrderedSet","splitOnASCIIWhitespace","copy","src","dest","Class","Super","pt","console","error","NodeType","ELEMENT_NODE","ATTRIBUTE_NODE","TEXT_NODE","CDATA_SECTION_NODE","ENTITY_REFERENCE_NODE","ENTITY_NODE","PROCESSING_INSTRUCTION_NODE","COMMENT_NODE","DOCUMENT_NODE","DOCUMENT_TYPE_NODE","DOCUMENT_FRAGMENT_NODE","NOTATION_NODE","ExceptionCode","ExceptionMessage","HIERARCHY_REQUEST_ERR","INDEX_SIZE_ERR","DOMSTRING_SIZE_ERR","NOT_FOUND_ERR","WRONG_DOCUMENT_ERR","INVALID_CHARACTER_ERR","NO_DATA_ALLOWED_ERR","NO_MODIFICATION_ALLOWED_ERR","INUSE_ATTRIBUTE_ERR","NOT_SUPPORTED_ERR","INVALID_STATE_ERR","SYNTAX_ERR","INVALID_MODIFICATION_ERR","NAMESPACE_ERR","INVALID_ACCESS_ERR","DOMException","message","captureStackTrace","NodeList","LiveNodeList","refresh","_node","_refresh","_updateLiveList","inc","_inc","ownerDocument","ls","__set__","NamedNodeMap","_findNodeIndex","_addNamedNode","newAttr","oldAttr","ownerElement","doc","_onRemoveAttribute","namespaceURI","_nsMap","prefix","localName","_onAddAttribute","_removeNamedNode","attr","lastIndex","DOMImplementation","Node","_xmlEncoder","_visitNode","firstChild","nextSibling","Document","remove","_onUpdateChild","newChild","cs","child","_removeChild","parentNode","previous","previousSibling","next","lastChild","_insertBefore","nextChild","cp","removeChild","nodeType","newFirst","newLast","pre","Element","Attr","CharacterData","Text","Comment","CDATASection","DocumentType","Notation","Entity","EntityReference","DocumentFragment","ProcessingInstruction","XMLSerializer","nodeSerializeToString","isHtml","nodeFilter","refNode","lookupPrefix","visibleNamespaces","namespace","serializeToString","needNamespaceDefine","addSerializedAttribute","qualifiedName","prefixedNodeName","defaultNS","ai","item","nsi","pubid","publicId","sysid","systemId","sub","internalSubset","getNamedItem","setNamedItem","_ownerElement","setNamedItemNS","getNamedItemNS","removeNamedItem","removeNamedItemNS","hasFeature","feature","version","createDocument","doctype","implementation","appendChild","root","createElementNS","createDocumentType","insertBefore","refChild","replaceChild","oldChild","hasChildNodes","cloneNode","deep","node2","v","attrs2","setAttributeNode","normalize","appendData","isSupported","hasAttributes","lookupNamespaceURI","isDefaultNamespace","importNode","importedNode","getElementById","rtv","getAttribute","getElementsByClassName","classNames","classNamesSet","nodeClassNames","matches","nodeClassNamesSet","createElement","createDocumentFragment","createTextNode","createComment","createCDATASection","createProcessingInstruction","createAttribute","specified","createEntityReference","pl","createAttributeNS","hasAttribute","getAttributeNode","setAttribute","removeAttribute","removeAttributeNode","_appendSingleChild","setAttributeNodeNS","removeAttributeNS","old","getAttributeNodeNS","hasAttributeNS","getAttributeNS","setAttributeNS","getElementsByTagNameNS","substringData","insertData","replaceData","deleteData","splitText","newText","newNode","$$length","getTextContent","args","utils","encode","paramsSerializer","serializedParams","toISOString","hashmarkIndex","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","adapter","defaults","process","transformRequest","transformResponse","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","common","settle","buildURL","buildFullPath","isURLSameOrigin","createError","config","Promise","resolve","reject","requestData","requestHeaders","request","auth","Authorization","btoa","fullPath","responseURL","responseHeaders","statusText","timeoutErrorMessage","cookies","xsrfValue","read","onDownloadProgress","addEventListener","onUploadProgress","upload","cancelToken","promise","then","cancel","enhanceError","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","prop","axiosKeys","otherKeys","Cancel","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","browserApi","hooks_","hooks","removeHook","splice","FullscreenApi","prefixed","apiMap","specApi","_i","history","log$1","createLogger$1","logByType","level","log","lvl","levels","lvlRegExp","RegExp","info","LogByTypeFactory","createLogger","subname","all","off","debug","warn","fname","historyItem","clear","disable","enable","_len2","_key2","_len3","_key3","_len4","_key4","each","sources","isPlain","computedStyle","getComputedStyle","computedStyleValue","getPropertyValue","USER_AGENT","userAgent","webkitVersionMap","appleWebkitVersion","pop","IS_IPOD","IOS_VERSION","IS_ANDROID","ANDROID_VERSION","major","minor","IS_NATIVE_ANDROID","IS_FIREFOX","IS_EDGE","IS_CHROME","CHROME_VERSION","IE_VERSION","IS_SAFARI","IS_WINDOWS","TOUCH_ENABLED","isReal","maxTouchPoints","DocumentTouch","IS_IPAD","IS_IPHONE","IS_IOS","IS_ANY_SAFARI","browser","isNonBlankString","throwIfWhitespace","isEl","isInFrame","parent","createQuerier","selector","context","ctx","createEl","propName","attrName","appendContent","innerText","prependTo","hasClass","classToCheck","classList","contains","addClass","classToAdd","add","removeClass","classToRemove","toggleClass","classToToggle","predicate","has","setAttributes","attrValue","getAttributes","knownBooleans","attrVal","attribute","blockTextSelection","focus","onselectstart","unblockTextSelection","getBoundingClientRect","rect","findPosition","offsetParent","left","top","offsetWidth","offsetHeight","fullscreenElement","offsetLeft","offsetTop","getPointerPosition","translated","transform","_values","position","boxTarget","box","boxW","boxH","offsetY","offsetX","changedTouches","pageX","pageY","isTextNode","emptyEl","normalizeContent","insertContent","isSingleLeftClick","button","buttons","videojs$1","$","$$","Dom","_windowLoaded","autoSetup","vids","audios","divs","mediaEls","mediaEl","autoSetupTimeout","player","wait","vjs","setWindowLoaded","removeEventListener","FakeWeakMap","createStyleElement","style","setTextContent","styleSheet","cssText","_guid","newGUID","WeakMap","vdata","performance","_proto","access","_supportsPassive","DomData","_cleanUpEvents","elem","handlers","dispatcher","detachEvent","disabled","_handleMultipleEvents","fixEvent","fixed_","returnTrue","returnFalse","isPropagationStopped","isImmediatePropagationStopped","preventDefault","srcElement","relatedTarget","fromElement","toElement","returnValue","defaultPrevented","stopPropagation","cancelBubble","stopImmediatePropagation","clientX","scrollLeft","clientLeft","clientY","scrollTop","clientTop","passiveEvents","on","guid","hash","handlersCopy","supportsPassive","passive","attachEvent","removeType","trigger","elemData","bubbles","targetData","one","func","any","EVENT_MAP","Events","uid","bound","throttle","last","EventTarget$2","allowedEvents_","ael","dispatchEvent","queueTrigger","_this","Map","oldTimeout","objName","name_","isEvented","eventBusEl_","isValidEventType","validateTarget","fnName","validateEventType","validateListener","listener","normalizeListenArgs","isTargetingSelf","listen","EventedMixin","_normalizeListenArgs","removeListenerOnDispose","removeRemoverOnTargetDispose","_this2","_normalizeListenArgs2","wrapper","largs","_this3","_normalizeListenArgs3","_len5","_key5","targetOrType","typeOrListener","evented","eventBusKey","eventedCallbacks","el_","StatefulMixin","state","setState","stateUpdates","changes","stateful","defaultState","handleStateChanged","w","toTitleCase$1","mergeOptions$3","MapSham","map_","Map$1","SetSham","set_","Set","Component$1","Component","ready","play","player_","isDisposed_","parentComponent_","options_","id_","handleLanguagechange","children_","childIndex_","childNameIndex_","setTimeoutIds_","setIntervalIds_","rafIds_","namedRafs_","clearingTimersOnDispose_","initChildren","reportTouchActivity","enableTouchActivity","dispose","readyQueue_","isDisposed","localize","tokens","defaultValue","languages","primaryCode","primaryLang","localizedString","ret","contentEl","contentEl_","children","getChildById","getChild","getDescendant","currentChild","addChild","component","componentName","componentClassName","componentClass","ComponentClass","getComponent","childFound","compEl","workingChildren","parentOptions","Tech","some","wchild","isTech","playerOptions","buildCSSClass","isReady_","triggerReady","readyQueue","show","hide","lockShowing","unlockShowing","num","skipListeners","dimension","dimensions","widthOrHeight","pxIndex","currentDimension","computedWidthOrHeight","rule","currentDimensions","currentWidth","currentHeight","blur","handleKeyDown","handleKeyPress","emitTapEvents","couldBeTap","touchStart","firstTouch","touches","xdiff","ydiff","sqrt","noTap","reportUserActivity","touchHolding","report","clearInterval","setInterval","touchEnd","timeoutId","clearTimersOnDispose_","interval","intervalId","requestAnimationFrame","supportsRaf_","requestNamedAnimationFrame","_this4","cancelNamedAnimationFrame","cancelAnimationFrame","_this5","idName","cancelName","registerComponent","ComponentToRegister","reason","isComp","isPrototypeOf","components_","Player","players","playerNames","pname","getRange","valueIndex","rangeIndex","maxIndex","rangeCheck","createTimeRangesObj","timeRangesObj","createTimeRanges","bufferedPercent","buffered","bufferedDuration","MediaError","defaultMessages","errorTypes","1","2","3","4","5","errNum","isPromise","silencePromise","trackToJson_","track","cues","cue","startTime","endTime","textTrackConverter","tech","trackEls","trackObjs","trackEl","textTracks","addedTrack","addRemoteTextTrack","addCue","ModalDialog","_Component","handleKeyDown_","close_","close","opened_","hasBeenOpened_","hasBeenFilled_","closeable","uncloseable","MODAL_CLASS_NAME","descEl_","description","tabIndex","previouslyActiveEl_","fillAlways","fill","wasPlaying_","paused","pauseOnOpen","pause","hadControls_","controls","conditionalFocus_","opened","conditionalBlur_","temporary","closeable_","temp","controlText","fillWith","parentEl","nextSiblingEl","empty","closeButton","content_","activeEl","activeElement","playerEl","focusIndex","focusableEls","focusableEls_","shiftKey","allChildren","querySelectorAll","HTMLAnchorElement","HTMLAreaElement","HTMLInputElement","HTMLSelectElement","HTMLTextAreaElement","HTMLButtonElement","HTMLIFrameElement","HTMLObjectElement","HTMLEmbedElement","TrackList","_EventTarget","tracks","tracks_","addTrack","labelchange_","removeTrack","rtrack","getTrackById","change","addtrack","removetrack","labelchange","disableOthers$1","enabled","AudioTrackList","_TrackList","changing_","enabledChange_","disableOthers","selected","VideoTrackList","selectedChange_","TextTrackList","queueChange_","triggerSelectedlanguagechange","triggerSelectedlanguagechange_","kind","selectedlanguagechange_","HtmlTrackElementList","trackElements","trackElements_","addTrackElement_","trackElement","getTrackElementByTrack_","trackElement_","removeTrackElement_","TextTrackCueList","setCues_","length_","oldLength","cues_","defineProp","getCueById","VideoTrackKind","alternative","main","sign","subtitles","commentary","AudioTrackKind","TextTrackKind","descriptions","chapters","metadata","TextTrackMode","hidden","showing","trackProps","_loop","newLabel","parseUrl","host","getAbsoluteURL","getFileExtension","isCrossOrigin","winLoc","urlInfo","Url","parseCues","srcContent","Parser","StringDecoder","oncue","onparsingerror","onflush","groupCollapsed","groupEnd","flush","loadTrack","crossOrigin","tech_","responseBody","loaded_","TextTrack","_Track","settings","srclang","default_","activeCues_","preload_","preloadTextTracks","activeCues","changed","timeupdateHandler","defineProperties","newMode","ct","currentTime","active","originalCue","originalCue_","removeCue","_removeCue","cuechange","newEnabled","newSelected","HTMLTrackElement","load","NONE","LOADING","LOADED","ERROR","NORMAL","ListClass","TrackClass","capitalName","getterName","privateName","REMOTE","remoteText","remoteTextEl","ALL","onDurationChange_","onDurationChange","trackProgress_","trackProgress","trackCurrentTime_","trackCurrentTime","stopTrackingCurrentTime_","stopTrackingCurrentTime","disposeSourceHandler_","disposeSourceHandler","hasStarted_","featuresProgressEvents","manualProgressOn","featuresTimeupdateEvents","manualTimeUpdatesOn","nativeCaptions","nativeTextTracks","featuresNativeTextTracks","emulateTextTracks","autoRemoteTextTracks_","initTrackListeners","nativeControlsForTouch","triggerSourceset","manualProgress","manualProgressOff","stopTrackingProgress","progressInterval","numBufferedPercent","bufferedPercent_","duration_","manualTimeUpdates","manualTimeUpdatesOff","currentTimeInterval","manuallyTriggered","clearTracks","removeRemoteTextTrack","cleanupAutoTextTracks","reset","setCrossOrigin","error_","played","setScrubbing","scrubbing","setCurrentTime","trackListChanges","addWebVttScript_","script","_this6","remoteTracks","remoteTextTracks","handleAddTrack","handleRemoveTrack","updateDisplay","textTracksChanges","addTextTrack","createTrackHelper","createRemoteTextTrack","manualCleanup","_this7","htmlTrackElement","remoteTextTrackEls","getVideoPlaybackQuality","requestPictureInPicture","PromiseClass","disablePictureInPicture","setDisablePictureInPicture","setPoster","playsinline","setPlaysinline","overrideNativeAudioTracks","overrideNativeVideoTracks","canPlayType","canPlaySource","srcObj","registerTech","techs_","defaultTechOrder_","getTech","videojs","featuresVolumeControl","featuresMuteControl","featuresFullscreenResize","featuresPlaybackRate","featuresSourceset","withSourceHandlers","_Tech","registerSourceHandler","handler","sourceHandlers","can","selectSourceHandler","canHandleSource","sh","originalFn","sourceHandler_","setSource","nativeSourceHandler","currentSource_","handleSource","middlewares","middlewareInstances","TERMINATOR","setSourceHelper","middleware","lastRun","_middleware","mwFactory","mwrest","mw","mws","_mws$i","mwf","mwi","getOrCreateFactory","_src","mediate","arg","callMethod","middlewareValue","middlewareIterator","terminated","executeRight","allowedGetters","muted","seekable","volume","ended","allowedSetters","setMuted","setVolume","allowedMediators","MimetypesKind","opus","ogv","m4v","m4a","caf","oga","m3u8","jpg","jpeg","gif","png","svg","webp","getMimetype","ext","fixSource","mimetype","MediaLoader","j","techOrder","techName","loadTech_","ClickableComponent","handleMouseOver_","handleMouseOver","handleMouseOut_","handleMouseOut","handleClick_","handleClick","tabIndex_","createControlTextEl","controlTextEl_","controlText_","localizedText","nonIconControl","noUITitleAttributes","enabled_","clickHandler","PosterImage","_ClickableComponent","update","update_","poster","setSrc","backgroundImage","sourceIsEncrypted","usingPlugin","eme","sessions","fontMap","monospace","sansSerif","serif","monospaceSansSerif","monospaceSerif","proportionalSansSerif","proportionalSerif","casual","smallcaps","constructColor","color","opacity","hex","tryUpdateStyle","TextTrackDisplay","updateDisplayHandler","toggleDisplay","preselectTrack","firstDesc","firstCaptions","preferredTrack","modes","trackList","userPref","cache_","selectedLanguage","clearDisplay","processCues","allowMultipleShowingTracks","showingTracks","updateForTrack","descriptionsTrack","captionsSubtitlesTrack","_track","updateDisplayState","overrides","textTrackSettings","getValues","cueDiv","displayState","textOpacity","backgroundColor","backgroundOpacity","windowColor","windowOpacity","edgeStyle","textShadow","fontPercent","fontSize","fontFamily","fontVariant","_i2","_track2","_j","cueEl","LoadingSpinner","isAudio","playerType","dir","Button","BigPlayButton","_Button","mouseused_","handleMouseDown","playPromise","cb","playToggle","playFocus","CloseButton","PlayToggle","replay","handlePlay","handlePause","handleEnded","handleSeeked","defaultImplementation","guide","h","gm","gh","formatTime","TimeDisplay","updateContent","updateTextNode_","span","labelText_","textNode_","formattedTime_","oldNode","CurrentTimeDisplay","_TimeDisplay","getCache","DurationDisplay","TimeDivider","div","RemainingTimeDisplay","displayNegative","remainingTimeDisplay","remainingTime","LiveDisplay","updateShowing","SeekToLive","updateLiveEdgeStatus","liveTracker","updateLiveEdgeStatusHandler_","textEl_","atLiveEdge","seekToLiveEdge","clamp","Slider","handleMouseDown_","handleMouseUp_","handleMouseUp","handleMouseMove_","handleMouseMove","bar","barName","vertical","playerEvent","progress","getProgress","progress_","sizeKey","toFixed","getPercent","calculateDistance","stepBack","stepForward","bool","vertical_","percentify","LoadProgressBar","partEls_","loadedText","separator","percentageEl_","isLive","seekableEnd","bufferedEnd","percent","percent_","part","dataset","TimeTooltip","seekBarRect","seekBarPoint","tooltipRect","playerRect","seekBarPointPx","spaceLeftOfPoint","spaceRightOfPoint","right","pullTooltipBy","round","write","updateTime","liveWindow","secondsBehind","PlayProgressBar","timeTooltip","MouseTimeDisplay","SeekBar","_Slider","setEventHandlers_","updateInterval","enableIntervalHandler_","enableInterval_","disableIntervalHandler_","disableInterval_","toggleVisibility_","visibilityState","getCurrentTime_","liveCurrentTime","currentTime_","userSeek_","nextSeekedFromUser","seekableStart","videoWasPlaying","mouseDown","newTime","distance","mouseTimeDisplay","handleAction","gotoFraction","STEP_SECONDS","ProgressControl","throttledHandleMouseSeek","handleMouseSeek","handleMouseUpHandler_","handleMouseDownHandler_","seekBar","playProgressBar","seekBarEl","removeListenersAddedOnMousedownAndTouchstart","PictureInPictureToggle","handlePictureInPictureChange","handlePictureInPictureEnabledChange","pictureInPictureEnabled","isInPictureInPicture","exitPictureInPicture","FullscreenToggle","handleFullscreenChange","fsApi_","fullscreenEnabled","isFullscreen","exitFullscreen","requestFullscreen","VolumeLevel","VolumeLevelTooltip","rangeBarRect","rangeBarPoint","volumeBarPointPx","updateVolume","MouseVolumeLevelDisplay","bottom","VolumeBar","updateLastVolume_","updateARIAAttributes","mouseVolumeLevelDisplay","volumeBarEl","volumeBarRect","volumeBarPoint","checkMuted","ariaValue","volumeAsPercentage_","volumeBeforeDrag","lastVolume_","VolumeControl","volumeBar","checkVolumeSupport","throttledHandleMouseMove","orientationClass","MuteToggle","checkMuteSupport","vol","lastVolume","volumeToSet","updateIcon_","updateControlText_","VolumePanel","inline","volumeControl","handleKeyPressHandler_","volumePanelState_","muteToggle","handleVolumeControlKeyUp","sliderActive_","sliderInactive_","Menu","menuButton_","menuButton","focusedChild_","boundHandleBlur_","handleBlur","boundHandleTapClick_","handleTapClick","addEventListenerForItem","removeEventListenerForItem","addItem","childComponent","contentElType","append","btn","buttonPressed_","unpressButton","childComponents","foundComponent","stepChild","MenuButton","buttonClass","handleMenuKeyUp_","handleMenuKeyUp","menu","handleMouseLeave","handleSubmenuKeyDown","createMenu","items","hideThreshold_","titleEl","titleComponent","createItems","buildWrapperCSSClass","menuButtonClass","pressButton","handleSubmenuKeyPress","TrackButton","_MenuButton","updateHandler","MenuKeys","MenuItem","selectable","isSelected_","multiSelectable","_selected","TextTrackMenuItem","_MenuItem","kinds","changeHandler","handleTracksChange","selectedLanguageChangeHandler","handleSelectedLanguageChange","onchange","Event","createEvent","initEvent","referenceTrack","shouldBeSelected","OffTextTrackMenuItem","_TextTrackMenuItem","allHidden","TextTrackButton","_TrackButton","TrackMenuItem","label_","kinds_","kind_","ChaptersTrackMenuItem","ChaptersButton","_TextTrackButton","track_","setTrack","findChaptersTrack","updateHandler_","remoteTextTrackEl","_remoteTextTrackEl","getMenuCaption","mi","DescriptionsButton","SubtitlesButton","CaptionSettingsMenuItem","CaptionsButton","SubsCapsMenuItem","parentSpan","SubsCapsButton","language_","AudioTrackMenuItem","audioTracks","featuresNativeAudioTracks","AudioTrackButton","PlaybackRateMenuItem","rate","playbackRate","PlaybackRateMenuButton","labelElId_","updateVisibility","updateLabel","handlePlaybackRateschange","labelEl_","rates","playbackRates","currentRate","newIndex","playbackRateSupported","Spacer","CustomControlSpacer","_Spacer","ControlBar","ErrorDisplay","_ModalDialog","COLOR_BLACK","COLOR_BLUE","COLOR_CYAN","COLOR_GREEN","COLOR_MAGENTA","COLOR_RED","COLOR_WHITE","COLOR_YELLOW","OPACITY_OPAQUE","OPACITY_SEMI","OPACITY_TRANS","selectConfigs","parseOptionValue","TextTrackSettings","endDialog","setDefaults","persistTextTrackSettings","saveSettings","restoreSettings","createElSelect_","legendId","selectLabelledbyIds","optionId","createElFgColor_","createElBgColor_","createElWinColor_","createElColors_","innerHTML","createElFont_","createElControls_","defaultsDescription","initial","accum","selectedIndex","setValues","setSelectedOption","localStorage","getItem","setItem","removeItem","ttDisplay","controlBar","subsCapsBtn","subsCapsButton","ccBtn","captionsButton","ResizeManager","RESIZE_OBSERVER_AVAILABLE","ResizeObserver","loadListener_","resizeObserver_","debouncedHandler_","immediate","debounced","_later","debounce","resizeHandler","observe","contentWindow","unloadListener_","unobserve","disconnect","resizeObserver","trackingThreshold","liveTolerance","LiveTracker","handleVisibilityChange_","handleVisibilityChange","trackLiveHandler_","trackLive_","handlePlay_","handleFirstTimeupdate_","handleFirstTimeupdate","handleSeeked_","seekToLiveEdge_","reset_","handleDurationchange","toggleTracking","stopTracking","startTracking","deltaTime","lastTime_","pastSeekEnd_","pastSeekEnd","isBehind","seekedBehindLive_","timeupdateSeen_","behindLiveEdge_","liveui","isTracking","hasStarted","trackingInterval_","timeDiff","nextSeekedFromUser_","lastSeekEnd_","seekableEnds","seekableStarts","behindLiveEdge","sourcesetLoad","srcUrls","innerHTMLDescriptorPolyfill","dummy","docFrag","getDescriptor","priority","descriptor","getOwnPropertyDescriptor","configurable","firstSourceWatch","resetSourceWatch_","innerDescriptor","HTMLMediaElement","getInnerHTMLDescriptor","appendWrapper","appendFn","retval","srcDescriptorPolyfill","setupSourceset","resetSourceset_","srcDescriptor","getSrcDescriptor","oldSetAttribute","oldLoad","currentSrc","defineLazyProperty","getValue","setter","writable","Html5","crossoriginTracks","initNetworkState_","handleLateInit_","enableSourceset","setupSourcesetHandling_","isScrubbing_","nodes","nodesLength","removeNodes","proxyNativeTracks_","restoreMetadataTracksInIOSNativePlayer_","setControls","proxyWebkitFullscreen_","disposeMediaElement","metadataTracksPreFullscreenState","takeMetadataTrackSnapshot","storedMode","restoreTrackMode","storedTrack","overrideNative_","override","lowerCaseType","eventName","proxyNativeTracksForType_","elTracks","techTracks","listeners","currentTarget","removeOldTracks","removeTracks","found","playerElIngest","movingMediaElementInDOM","clone","techId","playerId","preload","settingsAttrs","networkState","loadstartFired","setLoadstartFired","triggerLoadstart","eventsToTrigger","isScrubbing","fastSeek","checkProgress","NaN","endFn","beginFn","webkitPresentationMode","nativeIOSFullscreen","supportsFullScreen","webkitEnterFullScreen","enterFullScreen","HAVE_METADATA","exitFullScreen","webkitDisplayingFullscreen","webkitExitFullScreen","resetMediaElement","videoPlaybackQuality","webkitDroppedFrameCount","webkitDecodedFrameCount","droppedVideoFrames","totalVideoFrames","creationTime","timing","navigationStart","TEST_VID","canControlVolume","canControl","canMuteVolume","canControlPlaybackRate","canOverrideAttributes","noop","supportsNativeTextTracks","supportsNativeVideoTracks","videoTracks","supportsNativeAudioTracks","patchCanPlayType","unpatchCanPlayType","TECH_EVENTS_RETRIGGER","TECH_EVENTS_QUEUE","canplay","canplaythrough","playing","seeked","BREAKPOINT_ORDER","BREAKPOINT_CLASSES","charAt","DEFAULT_BREAKPOINTS","tiny","xsmall","small","medium","large","xlarge","huge","getTagSettings","closest","boundDocumentFullscreenChange_","documentFullscreenChange_","boundFullWindowOnEscKey_","fullWindowOnEscKey","boundUpdateStyleEl_","updateStyleEl_","boundApplyInitTime_","applyInitTime_","boundUpdateCurrentBreakpoint_","updateCurrentBreakpoint_","boundHandleTechClick_","handleTechClick_","boundHandleTechDoubleClick_","handleTechDoubleClick_","boundHandleTechTouchStart_","handleTechTouchStart_","boundHandleTechTouchMove_","handleTechTouchMove_","boundHandleTechTouchEnd_","handleTechTouchEnd_","boundHandleTechTap_","handleTechTap_","isFullscreen_","isPosterFromTech_","queuedCallbacks_","userActive_","debugEnabled_","tagAttributes","languagesToLower","languages_","resetCache_","poster_","controls_","changingSrc_","playCallbacks_","playTerminatedQueue_","autoplay","plugins","scrubbing_","fullscreenchange","fluid_","playerOptionsCopy","middleware_","flexNotSupported_","majorVersion","userActive","listenForUserActivity_","handleStageClick_","breakpoints","responsive","styleEl_","playerElIngest_","divEmbed","tabindex","VIDEOJS_NO_DYNAMIC_STYLE","defaultsStyleEl","head","fill_","fluid","crossorigin","links","linkEl","techGet_","techCall_","_dimension","privDimension","parsedVal","ratio","aspectRatio_","idClass","ratioParts","videoWidth","videoHeight","ratioMultiplier","width_","height_","_width","_height","techEl","unloadTech_","titleTechName","camelTechName","techName_","normalizeAutoplay","techOptions","loop","techCanOverridePoster","TechClass","handleTechReady_","textTracksJson_","eventObj","seeking","handleTechLoadStart_","handleTechSourceset_","handleTechWaiting_","handleTechEnded_","handleTechSeeking_","handleTechPlay_","handleTechFirstPlay_","handleTechPause_","handleTechDurationChange_","handleTechFullscreenChange_","handleTechFullscreenError_","handleTechEnterPictureInPicture_","handleTechLeavePictureInPicture_","handleTechError_","handleTechPosterChange_","handleTechTextData_","handleTechRateChange_","usingNativeControls","addTechControlsListeners_","safety","removeTechControlsListeners_","manualAutoplay_","resolveMuted","previouslyMuted","restoreMuted","mutedPromise","updateSourceCaches_","matchingSources","findMimetype","sourceElSources","sourceEls","matchingSourceEls","sourceObj","updateSourceCaches","playerSrc","currentSource","eventSrc","lastSource_","techSrc","techGet","lastPlaybackRate","queued","_this8","timeWhenWaiting","timeUpdateListener","handleTechCanPlay_","handleTechCanPlayThrough_","handleTechPlaying_","handleTechSeeked_","starttime","userActions","click","doubleClick","userWasActive","cancelable","toggleFullscreenClass_","targetPlayer","isFs","fullscreen","msMatchesSelector","_this9","togglePictureInPictureClass_","initTime","inactivityTimeout","defaultPlaybackRate","reduceRight","_this10","play_","_this11","isSrcReady","waitToPlay_","runPlayTerminatedQueue_","runPlayCallbacks_","queue","q","callbacks","percentAsDecimal","_muted","defaultMuted","_defaultMuted","isFS","oldValue","fullscreenOptions","offHandler","errorHandler","requestFullscreenHelper_","fsOptions","_this12","preferFullWindow","enterFullWindow","exitFullscreenHelper_","_this13","exitFullWindow","isFullWindow","docOrigOverflow","overflow","isPiP","isInPictureInPicture_","hotkeys","isContentEditable","excludeElement","handleHotkeys","_hotkeys$fullscreenKe","fullscreenKey","keydownEvent","_hotkeys$muteKey","muteKey","_hotkeys$playPauseKey","playPauseKey","FSToggle","selectSource","_this14","techs","findFirstPassingTechSourcePair","outerArray","innerArray","tester","outerChoice","innerChoice","finder","sourceOrder","handleSrc_","isRetry","_this15","resetRetryOnError_","filterSource","newsrc","srcobj","middlewareSource","src_","notSupportedMessage","setTech","retryOnError","retry","stopListeningForErrors","str1","str2","_this16","sourceTech","_this17","doReset_","resetControlBarUI_","resetProgressBar_","resetPlaybackRate_","resetVolumeBar_","_this$controlBar","durationDisplay","currentSources","currentType","techAutoplay","newPoster","usingNativeControls_","_this18","hookFunction","newErr","suppressNotSupportedError","triggerSuppressedError","errorDisplay","userActivity_","mouseInProgress","lastMoveX","lastMoveY","handleActivity","handleMouseUpAndMouseLeave","screenX","screenY","isAudio_","toJSON","createModal","_this19","modal","currentBreakpoint","candidateBreakpoint","breakpoints_","breakpoint_","removeCurrentBreakpoint_","currentBreakpointClass","_breakpoints","responsive_","loadMedia","_this20","_this$cache_$media","artwork","tt","getMedia","baseOptions","tagOptions","dataSetup","_safeParseTuple","childName","previousLogLevel_","newRates","html5","userLanguage","navigationUI","pluginStorage","pluginExists","getPlugin","markPluginAsActive","triggerSetupEvent","before","createPluginFactory","PluginSubClass","plugin","instance","getEventHash","Plugin","VERSION","isBasic","registerPlugin","basicPluginWrapper","createBasicPlugin","deregisterPlugin","getPlugins","getPluginVersion","BASE_PLUGIN_NAME","hasPlugin","normalizeId","getPlayer","defaultView","PlayerComponent","hook","hookOnce","getPlayers","nId","_tag","_player","getAllPlayers","comp","use","writeable","subClassMethods","methods","super_","mergeOptions","addLanguage","_mergeOptions","createTimeRange","setFormatTime","customImplementation","resetFormatTime","EventTarget","dom","resolveUrl","resolveManifestRedirect","handleManifestRedirect","req","logger","filterRanges","timeRanges","findRange","TIME_FUDGE_FACTOR","findNextRange","printableRange","strArr","timeRangesToArray","timeRangesList","lastBufferedEnd","timeAheadOf","segmentDurationWithParts","preloadHints","partTargetDuration","getPartsAndSegments","si","pi","segmentIndex","partIndex","getLastParts","lastSegment","getKnownPartCount","preloadSegment","partCount","hint","liveEdgeDelay","hasParts","serverControl","partHoldBack","holdBack","intervalDuration","endSequence","expired","backward","precise","backwardDuration","forward","forwardDuration","totalDuration","sumDurations","defaultDuration","durationList","durations","playlistEnd","useSafeLiveEnd","liveEdgePadding","lastSegmentEndTime","isBlacklisted","excludeUntil","isIncompatible","isEnabled","blacklisted","isLowestEnabledRendition","currentBandwidth","MAX_VALUE","playlistMatch","someAudioVariant","groupName","variant","_ret","Playlist","getMediaInfoForTime","startingSegmentIndex","startingPartIndex","experimentalExactManifestTimings","partsAndSegments","partAndSegment","_partAndSegment","_i3","_i4","_partAndSegment2","isDisabled","isAes","estimateSegmentRequestTime","bytesReceived","createPlaylistID","forEachMediaGroup","setupMediaPlaylist","playlistErrors_","addPropertiesToMaster","phonyUri","audioOnlyMaster","groupId","setupMediaPlaylists","resolveMediaGroupUris","mergeOptions$2","EventTarget$1","updateSegment","skipped","resolveSegmentUris","baseUri","getAllSegments","isPlaylistUnchanged","updateMaster$1","newMedia","unchangedCheck","oldMedia","mergedPlaylist","skip","skippedSegments","oldSegments","newSegments","currentMap","newSegment","updateSegments","refreshDelay","lastPart","lastDuration","PlaylistLoader","vhs","logger_","_options$withCredenti","_options$handleManife","handleManifestRedirects","vhs_","vhsOptions","customTagParsers","customTagMappers","experimentalLLHLS","handleMediaupdatetimeout_","parameters","canBlockReload","nextMSN","nextPart","_HLS_part","_HLS_msn","canSkipUntil","_HLS_skip","canSkipDateranges","parsedUri","searchParams","addLLHLSQueryDirectives","playlistRequestError","haveMetadata","playlistString","startingState","parseManifest_","onwarn","oninfo","_ref$customTagParsers","_ref$customTagMappers","customParser","addParser","mapper","addTagMapper","parseManifest","playlistObject","lastRequest","pendingMedia_","media_","updateMediaUpdateTimeout_","stopRequest","mediaUpdateTimeout","finalRenditionTimeout","oldRequest","shouldDelay","delay","mediaChange","masterPlaylistRef","started","setupInitialPlaylist","srcUri","masterForMedia","videojsXHR","mergeOptions$1","callbackWrapper","reqResponse","responseTime","roundTripTime","requestTime","timedout","xhrFactory","XhrFunction","beforeRequest","Vhs","newOptions","originalAbort","segmentXhrHeaders","Range","textRange","formatHexString","formatAsciiString","createTransferableMessage","transferable","initSegmentId","segmentKeyId","hexDump","tagDump","textRanges","getProgramTime","_ref$time","matchedSegment","segmentEnd","videoTimingInfo","transmuxedPresentationEnd","estimatedStart","transmuxedPresentationStart","findSegmentForPlayerTime","seekTime","programTimeObject","mediaSeconds","programTime","playerTime","dateTimeObject","transmuxerPrependedSeconds","offsetFromSegmentStart","getTime","playerTimeToProgramTime","programDateTime","seekToProgramTime","_ref2$retryCount","retryCount","seekTo","_ref2$pauseAfterSeek","pauseAfterSeek","verifyProgramDateTimeTags","lastSegmentStart","lastSegmentDuration","findSegmentForProgramTime","mediaOffset","comparisonTimeStamp","segmentDateTime","segmentTimeEpoch","getOffsetFromTimestamp","seekToTime","callbackOnCompleted","dashPlaylistUnchanged","aSegment","bSegment","aByterange","bByterange","compareSidxEntry","oldSidxMapping","newSidxMapping","currentSidxInfo","savedSidxInfo","sidxInfo","DashPlaylistLoader","srcUrlOrPlaylist","masterPlaylistLoader","masterPlaylistLoader_","isMaster_","refreshXml_","refreshMedia_","loadedPlaylists_","srcUrl","sidxMapping_","childPlaylist_","requestErrored_","addSidxSegments_","fin","id3Offset","finished","endRequestAndCallback","_bytes","progressListener","newPart","overrideMimeType","loaded","containerRequest","internal","blacklistDuration","_playlist$sidx$bytera","mediaRequest_","minimumUpdatePeriodTimeout_","createMupOnMedia_","hasPendingRequest","sidxChanged","isFinalRendition","updateMinimumUpdatePeriodTimeout_","requestMaster_","masterChanged","haveMaster_","masterXml_","date","masterLoaded_","handleMaster_","syncClientServerClock_","done","utcTiming","clientOffset_","serverTime","masterXml","oldMaster","newMaster","noChanges","playlistUpdate","_playlistUpdate","updateMaster","mpl","mup","createMUPTimeout_","mediaGroupSidx","mediaID","mediaChanged","createMediaUpdateTimeout","Config","GOAL_BUFFER_LENGTH","MAX_GOAL_BUFFER_LENGTH","BACK_BUFFER_LENGTH","GOAL_BUFFER_LENGTH_RATE","INITIAL_BANDWIDTH","BANDWIDTH_VARIANCE","BUFFER_LOW_WATER_LINE","MAX_BUFFER_LOW_WATER_LINE","EXPERIMENTAL_MAX_BUFFER_LOW_WATER_LINE","BUFFER_LOW_WATER_LINE_RATE","BUFFER_HIGH_WATER_LINE","browserWorkerPolyFill","workerObj","factory","objectUrl","createObjectURL","Blob","blob","BlobBuilder","getBlob","worker","Worker","objURL","terminate","revokeObjectURL","getWorkerString","TransmuxWorker","Stream","init","destination","flushSource","partialFlush","endTimeline","dinf","esds","ftyp","mfhd","minf","mvex","mvhd","trak","tkhd","mdia","mdhd","hdlr","sdtp","stbl","stsd","traf","trex","trun$1","MAJOR_BRAND","MINOR_VERSION","AVC1_BRAND","VIDEO_HDLR","AUDIO_HDLR","HDLR_TYPES","VMHD","SMHD","DREF","STCO","STSC","STSZ","STTS","videoSample","audioSample","audioTrun","videoTrun","trunHeader","stream","MAX_UINT32$1","pow","numbers","getUint64","uint8","dv","DataView","getBigUint64","getUint32","MAX_UINT32","avc1","avcC","btrt","dref","mdat","mp4a","pasp","smhd","stco","stsc","stsz","stts","styp","tfdt","tfhd","trun","vmhd","payload","setUint32","audioobjecttype","samplingfrequencyindex","channelcount","samplerate","sequenceNumber","trackFragments","boxes","samples","dependsOn","isDependedOn","hasRedundancy","avc1Box","sps","pps","sequenceParameterSets","pictureParameterSets","profileIdc","profileCompatibility","levelIdc","sarRatio","hSpacing","vSpacing","samplesize","trackFragmentHeader","trackFragmentDecodeTime","trackFragmentRun","sampleDependencyTable","upperWordBaseMediaDecodeTime","lowerWordBaseMediaDecodeTime","baseMediaDecodeTime","durationPresent","sizePresent","flagsPresent","compositionTimeOffset","bytesOffest","header","sample","isLeading","paddingValue","isNonSyncSample","degradationPriority","silence","mp4Generator","fileType","movie","sampleForFrame","frame","dataOffset","pts","dts","keyFrame","frameUtils","nalUnits","currentNal","currentFrame","frames","nalCount","nalUnitType","currentGop","gops","baseDataOffset","nalsByteLength","numberOfNals","highPrefix","lowPrefix","zeroFill","silence_1","coneOfSilence","96000","88200","64000","48000","44100","32000","24000","16000","12000","11025","8000","metaTable","arr","clock","audioFrameUtils","audioAppendStartTs","videoBaseMediaDecodeTime","baseMediaDecodeTimeTs","frameDuration","silentFrame","firstFrame","audioGapDuration","audioFillFrameCount","audioFillDuration","adtsFrames","earliestAllowedDts","minSegmentDts","minSegmentPts","sum","sumFrameByteLengths","ONE_SECOND_IN_TS$3","trackDecodeInfo","maxSegmentDts","maxSegmentPts","timelineStartInfo","captionPacketParser","payloadType","payloadSize","sei","userData","ccData","emulationPreventionBytesPositions","CaptionStream$1","CaptionStream","parse708captions_","parse708captions","captionPackets_","ccStreams_","Cea608Stream","cc708Stream_","Cea708Stream","newCaptionPackets","escapedRBSP","latestDts_","ignoreNextEqualDts_","numSameDts_","flushCCStreams","flushType","flushStream","idx","presortIndex","packet","dispatchCea608Packet","dispatchCea708Packet","activeCea608Channel_","ccStream","setsTextOrXDSActive","setsChannel1Active","setsChannel2Active","CHARACTER_TRANSLATION_708","within708TextBlock","Cea708Window","windowNum","clearText","pendingNewLine","winAttr","penAttr","penLoc","penColor","visible","rowLock","columnLock","relativePositioning","anchorVertical","anchorHorizontal","anchorPoint","rowCount","virtualRowCount","columnCount","windowStyle","penStyle","getText","rows","rowIdx","newLine","beforeRowOverflow","addText","backspace","substr","Cea708Service","serviceNum","encoding","currentWindow","windows","createTextDecoder","startPts","setCurrentWindow","TextDecoder","textDecoder_","serviceProps","captionServiceEncodings","serviceName","serviceEncodings","current708Packet","services","new708Packet","add708Bytes","push708Packet","ptsVals","byte0","byte1","packet708","packetData","blockSize","seq","sizeCode","pushServiceBlock","initService","handleText","multiByteCharacter","extendedCommands","defineWindow","clearWindows","deleteWindows","displayWindows","hideWindows","toggleWindows","setWindowAttributes","setPenAttributes","setPenColor","setPenLocation","isExtended","getPts","flushDisplayed","_char","charCodeArray","newCode","isMultiByte","extended","currentByte","nextByte","decode","firstByte","secondByte","fillOpacity","fillRed","fillGreen","fillBlue","borderType","borderRed","borderGreen","borderBlue","wordWrap","printDirection","scrollDirection","justify","effectSpeed","effectDirection","displayEffect","displayedText","winId","endPts","pushCaption","textTag","penSize","italics","underline","edgeType","fontStyle","fgOpacity","fgRed","fgGreen","fgBlue","bgOpacity","bgRed","bgGreen","bgBlue","edgeRed","edgeGreen","edgeBlue","column","CHARACTER_TRANSLATION","getCharFromCode","ROWS","createDisplayBuffer","BOTTOM_ROW","field","dataChannel","field_","dataChannel_","setConstants","swap","char0","char1","lastControlCode_","PADDING_","RESUME_CAPTION_LOADING_","mode_","END_OF_CAPTION_","clearFormatting","displayed_","nonDisplayed_","startPts_","ROLL_UP_2_ROWS_","rollUpRows_","setRollUp","ROLL_UP_3_ROWS_","ROLL_UP_4_ROWS_","CARRIAGE_RETURN_","shiftRowsUp_","BACKSPACE_","row_","ERASE_DISPLAYED_MEMORY_","ERASE_NON_DISPLAYED_MEMORY_","RESUME_DIRECT_CAPTIONING_","isSpecialCharacter","column_","isExtCharacter","isMidRowCode","addFormatting","isOffsetControlCode","isPAC","formatting_","isColorPAC","isNormalChar","topRow_","BASE_","EXT_","CONTROL_","OFFSET_","_char2","newBaseRow","popOn","baseRow","rollUp","paintOn","captionStream","streamTypes","H264_STREAM_TYPE","ADTS_STREAM_TYPE","METADATA_STREAM_TYPE","handleRollover$1","direction","TimestampRolloverStream$1","TimestampRolloverStream","lastDTS","referenceDTS","type_","_MetadataStream","timestampRolloverStream","percentEncode$1","parseUtf8","parseSyncSafeInteger$1","tagParsers","TXXX","WXXX","PRIV","owner","privateData","tagSize","dispatchType","chunk","frameStart","frameSize","dataAlignmentIndicator","timeStamp","_TransportPacketStream","_TransportParseStream","_ElementaryStream","metadataStream","bytesInBuffer","everything","parsePsi","parsePat","parsePmt","packetsWaitingForPmt","programMapTable","psi","payloadUnitStartIndicator","pat","section_number","last_section_number","pmtPid","pmt","tableEnd","pid","processPes_","STREAM_TYPES","h264","adts","segmentHadPmt","timedMetadata","forceFlush","packetFlushable","trackId","pes","ptsDtsFlags","startPrefix","packetLength","flushStreams_","m2ts","PAT_PID","MP2T_PACKET_LENGTH","TransportPacketStream","TransportParseStream","ElementaryStream","MetadataStream","_AdtsStream","m2ts_1","ONE_SECOND_IN_TS$2","ADTS_SAMPLING_FREQUENCIES$1","handlePartialSegments","frameNum","skipWarn_","frameLength","protectionSkipBytes","oldBuffer","sampleCount","adtsFrameDuration","_H264Stream","_NalByteStream","PROFILES_WITH_OPTIONAL_SPS_DATA","expGolomb","workingData","workingBytesAvailable","workingWord","workingBitsAvailable","bitsAvailable","loadWord","workingBytes","availableBytes","skipBits","skipBytes","readBits","bits","valu","skipLeadingZeros","leadingZeroCount","skipUnsignedExpGolomb","skipExpGolomb","readUnsignedExpGolomb","clz","readExpGolomb","readBoolean","readUnsignedByte","syncPoint","swapBuffer","100","110","122","244","44","83","86","118","128","138","139","134","currentPts","currentDts","discardEmulationPreventionBytes","readSequenceParameterSet","skipScalingList","nalByteStream","nalUnitTypeCode","expGolombDecoder","lastScale","nextScale","chromaFormatIdc","picOrderCntType","numRefFramesInPicOrderCntCycle","picWidthInMbsMinus1","picHeightInMapUnitsMinus1","frameMbsOnlyFlag","scalingListCount","frameCropLeftOffset","frameCropRightOffset","frameCropTopOffset","frameCropBottomOffset","_AacStream","H264Stream","NalByteStream","ADTS_SAMPLING_FREQUENCIES","parseId3TagSize","parseSyncSafeInteger","isLikelyAacData","parseAdtsSize","lowThree","middle","parseType","parseSampleRate","parseAacTimestamp","percentEncode","setTimestamp","bytesLeft","tempLength","_VideoSegmentStream","_AudioSegmentStream","_Transmuxer","_CoalesceStream","audioProperties","videoProperties","ONE_SECOND_IN_TS$1","retriggerForStream","addPipelineLogRetriggers","transmuxer","pipeline","arrayEquals","generateSegmentTimingInfo","startDts","endDts","prependedContentDuration","firstSequenceNumber","setEarliestDts","earliestDts","setVideoBaseMediaDecodeTime","setAudioAppendStart","videoClockCyclesOfSilencePrefixed","gopsToAlignWith","minPTS","gopCache_","nalUnit","gopForFusion","firstGop","lastGop","resetStream_","getGopForFusion_","alignedGops","alignGopsAtEnd","alignGopsAtEnd_","alignGopsAtStart_","gop","dtsDistance","nearestGopObj","currentGopObj","nearestDistance","alignIndex","gopIndex","align","alignEndIndex","matchFound","trimIndex","alignGopsWith","newGopsToAlignWith","numberOfTracks","remux","remuxTracks","pendingTracks","videoTrack","pendingBoxes","pendingCaptions","pendingMetadata","pendingBytes","emittedTracks","output","audioTrack","caption","id3","captionStreams","cueTime","setRemux","hasFlushed","transmuxPipeline_","setupAacPipeline","aacStream","audioTimestampRolloverStream","timedMetadataTimestampRolloverStream","adtsStream","coalesceStream","headOfPipeline","audioSegmentStream","getLogTrigger_","hasAudio","hasVideo","setupTsPipeline","packetStream","parseStream","elementaryStream","h264Stream","videoSegmentStream","id3Frame","setBaseMediaDecodeTime","isAac","resetCaptions","getTracks","getTimescaleFromMediaHeader","Transmuxer","VideoSegmentStream","AudioSegmentStream","AUDIO_PROPERTIES","VIDEO_PROPERTIES","bin","parseType_1","toUnsigned$2","findBox_1","subresults","toUnsigned$1","getUint64$1","parseTfdt","parseSampleFlags_1","parseTrun","dataOffsetPresent","firstSampleFlagsPresent","sampleDurationPresent","sampleSizePresent","sampleFlagsPresent","sampleCompositionTimeOffsetPresent","getInt32","parseTfhd","baseDataOffsetPresent","sampleDescriptionIndexPresent","defaultSampleDurationPresent","defaultSampleSizePresent","defaultSampleFlagsPresent","durationIsEmpty","defaultBaseIsMoof","sampleDescriptionIndex","defaultSampleDuration","defaultSampleSize","defaultSampleFlags","baseDataOffsetIsMoof","commonjsGlobal","globalThis","window_1","mapToSample","approximateOffset","parseCaptionNals","videoTrackId","trafs","mdats","captionNals","mdatTrafPairs","matchingTraf","pair","headerInfo","truns","avcStream","seiNal","lastMatchedSample","avcView","logs","seiNals","matchingSample","findSeiNals","allSamples","parseSamples","captionParser","segmentCache","parsedCaptions","parsingPartial","isInitialized","isPartial","isNewInit","videoTrackIds","timescales","parsedData","cachedSegment","trackNals","parseEmbeddedCaptions","pushNals","nals","nal","clearParsedCaptions","resetCaptionStream","clearAllCaptions","toUnsigned","lowestTime","baseTime","scale","isFinite","traks","tkhdVersion","getUint8","sampleDescriptions","codecConfig","codecBox","probe$2","parsePid","parsePayloadUnitStartIndicator","parseAdaptionField","parseNalUnitType","probe$1","pusi","payloadOffset","parsePesType","parsePesTime","videoPacketContainsKeyFrame","frameBuffer","frameI","frameSyncPoint","foundKeyFrame","handleRollover","probe","parseAudioPes_","pesType","parsed","endLoop","table","parseVideoPes_","firstKeyFrame","inspectTs_","parsePsi_","tsInspector","baseTimestamp","audioCount","audioTimescale","inspectAac_","audioBaseTimestamp","dtsTime","ptsTime","videoBaseTimestamp","adjustTimestamp_","MessageHandlers","initArray","typedArray","postMessage","action","gopInfo","timingInfo","videoSegmentTimingInfo","presentation","audioSegmentTimingInfo","trackInfo","audioTimingInfo","wireTransmuxerEvents","pushMp4Captions","trackIds","probeMp4StartTime","probeMp4Tracks","probeTs","baseStartTime","tsStartTime","timeInfo","videoStart","audioStart","clearAllMp4Captions","clearParsedMp4Captions","setTimestampOffset","timestampOffset","appendStart","onmessage","messageHandlers","processTransmux","audioAppendStart","onData","onTrackInfo","onAudioTimingInfo","onVideoTimingInfo","onVideoSegmentTimingInfo","onAudioSegmentTimingInfo","onId3","onCaptions","onDone","onEndedTimeline","onTransmuxerLog","isEndOfTimeline","transmuxedData","waitForEndedTimelineEvent","currentTransmux","_event$data$segment","videoFrameDtsTime","videoFramePtsTime","handleData_","handleGopInfo_","handleDone_","dequeue","transmuxQueue","processAction","enqueueAction","transmux","segmentTransmuxer","term","workerCallback","endAction","listenForEndEvent","transfers","REQUEST_ERRORS","abortAll","activeXhrs","handleErrors","handleKeyResponse","finishProcessingFn","errorObj","Uint32Array","parseInitSegment","_callback","handleSegmentResponse","newBytes","stringToArrayBuffer","lastReachedChar","stats","getRequestStats","encryptedBytes","transmuxAndNotify","trackInfoFn","timingInfoFn","videoSegmentTimingInfoFn","audioSegmentTimingInfoFn","id3Fn","captionsFn","endedTimelineFn","dataFn","doneFn","fmp4Tracks","isMuxed","audioStartFn","audioEndFn","videoStartFn","videoEndFn","probeResult","id3Frames","handleSegmentBytes","bytesAsUint8Array","isFmp4","audioCodec","videoCodec","finishLoading","decrypt","keyBytes","decryptionWorker","decryptionHandler","decrypted","encrypted","iv","waitForCompletion","didError","segmentFinish","requestId","decryptedBytes","decryptSegment","endOfAllRequests","parseError","handleProgress","_ref11","progressFn","progressEvent","getProgressStats","firstBytesReceivedAt","mediaSegmentRequest","_ref12","xhrOptions","abortFn","keyXhr","mapKeyXhr","initSegmentXhr","handleInitSegmentResponse","segmentRequestOptions","segmentXhr","loadendState","activeXhr","_ref10","calledAbortFn","handleLoadEnd","logFn$1","isMaat","mediaAttributes","unwrapCodecList","codecList","codecCount","codecObj","codecsForPlaylist","codecInfo","getCodecs","defaultCodecs","logFn","representationToString","safeGetComputedStyle","stableSort","sortFn","newArray","cmp","comparePlaylistBandwidth","leftBandwidth","rightBandwidth","simpleSelector","playerBandwidth","playerWidth","playerHeight","limitRenditionByPlayerDimensions","masterPlaylistController","getAudioTrackPlaylists_","sortedPlaylistReps","enabledPlaylistReps","rep","bandwidthPlaylistReps","highestRemainingBandwidthRep","bandwidthBestRep","_chosenRep","haveResolution","resolutionBestRepList","resolutionPlusOneList","resolutionPlusOneSmallest","resolutionPlusOneRep","leastPixelDiffRep","resolutionBestRep","experimentalLeastPixelDiffSelector","leastPixelDiffList","pixelDiff","chosenRep","_type","lastBandwidthSelector","pixelRatio","useDevicePixelRatio","devicePixelRatio","systemBandwidth","masterPlaylistController_","addMetadata","inbandTextTracks","metadataArray","videoDuration","Cue","WebKitDataCue","metadataTrack","metadataTrack_","deprecateOldCue","cuesArray","cuesGroupedByStartTime","timeSlot","sortedStartTimes","cueGroup","nextTime","removeCuesFromTrack","finite","segmentInfoString","startOfSegment","_segmentInfo$playlist","_segmentInfo$playlist2","mediaIndex","segmentLen","selection","isSyncRequest","independent","hasPartIndex","zeroBasedPartCount","timingInfoPropertyForMedia","shouldWaitForTimelineChange","timelineChangeController","currentTimeline","loaderType","audioDisabled","lastMainTimelineChange","lastTimelineChange","pendingAudioTimelineChange","pendingTimelineChange","segmentTooLong","maxDuration","getTroublesomeSegmentDurationMessage","sourceType","timingInfos","typeTimingInfo","isSegmentWayTooLong","isSegmentSlightlyTooLong","segmentTooLongMessage","severity","SegmentLoader","_videojs$EventTarget","mediaSource","throughput","roundTrip","resetStats_","hasPlayed_","hasPlayed","seekable_","seeking_","mediaSource_","loaderType_","currentMediaInfo_","startingMediaInfo_","segmentMetadataTrack_","segmentMetadataTrack","goalBufferLength_","goalBufferLength","sourceType_","sourceUpdater_","sourceUpdater","inbandTextTracks_","state_","timelineChangeController_","shouldSaveSegmentTimingInfo_","captionServices_","checkBufferTimeout_","currentTimeline_","pendingSegment_","xhrOptions_","pendingSegments_","audioDisabled_","isPendingTimestampOffset_","gopBuffer_","timeMapping_","safeAppend_","appendInitSegment_","playlistOfLastInitSegment_","callQueue_","loadQueue_","metadataQueue_","waitingOnRemove_","quotaExceededErrorRetryTimeout_","activeInitSegmentId_","initSegments_","cacheEncryptionKeys_","cacheEncryptionKeys","keyCache_","decrypter_","decrypter","syncController_","syncController","syncPoint_","transmuxer_","createTransmuxer_","triggerSyncInfoUpdate_","isEndOfStream_","ended_","fetchAtBuffer_","newState","hasEnoughInfoToAppend_","processCallQueue_","hasEnoughInfoToLoad_","processLoadQueue_","mediaBytesTransferred","mediaRequests","mediaRequestsAborted","mediaRequestsTimedout","mediaRequestsErrored","mediaTransferDuration","mediaSecondsLoaded","mediaAppends","abort_","setAudio","removeAudio","monitorBuffer_","abortRequests","clearPendingTimelineChange","checkForAbort_","_error","endOfStream","buffered_","getMediaInfo_","videoBuffered","audioBuffered","initSegmentForMap","storedMap","segmentKey","storedKey","couldBeginLoading_","playlist_","init_","resetEverything","newPlaylist","syncInfo","setDateTimeMappingForStart","oldId","resyncLoader","resetLoader","mediaSequenceDiff","saveExpiredSegmentInfo","force","removesRemaining","removeFinished","mapping","updatedBuffer","removeGopBuffer","removeVideo","monitorBufferTick_","fillBuffer_","updating","chooseNextRequest_","loadSegment_","appendedLastSegment","appendedLastPart","bufferedTime","preloaded","haveEnoughBuffer","getSyncPoint","targetTime","timelineSegments","getSyncSegmentCandidate","_Playlist$getMediaInf","_partIndex","nextSegment","lastSegmentLastPart","generateSegmentInfo_","forceTimestampOffset","random","overrideCheck","timestampOffsetForSegment_","audioBufferedEnd","audioTimestampOffset","currentTimePts","gopsSafeToAlignWith","videoTimestampOffset","earlyAbortWhenNeeded_","measuredBandwidth","requestTimeRemaining","timeUntilRebuffer$1","timeUntilRebuffer","switchCandidate","compatiblePlaylists","enabledPlaylists","rebufferingEstimates","numRequests","rebufferingImpact","noRebufferingPlaylists","estimate","minRebufferMaxBandwidthSelector","timeSavedBySwitching","minimumTimeSaving","handleAbort_","handleProgress_","simpleSegment","handleTrackInfo_","checkForIllegalMediaSwitch","akeys","bkeys","shallowEqual","handleTimingInfo_","timeType","timingInfoProperty","handleCaptions_","captionData","hasAppendedData_","captionTracks","captionTrack","trackName","_captionTracks$trackN","def","captionService","createCaptionsTrackIfNotExists","captionArray","addCaptionData","handleId3_","inBandMetadataTrackDispatchType","createMetadataTrackIfNotExists","processMetadataQueue_","callQueue","fun","loadQueue","getCurrentMediaInfo_","setTimeMapping_","updateMediaSecondsLoaded_","firstVideoFrameTimeForData","useVideoTimingInfo","trueSegmentStart_","currentStart","currentVideoTimestampOffset","updateAppendInitSegmentStatus","updateSourceBufferTimestampOffset_","updateTimingInfoEnd_","saveSegmentTimingInfo","shouldSaveTimelineMapping","appendData_","changedTimestampOffset","getInitSegmentAndUpdateState_","handleQuotaExceededError_","audioBufferStart","audioBufferEnd","videoBufferStart","videoBufferEnd","appendToSourceBuffer_","timeToRemoveUntil","MIN_BACK_BUFFER","handleAppendError_","segmentObj","appendBuffer","handleSegmentTimingInfo_","segmentTimingInfo","transmuxedDecodeStart","transmuxedDecodeEnd","trimBackBuffer_","updateTransmuxerAndRequestSegment_","shouldUpdateTransmuxerTimestampOffset_","createSimplifiedSegmentObj_","isEndOfStream","isWalkingForward","isDiscontinuity","segmentRequestFinished_","removeToTime","trimTime","maxTrimTime","safeBackBufferTrimTime","previousSegment","saveTransferStats_","saveBandwidthRelatedStats_","handleTimeout_","updateGopBuffer","waitForAppendsToComplete_","timelineMapping","mappingForTimeline","waitForVideo","waitForAudio","waitingOnAppends","checkAppendsDone_","videoQueueCallback","audioQueueCallback","handleAppendsDone_","illegalMediaSwitchError","startingMedia","illegalMediaSwitch","didChange","prioritizedTimingInfo","segmentDurationMessage","recordThroughput_","addSegmentMetadataCue_","badSegmentGuess","badPartGuess","segmentProcessingTime","segmentProcessingThroughput","custom","dateTimeString","resolution","Vhs$1","toTitleCase","bufferTypes","_updating","sourceBuffer","queuePending","shiftQueue","queueIndex","queueEntry","nextQueueIndexOfType","cleanupBuffer","titleType","inSourceBuffers","sourceBuffers","actions","onError","_duration","mime","addSourceBuffer","removeSourceBuffer","changeType","pushQueue","onUpdateend","SourceUpdater","sourceopenListener_","audioTimestampOffset_","videoTimestampOffset_","delayedAudioAppendQueue_","videoAppendQueued_","onVideoUpdateEnd_","onAudioUpdateEnd_","onVideoError_","videoError_","onAudioError_","audioError_","createdSourceBuffers_","initializedEme_","triggeredReady_","initializedEme","hasCreatedSourceBuffers","hasInitializedAnyEme","createSourceBuffers","addOrChangeSourceBuffers","canRemoveSourceBuffer","canChangeType","SourceBuffer","processedAppend_","videoBuffer","que","audioBuffer","bufferA","bufferB","arity","extents","bufferIntersection","setDuration","uint8ToUtf8","uintArray","VTT_LINE_TERMINATORS","_char3","VTTSegmentLoader","_SegmentLoader","subtitlesTrack_","featuresNativeTextTracks_","combinedByteLength","combinedSegment","timestampOffsetForTimeline","skipEmptySegments_","stopForError","loadHandler","requested","parseVTTCues_","updateTimeMapping_","timelines","duplicates","occurrences","dupe","removeDuplicateCuesFromTrack","decoder","decodeBytesToString","timestampmap","MPEGTS","LOCAL","ontimestampmap","mapData","segmentData","mappingObj","diff","firstStart","lastStart","findAdCue","mediaTime","adStartTime","adEndTime","syncPointStrategies","run","timelineToDatetimeMappings","lastDistance","datetimeMapping","discontinuitySync","discontinuities","SyncController","syncPoints","runStrategies_","selectSyncPoint_","getExpiredTime","strategy","bestSyncPoint","bestDistance","bestStrategy","newDistance","lastRemovedSegment","firstSegment","playlistTimestamp","didCalculateSegmentTimeMapping","calculateSegmentTimeMapping_","saveDiscontinuitySyncInfo_","dateTime","accuracy","mediaIndexDiff","TimelineChangeController","pendingTimelineChanges_","lastTimelineChanges_","Decrypter","createCommonjsModule","basedir","require","commonjsRequire","createClass","_defineProperties","Constructor","protoProps","staticProps","inheritsLoose","_length","aesTables","AES","tmp","xInv","x2","x4","tEnc","tDec","tables","encTable","decTable","sbox","sboxInv","th","precompute","_tables","keyLen","rcon","encKey","decKey","encrypted0","encrypted1","encrypted2","encrypted3","out","a2","b2","c2","nInnerRounds","kIndex","table0","table1","table2","table3","AsyncStream","_Stream","jobs","timeout_","processJob_","job","ntoh","word","initVector","step","STEP","encrypted32","Int32Array","asyncStream_","decryptChunk_","padded","init0","init1","init2","init3","wordIx","decipher","decrypted32","audioTrackKind_","characteristics","stopLoaders","segmentLoader","activePlaylistLoader","startLoaders","playlistLoader","segmentLoaders","blacklistCurrentPlaylist","activeTrack","activeGroup","defaultTrack","onTrackChanged","setupListeners","requestOptions","initialize","_settings$mediaTypes$","groups","variantLabel","isMasterPlaylist","_settings$mediaTypes$2","forced","_settings$mediaTypes$3","newProps","groupMatch","setupMediaGroups","_settings$segmentLoad3","audioSegmentLoader","mainSegmentLoader","variants","groupKeys","groupPropertyList","onGroupChanged","_settings$segmentLoad","getActiveGroup","previousActiveLoader","lastGroup","lastGroup_","lastTrack_","onGroupChanging","_settings$segmentLoad2","lastTrack","mpc","selectPlaylist","fastQualityChange_","activeTrack_","onAudioTrackChanged","loaderStats","sumLoaderStat","stat","audioSegmentLoader_","mainSegmentLoader_","MasterPlaylistController","externVhs","useCueTags","enableLowInitialPlaylist","experimentalBufferBasedABR","maxPlaylistRetries","useCueTags_","cueTagsTrack_","requestOptions_","pauseLoading","mediaTypes_","handleDurationChange_","handleSourceOpen_","handleSourceEnded_","segmentLoaderSettings","setupMasterPlaylistLoaderListeners_","subtitleSegmentLoader_","setupSegmentLoaderListeners_","startABRTimer_","stopABRTimer_","triggeredFmp4Usage","loadOnPlay_","timeToLoadedData__","mainAppendsToLoadedData__","audioAppendsToLoadedData__","timeToLoadedDataStart","mainAppendsToLoadedData_","audioAppendsToLoadedData_","appendsToLoadedData_","timeToLoadedData_","checkABR_","nextPlaylist","shouldSwitchToMedia_","switchMedia_","cause","newId","abrTimer_","defaultPlaylists","defaultGroup","requestTimeout","triggerPresenceUsage_","setupFirstPlay","updatedPlaylist","selectedMedia","excludeUnsupportedVariants_","selectInitialPlaylist","initialMedia_","handleUpdatedMediaPlaylist","lastExcludeReason_","stuckAtPlaylistEnd_","updateAdCues_","updateDuration","defaultDemuxed","audioGroupKeys","mediaGroup","currentPlaylist","bufferLowWaterLine","bufferHighWaterLine","sharedLogLine","isBuffered","forwardBuffer","maxBufferLowWaterLine","nextBandwidth","currBandwidth","logLine","_logLine","shouldSwitchToMedia","onSyncInfoUpdate_","onEndOfStream","delegateLoaders_","updateCodecs","tryToCreateSourceBuffers_","getCodecsOrExclude_","mediaSecondsLoaded_","smoothQualityChange_","mainMediaInfo","absolutePlaylistEnd","reincluded","errorMessage","delayDuration","fnNames","loaders","dontFilterPlaylist","loader","audioSeekable","mainSeekable","oldEnd","oldStart","updateDuration_","areMediaTypesKnown_","usingAudioLoader","hasMainMediaInfo","hasAudioMediaInfo","playlistCodecs","unsupportedAudio","unsupportedCodecs","supporter","switchMessages","newCodec","oldCodec","excludeIncompatibleVariants_","ids","unsupported","codecCount_","videoDetails","audioDetails","blacklistReasons","variantCodecs","variantCodecCount","variantVideoDetails","variantAudioDetails","cueOut","_segment$cueOutCont$s","cueOutCont","adOffset","adTotal","updateAdCues","newMax","Representation","vhsHandler","playlistID","changePlaylistFn","qualityChangeFunction","smoothQualityChange","incompatible","currentlyEnabled","timerCancelEvents","PlaybackWatcher","allowSeeksWithinUnsafeLiveWindow","liveRangeSafeTimeDelta","consecutiveUpdates","lastRecordedTime","timer_","checkCurrentTimeTimeout_","playHandler","monitorCurrentTime_","canPlayHandler","waitingHandler","techWaiting_","cancelTimerHandler","cancelTimer_","loaderTypes","loaderChecks","resetSegmentDownloads_","updateend","checkSegmentDownloads_","setSeekingHandlers","seekingAppendCheck_","fixesBadSeeks_","clearSeekingAppendCheck_","watchForBadSeeking_","checkCurrentTime_","isBufferedDifferent","isRangeDifferent","playlistId","waiting_","afterSeekableWindow_","beforeSeekableWindow_","minAppendedDuration","bufferedToCheck","nextRange","currentRange","livePoint","videoUnderflow_","difference","skipTheGap_","allowedEnd","gap","lastVideoRange","videoRange","audioRange","gapFromVideoUnderflow_","scheduledCurrentTime","gaps","findGaps","defaultOptions","errorInterval","getSource","IWillNotUseThisInPlugins","STANDARD_PLAYLIST_SELECTOR","INITIAL_PLAYLIST_SELECTOR","movingAverageBandwidthSelector","decay","average","lastSystemBandwidth","comparePlaylistResolution","leftWidth","rightWidth","handleVhsMediaChange","qualityLevels","selectedIndex_","waitForKeySessionCreation","sourceKeySystems","audioMedia","mainPlaylists","initializeMediaKeys","keySystemsOptionsArr","keySystems","keySystemsArr","keySystemsOptions","keySystemsObj","keySystemOptions","getAllPsshKeySystemsOptions","initializationFinishedPromises","keySessionCreatedPromises","race","setupEmeOptions","sourceOptions","audioPlaylist","videoContentType","audioContentType","keySystemContentTypes","emeKeySystems","getVhsLocalStorage","storedObject","supportsNativeHls","canItPlay","supportsNativeDash","supportsTypeNatively","VhsHandler","initialBandwidth","source_","ignoreNextSeekingEvent_","setOptions_","overrideNative","featuresNativeVideoTracks","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","useBandwidthFromLocalStorage","useNetworkInformationApi","option","dataUri","playbackWatcherOptions","playbackWatcher_","defaultSelector","playerBandwidthEst","networkInformation","connection","mozConnection","webkitConnection","networkInfoBandwidthEstBitsPerSec","downlink","invThroughput","invBandwidth","mediaRequests_","mediaRequestsAborted_","mediaRequestsTimedout_","mediaRequestsErrored_","mediaTransferDuration_","mediaBytesTransferred_","mediaAppends_","mainAppendsToLoadedData","audioAppendsToLoadedData","appendsToLoadedData","timeToLoadedData","currentTech","playerDimensions","objectToStore","updateVhsLocalStorage","setupEme_","setupQualityLevels_","mediaSourceUrl_","createKeySessions_","audioPlaylistLoader","handleWaitingForKey_","didSetupEmeOptions","qualityLevels_","addQualityLevel","dash","convertToProgramTime","VhsSourceHandler","localOptions","_videojs$mergeOptions","_videojs$mergeOptions2","_videojs$mergeOptions3","_videojs$mergeOptions4","_videojs$mergeOptions5","legacyOverrideNative","supportedType","initPlugin","lastCalled","loadedMetadataHandler","cleanupEvents","reloadSourceOnError","reviver","isNativeReflectConstruct","_construct","Parent","Reflect","construct","DOMParser","referenceId","earliestPresentationTime","referenceCount","getUint16","startsWithSap","sapType","sapDeltaTime","_","u","f","OPTIONS","createSource","getOptions","dBToGain","db","VideoPlayer","ac","audioConnected","compScope","videoNode","onPlay","boostAudio","dB","volumeOffset","getAC","createMediaElementSource","gainNode","createGain","gain","getVolBoost","connect","AC","AudioContext","webkitAudioContext","resume","cn","getVidCN","onClick","data-vjs-player","ref","React","CPlayer","imagery","volume_offset","renderPlayer","renderProcessing","renderNotFound","LineStream","nextNewline","TAB","parseByterange","byterangeString","ParseStream","customParsers","tagMappers","line","mappedLine","tagType","playlistType","allowed","URI","BYTERANGE","IV","PRECISE","subkey","expression","customType","dataParser","camelCaseKeys","setHoldBack","hb","phb","minTargetDuration","minPartDuration","lineStream","uris","currentUri","defaultMediaGroups","lastByterangeEnd","lastPartByterangeEnd","entry","rendition","endlist","inf","METHOD","KEYFORMAT","KEYID","keyId","TYPE","mediaGroupType","AUTOSELECT","LANGUAGE","CHARACTERISTICS","FORCED","targetduration","timeOffset","cueIn","warnOnMissingAttributes_","renditionReports","isPart","otherHint","required","partInf","partTarget","comment","missing","for","A","B","C","D","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","E","F","refs","updater","G","H","isReactComponent","forceUpdate","I","isPureReactComponent","J","K","L","__self","__source","M","defaultProps","$$typeof","_owner","O","P","Q","R","keyPrefix","V","T","U","W","aa","X","N","Y","Z","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Children","toArray","only","Fragment","Profiler","PureComponent","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","createFactory","createRef","forwardRef","render","isValidElement","lazy","_ctor","_status","_result","memo","compare","useCallback","useContext","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","da","ea","fa","ha","ia","ja","la","ma","na","oa","ka","pa","qa","ra","sa","extractEvents","eventTypes","ta","phasedRegistrationNames","ua","registrationName","va","wa","dependencies","xa","ya","za","Aa","Ba","Ca","stateNode","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","Ua","Va","xlinkHref","Wa","Xa","Sa","Ta","Ra","Ya","Za","$a","ab","bb","eb","fb","gb","ib","jb","kb","lb","mb","nb","pb","displayName","qb","_debugOwner","_debugSource","fileName","lineNumber","return","rb","sb","xb","_valueTracker","setValue","tb","yb","checked","zb","defaultChecked","_wrapperState","initialChecked","Ab","initialValue","controlled","Bb","Cb","Db","Eb","Gb","Fb","Hb","defaultSelected","Ib","dangerouslySetInnerHTML","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","MSApp","execUnsafeLocalFunction","valueOf","Rb","Sb","Tb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","animation","transition","Xb","Yb","Zb","$b","bc","dc","alternate","effectTag","ec","memoizedState","dehydrated","fc","hc","sibling","gc","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPersistent","release","mc","nc","correspondingUseElement","pc","qc","topLevelType","nativeEvent","targetInst","ancestors","rc","eventSystemFlags","sc","containerInfo","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","Lc","delete","pointerId","Mc","Nc","Pc","unstable_runWithPriority","hydrate","Qc","Rc","Sc","Tc","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","ad","bubbled","captured","eventPriority","bd","cd","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","Oc","jd","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","order","orphans","tabSize","widows","zIndex","zoom","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","kd","ld","md","setProperty","nd","menuitem","area","br","col","embed","hr","img","keygen","link","meta","param","wbr","od","pd","is","qd","rd","sd","td","ud","vd","xd","yd","contentEditable","Dd","Ed","Fd","autoFocus","Gd","__html","Hd","Id","Jd","Kd","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","Interface","isDefaultPrevented","ee","eventPool","fe","destructor","de","getPooled","persist","eventPhase","isTrusted","ge","he","ie","je","ke","documentMode","me","ne","oe","beforeInput","compositionEnd","compositionStart","compositionUpdate","pe","qe","re","detail","se","ve","locale","te","ctrlKey","altKey","metaKey","char","ue","we","datetime","email","tel","week","xe","ye","ze","Ae","Be","Ce","De","Ee","Fe","Ge","He","Ie","Je","Ke","Le","Me","_isInputEventSupported","Ne","Oe","Alt","Control","Meta","Shift","Pe","getModifierState","Qe","Re","Se","Te","Ue","Ve","movementX","movementY","We","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Xe","mouseEnter","mouseLeave","pointerEnter","pointerLeave","Ye","parentWindow","$e","af","bf","cf","df","select","ef","ff","gf","hf","jf","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","kf","onSelect","lf","animationName","elapsedTime","pseudoElement","mf","clipboardData","nf","of","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Apps","Scroll","MozPrintableKey","qf","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","119","120","121","123","144","145","224","rf","sf","dataTransfer","tf","targetTouches","uf","vf","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","Cf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","childContextTypes","Df","Ef","Ff","getChildContext","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","observedBits","responders","tg","ug","updateQueue","baseState","baseQueue","shared","pending","effects","vg","wg","suspenseConfig","xg","yg","zg","ca","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","shouldComponentUpdate","Lg","contextType","Mg","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ng","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","elementType","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","hh","memoizedProps","revealOrder","ih","responder","jh","kh","lh","mh","nh","oh","ph","qh","rh","uh","vh","wh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","dispatch","xh","yh","zh","Ah","destroy","deps","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","Zh","$h","bi","ci","di","ei","fi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","gi","getDerivedStateFromError","hi","pendingContext","ni","qi","ii","retryTime","ji","fallback","unstable_avoidThisFallback","ki","li","isBackwards","rendering","renderingStartTime","tail","tailExpiration","tailMode","ri","wasMultiple","multiple","onclick","ti","ui","vi","wi","xi","yi","zi","Ai","stack","Bi","WeakSet","Ci","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","Ki","Li","componentWillUnmount","Di","Mi","Ni","Oi","Pi","Qi","_reactRootContainer","Ri","Si","Ti","display","Ui","Vi","Wi","Xi","Yi","Zi","$i","componentDidCatch","aj","componentStack","Rj","bj","cj","dj","kj","lj","mj","nj","oj","qj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","Tj","wd","compareDocumentPosition","createRange","setStart","removeAllRanges","addRange","setEnd","vb","Uj","Vj","Wj","ob","Xj","unstable_observedBits","Zj","pendingChildren","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hk","jk","kk","unmount","form","Lj","lk","findFiberByHostInstance","bundleType","rendererPackageName","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","port2","port1","sortIndex","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","alert","confirm","prompt","decodeResponseBody","charset","contentTypeHeader","_contentType$split","getCharset","_objCreate","ParsingError","errorData","parseTimeStamp","computeSeconds","Settings","parseOptions","keyValueDelim","groupDelim","kv","parseCue","regionList","oInput","consumeTimeStamp","Errors","BadTimeStamp","skipWhitespace","region","alt","vals","vals0","integer","lineAlign","snapToLines","center","positionAlign","consumeCueSettings","BadSignature","dflt","defaultKey","TEXTAREA_ELEMENT","TAG_NAME","ruby","rt","DEFAULT_COLOR_CLASS","white","lime","cyan","red","yellow","magenta","blue","black","TAG_ANNOTATION","NEEDS_PARENT","parseContent","nextToken","shouldAdd","annotation","rootDiv","tagStack","classes","cl","bgColor","colorName","propValue","strongRTLRanges","isStrongRTLChar","determineBidi","nodeStack","pushNodes","nextTextNode","StyleBox","CueStyleBox","styleOptions","styles","writingMode","unicodeBidi","applyStyles","textAlign","font","whiteSpace","textPos","formatStyle","move","BoxPosition","rects","getClientRects","moveBoxToLinePosition","styleBox","containerBox","boxPositions","boxPosition","linePos","textTrackList","mediaElement","computeLinePos","axis","maxPosition","initialAxis","calculatedPercentage","bestPosition","specifiedPosition","percentage","overlapsOppositeAxis","within","overlapsAny","intersectPercentage","findBestPosition","toCSSCompatValues","unit","toMove","overlaps","getSimpleBoxPosition","convertCueToDOMTree","cuetext","overlay","paddedOverlay","margin","hasBeenReset","shouldCompute","reportOrThrowError","collectNextLine","pos","parseHeader","parseTimestampMap","xy","anchor","lines","regionAnchorX","regionAnchorY","viewportAnchorX","viewportAnchorY","scroll","onregion","parseRegion","alreadyCollectedLine","hasSubstring","directionSetting","alignSetting","findAlignSetting","_id","_pauseOnExit","_startTime","_endTime","_text","_region","_vertical","_snapToLines","_line","_lineAlign","_position","_positionAlign","_size","_align","setting","findDirectionSetting","SyntaxError","getCueAsHTML","scrollSetting","isValidPercentValue","_lines","_regionAnchorX","_regionAnchorY","_viewportAnchorX","_viewportAnchorY","_scroll","findScrollSetting","sham","Proxy","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","encodingOrOffset","allocUnsafe","fromArrayLike","fromArrayBuffer","isEncoding","actual","fromString","fromObject","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","hexWrite","remaining","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","lo","utf16leToBytes","fromByteArray","res","thirdByte","fourthByte","tempCodePoint","codePoint","bytesPerSequence","codePoints","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","typedArraySupport","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","includes","_arr","toHex","checkOffset","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","dst","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","extraBytes","len2","encodeChunk","lookup","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","LN2","conventions","entities","sax","ParseError","XMLReader","locator","DOMHandler","cdata","columnNumber","_locator","_toString","chars","java","appendElement","hander","currentElement","domBuilder","defaultNSMap","xmlns","entityMap","HTML_ENTITIES","XML_ENTITIES","setDocumentLocator","errorImpl","isCallback","build","msg","buildErrorHandler","startDocument","documentURI","startElement","qName","getURI","getQName","getLocator","endElement","startPrefixMapping","endPrefixMapping","processingInstruction","ins","ignorableWhitespace","characters","charNode","skippedEntity","endDocument","comm","startCDATA","endCDATA","startDTD","impl","dt","warning","fatalError","__DOMHandler","amp","apos","gt","lt","quot","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","ordf","laquo","not","shy","reg","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","times","divide","forall","exist","nabla","isin","notin","prod","minus","lowast","radic","infin","ang","and","or","cap","cup","there4","sim","cong","asymp","equiv","sup","nsub","sube","supe","oplus","otimes","perp","sdot","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Omicron","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","omicron","rho","sigmaf","sigma","tau","upsilon","phi","chi","omega","thetasym","upsih","piv","OElig","oelig","Scaron","scaron","Yuml","fnof","circ","tilde","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","bull","hellip","permil","prime","Prime","lsaquo","rsaquo","oline","euro","trade","larr","uarr","rarr","darr","harr","crarr","lceil","rceil","lfloor","rfloor","loz","spades","clubs","hearts","diams","nameStartChar","nameChar","tagNamePattern","copyLocator","parseElementStartPart","currentNSMap","entityReplacer","addAttribute","qname","attributeNames","addValue","setTagName","closed","localNSMap","nsp","nsPrefix","_copy","parseHtmlSpecialContent","elStartEnd","elEndStart","fixSelfClosed","closeMap","parseDCC","matchs","lastMatch","endDTD","parseInstruction","ElementAttributes","defaultNSMapCopy","surrogate1","surrogate2","fixedFromCharCode","appendText","xt","lineEnd","linePattern","lineStart","parseStack","tagStart","endMatch","locator2","getLocalName","Axios","mergeConfig","createInstance","defaultConfig","axios","instanceConfig","CancelToken","isCancel","promises","spread","InterceptorManager","dispatchRequest","interceptors","chain","interceptor","fulfilled","rejected","getUri","eject","transformData","throwIfCancellationRequested","throwIfRequested","fns","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","draining","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","nextTick","env","argv","versions","addListener","once","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","umask","normalizedName","isAxiosError","isAbsoluteURL","combineURLs","requestedURL","ignoreDuplicateOf","originURL","msie","urlParsingNode","resolveURL","hostname","port","pathname","requestURL","expires","domain","secure","cookie","toGMTString","executor","resolvePromise","token","BOOLS","sp","ENDPOINT","getHeaders","PublicClient","share","vid","snarkdown","isEmbed","renderExtras","ReactDOM"],"mappings":"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","file":"js/public-22038533a4459e4ef320.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 160);\n","var win;\n\nif (typeof window !== \"undefined\") {\n win = window;\n} else if (typeof global !== \"undefined\") {\n win = global;\n} else if (typeof self !== \"undefined\") {\n win = self;\n} else {\n win = {};\n}\n\nmodule.exports = win;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}","import window from 'global/window'; // const log2 = Math.log2 ? Math.log2 : (x) => (Math.log(x) / Math.log(2));\n\nvar repeat = function repeat(str, len) {\n var acc = '';\n\n while (len--) {\n acc += str;\n }\n\n return acc;\n}; // count the number of bits it would take to represent a number\n// we used to do this with log2 but BigInt does not support builtin math\n// Math.ceil(log2(x));\n\n\nexport var countBits = function countBits(x) {\n return x.toString(2).length;\n}; // count the number of whole bytes it would take to represent a number\n\nexport var countBytes = function countBytes(x) {\n return Math.ceil(countBits(x) / 8);\n};\nexport var padStart = function padStart(b, len, str) {\n if (str === void 0) {\n str = ' ';\n }\n\n return (repeat(str, len) + b.toString()).slice(-len);\n};\nexport var isArrayBufferView = function isArrayBufferView(obj) {\n if (ArrayBuffer.isView === 'function') {\n return ArrayBuffer.isView(obj);\n }\n\n return obj && obj.buffer instanceof ArrayBuffer;\n};\nexport var isTypedArray = function isTypedArray(obj) {\n return isArrayBufferView(obj);\n};\nexport var toUint8 = function toUint8(bytes) {\n if (bytes instanceof Uint8Array) {\n return bytes;\n }\n\n if (!Array.isArray(bytes) && !isTypedArray(bytes) && !(bytes instanceof ArrayBuffer)) {\n // any non-number or NaN leads to empty uint8array\n // eslint-disable-next-line\n if (typeof bytes !== 'number' || typeof bytes === 'number' && bytes !== bytes) {\n bytes = 0;\n } else {\n bytes = [bytes];\n }\n }\n\n return new Uint8Array(bytes && bytes.buffer || bytes, bytes && bytes.byteOffset || 0, bytes && bytes.byteLength || 0);\n};\nexport var toHexString = function toHexString(bytes) {\n bytes = toUint8(bytes);\n var str = '';\n\n for (var i = 0; i < bytes.length; i++) {\n str += padStart(bytes[i].toString(16), 2, '0');\n }\n\n return str;\n};\nexport var toBinaryString = function toBinaryString(bytes) {\n bytes = toUint8(bytes);\n var str = '';\n\n for (var i = 0; i < bytes.length; i++) {\n str += padStart(bytes[i].toString(2), 8, '0');\n }\n\n return str;\n};\nvar BigInt = window.BigInt || Number;\nvar BYTE_TABLE = [BigInt('0x1'), BigInt('0x100'), BigInt('0x10000'), BigInt('0x1000000'), BigInt('0x100000000'), BigInt('0x10000000000'), BigInt('0x1000000000000'), BigInt('0x100000000000000'), BigInt('0x10000000000000000')];\nexport var ENDIANNESS = function () {\n var a = new Uint16Array([0xFFCC]);\n var b = new Uint8Array(a.buffer, a.byteOffset, a.byteLength);\n\n if (b[0] === 0xFF) {\n return 'big';\n }\n\n if (b[0] === 0xCC) {\n return 'little';\n }\n\n return 'unknown';\n}();\nexport var IS_BIG_ENDIAN = ENDIANNESS === 'big';\nexport var IS_LITTLE_ENDIAN = ENDIANNESS === 'little';\nexport var bytesToNumber = function bytesToNumber(bytes, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$signed = _ref.signed,\n signed = _ref$signed === void 0 ? false : _ref$signed,\n _ref$le = _ref.le,\n le = _ref$le === void 0 ? false : _ref$le;\n\n bytes = toUint8(bytes);\n var fn = le ? 'reduce' : 'reduceRight';\n var obj = bytes[fn] ? bytes[fn] : Array.prototype[fn];\n var number = obj.call(bytes, function (total, byte, i) {\n var exponent = le ? i : Math.abs(i + 1 - bytes.length);\n return total + BigInt(byte) * BYTE_TABLE[exponent];\n }, BigInt(0));\n\n if (signed) {\n var max = BYTE_TABLE[bytes.length] / BigInt(2) - BigInt(1);\n number = BigInt(number);\n\n if (number > max) {\n number -= max;\n number -= max;\n number -= BigInt(2);\n }\n }\n\n return Number(number);\n};\nexport var numberToBytes = function numberToBytes(number, _temp2) {\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$le = _ref2.le,\n le = _ref2$le === void 0 ? false : _ref2$le; // eslint-disable-next-line\n\n\n if (typeof number !== 'bigint' && typeof number !== 'number' || typeof number === 'number' && number !== number) {\n number = 0;\n }\n\n number = BigInt(number);\n var byteCount = countBytes(number);\n var bytes = new Uint8Array(new ArrayBuffer(byteCount));\n\n for (var i = 0; i < byteCount; i++) {\n var byteIndex = le ? i : Math.abs(i + 1 - bytes.length);\n bytes[byteIndex] = Number(number / BYTE_TABLE[i] & BigInt(0xFF));\n\n if (number < 0) {\n bytes[byteIndex] = Math.abs(~bytes[byteIndex]);\n bytes[byteIndex] -= i === 0 ? 1 : 2;\n }\n }\n\n return bytes;\n};\nexport var bytesToString = function bytesToString(bytes) {\n if (!bytes) {\n return '';\n } // TODO: should toUint8 handle cases where we only have 8 bytes\n // but report more since this is a Uint16+ Array?\n\n\n bytes = Array.prototype.slice.call(bytes);\n var string = String.fromCharCode.apply(null, toUint8(bytes));\n\n try {\n return decodeURIComponent(escape(string));\n } catch (e) {// if decodeURIComponent/escape fails, we are dealing with partial\n // or full non string data. Just return the potentially garbled string.\n }\n\n return string;\n};\nexport var stringToBytes = function stringToBytes(string, stringIsBytes) {\n if (typeof string !== 'string' && string && typeof string.toString === 'function') {\n string = string.toString();\n }\n\n if (typeof string !== 'string') {\n return new Uint8Array();\n } // If the string already is bytes, we don't have to do this\n // otherwise we do this so that we split multi length characters\n // into individual bytes\n\n\n if (!stringIsBytes) {\n string = unescape(encodeURIComponent(string));\n }\n\n var view = new Uint8Array(string.length);\n\n for (var i = 0; i < string.length; i++) {\n view[i] = string.charCodeAt(i);\n }\n\n return view;\n};\nexport var concatTypedArrays = function concatTypedArrays() {\n for (var _len = arguments.length, buffers = new Array(_len), _key = 0; _key < _len; _key++) {\n buffers[_key] = arguments[_key];\n }\n\n buffers = buffers.filter(function (b) {\n return b && (b.byteLength || b.length) && typeof b !== 'string';\n });\n\n if (buffers.length <= 1) {\n // for 0 length we will return empty uint8\n // for 1 length we return the first uint8\n return toUint8(buffers[0]);\n }\n\n var totalLen = buffers.reduce(function (total, buf, i) {\n return total + (buf.byteLength || buf.length);\n }, 0);\n var tempBuffer = new Uint8Array(totalLen);\n var offset = 0;\n buffers.forEach(function (buf) {\n buf = toUint8(buf);\n tempBuffer.set(buf, offset);\n offset += buf.byteLength;\n });\n return tempBuffer;\n};\n/**\n * Check if the bytes \"b\" are contained within bytes \"a\".\n *\n * @param {Uint8Array|Array} a\n * Bytes to check in\n *\n * @param {Uint8Array|Array} b\n * Bytes to check for\n *\n * @param {Object} options\n * options\n *\n * @param {Array|Uint8Array} [offset=0]\n * offset to use when looking at bytes in a\n *\n * @param {Array|Uint8Array} [mask=[]]\n * mask to use on bytes before comparison.\n *\n * @return {boolean}\n * If all bytes in b are inside of a, taking into account\n * bit masks.\n */\n\nexport var bytesMatch = function bytesMatch(a, b, _temp3) {\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n _ref3$offset = _ref3.offset,\n offset = _ref3$offset === void 0 ? 0 : _ref3$offset,\n _ref3$mask = _ref3.mask,\n mask = _ref3$mask === void 0 ? [] : _ref3$mask;\n\n a = toUint8(a);\n b = toUint8(b); // ie 11 does not support uint8 every\n\n var fn = b.every ? b.every : Array.prototype.every;\n return b.length && a.length - offset >= b.length && // ie 11 doesn't support every on uin8\n fn.call(b, function (bByte, i) {\n var aByte = mask[i] ? mask[i] & a[offset + i] : a[offset + i];\n return bByte === aByte;\n });\n};\nexport var sliceBytes = function sliceBytes(src, start, end) {\n if (Uint8Array.prototype.slice) {\n return Uint8Array.prototype.slice.call(src, start, end);\n }\n\n return new Uint8Array(Array.prototype.slice.call(src, start, end));\n};\nexport var reverseBytes = function reverseBytes(src) {\n if (src.reverse) {\n return src.reverse();\n }\n\n return Array.prototype.reverse.call(src);\n};","var topLevel = typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : {};\n\nvar minDoc = require('min-document');\n\nvar doccy;\n\nif (typeof document !== 'undefined') {\n doccy = document;\n} else {\n doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4'];\n\n if (!doccy) {\n doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4'] = minDoc;\n }\n}\n\nmodule.exports = doccy;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// Source: http://jsfiddle.net/vWx8V/\n// http://stackoverflow.com/questions/5603195/full-list-of-javascript-keycodes\n\n/**\n * Conenience method returns corresponding value for given keyName or keyCode.\n *\n * @param {Mixed} keyCode {Number} or keyName {String}\n * @return {Mixed}\n * @api public\n */\nfunction keyCode(searchInput) {\n // Keyboard Events\n if (searchInput && 'object' === typeof searchInput) {\n var hasKeyCode = searchInput.which || searchInput.keyCode || searchInput.charCode;\n if (hasKeyCode) searchInput = hasKeyCode;\n } // Numbers\n\n\n if ('number' === typeof searchInput) return names[searchInput]; // Everything else (cast to string)\n\n var search = String(searchInput); // check codes\n\n var foundNamedKey = codes[search.toLowerCase()];\n if (foundNamedKey) return foundNamedKey; // check aliases\n\n var foundNamedKey = aliases[search.toLowerCase()];\n if (foundNamedKey) return foundNamedKey; // weird character?\n\n if (search.length === 1) return search.charCodeAt(0);\n return undefined;\n}\n/**\n * Compares a keyboard event with a given keyCode or keyName.\n *\n * @param {Event} event Keyboard event that should be tested\n * @param {Mixed} keyCode {Number} or keyName {String}\n * @return {Boolean}\n * @api public\n */\n\n\nkeyCode.isEventKey = function isEventKey(event, nameOrCode) {\n if (event && 'object' === typeof event) {\n var keyCode = event.which || event.keyCode || event.charCode;\n\n if (keyCode === null || keyCode === undefined) {\n return false;\n }\n\n if (typeof nameOrCode === 'string') {\n // check codes\n var foundNamedKey = codes[nameOrCode.toLowerCase()];\n\n if (foundNamedKey) {\n return foundNamedKey === keyCode;\n } // check aliases\n\n\n var foundNamedKey = aliases[nameOrCode.toLowerCase()];\n\n if (foundNamedKey) {\n return foundNamedKey === keyCode;\n }\n } else if (typeof nameOrCode === 'number') {\n return nameOrCode === keyCode;\n }\n\n return false;\n }\n};\n\nexports = module.exports = keyCode;\n/**\n * Get by name\n *\n * exports.code['enter'] // => 13\n */\n\nvar codes = exports.code = exports.codes = {\n 'backspace': 8,\n 'tab': 9,\n 'enter': 13,\n 'shift': 16,\n 'ctrl': 17,\n 'alt': 18,\n 'pause/break': 19,\n 'caps lock': 20,\n 'esc': 27,\n 'space': 32,\n 'page up': 33,\n 'page down': 34,\n 'end': 35,\n 'home': 36,\n 'left': 37,\n 'up': 38,\n 'right': 39,\n 'down': 40,\n 'insert': 45,\n 'delete': 46,\n 'command': 91,\n 'left command': 91,\n 'right command': 93,\n 'numpad *': 106,\n 'numpad +': 107,\n 'numpad -': 109,\n 'numpad .': 110,\n 'numpad /': 111,\n 'num lock': 144,\n 'scroll lock': 145,\n 'my computer': 182,\n 'my calculator': 183,\n ';': 186,\n '=': 187,\n ',': 188,\n '-': 189,\n '.': 190,\n '/': 191,\n '`': 192,\n '[': 219,\n '\\\\': 220,\n ']': 221,\n \"'\": 222\n}; // Helper aliases\n\nvar aliases = exports.aliases = {\n 'windows': 91,\n '⇧': 16,\n '⌥': 18,\n '⌃': 17,\n '⌘': 91,\n 'ctl': 17,\n 'control': 17,\n 'option': 18,\n 'pause': 19,\n 'break': 19,\n 'caps': 20,\n 'return': 13,\n 'escape': 27,\n 'spc': 32,\n 'spacebar': 32,\n 'pgup': 33,\n 'pgdn': 34,\n 'ins': 45,\n 'del': 46,\n 'cmd': 91\n};\n/*!\n * Programatically add the following\n */\n// lower case chars\n\nfor (i = 97; i < 123; i++) codes[String.fromCharCode(i)] = i - 32; // numbers\n\n\nfor (var i = 48; i < 58; i++) codes[i - 48] = i; // function keys\n\n\nfor (i = 1; i < 13; i++) codes['f' + i] = i + 111; // numpad keys\n\n\nfor (i = 0; i < 10; i++) codes['numpad ' + i] = i + 96;\n/**\n * Get by code\n *\n * exports.name[13] // => 'Enter'\n */\n\n\nvar names = exports.names = exports.title = {}; // title for backward compat\n// Create reverse mapping\n\nfor (i in codes) names[codes[i]] = i; // Add aliases\n\n\nfor (var alias in aliases) {\n codes[alias] = aliases[alias];\n}","import window from 'global/window';\nvar regexs = {\n // to determine mime types\n mp4: /^(av0?1|avc0?[1234]|vp0?9|flac|opus|mp3|mp4a|mp4v|stpp.ttml.im1t)/,\n webm: /^(vp0?[89]|av0?1|opus|vorbis)/,\n ogg: /^(vp0?[89]|theora|flac|opus|vorbis)/,\n // to determine if a codec is audio or video\n video: /^(av0?1|avc0?[1234]|vp0?[89]|hvc1|hev1|theora|mp4v)/,\n audio: /^(mp4a|flac|vorbis|opus|ac-[34]|ec-3|alac|mp3|speex|aac)/,\n text: /^(stpp.ttml.im1t)/,\n // mux.js support regex\n muxerVideo: /^(avc0?1)/,\n muxerAudio: /^(mp4a)/,\n // match nothing as muxer does not support text right now.\n // there cannot never be a character before the start of a string\n // so this matches nothing.\n muxerText: /a^/\n};\nvar mediaTypes = ['video', 'audio', 'text'];\nvar upperMediaTypes = ['Video', 'Audio', 'Text'];\n/**\n * Replace the old apple-style `avc1.
.
` codec string with the standard\n * `avc1.`\n *\n * @param {string} codec\n * Codec string to translate\n * @return {string}\n * The translated codec string\n */\n\nexport var translateLegacyCodec = function translateLegacyCodec(codec) {\n if (!codec) {\n return codec;\n }\n\n return codec.replace(/avc1\\.(\\d+)\\.(\\d+)/i, function (orig, profile, avcLevel) {\n var profileHex = ('00' + Number(profile).toString(16)).slice(-2);\n var avcLevelHex = ('00' + Number(avcLevel).toString(16)).slice(-2);\n return 'avc1.' + profileHex + '00' + avcLevelHex;\n });\n};\n/**\n * Replace the old apple-style `avc1.
.
` codec strings with the standard\n * `avc1.`\n *\n * @param {string[]} codecs\n * An array of codec strings to translate\n * @return {string[]}\n * The translated array of codec strings\n */\n\nexport var translateLegacyCodecs = function translateLegacyCodecs(codecs) {\n return codecs.map(translateLegacyCodec);\n};\n/**\n * Replace codecs in the codec string with the old apple-style `avc1.
.
` to the\n * standard `avc1.`.\n *\n * @param {string} codecString\n * The codec string\n * @return {string}\n * The codec string with old apple-style codecs replaced\n *\n * @private\n */\n\nexport var mapLegacyAvcCodecs = function mapLegacyAvcCodecs(codecString) {\n return codecString.replace(/avc1\\.(\\d+)\\.(\\d+)/i, function (match) {\n return translateLegacyCodecs([match])[0];\n });\n};\n/**\n * @typedef {Object} ParsedCodecInfo\n * @property {number} codecCount\n * Number of codecs parsed\n * @property {string} [videoCodec]\n * Parsed video codec (if found)\n * @property {string} [videoObjectTypeIndicator]\n * Video object type indicator (if found)\n * @property {string|null} audioProfile\n * Audio profile\n */\n\n/**\n * Parses a codec string to retrieve the number of codecs specified, the video codec and\n * object type indicator, and the audio profile.\n *\n * @param {string} [codecString]\n * The codec string to parse\n * @return {ParsedCodecInfo}\n * Parsed codec info\n */\n\nexport var parseCodecs = function parseCodecs(codecString) {\n if (codecString === void 0) {\n codecString = '';\n }\n\n var codecs = codecString.split(',');\n var result = [];\n codecs.forEach(function (codec) {\n codec = codec.trim();\n var codecType;\n mediaTypes.forEach(function (name) {\n var match = regexs[name].exec(codec.toLowerCase());\n\n if (!match || match.length <= 1) {\n return;\n }\n\n codecType = name; // maintain codec case\n\n var type = codec.substring(0, match[1].length);\n var details = codec.replace(type, '');\n result.push({\n type: type,\n details: details,\n mediaType: name\n });\n });\n\n if (!codecType) {\n result.push({\n type: codec,\n details: '',\n mediaType: 'unknown'\n });\n }\n });\n return result;\n};\n/**\n * Returns a ParsedCodecInfo object for the default alternate audio playlist if there is\n * a default alternate audio playlist for the provided audio group.\n *\n * @param {Object} master\n * The master playlist\n * @param {string} audioGroupId\n * ID of the audio group for which to find the default codec info\n * @return {ParsedCodecInfo}\n * Parsed codec info\n */\n\nexport var codecsFromDefault = function codecsFromDefault(master, audioGroupId) {\n if (!master.mediaGroups.AUDIO || !audioGroupId) {\n return null;\n }\n\n var audioGroup = master.mediaGroups.AUDIO[audioGroupId];\n\n if (!audioGroup) {\n return null;\n }\n\n for (var name in audioGroup) {\n var audioType = audioGroup[name];\n\n if (audioType.default && audioType.playlists) {\n // codec should be the same for all playlists within the audio type\n return parseCodecs(audioType.playlists[0].attributes.CODECS);\n }\n }\n\n return null;\n};\nexport var isVideoCodec = function isVideoCodec(codec) {\n if (codec === void 0) {\n codec = '';\n }\n\n return regexs.video.test(codec.trim().toLowerCase());\n};\nexport var isAudioCodec = function isAudioCodec(codec) {\n if (codec === void 0) {\n codec = '';\n }\n\n return regexs.audio.test(codec.trim().toLowerCase());\n};\nexport var isTextCodec = function isTextCodec(codec) {\n if (codec === void 0) {\n codec = '';\n }\n\n return regexs.text.test(codec.trim().toLowerCase());\n};\nexport var getMimeForCodec = function getMimeForCodec(codecString) {\n if (!codecString || typeof codecString !== 'string') {\n return;\n }\n\n var codecs = codecString.toLowerCase().split(',').map(function (c) {\n return translateLegacyCodec(c.trim());\n }); // default to video type\n\n var type = 'video'; // only change to audio type if the only codec we have is\n // audio\n\n if (codecs.length === 1 && isAudioCodec(codecs[0])) {\n type = 'audio';\n } else if (codecs.length === 1 && isTextCodec(codecs[0])) {\n // text uses application/ for now\n type = 'application';\n } // default the container to mp4\n\n\n var container = 'mp4'; // every codec must be able to go into the container\n // for that container to be the correct one\n\n if (codecs.every(function (c) {\n return regexs.mp4.test(c);\n })) {\n container = 'mp4';\n } else if (codecs.every(function (c) {\n return regexs.webm.test(c);\n })) {\n container = 'webm';\n } else if (codecs.every(function (c) {\n return regexs.ogg.test(c);\n })) {\n container = 'ogg';\n }\n\n return type + \"/\" + container + \";codecs=\\\"\" + codecString + \"\\\"\";\n};\nexport var browserSupportsCodec = function browserSupportsCodec(codecString) {\n if (codecString === void 0) {\n codecString = '';\n }\n\n return window.MediaSource && window.MediaSource.isTypeSupported && window.MediaSource.isTypeSupported(getMimeForCodec(codecString)) || false;\n};\nexport var muxerSupportsCodec = function muxerSupportsCodec(codecString) {\n if (codecString === void 0) {\n codecString = '';\n }\n\n return codecString.toLowerCase().split(',').every(function (codec) {\n codec = codec.trim(); // any match is supported.\n\n for (var i = 0; i < upperMediaTypes.length; i++) {\n var type = upperMediaTypes[i];\n\n if (regexs[\"muxer\" + type].test(codec)) {\n return true;\n }\n }\n\n return false;\n });\n};\nexport var DEFAULT_AUDIO_CODEC = 'mp4a.40.2';\nexport var DEFAULT_VIDEO_CODEC = 'avc1.4d400d';","'use strict';\n\nvar bind = require('./helpers/bind');\n/*global toString:true*/\n// utils is a library of generic helper functions non-specific to axios\n\n\nvar toString = Object.prototype.toString;\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\n\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\n\n\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\n\n\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\n\n\nfunction isFormData(val) {\n return typeof FormData !== 'undefined' && val instanceof FormData;\n}\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBufferView(val) {\n var result;\n\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && val.buffer instanceof ArrayBuffer;\n }\n\n return result;\n}\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\n\n\nfunction isString(val) {\n return typeof val === 'string';\n}\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\n\n\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\n\n\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\n\n\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\n\n\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\n\n\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\n\n\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\n\n\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\n\n\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\n\n\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\n\n\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\n\n\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n } // Force an array if not already something iterable\n\n\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction\n /* obj1, obj2, obj3, ... */\nmerge() {\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction\n /* obj1, obj2, obj3, ... */\ndeepMerge() {\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\n\n\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};","function _extends() {\n module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/*! @name mpd-parser @version 0.21.0 @license Apache-2.0 */\nimport resolveUrl from '@videojs/vhs-utils/es/resolve-url';\nimport window from 'global/window';\nimport { forEachMediaGroup } from '@videojs/vhs-utils/es/media-groups';\nimport decodeB64ToUint8Array from '@videojs/vhs-utils/es/decode-b64-to-uint8-array';\nimport { DOMParser } from '@xmldom/xmldom';\nvar version = \"0.21.0\";\n\nvar isObject = function isObject(obj) {\n return !!obj && typeof obj === 'object';\n};\n\nvar merge = function merge() {\n for (var _len = arguments.length, objects = new Array(_len), _key = 0; _key < _len; _key++) {\n objects[_key] = arguments[_key];\n }\n\n return objects.reduce(function (result, source) {\n if (typeof source !== 'object') {\n return result;\n }\n\n Object.keys(source).forEach(function (key) {\n if (Array.isArray(result[key]) && Array.isArray(source[key])) {\n result[key] = result[key].concat(source[key]);\n } else if (isObject(result[key]) && isObject(source[key])) {\n result[key] = merge(result[key], source[key]);\n } else {\n result[key] = source[key];\n }\n });\n return result;\n }, {});\n};\n\nvar values = function values(o) {\n return Object.keys(o).map(function (k) {\n return o[k];\n });\n};\n\nvar range = function range(start, end) {\n var result = [];\n\n for (var i = start; i < end; i++) {\n result.push(i);\n }\n\n return result;\n};\n\nvar flatten = function flatten(lists) {\n return lists.reduce(function (x, y) {\n return x.concat(y);\n }, []);\n};\n\nvar from = function from(list) {\n if (!list.length) {\n return [];\n }\n\n var result = [];\n\n for (var i = 0; i < list.length; i++) {\n result.push(list[i]);\n }\n\n return result;\n};\n\nvar findIndexes = function findIndexes(l, key) {\n return l.reduce(function (a, e, i) {\n if (e[key]) {\n a.push(i);\n }\n\n return a;\n }, []);\n};\n/**\n * Returns the first index that satisfies the matching function, or -1 if not found.\n *\n * Only necessary because of IE11 support.\n *\n * @param {Array} list - the list to search through\n * @param {Function} matchingFunction - the matching function\n *\n * @return {number} the matching index or -1 if not found\n */\n\n\nvar findIndex = function findIndex(list, matchingFunction) {\n for (var i = 0; i < list.length; i++) {\n if (matchingFunction(list[i])) {\n return i;\n }\n }\n\n return -1;\n};\n/**\n * Returns a union of the included lists provided each element can be identified by a key.\n *\n * @param {Array} list - list of lists to get the union of\n * @param {Function} keyFunction - the function to use as a key for each element\n *\n * @return {Array} the union of the arrays\n */\n\n\nvar union = function union(lists, keyFunction) {\n return values(lists.reduce(function (acc, list) {\n list.forEach(function (el) {\n acc[keyFunction(el)] = el;\n });\n return acc;\n }, {}));\n};\n\nvar errors = {\n INVALID_NUMBER_OF_PERIOD: 'INVALID_NUMBER_OF_PERIOD',\n DASH_EMPTY_MANIFEST: 'DASH_EMPTY_MANIFEST',\n DASH_INVALID_XML: 'DASH_INVALID_XML',\n NO_BASE_URL: 'NO_BASE_URL',\n MISSING_SEGMENT_INFORMATION: 'MISSING_SEGMENT_INFORMATION',\n SEGMENT_TIME_UNSPECIFIED: 'SEGMENT_TIME_UNSPECIFIED',\n UNSUPPORTED_UTC_TIMING_SCHEME: 'UNSUPPORTED_UTC_TIMING_SCHEME'\n};\n/**\n * @typedef {Object} SingleUri\n * @property {string} uri - relative location of segment\n * @property {string} resolvedUri - resolved location of segment\n * @property {Object} byterange - Object containing information on how to make byte range\n * requests following byte-range-spec per RFC2616.\n * @property {String} byterange.length - length of range request\n * @property {String} byterange.offset - byte offset of range request\n *\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.1\n */\n\n/**\n * Converts a URLType node (5.3.9.2.3 Table 13) to a segment object\n * that conforms to how m3u8-parser is structured\n *\n * @see https://github.com/videojs/m3u8-parser\n *\n * @param {string} baseUrl - baseUrl provided by nodes\n * @param {string} source - source url for segment\n * @param {string} range - optional range used for range calls,\n * follows RFC 2616, Clause 14.35.1\n * @return {SingleUri} full segment information transformed into a format similar\n * to m3u8-parser\n */\n\nvar urlTypeToSegment = function urlTypeToSegment(_ref) {\n var _ref$baseUrl = _ref.baseUrl,\n baseUrl = _ref$baseUrl === void 0 ? '' : _ref$baseUrl,\n _ref$source = _ref.source,\n source = _ref$source === void 0 ? '' : _ref$source,\n _ref$range = _ref.range,\n range = _ref$range === void 0 ? '' : _ref$range,\n _ref$indexRange = _ref.indexRange,\n indexRange = _ref$indexRange === void 0 ? '' : _ref$indexRange;\n var segment = {\n uri: source,\n resolvedUri: resolveUrl(baseUrl || '', source)\n };\n\n if (range || indexRange) {\n var rangeStr = range ? range : indexRange;\n var ranges = rangeStr.split('-'); // default to parsing this as a BigInt if possible\n\n var startRange = window.BigInt ? window.BigInt(ranges[0]) : parseInt(ranges[0], 10);\n var endRange = window.BigInt ? window.BigInt(ranges[1]) : parseInt(ranges[1], 10); // convert back to a number if less than MAX_SAFE_INTEGER\n\n if (startRange < Number.MAX_SAFE_INTEGER && typeof startRange === 'bigint') {\n startRange = Number(startRange);\n }\n\n if (endRange < Number.MAX_SAFE_INTEGER && typeof endRange === 'bigint') {\n endRange = Number(endRange);\n }\n\n var length;\n\n if (typeof endRange === 'bigint' || typeof startRange === 'bigint') {\n length = window.BigInt(endRange) - window.BigInt(startRange) + window.BigInt(1);\n } else {\n length = endRange - startRange + 1;\n }\n\n if (typeof length === 'bigint' && length < Number.MAX_SAFE_INTEGER) {\n length = Number(length);\n } // byterange should be inclusive according to\n // RFC 2616, Clause 14.35.1\n\n\n segment.byterange = {\n length: length,\n offset: startRange\n };\n }\n\n return segment;\n};\n\nvar byteRangeToString = function byteRangeToString(byterange) {\n // `endRange` is one less than `offset + length` because the HTTP range\n // header uses inclusive ranges\n var endRange;\n\n if (typeof byterange.offset === 'bigint' || typeof byterange.length === 'bigint') {\n endRange = window.BigInt(byterange.offset) + window.BigInt(byterange.length) - window.BigInt(1);\n } else {\n endRange = byterange.offset + byterange.length - 1;\n }\n\n return byterange.offset + \"-\" + endRange;\n};\n/**\n * parse the end number attribue that can be a string\n * number, or undefined.\n *\n * @param {string|number|undefined} endNumber\n * The end number attribute.\n *\n * @return {number|null}\n * The result of parsing the end number.\n */\n\n\nvar parseEndNumber = function parseEndNumber(endNumber) {\n if (endNumber && typeof endNumber !== 'number') {\n endNumber = parseInt(endNumber, 10);\n }\n\n if (isNaN(endNumber)) {\n return null;\n }\n\n return endNumber;\n};\n/**\n * Functions for calculating the range of available segments in static and dynamic\n * manifests.\n */\n\n\nvar segmentRange = {\n /**\n * Returns the entire range of available segments for a static MPD\n *\n * @param {Object} attributes\n * Inheritied MPD attributes\n * @return {{ start: number, end: number }}\n * The start and end numbers for available segments\n */\n static: function _static(attributes) {\n var duration = attributes.duration,\n _attributes$timescale = attributes.timescale,\n timescale = _attributes$timescale === void 0 ? 1 : _attributes$timescale,\n sourceDuration = attributes.sourceDuration,\n periodDuration = attributes.periodDuration;\n var endNumber = parseEndNumber(attributes.endNumber);\n var segmentDuration = duration / timescale;\n\n if (typeof endNumber === 'number') {\n return {\n start: 0,\n end: endNumber\n };\n }\n\n if (typeof periodDuration === 'number') {\n return {\n start: 0,\n end: periodDuration / segmentDuration\n };\n }\n\n return {\n start: 0,\n end: sourceDuration / segmentDuration\n };\n },\n\n /**\n * Returns the current live window range of available segments for a dynamic MPD\n *\n * @param {Object} attributes\n * Inheritied MPD attributes\n * @return {{ start: number, end: number }}\n * The start and end numbers for available segments\n */\n dynamic: function dynamic(attributes) {\n var NOW = attributes.NOW,\n clientOffset = attributes.clientOffset,\n availabilityStartTime = attributes.availabilityStartTime,\n _attributes$timescale2 = attributes.timescale,\n timescale = _attributes$timescale2 === void 0 ? 1 : _attributes$timescale2,\n duration = attributes.duration,\n _attributes$periodSta = attributes.periodStart,\n periodStart = _attributes$periodSta === void 0 ? 0 : _attributes$periodSta,\n _attributes$minimumUp = attributes.minimumUpdatePeriod,\n minimumUpdatePeriod = _attributes$minimumUp === void 0 ? 0 : _attributes$minimumUp,\n _attributes$timeShift = attributes.timeShiftBufferDepth,\n timeShiftBufferDepth = _attributes$timeShift === void 0 ? Infinity : _attributes$timeShift;\n var endNumber = parseEndNumber(attributes.endNumber); // clientOffset is passed in at the top level of mpd-parser and is an offset calculated\n // after retrieving UTC server time.\n\n var now = (NOW + clientOffset) / 1000; // WC stands for Wall Clock.\n // Convert the period start time to EPOCH.\n\n var periodStartWC = availabilityStartTime + periodStart; // Period end in EPOCH is manifest's retrieval time + time until next update.\n\n var periodEndWC = now + minimumUpdatePeriod;\n var periodDuration = periodEndWC - periodStartWC;\n var segmentCount = Math.ceil(periodDuration * timescale / duration);\n var availableStart = Math.floor((now - periodStartWC - timeShiftBufferDepth) * timescale / duration);\n var availableEnd = Math.floor((now - periodStartWC) * timescale / duration);\n return {\n start: Math.max(0, availableStart),\n end: typeof endNumber === 'number' ? endNumber : Math.min(segmentCount, availableEnd)\n };\n }\n};\n/**\n * Maps a range of numbers to objects with information needed to build the corresponding\n * segment list\n *\n * @name toSegmentsCallback\n * @function\n * @param {number} number\n * Number of the segment\n * @param {number} index\n * Index of the number in the range list\n * @return {{ number: Number, duration: Number, timeline: Number, time: Number }}\n * Object with segment timing and duration info\n */\n\n/**\n * Returns a callback for Array.prototype.map for mapping a range of numbers to\n * information needed to build the segment list.\n *\n * @param {Object} attributes\n * Inherited MPD attributes\n * @return {toSegmentsCallback}\n * Callback map function\n */\n\nvar toSegments = function toSegments(attributes) {\n return function (number) {\n var duration = attributes.duration,\n _attributes$timescale3 = attributes.timescale,\n timescale = _attributes$timescale3 === void 0 ? 1 : _attributes$timescale3,\n periodStart = attributes.periodStart,\n _attributes$startNumb = attributes.startNumber,\n startNumber = _attributes$startNumb === void 0 ? 1 : _attributes$startNumb;\n return {\n number: startNumber + number,\n duration: duration / timescale,\n timeline: periodStart,\n time: number * duration\n };\n };\n};\n/**\n * Returns a list of objects containing segment timing and duration info used for\n * building the list of segments. This uses the @duration attribute specified\n * in the MPD manifest to derive the range of segments.\n *\n * @param {Object} attributes\n * Inherited MPD attributes\n * @return {{number: number, duration: number, time: number, timeline: number}[]}\n * List of Objects with segment timing and duration info\n */\n\n\nvar parseByDuration = function parseByDuration(attributes) {\n var type = attributes.type,\n duration = attributes.duration,\n _attributes$timescale4 = attributes.timescale,\n timescale = _attributes$timescale4 === void 0 ? 1 : _attributes$timescale4,\n periodDuration = attributes.periodDuration,\n sourceDuration = attributes.sourceDuration;\n\n var _segmentRange$type = segmentRange[type](attributes),\n start = _segmentRange$type.start,\n end = _segmentRange$type.end;\n\n var segments = range(start, end).map(toSegments(attributes));\n\n if (type === 'static') {\n var index = segments.length - 1; // section is either a period or the full source\n\n var sectionDuration = typeof periodDuration === 'number' ? periodDuration : sourceDuration; // final segment may be less than full segment duration\n\n segments[index].duration = sectionDuration - duration / timescale * index;\n }\n\n return segments;\n};\n/**\n * Translates SegmentBase into a set of segments.\n * (DASH SPEC Section 5.3.9.3.2) contains a set of nodes. Each\n * node should be translated into segment.\n *\n * @param {Object} attributes\n * Object containing all inherited attributes from parent elements with attribute\n * names as keys\n * @return {Object.} list of segments\n */\n\n\nvar segmentsFromBase = function segmentsFromBase(attributes) {\n var baseUrl = attributes.baseUrl,\n _attributes$initializ = attributes.initialization,\n initialization = _attributes$initializ === void 0 ? {} : _attributes$initializ,\n sourceDuration = attributes.sourceDuration,\n _attributes$indexRang = attributes.indexRange,\n indexRange = _attributes$indexRang === void 0 ? '' : _attributes$indexRang,\n periodStart = attributes.periodStart,\n presentationTime = attributes.presentationTime,\n _attributes$number = attributes.number,\n number = _attributes$number === void 0 ? 0 : _attributes$number,\n duration = attributes.duration; // base url is required for SegmentBase to work, per spec (Section 5.3.9.2.1)\n\n if (!baseUrl) {\n throw new Error(errors.NO_BASE_URL);\n }\n\n var initSegment = urlTypeToSegment({\n baseUrl: baseUrl,\n source: initialization.sourceURL,\n range: initialization.range\n });\n var segment = urlTypeToSegment({\n baseUrl: baseUrl,\n source: baseUrl,\n indexRange: indexRange\n });\n segment.map = initSegment; // If there is a duration, use it, otherwise use the given duration of the source\n // (since SegmentBase is only for one total segment)\n\n if (duration) {\n var segmentTimeInfo = parseByDuration(attributes);\n\n if (segmentTimeInfo.length) {\n segment.duration = segmentTimeInfo[0].duration;\n segment.timeline = segmentTimeInfo[0].timeline;\n }\n } else if (sourceDuration) {\n segment.duration = sourceDuration;\n segment.timeline = periodStart;\n } // If presentation time is provided, these segments are being generated by SIDX\n // references, and should use the time provided. For the general case of SegmentBase,\n // there should only be one segment in the period, so its presentation time is the same\n // as its period start.\n\n\n segment.presentationTime = presentationTime || periodStart;\n segment.number = number;\n return [segment];\n};\n/**\n * Given a playlist, a sidx box, and a baseUrl, update the segment list of the playlist\n * according to the sidx information given.\n *\n * playlist.sidx has metadadata about the sidx where-as the sidx param\n * is the parsed sidx box itself.\n *\n * @param {Object} playlist the playlist to update the sidx information for\n * @param {Object} sidx the parsed sidx box\n * @return {Object} the playlist object with the updated sidx information\n */\n\n\nvar addSidxSegmentsToPlaylist$1 = function addSidxSegmentsToPlaylist(playlist, sidx, baseUrl) {\n // Retain init segment information\n var initSegment = playlist.sidx.map ? playlist.sidx.map : null; // Retain source duration from initial main manifest parsing\n\n var sourceDuration = playlist.sidx.duration; // Retain source timeline\n\n var timeline = playlist.timeline || 0;\n var sidxByteRange = playlist.sidx.byterange;\n var sidxEnd = sidxByteRange.offset + sidxByteRange.length; // Retain timescale of the parsed sidx\n\n var timescale = sidx.timescale; // referenceType 1 refers to other sidx boxes\n\n var mediaReferences = sidx.references.filter(function (r) {\n return r.referenceType !== 1;\n });\n var segments = [];\n var type = playlist.endList ? 'static' : 'dynamic';\n var periodStart = playlist.sidx.timeline;\n var presentationTime = periodStart;\n var number = playlist.mediaSequence || 0; // firstOffset is the offset from the end of the sidx box\n\n var startIndex; // eslint-disable-next-line\n\n if (typeof sidx.firstOffset === 'bigint') {\n startIndex = window.BigInt(sidxEnd) + sidx.firstOffset;\n } else {\n startIndex = sidxEnd + sidx.firstOffset;\n }\n\n for (var i = 0; i < mediaReferences.length; i++) {\n var reference = sidx.references[i]; // size of the referenced (sub)segment\n\n var size = reference.referencedSize; // duration of the referenced (sub)segment, in the timescale\n // this will be converted to seconds when generating segments\n\n var duration = reference.subsegmentDuration; // should be an inclusive range\n\n var endIndex = void 0; // eslint-disable-next-line\n\n if (typeof startIndex === 'bigint') {\n endIndex = startIndex + window.BigInt(size) - window.BigInt(1);\n } else {\n endIndex = startIndex + size - 1;\n }\n\n var indexRange = startIndex + \"-\" + endIndex;\n var attributes = {\n baseUrl: baseUrl,\n timescale: timescale,\n timeline: timeline,\n periodStart: periodStart,\n presentationTime: presentationTime,\n number: number,\n duration: duration,\n sourceDuration: sourceDuration,\n indexRange: indexRange,\n type: type\n };\n var segment = segmentsFromBase(attributes)[0];\n\n if (initSegment) {\n segment.map = initSegment;\n }\n\n segments.push(segment);\n\n if (typeof startIndex === 'bigint') {\n startIndex += window.BigInt(size);\n } else {\n startIndex += size;\n }\n\n presentationTime += duration / timescale;\n number++;\n }\n\n playlist.segments = segments;\n return playlist;\n};\n\nvar SUPPORTED_MEDIA_TYPES = ['AUDIO', 'SUBTITLES']; // allow one 60fps frame as leniency (arbitrarily chosen)\n\nvar TIME_FUDGE = 1 / 60;\n/**\n * Given a list of timelineStarts, combines, dedupes, and sorts them.\n *\n * @param {TimelineStart[]} timelineStarts - list of timeline starts\n *\n * @return {TimelineStart[]} the combined and deduped timeline starts\n */\n\nvar getUniqueTimelineStarts = function getUniqueTimelineStarts(timelineStarts) {\n return union(timelineStarts, function (_ref) {\n var timeline = _ref.timeline;\n return timeline;\n }).sort(function (a, b) {\n return a.timeline > b.timeline ? 1 : -1;\n });\n};\n/**\n * Finds the playlist with the matching NAME attribute.\n *\n * @param {Array} playlists - playlists to search through\n * @param {string} name - the NAME attribute to search for\n *\n * @return {Object|null} the matching playlist object, or null\n */\n\n\nvar findPlaylistWithName = function findPlaylistWithName(playlists, name) {\n for (var i = 0; i < playlists.length; i++) {\n if (playlists[i].attributes.NAME === name) {\n return playlists[i];\n }\n }\n\n return null;\n};\n/**\n * Gets a flattened array of media group playlists.\n *\n * @param {Object} manifest - the main manifest object\n *\n * @return {Array} the media group playlists\n */\n\n\nvar getMediaGroupPlaylists = function getMediaGroupPlaylists(manifest) {\n var mediaGroupPlaylists = [];\n forEachMediaGroup(manifest, SUPPORTED_MEDIA_TYPES, function (properties, type, group, label) {\n mediaGroupPlaylists = mediaGroupPlaylists.concat(properties.playlists || []);\n });\n return mediaGroupPlaylists;\n};\n/**\n * Updates the playlist's media sequence numbers.\n *\n * @param {Object} config - options object\n * @param {Object} config.playlist - the playlist to update\n * @param {number} config.mediaSequence - the mediaSequence number to start with\n */\n\n\nvar updateMediaSequenceForPlaylist = function updateMediaSequenceForPlaylist(_ref2) {\n var playlist = _ref2.playlist,\n mediaSequence = _ref2.mediaSequence;\n playlist.mediaSequence = mediaSequence;\n playlist.segments.forEach(function (segment, index) {\n segment.number = playlist.mediaSequence + index;\n });\n};\n/**\n * Updates the media and discontinuity sequence numbers of newPlaylists given oldPlaylists\n * and a complete list of timeline starts.\n *\n * If no matching playlist is found, only the discontinuity sequence number of the playlist\n * will be updated.\n *\n * Since early available timelines are not supported, at least one segment must be present.\n *\n * @param {Object} config - options object\n * @param {Object[]} oldPlaylists - the old playlists to use as a reference\n * @param {Object[]} newPlaylists - the new playlists to update\n * @param {Object} timelineStarts - all timelineStarts seen in the stream to this point\n */\n\n\nvar updateSequenceNumbers = function updateSequenceNumbers(_ref3) {\n var oldPlaylists = _ref3.oldPlaylists,\n newPlaylists = _ref3.newPlaylists,\n timelineStarts = _ref3.timelineStarts;\n newPlaylists.forEach(function (playlist) {\n playlist.discontinuitySequence = findIndex(timelineStarts, function (_ref4) {\n var timeline = _ref4.timeline;\n return timeline === playlist.timeline;\n }); // Playlists NAMEs come from DASH Representation IDs, which are mandatory\n // (see ISO_23009-1-2012 5.3.5.2).\n //\n // If the same Representation existed in a prior Period, it will retain the same NAME.\n\n var oldPlaylist = findPlaylistWithName(oldPlaylists, playlist.attributes.NAME);\n\n if (!oldPlaylist) {\n // Since this is a new playlist, the media sequence values can start from 0 without\n // consequence.\n return;\n } // TODO better support for live SIDX\n //\n // As of this writing, mpd-parser does not support multiperiod SIDX (in live or VOD).\n // This is evident by a playlist only having a single SIDX reference. In a multiperiod\n // playlist there would need to be multiple SIDX references. In addition, live SIDX is\n // not supported when the SIDX properties change on refreshes.\n //\n // In the future, if support needs to be added, the merging logic here can be called\n // after SIDX references are resolved. For now, exit early to prevent exceptions being\n // thrown due to undefined references.\n\n\n if (playlist.sidx) {\n return;\n } // Since we don't yet support early available timelines, we don't need to support\n // playlists with no segments.\n\n\n var firstNewSegment = playlist.segments[0];\n var oldMatchingSegmentIndex = findIndex(oldPlaylist.segments, function (oldSegment) {\n return Math.abs(oldSegment.presentationTime - firstNewSegment.presentationTime) < TIME_FUDGE;\n }); // No matching segment from the old playlist means the entire playlist was refreshed.\n // In this case the media sequence should account for this update, and the new segments\n // should be marked as discontinuous from the prior content, since the last prior\n // timeline was removed.\n\n if (oldMatchingSegmentIndex === -1) {\n updateMediaSequenceForPlaylist({\n playlist: playlist,\n mediaSequence: oldPlaylist.mediaSequence + oldPlaylist.segments.length\n });\n playlist.segments[0].discontinuity = true;\n playlist.discontinuityStarts.unshift(0); // No matching segment does not necessarily mean there's missing content.\n //\n // If the new playlist's timeline is the same as the last seen segment's timeline,\n // then a discontinuity can be added to identify that there's potentially missing\n // content. If there's no missing content, the discontinuity should still be rather\n // harmless. It's possible that if segment durations are accurate enough, that the\n // existence of a gap can be determined using the presentation times and durations,\n // but if the segment timing info is off, it may introduce more problems than simply\n // adding the discontinuity.\n //\n // If the new playlist's timeline is different from the last seen segment's timeline,\n // then a discontinuity can be added to identify that this is the first seen segment\n // of a new timeline. However, the logic at the start of this function that\n // determined the disconinuity sequence by timeline index is now off by one (the\n // discontinuity of the newest timeline hasn't yet fallen off the manifest...since\n // we added it), so the disconinuity sequence must be decremented.\n //\n // A period may also have a duration of zero, so the case of no segments is handled\n // here even though we don't yet support early available periods.\n\n if (!oldPlaylist.segments.length && playlist.timeline > oldPlaylist.timeline || oldPlaylist.segments.length && playlist.timeline > oldPlaylist.segments[oldPlaylist.segments.length - 1].timeline) {\n playlist.discontinuitySequence--;\n }\n\n return;\n } // If the first segment matched with a prior segment on a discontinuity (it's matching\n // on the first segment of a period), then the discontinuitySequence shouldn't be the\n // timeline's matching one, but instead should be the one prior, and the first segment\n // of the new manifest should be marked with a discontinuity.\n //\n // The reason for this special case is that discontinuity sequence shows how many\n // discontinuities have fallen off of the playlist, and discontinuities are marked on\n // the first segment of a new \"timeline.\" Because of this, while DASH will retain that\n // Period while the \"timeline\" exists, HLS keeps track of it via the discontinuity\n // sequence, and that first segment is an indicator, but can be removed before that\n // timeline is gone.\n\n\n var oldMatchingSegment = oldPlaylist.segments[oldMatchingSegmentIndex];\n\n if (oldMatchingSegment.discontinuity && !firstNewSegment.discontinuity) {\n firstNewSegment.discontinuity = true;\n playlist.discontinuityStarts.unshift(0);\n playlist.discontinuitySequence--;\n }\n\n updateMediaSequenceForPlaylist({\n playlist: playlist,\n mediaSequence: oldPlaylist.segments[oldMatchingSegmentIndex].number\n });\n });\n};\n/**\n * Given an old parsed manifest object and a new parsed manifest object, updates the\n * sequence and timing values within the new manifest to ensure that it lines up with the\n * old.\n *\n * @param {Array} oldManifest - the old main manifest object\n * @param {Array} newManifest - the new main manifest object\n *\n * @return {Object} the updated new manifest object\n */\n\n\nvar positionManifestOnTimeline = function positionManifestOnTimeline(_ref5) {\n var oldManifest = _ref5.oldManifest,\n newManifest = _ref5.newManifest; // Starting from v4.1.2 of the IOP, section 4.4.3.3 states:\n //\n // \"MPD@availabilityStartTime and Period@start shall not be changed over MPD updates.\"\n //\n // This was added from https://github.com/Dash-Industry-Forum/DASH-IF-IOP/issues/160\n //\n // Because of this change, and the difficulty of supporting periods with changing start\n // times, periods with changing start times are not supported. This makes the logic much\n // simpler, since periods with the same start time can be considerred the same period\n // across refreshes.\n //\n // To give an example as to the difficulty of handling periods where the start time may\n // change, if a single period manifest is refreshed with another manifest with a single\n // period, and both the start and end times are increased, then the only way to determine\n // if it's a new period or an old one that has changed is to look through the segments of\n // each playlist and determine the presentation time bounds to find a match. In addition,\n // if the period start changed to exceed the old period end, then there would be no\n // match, and it would not be possible to determine whether the refreshed period is a new\n // one or the old one.\n\n var oldPlaylists = oldManifest.playlists.concat(getMediaGroupPlaylists(oldManifest));\n var newPlaylists = newManifest.playlists.concat(getMediaGroupPlaylists(newManifest)); // Save all seen timelineStarts to the new manifest. Although this potentially means that\n // there's a \"memory leak\" in that it will never stop growing, in reality, only a couple\n // of properties are saved for each seen Period. Even long running live streams won't\n // generate too many Periods, unless the stream is watched for decades. In the future,\n // this can be optimized by mapping to discontinuity sequence numbers for each timeline,\n // but it may not become an issue, and the additional info can be useful for debugging.\n\n newManifest.timelineStarts = getUniqueTimelineStarts([oldManifest.timelineStarts, newManifest.timelineStarts]);\n updateSequenceNumbers({\n oldPlaylists: oldPlaylists,\n newPlaylists: newPlaylists,\n timelineStarts: newManifest.timelineStarts\n });\n return newManifest;\n};\n\nvar generateSidxKey = function generateSidxKey(sidx) {\n return sidx && sidx.uri + '-' + byteRangeToString(sidx.byterange);\n};\n\nvar mergeDiscontiguousPlaylists = function mergeDiscontiguousPlaylists(playlists) {\n var mergedPlaylists = values(playlists.reduce(function (acc, playlist) {\n // assuming playlist IDs are the same across periods\n // TODO: handle multiperiod where representation sets are not the same\n // across periods\n var name = playlist.attributes.id + (playlist.attributes.lang || '');\n\n if (!acc[name]) {\n // First Period\n acc[name] = playlist;\n acc[name].attributes.timelineStarts = [];\n } else {\n // Subsequent Periods\n if (playlist.segments) {\n var _acc$name$segments; // first segment of subsequent periods signal a discontinuity\n\n\n if (playlist.segments[0]) {\n playlist.segments[0].discontinuity = true;\n }\n\n (_acc$name$segments = acc[name].segments).push.apply(_acc$name$segments, playlist.segments);\n } // bubble up contentProtection, this assumes all DRM content\n // has the same contentProtection\n\n\n if (playlist.attributes.contentProtection) {\n acc[name].attributes.contentProtection = playlist.attributes.contentProtection;\n }\n }\n\n acc[name].attributes.timelineStarts.push({\n // Although they represent the same number, it's important to have both to make it\n // compatible with HLS potentially having a similar attribute.\n start: playlist.attributes.periodStart,\n timeline: playlist.attributes.periodStart\n });\n return acc;\n }, {}));\n return mergedPlaylists.map(function (playlist) {\n playlist.discontinuityStarts = findIndexes(playlist.segments || [], 'discontinuity');\n return playlist;\n });\n};\n\nvar addSidxSegmentsToPlaylist = function addSidxSegmentsToPlaylist(playlist, sidxMapping) {\n var sidxKey = generateSidxKey(playlist.sidx);\n var sidxMatch = sidxKey && sidxMapping[sidxKey] && sidxMapping[sidxKey].sidx;\n\n if (sidxMatch) {\n addSidxSegmentsToPlaylist$1(playlist, sidxMatch, playlist.sidx.resolvedUri);\n }\n\n return playlist;\n};\n\nvar addSidxSegmentsToPlaylists = function addSidxSegmentsToPlaylists(playlists, sidxMapping) {\n if (sidxMapping === void 0) {\n sidxMapping = {};\n }\n\n if (!Object.keys(sidxMapping).length) {\n return playlists;\n }\n\n for (var i in playlists) {\n playlists[i] = addSidxSegmentsToPlaylist(playlists[i], sidxMapping);\n }\n\n return playlists;\n};\n\nvar formatAudioPlaylist = function formatAudioPlaylist(_ref, isAudioOnly) {\n var _attributes;\n\n var attributes = _ref.attributes,\n segments = _ref.segments,\n sidx = _ref.sidx,\n mediaSequence = _ref.mediaSequence,\n discontinuitySequence = _ref.discontinuitySequence,\n discontinuityStarts = _ref.discontinuityStarts;\n var playlist = {\n attributes: (_attributes = {\n NAME: attributes.id,\n BANDWIDTH: attributes.bandwidth,\n CODECS: attributes.codecs\n }, _attributes['PROGRAM-ID'] = 1, _attributes),\n uri: '',\n endList: attributes.type === 'static',\n timeline: attributes.periodStart,\n resolvedUri: '',\n targetDuration: attributes.duration,\n discontinuitySequence: discontinuitySequence,\n discontinuityStarts: discontinuityStarts,\n timelineStarts: attributes.timelineStarts,\n mediaSequence: mediaSequence,\n segments: segments\n };\n\n if (attributes.contentProtection) {\n playlist.contentProtection = attributes.contentProtection;\n }\n\n if (sidx) {\n playlist.sidx = sidx;\n }\n\n if (isAudioOnly) {\n playlist.attributes.AUDIO = 'audio';\n playlist.attributes.SUBTITLES = 'subs';\n }\n\n return playlist;\n};\n\nvar formatVttPlaylist = function formatVttPlaylist(_ref2) {\n var _m3u8Attributes;\n\n var attributes = _ref2.attributes,\n segments = _ref2.segments,\n mediaSequence = _ref2.mediaSequence,\n discontinuityStarts = _ref2.discontinuityStarts,\n discontinuitySequence = _ref2.discontinuitySequence;\n\n if (typeof segments === 'undefined') {\n // vtt tracks may use single file in BaseURL\n segments = [{\n uri: attributes.baseUrl,\n timeline: attributes.periodStart,\n resolvedUri: attributes.baseUrl || '',\n duration: attributes.sourceDuration,\n number: 0\n }]; // targetDuration should be the same duration as the only segment\n\n attributes.duration = attributes.sourceDuration;\n }\n\n var m3u8Attributes = (_m3u8Attributes = {\n NAME: attributes.id,\n BANDWIDTH: attributes.bandwidth\n }, _m3u8Attributes['PROGRAM-ID'] = 1, _m3u8Attributes);\n\n if (attributes.codecs) {\n m3u8Attributes.CODECS = attributes.codecs;\n }\n\n return {\n attributes: m3u8Attributes,\n uri: '',\n endList: attributes.type === 'static',\n timeline: attributes.periodStart,\n resolvedUri: attributes.baseUrl || '',\n targetDuration: attributes.duration,\n timelineStarts: attributes.timelineStarts,\n discontinuityStarts: discontinuityStarts,\n discontinuitySequence: discontinuitySequence,\n mediaSequence: mediaSequence,\n segments: segments\n };\n};\n\nvar organizeAudioPlaylists = function organizeAudioPlaylists(playlists, sidxMapping, isAudioOnly) {\n if (sidxMapping === void 0) {\n sidxMapping = {};\n }\n\n if (isAudioOnly === void 0) {\n isAudioOnly = false;\n }\n\n var mainPlaylist;\n var formattedPlaylists = playlists.reduce(function (a, playlist) {\n var role = playlist.attributes.role && playlist.attributes.role.value || '';\n var language = playlist.attributes.lang || '';\n var label = playlist.attributes.label || 'main';\n\n if (language && !playlist.attributes.label) {\n var roleLabel = role ? \" (\" + role + \")\" : '';\n label = \"\" + playlist.attributes.lang + roleLabel;\n }\n\n if (!a[label]) {\n a[label] = {\n language: language,\n autoselect: true,\n default: role === 'main',\n playlists: [],\n uri: ''\n };\n }\n\n var formatted = addSidxSegmentsToPlaylist(formatAudioPlaylist(playlist, isAudioOnly), sidxMapping);\n a[label].playlists.push(formatted);\n\n if (typeof mainPlaylist === 'undefined' && role === 'main') {\n mainPlaylist = playlist;\n mainPlaylist.default = true;\n }\n\n return a;\n }, {}); // if no playlists have role \"main\", mark the first as main\n\n if (!mainPlaylist) {\n var firstLabel = Object.keys(formattedPlaylists)[0];\n formattedPlaylists[firstLabel].default = true;\n }\n\n return formattedPlaylists;\n};\n\nvar organizeVttPlaylists = function organizeVttPlaylists(playlists, sidxMapping) {\n if (sidxMapping === void 0) {\n sidxMapping = {};\n }\n\n return playlists.reduce(function (a, playlist) {\n var label = playlist.attributes.lang || 'text';\n\n if (!a[label]) {\n a[label] = {\n language: label,\n default: false,\n autoselect: false,\n playlists: [],\n uri: ''\n };\n }\n\n a[label].playlists.push(addSidxSegmentsToPlaylist(formatVttPlaylist(playlist), sidxMapping));\n return a;\n }, {});\n};\n\nvar organizeCaptionServices = function organizeCaptionServices(captionServices) {\n return captionServices.reduce(function (svcObj, svc) {\n if (!svc) {\n return svcObj;\n }\n\n svc.forEach(function (service) {\n var channel = service.channel,\n language = service.language;\n svcObj[language] = {\n autoselect: false,\n default: false,\n instreamId: channel,\n language: language\n };\n\n if (service.hasOwnProperty('aspectRatio')) {\n svcObj[language].aspectRatio = service.aspectRatio;\n }\n\n if (service.hasOwnProperty('easyReader')) {\n svcObj[language].easyReader = service.easyReader;\n }\n\n if (service.hasOwnProperty('3D')) {\n svcObj[language]['3D'] = service['3D'];\n }\n });\n return svcObj;\n }, {});\n};\n\nvar formatVideoPlaylist = function formatVideoPlaylist(_ref3) {\n var _attributes2;\n\n var attributes = _ref3.attributes,\n segments = _ref3.segments,\n sidx = _ref3.sidx,\n discontinuityStarts = _ref3.discontinuityStarts;\n var playlist = {\n attributes: (_attributes2 = {\n NAME: attributes.id,\n AUDIO: 'audio',\n SUBTITLES: 'subs',\n RESOLUTION: {\n width: attributes.width,\n height: attributes.height\n },\n CODECS: attributes.codecs,\n BANDWIDTH: attributes.bandwidth\n }, _attributes2['PROGRAM-ID'] = 1, _attributes2),\n uri: '',\n endList: attributes.type === 'static',\n timeline: attributes.periodStart,\n resolvedUri: '',\n targetDuration: attributes.duration,\n discontinuityStarts: discontinuityStarts,\n timelineStarts: attributes.timelineStarts,\n segments: segments\n };\n\n if (attributes.contentProtection) {\n playlist.contentProtection = attributes.contentProtection;\n }\n\n if (sidx) {\n playlist.sidx = sidx;\n }\n\n return playlist;\n};\n\nvar videoOnly = function videoOnly(_ref4) {\n var attributes = _ref4.attributes;\n return attributes.mimeType === 'video/mp4' || attributes.mimeType === 'video/webm' || attributes.contentType === 'video';\n};\n\nvar audioOnly = function audioOnly(_ref5) {\n var attributes = _ref5.attributes;\n return attributes.mimeType === 'audio/mp4' || attributes.mimeType === 'audio/webm' || attributes.contentType === 'audio';\n};\n\nvar vttOnly = function vttOnly(_ref6) {\n var attributes = _ref6.attributes;\n return attributes.mimeType === 'text/vtt' || attributes.contentType === 'text';\n};\n/**\n * Contains start and timeline properties denoting a timeline start. For DASH, these will\n * be the same number.\n *\n * @typedef {Object} TimelineStart\n * @property {number} start - the start time of the timeline\n * @property {number} timeline - the timeline number\n */\n\n/**\n * Adds appropriate media and discontinuity sequence values to the segments and playlists.\n *\n * Throughout mpd-parser, the `number` attribute is used in relation to `startNumber`, a\n * DASH specific attribute used in constructing segment URI's from templates. However, from\n * an HLS perspective, the `number` attribute on a segment would be its `mediaSequence`\n * value, which should start at the original media sequence value (or 0) and increment by 1\n * for each segment thereafter. Since DASH's `startNumber` values are independent per\n * period, it doesn't make sense to use it for `number`. Instead, assume everything starts\n * from a 0 mediaSequence value and increment from there.\n *\n * Note that VHS currently doesn't use the `number` property, but it can be helpful for\n * debugging and making sense of the manifest.\n *\n * For live playlists, to account for values increasing in manifests when periods are\n * removed on refreshes, merging logic should be used to update the numbers to their\n * appropriate values (to ensure they're sequential and increasing).\n *\n * @param {Object[]} playlists - the playlists to update\n * @param {TimelineStart[]} timelineStarts - the timeline starts for the manifest\n */\n\n\nvar addMediaSequenceValues = function addMediaSequenceValues(playlists, timelineStarts) {\n // increment all segments sequentially\n playlists.forEach(function (playlist) {\n playlist.mediaSequence = 0;\n playlist.discontinuitySequence = findIndex(timelineStarts, function (_ref7) {\n var timeline = _ref7.timeline;\n return timeline === playlist.timeline;\n });\n\n if (!playlist.segments) {\n return;\n }\n\n playlist.segments.forEach(function (segment, index) {\n segment.number = index;\n });\n });\n};\n/**\n * Given a media group object, flattens all playlists within the media group into a single\n * array.\n *\n * @param {Object} mediaGroupObject - the media group object\n *\n * @return {Object[]}\n * The media group playlists\n */\n\n\nvar flattenMediaGroupPlaylists = function flattenMediaGroupPlaylists(mediaGroupObject) {\n if (!mediaGroupObject) {\n return [];\n }\n\n return Object.keys(mediaGroupObject).reduce(function (acc, label) {\n var labelContents = mediaGroupObject[label];\n return acc.concat(labelContents.playlists);\n }, []);\n};\n\nvar toM3u8 = function toM3u8(_ref8) {\n var _mediaGroups;\n\n var dashPlaylists = _ref8.dashPlaylists,\n locations = _ref8.locations,\n _ref8$sidxMapping = _ref8.sidxMapping,\n sidxMapping = _ref8$sidxMapping === void 0 ? {} : _ref8$sidxMapping,\n previousManifest = _ref8.previousManifest;\n\n if (!dashPlaylists.length) {\n return {};\n } // grab all main manifest attributes\n\n\n var _dashPlaylists$0$attr = dashPlaylists[0].attributes,\n duration = _dashPlaylists$0$attr.sourceDuration,\n type = _dashPlaylists$0$attr.type,\n suggestedPresentationDelay = _dashPlaylists$0$attr.suggestedPresentationDelay,\n minimumUpdatePeriod = _dashPlaylists$0$attr.minimumUpdatePeriod;\n var videoPlaylists = mergeDiscontiguousPlaylists(dashPlaylists.filter(videoOnly)).map(formatVideoPlaylist);\n var audioPlaylists = mergeDiscontiguousPlaylists(dashPlaylists.filter(audioOnly));\n var vttPlaylists = mergeDiscontiguousPlaylists(dashPlaylists.filter(vttOnly));\n var captions = dashPlaylists.map(function (playlist) {\n return playlist.attributes.captionServices;\n }).filter(Boolean);\n var manifest = {\n allowCache: true,\n discontinuityStarts: [],\n segments: [],\n endList: true,\n mediaGroups: (_mediaGroups = {\n AUDIO: {},\n VIDEO: {}\n }, _mediaGroups['CLOSED-CAPTIONS'] = {}, _mediaGroups.SUBTITLES = {}, _mediaGroups),\n uri: '',\n duration: duration,\n playlists: addSidxSegmentsToPlaylists(videoPlaylists, sidxMapping)\n };\n\n if (minimumUpdatePeriod >= 0) {\n manifest.minimumUpdatePeriod = minimumUpdatePeriod * 1000;\n }\n\n if (locations) {\n manifest.locations = locations;\n }\n\n if (type === 'dynamic') {\n manifest.suggestedPresentationDelay = suggestedPresentationDelay;\n }\n\n var isAudioOnly = manifest.playlists.length === 0;\n var organizedAudioGroup = audioPlaylists.length ? organizeAudioPlaylists(audioPlaylists, sidxMapping, isAudioOnly) : null;\n var organizedVttGroup = vttPlaylists.length ? organizeVttPlaylists(vttPlaylists, sidxMapping) : null;\n var formattedPlaylists = videoPlaylists.concat(flattenMediaGroupPlaylists(organizedAudioGroup), flattenMediaGroupPlaylists(organizedVttGroup));\n var playlistTimelineStarts = formattedPlaylists.map(function (_ref9) {\n var timelineStarts = _ref9.timelineStarts;\n return timelineStarts;\n });\n manifest.timelineStarts = getUniqueTimelineStarts(playlistTimelineStarts);\n addMediaSequenceValues(formattedPlaylists, manifest.timelineStarts);\n\n if (organizedAudioGroup) {\n manifest.mediaGroups.AUDIO.audio = organizedAudioGroup;\n }\n\n if (organizedVttGroup) {\n manifest.mediaGroups.SUBTITLES.subs = organizedVttGroup;\n }\n\n if (captions.length) {\n manifest.mediaGroups['CLOSED-CAPTIONS'].cc = organizeCaptionServices(captions);\n }\n\n if (previousManifest) {\n return positionManifestOnTimeline({\n oldManifest: previousManifest,\n newManifest: manifest\n });\n }\n\n return manifest;\n};\n/**\n * Calculates the R (repetition) value for a live stream (for the final segment\n * in a manifest where the r value is negative 1)\n *\n * @param {Object} attributes\n * Object containing all inherited attributes from parent elements with attribute\n * names as keys\n * @param {number} time\n * current time (typically the total time up until the final segment)\n * @param {number} duration\n * duration property for the given \n *\n * @return {number}\n * R value to reach the end of the given period\n */\n\n\nvar getLiveRValue = function getLiveRValue(attributes, time, duration) {\n var NOW = attributes.NOW,\n clientOffset = attributes.clientOffset,\n availabilityStartTime = attributes.availabilityStartTime,\n _attributes$timescale = attributes.timescale,\n timescale = _attributes$timescale === void 0 ? 1 : _attributes$timescale,\n _attributes$periodSta = attributes.periodStart,\n periodStart = _attributes$periodSta === void 0 ? 0 : _attributes$periodSta,\n _attributes$minimumUp = attributes.minimumUpdatePeriod,\n minimumUpdatePeriod = _attributes$minimumUp === void 0 ? 0 : _attributes$minimumUp;\n var now = (NOW + clientOffset) / 1000;\n var periodStartWC = availabilityStartTime + periodStart;\n var periodEndWC = now + minimumUpdatePeriod;\n var periodDuration = periodEndWC - periodStartWC;\n return Math.ceil((periodDuration * timescale - time) / duration);\n};\n/**\n * Uses information provided by SegmentTemplate.SegmentTimeline to determine segment\n * timing and duration\n *\n * @param {Object} attributes\n * Object containing all inherited attributes from parent elements with attribute\n * names as keys\n * @param {Object[]} segmentTimeline\n * List of objects representing the attributes of each S element contained within\n *\n * @return {{number: number, duration: number, time: number, timeline: number}[]}\n * List of Objects with segment timing and duration info\n */\n\n\nvar parseByTimeline = function parseByTimeline(attributes, segmentTimeline) {\n var type = attributes.type,\n _attributes$minimumUp2 = attributes.minimumUpdatePeriod,\n minimumUpdatePeriod = _attributes$minimumUp2 === void 0 ? 0 : _attributes$minimumUp2,\n _attributes$media = attributes.media,\n media = _attributes$media === void 0 ? '' : _attributes$media,\n sourceDuration = attributes.sourceDuration,\n _attributes$timescale2 = attributes.timescale,\n timescale = _attributes$timescale2 === void 0 ? 1 : _attributes$timescale2,\n _attributes$startNumb = attributes.startNumber,\n startNumber = _attributes$startNumb === void 0 ? 1 : _attributes$startNumb,\n timeline = attributes.periodStart;\n var segments = [];\n var time = -1;\n\n for (var sIndex = 0; sIndex < segmentTimeline.length; sIndex++) {\n var S = segmentTimeline[sIndex];\n var duration = S.d;\n var repeat = S.r || 0;\n var segmentTime = S.t || 0;\n\n if (time < 0) {\n // first segment\n time = segmentTime;\n }\n\n if (segmentTime && segmentTime > time) {\n // discontinuity\n // TODO: How to handle this type of discontinuity\n // timeline++ here would treat it like HLS discontuity and content would\n // get appended without gap\n // E.G.\n // \n // \n // \n // \n // would have $Time$ values of [0, 1, 2, 5]\n // should this be appened at time positions [0, 1, 2, 3],(#EXT-X-DISCONTINUITY)\n // or [0, 1, 2, gap, gap, 5]? (#EXT-X-GAP)\n // does the value of sourceDuration consider this when calculating arbitrary\n // negative @r repeat value?\n // E.G. Same elements as above with this added at the end\n // \n // with a sourceDuration of 10\n // Would the 2 gaps be included in the time duration calculations resulting in\n // 8 segments with $Time$ values of [0, 1, 2, 5, 6, 7, 8, 9] or 10 segments\n // with $Time$ values of [0, 1, 2, 5, 6, 7, 8, 9, 10, 11] ?\n time = segmentTime;\n }\n\n var count = void 0;\n\n if (repeat < 0) {\n var nextS = sIndex + 1;\n\n if (nextS === segmentTimeline.length) {\n // last segment\n if (type === 'dynamic' && minimumUpdatePeriod > 0 && media.indexOf('$Number$') > 0) {\n count = getLiveRValue(attributes, time, duration);\n } else {\n // TODO: This may be incorrect depending on conclusion of TODO above\n count = (sourceDuration * timescale - time) / duration;\n }\n } else {\n count = (segmentTimeline[nextS].t - time) / duration;\n }\n } else {\n count = repeat + 1;\n }\n\n var end = startNumber + segments.length + count;\n var number = startNumber + segments.length;\n\n while (number < end) {\n segments.push({\n number: number,\n duration: duration / timescale,\n time: time,\n timeline: timeline\n });\n time += duration;\n number++;\n }\n }\n\n return segments;\n};\n\nvar identifierPattern = /\\$([A-z]*)(?:(%0)([0-9]+)d)?\\$/g;\n/**\n * Replaces template identifiers with corresponding values. To be used as the callback\n * for String.prototype.replace\n *\n * @name replaceCallback\n * @function\n * @param {string} match\n * Entire match of identifier\n * @param {string} identifier\n * Name of matched identifier\n * @param {string} format\n * Format tag string. Its presence indicates that padding is expected\n * @param {string} width\n * Desired length of the replaced value. Values less than this width shall be left\n * zero padded\n * @return {string}\n * Replacement for the matched identifier\n */\n\n/**\n * Returns a function to be used as a callback for String.prototype.replace to replace\n * template identifiers\n *\n * @param {Obect} values\n * Object containing values that shall be used to replace known identifiers\n * @param {number} values.RepresentationID\n * Value of the Representation@id attribute\n * @param {number} values.Number\n * Number of the corresponding segment\n * @param {number} values.Bandwidth\n * Value of the Representation@bandwidth attribute.\n * @param {number} values.Time\n * Timestamp value of the corresponding segment\n * @return {replaceCallback}\n * Callback to be used with String.prototype.replace to replace identifiers\n */\n\nvar identifierReplacement = function identifierReplacement(values) {\n return function (match, identifier, format, width) {\n if (match === '$$') {\n // escape sequence\n return '$';\n }\n\n if (typeof values[identifier] === 'undefined') {\n return match;\n }\n\n var value = '' + values[identifier];\n\n if (identifier === 'RepresentationID') {\n // Format tag shall not be present with RepresentationID\n return value;\n }\n\n if (!format) {\n width = 1;\n } else {\n width = parseInt(width, 10);\n }\n\n if (value.length >= width) {\n return value;\n }\n\n return \"\" + new Array(width - value.length + 1).join('0') + value;\n };\n};\n/**\n * Constructs a segment url from a template string\n *\n * @param {string} url\n * Template string to construct url from\n * @param {Obect} values\n * Object containing values that shall be used to replace known identifiers\n * @param {number} values.RepresentationID\n * Value of the Representation@id attribute\n * @param {number} values.Number\n * Number of the corresponding segment\n * @param {number} values.Bandwidth\n * Value of the Representation@bandwidth attribute.\n * @param {number} values.Time\n * Timestamp value of the corresponding segment\n * @return {string}\n * Segment url with identifiers replaced\n */\n\n\nvar constructTemplateUrl = function constructTemplateUrl(url, values) {\n return url.replace(identifierPattern, identifierReplacement(values));\n};\n/**\n * Generates a list of objects containing timing and duration information about each\n * segment needed to generate segment uris and the complete segment object\n *\n * @param {Object} attributes\n * Object containing all inherited attributes from parent elements with attribute\n * names as keys\n * @param {Object[]|undefined} segmentTimeline\n * List of objects representing the attributes of each S element contained within\n * the SegmentTimeline element\n * @return {{number: number, duration: number, time: number, timeline: number}[]}\n * List of Objects with segment timing and duration info\n */\n\n\nvar parseTemplateInfo = function parseTemplateInfo(attributes, segmentTimeline) {\n if (!attributes.duration && !segmentTimeline) {\n // if neither @duration or SegmentTimeline are present, then there shall be exactly\n // one media segment\n return [{\n number: attributes.startNumber || 1,\n duration: attributes.sourceDuration,\n time: 0,\n timeline: attributes.periodStart\n }];\n }\n\n if (attributes.duration) {\n return parseByDuration(attributes);\n }\n\n return parseByTimeline(attributes, segmentTimeline);\n};\n/**\n * Generates a list of segments using information provided by the SegmentTemplate element\n *\n * @param {Object} attributes\n * Object containing all inherited attributes from parent elements with attribute\n * names as keys\n * @param {Object[]|undefined} segmentTimeline\n * List of objects representing the attributes of each S element contained within\n * the SegmentTimeline element\n * @return {Object[]}\n * List of segment objects\n */\n\n\nvar segmentsFromTemplate = function segmentsFromTemplate(attributes, segmentTimeline) {\n var templateValues = {\n RepresentationID: attributes.id,\n Bandwidth: attributes.bandwidth || 0\n };\n var _attributes$initializ = attributes.initialization,\n initialization = _attributes$initializ === void 0 ? {\n sourceURL: '',\n range: ''\n } : _attributes$initializ;\n var mapSegment = urlTypeToSegment({\n baseUrl: attributes.baseUrl,\n source: constructTemplateUrl(initialization.sourceURL, templateValues),\n range: initialization.range\n });\n var segments = parseTemplateInfo(attributes, segmentTimeline);\n return segments.map(function (segment) {\n templateValues.Number = segment.number;\n templateValues.Time = segment.time;\n var uri = constructTemplateUrl(attributes.media || '', templateValues); // See DASH spec section 5.3.9.2.2\n // - if timescale isn't present on any level, default to 1.\n\n var timescale = attributes.timescale || 1; // - if presentationTimeOffset isn't present on any level, default to 0\n\n var presentationTimeOffset = attributes.presentationTimeOffset || 0;\n var presentationTime = // Even if the @t attribute is not specified for the segment, segment.time is\n // calculated in mpd-parser prior to this, so it's assumed to be available.\n attributes.periodStart + (segment.time - presentationTimeOffset) / timescale;\n var map = {\n uri: uri,\n timeline: segment.timeline,\n duration: segment.duration,\n resolvedUri: resolveUrl(attributes.baseUrl || '', uri),\n map: mapSegment,\n number: segment.number,\n presentationTime: presentationTime\n };\n return map;\n });\n};\n/**\n * Converts a (of type URLType from the DASH spec 5.3.9.2 Table 14)\n * to an object that matches the output of a segment in videojs/mpd-parser\n *\n * @param {Object} attributes\n * Object containing all inherited attributes from parent elements with attribute\n * names as keys\n * @param {Object} segmentUrl\n * node to translate into a segment object\n * @return {Object} translated segment object\n */\n\n\nvar SegmentURLToSegmentObject = function SegmentURLToSegmentObject(attributes, segmentUrl) {\n var baseUrl = attributes.baseUrl,\n _attributes$initializ = attributes.initialization,\n initialization = _attributes$initializ === void 0 ? {} : _attributes$initializ;\n var initSegment = urlTypeToSegment({\n baseUrl: baseUrl,\n source: initialization.sourceURL,\n range: initialization.range\n });\n var segment = urlTypeToSegment({\n baseUrl: baseUrl,\n source: segmentUrl.media,\n range: segmentUrl.mediaRange\n });\n segment.map = initSegment;\n return segment;\n};\n/**\n * Generates a list of segments using information provided by the SegmentList element\n * SegmentList (DASH SPEC Section 5.3.9.3.2) contains a set of nodes. Each\n * node should be translated into segment.\n *\n * @param {Object} attributes\n * Object containing all inherited attributes from parent elements with attribute\n * names as keys\n * @param {Object[]|undefined} segmentTimeline\n * List of objects representing the attributes of each S element contained within\n * the SegmentTimeline element\n * @return {Object.} list of segments\n */\n\n\nvar segmentsFromList = function segmentsFromList(attributes, segmentTimeline) {\n var duration = attributes.duration,\n _attributes$segmentUr = attributes.segmentUrls,\n segmentUrls = _attributes$segmentUr === void 0 ? [] : _attributes$segmentUr,\n periodStart = attributes.periodStart; // Per spec (5.3.9.2.1) no way to determine segment duration OR\n // if both SegmentTimeline and @duration are defined, it is outside of spec.\n\n if (!duration && !segmentTimeline || duration && segmentTimeline) {\n throw new Error(errors.SEGMENT_TIME_UNSPECIFIED);\n }\n\n var segmentUrlMap = segmentUrls.map(function (segmentUrlObject) {\n return SegmentURLToSegmentObject(attributes, segmentUrlObject);\n });\n var segmentTimeInfo;\n\n if (duration) {\n segmentTimeInfo = parseByDuration(attributes);\n }\n\n if (segmentTimeline) {\n segmentTimeInfo = parseByTimeline(attributes, segmentTimeline);\n }\n\n var segments = segmentTimeInfo.map(function (segmentTime, index) {\n if (segmentUrlMap[index]) {\n var segment = segmentUrlMap[index]; // See DASH spec section 5.3.9.2.2\n // - if timescale isn't present on any level, default to 1.\n\n var timescale = attributes.timescale || 1; // - if presentationTimeOffset isn't present on any level, default to 0\n\n var presentationTimeOffset = attributes.presentationTimeOffset || 0;\n segment.timeline = segmentTime.timeline;\n segment.duration = segmentTime.duration;\n segment.number = segmentTime.number;\n segment.presentationTime = periodStart + (segmentTime.time - presentationTimeOffset) / timescale;\n return segment;\n } // Since we're mapping we should get rid of any blank segments (in case\n // the given SegmentTimeline is handling for more elements than we have\n // SegmentURLs for).\n\n }).filter(function (segment) {\n return segment;\n });\n return segments;\n};\n\nvar generateSegments = function generateSegments(_ref) {\n var attributes = _ref.attributes,\n segmentInfo = _ref.segmentInfo;\n var segmentAttributes;\n var segmentsFn;\n\n if (segmentInfo.template) {\n segmentsFn = segmentsFromTemplate;\n segmentAttributes = merge(attributes, segmentInfo.template);\n } else if (segmentInfo.base) {\n segmentsFn = segmentsFromBase;\n segmentAttributes = merge(attributes, segmentInfo.base);\n } else if (segmentInfo.list) {\n segmentsFn = segmentsFromList;\n segmentAttributes = merge(attributes, segmentInfo.list);\n }\n\n var segmentsInfo = {\n attributes: attributes\n };\n\n if (!segmentsFn) {\n return segmentsInfo;\n }\n\n var segments = segmentsFn(segmentAttributes, segmentInfo.segmentTimeline); // The @duration attribute will be used to determin the playlist's targetDuration which\n // must be in seconds. Since we've generated the segment list, we no longer need\n // @duration to be in @timescale units, so we can convert it here.\n\n if (segmentAttributes.duration) {\n var _segmentAttributes = segmentAttributes,\n duration = _segmentAttributes.duration,\n _segmentAttributes$ti = _segmentAttributes.timescale,\n timescale = _segmentAttributes$ti === void 0 ? 1 : _segmentAttributes$ti;\n segmentAttributes.duration = duration / timescale;\n } else if (segments.length) {\n // if there is no @duration attribute, use the largest segment duration as\n // as target duration\n segmentAttributes.duration = segments.reduce(function (max, segment) {\n return Math.max(max, Math.ceil(segment.duration));\n }, 0);\n } else {\n segmentAttributes.duration = 0;\n }\n\n segmentsInfo.attributes = segmentAttributes;\n segmentsInfo.segments = segments; // This is a sidx box without actual segment information\n\n if (segmentInfo.base && segmentAttributes.indexRange) {\n segmentsInfo.sidx = segments[0];\n segmentsInfo.segments = [];\n }\n\n return segmentsInfo;\n};\n\nvar toPlaylists = function toPlaylists(representations) {\n return representations.map(generateSegments);\n};\n\nvar findChildren = function findChildren(element, name) {\n return from(element.childNodes).filter(function (_ref) {\n var tagName = _ref.tagName;\n return tagName === name;\n });\n};\n\nvar getContent = function getContent(element) {\n return element.textContent.trim();\n};\n\nvar parseDuration = function parseDuration(str) {\n var SECONDS_IN_YEAR = 365 * 24 * 60 * 60;\n var SECONDS_IN_MONTH = 30 * 24 * 60 * 60;\n var SECONDS_IN_DAY = 24 * 60 * 60;\n var SECONDS_IN_HOUR = 60 * 60;\n var SECONDS_IN_MIN = 60; // P10Y10M10DT10H10M10.1S\n\n var durationRegex = /P(?:(\\d*)Y)?(?:(\\d*)M)?(?:(\\d*)D)?(?:T(?:(\\d*)H)?(?:(\\d*)M)?(?:([\\d.]*)S)?)?/;\n var match = durationRegex.exec(str);\n\n if (!match) {\n return 0;\n }\n\n var _match$slice = match.slice(1),\n year = _match$slice[0],\n month = _match$slice[1],\n day = _match$slice[2],\n hour = _match$slice[3],\n minute = _match$slice[4],\n second = _match$slice[5];\n\n return parseFloat(year || 0) * SECONDS_IN_YEAR + parseFloat(month || 0) * SECONDS_IN_MONTH + parseFloat(day || 0) * SECONDS_IN_DAY + parseFloat(hour || 0) * SECONDS_IN_HOUR + parseFloat(minute || 0) * SECONDS_IN_MIN + parseFloat(second || 0);\n};\n\nvar parseDate = function parseDate(str) {\n // Date format without timezone according to ISO 8601\n // YYY-MM-DDThh:mm:ss.ssssss\n var dateRegex = /^\\d+-\\d+-\\d+T\\d+:\\d+:\\d+(\\.\\d+)?$/; // If the date string does not specifiy a timezone, we must specifiy UTC. This is\n // expressed by ending with 'Z'\n\n if (dateRegex.test(str)) {\n str += 'Z';\n }\n\n return Date.parse(str);\n};\n\nvar parsers = {\n /**\n * Specifies the duration of the entire Media Presentation. Format is a duration string\n * as specified in ISO 8601\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The duration in seconds\n */\n mediaPresentationDuration: function mediaPresentationDuration(value) {\n return parseDuration(value);\n },\n\n /**\n * Specifies the Segment availability start time for all Segments referred to in this\n * MPD. For a dynamic manifest, it specifies the anchor for the earliest availability\n * time. Format is a date string as specified in ISO 8601\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The date as seconds from unix epoch\n */\n availabilityStartTime: function availabilityStartTime(value) {\n return parseDate(value) / 1000;\n },\n\n /**\n * Specifies the smallest period between potential changes to the MPD. Format is a\n * duration string as specified in ISO 8601\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The duration in seconds\n */\n minimumUpdatePeriod: function minimumUpdatePeriod(value) {\n return parseDuration(value);\n },\n\n /**\n * Specifies the suggested presentation delay. Format is a\n * duration string as specified in ISO 8601\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The duration in seconds\n */\n suggestedPresentationDelay: function suggestedPresentationDelay(value) {\n return parseDuration(value);\n },\n\n /**\n * specifices the type of mpd. Can be either \"static\" or \"dynamic\"\n *\n * @param {string} value\n * value of attribute as a string\n *\n * @return {string}\n * The type as a string\n */\n type: function type(value) {\n return value;\n },\n\n /**\n * Specifies the duration of the smallest time shifting buffer for any Representation\n * in the MPD. Format is a duration string as specified in ISO 8601\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The duration in seconds\n */\n timeShiftBufferDepth: function timeShiftBufferDepth(value) {\n return parseDuration(value);\n },\n\n /**\n * Specifies the PeriodStart time of the Period relative to the availabilityStarttime.\n * Format is a duration string as specified in ISO 8601\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The duration in seconds\n */\n start: function start(value) {\n return parseDuration(value);\n },\n\n /**\n * Specifies the width of the visual presentation\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed width\n */\n width: function width(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the height of the visual presentation\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed height\n */\n height: function height(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the bitrate of the representation\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed bandwidth\n */\n bandwidth: function bandwidth(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the number of the first Media Segment in this Representation in the Period\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed number\n */\n startNumber: function startNumber(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the timescale in units per seconds\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed timescale\n */\n timescale: function timescale(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the presentationTimeOffset.\n *\n * @param {string} value\n * value of the attribute as a string\n *\n * @return {number}\n * The parsed presentationTimeOffset\n */\n presentationTimeOffset: function presentationTimeOffset(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the constant approximate Segment duration\n * NOTE: The element also contains an @duration attribute. This duration\n * specifies the duration of the Period. This attribute is currently not\n * supported by the rest of the parser, however we still check for it to prevent\n * errors.\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed duration\n */\n duration: function duration(value) {\n var parsedValue = parseInt(value, 10);\n\n if (isNaN(parsedValue)) {\n return parseDuration(value);\n }\n\n return parsedValue;\n },\n\n /**\n * Specifies the Segment duration, in units of the value of the @timescale.\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed duration\n */\n d: function d(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the MPD start time, in @timescale units, the first Segment in the series\n * starts relative to the beginning of the Period\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed time\n */\n t: function t(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the repeat count of the number of following contiguous Segments with the\n * same duration expressed by the value of @d\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed number\n */\n r: function r(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Default parser for all other attributes. Acts as a no-op and just returns the value\n * as a string\n *\n * @param {string} value\n * value of attribute as a string\n * @return {string}\n * Unparsed value\n */\n DEFAULT: function DEFAULT(value) {\n return value;\n }\n};\n/**\n * Gets all the attributes and values of the provided node, parses attributes with known\n * types, and returns an object with attribute names mapped to values.\n *\n * @param {Node} el\n * The node to parse attributes from\n * @return {Object}\n * Object with all attributes of el parsed\n */\n\nvar parseAttributes = function parseAttributes(el) {\n if (!(el && el.attributes)) {\n return {};\n }\n\n return from(el.attributes).reduce(function (a, e) {\n var parseFn = parsers[e.name] || parsers.DEFAULT;\n a[e.name] = parseFn(e.value);\n return a;\n }, {});\n};\n\nvar keySystemsMap = {\n 'urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b': 'org.w3.clearkey',\n 'urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed': 'com.widevine.alpha',\n 'urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95': 'com.microsoft.playready',\n 'urn:uuid:f239e769-efa3-4850-9c16-a903c6932efb': 'com.adobe.primetime'\n};\n/**\n * Builds a list of urls that is the product of the reference urls and BaseURL values\n *\n * @param {string[]} referenceUrls\n * List of reference urls to resolve to\n * @param {Node[]} baseUrlElements\n * List of BaseURL nodes from the mpd\n * @return {string[]}\n * List of resolved urls\n */\n\nvar buildBaseUrls = function buildBaseUrls(referenceUrls, baseUrlElements) {\n if (!baseUrlElements.length) {\n return referenceUrls;\n }\n\n return flatten(referenceUrls.map(function (reference) {\n return baseUrlElements.map(function (baseUrlElement) {\n return resolveUrl(reference, getContent(baseUrlElement));\n });\n }));\n};\n/**\n * Contains all Segment information for its containing AdaptationSet\n *\n * @typedef {Object} SegmentInformation\n * @property {Object|undefined} template\n * Contains the attributes for the SegmentTemplate node\n * @property {Object[]|undefined} segmentTimeline\n * Contains a list of atrributes for each S node within the SegmentTimeline node\n * @property {Object|undefined} list\n * Contains the attributes for the SegmentList node\n * @property {Object|undefined} base\n * Contains the attributes for the SegmentBase node\n */\n\n/**\n * Returns all available Segment information contained within the AdaptationSet node\n *\n * @param {Node} adaptationSet\n * The AdaptationSet node to get Segment information from\n * @return {SegmentInformation}\n * The Segment information contained within the provided AdaptationSet\n */\n\n\nvar getSegmentInformation = function getSegmentInformation(adaptationSet) {\n var segmentTemplate = findChildren(adaptationSet, 'SegmentTemplate')[0];\n var segmentList = findChildren(adaptationSet, 'SegmentList')[0];\n var segmentUrls = segmentList && findChildren(segmentList, 'SegmentURL').map(function (s) {\n return merge({\n tag: 'SegmentURL'\n }, parseAttributes(s));\n });\n var segmentBase = findChildren(adaptationSet, 'SegmentBase')[0];\n var segmentTimelineParentNode = segmentList || segmentTemplate;\n var segmentTimeline = segmentTimelineParentNode && findChildren(segmentTimelineParentNode, 'SegmentTimeline')[0];\n var segmentInitializationParentNode = segmentList || segmentBase || segmentTemplate;\n var segmentInitialization = segmentInitializationParentNode && findChildren(segmentInitializationParentNode, 'Initialization')[0]; // SegmentTemplate is handled slightly differently, since it can have both\n // @initialization and an node. @initialization can be templated,\n // while the node can have a url and range specified. If the has\n // both @initialization and an subelement we opt to override with\n // the node, as this interaction is not defined in the spec.\n\n var template = segmentTemplate && parseAttributes(segmentTemplate);\n\n if (template && segmentInitialization) {\n template.initialization = segmentInitialization && parseAttributes(segmentInitialization);\n } else if (template && template.initialization) {\n // If it is @initialization we convert it to an object since this is the format that\n // later functions will rely on for the initialization segment. This is only valid\n // for \n template.initialization = {\n sourceURL: template.initialization\n };\n }\n\n var segmentInfo = {\n template: template,\n segmentTimeline: segmentTimeline && findChildren(segmentTimeline, 'S').map(function (s) {\n return parseAttributes(s);\n }),\n list: segmentList && merge(parseAttributes(segmentList), {\n segmentUrls: segmentUrls,\n initialization: parseAttributes(segmentInitialization)\n }),\n base: segmentBase && merge(parseAttributes(segmentBase), {\n initialization: parseAttributes(segmentInitialization)\n })\n };\n Object.keys(segmentInfo).forEach(function (key) {\n if (!segmentInfo[key]) {\n delete segmentInfo[key];\n }\n });\n return segmentInfo;\n};\n/**\n * Contains Segment information and attributes needed to construct a Playlist object\n * from a Representation\n *\n * @typedef {Object} RepresentationInformation\n * @property {SegmentInformation} segmentInfo\n * Segment information for this Representation\n * @property {Object} attributes\n * Inherited attributes for this Representation\n */\n\n/**\n * Maps a Representation node to an object containing Segment information and attributes\n *\n * @name inheritBaseUrlsCallback\n * @function\n * @param {Node} representation\n * Representation node from the mpd\n * @return {RepresentationInformation}\n * Representation information needed to construct a Playlist object\n */\n\n/**\n * Returns a callback for Array.prototype.map for mapping Representation nodes to\n * Segment information and attributes using inherited BaseURL nodes.\n *\n * @param {Object} adaptationSetAttributes\n * Contains attributes inherited by the AdaptationSet\n * @param {string[]} adaptationSetBaseUrls\n * Contains list of resolved base urls inherited by the AdaptationSet\n * @param {SegmentInformation} adaptationSetSegmentInfo\n * Contains Segment information for the AdaptationSet\n * @return {inheritBaseUrlsCallback}\n * Callback map function\n */\n\n\nvar inheritBaseUrls = function inheritBaseUrls(adaptationSetAttributes, adaptationSetBaseUrls, adaptationSetSegmentInfo) {\n return function (representation) {\n var repBaseUrlElements = findChildren(representation, 'BaseURL');\n var repBaseUrls = buildBaseUrls(adaptationSetBaseUrls, repBaseUrlElements);\n var attributes = merge(adaptationSetAttributes, parseAttributes(representation));\n var representationSegmentInfo = getSegmentInformation(representation);\n return repBaseUrls.map(function (baseUrl) {\n return {\n segmentInfo: merge(adaptationSetSegmentInfo, representationSegmentInfo),\n attributes: merge(attributes, {\n baseUrl: baseUrl\n })\n };\n });\n };\n};\n/**\n * Tranforms a series of content protection nodes to\n * an object containing pssh data by key system\n *\n * @param {Node[]} contentProtectionNodes\n * Content protection nodes\n * @return {Object}\n * Object containing pssh data by key system\n */\n\n\nvar generateKeySystemInformation = function generateKeySystemInformation(contentProtectionNodes) {\n return contentProtectionNodes.reduce(function (acc, node) {\n var attributes = parseAttributes(node);\n var keySystem = keySystemsMap[attributes.schemeIdUri];\n\n if (keySystem) {\n acc[keySystem] = {\n attributes: attributes\n };\n var psshNode = findChildren(node, 'cenc:pssh')[0];\n\n if (psshNode) {\n var pssh = getContent(psshNode);\n var psshBuffer = pssh && decodeB64ToUint8Array(pssh);\n acc[keySystem].pssh = psshBuffer;\n }\n }\n\n return acc;\n }, {});\n}; // defined in ANSI_SCTE 214-1 2016\n\n\nvar parseCaptionServiceMetadata = function parseCaptionServiceMetadata(service) {\n // 608 captions\n if (service.schemeIdUri === 'urn:scte:dash:cc:cea-608:2015') {\n var values = typeof service.value !== 'string' ? [] : service.value.split(';');\n return values.map(function (value) {\n var channel;\n var language; // default language to value\n\n language = value;\n\n if (/^CC\\d=/.test(value)) {\n var _value$split = value.split('=');\n\n channel = _value$split[0];\n language = _value$split[1];\n } else if (/^CC\\d$/.test(value)) {\n channel = value;\n }\n\n return {\n channel: channel,\n language: language\n };\n });\n } else if (service.schemeIdUri === 'urn:scte:dash:cc:cea-708:2015') {\n var _values = typeof service.value !== 'string' ? [] : service.value.split(';');\n\n return _values.map(function (value) {\n var flags = {\n // service or channel number 1-63\n 'channel': undefined,\n // language is a 3ALPHA per ISO 639.2/B\n // field is required\n 'language': undefined,\n // BIT 1/0 or ?\n // default value is 1, meaning 16:9 aspect ratio, 0 is 4:3, ? is unknown\n 'aspectRatio': 1,\n // BIT 1/0\n // easy reader flag indicated the text is tailed to the needs of beginning readers\n // default 0, or off\n 'easyReader': 0,\n // BIT 1/0\n // If 3d metadata is present (CEA-708.1) then 1\n // default 0\n '3D': 0\n };\n\n if (/=/.test(value)) {\n var _value$split2 = value.split('='),\n channel = _value$split2[0],\n _value$split2$ = _value$split2[1],\n opts = _value$split2$ === void 0 ? '' : _value$split2$;\n\n flags.channel = channel;\n flags.language = value;\n opts.split(',').forEach(function (opt) {\n var _opt$split = opt.split(':'),\n name = _opt$split[0],\n val = _opt$split[1];\n\n if (name === 'lang') {\n flags.language = val; // er for easyReadery\n } else if (name === 'er') {\n flags.easyReader = Number(val); // war for wide aspect ratio\n } else if (name === 'war') {\n flags.aspectRatio = Number(val);\n } else if (name === '3D') {\n flags['3D'] = Number(val);\n }\n });\n } else {\n flags.language = value;\n }\n\n if (flags.channel) {\n flags.channel = 'SERVICE' + flags.channel;\n }\n\n return flags;\n });\n }\n};\n/**\n * Maps an AdaptationSet node to a list of Representation information objects\n *\n * @name toRepresentationsCallback\n * @function\n * @param {Node} adaptationSet\n * AdaptationSet node from the mpd\n * @return {RepresentationInformation[]}\n * List of objects containing Representaion information\n */\n\n/**\n * Returns a callback for Array.prototype.map for mapping AdaptationSet nodes to a list of\n * Representation information objects\n *\n * @param {Object} periodAttributes\n * Contains attributes inherited by the Period\n * @param {string[]} periodBaseUrls\n * Contains list of resolved base urls inherited by the Period\n * @param {string[]} periodSegmentInfo\n * Contains Segment Information at the period level\n * @return {toRepresentationsCallback}\n * Callback map function\n */\n\n\nvar toRepresentations = function toRepresentations(periodAttributes, periodBaseUrls, periodSegmentInfo) {\n return function (adaptationSet) {\n var adaptationSetAttributes = parseAttributes(adaptationSet);\n var adaptationSetBaseUrls = buildBaseUrls(periodBaseUrls, findChildren(adaptationSet, 'BaseURL'));\n var role = findChildren(adaptationSet, 'Role')[0];\n var roleAttributes = {\n role: parseAttributes(role)\n };\n var attrs = merge(periodAttributes, adaptationSetAttributes, roleAttributes);\n var accessibility = findChildren(adaptationSet, 'Accessibility')[0];\n var captionServices = parseCaptionServiceMetadata(parseAttributes(accessibility));\n\n if (captionServices) {\n attrs = merge(attrs, {\n captionServices: captionServices\n });\n }\n\n var label = findChildren(adaptationSet, 'Label')[0];\n\n if (label && label.childNodes.length) {\n var labelVal = label.childNodes[0].nodeValue.trim();\n attrs = merge(attrs, {\n label: labelVal\n });\n }\n\n var contentProtection = generateKeySystemInformation(findChildren(adaptationSet, 'ContentProtection'));\n\n if (Object.keys(contentProtection).length) {\n attrs = merge(attrs, {\n contentProtection: contentProtection\n });\n }\n\n var segmentInfo = getSegmentInformation(adaptationSet);\n var representations = findChildren(adaptationSet, 'Representation');\n var adaptationSetSegmentInfo = merge(periodSegmentInfo, segmentInfo);\n return flatten(representations.map(inheritBaseUrls(attrs, adaptationSetBaseUrls, adaptationSetSegmentInfo)));\n };\n};\n/**\n * Contains all period information for mapping nodes onto adaptation sets.\n *\n * @typedef {Object} PeriodInformation\n * @property {Node} period.node\n * Period node from the mpd\n * @property {Object} period.attributes\n * Parsed period attributes from node plus any added\n */\n\n/**\n * Maps a PeriodInformation object to a list of Representation information objects for all\n * AdaptationSet nodes contained within the Period.\n *\n * @name toAdaptationSetsCallback\n * @function\n * @param {PeriodInformation} period\n * Period object containing necessary period information\n * @param {number} periodStart\n * Start time of the Period within the mpd\n * @return {RepresentationInformation[]}\n * List of objects containing Representaion information\n */\n\n/**\n * Returns a callback for Array.prototype.map for mapping Period nodes to a list of\n * Representation information objects\n *\n * @param {Object} mpdAttributes\n * Contains attributes inherited by the mpd\n * @param {string[]} mpdBaseUrls\n * Contains list of resolved base urls inherited by the mpd\n * @return {toAdaptationSetsCallback}\n * Callback map function\n */\n\n\nvar toAdaptationSets = function toAdaptationSets(mpdAttributes, mpdBaseUrls) {\n return function (period, index) {\n var periodBaseUrls = buildBaseUrls(mpdBaseUrls, findChildren(period.node, 'BaseURL'));\n var periodAttributes = merge(mpdAttributes, {\n periodStart: period.attributes.start\n });\n\n if (typeof period.attributes.duration === 'number') {\n periodAttributes.periodDuration = period.attributes.duration;\n }\n\n var adaptationSets = findChildren(period.node, 'AdaptationSet');\n var periodSegmentInfo = getSegmentInformation(period.node);\n return flatten(adaptationSets.map(toRepresentations(periodAttributes, periodBaseUrls, periodSegmentInfo)));\n };\n};\n/**\n * Gets Period@start property for a given period.\n *\n * @param {Object} options\n * Options object\n * @param {Object} options.attributes\n * Period attributes\n * @param {Object} [options.priorPeriodAttributes]\n * Prior period attributes (if prior period is available)\n * @param {string} options.mpdType\n * The MPD@type these periods came from\n * @return {number|null}\n * The period start, or null if it's an early available period or error\n */\n\n\nvar getPeriodStart = function getPeriodStart(_ref) {\n var attributes = _ref.attributes,\n priorPeriodAttributes = _ref.priorPeriodAttributes,\n mpdType = _ref.mpdType; // Summary of period start time calculation from DASH spec section 5.3.2.1\n //\n // A period's start is the first period's start + time elapsed after playing all\n // prior periods to this one. Periods continue one after the other in time (without\n // gaps) until the end of the presentation.\n //\n // The value of Period@start should be:\n // 1. if Period@start is present: value of Period@start\n // 2. if previous period exists and it has @duration: previous Period@start +\n // previous Period@duration\n // 3. if this is first period and MPD@type is 'static': 0\n // 4. in all other cases, consider the period an \"early available period\" (note: not\n // currently supported)\n // (1)\n\n if (typeof attributes.start === 'number') {\n return attributes.start;\n } // (2)\n\n\n if (priorPeriodAttributes && typeof priorPeriodAttributes.start === 'number' && typeof priorPeriodAttributes.duration === 'number') {\n return priorPeriodAttributes.start + priorPeriodAttributes.duration;\n } // (3)\n\n\n if (!priorPeriodAttributes && mpdType === 'static') {\n return 0;\n } // (4)\n // There is currently no logic for calculating the Period@start value if there is\n // no Period@start or prior Period@start and Period@duration available. This is not made\n // explicit by the DASH interop guidelines or the DASH spec, however, since there's\n // nothing about any other resolution strategies, it's implied. Thus, this case should\n // be considered an early available period, or error, and null should suffice for both\n // of those cases.\n\n\n return null;\n};\n/**\n * Traverses the mpd xml tree to generate a list of Representation information objects\n * that have inherited attributes from parent nodes\n *\n * @param {Node} mpd\n * The root node of the mpd\n * @param {Object} options\n * Available options for inheritAttributes\n * @param {string} options.manifestUri\n * The uri source of the mpd\n * @param {number} options.NOW\n * Current time per DASH IOP. Default is current time in ms since epoch\n * @param {number} options.clientOffset\n * Client time difference from NOW (in milliseconds)\n * @return {RepresentationInformation[]}\n * List of objects containing Representation information\n */\n\n\nvar inheritAttributes = function inheritAttributes(mpd, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$manifestUri = _options.manifestUri,\n manifestUri = _options$manifestUri === void 0 ? '' : _options$manifestUri,\n _options$NOW = _options.NOW,\n NOW = _options$NOW === void 0 ? Date.now() : _options$NOW,\n _options$clientOffset = _options.clientOffset,\n clientOffset = _options$clientOffset === void 0 ? 0 : _options$clientOffset;\n var periodNodes = findChildren(mpd, 'Period');\n\n if (!periodNodes.length) {\n throw new Error(errors.INVALID_NUMBER_OF_PERIOD);\n }\n\n var locations = findChildren(mpd, 'Location');\n var mpdAttributes = parseAttributes(mpd);\n var mpdBaseUrls = buildBaseUrls([manifestUri], findChildren(mpd, 'BaseURL')); // See DASH spec section 5.3.1.2, Semantics of MPD element. Default type to 'static'.\n\n mpdAttributes.type = mpdAttributes.type || 'static';\n mpdAttributes.sourceDuration = mpdAttributes.mediaPresentationDuration || 0;\n mpdAttributes.NOW = NOW;\n mpdAttributes.clientOffset = clientOffset;\n\n if (locations.length) {\n mpdAttributes.locations = locations.map(getContent);\n }\n\n var periods = []; // Since toAdaptationSets acts on individual periods right now, the simplest approach to\n // adding properties that require looking at prior periods is to parse attributes and add\n // missing ones before toAdaptationSets is called. If more such properties are added, it\n // may be better to refactor toAdaptationSets.\n\n periodNodes.forEach(function (node, index) {\n var attributes = parseAttributes(node); // Use the last modified prior period, as it may contain added information necessary\n // for this period.\n\n var priorPeriod = periods[index - 1];\n attributes.start = getPeriodStart({\n attributes: attributes,\n priorPeriodAttributes: priorPeriod ? priorPeriod.attributes : null,\n mpdType: mpdAttributes.type\n });\n periods.push({\n node: node,\n attributes: attributes\n });\n });\n return {\n locations: mpdAttributes.locations,\n representationInfo: flatten(periods.map(toAdaptationSets(mpdAttributes, mpdBaseUrls)))\n };\n};\n\nvar stringToMpdXml = function stringToMpdXml(manifestString) {\n if (manifestString === '') {\n throw new Error(errors.DASH_EMPTY_MANIFEST);\n }\n\n var parser = new DOMParser();\n var xml;\n var mpd;\n\n try {\n xml = parser.parseFromString(manifestString, 'application/xml');\n mpd = xml && xml.documentElement.tagName === 'MPD' ? xml.documentElement : null;\n } catch (e) {// ie 11 throwsw on invalid xml\n }\n\n if (!mpd || mpd && mpd.getElementsByTagName('parsererror').length > 0) {\n throw new Error(errors.DASH_INVALID_XML);\n }\n\n return mpd;\n};\n/**\n * Parses the manifest for a UTCTiming node, returning the nodes attributes if found\n *\n * @param {string} mpd\n * XML string of the MPD manifest\n * @return {Object|null}\n * Attributes of UTCTiming node specified in the manifest. Null if none found\n */\n\n\nvar parseUTCTimingScheme = function parseUTCTimingScheme(mpd) {\n var UTCTimingNode = findChildren(mpd, 'UTCTiming')[0];\n\n if (!UTCTimingNode) {\n return null;\n }\n\n var attributes = parseAttributes(UTCTimingNode);\n\n switch (attributes.schemeIdUri) {\n case 'urn:mpeg:dash:utc:http-head:2014':\n case 'urn:mpeg:dash:utc:http-head:2012':\n attributes.method = 'HEAD';\n break;\n\n case 'urn:mpeg:dash:utc:http-xsdate:2014':\n case 'urn:mpeg:dash:utc:http-iso:2014':\n case 'urn:mpeg:dash:utc:http-xsdate:2012':\n case 'urn:mpeg:dash:utc:http-iso:2012':\n attributes.method = 'GET';\n break;\n\n case 'urn:mpeg:dash:utc:direct:2014':\n case 'urn:mpeg:dash:utc:direct:2012':\n attributes.method = 'DIRECT';\n attributes.value = Date.parse(attributes.value);\n break;\n\n case 'urn:mpeg:dash:utc:http-ntp:2014':\n case 'urn:mpeg:dash:utc:ntp:2014':\n case 'urn:mpeg:dash:utc:sntp:2014':\n default:\n throw new Error(errors.UNSUPPORTED_UTC_TIMING_SCHEME);\n }\n\n return attributes;\n};\n\nvar VERSION = version;\n/*\n * Given a DASH manifest string and options, parses the DASH manifest into an object in the\n * form outputed by m3u8-parser and accepted by videojs/http-streaming.\n *\n * For live DASH manifests, if `previousManifest` is provided in options, then the newly\n * parsed DASH manifest will have its media sequence and discontinuity sequence values\n * updated to reflect its position relative to the prior manifest.\n *\n * @param {string} manifestString - the DASH manifest as a string\n * @param {options} [options] - any options\n *\n * @return {Object} the manifest object\n */\n\nvar parse = function parse(manifestString, options) {\n if (options === void 0) {\n options = {};\n }\n\n var parsedManifestInfo = inheritAttributes(stringToMpdXml(manifestString), options);\n var playlists = toPlaylists(parsedManifestInfo.representationInfo);\n return toM3u8({\n dashPlaylists: playlists,\n locations: parsedManifestInfo.locations,\n sidxMapping: options.sidxMapping,\n previousManifest: options.previousManifest\n });\n};\n/**\n * Parses the manifest for a UTCTiming node, returning the nodes attributes if found\n *\n * @param {string} manifestString\n * XML string of the MPD manifest\n * @return {Object|null}\n * Attributes of UTCTiming node specified in the manifest. Null if none found\n */\n\n\nvar parseUTCTiming = function parseUTCTiming(manifestString) {\n return parseUTCTimingScheme(stringToMpdXml(manifestString));\n};\n\nexport { VERSION, addSidxSegmentsToPlaylist$1 as addSidxSegmentsToPlaylist, generateSidxKey, inheritAttributes, parse, parseUTCTiming, stringToMpdXml, toM3u8, toPlaylists };","/**\n * Loops through all supported media groups in master and calls the provided\n * callback for each group\n *\n * @param {Object} master\n * The parsed master manifest object\n * @param {string[]} groups\n * The media groups to call the callback for\n * @param {Function} callback\n * Callback to call for each media group\n */\nexport var forEachMediaGroup = function forEachMediaGroup(master, groups, callback) {\n groups.forEach(function (mediaType) {\n for (var groupKey in master.mediaGroups[mediaType]) {\n for (var labelKey in master.mediaGroups[mediaType][groupKey]) {\n var mediaProperties = master.mediaGroups[mediaType][groupKey][labelKey];\n callback(mediaProperties, mediaType, groupKey, labelKey);\n }\n }\n });\n};","import { toUint8, bytesMatch } from './byte-helpers.js';\nvar ID3 = toUint8([0x49, 0x44, 0x33]);\nexport var getId3Size = function getId3Size(bytes, offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n bytes = toUint8(bytes);\n var flags = bytes[offset + 5];\n var returnSize = bytes[offset + 6] << 21 | bytes[offset + 7] << 14 | bytes[offset + 8] << 7 | bytes[offset + 9];\n var footerPresent = (flags & 16) >> 4;\n\n if (footerPresent) {\n return returnSize + 20;\n }\n\n return returnSize + 10;\n};\nexport var getId3Offset = function getId3Offset(bytes, offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n bytes = toUint8(bytes);\n\n if (bytes.length - offset < 10 || !bytesMatch(bytes, ID3, {\n offset: offset\n })) {\n return offset;\n }\n\n offset += getId3Size(bytes, offset); // recursive check for id3 tags as some files\n // have multiple ID3 tag sections even though\n // they should not.\n\n return getId3Offset(bytes, offset);\n};","import URLToolkit from 'url-toolkit';\nimport window from 'global/window';\nvar DEFAULT_LOCATION = 'http://example.com';\n\nvar resolveUrl = function resolveUrl(baseUrl, relativeUrl) {\n // return early if we don't need to resolve\n if (/^[a-z]+:/i.test(relativeUrl)) {\n return relativeUrl;\n } // if baseUrl is a data URI, ignore it and resolve everything relative to window.location\n\n\n if (/^data:/.test(baseUrl)) {\n baseUrl = window.location && window.location.href || '';\n } // IE11 supports URL but not the URL constructor\n // feature detect the behavior we want\n\n\n var nativeURL = typeof window.URL === 'function';\n var protocolLess = /^\\/\\//.test(baseUrl); // remove location if window.location isn't available (i.e. we're in node)\n // and if baseUrl isn't an absolute url\n\n var removeLocation = !window.location && !/\\/\\//i.test(baseUrl); // if the base URL is relative then combine with the current location\n\n if (nativeURL) {\n baseUrl = new window.URL(baseUrl, window.location || DEFAULT_LOCATION);\n } else if (!/\\/\\//i.test(baseUrl)) {\n baseUrl = URLToolkit.buildAbsoluteURL(window.location && window.location.href || '', baseUrl);\n }\n\n if (nativeURL) {\n var newUrl = new URL(relativeUrl, baseUrl); // if we're a protocol-less url, remove the protocol\n // and if we're location-less, remove the location\n // otherwise, return the url unmodified\n\n if (removeLocation) {\n return newUrl.href.slice(DEFAULT_LOCATION.length);\n } else if (protocolLess) {\n return newUrl.href.slice(newUrl.protocol.length);\n }\n\n return newUrl.href;\n }\n\n return URLToolkit.buildAbsoluteURL(baseUrl, relativeUrl);\n};\n\nexport default resolveUrl;","import getToken from './get_token'\n\nexport default function defaultHeaders() {\n return {\n 'X-CSRF-Token': getToken(),\n 'Accept': 'application/json'\n }\n}\n","export default function getToken() {\n return document.querySelector('meta[name=\"csrf-token\"]').content\n}\n","var g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\n\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if (typeof window === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;","function getMp4(video) {\n return (video.mp4 || '').trim()\n}\n\nfunction getHls(video) {\n return (video.hls || '').trim()\n}\n\nfunction getPoster(video) {\n let images = ((video.images || []).filter(i => i.is_poster)) || []\n let poster = (images[0] || {}).original\n return poster\n}\n\nfunction hasSources(video) {\n let mp4 = getMp4(video)\n let hls = getHls(video)\n return !!mp4 || !!hls\n}\n\n\nexport default {\n hasSources,\n getPoster,\n}\n","/**\n * mux.js\n *\n * Copyright (c) Brightcove\n * Licensed Apache-2.0 https://github.com/videojs/mux.js/blob/master/LICENSE\n */\nvar ONE_SECOND_IN_TS = 90000,\n // 90kHz clock\nsecondsToVideoTs,\n secondsToAudioTs,\n videoTsToSeconds,\n audioTsToSeconds,\n audioTsToVideoTs,\n videoTsToAudioTs,\n metadataTsToSeconds;\n\nsecondsToVideoTs = function (seconds) {\n return seconds * ONE_SECOND_IN_TS;\n};\n\nsecondsToAudioTs = function (seconds, sampleRate) {\n return seconds * sampleRate;\n};\n\nvideoTsToSeconds = function (timestamp) {\n return timestamp / ONE_SECOND_IN_TS;\n};\n\naudioTsToSeconds = function (timestamp, sampleRate) {\n return timestamp / sampleRate;\n};\n\naudioTsToVideoTs = function (timestamp, sampleRate) {\n return secondsToVideoTs(audioTsToSeconds(timestamp, sampleRate));\n};\n\nvideoTsToAudioTs = function (timestamp, sampleRate) {\n return secondsToAudioTs(videoTsToSeconds(timestamp), sampleRate);\n};\n/**\n * Adjust ID3 tag or caption timing information by the timeline pts values\n * (if keepOriginalTimestamps is false) and convert to seconds\n */\n\n\nmetadataTsToSeconds = function (timestamp, timelineStartPts, keepOriginalTimestamps) {\n return videoTsToSeconds(keepOriginalTimestamps ? timestamp : timestamp - timelineStartPts);\n};\n\nmodule.exports = {\n ONE_SECOND_IN_TS: ONE_SECOND_IN_TS,\n secondsToVideoTs: secondsToVideoTs,\n secondsToAudioTs: secondsToAudioTs,\n videoTsToSeconds: videoTsToSeconds,\n audioTsToSeconds: audioTsToSeconds,\n audioTsToVideoTs: audioTsToVideoTs,\n videoTsToAudioTs: videoTsToAudioTs,\n metadataTsToSeconds: metadataTsToSeconds\n};","import { stringToBytes, toUint8, bytesMatch, bytesToString, toHexString, padStart, bytesToNumber } from './byte-helpers.js';\nimport { getAvcCodec, getHvcCodec, getAv1Codec } from './codec-helpers.js';\nimport { parseOpusHead } from './opus-helpers.js';\n\nvar normalizePath = function normalizePath(path) {\n if (typeof path === 'string') {\n return stringToBytes(path);\n }\n\n if (typeof path === 'number') {\n return path;\n }\n\n return path;\n};\n\nvar normalizePaths = function normalizePaths(paths) {\n if (!Array.isArray(paths)) {\n return [normalizePath(paths)];\n }\n\n return paths.map(function (p) {\n return normalizePath(p);\n });\n};\n\nvar DESCRIPTORS;\nexport var parseDescriptors = function parseDescriptors(bytes) {\n bytes = toUint8(bytes);\n var results = [];\n var i = 0;\n\n while (bytes.length > i) {\n var tag = bytes[i];\n var size = 0;\n var headerSize = 0; // tag\n\n headerSize++;\n var byte = bytes[headerSize]; // first byte\n\n headerSize++;\n\n while (byte & 0x80) {\n size = (byte & 0x7F) << 7;\n byte = bytes[headerSize];\n headerSize++;\n }\n\n size += byte & 0x7F;\n\n for (var z = 0; z < DESCRIPTORS.length; z++) {\n var _DESCRIPTORS$z = DESCRIPTORS[z],\n id = _DESCRIPTORS$z.id,\n parser = _DESCRIPTORS$z.parser;\n\n if (tag === id) {\n results.push(parser(bytes.subarray(headerSize, headerSize + size)));\n break;\n }\n }\n\n i += size + headerSize;\n }\n\n return results;\n};\nDESCRIPTORS = [{\n id: 0x03,\n parser: function parser(bytes) {\n var desc = {\n tag: 0x03,\n id: bytes[0] << 8 | bytes[1],\n flags: bytes[2],\n size: 3,\n dependsOnEsId: 0,\n ocrEsId: 0,\n descriptors: [],\n url: ''\n }; // depends on es id\n\n if (desc.flags & 0x80) {\n desc.dependsOnEsId = bytes[desc.size] << 8 | bytes[desc.size + 1];\n desc.size += 2;\n } // url\n\n\n if (desc.flags & 0x40) {\n var len = bytes[desc.size];\n desc.url = bytesToString(bytes.subarray(desc.size + 1, desc.size + 1 + len));\n desc.size += len;\n } // ocr es id\n\n\n if (desc.flags & 0x20) {\n desc.ocrEsId = bytes[desc.size] << 8 | bytes[desc.size + 1];\n desc.size += 2;\n }\n\n desc.descriptors = parseDescriptors(bytes.subarray(desc.size)) || [];\n return desc;\n }\n}, {\n id: 0x04,\n parser: function parser(bytes) {\n // DecoderConfigDescriptor\n var desc = {\n tag: 0x04,\n oti: bytes[0],\n streamType: bytes[1],\n bufferSize: bytes[2] << 16 | bytes[3] << 8 | bytes[4],\n maxBitrate: bytes[5] << 24 | bytes[6] << 16 | bytes[7] << 8 | bytes[8],\n avgBitrate: bytes[9] << 24 | bytes[10] << 16 | bytes[11] << 8 | bytes[12],\n descriptors: parseDescriptors(bytes.subarray(13))\n };\n return desc;\n }\n}, {\n id: 0x05,\n parser: function parser(bytes) {\n // DecoderSpecificInfo\n return {\n tag: 0x05,\n bytes: bytes\n };\n }\n}, {\n id: 0x06,\n parser: function parser(bytes) {\n // SLConfigDescriptor\n return {\n tag: 0x06,\n bytes: bytes\n };\n }\n}];\n/**\n * find any number of boxes by name given a path to it in an iso bmff\n * such as mp4.\n *\n * @param {TypedArray} bytes\n * bytes for the iso bmff to search for boxes in\n *\n * @param {Uint8Array[]|string[]|string|Uint8Array} name\n * An array of paths or a single path representing the name\n * of boxes to search through in bytes. Paths may be\n * uint8 (character codes) or strings.\n *\n * @param {boolean} [complete=false]\n * Should we search only for complete boxes on the final path.\n * This is very useful when you do not want to get back partial boxes\n * in the case of streaming files.\n *\n * @return {Uint8Array[]}\n * An array of the end paths that we found.\n */\n\nexport var findBox = function findBox(bytes, paths, complete) {\n if (complete === void 0) {\n complete = false;\n }\n\n paths = normalizePaths(paths);\n bytes = toUint8(bytes);\n var results = [];\n\n if (!paths.length) {\n // short-circuit the search for empty paths\n return results;\n }\n\n var i = 0;\n\n while (i < bytes.length) {\n var size = (bytes[i] << 24 | bytes[i + 1] << 16 | bytes[i + 2] << 8 | bytes[i + 3]) >>> 0;\n var type = bytes.subarray(i + 4, i + 8); // invalid box format.\n\n if (size === 0) {\n break;\n }\n\n var end = i + size;\n\n if (end > bytes.length) {\n // this box is bigger than the number of bytes we have\n // and complete is set, we cannot find any more boxes.\n if (complete) {\n break;\n }\n\n end = bytes.length;\n }\n\n var data = bytes.subarray(i + 8, end);\n\n if (bytesMatch(type, paths[0])) {\n if (paths.length === 1) {\n // this is the end of the path and we've found the box we were\n // looking for\n results.push(data);\n } else {\n // recursively search for the next box along the path\n results.push.apply(results, findBox(data, paths.slice(1), complete));\n }\n }\n\n i = end;\n } // we've finished searching all of bytes\n\n\n return results;\n};\n/**\n * Search for a single matching box by name in an iso bmff format like\n * mp4. This function is useful for finding codec boxes which\n * can be placed arbitrarily in sample descriptions depending\n * on the version of the file or file type.\n *\n * @param {TypedArray} bytes\n * bytes for the iso bmff to search for boxes in\n *\n * @param {string|Uint8Array} name\n * The name of the box to find.\n *\n * @return {Uint8Array[]}\n * a subarray of bytes representing the name boxed we found.\n */\n\nexport var findNamedBox = function findNamedBox(bytes, name) {\n name = normalizePath(name);\n\n if (!name.length) {\n // short-circuit the search for empty paths\n return bytes.subarray(bytes.length);\n }\n\n var i = 0;\n\n while (i < bytes.length) {\n if (bytesMatch(bytes.subarray(i, i + name.length), name)) {\n var size = (bytes[i - 4] << 24 | bytes[i - 3] << 16 | bytes[i - 2] << 8 | bytes[i - 1]) >>> 0;\n var end = size > 1 ? i + size : bytes.byteLength;\n return bytes.subarray(i + 4, end);\n }\n\n i++;\n } // we've finished searching all of bytes\n\n\n return bytes.subarray(bytes.length);\n};\n\nvar parseSamples = function parseSamples(data, entrySize, parseEntry) {\n if (entrySize === void 0) {\n entrySize = 4;\n }\n\n if (parseEntry === void 0) {\n parseEntry = function parseEntry(d) {\n return bytesToNumber(d);\n };\n }\n\n var entries = [];\n\n if (!data || !data.length) {\n return entries;\n }\n\n var entryCount = bytesToNumber(data.subarray(4, 8));\n\n for (var i = 8; entryCount; i += entrySize, entryCount--) {\n entries.push(parseEntry(data.subarray(i, i + entrySize)));\n }\n\n return entries;\n};\n\nexport var buildFrameTable = function buildFrameTable(stbl, timescale) {\n var keySamples = parseSamples(findBox(stbl, ['stss'])[0]);\n var chunkOffsets = parseSamples(findBox(stbl, ['stco'])[0]);\n var timeToSamples = parseSamples(findBox(stbl, ['stts'])[0], 8, function (entry) {\n return {\n sampleCount: bytesToNumber(entry.subarray(0, 4)),\n sampleDelta: bytesToNumber(entry.subarray(4, 8))\n };\n });\n var samplesToChunks = parseSamples(findBox(stbl, ['stsc'])[0], 12, function (entry) {\n return {\n firstChunk: bytesToNumber(entry.subarray(0, 4)),\n samplesPerChunk: bytesToNumber(entry.subarray(4, 8)),\n sampleDescriptionIndex: bytesToNumber(entry.subarray(8, 12))\n };\n });\n var stsz = findBox(stbl, ['stsz'])[0]; // stsz starts with a 4 byte sampleSize which we don't need\n\n var sampleSizes = parseSamples(stsz && stsz.length && stsz.subarray(4) || null);\n var frames = [];\n\n for (var chunkIndex = 0; chunkIndex < chunkOffsets.length; chunkIndex++) {\n var samplesInChunk = void 0;\n\n for (var i = 0; i < samplesToChunks.length; i++) {\n var sampleToChunk = samplesToChunks[i];\n var isThisOne = chunkIndex + 1 >= sampleToChunk.firstChunk && (i + 1 >= samplesToChunks.length || chunkIndex + 1 < samplesToChunks[i + 1].firstChunk);\n\n if (isThisOne) {\n samplesInChunk = sampleToChunk.samplesPerChunk;\n break;\n }\n }\n\n var chunkOffset = chunkOffsets[chunkIndex];\n\n for (var _i = 0; _i < samplesInChunk; _i++) {\n var frameEnd = sampleSizes[frames.length]; // if we don't have key samples every frame is a keyframe\n\n var keyframe = !keySamples.length;\n\n if (keySamples.length && keySamples.indexOf(frames.length + 1) !== -1) {\n keyframe = true;\n }\n\n var frame = {\n keyframe: keyframe,\n start: chunkOffset,\n end: chunkOffset + frameEnd\n };\n\n for (var k = 0; k < timeToSamples.length; k++) {\n var _timeToSamples$k = timeToSamples[k],\n sampleCount = _timeToSamples$k.sampleCount,\n sampleDelta = _timeToSamples$k.sampleDelta;\n\n if (frames.length <= sampleCount) {\n // ms to ns\n var lastTimestamp = frames.length ? frames[frames.length - 1].timestamp : 0;\n frame.timestamp = lastTimestamp + sampleDelta / timescale * 1000;\n frame.duration = sampleDelta;\n break;\n }\n }\n\n frames.push(frame);\n chunkOffset += frameEnd;\n }\n }\n\n return frames;\n};\nexport var addSampleDescription = function addSampleDescription(track, bytes) {\n var codec = bytesToString(bytes.subarray(0, 4));\n\n if (track.type === 'video') {\n track.info = track.info || {};\n track.info.width = bytes[28] << 8 | bytes[29];\n track.info.height = bytes[30] << 8 | bytes[31];\n } else if (track.type === 'audio') {\n track.info = track.info || {};\n track.info.channels = bytes[20] << 8 | bytes[21];\n track.info.bitDepth = bytes[22] << 8 | bytes[23];\n track.info.sampleRate = bytes[28] << 8 | bytes[29];\n }\n\n if (codec === 'avc1') {\n var avcC = findNamedBox(bytes, 'avcC'); // AVCDecoderConfigurationRecord\n\n codec += \".\" + getAvcCodec(avcC);\n track.info.avcC = avcC; // TODO: do we need to parse all this?\n\n /* {\n configurationVersion: avcC[0],\n profile: avcC[1],\n profileCompatibility: avcC[2],\n level: avcC[3],\n lengthSizeMinusOne: avcC[4] & 0x3\n };\n let spsNalUnitCount = avcC[5] & 0x1F;\n const spsNalUnits = track.info.avc.spsNalUnits = [];\n // past spsNalUnitCount\n let offset = 6;\n while (spsNalUnitCount--) {\n const nalLen = avcC[offset] << 8 | avcC[offset + 1];\n spsNalUnits.push(avcC.subarray(offset + 2, offset + 2 + nalLen));\n offset += nalLen + 2;\n }\n let ppsNalUnitCount = avcC[offset];\n const ppsNalUnits = track.info.avc.ppsNalUnits = [];\n // past ppsNalUnitCount\n offset += 1;\n while (ppsNalUnitCount--) {\n const nalLen = avcC[offset] << 8 | avcC[offset + 1];\n ppsNalUnits.push(avcC.subarray(offset + 2, offset + 2 + nalLen));\n offset += nalLen + 2;\n }*/\n // HEVCDecoderConfigurationRecord\n } else if (codec === 'hvc1' || codec === 'hev1') {\n codec += \".\" + getHvcCodec(findNamedBox(bytes, 'hvcC'));\n } else if (codec === 'mp4a' || codec === 'mp4v') {\n var esds = findNamedBox(bytes, 'esds');\n var esDescriptor = parseDescriptors(esds.subarray(4))[0];\n var decoderConfig = esDescriptor && esDescriptor.descriptors.filter(function (_ref) {\n var tag = _ref.tag;\n return tag === 0x04;\n })[0];\n\n if (decoderConfig) {\n // most codecs do not have a further '.'\n // such as 0xa5 for ac-3 and 0xa6 for e-ac-3\n codec += '.' + toHexString(decoderConfig.oti);\n\n if (decoderConfig.oti === 0x40) {\n codec += '.' + (decoderConfig.descriptors[0].bytes[0] >> 3).toString();\n } else if (decoderConfig.oti === 0x20) {\n codec += '.' + decoderConfig.descriptors[0].bytes[4].toString();\n } else if (decoderConfig.oti === 0xdd) {\n codec = 'vorbis';\n }\n } else if (track.type === 'audio') {\n codec += '.40.2';\n } else {\n codec += '.20.9';\n }\n } else if (codec === 'av01') {\n // AV1DecoderConfigurationRecord\n codec += \".\" + getAv1Codec(findNamedBox(bytes, 'av1C'));\n } else if (codec === 'vp09') {\n // VPCodecConfigurationRecord\n var vpcC = findNamedBox(bytes, 'vpcC'); // https://www.webmproject.org/vp9/mp4/\n\n var profile = vpcC[0];\n var level = vpcC[1];\n var bitDepth = vpcC[2] >> 4;\n var chromaSubsampling = (vpcC[2] & 0x0F) >> 1;\n var videoFullRangeFlag = (vpcC[2] & 0x0F) >> 3;\n var colourPrimaries = vpcC[3];\n var transferCharacteristics = vpcC[4];\n var matrixCoefficients = vpcC[5];\n codec += \".\" + padStart(profile, 2, '0');\n codec += \".\" + padStart(level, 2, '0');\n codec += \".\" + padStart(bitDepth, 2, '0');\n codec += \".\" + padStart(chromaSubsampling, 2, '0');\n codec += \".\" + padStart(colourPrimaries, 2, '0');\n codec += \".\" + padStart(transferCharacteristics, 2, '0');\n codec += \".\" + padStart(matrixCoefficients, 2, '0');\n codec += \".\" + padStart(videoFullRangeFlag, 2, '0');\n } else if (codec === 'theo') {\n codec = 'theora';\n } else if (codec === 'spex') {\n codec = 'speex';\n } else if (codec === '.mp3') {\n codec = 'mp4a.40.34';\n } else if (codec === 'msVo') {\n codec = 'vorbis';\n } else if (codec === 'Opus') {\n codec = 'opus';\n var dOps = findNamedBox(bytes, 'dOps');\n track.info.opus = parseOpusHead(dOps); // TODO: should this go into the webm code??\n // Firefox requires a codecDelay for opus playback\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=1276238\n\n track.info.codecDelay = 6500000;\n } else {\n codec = codec.toLowerCase();\n }\n /* eslint-enable */\n // flac, ac-3, ec-3, opus\n\n\n track.codec = codec;\n};\nexport var parseTracks = function parseTracks(bytes, frameTable) {\n if (frameTable === void 0) {\n frameTable = true;\n }\n\n bytes = toUint8(bytes);\n var traks = findBox(bytes, ['moov', 'trak'], true);\n var tracks = [];\n traks.forEach(function (trak) {\n var track = {\n bytes: trak\n };\n var mdia = findBox(trak, ['mdia'])[0];\n var hdlr = findBox(mdia, ['hdlr'])[0];\n var trakType = bytesToString(hdlr.subarray(8, 12));\n\n if (trakType === 'soun') {\n track.type = 'audio';\n } else if (trakType === 'vide') {\n track.type = 'video';\n } else {\n track.type = trakType;\n }\n\n var tkhd = findBox(trak, ['tkhd'])[0];\n\n if (tkhd) {\n var view = new DataView(tkhd.buffer, tkhd.byteOffset, tkhd.byteLength);\n var tkhdVersion = view.getUint8(0);\n track.number = tkhdVersion === 0 ? view.getUint32(12) : view.getUint32(20);\n }\n\n var mdhd = findBox(mdia, ['mdhd'])[0];\n\n if (mdhd) {\n // mdhd is a FullBox, meaning it will have its own version as the first byte\n var version = mdhd[0];\n var index = version === 0 ? 12 : 20;\n track.timescale = (mdhd[index] << 24 | mdhd[index + 1] << 16 | mdhd[index + 2] << 8 | mdhd[index + 3]) >>> 0;\n }\n\n var stbl = findBox(mdia, ['minf', 'stbl'])[0];\n var stsd = findBox(stbl, ['stsd'])[0];\n var descriptionCount = bytesToNumber(stsd.subarray(4, 8));\n var offset = 8; // add codec and codec info\n\n while (descriptionCount--) {\n var len = bytesToNumber(stsd.subarray(offset, offset + 4));\n var sampleDescriptor = stsd.subarray(offset + 4, offset + 4 + len);\n addSampleDescription(track, sampleDescriptor);\n offset += 4 + len;\n }\n\n if (frameTable) {\n track.frameTable = buildFrameTable(stbl, track.timescale);\n } // codec has no sub parameters\n\n\n tracks.push(track);\n });\n return tracks;\n};\nexport var parseMediaInfo = function parseMediaInfo(bytes) {\n var mvhd = findBox(bytes, ['moov', 'mvhd'], true)[0];\n\n if (!mvhd || !mvhd.length) {\n return;\n }\n\n var info = {}; // ms to ns\n // mvhd v1 has 8 byte duration and other fields too\n\n if (mvhd[0] === 1) {\n info.timestampScale = bytesToNumber(mvhd.subarray(20, 24));\n info.duration = bytesToNumber(mvhd.subarray(24, 32));\n } else {\n info.timestampScale = bytesToNumber(mvhd.subarray(12, 16));\n info.duration = bytesToNumber(mvhd.subarray(16, 20));\n }\n\n info.bytes = mvhd;\n return info;\n};","export var OPUS_HEAD = new Uint8Array([// O, p, u, s\n0x4f, 0x70, 0x75, 0x73, // H, e, a, d\n0x48, 0x65, 0x61, 0x64]); // https://wiki.xiph.org/OggOpus\n// https://vfrmaniac.fushizen.eu/contents/opus_in_isobmff.html\n// https://opus-codec.org/docs/opusfile_api-0.7/structOpusHead.html\n\nexport var parseOpusHead = function parseOpusHead(bytes) {\n var view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n var version = view.getUint8(0); // version 0, from mp4, does not use littleEndian.\n\n var littleEndian = version !== 0;\n var config = {\n version: version,\n channels: view.getUint8(1),\n preSkip: view.getUint16(2, littleEndian),\n sampleRate: view.getUint32(4, littleEndian),\n outputGain: view.getUint16(8, littleEndian),\n channelMappingFamily: view.getUint8(10)\n };\n\n if (config.channelMappingFamily > 0 && bytes.length > 10) {\n config.streamCount = view.getUint8(11);\n config.twoChannelStreamCount = view.getUint8(12);\n config.channelMapping = [];\n\n for (var c = 0; c < config.channels; c++) {\n config.channelMapping.push(view.getUint8(13 + c));\n }\n }\n\n return config;\n};\nexport var setOpusHead = function setOpusHead(config) {\n var size = config.channelMappingFamily <= 0 ? 11 : 12 + config.channels;\n var view = new DataView(new ArrayBuffer(size));\n var littleEndian = config.version !== 0;\n view.setUint8(0, config.version);\n view.setUint8(1, config.channels);\n view.setUint16(2, config.preSkip, littleEndian);\n view.setUint32(4, config.sampleRate, littleEndian);\n view.setUint16(8, config.outputGain, littleEndian);\n view.setUint8(10, config.channelMappingFamily);\n\n if (config.channelMappingFamily > 0) {\n view.setUint8(11, config.streamCount);\n config.channelMapping.foreach(function (cm, i) {\n view.setUint8(12 + i, cm);\n });\n }\n\n return new Uint8Array(view.buffer);\n};","import { toUint8, bytesToNumber, bytesMatch, bytesToString, numberToBytes, padStart } from './byte-helpers';\nimport { getAvcCodec, getHvcCodec, getAv1Codec } from './codec-helpers.js'; // relevant specs for this parser:\n// https://matroska-org.github.io/libebml/specs.html\n// https://www.matroska.org/technical/elements.html\n// https://www.webmproject.org/docs/container/\n\nexport var EBML_TAGS = {\n EBML: toUint8([0x1A, 0x45, 0xDF, 0xA3]),\n DocType: toUint8([0x42, 0x82]),\n Segment: toUint8([0x18, 0x53, 0x80, 0x67]),\n SegmentInfo: toUint8([0x15, 0x49, 0xA9, 0x66]),\n Tracks: toUint8([0x16, 0x54, 0xAE, 0x6B]),\n Track: toUint8([0xAE]),\n TrackNumber: toUint8([0xd7]),\n DefaultDuration: toUint8([0x23, 0xe3, 0x83]),\n TrackEntry: toUint8([0xAE]),\n TrackType: toUint8([0x83]),\n FlagDefault: toUint8([0x88]),\n CodecID: toUint8([0x86]),\n CodecPrivate: toUint8([0x63, 0xA2]),\n VideoTrack: toUint8([0xe0]),\n AudioTrack: toUint8([0xe1]),\n // Not used yet, but will be used for live webm/mkv\n // see https://www.matroska.org/technical/basics.html#block-structure\n // see https://www.matroska.org/technical/basics.html#simpleblock-structure\n Cluster: toUint8([0x1F, 0x43, 0xB6, 0x75]),\n Timestamp: toUint8([0xE7]),\n TimestampScale: toUint8([0x2A, 0xD7, 0xB1]),\n BlockGroup: toUint8([0xA0]),\n BlockDuration: toUint8([0x9B]),\n Block: toUint8([0xA1]),\n SimpleBlock: toUint8([0xA3])\n};\n/**\n * This is a simple table to determine the length\n * of things in ebml. The length is one based (starts at 1,\n * rather than zero) and for every zero bit before a one bit\n * we add one to length. We also need this table because in some\n * case we have to xor all the length bits from another value.\n */\n\nvar LENGTH_TABLE = [128, 64, 32, 16, 8, 4, 2, 1];\n\nvar getLength = function getLength(byte) {\n var len = 1;\n\n for (var i = 0; i < LENGTH_TABLE.length; i++) {\n if (byte & LENGTH_TABLE[i]) {\n break;\n }\n\n len++;\n }\n\n return len;\n}; // length in ebml is stored in the first 4 to 8 bits\n// of the first byte. 4 for the id length and 8 for the\n// data size length. Length is measured by converting the number to binary\n// then 1 + the number of zeros before a 1 is encountered starting\n// from the left.\n\n\nvar getvint = function getvint(bytes, offset, removeLength, signed) {\n if (removeLength === void 0) {\n removeLength = true;\n }\n\n if (signed === void 0) {\n signed = false;\n }\n\n var length = getLength(bytes[offset]);\n var valueBytes = bytes.subarray(offset, offset + length); // NOTE that we do **not** subarray here because we need to copy these bytes\n // as they will be modified below to remove the dataSizeLen bits and we do not\n // want to modify the original data. normally we could just call slice on\n // uint8array but ie 11 does not support that...\n\n if (removeLength) {\n valueBytes = Array.prototype.slice.call(bytes, offset, offset + length);\n valueBytes[0] ^= LENGTH_TABLE[length - 1];\n }\n\n return {\n length: length,\n value: bytesToNumber(valueBytes, {\n signed: signed\n }),\n bytes: valueBytes\n };\n};\n\nvar normalizePath = function normalizePath(path) {\n if (typeof path === 'string') {\n return path.match(/.{1,2}/g).map(function (p) {\n return normalizePath(p);\n });\n }\n\n if (typeof path === 'number') {\n return numberToBytes(path);\n }\n\n return path;\n};\n\nvar normalizePaths = function normalizePaths(paths) {\n if (!Array.isArray(paths)) {\n return [normalizePath(paths)];\n }\n\n return paths.map(function (p) {\n return normalizePath(p);\n });\n};\n\nvar getInfinityDataSize = function getInfinityDataSize(id, bytes, offset) {\n if (offset >= bytes.length) {\n return bytes.length;\n }\n\n var innerid = getvint(bytes, offset, false);\n\n if (bytesMatch(id.bytes, innerid.bytes)) {\n return offset;\n }\n\n var dataHeader = getvint(bytes, offset + innerid.length);\n return getInfinityDataSize(id, bytes, offset + dataHeader.length + dataHeader.value + innerid.length);\n};\n/**\n * Notes on the EBLM format.\n *\n * EBLM uses \"vints\" tags. Every vint tag contains\n * two parts\n *\n * 1. The length from the first byte. You get this by\n * converting the byte to binary and counting the zeros\n * before a 1. Then you add 1 to that. Examples\n * 00011111 = length 4 because there are 3 zeros before a 1.\n * 00100000 = length 3 because there are 2 zeros before a 1.\n * 00000011 = length 7 because there are 6 zeros before a 1.\n *\n * 2. The bits used for length are removed from the first byte\n * Then all the bytes are merged into a value. NOTE: this\n * is not the case for id ebml tags as there id includes\n * length bits.\n *\n */\n\n\nexport var findEbml = function findEbml(bytes, paths) {\n paths = normalizePaths(paths);\n bytes = toUint8(bytes);\n var results = [];\n\n if (!paths.length) {\n return results;\n }\n\n var i = 0;\n\n while (i < bytes.length) {\n var id = getvint(bytes, i, false);\n var dataHeader = getvint(bytes, i + id.length);\n var dataStart = i + id.length + dataHeader.length; // dataSize is unknown or this is a live stream\n\n if (dataHeader.value === 0x7f) {\n dataHeader.value = getInfinityDataSize(id, bytes, dataStart);\n\n if (dataHeader.value !== bytes.length) {\n dataHeader.value -= dataStart;\n }\n }\n\n var dataEnd = dataStart + dataHeader.value > bytes.length ? bytes.length : dataStart + dataHeader.value;\n var data = bytes.subarray(dataStart, dataEnd);\n\n if (bytesMatch(paths[0], id.bytes)) {\n if (paths.length === 1) {\n // this is the end of the paths and we've found the tag we were\n // looking for\n results.push(data);\n } else {\n // recursively search for the next tag inside of the data\n // of this one\n results = results.concat(findEbml(data, paths.slice(1)));\n }\n }\n\n var totalLength = id.length + dataHeader.length + data.length; // move past this tag entirely, we are not looking for it\n\n i += totalLength;\n }\n\n return results;\n}; // see https://www.matroska.org/technical/basics.html#block-structure\n\nexport var decodeBlock = function decodeBlock(block, type, timestampScale, clusterTimestamp) {\n var duration;\n\n if (type === 'group') {\n duration = findEbml(block, [EBML_TAGS.BlockDuration])[0];\n\n if (duration) {\n duration = bytesToNumber(duration);\n duration = 1 / timestampScale * duration * timestampScale / 1000;\n }\n\n block = findEbml(block, [EBML_TAGS.Block])[0];\n type = 'block'; // treat data as a block after this point\n }\n\n var dv = new DataView(block.buffer, block.byteOffset, block.byteLength);\n var trackNumber = getvint(block, 0);\n var timestamp = dv.getInt16(trackNumber.length, false);\n var flags = block[trackNumber.length + 2];\n var data = block.subarray(trackNumber.length + 3); // pts/dts in seconds\n\n var ptsdts = 1 / timestampScale * (clusterTimestamp + timestamp) * timestampScale / 1000; // return the frame\n\n var parsed = {\n duration: duration,\n trackNumber: trackNumber.value,\n keyframe: type === 'simple' && flags >> 7 === 1,\n invisible: (flags & 0x08) >> 3 === 1,\n lacing: (flags & 0x06) >> 1,\n discardable: type === 'simple' && (flags & 0x01) === 1,\n frames: [],\n pts: ptsdts,\n dts: ptsdts,\n timestamp: timestamp\n };\n\n if (!parsed.lacing) {\n parsed.frames.push(data);\n return parsed;\n }\n\n var numberOfFrames = data[0] + 1;\n var frameSizes = [];\n var offset = 1; // Fixed\n\n if (parsed.lacing === 2) {\n var sizeOfFrame = (data.length - offset) / numberOfFrames;\n\n for (var i = 0; i < numberOfFrames; i++) {\n frameSizes.push(sizeOfFrame);\n }\n } // xiph\n\n\n if (parsed.lacing === 1) {\n for (var _i = 0; _i < numberOfFrames - 1; _i++) {\n var size = 0;\n\n do {\n size += data[offset];\n offset++;\n } while (data[offset - 1] === 0xFF);\n\n frameSizes.push(size);\n }\n } // ebml\n\n\n if (parsed.lacing === 3) {\n // first vint is unsinged\n // after that vints are singed and\n // based on a compounding size\n var _size = 0;\n\n for (var _i2 = 0; _i2 < numberOfFrames - 1; _i2++) {\n var vint = _i2 === 0 ? getvint(data, offset) : getvint(data, offset, true, true);\n _size += vint.value;\n frameSizes.push(_size);\n offset += vint.length;\n }\n }\n\n frameSizes.forEach(function (size) {\n parsed.frames.push(data.subarray(offset, offset + size));\n offset += size;\n });\n return parsed;\n}; // VP9 Codec Feature Metadata (CodecPrivate)\n// https://www.webmproject.org/docs/container/\n\nvar parseVp9Private = function parseVp9Private(bytes) {\n var i = 0;\n var params = {};\n\n while (i < bytes.length) {\n var id = bytes[i] & 0x7f;\n var len = bytes[i + 1];\n var val = void 0;\n\n if (len === 1) {\n val = bytes[i + 2];\n } else {\n val = bytes.subarray(i + 2, i + 2 + len);\n }\n\n if (id === 1) {\n params.profile = val;\n } else if (id === 2) {\n params.level = val;\n } else if (id === 3) {\n params.bitDepth = val;\n } else if (id === 4) {\n params.chromaSubsampling = val;\n } else {\n params[id] = val;\n }\n\n i += 2 + len;\n }\n\n return params;\n};\n\nexport var parseTracks = function parseTracks(bytes) {\n bytes = toUint8(bytes);\n var decodedTracks = [];\n var tracks = findEbml(bytes, [EBML_TAGS.Segment, EBML_TAGS.Tracks, EBML_TAGS.Track]);\n\n if (!tracks.length) {\n tracks = findEbml(bytes, [EBML_TAGS.Tracks, EBML_TAGS.Track]);\n }\n\n if (!tracks.length) {\n tracks = findEbml(bytes, [EBML_TAGS.Track]);\n }\n\n if (!tracks.length) {\n return decodedTracks;\n }\n\n tracks.forEach(function (track) {\n var trackType = findEbml(track, EBML_TAGS.TrackType)[0];\n\n if (!trackType || !trackType.length) {\n return;\n } // 1 is video, 2 is audio, 17 is subtitle\n // other values are unimportant in this context\n\n\n if (trackType[0] === 1) {\n trackType = 'video';\n } else if (trackType[0] === 2) {\n trackType = 'audio';\n } else if (trackType[0] === 17) {\n trackType = 'subtitle';\n } else {\n return;\n } // todo parse language\n\n\n var decodedTrack = {\n rawCodec: bytesToString(findEbml(track, [EBML_TAGS.CodecID])[0]),\n type: trackType,\n codecPrivate: findEbml(track, [EBML_TAGS.CodecPrivate])[0],\n number: bytesToNumber(findEbml(track, [EBML_TAGS.TrackNumber])[0]),\n defaultDuration: bytesToNumber(findEbml(track, [EBML_TAGS.DefaultDuration])[0]),\n default: findEbml(track, [EBML_TAGS.FlagDefault])[0],\n rawData: track\n };\n var codec = '';\n\n if (/V_MPEG4\\/ISO\\/AVC/.test(decodedTrack.rawCodec)) {\n codec = \"avc1.\" + getAvcCodec(decodedTrack.codecPrivate);\n } else if (/V_MPEGH\\/ISO\\/HEVC/.test(decodedTrack.rawCodec)) {\n codec = \"hev1.\" + getHvcCodec(decodedTrack.codecPrivate);\n } else if (/V_MPEG4\\/ISO\\/ASP/.test(decodedTrack.rawCodec)) {\n if (decodedTrack.codecPrivate) {\n codec = 'mp4v.20.' + decodedTrack.codecPrivate[4].toString();\n } else {\n codec = 'mp4v.20.9';\n }\n } else if (/^V_THEORA/.test(decodedTrack.rawCodec)) {\n codec = 'theora';\n } else if (/^V_VP8/.test(decodedTrack.rawCodec)) {\n codec = 'vp8';\n } else if (/^V_VP9/.test(decodedTrack.rawCodec)) {\n if (decodedTrack.codecPrivate) {\n var _parseVp9Private = parseVp9Private(decodedTrack.codecPrivate),\n profile = _parseVp9Private.profile,\n level = _parseVp9Private.level,\n bitDepth = _parseVp9Private.bitDepth,\n chromaSubsampling = _parseVp9Private.chromaSubsampling;\n\n codec = 'vp09.';\n codec += padStart(profile, 2, '0') + \".\";\n codec += padStart(level, 2, '0') + \".\";\n codec += padStart(bitDepth, 2, '0') + \".\";\n codec += \"\" + padStart(chromaSubsampling, 2, '0'); // Video -> Colour -> Ebml name\n\n var matrixCoefficients = findEbml(track, [0xE0, [0x55, 0xB0], [0x55, 0xB1]])[0] || [];\n var videoFullRangeFlag = findEbml(track, [0xE0, [0x55, 0xB0], [0x55, 0xB9]])[0] || [];\n var transferCharacteristics = findEbml(track, [0xE0, [0x55, 0xB0], [0x55, 0xBA]])[0] || [];\n var colourPrimaries = findEbml(track, [0xE0, [0x55, 0xB0], [0x55, 0xBB]])[0] || []; // if we find any optional codec parameter specify them all.\n\n if (matrixCoefficients.length || videoFullRangeFlag.length || transferCharacteristics.length || colourPrimaries.length) {\n codec += \".\" + padStart(colourPrimaries[0], 2, '0');\n codec += \".\" + padStart(transferCharacteristics[0], 2, '0');\n codec += \".\" + padStart(matrixCoefficients[0], 2, '0');\n codec += \".\" + padStart(videoFullRangeFlag[0], 2, '0');\n }\n } else {\n codec = 'vp9';\n }\n } else if (/^V_AV1/.test(decodedTrack.rawCodec)) {\n codec = \"av01.\" + getAv1Codec(decodedTrack.codecPrivate);\n } else if (/A_ALAC/.test(decodedTrack.rawCodec)) {\n codec = 'alac';\n } else if (/A_MPEG\\/L2/.test(decodedTrack.rawCodec)) {\n codec = 'mp2';\n } else if (/A_MPEG\\/L3/.test(decodedTrack.rawCodec)) {\n codec = 'mp3';\n } else if (/^A_AAC/.test(decodedTrack.rawCodec)) {\n if (decodedTrack.codecPrivate) {\n codec = 'mp4a.40.' + (decodedTrack.codecPrivate[0] >>> 3).toString();\n } else {\n codec = 'mp4a.40.2';\n }\n } else if (/^A_AC3/.test(decodedTrack.rawCodec)) {\n codec = 'ac-3';\n } else if (/^A_PCM/.test(decodedTrack.rawCodec)) {\n codec = 'pcm';\n } else if (/^A_MS\\/ACM/.test(decodedTrack.rawCodec)) {\n codec = 'speex';\n } else if (/^A_EAC3/.test(decodedTrack.rawCodec)) {\n codec = 'ec-3';\n } else if (/^A_VORBIS/.test(decodedTrack.rawCodec)) {\n codec = 'vorbis';\n } else if (/^A_FLAC/.test(decodedTrack.rawCodec)) {\n codec = 'flac';\n } else if (/^A_OPUS/.test(decodedTrack.rawCodec)) {\n codec = 'opus';\n }\n\n decodedTrack.codec = codec;\n decodedTracks.push(decodedTrack);\n });\n return decodedTracks.sort(function (a, b) {\n return a.number - b.number;\n });\n};\nexport var parseData = function parseData(data, tracks) {\n var allBlocks = [];\n var segment = findEbml(data, [EBML_TAGS.Segment])[0];\n var timestampScale = findEbml(segment, [EBML_TAGS.SegmentInfo, EBML_TAGS.TimestampScale])[0]; // in nanoseconds, defaults to 1ms\n\n if (timestampScale && timestampScale.length) {\n timestampScale = bytesToNumber(timestampScale);\n } else {\n timestampScale = 1000000;\n }\n\n var clusters = findEbml(segment, [EBML_TAGS.Cluster]);\n\n if (!tracks) {\n tracks = parseTracks(segment);\n }\n\n clusters.forEach(function (cluster, ci) {\n var simpleBlocks = findEbml(cluster, [EBML_TAGS.SimpleBlock]).map(function (b) {\n return {\n type: 'simple',\n data: b\n };\n });\n var blockGroups = findEbml(cluster, [EBML_TAGS.BlockGroup]).map(function (b) {\n return {\n type: 'group',\n data: b\n };\n });\n var timestamp = findEbml(cluster, [EBML_TAGS.Timestamp])[0] || 0;\n\n if (timestamp && timestamp.length) {\n timestamp = bytesToNumber(timestamp);\n } // get all blocks then sort them into the correct order\n\n\n var blocks = simpleBlocks.concat(blockGroups).sort(function (a, b) {\n return a.data.byteOffset - b.data.byteOffset;\n });\n blocks.forEach(function (block, bi) {\n var decoded = decodeBlock(block.data, block.type, timestampScale, timestamp);\n allBlocks.push(decoded);\n });\n });\n return {\n tracks: tracks,\n blocks: allBlocks\n };\n};","import { bytesMatch, toUint8 } from './byte-helpers.js';\nexport var NAL_TYPE_ONE = toUint8([0x00, 0x00, 0x00, 0x01]);\nexport var NAL_TYPE_TWO = toUint8([0x00, 0x00, 0x01]);\nexport var EMULATION_PREVENTION = toUint8([0x00, 0x00, 0x03]);\n/**\n * Expunge any \"Emulation Prevention\" bytes from a \"Raw Byte\n * Sequence Payload\"\n *\n * @param data {Uint8Array} the bytes of a RBSP from a NAL\n * unit\n * @return {Uint8Array} the RBSP without any Emulation\n * Prevention Bytes\n */\n\nexport var discardEmulationPreventionBytes = function discardEmulationPreventionBytes(bytes) {\n var positions = [];\n var i = 1; // Find all `Emulation Prevention Bytes`\n\n while (i < bytes.length - 2) {\n if (bytesMatch(bytes.subarray(i, i + 3), EMULATION_PREVENTION)) {\n positions.push(i + 2);\n i++;\n }\n\n i++;\n } // If no Emulation Prevention Bytes were found just return the original\n // array\n\n\n if (positions.length === 0) {\n return bytes;\n } // Create a new array to hold the NAL unit data\n\n\n var newLength = bytes.length - positions.length;\n var newData = new Uint8Array(newLength);\n var sourceIndex = 0;\n\n for (i = 0; i < newLength; sourceIndex++, i++) {\n if (sourceIndex === positions[0]) {\n // Skip this byte\n sourceIndex++; // Remove this position index\n\n positions.shift();\n }\n\n newData[i] = bytes[sourceIndex];\n }\n\n return newData;\n};\nexport var findNal = function findNal(bytes, dataType, types, nalLimit) {\n if (nalLimit === void 0) {\n nalLimit = Infinity;\n }\n\n bytes = toUint8(bytes);\n types = [].concat(types);\n var i = 0;\n var nalStart;\n var nalsFound = 0; // keep searching until:\n // we reach the end of bytes\n // we reach the maximum number of nals they want to seach\n // NOTE: that we disregard nalLimit when we have found the start\n // of the nal we want so that we can find the end of the nal we want.\n\n while (i < bytes.length && (nalsFound < nalLimit || nalStart)) {\n var nalOffset = void 0;\n\n if (bytesMatch(bytes.subarray(i), NAL_TYPE_ONE)) {\n nalOffset = 4;\n } else if (bytesMatch(bytes.subarray(i), NAL_TYPE_TWO)) {\n nalOffset = 3;\n } // we are unsynced,\n // find the next nal unit\n\n\n if (!nalOffset) {\n i++;\n continue;\n }\n\n nalsFound++;\n\n if (nalStart) {\n return discardEmulationPreventionBytes(bytes.subarray(nalStart, i));\n }\n\n var nalType = void 0;\n\n if (dataType === 'h264') {\n nalType = bytes[i + nalOffset] & 0x1f;\n } else if (dataType === 'h265') {\n nalType = bytes[i + nalOffset] >> 1 & 0x3f;\n }\n\n if (types.indexOf(nalType) !== -1) {\n nalStart = i + nalOffset;\n } // nal header is 1 length for h264, and 2 for h265\n\n\n i += nalOffset + (dataType === 'h264' ? 1 : 2);\n }\n\n return bytes.subarray(0, 0);\n};\nexport var findH264Nal = function findH264Nal(bytes, type, nalLimit) {\n return findNal(bytes, 'h264', type, nalLimit);\n};\nexport var findH265Nal = function findH265Nal(bytes, type, nalLimit) {\n return findNal(bytes, 'h265', type, nalLimit);\n};","import { toUint8, bytesMatch } from './byte-helpers.js';\nimport { findBox } from './mp4-helpers.js';\nimport { findEbml, EBML_TAGS } from './ebml-helpers.js';\nimport { getId3Offset } from './id3-helpers.js';\nimport { findH264Nal, findH265Nal } from './nal-helpers.js';\nvar CONSTANTS = {\n // \"webm\" string literal in hex\n 'webm': toUint8([0x77, 0x65, 0x62, 0x6d]),\n // \"matroska\" string literal in hex\n 'matroska': toUint8([0x6d, 0x61, 0x74, 0x72, 0x6f, 0x73, 0x6b, 0x61]),\n // \"fLaC\" string literal in hex\n 'flac': toUint8([0x66, 0x4c, 0x61, 0x43]),\n // \"OggS\" string literal in hex\n 'ogg': toUint8([0x4f, 0x67, 0x67, 0x53]),\n // ac-3 sync byte, also works for ec-3 as that is simply a codec\n // of ac-3\n 'ac3': toUint8([0x0b, 0x77]),\n // \"RIFF\" string literal in hex used for wav and avi\n 'riff': toUint8([0x52, 0x49, 0x46, 0x46]),\n // \"AVI\" string literal in hex\n 'avi': toUint8([0x41, 0x56, 0x49]),\n // \"WAVE\" string literal in hex\n 'wav': toUint8([0x57, 0x41, 0x56, 0x45]),\n // \"ftyp3g\" string literal in hex\n '3gp': toUint8([0x66, 0x74, 0x79, 0x70, 0x33, 0x67]),\n // \"ftyp\" string literal in hex\n 'mp4': toUint8([0x66, 0x74, 0x79, 0x70]),\n // \"styp\" string literal in hex\n 'fmp4': toUint8([0x73, 0x74, 0x79, 0x70]),\n // \"ftypqt\" string literal in hex\n 'mov': toUint8([0x66, 0x74, 0x79, 0x70, 0x71, 0x74]),\n // moov string literal in hex\n 'moov': toUint8([0x6D, 0x6F, 0x6F, 0x76]),\n // moof string literal in hex\n 'moof': toUint8([0x6D, 0x6F, 0x6F, 0x66])\n};\nvar _isLikely = {\n aac: function aac(bytes) {\n var offset = getId3Offset(bytes);\n return bytesMatch(bytes, [0xFF, 0x10], {\n offset: offset,\n mask: [0xFF, 0x16]\n });\n },\n mp3: function mp3(bytes) {\n var offset = getId3Offset(bytes);\n return bytesMatch(bytes, [0xFF, 0x02], {\n offset: offset,\n mask: [0xFF, 0x06]\n });\n },\n webm: function webm(bytes) {\n var docType = findEbml(bytes, [EBML_TAGS.EBML, EBML_TAGS.DocType])[0]; // check if DocType EBML tag is webm\n\n return bytesMatch(docType, CONSTANTS.webm);\n },\n mkv: function mkv(bytes) {\n var docType = findEbml(bytes, [EBML_TAGS.EBML, EBML_TAGS.DocType])[0]; // check if DocType EBML tag is matroska\n\n return bytesMatch(docType, CONSTANTS.matroska);\n },\n mp4: function mp4(bytes) {\n // if this file is another base media file format, it is not mp4\n if (_isLikely['3gp'](bytes) || _isLikely.mov(bytes)) {\n return false;\n } // if this file starts with a ftyp or styp box its mp4\n\n\n if (bytesMatch(bytes, CONSTANTS.mp4, {\n offset: 4\n }) || bytesMatch(bytes, CONSTANTS.fmp4, {\n offset: 4\n })) {\n return true;\n } // if this file starts with a moof/moov box its mp4\n\n\n if (bytesMatch(bytes, CONSTANTS.moof, {\n offset: 4\n }) || bytesMatch(bytes, CONSTANTS.moov, {\n offset: 4\n })) {\n return true;\n }\n },\n mov: function mov(bytes) {\n return bytesMatch(bytes, CONSTANTS.mov, {\n offset: 4\n });\n },\n '3gp': function gp(bytes) {\n return bytesMatch(bytes, CONSTANTS['3gp'], {\n offset: 4\n });\n },\n ac3: function ac3(bytes) {\n var offset = getId3Offset(bytes);\n return bytesMatch(bytes, CONSTANTS.ac3, {\n offset: offset\n });\n },\n ts: function ts(bytes) {\n if (bytes.length < 189 && bytes.length >= 1) {\n return bytes[0] === 0x47;\n }\n\n var i = 0; // check the first 376 bytes for two matching sync bytes\n\n while (i + 188 < bytes.length && i < 188) {\n if (bytes[i] === 0x47 && bytes[i + 188] === 0x47) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n flac: function flac(bytes) {\n var offset = getId3Offset(bytes);\n return bytesMatch(bytes, CONSTANTS.flac, {\n offset: offset\n });\n },\n ogg: function ogg(bytes) {\n return bytesMatch(bytes, CONSTANTS.ogg);\n },\n avi: function avi(bytes) {\n return bytesMatch(bytes, CONSTANTS.riff) && bytesMatch(bytes, CONSTANTS.avi, {\n offset: 8\n });\n },\n wav: function wav(bytes) {\n return bytesMatch(bytes, CONSTANTS.riff) && bytesMatch(bytes, CONSTANTS.wav, {\n offset: 8\n });\n },\n 'h264': function h264(bytes) {\n // find seq_parameter_set_rbsp\n return findH264Nal(bytes, 7, 3).length;\n },\n 'h265': function h265(bytes) {\n // find video_parameter_set_rbsp or seq_parameter_set_rbsp\n return findH265Nal(bytes, [32, 33], 3).length;\n }\n}; // get all the isLikely functions\n// but make sure 'ts' is above h264 and h265\n// but below everything else as it is the least specific\n\nvar isLikelyTypes = Object.keys(_isLikely) // remove ts, h264, h265\n.filter(function (t) {\n return t !== 'ts' && t !== 'h264' && t !== 'h265';\n}) // add it back to the bottom\n.concat(['ts', 'h264', 'h265']); // make sure we are dealing with uint8 data.\n\nisLikelyTypes.forEach(function (type) {\n var isLikelyFn = _isLikely[type];\n\n _isLikely[type] = function (bytes) {\n return isLikelyFn(toUint8(bytes));\n };\n}); // export after wrapping\n\nexport var isLikely = _isLikely; // A useful list of file signatures can be found here\n// https://en.wikipedia.org/wiki/List_of_file_signatures\n\nexport var detectContainerForBytes = function detectContainerForBytes(bytes) {\n bytes = toUint8(bytes);\n\n for (var i = 0; i < isLikelyTypes.length; i++) {\n var type = isLikelyTypes[i];\n\n if (isLikely[type](bytes)) {\n return type;\n }\n }\n\n return '';\n}; // fmp4 is not a container\n\nexport var isLikelyFmp4MediaSegment = function isLikelyFmp4MediaSegment(bytes) {\n return findBox(bytes, ['moof']).length > 0;\n};","module.exports = require('./lib/axios');","'use strict';\n/**\n * \"Shallow freezes\" an object to render it immutable.\n * Uses `Object.freeze` if available,\n * otherwise the immutability is only in the type.\n *\n * Is used to create \"enum like\" objects.\n *\n * @template T\n * @param {T} object the object to freeze\n * @param {Pick = Object} oc `Object` by default,\n * \t\t\t\tallows to inject custom object constructor for tests\n * @returns {Readonly}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze\n */\n\nfunction freeze(object, oc) {\n if (oc === undefined) {\n oc = Object;\n }\n\n return oc && typeof oc.freeze === 'function' ? oc.freeze(object) : object;\n}\n/**\n * All mime types that are allowed as input to `DOMParser.parseFromString`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02 MDN\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#domparsersupportedtype WHATWG HTML Spec\n * @see DOMParser.prototype.parseFromString\n */\n\n\nvar MIME_TYPE = freeze({\n /**\n * `text/html`, the only mime type that triggers treating an XML document as HTML.\n *\n * @see DOMParser.SupportedType.isHTML\n * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring WHATWG HTML Spec\n */\n HTML: 'text/html',\n\n /**\n * Helper method to check a mime type if it indicates an HTML document\n *\n * @param {string} [value]\n * @returns {boolean}\n *\n * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring \t */\n isHTML: function (value) {\n return value === MIME_TYPE.HTML;\n },\n\n /**\n * `application/xml`, the standard mime type for XML documents.\n *\n * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType registration\n * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303\n * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n */\n XML_APPLICATION: 'application/xml',\n\n /**\n * `text/html`, an alias for `application/xml`.\n *\n * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303\n * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration\n * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n */\n XML_TEXT: 'text/xml',\n\n /**\n * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace,\n * but is parsed as an XML document.\n *\n * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType registration\n * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec\n * @see https://en.wikipedia.org/wiki/XHTML Wikipedia\n */\n XML_XHTML_APPLICATION: 'application/xhtml+xml',\n\n /**\n * `image/svg+xml`,\n *\n * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration\n * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1\n * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia\n */\n XML_SVG_IMAGE: 'image/svg+xml'\n});\n/**\n * Namespaces that are used in this code base.\n *\n * @see http://www.w3.org/TR/REC-xml-names\n */\n\nvar NAMESPACE = freeze({\n /**\n * The XHTML namespace.\n *\n * @see http://www.w3.org/1999/xhtml\n */\n HTML: 'http://www.w3.org/1999/xhtml',\n\n /**\n * Checks if `uri` equals `NAMESPACE.HTML`.\n *\n * @param {string} [uri]\n *\n * @see NAMESPACE.HTML\n */\n isHTML: function (uri) {\n return uri === NAMESPACE.HTML;\n },\n\n /**\n * The SVG namespace.\n *\n * @see http://www.w3.org/2000/svg\n */\n SVG: 'http://www.w3.org/2000/svg',\n\n /**\n * The `xml:` namespace.\n *\n * @see http://www.w3.org/XML/1998/namespace\n */\n XML: 'http://www.w3.org/XML/1998/namespace',\n\n /**\n * The `xmlns:` namespace\n *\n * @see https://www.w3.org/2000/xmlns/\n */\n XMLNS: 'http://www.w3.org/2000/xmlns/'\n});\nexports.freeze = freeze;\nexports.MIME_TYPE = MIME_TYPE;\nexports.NAMESPACE = NAMESPACE;","import window from 'global/window';\n\nvar atob = function atob(s) {\n return window.atob ? window.atob(s) : Buffer.from(s, 'base64').toString('binary');\n};\n\nexport default function decodeB64ToUint8Array(b64Text) {\n var decodedString = atob(b64Text);\n var array = new Uint8Array(decodedString.length);\n\n for (var i = 0; i < decodedString.length; i++) {\n array[i] = decodedString.charCodeAt(i);\n }\n\n return array;\n}","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import React from 'react'\nimport './styles.scss'\n\nfunction Video(props) {\n return (\n \n \n \n )\n}\n\nexport default Video\n","\"use strict\";\n\nvar window = require(\"global/window\");\n\nvar _extends = require(\"@babel/runtime/helpers/extends\");\n\nvar isFunction = require('is-function');\n\ncreateXHR.httpHandler = require('./http-handler.js');\n/**\n * @license\n * slighly modified parse-headers 2.0.2 \n * Copyright (c) 2014 David Björklund\n * Available under the MIT license\n * \n */\n\nvar parseHeaders = function parseHeaders(headers) {\n var result = {};\n\n if (!headers) {\n return result;\n }\n\n headers.trim().split('\\n').forEach(function (row) {\n var index = row.indexOf(':');\n var key = row.slice(0, index).trim().toLowerCase();\n var value = row.slice(index + 1).trim();\n\n if (typeof result[key] === 'undefined') {\n result[key] = value;\n } else if (Array.isArray(result[key])) {\n result[key].push(value);\n } else {\n result[key] = [result[key], value];\n }\n });\n return result;\n};\n\nmodule.exports = createXHR; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = createXHR;\ncreateXHR.XMLHttpRequest = window.XMLHttpRequest || noop;\ncreateXHR.XDomainRequest = \"withCredentials\" in new createXHR.XMLHttpRequest() ? createXHR.XMLHttpRequest : window.XDomainRequest;\nforEachArray([\"get\", \"put\", \"post\", \"patch\", \"head\", \"delete\"], function (method) {\n createXHR[method === \"delete\" ? \"del\" : method] = function (uri, options, callback) {\n options = initParams(uri, options, callback);\n options.method = method.toUpperCase();\n return _createXHR(options);\n };\n});\n\nfunction forEachArray(array, iterator) {\n for (var i = 0; i < array.length; i++) {\n iterator(array[i]);\n }\n}\n\nfunction isEmpty(obj) {\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) return false;\n }\n\n return true;\n}\n\nfunction initParams(uri, options, callback) {\n var params = uri;\n\n if (isFunction(options)) {\n callback = options;\n\n if (typeof uri === \"string\") {\n params = {\n uri: uri\n };\n }\n } else {\n params = _extends({}, options, {\n uri: uri\n });\n }\n\n params.callback = callback;\n return params;\n}\n\nfunction createXHR(uri, options, callback) {\n options = initParams(uri, options, callback);\n return _createXHR(options);\n}\n\nfunction _createXHR(options) {\n if (typeof options.callback === \"undefined\") {\n throw new Error(\"callback argument missing\");\n }\n\n var called = false;\n\n var callback = function cbOnce(err, response, body) {\n if (!called) {\n called = true;\n options.callback(err, response, body);\n }\n };\n\n function readystatechange() {\n if (xhr.readyState === 4) {\n setTimeout(loadFunc, 0);\n }\n }\n\n function getBody() {\n // Chrome with requestType=blob throws errors arround when even testing access to responseText\n var body = undefined;\n\n if (xhr.response) {\n body = xhr.response;\n } else {\n body = xhr.responseText || getXml(xhr);\n }\n\n if (isJson) {\n try {\n body = JSON.parse(body);\n } catch (e) {}\n }\n\n return body;\n }\n\n function errorFunc(evt) {\n clearTimeout(timeoutTimer);\n\n if (!(evt instanceof Error)) {\n evt = new Error(\"\" + (evt || \"Unknown XMLHttpRequest Error\"));\n }\n\n evt.statusCode = 0;\n return callback(evt, failureResponse);\n } // will load the data & process the response in a special response object\n\n\n function loadFunc() {\n if (aborted) return;\n var status;\n clearTimeout(timeoutTimer);\n\n if (options.useXDR && xhr.status === undefined) {\n //IE8 CORS GET successful response doesn't have a status field, but body is fine\n status = 200;\n } else {\n status = xhr.status === 1223 ? 204 : xhr.status;\n }\n\n var response = failureResponse;\n var err = null;\n\n if (status !== 0) {\n response = {\n body: getBody(),\n statusCode: status,\n method: method,\n headers: {},\n url: uri,\n rawRequest: xhr\n };\n\n if (xhr.getAllResponseHeaders) {\n //remember xhr can in fact be XDR for CORS in IE\n response.headers = parseHeaders(xhr.getAllResponseHeaders());\n }\n } else {\n err = new Error(\"Internal XMLHttpRequest Error\");\n }\n\n return callback(err, response, response.body);\n }\n\n var xhr = options.xhr || null;\n\n if (!xhr) {\n if (options.cors || options.useXDR) {\n xhr = new createXHR.XDomainRequest();\n } else {\n xhr = new createXHR.XMLHttpRequest();\n }\n }\n\n var key;\n var aborted;\n var uri = xhr.url = options.uri || options.url;\n var method = xhr.method = options.method || \"GET\";\n var body = options.body || options.data;\n var headers = xhr.headers = options.headers || {};\n var sync = !!options.sync;\n var isJson = false;\n var timeoutTimer;\n var failureResponse = {\n body: undefined,\n headers: {},\n statusCode: 0,\n method: method,\n url: uri,\n rawRequest: xhr\n };\n\n if (\"json\" in options && options.json !== false) {\n isJson = true;\n headers[\"accept\"] || headers[\"Accept\"] || (headers[\"Accept\"] = \"application/json\"); //Don't override existing accept header declared by user\n\n if (method !== \"GET\" && method !== \"HEAD\") {\n headers[\"content-type\"] || headers[\"Content-Type\"] || (headers[\"Content-Type\"] = \"application/json\"); //Don't override existing accept header declared by user\n\n body = JSON.stringify(options.json === true ? body : options.json);\n }\n }\n\n xhr.onreadystatechange = readystatechange;\n xhr.onload = loadFunc;\n xhr.onerror = errorFunc; // IE9 must have onprogress be set to a unique function.\n\n xhr.onprogress = function () {// IE must die\n };\n\n xhr.onabort = function () {\n aborted = true;\n };\n\n xhr.ontimeout = errorFunc;\n xhr.open(method, uri, !sync, options.username, options.password); //has to be after open\n\n if (!sync) {\n xhr.withCredentials = !!options.withCredentials;\n } // Cannot set timeout with sync request\n // not setting timeout on the xhr object, because of old webkits etc. not handling that correctly\n // both npm's request and jquery 1.x use this kind of timeout, so this is being consistent\n\n\n if (!sync && options.timeout > 0) {\n timeoutTimer = setTimeout(function () {\n if (aborted) return;\n aborted = true; //IE9 may still call readystatechange\n\n xhr.abort(\"timeout\");\n var e = new Error(\"XMLHttpRequest timeout\");\n e.code = \"ETIMEDOUT\";\n errorFunc(e);\n }, options.timeout);\n }\n\n if (xhr.setRequestHeader) {\n for (key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n } else if (options.headers && !isEmpty(options.headers)) {\n throw new Error(\"Headers cannot be set on an XDomainRequest object\");\n }\n\n if (\"responseType\" in options) {\n xhr.responseType = options.responseType;\n }\n\n if (\"beforeSend\" in options && typeof options.beforeSend === \"function\") {\n options.beforeSend(xhr);\n } // Microsoft Edge browser sends \"undefined\" when send is called with undefined value.\n // XMLHttpRequest spec says to pass null as body to indicate no body\n // See https://github.com/naugtur/xhr/issues/100.\n\n\n xhr.send(body || null);\n return xhr;\n}\n\nfunction getXml(xhr) {\n // xhr.responseXML will throw Exception \"InvalidStateError\" or \"DOMException\"\n // See https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseXML.\n try {\n if (xhr.responseType === \"document\") {\n return xhr.responseXML;\n }\n\n var firefoxBugTakenEffect = xhr.responseXML && xhr.responseXML.documentElement.nodeName === \"parsererror\";\n\n if (xhr.responseType === \"\" && !firefoxBugTakenEffect) {\n return xhr.responseXML;\n }\n } catch (e) {}\n\n return null;\n}\n\nfunction noop() {}","/**\n * Copyright 2013 vtt.js Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Default exports for Node. Export the extended versions of VTTCue and\n// VTTRegion in Node since we likely want the capability to convert back and\n// forth between JSON. If we don't then it's not that big of a deal since we're\n// off browser.\nvar window = require('global/window');\n\nvar vttjs = module.exports = {\n WebVTT: require(\"./vtt.js\"),\n VTTCue: require(\"./vttcue.js\"),\n VTTRegion: require(\"./vttregion.js\")\n};\nwindow.vttjs = vttjs;\nwindow.WebVTT = vttjs.WebVTT;\nvar cueShim = vttjs.VTTCue;\nvar regionShim = vttjs.VTTRegion;\nvar nativeVTTCue = window.VTTCue;\nvar nativeVTTRegion = window.VTTRegion;\n\nvttjs.shim = function () {\n window.VTTCue = cueShim;\n window.VTTRegion = regionShim;\n};\n\nvttjs.restore = function () {\n window.VTTCue = nativeVTTCue;\n window.VTTRegion = nativeVTTRegion;\n};\n\nif (!window.VTTCue) {\n vttjs.shim();\n}","// see https://tools.ietf.org/html/rfc1808\n(function (root) {\n var URL_REGEX = /^(?=((?:[a-zA-Z0-9+\\-.]+:)?))\\1(?=((?:\\/\\/[^\\/?#]*)?))\\2(?=((?:(?:[^?#\\/]*\\/)*[^;?#\\/]*)?))\\3((?:;[^?#]*)?)(\\?[^#]*)?(#[^]*)?$/;\n var FIRST_SEGMENT_REGEX = /^(?=([^\\/?#]*))\\1([^]*)$/;\n var SLASH_DOT_REGEX = /(?:\\/|^)\\.(?=\\/)/g;\n var SLASH_DOT_DOT_REGEX = /(?:\\/|^)\\.\\.\\/(?!\\.\\.\\/)[^\\/]*(?=\\/)/g;\n var URLToolkit = {\n // If opts.alwaysNormalize is true then the path will always be normalized even when it starts with / or //\n // E.g\n // With opts.alwaysNormalize = false (default, spec compliant)\n // http://a.com/b/cd + /e/f/../g => http://a.com/e/f/../g\n // With opts.alwaysNormalize = true (not spec compliant)\n // http://a.com/b/cd + /e/f/../g => http://a.com/e/g\n buildAbsoluteURL: function (baseURL, relativeURL, opts) {\n opts = opts || {}; // remove any remaining space and CRLF\n\n baseURL = baseURL.trim();\n relativeURL = relativeURL.trim();\n\n if (!relativeURL) {\n // 2a) If the embedded URL is entirely empty, it inherits the\n // entire base URL (i.e., is set equal to the base URL)\n // and we are done.\n if (!opts.alwaysNormalize) {\n return baseURL;\n }\n\n var basePartsForNormalise = URLToolkit.parseURL(baseURL);\n\n if (!basePartsForNormalise) {\n throw new Error('Error trying to parse base URL.');\n }\n\n basePartsForNormalise.path = URLToolkit.normalizePath(basePartsForNormalise.path);\n return URLToolkit.buildURLFromParts(basePartsForNormalise);\n }\n\n var relativeParts = URLToolkit.parseURL(relativeURL);\n\n if (!relativeParts) {\n throw new Error('Error trying to parse relative URL.');\n }\n\n if (relativeParts.scheme) {\n // 2b) If the embedded URL starts with a scheme name, it is\n // interpreted as an absolute URL and we are done.\n if (!opts.alwaysNormalize) {\n return relativeURL;\n }\n\n relativeParts.path = URLToolkit.normalizePath(relativeParts.path);\n return URLToolkit.buildURLFromParts(relativeParts);\n }\n\n var baseParts = URLToolkit.parseURL(baseURL);\n\n if (!baseParts) {\n throw new Error('Error trying to parse base URL.');\n }\n\n if (!baseParts.netLoc && baseParts.path && baseParts.path[0] !== '/') {\n // If netLoc missing and path doesn't start with '/', assume everthing before the first '/' is the netLoc\n // This causes 'example.com/a' to be handled as '//example.com/a' instead of '/example.com/a'\n var pathParts = FIRST_SEGMENT_REGEX.exec(baseParts.path);\n baseParts.netLoc = pathParts[1];\n baseParts.path = pathParts[2];\n }\n\n if (baseParts.netLoc && !baseParts.path) {\n baseParts.path = '/';\n }\n\n var builtParts = {\n // 2c) Otherwise, the embedded URL inherits the scheme of\n // the base URL.\n scheme: baseParts.scheme,\n netLoc: relativeParts.netLoc,\n path: null,\n params: relativeParts.params,\n query: relativeParts.query,\n fragment: relativeParts.fragment\n };\n\n if (!relativeParts.netLoc) {\n // 3) If the embedded URL's is non-empty, we skip to\n // Step 7. Otherwise, the embedded URL inherits the \n // (if any) of the base URL.\n builtParts.netLoc = baseParts.netLoc; // 4) If the embedded URL path is preceded by a slash \"/\", the\n // path is not relative and we skip to Step 7.\n\n if (relativeParts.path[0] !== '/') {\n if (!relativeParts.path) {\n // 5) If the embedded URL path is empty (and not preceded by a\n // slash), then the embedded URL inherits the base URL path\n builtParts.path = baseParts.path; // 5a) if the embedded URL's is non-empty, we skip to\n // step 7; otherwise, it inherits the of the base\n // URL (if any) and\n\n if (!relativeParts.params) {\n builtParts.params = baseParts.params; // 5b) if the embedded URL's is non-empty, we skip to\n // step 7; otherwise, it inherits the of the base\n // URL (if any) and we skip to step 7.\n\n if (!relativeParts.query) {\n builtParts.query = baseParts.query;\n }\n }\n } else {\n // 6) The last segment of the base URL's path (anything\n // following the rightmost slash \"/\", or the entire path if no\n // slash is present) is removed and the embedded URL's path is\n // appended in its place.\n var baseURLPath = baseParts.path;\n var newPath = baseURLPath.substring(0, baseURLPath.lastIndexOf('/') + 1) + relativeParts.path;\n builtParts.path = URLToolkit.normalizePath(newPath);\n }\n }\n }\n\n if (builtParts.path === null) {\n builtParts.path = opts.alwaysNormalize ? URLToolkit.normalizePath(relativeParts.path) : relativeParts.path;\n }\n\n return URLToolkit.buildURLFromParts(builtParts);\n },\n parseURL: function (url) {\n var parts = URL_REGEX.exec(url);\n\n if (!parts) {\n return null;\n }\n\n return {\n scheme: parts[1] || '',\n netLoc: parts[2] || '',\n path: parts[3] || '',\n params: parts[4] || '',\n query: parts[5] || '',\n fragment: parts[6] || ''\n };\n },\n normalizePath: function (path) {\n // The following operations are\n // then applied, in order, to the new path:\n // 6a) All occurrences of \"./\", where \".\" is a complete path\n // segment, are removed.\n // 6b) If the path ends with \".\" as a complete path segment,\n // that \".\" is removed.\n path = path.split('').reverse().join('').replace(SLASH_DOT_REGEX, ''); // 6c) All occurrences of \"/../\", where is a\n // complete path segment not equal to \"..\", are removed.\n // Removal of these path segments is performed iteratively,\n // removing the leftmost matching pattern on each iteration,\n // until no matching pattern remains.\n // 6d) If the path ends with \"/..\", where is a\n // complete path segment not equal to \"..\", that\n // \"/..\" is removed.\n\n while (path.length !== (path = path.replace(SLASH_DOT_DOT_REGEX, '')).length) {}\n\n return path.split('').reverse().join('');\n },\n buildURLFromParts: function (parts) {\n return parts.scheme + parts.netLoc + parts.path + parts.params + parts.query + parts.fragment;\n }\n };\n if (typeof exports === 'object' && typeof module === 'object') module.exports = URLToolkit;else if (typeof define === 'function' && define.amd) define([], function () {\n return URLToolkit;\n });else if (typeof exports === 'object') exports['URLToolkit'] = URLToolkit;else root['URLToolkit'] = URLToolkit;\n})(this);","var MPEGURL_REGEX = /^(audio|video|application)\\/(x-|vnd\\.apple\\.)?mpegurl/i;\nvar DASH_REGEX = /^application\\/dash\\+xml/i;\n/**\n * Returns a string that describes the type of source based on a video source object's\n * media type.\n *\n * @see {@link https://dev.w3.org/html5/pf-summary/video.html#dom-source-type|Source Type}\n *\n * @param {string} type\n * Video source object media type\n * @return {('hls'|'dash'|'vhs-json'|null)}\n * VHS source type string\n */\n\nexport var simpleTypeFromSourceType = function simpleTypeFromSourceType(type) {\n if (MPEGURL_REGEX.test(type)) {\n return 'hls';\n }\n\n if (DASH_REGEX.test(type)) {\n return 'dash';\n } // Denotes the special case of a manifest object passed to http-streaming instead of a\n // source URL.\n //\n // See https://en.wikipedia.org/wiki/Media_type for details on specifying media types.\n //\n // In this case, vnd stands for vendor, video.js for the organization, VHS for this\n // project, and the +json suffix identifies the structure of the media type.\n\n\n if (type === 'application/vnd.videojs.vhs+json') {\n return 'vhs-json';\n }\n\n return null;\n};","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n'use strict';\n/* eslint-disable no-unused-vars */\n\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n\n return Object(val);\n}\n\nfunction shouldUseNative() {\n try {\n if (!Object.assign) {\n return false;\n } // Detect buggy property enumeration order in older V8 versions.\n // https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\n\n var test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\n test1[5] = 'de';\n\n if (Object.getOwnPropertyNames(test1)[0] === '5') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test2 = {};\n\n for (var i = 0; i < 10; i++) {\n test2['_' + String.fromCharCode(i)] = i;\n }\n\n var order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n return test2[n];\n });\n\n if (order2.join('') !== '0123456789') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test3 = {};\n 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n test3[letter] = letter;\n });\n\n if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {\n return false;\n }\n\n return true;\n } catch (err) {\n // We don't expect any of the above to throw, but better to be safe.\n return false;\n }\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n\n return to;\n};","var conventions = require(\"./conventions\");\n\nvar NAMESPACE = conventions.NAMESPACE;\n/**\n * A prerequisite for `[].filter`, to drop elements that are empty\n * @param {string} input\n * @returns {boolean}\n */\n\nfunction notEmptyString(input) {\n return input !== '';\n}\n/**\n * @see https://infra.spec.whatwg.org/#split-on-ascii-whitespace\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * @param {string} input\n * @returns {string[]} (can be empty)\n */\n\n\nfunction splitOnASCIIWhitespace(input) {\n // U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, U+0020 SPACE\n return input ? input.split(/[\\t\\n\\f\\r ]+/).filter(notEmptyString) : [];\n}\n/**\n * Adds element as a key to current if it is not already present.\n *\n * @param {Record} current\n * @param {string} element\n * @returns {Record}\n */\n\n\nfunction orderedSetReducer(current, element) {\n if (!current.hasOwnProperty(element)) {\n current[element] = true;\n }\n\n return current;\n}\n/**\n * @see https://infra.spec.whatwg.org/#ordered-set\n * @param {string} input\n * @returns {string[]}\n */\n\n\nfunction toOrderedSet(input) {\n if (!input) return [];\n var list = splitOnASCIIWhitespace(input);\n return Object.keys(list.reduce(orderedSetReducer, {}));\n}\n/**\n * Uses `list.indexOf` to implement something like `Array.prototype.includes`,\n * which we can not rely on being available.\n *\n * @param {any[]} list\n * @returns {function(any): boolean}\n */\n\n\nfunction arrayIncludes(list) {\n return function (element) {\n return list && list.indexOf(element) !== -1;\n };\n}\n\nfunction copy(src, dest) {\n for (var p in src) {\n dest[p] = src[p];\n }\n}\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */\n\n\nfunction _extends(Class, Super) {\n var pt = Class.prototype;\n\n if (!(pt instanceof Super)) {\n function t() {}\n\n ;\n t.prototype = Super.prototype;\n t = new t();\n copy(pt, t);\n Class.prototype = pt = t;\n }\n\n if (pt.constructor != Class) {\n if (typeof Class != 'function') {\n console.error(\"unknown Class:\" + Class);\n }\n\n pt.constructor = Class;\n }\n} // Node Types\n\n\nvar NodeType = {};\nvar ELEMENT_NODE = NodeType.ELEMENT_NODE = 1;\nvar ATTRIBUTE_NODE = NodeType.ATTRIBUTE_NODE = 2;\nvar TEXT_NODE = NodeType.TEXT_NODE = 3;\nvar CDATA_SECTION_NODE = NodeType.CDATA_SECTION_NODE = 4;\nvar ENTITY_REFERENCE_NODE = NodeType.ENTITY_REFERENCE_NODE = 5;\nvar ENTITY_NODE = NodeType.ENTITY_NODE = 6;\nvar PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar COMMENT_NODE = NodeType.COMMENT_NODE = 8;\nvar DOCUMENT_NODE = NodeType.DOCUMENT_NODE = 9;\nvar DOCUMENT_TYPE_NODE = NodeType.DOCUMENT_TYPE_NODE = 10;\nvar DOCUMENT_FRAGMENT_NODE = NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar NOTATION_NODE = NodeType.NOTATION_NODE = 12; // ExceptionCode\n\nvar ExceptionCode = {};\nvar ExceptionMessage = {};\nvar INDEX_SIZE_ERR = ExceptionCode.INDEX_SIZE_ERR = (ExceptionMessage[1] = \"Index size error\", 1);\nvar DOMSTRING_SIZE_ERR = ExceptionCode.DOMSTRING_SIZE_ERR = (ExceptionMessage[2] = \"DOMString size error\", 2);\nvar HIERARCHY_REQUEST_ERR = ExceptionCode.HIERARCHY_REQUEST_ERR = (ExceptionMessage[3] = \"Hierarchy request error\", 3);\nvar WRONG_DOCUMENT_ERR = ExceptionCode.WRONG_DOCUMENT_ERR = (ExceptionMessage[4] = \"Wrong document\", 4);\nvar INVALID_CHARACTER_ERR = ExceptionCode.INVALID_CHARACTER_ERR = (ExceptionMessage[5] = \"Invalid character\", 5);\nvar NO_DATA_ALLOWED_ERR = ExceptionCode.NO_DATA_ALLOWED_ERR = (ExceptionMessage[6] = \"No data allowed\", 6);\nvar NO_MODIFICATION_ALLOWED_ERR = ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = (ExceptionMessage[7] = \"No modification allowed\", 7);\nvar NOT_FOUND_ERR = ExceptionCode.NOT_FOUND_ERR = (ExceptionMessage[8] = \"Not found\", 8);\nvar NOT_SUPPORTED_ERR = ExceptionCode.NOT_SUPPORTED_ERR = (ExceptionMessage[9] = \"Not supported\", 9);\nvar INUSE_ATTRIBUTE_ERR = ExceptionCode.INUSE_ATTRIBUTE_ERR = (ExceptionMessage[10] = \"Attribute in use\", 10); //level2\n\nvar INVALID_STATE_ERR = ExceptionCode.INVALID_STATE_ERR = (ExceptionMessage[11] = \"Invalid state\", 11);\nvar SYNTAX_ERR = ExceptionCode.SYNTAX_ERR = (ExceptionMessage[12] = \"Syntax error\", 12);\nvar INVALID_MODIFICATION_ERR = ExceptionCode.INVALID_MODIFICATION_ERR = (ExceptionMessage[13] = \"Invalid modification\", 13);\nvar NAMESPACE_ERR = ExceptionCode.NAMESPACE_ERR = (ExceptionMessage[14] = \"Invalid namespace\", 14);\nvar INVALID_ACCESS_ERR = ExceptionCode.INVALID_ACCESS_ERR = (ExceptionMessage[15] = \"Invalid access\", 15);\n/**\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n */\n\nfunction DOMException(code, message) {\n if (message instanceof Error) {\n var error = message;\n } else {\n error = this;\n Error.call(this, ExceptionMessage[code]);\n this.message = ExceptionMessage[code];\n if (Error.captureStackTrace) Error.captureStackTrace(this, DOMException);\n }\n\n error.code = code;\n if (message) this.message = this.message + \": \" + message;\n return error;\n}\n\n;\nDOMException.prototype = Error.prototype;\ncopy(ExceptionCode, DOMException);\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */\n\nfunction NodeList() {}\n\n;\nNodeList.prototype = {\n /**\n * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n * @standard level1\n */\n length: 0,\n\n /**\n * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n * @standard level1\n * @param index unsigned long \n * Index into the collection.\n * @return Node\n * \tThe node at the indexth position in the NodeList, or null if that is not a valid index. \n */\n item: function (index) {\n return this[index] || null;\n },\n toString: function (isHTML, nodeFilter) {\n for (var buf = [], i = 0; i < this.length; i++) {\n serializeToString(this[i], buf, isHTML, nodeFilter);\n }\n\n return buf.join('');\n }\n};\n\nfunction LiveNodeList(node, refresh) {\n this._node = node;\n this._refresh = refresh;\n\n _updateLiveList(this);\n}\n\nfunction _updateLiveList(list) {\n var inc = list._node._inc || list._node.ownerDocument._inc;\n\n if (list._inc != inc) {\n var ls = list._refresh(list._node); //console.log(ls.length)\n\n\n __set__(list, 'length', ls.length);\n\n copy(ls, list);\n list._inc = inc;\n }\n}\n\nLiveNodeList.prototype.item = function (i) {\n _updateLiveList(this);\n\n return this[i];\n};\n\n_extends(LiveNodeList, NodeList);\n/**\n * Objects implementing the NamedNodeMap interface are used\n * to represent collections of nodes that can be accessed by name.\n * Note that NamedNodeMap does not inherit from NodeList;\n * NamedNodeMaps are not maintained in any particular order.\n * Objects contained in an object implementing NamedNodeMap may also be accessed by an ordinal index,\n * but this is simply to allow convenient enumeration of the contents of a NamedNodeMap,\n * and does not imply that the DOM specifies an order to these Nodes.\n * NamedNodeMap objects in the DOM are live.\n * used for attributes or DocumentType entities \n */\n\n\nfunction NamedNodeMap() {}\n\n;\n\nfunction _findNodeIndex(list, node) {\n var i = list.length;\n\n while (i--) {\n if (list[i] === node) {\n return i;\n }\n }\n}\n\nfunction _addNamedNode(el, list, newAttr, oldAttr) {\n if (oldAttr) {\n list[_findNodeIndex(list, oldAttr)] = newAttr;\n } else {\n list[list.length++] = newAttr;\n }\n\n if (el) {\n newAttr.ownerElement = el;\n var doc = el.ownerDocument;\n\n if (doc) {\n oldAttr && _onRemoveAttribute(doc, el, oldAttr);\n\n _onAddAttribute(doc, el, newAttr);\n }\n }\n}\n\nfunction _removeNamedNode(el, list, attr) {\n //console.log('remove attr:'+attr)\n var i = _findNodeIndex(list, attr);\n\n if (i >= 0) {\n var lastIndex = list.length - 1;\n\n while (i < lastIndex) {\n list[i] = list[++i];\n }\n\n list.length = lastIndex;\n\n if (el) {\n var doc = el.ownerDocument;\n\n if (doc) {\n _onRemoveAttribute(doc, el, attr);\n\n attr.ownerElement = null;\n }\n }\n } else {\n throw DOMException(NOT_FOUND_ERR, new Error(el.tagName + '@' + attr));\n }\n}\n\nNamedNodeMap.prototype = {\n length: 0,\n item: NodeList.prototype.item,\n getNamedItem: function (key) {\n //\t\tif(key.indexOf(':')>0 || key == 'xmlns'){\n //\t\t\treturn null;\n //\t\t}\n //console.log()\n var i = this.length;\n\n while (i--) {\n var attr = this[i]; //console.log(attr.nodeName,key)\n\n if (attr.nodeName == key) {\n return attr;\n }\n }\n },\n setNamedItem: function (attr) {\n var el = attr.ownerElement;\n\n if (el && el != this._ownerElement) {\n throw new DOMException(INUSE_ATTRIBUTE_ERR);\n }\n\n var oldAttr = this.getNamedItem(attr.nodeName);\n\n _addNamedNode(this._ownerElement, this, attr, oldAttr);\n\n return oldAttr;\n },\n\n /* returns Node */\n setNamedItemNS: function (attr) {\n // raises: WRONG_DOCUMENT_ERR,NO_MODIFICATION_ALLOWED_ERR,INUSE_ATTRIBUTE_ERR\n var el = attr.ownerElement,\n oldAttr;\n\n if (el && el != this._ownerElement) {\n throw new DOMException(INUSE_ATTRIBUTE_ERR);\n }\n\n oldAttr = this.getNamedItemNS(attr.namespaceURI, attr.localName);\n\n _addNamedNode(this._ownerElement, this, attr, oldAttr);\n\n return oldAttr;\n },\n\n /* returns Node */\n removeNamedItem: function (key) {\n var attr = this.getNamedItem(key);\n\n _removeNamedNode(this._ownerElement, this, attr);\n\n return attr;\n },\n // raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR\n //for level2\n removeNamedItemNS: function (namespaceURI, localName) {\n var attr = this.getNamedItemNS(namespaceURI, localName);\n\n _removeNamedNode(this._ownerElement, this, attr);\n\n return attr;\n },\n getNamedItemNS: function (namespaceURI, localName) {\n var i = this.length;\n\n while (i--) {\n var node = this[i];\n\n if (node.localName == localName && node.namespaceURI == namespaceURI) {\n return node;\n }\n }\n\n return null;\n }\n};\n/**\n * The DOMImplementation interface represents an object providing methods\n * which are not dependent on any particular document.\n * Such an object is returned by the `Document.implementation` property.\n *\n * __The individual methods describe the differences compared to the specs.__\n *\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation MDN\n * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 DOM Level 1 Core (Initial)\n * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490 DOM Level 2 Core\n * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490 DOM Level 3 Core\n * @see https://dom.spec.whatwg.org/#domimplementation DOM Living Standard\n */\n\nfunction DOMImplementation() {}\n\nDOMImplementation.prototype = {\n /**\n * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given feature is supported.\n * The different implementations fairly diverged in what kind of features were reported.\n * The latest version of the spec settled to force this method to always return true, where the functionality was accurate and in use.\n *\n * @deprecated It is deprecated and modern browsers return true in all cases.\n *\n * @param {string} feature\n * @param {string} [version]\n * @returns {boolean} always true\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN\n * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core\n * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard\n */\n hasFeature: function (feature, version) {\n return true;\n },\n\n /**\n * Creates an XML Document object of the specified type with its document element.\n *\n * __It behaves slightly different from the description in the living standard__:\n * - There is no interface/class `XMLDocument`, it returns a `Document` instance.\n * - `contentType`, `encoding`, `mode`, `origin`, `url` fields are currently not declared.\n * - this implementation is not validating names or qualified names\n * (when parsing XML strings, the SAX parser takes care of that)\n *\n * @param {string|null} namespaceURI\n * @param {string} qualifiedName\n * @param {DocumentType=null} doctype\n * @returns {Document}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN\n * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM Level 2 Core (initial)\n * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument DOM Level 2 Core\n *\n * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n */\n createDocument: function (namespaceURI, qualifiedName, doctype) {\n var doc = new Document();\n doc.implementation = this;\n doc.childNodes = new NodeList();\n doc.doctype = doctype || null;\n\n if (doctype) {\n doc.appendChild(doctype);\n }\n\n if (qualifiedName) {\n var root = doc.createElementNS(namespaceURI, qualifiedName);\n doc.appendChild(root);\n }\n\n return doc;\n },\n\n /**\n * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`.\n *\n * __This behavior is slightly different from the in the specs__:\n * - this implementation is not validating names or qualified names\n * (when parsing XML strings, the SAX parser takes care of that)\n *\n * @param {string} qualifiedName\n * @param {string} [publicId]\n * @param {string} [systemId]\n * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation\n * \t\t\t\t or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType MDN\n * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM Level 2 Core\n * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living Standard\n *\n * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n */\n createDocumentType: function (qualifiedName, publicId, systemId) {\n var node = new DocumentType();\n node.name = qualifiedName;\n node.nodeName = qualifiedName;\n node.publicId = publicId || '';\n node.systemId = systemId || '';\n return node;\n }\n};\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */\n\nfunction Node() {}\n\n;\nNode.prototype = {\n firstChild: null,\n lastChild: null,\n previousSibling: null,\n nextSibling: null,\n attributes: null,\n parentNode: null,\n childNodes: null,\n ownerDocument: null,\n nodeValue: null,\n namespaceURI: null,\n prefix: null,\n localName: null,\n // Modified in DOM Level 2:\n insertBefore: function (newChild, refChild) {\n //raises \n return _insertBefore(this, newChild, refChild);\n },\n replaceChild: function (newChild, oldChild) {\n //raises \n this.insertBefore(newChild, oldChild);\n\n if (oldChild) {\n this.removeChild(oldChild);\n }\n },\n removeChild: function (oldChild) {\n return _removeChild(this, oldChild);\n },\n appendChild: function (newChild) {\n return this.insertBefore(newChild, null);\n },\n hasChildNodes: function () {\n return this.firstChild != null;\n },\n cloneNode: function (deep) {\n return cloneNode(this.ownerDocument || this, this, deep);\n },\n // Modified in DOM Level 2:\n normalize: function () {\n var child = this.firstChild;\n\n while (child) {\n var next = child.nextSibling;\n\n if (next && next.nodeType == TEXT_NODE && child.nodeType == TEXT_NODE) {\n this.removeChild(next);\n child.appendData(next.data);\n } else {\n child.normalize();\n child = next;\n }\n }\n },\n // Introduced in DOM Level 2:\n isSupported: function (feature, version) {\n return this.ownerDocument.implementation.hasFeature(feature, version);\n },\n // Introduced in DOM Level 2:\n hasAttributes: function () {\n return this.attributes.length > 0;\n },\n\n /**\n * Look up the prefix associated to the given namespace URI, starting from this node.\n * **The default namespace declarations are ignored by this method.**\n * See Namespace Prefix Lookup for details on the algorithm used by this method.\n *\n * _Note: The implementation seems to be incomplete when compared to the algorithm described in the specs._\n *\n * @param {string | null} namespaceURI\n * @returns {string | null}\n * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix\n * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo\n * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix\n * @see https://github.com/xmldom/xmldom/issues/322\n */\n lookupPrefix: function (namespaceURI) {\n var el = this;\n\n while (el) {\n var map = el._nsMap; //console.dir(map)\n\n if (map) {\n for (var n in map) {\n if (map[n] == namespaceURI) {\n return n;\n }\n }\n }\n\n el = el.nodeType == ATTRIBUTE_NODE ? el.ownerDocument : el.parentNode;\n }\n\n return null;\n },\n // Introduced in DOM Level 3:\n lookupNamespaceURI: function (prefix) {\n var el = this;\n\n while (el) {\n var map = el._nsMap; //console.dir(map)\n\n if (map) {\n if (prefix in map) {\n return map[prefix];\n }\n }\n\n el = el.nodeType == ATTRIBUTE_NODE ? el.ownerDocument : el.parentNode;\n }\n\n return null;\n },\n // Introduced in DOM Level 3:\n isDefaultNamespace: function (namespaceURI) {\n var prefix = this.lookupPrefix(namespaceURI);\n return prefix == null;\n }\n};\n\nfunction _xmlEncoder(c) {\n return c == '<' && '<' || c == '>' && '>' || c == '&' && '&' || c == '\"' && '"' || '&#' + c.charCodeAt() + ';';\n}\n\ncopy(NodeType, Node);\ncopy(NodeType, Node.prototype);\n/**\n * @param callback return true for continue,false for break\n * @return boolean true: break visit;\n */\n\nfunction _visitNode(node, callback) {\n if (callback(node)) {\n return true;\n }\n\n if (node = node.firstChild) {\n do {\n if (_visitNode(node, callback)) {\n return true;\n }\n } while (node = node.nextSibling);\n }\n}\n\nfunction Document() {}\n\nfunction _onAddAttribute(doc, el, newAttr) {\n doc && doc._inc++;\n var ns = newAttr.namespaceURI;\n\n if (ns === NAMESPACE.XMLNS) {\n //update namespace\n el._nsMap[newAttr.prefix ? newAttr.localName : ''] = newAttr.value;\n }\n}\n\nfunction _onRemoveAttribute(doc, el, newAttr, remove) {\n doc && doc._inc++;\n var ns = newAttr.namespaceURI;\n\n if (ns === NAMESPACE.XMLNS) {\n //update namespace\n delete el._nsMap[newAttr.prefix ? newAttr.localName : ''];\n }\n}\n\nfunction _onUpdateChild(doc, el, newChild) {\n if (doc && doc._inc) {\n doc._inc++; //update childNodes\n\n var cs = el.childNodes;\n\n if (newChild) {\n cs[cs.length++] = newChild;\n } else {\n //console.log(1)\n var child = el.firstChild;\n var i = 0;\n\n while (child) {\n cs[i++] = child;\n child = child.nextSibling;\n }\n\n cs.length = i;\n }\n }\n}\n/**\n * attributes;\n * children;\n * \n * writeable properties:\n * nodeValue,Attr:value,CharacterData:data\n * prefix\n */\n\n\nfunction _removeChild(parentNode, child) {\n var previous = child.previousSibling;\n var next = child.nextSibling;\n\n if (previous) {\n previous.nextSibling = next;\n } else {\n parentNode.firstChild = next;\n }\n\n if (next) {\n next.previousSibling = previous;\n } else {\n parentNode.lastChild = previous;\n }\n\n _onUpdateChild(parentNode.ownerDocument, parentNode);\n\n return child;\n}\n/**\n * preformance key(refChild == null)\n */\n\n\nfunction _insertBefore(parentNode, newChild, nextChild) {\n var cp = newChild.parentNode;\n\n if (cp) {\n cp.removeChild(newChild); //remove and update\n }\n\n if (newChild.nodeType === DOCUMENT_FRAGMENT_NODE) {\n var newFirst = newChild.firstChild;\n\n if (newFirst == null) {\n return newChild;\n }\n\n var newLast = newChild.lastChild;\n } else {\n newFirst = newLast = newChild;\n }\n\n var pre = nextChild ? nextChild.previousSibling : parentNode.lastChild;\n newFirst.previousSibling = pre;\n newLast.nextSibling = nextChild;\n\n if (pre) {\n pre.nextSibling = newFirst;\n } else {\n parentNode.firstChild = newFirst;\n }\n\n if (nextChild == null) {\n parentNode.lastChild = newLast;\n } else {\n nextChild.previousSibling = newLast;\n }\n\n do {\n newFirst.parentNode = parentNode;\n } while (newFirst !== newLast && (newFirst = newFirst.nextSibling));\n\n _onUpdateChild(parentNode.ownerDocument || parentNode, parentNode); //console.log(parentNode.lastChild.nextSibling == null)\n\n\n if (newChild.nodeType == DOCUMENT_FRAGMENT_NODE) {\n newChild.firstChild = newChild.lastChild = null;\n }\n\n return newChild;\n}\n\nfunction _appendSingleChild(parentNode, newChild) {\n var cp = newChild.parentNode;\n\n if (cp) {\n var pre = parentNode.lastChild;\n cp.removeChild(newChild); //remove and update\n\n var pre = parentNode.lastChild;\n }\n\n var pre = parentNode.lastChild;\n newChild.parentNode = parentNode;\n newChild.previousSibling = pre;\n newChild.nextSibling = null;\n\n if (pre) {\n pre.nextSibling = newChild;\n } else {\n parentNode.firstChild = newChild;\n }\n\n parentNode.lastChild = newChild;\n\n _onUpdateChild(parentNode.ownerDocument, parentNode, newChild);\n\n return newChild; //console.log(\"__aa\",parentNode.lastChild.nextSibling == null)\n}\n\nDocument.prototype = {\n //implementation : null,\n nodeName: '#document',\n nodeType: DOCUMENT_NODE,\n\n /**\n * The DocumentType node of the document.\n *\n * @readonly\n * @type DocumentType\n */\n doctype: null,\n documentElement: null,\n _inc: 1,\n insertBefore: function (newChild, refChild) {\n //raises\n if (newChild.nodeType == DOCUMENT_FRAGMENT_NODE) {\n var child = newChild.firstChild;\n\n while (child) {\n var next = child.nextSibling;\n this.insertBefore(child, refChild);\n child = next;\n }\n\n return newChild;\n }\n\n if (this.documentElement == null && newChild.nodeType == ELEMENT_NODE) {\n this.documentElement = newChild;\n }\n\n return _insertBefore(this, newChild, refChild), newChild.ownerDocument = this, newChild;\n },\n removeChild: function (oldChild) {\n if (this.documentElement == oldChild) {\n this.documentElement = null;\n }\n\n return _removeChild(this, oldChild);\n },\n // Introduced in DOM Level 2:\n importNode: function (importedNode, deep) {\n return importNode(this, importedNode, deep);\n },\n // Introduced in DOM Level 2:\n getElementById: function (id) {\n var rtv = null;\n\n _visitNode(this.documentElement, function (node) {\n if (node.nodeType == ELEMENT_NODE) {\n if (node.getAttribute('id') == id) {\n rtv = node;\n return true;\n }\n }\n });\n\n return rtv;\n },\n\n /**\n * The `getElementsByClassName` method of `Document` interface returns an array-like object\n * of all child elements which have **all** of the given class name(s).\n *\n * Returns an empty list if `classeNames` is an empty string or only contains HTML white space characters.\n *\n *\n * Warning: This is a live LiveNodeList.\n * Changes in the DOM will reflect in the array as the changes occur.\n * If an element selected by this array no longer qualifies for the selector,\n * it will automatically be removed. Be aware of this for iteration purposes.\n *\n * @param {string} classNames is a string representing the class name(s) to match; multiple class names are separated by (ASCII-)whitespace\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName\n * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname\n */\n getElementsByClassName: function (classNames) {\n var classNamesSet = toOrderedSet(classNames);\n return new LiveNodeList(this, function (base) {\n var ls = [];\n\n if (classNamesSet.length > 0) {\n _visitNode(base.documentElement, function (node) {\n if (node !== base && node.nodeType === ELEMENT_NODE) {\n var nodeClassNames = node.getAttribute('class'); // can be null if the attribute does not exist\n\n if (nodeClassNames) {\n // before splitting and iterating just compare them for the most common case\n var matches = classNames === nodeClassNames;\n\n if (!matches) {\n var nodeClassNamesSet = toOrderedSet(nodeClassNames);\n matches = classNamesSet.every(arrayIncludes(nodeClassNamesSet));\n }\n\n if (matches) {\n ls.push(node);\n }\n }\n }\n });\n }\n\n return ls;\n });\n },\n //document factory method:\n createElement: function (tagName) {\n var node = new Element();\n node.ownerDocument = this;\n node.nodeName = tagName;\n node.tagName = tagName;\n node.localName = tagName;\n node.childNodes = new NodeList();\n var attrs = node.attributes = new NamedNodeMap();\n attrs._ownerElement = node;\n return node;\n },\n createDocumentFragment: function () {\n var node = new DocumentFragment();\n node.ownerDocument = this;\n node.childNodes = new NodeList();\n return node;\n },\n createTextNode: function (data) {\n var node = new Text();\n node.ownerDocument = this;\n node.appendData(data);\n return node;\n },\n createComment: function (data) {\n var node = new Comment();\n node.ownerDocument = this;\n node.appendData(data);\n return node;\n },\n createCDATASection: function (data) {\n var node = new CDATASection();\n node.ownerDocument = this;\n node.appendData(data);\n return node;\n },\n createProcessingInstruction: function (target, data) {\n var node = new ProcessingInstruction();\n node.ownerDocument = this;\n node.tagName = node.target = target;\n node.nodeValue = node.data = data;\n return node;\n },\n createAttribute: function (name) {\n var node = new Attr();\n node.ownerDocument = this;\n node.name = name;\n node.nodeName = name;\n node.localName = name;\n node.specified = true;\n return node;\n },\n createEntityReference: function (name) {\n var node = new EntityReference();\n node.ownerDocument = this;\n node.nodeName = name;\n return node;\n },\n // Introduced in DOM Level 2:\n createElementNS: function (namespaceURI, qualifiedName) {\n var node = new Element();\n var pl = qualifiedName.split(':');\n var attrs = node.attributes = new NamedNodeMap();\n node.childNodes = new NodeList();\n node.ownerDocument = this;\n node.nodeName = qualifiedName;\n node.tagName = qualifiedName;\n node.namespaceURI = namespaceURI;\n\n if (pl.length == 2) {\n node.prefix = pl[0];\n node.localName = pl[1];\n } else {\n //el.prefix = null;\n node.localName = qualifiedName;\n }\n\n attrs._ownerElement = node;\n return node;\n },\n // Introduced in DOM Level 2:\n createAttributeNS: function (namespaceURI, qualifiedName) {\n var node = new Attr();\n var pl = qualifiedName.split(':');\n node.ownerDocument = this;\n node.nodeName = qualifiedName;\n node.name = qualifiedName;\n node.namespaceURI = namespaceURI;\n node.specified = true;\n\n if (pl.length == 2) {\n node.prefix = pl[0];\n node.localName = pl[1];\n } else {\n //el.prefix = null;\n node.localName = qualifiedName;\n }\n\n return node;\n }\n};\n\n_extends(Document, Node);\n\nfunction Element() {\n this._nsMap = {};\n}\n\n;\nElement.prototype = {\n nodeType: ELEMENT_NODE,\n hasAttribute: function (name) {\n return this.getAttributeNode(name) != null;\n },\n getAttribute: function (name) {\n var attr = this.getAttributeNode(name);\n return attr && attr.value || '';\n },\n getAttributeNode: function (name) {\n return this.attributes.getNamedItem(name);\n },\n setAttribute: function (name, value) {\n var attr = this.ownerDocument.createAttribute(name);\n attr.value = attr.nodeValue = \"\" + value;\n this.setAttributeNode(attr);\n },\n removeAttribute: function (name) {\n var attr = this.getAttributeNode(name);\n attr && this.removeAttributeNode(attr);\n },\n //four real opeartion method\n appendChild: function (newChild) {\n if (newChild.nodeType === DOCUMENT_FRAGMENT_NODE) {\n return this.insertBefore(newChild, null);\n } else {\n return _appendSingleChild(this, newChild);\n }\n },\n setAttributeNode: function (newAttr) {\n return this.attributes.setNamedItem(newAttr);\n },\n setAttributeNodeNS: function (newAttr) {\n return this.attributes.setNamedItemNS(newAttr);\n },\n removeAttributeNode: function (oldAttr) {\n //console.log(this == oldAttr.ownerElement)\n return this.attributes.removeNamedItem(oldAttr.nodeName);\n },\n //get real attribute name,and remove it by removeAttributeNode\n removeAttributeNS: function (namespaceURI, localName) {\n var old = this.getAttributeNodeNS(namespaceURI, localName);\n old && this.removeAttributeNode(old);\n },\n hasAttributeNS: function (namespaceURI, localName) {\n return this.getAttributeNodeNS(namespaceURI, localName) != null;\n },\n getAttributeNS: function (namespaceURI, localName) {\n var attr = this.getAttributeNodeNS(namespaceURI, localName);\n return attr && attr.value || '';\n },\n setAttributeNS: function (namespaceURI, qualifiedName, value) {\n var attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n attr.value = attr.nodeValue = \"\" + value;\n this.setAttributeNode(attr);\n },\n getAttributeNodeNS: function (namespaceURI, localName) {\n return this.attributes.getNamedItemNS(namespaceURI, localName);\n },\n getElementsByTagName: function (tagName) {\n return new LiveNodeList(this, function (base) {\n var ls = [];\n\n _visitNode(base, function (node) {\n if (node !== base && node.nodeType == ELEMENT_NODE && (tagName === '*' || node.tagName == tagName)) {\n ls.push(node);\n }\n });\n\n return ls;\n });\n },\n getElementsByTagNameNS: function (namespaceURI, localName) {\n return new LiveNodeList(this, function (base) {\n var ls = [];\n\n _visitNode(base, function (node) {\n if (node !== base && node.nodeType === ELEMENT_NODE && (namespaceURI === '*' || node.namespaceURI === namespaceURI) && (localName === '*' || node.localName == localName)) {\n ls.push(node);\n }\n });\n\n return ls;\n });\n }\n};\nDocument.prototype.getElementsByTagName = Element.prototype.getElementsByTagName;\nDocument.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS;\n\n_extends(Element, Node);\n\nfunction Attr() {}\n\n;\nAttr.prototype.nodeType = ATTRIBUTE_NODE;\n\n_extends(Attr, Node);\n\nfunction CharacterData() {}\n\n;\nCharacterData.prototype = {\n data: '',\n substringData: function (offset, count) {\n return this.data.substring(offset, offset + count);\n },\n appendData: function (text) {\n text = this.data + text;\n this.nodeValue = this.data = text;\n this.length = text.length;\n },\n insertData: function (offset, text) {\n this.replaceData(offset, 0, text);\n },\n appendChild: function (newChild) {\n throw new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR]);\n },\n deleteData: function (offset, count) {\n this.replaceData(offset, count, \"\");\n },\n replaceData: function (offset, count, text) {\n var start = this.data.substring(0, offset);\n var end = this.data.substring(offset + count);\n text = start + text + end;\n this.nodeValue = this.data = text;\n this.length = text.length;\n }\n};\n\n_extends(CharacterData, Node);\n\nfunction Text() {}\n\n;\nText.prototype = {\n nodeName: \"#text\",\n nodeType: TEXT_NODE,\n splitText: function (offset) {\n var text = this.data;\n var newText = text.substring(offset);\n text = text.substring(0, offset);\n this.data = this.nodeValue = text;\n this.length = text.length;\n var newNode = this.ownerDocument.createTextNode(newText);\n\n if (this.parentNode) {\n this.parentNode.insertBefore(newNode, this.nextSibling);\n }\n\n return newNode;\n }\n};\n\n_extends(Text, CharacterData);\n\nfunction Comment() {}\n\n;\nComment.prototype = {\n nodeName: \"#comment\",\n nodeType: COMMENT_NODE\n};\n\n_extends(Comment, CharacterData);\n\nfunction CDATASection() {}\n\n;\nCDATASection.prototype = {\n nodeName: \"#cdata-section\",\n nodeType: CDATA_SECTION_NODE\n};\n\n_extends(CDATASection, CharacterData);\n\nfunction DocumentType() {}\n\n;\nDocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;\n\n_extends(DocumentType, Node);\n\nfunction Notation() {}\n\n;\nNotation.prototype.nodeType = NOTATION_NODE;\n\n_extends(Notation, Node);\n\nfunction Entity() {}\n\n;\nEntity.prototype.nodeType = ENTITY_NODE;\n\n_extends(Entity, Node);\n\nfunction EntityReference() {}\n\n;\nEntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE;\n\n_extends(EntityReference, Node);\n\nfunction DocumentFragment() {}\n\n;\nDocumentFragment.prototype.nodeName = \"#document-fragment\";\nDocumentFragment.prototype.nodeType = DOCUMENT_FRAGMENT_NODE;\n\n_extends(DocumentFragment, Node);\n\nfunction ProcessingInstruction() {}\n\nProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE;\n\n_extends(ProcessingInstruction, Node);\n\nfunction XMLSerializer() {}\n\nXMLSerializer.prototype.serializeToString = function (node, isHtml, nodeFilter) {\n return nodeSerializeToString.call(node, isHtml, nodeFilter);\n};\n\nNode.prototype.toString = nodeSerializeToString;\n\nfunction nodeSerializeToString(isHtml, nodeFilter) {\n var buf = [];\n var refNode = this.nodeType == 9 && this.documentElement || this;\n var prefix = refNode.prefix;\n var uri = refNode.namespaceURI;\n\n if (uri && prefix == null) {\n //console.log(prefix)\n var prefix = refNode.lookupPrefix(uri);\n\n if (prefix == null) {\n //isHTML = true;\n var visibleNamespaces = [{\n namespace: uri,\n prefix: null\n } //{namespace:uri,prefix:''}\n ];\n }\n }\n\n serializeToString(this, buf, isHtml, nodeFilter, visibleNamespaces); //console.log('###',this.nodeType,uri,prefix,buf.join(''))\n\n return buf.join('');\n}\n\nfunction needNamespaceDefine(node, isHTML, visibleNamespaces) {\n var prefix = node.prefix || '';\n var uri = node.namespaceURI; // According to [Namespaces in XML 1.0](https://www.w3.org/TR/REC-xml-names/#ns-using) ,\n // and more specifically https://www.w3.org/TR/REC-xml-names/#nsc-NoPrefixUndecl :\n // > In a namespace declaration for a prefix [...], the attribute value MUST NOT be empty.\n // in a similar manner [Namespaces in XML 1.1](https://www.w3.org/TR/xml-names11/#ns-using)\n // and more specifically https://www.w3.org/TR/xml-names11/#nsc-NSDeclared :\n // > [...] Furthermore, the attribute value [...] must not be an empty string.\n // so serializing empty namespace value like xmlns:ds=\"\" would produce an invalid XML document.\n\n if (!uri) {\n return false;\n }\n\n if (prefix === \"xml\" && uri === NAMESPACE.XML || uri === NAMESPACE.XMLNS) {\n return false;\n }\n\n var i = visibleNamespaces.length;\n\n while (i--) {\n var ns = visibleNamespaces[i]; // get namespace prefix\n\n if (ns.prefix === prefix) {\n return ns.namespace !== uri;\n }\n }\n\n return true;\n}\n/**\n * Well-formed constraint: No < in Attribute Values\n * The replacement text of any entity referred to directly or indirectly in an attribute value must not contain a <.\n * @see https://www.w3.org/TR/xml/#CleanAttrVals\n * @see https://www.w3.org/TR/xml/#NT-AttValue\n */\n\n\nfunction addSerializedAttribute(buf, qualifiedName, value) {\n buf.push(' ', qualifiedName, '=\"', value.replace(/[<&\"]/g, _xmlEncoder), '\"');\n}\n\nfunction serializeToString(node, buf, isHTML, nodeFilter, visibleNamespaces) {\n if (!visibleNamespaces) {\n visibleNamespaces = [];\n }\n\n if (nodeFilter) {\n node = nodeFilter(node);\n\n if (node) {\n if (typeof node == 'string') {\n buf.push(node);\n return;\n }\n } else {\n return;\n } //buf.sort.apply(attrs, attributeSorter);\n\n }\n\n switch (node.nodeType) {\n case ELEMENT_NODE:\n var attrs = node.attributes;\n var len = attrs.length;\n var child = node.firstChild;\n var nodeName = node.tagName;\n isHTML = NAMESPACE.isHTML(node.namespaceURI) || isHTML;\n var prefixedNodeName = nodeName;\n\n if (!isHTML && !node.prefix && node.namespaceURI) {\n var defaultNS; // lookup current default ns from `xmlns` attribute\n\n for (var ai = 0; ai < attrs.length; ai++) {\n if (attrs.item(ai).name === 'xmlns') {\n defaultNS = attrs.item(ai).value;\n break;\n }\n }\n\n if (!defaultNS) {\n // lookup current default ns in visibleNamespaces\n for (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n var namespace = visibleNamespaces[nsi];\n\n if (namespace.prefix === '' && namespace.namespace === node.namespaceURI) {\n defaultNS = namespace.namespace;\n break;\n }\n }\n }\n\n if (defaultNS !== node.namespaceURI) {\n for (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n var namespace = visibleNamespaces[nsi];\n\n if (namespace.namespace === node.namespaceURI) {\n if (namespace.prefix) {\n prefixedNodeName = namespace.prefix + ':' + nodeName;\n }\n\n break;\n }\n }\n }\n }\n\n buf.push('<', prefixedNodeName);\n\n for (var i = 0; i < len; i++) {\n // add namespaces for attributes\n var attr = attrs.item(i);\n\n if (attr.prefix == 'xmlns') {\n visibleNamespaces.push({\n prefix: attr.localName,\n namespace: attr.value\n });\n } else if (attr.nodeName == 'xmlns') {\n visibleNamespaces.push({\n prefix: '',\n namespace: attr.value\n });\n }\n }\n\n for (var i = 0; i < len; i++) {\n var attr = attrs.item(i);\n\n if (needNamespaceDefine(attr, isHTML, visibleNamespaces)) {\n var prefix = attr.prefix || '';\n var uri = attr.namespaceURI;\n addSerializedAttribute(buf, prefix ? 'xmlns:' + prefix : \"xmlns\", uri);\n visibleNamespaces.push({\n prefix: prefix,\n namespace: uri\n });\n }\n\n serializeToString(attr, buf, isHTML, nodeFilter, visibleNamespaces);\n } // add namespace for current node\t\t\n\n\n if (nodeName === prefixedNodeName && needNamespaceDefine(node, isHTML, visibleNamespaces)) {\n var prefix = node.prefix || '';\n var uri = node.namespaceURI;\n addSerializedAttribute(buf, prefix ? 'xmlns:' + prefix : \"xmlns\", uri);\n visibleNamespaces.push({\n prefix: prefix,\n namespace: uri\n });\n }\n\n if (child || isHTML && !/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)) {\n buf.push('>'); //if is cdata child node\n\n if (isHTML && /^script$/i.test(nodeName)) {\n while (child) {\n if (child.data) {\n buf.push(child.data);\n } else {\n serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n }\n\n child = child.nextSibling;\n }\n } else {\n while (child) {\n serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n child = child.nextSibling;\n }\n }\n\n buf.push('');\n } else {\n buf.push('/>');\n } // remove added visible namespaces\n //visibleNamespaces.length = startVisibleNamespaces;\n\n\n return;\n\n case DOCUMENT_NODE:\n case DOCUMENT_FRAGMENT_NODE:\n var child = node.firstChild;\n\n while (child) {\n serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n child = child.nextSibling;\n }\n\n return;\n\n case ATTRIBUTE_NODE:\n return addSerializedAttribute(buf, node.name, node.value);\n\n case TEXT_NODE:\n /**\n * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,\n * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section.\n * If they are needed elsewhere, they must be escaped using either numeric character references or the strings\n * `&` and `<` respectively.\n * The right angle bracket (>) may be represented using the string \" > \", and must, for compatibility,\n * be escaped using either `>` or a character reference when it appears in the string `]]>` in content,\n * when that string is not marking the end of a CDATA section.\n *\n * In the content of elements, character data is any string of characters\n * which does not contain the start-delimiter of any markup\n * and does not include the CDATA-section-close delimiter, `]]>`.\n *\n * @see https://www.w3.org/TR/xml/#NT-CharData\n */\n return buf.push(node.data.replace(/[<&]/g, _xmlEncoder).replace(/]]>/g, ']]>'));\n\n case CDATA_SECTION_NODE:\n return buf.push('');\n\n case COMMENT_NODE:\n return buf.push(\"\");\n\n case DOCUMENT_TYPE_NODE:\n var pubid = node.publicId;\n var sysid = node.systemId;\n buf.push('');\n } else if (sysid && sysid != '.') {\n buf.push(' SYSTEM ', sysid, '>');\n } else {\n var sub = node.internalSubset;\n\n if (sub) {\n buf.push(\" [\", sub, \"]\");\n }\n\n buf.push(\">\");\n }\n\n return;\n\n case PROCESSING_INSTRUCTION_NODE:\n return buf.push(\"\");\n\n case ENTITY_REFERENCE_NODE:\n return buf.push('&', node.nodeName, ';');\n //case ENTITY_NODE:\n //case NOTATION_NODE:\n\n default:\n buf.push('??', node.nodeName);\n }\n}\n\nfunction importNode(doc, node, deep) {\n var node2;\n\n switch (node.nodeType) {\n case ELEMENT_NODE:\n node2 = node.cloneNode(false);\n node2.ownerDocument = doc;\n //var attrs = node2.attributes;\n //var len = attrs.length;\n //for(var i=0;i= 200 && status < 300;\n }\n};\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;","'use strict';\n\nvar utils = require('./../utils');\n\nvar settle = require('./../core/settle');\n\nvar buildURL = require('./../helpers/buildURL');\n\nvar buildFullPath = require('../core/buildFullPath');\n\nvar parseHeaders = require('./../helpers/parseHeaders');\n\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\n\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest(); // HTTP basic authentication\n\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); // Set the request timeout in MS\n\n request.timeout = config.timeout; // Listen for ready state\n\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n } // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n\n\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n } // Prepare the response\n\n\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n settle(resolve, reject, response); // Clean up request\n\n request = null;\n }; // Handle browser request cancellation (as opposed to a manual cancellation)\n\n\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Handle low level network errors\n\n\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request)); // Clean up request\n\n request = null;\n }; // Handle timeout\n\n\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies'); // Add xsrf header\n\n\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n } // Add headers to the request\n\n\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n } // Add withCredentials to request if needed\n\n\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n } // Add responseType to request if needed\n\n\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n } // Handle progress if needed\n\n\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n } // Not all browsers support upload events\n\n\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel); // Clean up request\n\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n } // Send the request\n\n\n request.send(requestData);\n });\n};","'use strict';\n\nvar enhanceError = require('./enhanceError');\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\n\n\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};","'use strict';\n\nvar utils = require('../utils');\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\n\n\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n var valueFromConfig2Keys = ['url', 'method', 'params', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy'];\n var defaultToConfig2Keys = ['baseURL', 'url', 'transformRequest', 'transformResponse', 'paramsSerializer', 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent', 'httpsAgent', 'cancelToken', 'socketPath'];\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n utils.forEach(mergeDeepPropertiesKeys, function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n var axiosKeys = valueFromConfig2Keys.concat(mergeDeepPropertiesKeys).concat(defaultToConfig2Keys);\n var otherKeys = Object.keys(config2).filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n utils.forEach(otherKeys, function otherKeysDefaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n return config;\n};","'use strict';\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\n\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\nmodule.exports = Cancel;","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function') {\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}","/**\n * @license\n * Video.js 7.18.1 \n * Copyright Brightcove, Inc. \n * Available under Apache License Version 2.0\n * \n *\n * Includes vtt.js \n * Available under Apache License Version 2.0\n * \n */\nimport window$1 from 'global/window';\nimport document from 'global/document';\nimport _extends from '@babel/runtime/helpers/extends';\nimport keycode from 'keycode';\nimport _assertThisInitialized from '@babel/runtime/helpers/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/inheritsLoose';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport XHR from '@videojs/xhr';\nimport vtt from 'videojs-vtt.js';\nimport _construct from '@babel/runtime/helpers/construct';\nimport _inherits from '@babel/runtime/helpers/inherits';\nimport _resolveUrl from '@videojs/vhs-utils/es/resolve-url.js';\nimport { Parser } from 'm3u8-parser';\nimport { browserSupportsCodec, DEFAULT_VIDEO_CODEC, DEFAULT_AUDIO_CODEC, muxerSupportsCodec, parseCodecs, translateLegacyCodec, codecsFromDefault, getMimeForCodec, isAudioCodec } from '@videojs/vhs-utils/es/codecs.js';\nimport { simpleTypeFromSourceType } from '@videojs/vhs-utils/es/media-types.js';\nimport { generateSidxKey, parseUTCTiming, parse, addSidxSegmentsToPlaylist } from 'mpd-parser';\nimport parseSidx from 'mux.js/lib/tools/parse-sidx';\nimport { getId3Offset } from '@videojs/vhs-utils/es/id3-helpers';\nimport { detectContainerForBytes, isLikelyFmp4MediaSegment } from '@videojs/vhs-utils/es/containers';\nimport { concatTypedArrays, stringToBytes, toUint8 } from '@videojs/vhs-utils/es/byte-helpers';\nimport { ONE_SECOND_IN_TS } from 'mux.js/lib/utils/clock';\nvar version$5 = \"7.18.1\";\n/**\n * An Object that contains lifecycle hooks as keys which point to an array\n * of functions that are run when a lifecycle is triggered\n *\n * @private\n */\n\nvar hooks_ = {};\n/**\n * Get a list of hooks for a specific lifecycle\n *\n * @param {string} type\n * the lifecyle to get hooks from\n *\n * @param {Function|Function[]} [fn]\n * Optionally add a hook (or hooks) to the lifecycle that your are getting.\n *\n * @return {Array}\n * an array of hooks, or an empty array if there are none.\n */\n\nvar hooks = function hooks(type, fn) {\n hooks_[type] = hooks_[type] || [];\n\n if (fn) {\n hooks_[type] = hooks_[type].concat(fn);\n }\n\n return hooks_[type];\n};\n/**\n * Add a function hook to a specific videojs lifecycle.\n *\n * @param {string} type\n * the lifecycle to hook the function to.\n *\n * @param {Function|Function[]}\n * The function or array of functions to attach.\n */\n\n\nvar hook = function hook(type, fn) {\n hooks(type, fn);\n};\n/**\n * Remove a hook from a specific videojs lifecycle.\n *\n * @param {string} type\n * the lifecycle that the function hooked to\n *\n * @param {Function} fn\n * The hooked function to remove\n *\n * @return {boolean}\n * The function that was removed or undef\n */\n\n\nvar removeHook = function removeHook(type, fn) {\n var index = hooks(type).indexOf(fn);\n\n if (index <= -1) {\n return false;\n }\n\n hooks_[type] = hooks_[type].slice();\n hooks_[type].splice(index, 1);\n return true;\n};\n/**\n * Add a function hook that will only run once to a specific videojs lifecycle.\n *\n * @param {string} type\n * the lifecycle to hook the function to.\n *\n * @param {Function|Function[]}\n * The function or array of functions to attach.\n */\n\n\nvar hookOnce = function hookOnce(type, fn) {\n hooks(type, [].concat(fn).map(function (original) {\n var wrapper = function wrapper() {\n removeHook(type, wrapper);\n return original.apply(void 0, arguments);\n };\n\n return wrapper;\n }));\n};\n/**\n * @file fullscreen-api.js\n * @module fullscreen-api\n * @private\n */\n\n/**\n * Store the browser-specific methods for the fullscreen API.\n *\n * @type {Object}\n * @see [Specification]{@link https://fullscreen.spec.whatwg.org}\n * @see [Map Approach From Screenfull.js]{@link https://github.com/sindresorhus/screenfull.js}\n */\n\n\nvar FullscreenApi = {\n prefixed: true\n}; // browser API methods\n\nvar apiMap = [['requestFullscreen', 'exitFullscreen', 'fullscreenElement', 'fullscreenEnabled', 'fullscreenchange', 'fullscreenerror', 'fullscreen'], // WebKit\n['webkitRequestFullscreen', 'webkitExitFullscreen', 'webkitFullscreenElement', 'webkitFullscreenEnabled', 'webkitfullscreenchange', 'webkitfullscreenerror', '-webkit-full-screen'], // Mozilla\n['mozRequestFullScreen', 'mozCancelFullScreen', 'mozFullScreenElement', 'mozFullScreenEnabled', 'mozfullscreenchange', 'mozfullscreenerror', '-moz-full-screen'], // Microsoft\n['msRequestFullscreen', 'msExitFullscreen', 'msFullscreenElement', 'msFullscreenEnabled', 'MSFullscreenChange', 'MSFullscreenError', '-ms-fullscreen']];\nvar specApi = apiMap[0];\nvar browserApi; // determine the supported set of functions\n\nfor (var i = 0; i < apiMap.length; i++) {\n // check for exitFullscreen function\n if (apiMap[i][1] in document) {\n browserApi = apiMap[i];\n break;\n }\n} // map the browser API names to the spec API names\n\n\nif (browserApi) {\n for (var _i = 0; _i < browserApi.length; _i++) {\n FullscreenApi[specApi[_i]] = browserApi[_i];\n }\n\n FullscreenApi.prefixed = browserApi[0] !== specApi[0];\n}\n/**\n * @file create-logger.js\n * @module create-logger\n */\n\n\nvar history = [];\n/**\n * Log messages to the console and history based on the type of message\n *\n * @private\n * @param {string} type\n * The name of the console method to use.\n *\n * @param {Array} args\n * The arguments to be passed to the matching console method.\n */\n\nvar LogByTypeFactory = function LogByTypeFactory(name, log) {\n return function (type, level, args) {\n var lvl = log.levels[level];\n var lvlRegExp = new RegExp(\"^(\" + lvl + \")$\");\n\n if (type !== 'log') {\n // Add the type to the front of the message when it's not \"log\".\n args.unshift(type.toUpperCase() + ':');\n } // Add console prefix after adding to history.\n\n\n args.unshift(name + ':'); // Add a clone of the args at this point to history.\n\n if (history) {\n history.push([].concat(args)); // only store 1000 history entries\n\n var splice = history.length - 1000;\n history.splice(0, splice > 0 ? splice : 0);\n } // If there's no console then don't try to output messages, but they will\n // still be stored in history.\n\n\n if (!window$1.console) {\n return;\n } // Was setting these once outside of this function, but containing them\n // in the function makes it easier to test cases where console doesn't exist\n // when the module is executed.\n\n\n var fn = window$1.console[type];\n\n if (!fn && type === 'debug') {\n // Certain browsers don't have support for console.debug. For those, we\n // should default to the closest comparable log.\n fn = window$1.console.info || window$1.console.log;\n } // Bail out if there's no console or if this type is not allowed by the\n // current logging level.\n\n\n if (!fn || !lvl || !lvlRegExp.test(type)) {\n return;\n }\n\n fn[Array.isArray(args) ? 'apply' : 'call'](window$1.console, args);\n };\n};\n\nfunction createLogger$1(name) {\n // This is the private tracking variable for logging level.\n var level = 'info'; // the curried logByType bound to the specific log and history\n\n var logByType;\n /**\n * Logs plain debug messages. Similar to `console.log`.\n *\n * Due to [limitations](https://github.com/jsdoc3/jsdoc/issues/955#issuecomment-313829149)\n * of our JSDoc template, we cannot properly document this as both a function\n * and a namespace, so its function signature is documented here.\n *\n * #### Arguments\n * ##### *args\n * Mixed[]\n *\n * Any combination of values that could be passed to `console.log()`.\n *\n * #### Return Value\n *\n * `undefined`\n *\n * @namespace\n * @param {Mixed[]} args\n * One or more messages or objects that should be logged.\n */\n\n var log = function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n logByType('log', level, args);\n }; // This is the logByType helper that the logging methods below use\n\n\n logByType = LogByTypeFactory(name, log);\n /**\n * Create a new sublogger which chains the old name to the new name.\n *\n * For example, doing `videojs.log.createLogger('player')` and then using that logger will log the following:\n * ```js\n * mylogger('foo');\n * // > VIDEOJS: player: foo\n * ```\n *\n * @param {string} name\n * The name to add call the new logger\n * @return {Object}\n */\n\n log.createLogger = function (subname) {\n return createLogger$1(name + ': ' + subname);\n };\n /**\n * Enumeration of available logging levels, where the keys are the level names\n * and the values are `|`-separated strings containing logging methods allowed\n * in that logging level. These strings are used to create a regular expression\n * matching the function name being called.\n *\n * Levels provided by Video.js are:\n *\n * - `off`: Matches no calls. Any value that can be cast to `false` will have\n * this effect. The most restrictive.\n * - `all`: Matches only Video.js-provided functions (`debug`, `log`,\n * `log.warn`, and `log.error`).\n * - `debug`: Matches `log.debug`, `log`, `log.warn`, and `log.error` calls.\n * - `info` (default): Matches `log`, `log.warn`, and `log.error` calls.\n * - `warn`: Matches `log.warn` and `log.error` calls.\n * - `error`: Matches only `log.error` calls.\n *\n * @type {Object}\n */\n\n\n log.levels = {\n all: 'debug|log|warn|error',\n off: '',\n debug: 'debug|log|warn|error',\n info: 'log|warn|error',\n warn: 'warn|error',\n error: 'error',\n DEFAULT: level\n };\n /**\n * Get or set the current logging level.\n *\n * If a string matching a key from {@link module:log.levels} is provided, acts\n * as a setter.\n *\n * @param {string} [lvl]\n * Pass a valid level to set a new logging level.\n *\n * @return {string}\n * The current logging level.\n */\n\n log.level = function (lvl) {\n if (typeof lvl === 'string') {\n if (!log.levels.hasOwnProperty(lvl)) {\n throw new Error(\"\\\"\" + lvl + \"\\\" in not a valid log level\");\n }\n\n level = lvl;\n }\n\n return level;\n };\n /**\n * Returns an array containing everything that has been logged to the history.\n *\n * This array is a shallow clone of the internal history record. However, its\n * contents are _not_ cloned; so, mutating objects inside this array will\n * mutate them in history.\n *\n * @return {Array}\n */\n\n\n log.history = function () {\n return history ? [].concat(history) : [];\n };\n /**\n * Allows you to filter the history by the given logger name\n *\n * @param {string} fname\n * The name to filter by\n *\n * @return {Array}\n * The filtered list to return\n */\n\n\n log.history.filter = function (fname) {\n return (history || []).filter(function (historyItem) {\n // if the first item in each historyItem includes `fname`, then it's a match\n return new RegExp(\".*\" + fname + \".*\").test(historyItem[0]);\n });\n };\n /**\n * Clears the internal history tracking, but does not prevent further history\n * tracking.\n */\n\n\n log.history.clear = function () {\n if (history) {\n history.length = 0;\n }\n };\n /**\n * Disable history tracking if it is currently enabled.\n */\n\n\n log.history.disable = function () {\n if (history !== null) {\n history.length = 0;\n history = null;\n }\n };\n /**\n * Enable history tracking if it is currently disabled.\n */\n\n\n log.history.enable = function () {\n if (history === null) {\n history = [];\n }\n };\n /**\n * Logs error messages. Similar to `console.error`.\n *\n * @param {Mixed[]} args\n * One or more messages or objects that should be logged as an error\n */\n\n\n log.error = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return logByType('error', level, args);\n };\n /**\n * Logs warning messages. Similar to `console.warn`.\n *\n * @param {Mixed[]} args\n * One or more messages or objects that should be logged as a warning.\n */\n\n\n log.warn = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return logByType('warn', level, args);\n };\n /**\n * Logs debug messages. Similar to `console.debug`, but may also act as a comparable\n * log if `console.debug` is not available\n *\n * @param {Mixed[]} args\n * One or more messages or objects that should be logged as debug.\n */\n\n\n log.debug = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return logByType('debug', level, args);\n };\n\n return log;\n}\n/**\n * @file log.js\n * @module log\n */\n\n\nvar log$1 = createLogger$1('VIDEOJS');\nvar createLogger = log$1.createLogger;\n/**\n * @file obj.js\n * @module obj\n */\n\n/**\n * @callback obj:EachCallback\n *\n * @param {Mixed} value\n * The current key for the object that is being iterated over.\n *\n * @param {string} key\n * The current key-value for object that is being iterated over\n */\n\n/**\n * @callback obj:ReduceCallback\n *\n * @param {Mixed} accum\n * The value that is accumulating over the reduce loop.\n *\n * @param {Mixed} value\n * The current key for the object that is being iterated over.\n *\n * @param {string} key\n * The current key-value for object that is being iterated over\n *\n * @return {Mixed}\n * The new accumulated value.\n */\n\nvar toString = Object.prototype.toString;\n/**\n * Get the keys of an Object\n *\n * @param {Object}\n * The Object to get the keys from\n *\n * @return {string[]}\n * An array of the keys from the object. Returns an empty array if the\n * object passed in was invalid or had no keys.\n *\n * @private\n */\n\nvar keys = function keys(object) {\n return isObject(object) ? Object.keys(object) : [];\n};\n/**\n * Array-like iteration for objects.\n *\n * @param {Object} object\n * The object to iterate over\n *\n * @param {obj:EachCallback} fn\n * The callback function which is called for each key in the object.\n */\n\n\nfunction each(object, fn) {\n keys(object).forEach(function (key) {\n return fn(object[key], key);\n });\n}\n/**\n * Array-like reduce for objects.\n *\n * @param {Object} object\n * The Object that you want to reduce.\n *\n * @param {Function} fn\n * A callback function which is called for each key in the object. It\n * receives the accumulated value and the per-iteration value and key\n * as arguments.\n *\n * @param {Mixed} [initial = 0]\n * Starting value\n *\n * @return {Mixed}\n * The final accumulated value.\n */\n\n\nfunction reduce(object, fn, initial) {\n if (initial === void 0) {\n initial = 0;\n }\n\n return keys(object).reduce(function (accum, key) {\n return fn(accum, object[key], key);\n }, initial);\n}\n/**\n * Object.assign-style object shallow merge/extend.\n *\n * @param {Object} target\n * @param {Object} ...sources\n * @return {Object}\n */\n\n\nfunction assign(target) {\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n\n if (Object.assign) {\n return _extends.apply(void 0, [target].concat(sources));\n }\n\n sources.forEach(function (source) {\n if (!source) {\n return;\n }\n\n each(source, function (value, key) {\n target[key] = value;\n });\n });\n return target;\n}\n/**\n * Returns whether a value is an object of any kind - including DOM nodes,\n * arrays, regular expressions, etc. Not functions, though.\n *\n * This avoids the gotcha where using `typeof` on a `null` value\n * results in `'object'`.\n *\n * @param {Object} value\n * @return {boolean}\n */\n\n\nfunction isObject(value) {\n return !!value && typeof value === 'object';\n}\n/**\n * Returns whether an object appears to be a \"plain\" object - that is, a\n * direct instance of `Object`.\n *\n * @param {Object} value\n * @return {boolean}\n */\n\n\nfunction isPlain(value) {\n return isObject(value) && toString.call(value) === '[object Object]' && value.constructor === Object;\n}\n/**\n * @file computed-style.js\n * @module computed-style\n */\n\n/**\n * A safe getComputedStyle.\n *\n * This is needed because in Firefox, if the player is loaded in an iframe with\n * `display:none`, then `getComputedStyle` returns `null`, so, we do a\n * null-check to make sure that the player doesn't break in these cases.\n *\n * @function\n * @param {Element} el\n * The element you want the computed style of\n *\n * @param {string} prop\n * The property name you want\n *\n * @see https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\n\n\nfunction computedStyle(el, prop) {\n if (!el || !prop) {\n return '';\n }\n\n if (typeof window$1.getComputedStyle === 'function') {\n var computedStyleValue;\n\n try {\n computedStyleValue = window$1.getComputedStyle(el);\n } catch (e) {\n return '';\n }\n\n return computedStyleValue ? computedStyleValue.getPropertyValue(prop) || computedStyleValue[prop] : '';\n }\n\n return '';\n}\n/**\n * @file browser.js\n * @module browser\n */\n\n\nvar USER_AGENT = window$1.navigator && window$1.navigator.userAgent || '';\nvar webkitVersionMap = /AppleWebKit\\/([\\d.]+)/i.exec(USER_AGENT);\nvar appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;\n/**\n * Whether or not this device is an iPod.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_IPOD = /iPod/i.test(USER_AGENT);\n/**\n * The detected iOS version - or `null`.\n *\n * @static\n * @const\n * @type {string|null}\n */\n\nvar IOS_VERSION = function () {\n var match = USER_AGENT.match(/OS (\\d+)_/i);\n\n if (match && match[1]) {\n return match[1];\n }\n\n return null;\n}();\n/**\n * Whether or not this is an Android device.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\n\nvar IS_ANDROID = /Android/i.test(USER_AGENT);\n/**\n * The detected Android version - or `null`.\n *\n * @static\n * @const\n * @type {number|string|null}\n */\n\nvar ANDROID_VERSION = function () {\n // This matches Android Major.Minor.Patch versions\n // ANDROID_VERSION is Major.Minor as a Number, if Minor isn't available, then only Major is returned\n var match = USER_AGENT.match(/Android (\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))*/i);\n\n if (!match) {\n return null;\n }\n\n var major = match[1] && parseFloat(match[1]);\n var minor = match[2] && parseFloat(match[2]);\n\n if (major && minor) {\n return parseFloat(match[1] + '.' + match[2]);\n } else if (major) {\n return major;\n }\n\n return null;\n}();\n/**\n * Whether or not this is a native Android browser.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\n\nvar IS_NATIVE_ANDROID = IS_ANDROID && ANDROID_VERSION < 5 && appleWebkitVersion < 537;\n/**\n * Whether or not this is Mozilla Firefox.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_FIREFOX = /Firefox/i.test(USER_AGENT);\n/**\n * Whether or not this is Microsoft Edge.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_EDGE = /Edg/i.test(USER_AGENT);\n/**\n * Whether or not this is Google Chrome.\n *\n * This will also be `true` for Chrome on iOS, which will have different support\n * as it is actually Safari under the hood.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_CHROME = !IS_EDGE && (/Chrome/i.test(USER_AGENT) || /CriOS/i.test(USER_AGENT));\n/**\n * The detected Google Chrome version - or `null`.\n *\n * @static\n * @const\n * @type {number|null}\n */\n\nvar CHROME_VERSION = function () {\n var match = USER_AGENT.match(/(Chrome|CriOS)\\/(\\d+)/);\n\n if (match && match[2]) {\n return parseFloat(match[2]);\n }\n\n return null;\n}();\n/**\n * The detected Internet Explorer version - or `null`.\n *\n * @static\n * @const\n * @type {number|null}\n */\n\n\nvar IE_VERSION = function () {\n var result = /MSIE\\s(\\d+)\\.\\d/.exec(USER_AGENT);\n var version = result && parseFloat(result[1]);\n\n if (!version && /Trident\\/7.0/i.test(USER_AGENT) && /rv:11.0/.test(USER_AGENT)) {\n // IE 11 has a different user agent string than other IE versions\n version = 11.0;\n }\n\n return version;\n}();\n/**\n * Whether or not this is desktop Safari.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\n\nvar IS_SAFARI = /Safari/i.test(USER_AGENT) && !IS_CHROME && !IS_ANDROID && !IS_EDGE;\n/**\n * Whether or not this is a Windows machine.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_WINDOWS = /Windows/i.test(USER_AGENT);\n/**\n * Whether or not this device is touch-enabled.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar TOUCH_ENABLED = Boolean(isReal() && ('ontouchstart' in window$1 || window$1.navigator.maxTouchPoints || window$1.DocumentTouch && window$1.document instanceof window$1.DocumentTouch));\n/**\n * Whether or not this device is an iPad.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_IPAD = /iPad/i.test(USER_AGENT) || IS_SAFARI && TOUCH_ENABLED && !/iPhone/i.test(USER_AGENT);\n/**\n * Whether or not this device is an iPhone.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n// The Facebook app's UIWebView identifies as both an iPhone and iPad, so\n// to identify iPhones, we need to exclude iPads.\n// http://artsy.github.io/blog/2012/10/18/the-perils-of-ios-user-agent-sniffing/\n\nvar IS_IPHONE = /iPhone/i.test(USER_AGENT) && !IS_IPAD;\n/**\n * Whether or not this is an iOS device.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\n/**\n * Whether or not this is any flavor of Safari - including iOS.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_ANY_SAFARI = (IS_SAFARI || IS_IOS) && !IS_CHROME;\nvar browser = /*#__PURE__*/Object.freeze({\n __proto__: null,\n IS_IPOD: IS_IPOD,\n IOS_VERSION: IOS_VERSION,\n IS_ANDROID: IS_ANDROID,\n ANDROID_VERSION: ANDROID_VERSION,\n IS_NATIVE_ANDROID: IS_NATIVE_ANDROID,\n IS_FIREFOX: IS_FIREFOX,\n IS_EDGE: IS_EDGE,\n IS_CHROME: IS_CHROME,\n CHROME_VERSION: CHROME_VERSION,\n IE_VERSION: IE_VERSION,\n IS_SAFARI: IS_SAFARI,\n IS_WINDOWS: IS_WINDOWS,\n TOUCH_ENABLED: TOUCH_ENABLED,\n IS_IPAD: IS_IPAD,\n IS_IPHONE: IS_IPHONE,\n IS_IOS: IS_IOS,\n IS_ANY_SAFARI: IS_ANY_SAFARI\n});\n/**\n * @file dom.js\n * @module dom\n */\n\n/**\n * Detect if a value is a string with any non-whitespace characters.\n *\n * @private\n * @param {string} str\n * The string to check\n *\n * @return {boolean}\n * Will be `true` if the string is non-blank, `false` otherwise.\n *\n */\n\nfunction isNonBlankString(str) {\n // we use str.trim as it will trim any whitespace characters\n // from the front or back of non-whitespace characters. aka\n // Any string that contains non-whitespace characters will\n // still contain them after `trim` but whitespace only strings\n // will have a length of 0, failing this check.\n return typeof str === 'string' && Boolean(str.trim());\n}\n/**\n * Throws an error if the passed string has whitespace. This is used by\n * class methods to be relatively consistent with the classList API.\n *\n * @private\n * @param {string} str\n * The string to check for whitespace.\n *\n * @throws {Error}\n * Throws an error if there is whitespace in the string.\n */\n\n\nfunction throwIfWhitespace(str) {\n // str.indexOf instead of regex because str.indexOf is faster performance wise.\n if (str.indexOf(' ') >= 0) {\n throw new Error('class has illegal whitespace characters');\n }\n}\n/**\n * Produce a regular expression for matching a className within an elements className.\n *\n * @private\n * @param {string} className\n * The className to generate the RegExp for.\n *\n * @return {RegExp}\n * The RegExp that will check for a specific `className` in an elements\n * className.\n */\n\n\nfunction classRegExp(className) {\n return new RegExp('(^|\\\\s)' + className + '($|\\\\s)');\n}\n/**\n * Whether the current DOM interface appears to be real (i.e. not simulated).\n *\n * @return {boolean}\n * Will be `true` if the DOM appears to be real, `false` otherwise.\n */\n\n\nfunction isReal() {\n // Both document and window will never be undefined thanks to `global`.\n return document === window$1.document;\n}\n/**\n * Determines, via duck typing, whether or not a value is a DOM element.\n *\n * @param {Mixed} value\n * The value to check.\n *\n * @return {boolean}\n * Will be `true` if the value is a DOM element, `false` otherwise.\n */\n\n\nfunction isEl(value) {\n return isObject(value) && value.nodeType === 1;\n}\n/**\n * Determines if the current DOM is embedded in an iframe.\n *\n * @return {boolean}\n * Will be `true` if the DOM is embedded in an iframe, `false`\n * otherwise.\n */\n\n\nfunction isInFrame() {\n // We need a try/catch here because Safari will throw errors when attempting\n // to get either `parent` or `self`\n try {\n return window$1.parent !== window$1.self;\n } catch (x) {\n return true;\n }\n}\n/**\n * Creates functions to query the DOM using a given method.\n *\n * @private\n * @param {string} method\n * The method to create the query with.\n *\n * @return {Function}\n * The query method\n */\n\n\nfunction createQuerier(method) {\n return function (selector, context) {\n if (!isNonBlankString(selector)) {\n return document[method](null);\n }\n\n if (isNonBlankString(context)) {\n context = document.querySelector(context);\n }\n\n var ctx = isEl(context) ? context : document;\n return ctx[method] && ctx[method](selector);\n };\n}\n/**\n * Creates an element and applies properties, attributes, and inserts content.\n *\n * @param {string} [tagName='div']\n * Name of tag to be created.\n *\n * @param {Object} [properties={}]\n * Element properties to be applied.\n *\n * @param {Object} [attributes={}]\n * Element attributes to be applied.\n *\n * @param {module:dom~ContentDescriptor} content\n * A content descriptor object.\n *\n * @return {Element}\n * The element that was created.\n */\n\n\nfunction createEl(tagName, properties, attributes, content) {\n if (tagName === void 0) {\n tagName = 'div';\n }\n\n if (properties === void 0) {\n properties = {};\n }\n\n if (attributes === void 0) {\n attributes = {};\n }\n\n var el = document.createElement(tagName);\n Object.getOwnPropertyNames(properties).forEach(function (propName) {\n var val = properties[propName]; // See #2176\n // We originally were accepting both properties and attributes in the\n // same object, but that doesn't work so well.\n\n if (propName.indexOf('aria-') !== -1 || propName === 'role' || propName === 'type') {\n log$1.warn('Setting attributes in the second argument of createEl()\\n' + 'has been deprecated. Use the third argument instead.\\n' + (\"createEl(type, properties, attributes). Attempting to set \" + propName + \" to \" + val + \".\"));\n el.setAttribute(propName, val); // Handle textContent since it's not supported everywhere and we have a\n // method for it.\n } else if (propName === 'textContent') {\n textContent(el, val);\n } else if (el[propName] !== val || propName === 'tabIndex') {\n el[propName] = val;\n }\n });\n Object.getOwnPropertyNames(attributes).forEach(function (attrName) {\n el.setAttribute(attrName, attributes[attrName]);\n });\n\n if (content) {\n appendContent(el, content);\n }\n\n return el;\n}\n/**\n * Injects text into an element, replacing any existing contents entirely.\n *\n * @param {Element} el\n * The element to add text content into\n *\n * @param {string} text\n * The text content to add.\n *\n * @return {Element}\n * The element with added text content.\n */\n\n\nfunction textContent(el, text) {\n if (typeof el.textContent === 'undefined') {\n el.innerText = text;\n } else {\n el.textContent = text;\n }\n\n return el;\n}\n/**\n * Insert an element as the first child node of another\n *\n * @param {Element} child\n * Element to insert\n *\n * @param {Element} parent\n * Element to insert child into\n */\n\n\nfunction prependTo(child, parent) {\n if (parent.firstChild) {\n parent.insertBefore(child, parent.firstChild);\n } else {\n parent.appendChild(child);\n }\n}\n/**\n * Check if an element has a class name.\n *\n * @param {Element} element\n * Element to check\n *\n * @param {string} classToCheck\n * Class name to check for\n *\n * @return {boolean}\n * Will be `true` if the element has a class, `false` otherwise.\n *\n * @throws {Error}\n * Throws an error if `classToCheck` has white space.\n */\n\n\nfunction hasClass(element, classToCheck) {\n throwIfWhitespace(classToCheck);\n\n if (element.classList) {\n return element.classList.contains(classToCheck);\n }\n\n return classRegExp(classToCheck).test(element.className);\n}\n/**\n * Add a class name to an element.\n *\n * @param {Element} element\n * Element to add class name to.\n *\n * @param {string} classToAdd\n * Class name to add.\n *\n * @return {Element}\n * The DOM element with the added class name.\n */\n\n\nfunction addClass(element, classToAdd) {\n if (element.classList) {\n element.classList.add(classToAdd); // Don't need to `throwIfWhitespace` here because `hasElClass` will do it\n // in the case of classList not being supported.\n } else if (!hasClass(element, classToAdd)) {\n element.className = (element.className + ' ' + classToAdd).trim();\n }\n\n return element;\n}\n/**\n * Remove a class name from an element.\n *\n * @param {Element} element\n * Element to remove a class name from.\n *\n * @param {string} classToRemove\n * Class name to remove\n *\n * @return {Element}\n * The DOM element with class name removed.\n */\n\n\nfunction removeClass(element, classToRemove) {\n // Protect in case the player gets disposed\n if (!element) {\n log$1.warn(\"removeClass was called with an element that doesn't exist\");\n return null;\n }\n\n if (element.classList) {\n element.classList.remove(classToRemove);\n } else {\n throwIfWhitespace(classToRemove);\n element.className = element.className.split(/\\s+/).filter(function (c) {\n return c !== classToRemove;\n }).join(' ');\n }\n\n return element;\n}\n/**\n * The callback definition for toggleClass.\n *\n * @callback module:dom~PredicateCallback\n * @param {Element} element\n * The DOM element of the Component.\n *\n * @param {string} classToToggle\n * The `className` that wants to be toggled\n *\n * @return {boolean|undefined}\n * If `true` is returned, the `classToToggle` will be added to the\n * `element`. If `false`, the `classToToggle` will be removed from\n * the `element`. If `undefined`, the callback will be ignored.\n */\n\n/**\n * Adds or removes a class name to/from an element depending on an optional\n * condition or the presence/absence of the class name.\n *\n * @param {Element} element\n * The element to toggle a class name on.\n *\n * @param {string} classToToggle\n * The class that should be toggled.\n *\n * @param {boolean|module:dom~PredicateCallback} [predicate]\n * See the return value for {@link module:dom~PredicateCallback}\n *\n * @return {Element}\n * The element with a class that has been toggled.\n */\n\n\nfunction toggleClass(element, classToToggle, predicate) {\n // This CANNOT use `classList` internally because IE11 does not support the\n // second parameter to the `classList.toggle()` method! Which is fine because\n // `classList` will be used by the add/remove functions.\n var has = hasClass(element, classToToggle);\n\n if (typeof predicate === 'function') {\n predicate = predicate(element, classToToggle);\n }\n\n if (typeof predicate !== 'boolean') {\n predicate = !has;\n } // If the necessary class operation matches the current state of the\n // element, no action is required.\n\n\n if (predicate === has) {\n return;\n }\n\n if (predicate) {\n addClass(element, classToToggle);\n } else {\n removeClass(element, classToToggle);\n }\n\n return element;\n}\n/**\n * Apply attributes to an HTML element.\n *\n * @param {Element} el\n * Element to add attributes to.\n *\n * @param {Object} [attributes]\n * Attributes to be applied.\n */\n\n\nfunction setAttributes(el, attributes) {\n Object.getOwnPropertyNames(attributes).forEach(function (attrName) {\n var attrValue = attributes[attrName];\n\n if (attrValue === null || typeof attrValue === 'undefined' || attrValue === false) {\n el.removeAttribute(attrName);\n } else {\n el.setAttribute(attrName, attrValue === true ? '' : attrValue);\n }\n });\n}\n/**\n * Get an element's attribute values, as defined on the HTML tag.\n *\n * Attributes are not the same as properties. They're defined on the tag\n * or with setAttribute.\n *\n * @param {Element} tag\n * Element from which to get tag attributes.\n *\n * @return {Object}\n * All attributes of the element. Boolean attributes will be `true` or\n * `false`, others will be strings.\n */\n\n\nfunction getAttributes(tag) {\n var obj = {}; // known boolean attributes\n // we can check for matching boolean properties, but not all browsers\n // and not all tags know about these attributes, so, we still want to check them manually\n\n var knownBooleans = ',' + 'autoplay,controls,playsinline,loop,muted,default,defaultMuted' + ',';\n\n if (tag && tag.attributes && tag.attributes.length > 0) {\n var attrs = tag.attributes;\n\n for (var i = attrs.length - 1; i >= 0; i--) {\n var attrName = attrs[i].name;\n var attrVal = attrs[i].value; // check for known booleans\n // the matching element property will return a value for typeof\n\n if (typeof tag[attrName] === 'boolean' || knownBooleans.indexOf(',' + attrName + ',') !== -1) {\n // the value of an included boolean attribute is typically an empty\n // string ('') which would equal false if we just check for a false value.\n // we also don't want support bad code like autoplay='false'\n attrVal = attrVal !== null ? true : false;\n }\n\n obj[attrName] = attrVal;\n }\n }\n\n return obj;\n}\n/**\n * Get the value of an element's attribute.\n *\n * @param {Element} el\n * A DOM element.\n *\n * @param {string} attribute\n * Attribute to get the value of.\n *\n * @return {string}\n * The value of the attribute.\n */\n\n\nfunction getAttribute(el, attribute) {\n return el.getAttribute(attribute);\n}\n/**\n * Set the value of an element's attribute.\n *\n * @param {Element} el\n * A DOM element.\n *\n * @param {string} attribute\n * Attribute to set.\n *\n * @param {string} value\n * Value to set the attribute to.\n */\n\n\nfunction setAttribute(el, attribute, value) {\n el.setAttribute(attribute, value);\n}\n/**\n * Remove an element's attribute.\n *\n * @param {Element} el\n * A DOM element.\n *\n * @param {string} attribute\n * Attribute to remove.\n */\n\n\nfunction removeAttribute(el, attribute) {\n el.removeAttribute(attribute);\n}\n/**\n * Attempt to block the ability to select text.\n */\n\n\nfunction blockTextSelection() {\n document.body.focus();\n\n document.onselectstart = function () {\n return false;\n };\n}\n/**\n * Turn off text selection blocking.\n */\n\n\nfunction unblockTextSelection() {\n document.onselectstart = function () {\n return true;\n };\n}\n/**\n * Identical to the native `getBoundingClientRect` function, but ensures that\n * the method is supported at all (it is in all browsers we claim to support)\n * and that the element is in the DOM before continuing.\n *\n * This wrapper function also shims properties which are not provided by some\n * older browsers (namely, IE8).\n *\n * Additionally, some browsers do not support adding properties to a\n * `ClientRect`/`DOMRect` object; so, we shallow-copy it with the standard\n * properties (except `x` and `y` which are not widely supported). This helps\n * avoid implementations where keys are non-enumerable.\n *\n * @param {Element} el\n * Element whose `ClientRect` we want to calculate.\n *\n * @return {Object|undefined}\n * Always returns a plain object - or `undefined` if it cannot.\n */\n\n\nfunction getBoundingClientRect(el) {\n if (el && el.getBoundingClientRect && el.parentNode) {\n var rect = el.getBoundingClientRect();\n var result = {};\n ['bottom', 'height', 'left', 'right', 'top', 'width'].forEach(function (k) {\n if (rect[k] !== undefined) {\n result[k] = rect[k];\n }\n });\n\n if (!result.height) {\n result.height = parseFloat(computedStyle(el, 'height'));\n }\n\n if (!result.width) {\n result.width = parseFloat(computedStyle(el, 'width'));\n }\n\n return result;\n }\n}\n/**\n * Represents the position of a DOM element on the page.\n *\n * @typedef {Object} module:dom~Position\n *\n * @property {number} left\n * Pixels to the left.\n *\n * @property {number} top\n * Pixels from the top.\n */\n\n/**\n * Get the position of an element in the DOM.\n *\n * Uses `getBoundingClientRect` technique from John Resig.\n *\n * @see http://ejohn.org/blog/getboundingclientrect-is-awesome/\n *\n * @param {Element} el\n * Element from which to get offset.\n *\n * @return {module:dom~Position}\n * The position of the element that was passed in.\n */\n\n\nfunction findPosition(el) {\n if (!el || el && !el.offsetParent) {\n return {\n left: 0,\n top: 0,\n width: 0,\n height: 0\n };\n }\n\n var width = el.offsetWidth;\n var height = el.offsetHeight;\n var left = 0;\n var top = 0;\n\n while (el.offsetParent && el !== document[FullscreenApi.fullscreenElement]) {\n left += el.offsetLeft;\n top += el.offsetTop;\n el = el.offsetParent;\n }\n\n return {\n left: left,\n top: top,\n width: width,\n height: height\n };\n}\n/**\n * Represents x and y coordinates for a DOM element or mouse pointer.\n *\n * @typedef {Object} module:dom~Coordinates\n *\n * @property {number} x\n * x coordinate in pixels\n *\n * @property {number} y\n * y coordinate in pixels\n */\n\n/**\n * Get the pointer position within an element.\n *\n * The base on the coordinates are the bottom left of the element.\n *\n * @param {Element} el\n * Element on which to get the pointer position on.\n *\n * @param {EventTarget~Event} event\n * Event object.\n *\n * @return {module:dom~Coordinates}\n * A coordinates object corresponding to the mouse position.\n *\n */\n\n\nfunction getPointerPosition(el, event) {\n var translated = {\n x: 0,\n y: 0\n };\n\n if (IS_IOS) {\n var item = el;\n\n while (item && item.nodeName.toLowerCase() !== 'html') {\n var transform = computedStyle(item, 'transform');\n\n if (/^matrix/.test(transform)) {\n var values = transform.slice(7, -1).split(/,\\s/).map(Number);\n translated.x += values[4];\n translated.y += values[5];\n } else if (/^matrix3d/.test(transform)) {\n var _values = transform.slice(9, -1).split(/,\\s/).map(Number);\n\n translated.x += _values[12];\n translated.y += _values[13];\n }\n\n item = item.parentNode;\n }\n }\n\n var position = {};\n var boxTarget = findPosition(event.target);\n var box = findPosition(el);\n var boxW = box.width;\n var boxH = box.height;\n var offsetY = event.offsetY - (box.top - boxTarget.top);\n var offsetX = event.offsetX - (box.left - boxTarget.left);\n\n if (event.changedTouches) {\n offsetX = event.changedTouches[0].pageX - box.left;\n offsetY = event.changedTouches[0].pageY + box.top;\n\n if (IS_IOS) {\n offsetX -= translated.x;\n offsetY -= translated.y;\n }\n }\n\n position.y = 1 - Math.max(0, Math.min(1, offsetY / boxH));\n position.x = Math.max(0, Math.min(1, offsetX / boxW));\n return position;\n}\n/**\n * Determines, via duck typing, whether or not a value is a text node.\n *\n * @param {Mixed} value\n * Check if this value is a text node.\n *\n * @return {boolean}\n * Will be `true` if the value is a text node, `false` otherwise.\n */\n\n\nfunction isTextNode(value) {\n return isObject(value) && value.nodeType === 3;\n}\n/**\n * Empties the contents of an element.\n *\n * @param {Element} el\n * The element to empty children from\n *\n * @return {Element}\n * The element with no children\n */\n\n\nfunction emptyEl(el) {\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n\n return el;\n}\n/**\n * This is a mixed value that describes content to be injected into the DOM\n * via some method. It can be of the following types:\n *\n * Type | Description\n * -----------|-------------\n * `string` | The value will be normalized into a text node.\n * `Element` | The value will be accepted as-is.\n * `TextNode` | The value will be accepted as-is.\n * `Array` | A one-dimensional array of strings, elements, text nodes, or functions. These functions should return a string, element, or text node (any other return value, like an array, will be ignored).\n * `Function` | A function, which is expected to return a string, element, text node, or array - any of the other possible values described above. This means that a content descriptor could be a function that returns an array of functions, but those second-level functions must return strings, elements, or text nodes.\n *\n * @typedef {string|Element|TextNode|Array|Function} module:dom~ContentDescriptor\n */\n\n/**\n * Normalizes content for eventual insertion into the DOM.\n *\n * This allows a wide range of content definition methods, but helps protect\n * from falling into the trap of simply writing to `innerHTML`, which could\n * be an XSS concern.\n *\n * The content for an element can be passed in multiple types and\n * combinations, whose behavior is as follows:\n *\n * @param {module:dom~ContentDescriptor} content\n * A content descriptor value.\n *\n * @return {Array}\n * All of the content that was passed in, normalized to an array of\n * elements or text nodes.\n */\n\n\nfunction normalizeContent(content) {\n // First, invoke content if it is a function. If it produces an array,\n // that needs to happen before normalization.\n if (typeof content === 'function') {\n content = content();\n } // Next up, normalize to an array, so one or many items can be normalized,\n // filtered, and returned.\n\n\n return (Array.isArray(content) ? content : [content]).map(function (value) {\n // First, invoke value if it is a function to produce a new value,\n // which will be subsequently normalized to a Node of some kind.\n if (typeof value === 'function') {\n value = value();\n }\n\n if (isEl(value) || isTextNode(value)) {\n return value;\n }\n\n if (typeof value === 'string' && /\\S/.test(value)) {\n return document.createTextNode(value);\n }\n }).filter(function (value) {\n return value;\n });\n}\n/**\n * Normalizes and appends content to an element.\n *\n * @param {Element} el\n * Element to append normalized content to.\n *\n * @param {module:dom~ContentDescriptor} content\n * A content descriptor value.\n *\n * @return {Element}\n * The element with appended normalized content.\n */\n\n\nfunction appendContent(el, content) {\n normalizeContent(content).forEach(function (node) {\n return el.appendChild(node);\n });\n return el;\n}\n/**\n * Normalizes and inserts content into an element; this is identical to\n * `appendContent()`, except it empties the element first.\n *\n * @param {Element} el\n * Element to insert normalized content into.\n *\n * @param {module:dom~ContentDescriptor} content\n * A content descriptor value.\n *\n * @return {Element}\n * The element with inserted normalized content.\n */\n\n\nfunction insertContent(el, content) {\n return appendContent(emptyEl(el), content);\n}\n/**\n * Check if an event was a single left click.\n *\n * @param {EventTarget~Event} event\n * Event object.\n *\n * @return {boolean}\n * Will be `true` if a single left click, `false` otherwise.\n */\n\n\nfunction isSingleLeftClick(event) {\n // Note: if you create something draggable, be sure to\n // call it on both `mousedown` and `mousemove` event,\n // otherwise `mousedown` should be enough for a button\n if (event.button === undefined && event.buttons === undefined) {\n // Why do we need `buttons` ?\n // Because, middle mouse sometimes have this:\n // e.button === 0 and e.buttons === 4\n // Furthermore, we want to prevent combination click, something like\n // HOLD middlemouse then left click, that would be\n // e.button === 0, e.buttons === 5\n // just `button` is not gonna work\n // Alright, then what this block does ?\n // this is for chrome `simulate mobile devices`\n // I want to support this as well\n return true;\n }\n\n if (event.button === 0 && event.buttons === undefined) {\n // Touch screen, sometimes on some specific device, `buttons`\n // doesn't have anything (safari on ios, blackberry...)\n return true;\n } // `mouseup` event on a single left click has\n // `button` and `buttons` equal to 0\n\n\n if (event.type === 'mouseup' && event.button === 0 && event.buttons === 0) {\n return true;\n }\n\n if (event.button !== 0 || event.buttons !== 1) {\n // This is the reason we have those if else block above\n // if any special case we can catch and let it slide\n // we do it above, when get to here, this definitely\n // is-not-left-click\n return false;\n }\n\n return true;\n}\n/**\n * Finds a single DOM element matching `selector` within the optional\n * `context` of another DOM element (defaulting to `document`).\n *\n * @param {string} selector\n * A valid CSS selector, which will be passed to `querySelector`.\n *\n * @param {Element|String} [context=document]\n * A DOM element within which to query. Can also be a selector\n * string in which case the first matching element will be used\n * as context. If missing (or no element matches selector), falls\n * back to `document`.\n *\n * @return {Element|null}\n * The element that was found or null.\n */\n\n\nvar $ = createQuerier('querySelector');\n/**\n * Finds a all DOM elements matching `selector` within the optional\n * `context` of another DOM element (defaulting to `document`).\n *\n * @param {string} selector\n * A valid CSS selector, which will be passed to `querySelectorAll`.\n *\n * @param {Element|String} [context=document]\n * A DOM element within which to query. Can also be a selector\n * string in which case the first matching element will be used\n * as context. If missing (or no element matches selector), falls\n * back to `document`.\n *\n * @return {NodeList}\n * A element list of elements that were found. Will be empty if none\n * were found.\n *\n */\n\nvar $$ = createQuerier('querySelectorAll');\nvar Dom = /*#__PURE__*/Object.freeze({\n __proto__: null,\n isReal: isReal,\n isEl: isEl,\n isInFrame: isInFrame,\n createEl: createEl,\n textContent: textContent,\n prependTo: prependTo,\n hasClass: hasClass,\n addClass: addClass,\n removeClass: removeClass,\n toggleClass: toggleClass,\n setAttributes: setAttributes,\n getAttributes: getAttributes,\n getAttribute: getAttribute,\n setAttribute: setAttribute,\n removeAttribute: removeAttribute,\n blockTextSelection: blockTextSelection,\n unblockTextSelection: unblockTextSelection,\n getBoundingClientRect: getBoundingClientRect,\n findPosition: findPosition,\n getPointerPosition: getPointerPosition,\n isTextNode: isTextNode,\n emptyEl: emptyEl,\n normalizeContent: normalizeContent,\n appendContent: appendContent,\n insertContent: insertContent,\n isSingleLeftClick: isSingleLeftClick,\n $: $,\n $$: $$\n});\n/**\n * @file setup.js - Functions for setting up a player without\n * user interaction based on the data-setup `attribute` of the video tag.\n *\n * @module setup\n */\n\nvar _windowLoaded = false;\nvar videojs$1;\n/**\n * Set up any tags that have a data-setup `attribute` when the player is started.\n */\n\nvar autoSetup = function autoSetup() {\n if (videojs$1.options.autoSetup === false) {\n return;\n }\n\n var vids = Array.prototype.slice.call(document.getElementsByTagName('video'));\n var audios = Array.prototype.slice.call(document.getElementsByTagName('audio'));\n var divs = Array.prototype.slice.call(document.getElementsByTagName('video-js'));\n var mediaEls = vids.concat(audios, divs); // Check if any media elements exist\n\n if (mediaEls && mediaEls.length > 0) {\n for (var i = 0, e = mediaEls.length; i < e; i++) {\n var mediaEl = mediaEls[i]; // Check if element exists, has getAttribute func.\n\n if (mediaEl && mediaEl.getAttribute) {\n // Make sure this player hasn't already been set up.\n if (mediaEl.player === undefined) {\n var options = mediaEl.getAttribute('data-setup'); // Check if data-setup attr exists.\n // We only auto-setup if they've added the data-setup attr.\n\n if (options !== null) {\n // Create new video.js instance.\n videojs$1(mediaEl);\n }\n } // If getAttribute isn't defined, we need to wait for the DOM.\n\n } else {\n autoSetupTimeout(1);\n break;\n }\n } // No videos were found, so keep looping unless page is finished loading.\n\n } else if (!_windowLoaded) {\n autoSetupTimeout(1);\n }\n};\n/**\n * Wait until the page is loaded before running autoSetup. This will be called in\n * autoSetup if `hasLoaded` returns false.\n *\n * @param {number} wait\n * How long to wait in ms\n *\n * @param {module:videojs} [vjs]\n * The videojs library function\n */\n\n\nfunction autoSetupTimeout(wait, vjs) {\n // Protect against breakage in non-browser environments\n if (!isReal()) {\n return;\n }\n\n if (vjs) {\n videojs$1 = vjs;\n }\n\n window$1.setTimeout(autoSetup, wait);\n}\n/**\n * Used to set the internal tracking of window loaded state to true.\n *\n * @private\n */\n\n\nfunction setWindowLoaded() {\n _windowLoaded = true;\n window$1.removeEventListener('load', setWindowLoaded);\n}\n\nif (isReal()) {\n if (document.readyState === 'complete') {\n setWindowLoaded();\n } else {\n /**\n * Listen for the load event on window, and set _windowLoaded to true.\n *\n * We use a standard event listener here to avoid incrementing the GUID\n * before any players are created.\n *\n * @listens load\n */\n window$1.addEventListener('load', setWindowLoaded);\n }\n}\n/**\n * @file stylesheet.js\n * @module stylesheet\n */\n\n/**\n * Create a DOM syle element given a className for it.\n *\n * @param {string} className\n * The className to add to the created style element.\n *\n * @return {Element}\n * The element that was created.\n */\n\n\nvar createStyleElement = function createStyleElement(className) {\n var style = document.createElement('style');\n style.className = className;\n return style;\n};\n/**\n * Add text to a DOM element.\n *\n * @param {Element} el\n * The Element to add text content to.\n *\n * @param {string} content\n * The text to add to the element.\n */\n\n\nvar setTextContent = function setTextContent(el, content) {\n if (el.styleSheet) {\n el.styleSheet.cssText = content;\n } else {\n el.textContent = content;\n }\n};\n/**\n * @file guid.js\n * @module guid\n */\n// Default value for GUIDs. This allows us to reset the GUID counter in tests.\n//\n// The initial GUID is 3 because some users have come to rely on the first\n// default player ID ending up as `vjs_video_3`.\n//\n// See: https://github.com/videojs/video.js/pull/6216\n\n\nvar _initialGuid = 3;\n/**\n * Unique ID for an element or function\n *\n * @type {Number}\n */\n\nvar _guid = _initialGuid;\n/**\n * Get a unique auto-incrementing ID by number that has not been returned before.\n *\n * @return {number}\n * A new unique ID.\n */\n\nfunction newGUID() {\n return _guid++;\n}\n/**\n * @file dom-data.js\n * @module dom-data\n */\n\n\nvar FakeWeakMap;\n\nif (!window$1.WeakMap) {\n FakeWeakMap = /*#__PURE__*/function () {\n function FakeWeakMap() {\n this.vdata = 'vdata' + Math.floor(window$1.performance && window$1.performance.now() || Date.now());\n this.data = {};\n }\n\n var _proto = FakeWeakMap.prototype;\n\n _proto.set = function set(key, value) {\n var access = key[this.vdata] || newGUID();\n\n if (!key[this.vdata]) {\n key[this.vdata] = access;\n }\n\n this.data[access] = value;\n return this;\n };\n\n _proto.get = function get(key) {\n var access = key[this.vdata]; // we have data, return it\n\n if (access) {\n return this.data[access];\n } // we don't have data, return nothing.\n // return undefined explicitly as that's the contract for this method\n\n\n log$1('We have no data for this element', key);\n return undefined;\n };\n\n _proto.has = function has(key) {\n var access = key[this.vdata];\n return access in this.data;\n };\n\n _proto[\"delete\"] = function _delete(key) {\n var access = key[this.vdata];\n\n if (access) {\n delete this.data[access];\n delete key[this.vdata];\n }\n };\n\n return FakeWeakMap;\n }();\n}\n/**\n * Element Data Store.\n *\n * Allows for binding data to an element without putting it directly on the\n * element. Ex. Event listeners are stored here.\n * (also from jsninja.com, slightly modified and updated for closure compiler)\n *\n * @type {Object}\n * @private\n */\n\n\nvar DomData = window$1.WeakMap ? new WeakMap() : new FakeWeakMap();\n/**\n * @file events.js. An Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)\n * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)\n * This should work very similarly to jQuery's events, however it's based off the book version which isn't as\n * robust as jquery's, so there's probably some differences.\n *\n * @file events.js\n * @module events\n */\n\n/**\n * Clean up the listener cache and dispatchers\n *\n * @param {Element|Object} elem\n * Element to clean up\n *\n * @param {string} type\n * Type of event to clean up\n */\n\nfunction _cleanUpEvents(elem, type) {\n if (!DomData.has(elem)) {\n return;\n }\n\n var data = DomData.get(elem); // Remove the events of a particular type if there are none left\n\n if (data.handlers[type].length === 0) {\n delete data.handlers[type]; // data.handlers[type] = null;\n // Setting to null was causing an error with data.handlers\n // Remove the meta-handler from the element\n\n if (elem.removeEventListener) {\n elem.removeEventListener(type, data.dispatcher, false);\n } else if (elem.detachEvent) {\n elem.detachEvent('on' + type, data.dispatcher);\n }\n } // Remove the events object if there are no types left\n\n\n if (Object.getOwnPropertyNames(data.handlers).length <= 0) {\n delete data.handlers;\n delete data.dispatcher;\n delete data.disabled;\n } // Finally remove the element data if there is no data left\n\n\n if (Object.getOwnPropertyNames(data).length === 0) {\n DomData[\"delete\"](elem);\n }\n}\n/**\n * Loops through an array of event types and calls the requested method for each type.\n *\n * @param {Function} fn\n * The event method we want to use.\n *\n * @param {Element|Object} elem\n * Element or object to bind listeners to\n *\n * @param {string} type\n * Type of event to bind to.\n *\n * @param {EventTarget~EventListener} callback\n * Event listener.\n */\n\n\nfunction _handleMultipleEvents(fn, elem, types, callback) {\n types.forEach(function (type) {\n // Call the event method for each one of the types\n fn(elem, type, callback);\n });\n}\n/**\n * Fix a native event to have standard property values\n *\n * @param {Object} event\n * Event object to fix.\n *\n * @return {Object}\n * Fixed event object.\n */\n\n\nfunction fixEvent(event) {\n if (event.fixed_) {\n return event;\n }\n\n function returnTrue() {\n return true;\n }\n\n function returnFalse() {\n return false;\n } // Test if fixing up is needed\n // Used to check if !event.stopPropagation instead of isPropagationStopped\n // But native events return true for stopPropagation, but don't have\n // other expected methods like isPropagationStopped. Seems to be a problem\n // with the Javascript Ninja code. So we're just overriding all events now.\n\n\n if (!event || !event.isPropagationStopped || !event.isImmediatePropagationStopped) {\n var old = event || window$1.event;\n event = {}; // Clone the old object so that we can modify the values event = {};\n // IE8 Doesn't like when you mess with native event properties\n // Firefox returns false for event.hasOwnProperty('type') and other props\n // which makes copying more difficult.\n // TODO: Probably best to create a whitelist of event props\n\n for (var key in old) {\n // Safari 6.0.3 warns you if you try to copy deprecated layerX/Y\n // Chrome warns you if you try to copy deprecated keyboardEvent.keyLocation\n // and webkitMovementX/Y\n if (key !== 'layerX' && key !== 'layerY' && key !== 'keyLocation' && key !== 'webkitMovementX' && key !== 'webkitMovementY') {\n // Chrome 32+ warns if you try to copy deprecated returnValue, but\n // we still want to if preventDefault isn't supported (IE8).\n if (!(key === 'returnValue' && old.preventDefault)) {\n event[key] = old[key];\n }\n }\n } // The event occurred on this element\n\n\n if (!event.target) {\n event.target = event.srcElement || document;\n } // Handle which other element the event is related to\n\n\n if (!event.relatedTarget) {\n event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement;\n } // Stop the default browser action\n\n\n event.preventDefault = function () {\n if (old.preventDefault) {\n old.preventDefault();\n }\n\n event.returnValue = false;\n old.returnValue = false;\n event.defaultPrevented = true;\n };\n\n event.defaultPrevented = false; // Stop the event from bubbling\n\n event.stopPropagation = function () {\n if (old.stopPropagation) {\n old.stopPropagation();\n }\n\n event.cancelBubble = true;\n old.cancelBubble = true;\n event.isPropagationStopped = returnTrue;\n };\n\n event.isPropagationStopped = returnFalse; // Stop the event from bubbling and executing other handlers\n\n event.stopImmediatePropagation = function () {\n if (old.stopImmediatePropagation) {\n old.stopImmediatePropagation();\n }\n\n event.isImmediatePropagationStopped = returnTrue;\n event.stopPropagation();\n };\n\n event.isImmediatePropagationStopped = returnFalse; // Handle mouse position\n\n if (event.clientX !== null && event.clientX !== undefined) {\n var doc = document.documentElement;\n var body = document.body;\n event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n } // Handle key presses\n\n\n event.which = event.charCode || event.keyCode; // Fix button for mouse clicks:\n // 0 == left; 1 == middle; 2 == right\n\n if (event.button !== null && event.button !== undefined) {\n // The following is disabled because it does not pass videojs-standard\n // and... yikes.\n\n /* eslint-disable */\n event.button = event.button & 1 ? 0 : event.button & 4 ? 1 : event.button & 2 ? 2 : 0;\n /* eslint-enable */\n }\n }\n\n event.fixed_ = true; // Returns fixed-up instance\n\n return event;\n}\n/**\n * Whether passive event listeners are supported\n */\n\n\nvar _supportsPassive;\n\nvar supportsPassive = function supportsPassive() {\n if (typeof _supportsPassive !== 'boolean') {\n _supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n _supportsPassive = true;\n }\n });\n window$1.addEventListener('test', null, opts);\n window$1.removeEventListener('test', null, opts);\n } catch (e) {// disregard\n }\n }\n\n return _supportsPassive;\n};\n/**\n * Touch events Chrome expects to be passive\n */\n\n\nvar passiveEvents = ['touchstart', 'touchmove'];\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem\n * Element or object to bind listeners to\n *\n * @param {string|string[]} type\n * Type of event to bind to.\n *\n * @param {EventTarget~EventListener} fn\n * Event listener.\n */\n\nfunction on(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(on, elem, type, fn);\n }\n\n if (!DomData.has(elem)) {\n DomData.set(elem, {});\n }\n\n var data = DomData.get(elem); // We need a place to store all our handler data\n\n if (!data.handlers) {\n data.handlers = {};\n }\n\n if (!data.handlers[type]) {\n data.handlers[type] = [];\n }\n\n if (!fn.guid) {\n fn.guid = newGUID();\n }\n\n data.handlers[type].push(fn);\n\n if (!data.dispatcher) {\n data.disabled = false;\n\n data.dispatcher = function (event, hash) {\n if (data.disabled) {\n return;\n }\n\n event = fixEvent(event);\n var handlers = data.handlers[event.type];\n\n if (handlers) {\n // Copy handlers so if handlers are added/removed during the process it doesn't throw everything off.\n var handlersCopy = handlers.slice(0);\n\n for (var m = 0, n = handlersCopy.length; m < n; m++) {\n if (event.isImmediatePropagationStopped()) {\n break;\n } else {\n try {\n handlersCopy[m].call(elem, event, hash);\n } catch (e) {\n log$1.error(e);\n }\n }\n }\n }\n };\n }\n\n if (data.handlers[type].length === 1) {\n if (elem.addEventListener) {\n var options = false;\n\n if (supportsPassive() && passiveEvents.indexOf(type) > -1) {\n options = {\n passive: true\n };\n }\n\n elem.addEventListener(type, data.dispatcher, options);\n } else if (elem.attachEvent) {\n elem.attachEvent('on' + type, data.dispatcher);\n }\n }\n}\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem\n * Object to remove listeners from.\n *\n * @param {string|string[]} [type]\n * Type of listener to remove. Don't include to remove all events from element.\n *\n * @param {EventTarget~EventListener} [fn]\n * Specific listener to remove. Don't include to remove listeners for an event\n * type.\n */\n\n\nfunction off(elem, type, fn) {\n // Don't want to add a cache object through getElData if not needed\n if (!DomData.has(elem)) {\n return;\n }\n\n var data = DomData.get(elem); // If no events exist, nothing to unbind\n\n if (!data.handlers) {\n return;\n }\n\n if (Array.isArray(type)) {\n return _handleMultipleEvents(off, elem, type, fn);\n } // Utility function\n\n\n var removeType = function removeType(el, t) {\n data.handlers[t] = [];\n\n _cleanUpEvents(el, t);\n }; // Are we removing all bound events?\n\n\n if (type === undefined) {\n for (var t in data.handlers) {\n if (Object.prototype.hasOwnProperty.call(data.handlers || {}, t)) {\n removeType(elem, t);\n }\n }\n\n return;\n }\n\n var handlers = data.handlers[type]; // If no handlers exist, nothing to unbind\n\n if (!handlers) {\n return;\n } // If no listener was provided, remove all listeners for type\n\n\n if (!fn) {\n removeType(elem, type);\n return;\n } // We're only removing a single handler\n\n\n if (fn.guid) {\n for (var n = 0; n < handlers.length; n++) {\n if (handlers[n].guid === fn.guid) {\n handlers.splice(n--, 1);\n }\n }\n }\n\n _cleanUpEvents(elem, type);\n}\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem\n * Element to trigger an event on\n *\n * @param {EventTarget~Event|string} event\n * A string (the type) or an event object with a type attribute\n *\n * @param {Object} [hash]\n * data hash to pass along with the event\n *\n * @return {boolean|undefined}\n * Returns the opposite of `defaultPrevented` if default was\n * prevented. Otherwise, returns `undefined`\n */\n\n\nfunction trigger(elem, event, hash) {\n // Fetches element data and a reference to the parent (for bubbling).\n // Don't want to add a data object to cache for every parent,\n // so checking hasElData first.\n var elemData = DomData.has(elem) ? DomData.get(elem) : {};\n var parent = elem.parentNode || elem.ownerDocument; // type = event.type || event,\n // handler;\n // If an event name was passed as a string, creates an event out of it\n\n if (typeof event === 'string') {\n event = {\n type: event,\n target: elem\n };\n } else if (!event.target) {\n event.target = elem;\n } // Normalizes the event properties.\n\n\n event = fixEvent(event); // If the passed element has a dispatcher, executes the established handlers.\n\n if (elemData.dispatcher) {\n elemData.dispatcher.call(elem, event, hash);\n } // Unless explicitly stopped or the event does not bubble (e.g. media events)\n // recursively calls this function to bubble the event up the DOM.\n\n\n if (parent && !event.isPropagationStopped() && event.bubbles === true) {\n trigger.call(null, parent, event, hash); // If at the top of the DOM, triggers the default action unless disabled.\n } else if (!parent && !event.defaultPrevented && event.target && event.target[event.type]) {\n if (!DomData.has(event.target)) {\n DomData.set(event.target, {});\n }\n\n var targetData = DomData.get(event.target); // Checks if the target has a default action for this event.\n\n if (event.target[event.type]) {\n // Temporarily disables event dispatching on the target as we have already executed the handler.\n targetData.disabled = true; // Executes the default action.\n\n if (typeof event.target[event.type] === 'function') {\n event.target[event.type]();\n } // Re-enables event dispatching.\n\n\n targetData.disabled = false;\n }\n } // Inform the triggerer if the default was prevented by returning false\n\n\n return !event.defaultPrevented;\n}\n/**\n * Trigger a listener only once for an event.\n *\n * @param {Element|Object} elem\n * Element or object to bind to.\n *\n * @param {string|string[]} type\n * Name/type of event\n *\n * @param {Event~EventListener} fn\n * Event listener function\n */\n\n\nfunction one(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(one, elem, type, fn);\n }\n\n var func = function func() {\n off(elem, type, func);\n fn.apply(this, arguments);\n }; // copy the guid to the new function so it can removed using the original function's ID\n\n\n func.guid = fn.guid = fn.guid || newGUID();\n on(elem, type, func);\n}\n/**\n * Trigger a listener only once and then turn if off for all\n * configured events\n *\n * @param {Element|Object} elem\n * Element or object to bind to.\n *\n * @param {string|string[]} type\n * Name/type of event\n *\n * @param {Event~EventListener} fn\n * Event listener function\n */\n\n\nfunction any(elem, type, fn) {\n var func = function func() {\n off(elem, type, func);\n fn.apply(this, arguments);\n }; // copy the guid to the new function so it can removed using the original function's ID\n\n\n func.guid = fn.guid = fn.guid || newGUID(); // multiple ons, but one off for everything\n\n on(elem, type, func);\n}\n\nvar Events = /*#__PURE__*/Object.freeze({\n __proto__: null,\n fixEvent: fixEvent,\n on: on,\n off: off,\n trigger: trigger,\n one: one,\n any: any\n});\n/**\n * @file fn.js\n * @module fn\n */\n\nvar UPDATE_REFRESH_INTERVAL = 30;\n/**\n * Bind (a.k.a proxy or context). A simple method for changing the context of\n * a function.\n *\n * It also stores a unique id on the function so it can be easily removed from\n * events.\n *\n * @function\n * @param {Mixed} context\n * The object to bind as scope.\n *\n * @param {Function} fn\n * The function to be bound to a scope.\n *\n * @param {number} [uid]\n * An optional unique ID for the function to be set\n *\n * @return {Function}\n * The new function that will be bound into the context given\n */\n\nvar bind = function bind(context, fn, uid) {\n // Make sure the function has a unique ID\n if (!fn.guid) {\n fn.guid = newGUID();\n } // Create the new function that changes the context\n\n\n var bound = fn.bind(context); // Allow for the ability to individualize this function\n // Needed in the case where multiple objects might share the same prototype\n // IF both items add an event listener with the same function, then you try to remove just one\n // it will remove both because they both have the same guid.\n // when using this, you need to use the bind method when you remove the listener as well.\n // currently used in text tracks\n\n bound.guid = uid ? uid + '_' + fn.guid : fn.guid;\n return bound;\n};\n/**\n * Wraps the given function, `fn`, with a new function that only invokes `fn`\n * at most once per every `wait` milliseconds.\n *\n * @function\n * @param {Function} fn\n * The function to be throttled.\n *\n * @param {number} wait\n * The number of milliseconds by which to throttle.\n *\n * @return {Function}\n */\n\n\nvar throttle = function throttle(fn, wait) {\n var last = window$1.performance.now();\n\n var throttled = function throttled() {\n var now = window$1.performance.now();\n\n if (now - last >= wait) {\n fn.apply(void 0, arguments);\n last = now;\n }\n };\n\n return throttled;\n};\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked.\n *\n * Inspired by lodash and underscore implementations.\n *\n * @function\n * @param {Function} func\n * The function to wrap with debounce behavior.\n *\n * @param {number} wait\n * The number of milliseconds to wait after the last invocation.\n *\n * @param {boolean} [immediate]\n * Whether or not to invoke the function immediately upon creation.\n *\n * @param {Object} [context=window]\n * The \"context\" in which the debounced function should debounce. For\n * example, if this function should be tied to a Video.js player,\n * the player can be passed here. Alternatively, defaults to the\n * global `window` object.\n *\n * @return {Function}\n * A debounced function.\n */\n\n\nvar debounce = function debounce(func, wait, immediate, context) {\n if (context === void 0) {\n context = window$1;\n }\n\n var timeout;\n\n var cancel = function cancel() {\n context.clearTimeout(timeout);\n timeout = null;\n };\n /* eslint-disable consistent-this */\n\n\n var debounced = function debounced() {\n var self = this;\n var args = arguments;\n\n var _later = function later() {\n timeout = null;\n _later = null;\n\n if (!immediate) {\n func.apply(self, args);\n }\n };\n\n if (!timeout && immediate) {\n func.apply(self, args);\n }\n\n context.clearTimeout(timeout);\n timeout = context.setTimeout(_later, wait);\n };\n /* eslint-enable consistent-this */\n\n\n debounced.cancel = cancel;\n return debounced;\n};\n/**\n * @file src/js/event-target.js\n */\n\n/**\n * `EventTarget` is a class that can have the same API as the DOM `EventTarget`. It\n * adds shorthand functions that wrap around lengthy functions. For example:\n * the `on` function is a wrapper around `addEventListener`.\n *\n * @see [EventTarget Spec]{@link https://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-EventTarget}\n * @class EventTarget\n */\n\n\nvar EventTarget$2 = function EventTarget() {};\n/**\n * A Custom DOM event.\n *\n * @typedef {Object} EventTarget~Event\n * @see [Properties]{@link https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent}\n */\n\n/**\n * All event listeners should follow the following format.\n *\n * @callback EventTarget~EventListener\n * @this {EventTarget}\n *\n * @param {EventTarget~Event} event\n * the event that triggered this function\n *\n * @param {Object} [hash]\n * hash of data sent during the event\n */\n\n/**\n * An object containing event names as keys and booleans as values.\n *\n * > NOTE: If an event name is set to a true value here {@link EventTarget#trigger}\n * will have extra functionality. See that function for more information.\n *\n * @property EventTarget.prototype.allowedEvents_\n * @private\n */\n\n\nEventTarget$2.prototype.allowedEvents_ = {};\n/**\n * Adds an `event listener` to an instance of an `EventTarget`. An `event listener` is a\n * function that will get called when an event with a certain name gets triggered.\n *\n * @param {string|string[]} type\n * An event name or an array of event names.\n *\n * @param {EventTarget~EventListener} fn\n * The function to call with `EventTarget`s\n */\n\nEventTarget$2.prototype.on = function (type, fn) {\n // Remove the addEventListener alias before calling Events.on\n // so we don't get into an infinite type loop\n var ael = this.addEventListener;\n\n this.addEventListener = function () {};\n\n on(this, type, fn);\n this.addEventListener = ael;\n};\n/**\n * An alias of {@link EventTarget#on}. Allows `EventTarget` to mimic\n * the standard DOM API.\n *\n * @function\n * @see {@link EventTarget#on}\n */\n\n\nEventTarget$2.prototype.addEventListener = EventTarget$2.prototype.on;\n/**\n * Removes an `event listener` for a specific event from an instance of `EventTarget`.\n * This makes it so that the `event listener` will no longer get called when the\n * named event happens.\n *\n * @param {string|string[]} type\n * An event name or an array of event names.\n *\n * @param {EventTarget~EventListener} fn\n * The function to remove.\n */\n\nEventTarget$2.prototype.off = function (type, fn) {\n off(this, type, fn);\n};\n/**\n * An alias of {@link EventTarget#off}. Allows `EventTarget` to mimic\n * the standard DOM API.\n *\n * @function\n * @see {@link EventTarget#off}\n */\n\n\nEventTarget$2.prototype.removeEventListener = EventTarget$2.prototype.off;\n/**\n * This function will add an `event listener` that gets triggered only once. After the\n * first trigger it will get removed. This is like adding an `event listener`\n * with {@link EventTarget#on} that calls {@link EventTarget#off} on itself.\n *\n * @param {string|string[]} type\n * An event name or an array of event names.\n *\n * @param {EventTarget~EventListener} fn\n * The function to be called once for each event name.\n */\n\nEventTarget$2.prototype.one = function (type, fn) {\n // Remove the addEventListener aliasing Events.on\n // so we don't get into an infinite type loop\n var ael = this.addEventListener;\n\n this.addEventListener = function () {};\n\n one(this, type, fn);\n this.addEventListener = ael;\n};\n\nEventTarget$2.prototype.any = function (type, fn) {\n // Remove the addEventListener aliasing Events.on\n // so we don't get into an infinite type loop\n var ael = this.addEventListener;\n\n this.addEventListener = function () {};\n\n any(this, type, fn);\n this.addEventListener = ael;\n};\n/**\n * This function causes an event to happen. This will then cause any `event listeners`\n * that are waiting for that event, to get called. If there are no `event listeners`\n * for an event then nothing will happen.\n *\n * If the name of the `Event` that is being triggered is in `EventTarget.allowedEvents_`.\n * Trigger will also call the `on` + `uppercaseEventName` function.\n *\n * Example:\n * 'click' is in `EventTarget.allowedEvents_`, so, trigger will attempt to call\n * `onClick` if it exists.\n *\n * @param {string|EventTarget~Event|Object} event\n * The name of the event, an `Event`, or an object with a key of type set to\n * an event name.\n */\n\n\nEventTarget$2.prototype.trigger = function (event) {\n var type = event.type || event; // deprecation\n // In a future version we should default target to `this`\n // similar to how we default the target to `elem` in\n // `Events.trigger`. Right now the default `target` will be\n // `document` due to the `Event.fixEvent` call.\n\n if (typeof event === 'string') {\n event = {\n type: type\n };\n }\n\n event = fixEvent(event);\n\n if (this.allowedEvents_[type] && this['on' + type]) {\n this['on' + type](event);\n }\n\n trigger(this, event);\n};\n/**\n * An alias of {@link EventTarget#trigger}. Allows `EventTarget` to mimic\n * the standard DOM API.\n *\n * @function\n * @see {@link EventTarget#trigger}\n */\n\n\nEventTarget$2.prototype.dispatchEvent = EventTarget$2.prototype.trigger;\nvar EVENT_MAP;\n\nEventTarget$2.prototype.queueTrigger = function (event) {\n var _this = this; // only set up EVENT_MAP if it'll be used\n\n\n if (!EVENT_MAP) {\n EVENT_MAP = new Map();\n }\n\n var type = event.type || event;\n var map = EVENT_MAP.get(this);\n\n if (!map) {\n map = new Map();\n EVENT_MAP.set(this, map);\n }\n\n var oldTimeout = map.get(type);\n map[\"delete\"](type);\n window$1.clearTimeout(oldTimeout);\n var timeout = window$1.setTimeout(function () {\n // if we cleared out all timeouts for the current target, delete its map\n if (map.size === 0) {\n map = null;\n EVENT_MAP[\"delete\"](_this);\n }\n\n _this.trigger(event);\n }, 0);\n map.set(type, timeout);\n};\n/**\n * @file mixins/evented.js\n * @module evented\n */\n\n\nvar objName = function objName(obj) {\n if (typeof obj.name === 'function') {\n return obj.name();\n }\n\n if (typeof obj.name === 'string') {\n return obj.name;\n }\n\n if (obj.name_) {\n return obj.name_;\n }\n\n if (obj.constructor && obj.constructor.name) {\n return obj.constructor.name;\n }\n\n return typeof obj;\n};\n/**\n * Returns whether or not an object has had the evented mixin applied.\n *\n * @param {Object} object\n * An object to test.\n *\n * @return {boolean}\n * Whether or not the object appears to be evented.\n */\n\n\nvar isEvented = function isEvented(object) {\n return object instanceof EventTarget$2 || !!object.eventBusEl_ && ['on', 'one', 'off', 'trigger'].every(function (k) {\n return typeof object[k] === 'function';\n });\n};\n/**\n * Adds a callback to run after the evented mixin applied.\n *\n * @param {Object} object\n * An object to Add\n * @param {Function} callback\n * The callback to run.\n */\n\n\nvar addEventedCallback = function addEventedCallback(target, callback) {\n if (isEvented(target)) {\n callback();\n } else {\n if (!target.eventedCallbacks) {\n target.eventedCallbacks = [];\n }\n\n target.eventedCallbacks.push(callback);\n }\n};\n/**\n * Whether a value is a valid event type - non-empty string or array.\n *\n * @private\n * @param {string|Array} type\n * The type value to test.\n *\n * @return {boolean}\n * Whether or not the type is a valid event type.\n */\n\n\nvar isValidEventType = function isValidEventType(type) {\n return (// The regex here verifies that the `type` contains at least one non-\n // whitespace character.\n typeof type === 'string' && /\\S/.test(type) || Array.isArray(type) && !!type.length\n );\n};\n/**\n * Validates a value to determine if it is a valid event target. Throws if not.\n *\n * @private\n * @throws {Error}\n * If the target does not appear to be a valid event target.\n *\n * @param {Object} target\n * The object to test.\n *\n * @param {Object} obj\n * The evented object we are validating for\n *\n * @param {string} fnName\n * The name of the evented mixin function that called this.\n */\n\n\nvar validateTarget = function validateTarget(target, obj, fnName) {\n if (!target || !target.nodeName && !isEvented(target)) {\n throw new Error(\"Invalid target for \" + objName(obj) + \"#\" + fnName + \"; must be a DOM node or evented object.\");\n }\n};\n/**\n * Validates a value to determine if it is a valid event target. Throws if not.\n *\n * @private\n * @throws {Error}\n * If the type does not appear to be a valid event type.\n *\n * @param {string|Array} type\n * The type to test.\n *\n * @param {Object} obj\n* The evented object we are validating for\n *\n * @param {string} fnName\n * The name of the evented mixin function that called this.\n */\n\n\nvar validateEventType = function validateEventType(type, obj, fnName) {\n if (!isValidEventType(type)) {\n throw new Error(\"Invalid event type for \" + objName(obj) + \"#\" + fnName + \"; must be a non-empty string or array.\");\n }\n};\n/**\n * Validates a value to determine if it is a valid listener. Throws if not.\n *\n * @private\n * @throws {Error}\n * If the listener is not a function.\n *\n * @param {Function} listener\n * The listener to test.\n *\n * @param {Object} obj\n * The evented object we are validating for\n *\n * @param {string} fnName\n * The name of the evented mixin function that called this.\n */\n\n\nvar validateListener = function validateListener(listener, obj, fnName) {\n if (typeof listener !== 'function') {\n throw new Error(\"Invalid listener for \" + objName(obj) + \"#\" + fnName + \"; must be a function.\");\n }\n};\n/**\n * Takes an array of arguments given to `on()` or `one()`, validates them, and\n * normalizes them into an object.\n *\n * @private\n * @param {Object} self\n * The evented object on which `on()` or `one()` was called. This\n * object will be bound as the `this` value for the listener.\n *\n * @param {Array} args\n * An array of arguments passed to `on()` or `one()`.\n *\n * @param {string} fnName\n * The name of the evented mixin function that called this.\n *\n * @return {Object}\n * An object containing useful values for `on()` or `one()` calls.\n */\n\n\nvar normalizeListenArgs = function normalizeListenArgs(self, args, fnName) {\n // If the number of arguments is less than 3, the target is always the\n // evented object itself.\n var isTargetingSelf = args.length < 3 || args[0] === self || args[0] === self.eventBusEl_;\n var target;\n var type;\n var listener;\n\n if (isTargetingSelf) {\n target = self.eventBusEl_; // Deal with cases where we got 3 arguments, but we are still listening to\n // the evented object itself.\n\n if (args.length >= 3) {\n args.shift();\n }\n\n type = args[0];\n listener = args[1];\n } else {\n target = args[0];\n type = args[1];\n listener = args[2];\n }\n\n validateTarget(target, self, fnName);\n validateEventType(type, self, fnName);\n validateListener(listener, self, fnName);\n listener = bind(self, listener);\n return {\n isTargetingSelf: isTargetingSelf,\n target: target,\n type: type,\n listener: listener\n };\n};\n/**\n * Adds the listener to the event type(s) on the target, normalizing for\n * the type of target.\n *\n * @private\n * @param {Element|Object} target\n * A DOM node or evented object.\n *\n * @param {string} method\n * The event binding method to use (\"on\" or \"one\").\n *\n * @param {string|Array} type\n * One or more event type(s).\n *\n * @param {Function} listener\n * A listener function.\n */\n\n\nvar listen = function listen(target, method, type, listener) {\n validateTarget(target, target, method);\n\n if (target.nodeName) {\n Events[method](target, type, listener);\n } else {\n target[method](type, listener);\n }\n};\n/**\n * Contains methods that provide event capabilities to an object which is passed\n * to {@link module:evented|evented}.\n *\n * @mixin EventedMixin\n */\n\n\nvar EventedMixin = {\n /**\n * Add a listener to an event (or events) on this object or another evented\n * object.\n *\n * @param {string|Array|Element|Object} targetOrType\n * If this is a string or array, it represents the event type(s)\n * that will trigger the listener.\n *\n * Another evented object can be passed here instead, which will\n * cause the listener to listen for events on _that_ object.\n *\n * In either case, the listener's `this` value will be bound to\n * this object.\n *\n * @param {string|Array|Function} typeOrListener\n * If the first argument was a string or array, this should be the\n * listener function. Otherwise, this is a string or array of event\n * type(s).\n *\n * @param {Function} [listener]\n * If the first argument was another evented object, this will be\n * the listener function.\n */\n on: function on() {\n var _this = this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var _normalizeListenArgs = normalizeListenArgs(this, args, 'on'),\n isTargetingSelf = _normalizeListenArgs.isTargetingSelf,\n target = _normalizeListenArgs.target,\n type = _normalizeListenArgs.type,\n listener = _normalizeListenArgs.listener;\n\n listen(target, 'on', type, listener); // If this object is listening to another evented object.\n\n if (!isTargetingSelf) {\n // If this object is disposed, remove the listener.\n var removeListenerOnDispose = function removeListenerOnDispose() {\n return _this.off(target, type, listener);\n }; // Use the same function ID as the listener so we can remove it later it\n // using the ID of the original listener.\n\n\n removeListenerOnDispose.guid = listener.guid; // Add a listener to the target's dispose event as well. This ensures\n // that if the target is disposed BEFORE this object, we remove the\n // removal listener that was just added. Otherwise, we create a memory leak.\n\n var removeRemoverOnTargetDispose = function removeRemoverOnTargetDispose() {\n return _this.off('dispose', removeListenerOnDispose);\n }; // Use the same function ID as the listener so we can remove it later\n // it using the ID of the original listener.\n\n\n removeRemoverOnTargetDispose.guid = listener.guid;\n listen(this, 'on', 'dispose', removeListenerOnDispose);\n listen(target, 'on', 'dispose', removeRemoverOnTargetDispose);\n }\n },\n\n /**\n * Add a listener to an event (or events) on this object or another evented\n * object. The listener will be called once per event and then removed.\n *\n * @param {string|Array|Element|Object} targetOrType\n * If this is a string or array, it represents the event type(s)\n * that will trigger the listener.\n *\n * Another evented object can be passed here instead, which will\n * cause the listener to listen for events on _that_ object.\n *\n * In either case, the listener's `this` value will be bound to\n * this object.\n *\n * @param {string|Array|Function} typeOrListener\n * If the first argument was a string or array, this should be the\n * listener function. Otherwise, this is a string or array of event\n * type(s).\n *\n * @param {Function} [listener]\n * If the first argument was another evented object, this will be\n * the listener function.\n */\n one: function one() {\n var _this2 = this;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var _normalizeListenArgs2 = normalizeListenArgs(this, args, 'one'),\n isTargetingSelf = _normalizeListenArgs2.isTargetingSelf,\n target = _normalizeListenArgs2.target,\n type = _normalizeListenArgs2.type,\n listener = _normalizeListenArgs2.listener; // Targeting this evented object.\n\n\n if (isTargetingSelf) {\n listen(target, 'one', type, listener); // Targeting another evented object.\n } else {\n // TODO: This wrapper is incorrect! It should only\n // remove the wrapper for the event type that called it.\n // Instead all listners are removed on the first trigger!\n // see https://github.com/videojs/video.js/issues/5962\n var wrapper = function wrapper() {\n _this2.off(target, type, wrapper);\n\n for (var _len3 = arguments.length, largs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n largs[_key3] = arguments[_key3];\n }\n\n listener.apply(null, largs);\n }; // Use the same function ID as the listener so we can remove it later\n // it using the ID of the original listener.\n\n\n wrapper.guid = listener.guid;\n listen(target, 'one', type, wrapper);\n }\n },\n\n /**\n * Add a listener to an event (or events) on this object or another evented\n * object. The listener will only be called once for the first event that is triggered\n * then removed.\n *\n * @param {string|Array|Element|Object} targetOrType\n * If this is a string or array, it represents the event type(s)\n * that will trigger the listener.\n *\n * Another evented object can be passed here instead, which will\n * cause the listener to listen for events on _that_ object.\n *\n * In either case, the listener's `this` value will be bound to\n * this object.\n *\n * @param {string|Array|Function} typeOrListener\n * If the first argument was a string or array, this should be the\n * listener function. Otherwise, this is a string or array of event\n * type(s).\n *\n * @param {Function} [listener]\n * If the first argument was another evented object, this will be\n * the listener function.\n */\n any: function any() {\n var _this3 = this;\n\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n var _normalizeListenArgs3 = normalizeListenArgs(this, args, 'any'),\n isTargetingSelf = _normalizeListenArgs3.isTargetingSelf,\n target = _normalizeListenArgs3.target,\n type = _normalizeListenArgs3.type,\n listener = _normalizeListenArgs3.listener; // Targeting this evented object.\n\n\n if (isTargetingSelf) {\n listen(target, 'any', type, listener); // Targeting another evented object.\n } else {\n var wrapper = function wrapper() {\n _this3.off(target, type, wrapper);\n\n for (var _len5 = arguments.length, largs = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n largs[_key5] = arguments[_key5];\n }\n\n listener.apply(null, largs);\n }; // Use the same function ID as the listener so we can remove it later\n // it using the ID of the original listener.\n\n\n wrapper.guid = listener.guid;\n listen(target, 'any', type, wrapper);\n }\n },\n\n /**\n * Removes listener(s) from event(s) on an evented object.\n *\n * @param {string|Array|Element|Object} [targetOrType]\n * If this is a string or array, it represents the event type(s).\n *\n * Another evented object can be passed here instead, in which case\n * ALL 3 arguments are _required_.\n *\n * @param {string|Array|Function} [typeOrListener]\n * If the first argument was a string or array, this may be the\n * listener function. Otherwise, this is a string or array of event\n * type(s).\n *\n * @param {Function} [listener]\n * If the first argument was another evented object, this will be\n * the listener function; otherwise, _all_ listeners bound to the\n * event type(s) will be removed.\n */\n off: function off$1(targetOrType, typeOrListener, listener) {\n // Targeting this evented object.\n if (!targetOrType || isValidEventType(targetOrType)) {\n off(this.eventBusEl_, targetOrType, typeOrListener); // Targeting another evented object.\n } else {\n var target = targetOrType;\n var type = typeOrListener; // Fail fast and in a meaningful way!\n\n validateTarget(target, this, 'off');\n validateEventType(type, this, 'off');\n validateListener(listener, this, 'off'); // Ensure there's at least a guid, even if the function hasn't been used\n\n listener = bind(this, listener); // Remove the dispose listener on this evented object, which was given\n // the same guid as the event listener in on().\n\n this.off('dispose', listener);\n\n if (target.nodeName) {\n off(target, type, listener);\n off(target, 'dispose', listener);\n } else if (isEvented(target)) {\n target.off(type, listener);\n target.off('dispose', listener);\n }\n }\n },\n\n /**\n * Fire an event on this evented object, causing its listeners to be called.\n *\n * @param {string|Object} event\n * An event type or an object with a type property.\n *\n * @param {Object} [hash]\n * An additional object to pass along to listeners.\n *\n * @return {boolean}\n * Whether or not the default behavior was prevented.\n */\n trigger: function trigger$1(event, hash) {\n validateTarget(this.eventBusEl_, this, 'trigger');\n var type = event && typeof event !== 'string' ? event.type : event;\n\n if (!isValidEventType(type)) {\n var error = \"Invalid event type for \" + objName(this) + \"#trigger; \" + 'must be a non-empty string or object with a type key that has a non-empty value.';\n\n if (event) {\n (this.log || log$1).error(error);\n } else {\n throw new Error(error);\n }\n }\n\n return trigger(this.eventBusEl_, event, hash);\n }\n};\n/**\n * Applies {@link module:evented~EventedMixin|EventedMixin} to a target object.\n *\n * @param {Object} target\n * The object to which to add event methods.\n *\n * @param {Object} [options={}]\n * Options for customizing the mixin behavior.\n *\n * @param {string} [options.eventBusKey]\n * By default, adds a `eventBusEl_` DOM element to the target object,\n * which is used as an event bus. If the target object already has a\n * DOM element that should be used, pass its key here.\n *\n * @return {Object}\n * The target object.\n */\n\nfunction evented(target, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n eventBusKey = _options.eventBusKey; // Set or create the eventBusEl_.\n\n if (eventBusKey) {\n if (!target[eventBusKey].nodeName) {\n throw new Error(\"The eventBusKey \\\"\" + eventBusKey + \"\\\" does not refer to an element.\");\n }\n\n target.eventBusEl_ = target[eventBusKey];\n } else {\n target.eventBusEl_ = createEl('span', {\n className: 'vjs-event-bus'\n });\n }\n\n assign(target, EventedMixin);\n\n if (target.eventedCallbacks) {\n target.eventedCallbacks.forEach(function (callback) {\n callback();\n });\n } // When any evented object is disposed, it removes all its listeners.\n\n\n target.on('dispose', function () {\n target.off();\n [target, target.el_, target.eventBusEl_].forEach(function (val) {\n if (val && DomData.has(val)) {\n DomData[\"delete\"](val);\n }\n });\n window$1.setTimeout(function () {\n target.eventBusEl_ = null;\n }, 0);\n });\n return target;\n}\n/**\n * @file mixins/stateful.js\n * @module stateful\n */\n\n/**\n * Contains methods that provide statefulness to an object which is passed\n * to {@link module:stateful}.\n *\n * @mixin StatefulMixin\n */\n\n\nvar StatefulMixin = {\n /**\n * A hash containing arbitrary keys and values representing the state of\n * the object.\n *\n * @type {Object}\n */\n state: {},\n\n /**\n * Set the state of an object by mutating its\n * {@link module:stateful~StatefulMixin.state|state} object in place.\n *\n * @fires module:stateful~StatefulMixin#statechanged\n * @param {Object|Function} stateUpdates\n * A new set of properties to shallow-merge into the plugin state.\n * Can be a plain object or a function returning a plain object.\n *\n * @return {Object|undefined}\n * An object containing changes that occurred. If no changes\n * occurred, returns `undefined`.\n */\n setState: function setState(stateUpdates) {\n var _this = this; // Support providing the `stateUpdates` state as a function.\n\n\n if (typeof stateUpdates === 'function') {\n stateUpdates = stateUpdates();\n }\n\n var changes;\n each(stateUpdates, function (value, key) {\n // Record the change if the value is different from what's in the\n // current state.\n if (_this.state[key] !== value) {\n changes = changes || {};\n changes[key] = {\n from: _this.state[key],\n to: value\n };\n }\n\n _this.state[key] = value;\n }); // Only trigger \"statechange\" if there were changes AND we have a trigger\n // function. This allows us to not require that the target object be an\n // evented object.\n\n if (changes && isEvented(this)) {\n /**\n * An event triggered on an object that is both\n * {@link module:stateful|stateful} and {@link module:evented|evented}\n * indicating that its state has changed.\n *\n * @event module:stateful~StatefulMixin#statechanged\n * @type {Object}\n * @property {Object} changes\n * A hash containing the properties that were changed and\n * the values they were changed `from` and `to`.\n */\n this.trigger({\n changes: changes,\n type: 'statechanged'\n });\n }\n\n return changes;\n }\n};\n/**\n * Applies {@link module:stateful~StatefulMixin|StatefulMixin} to a target\n * object.\n *\n * If the target object is {@link module:evented|evented} and has a\n * `handleStateChanged` method, that method will be automatically bound to the\n * `statechanged` event on itself.\n *\n * @param {Object} target\n * The object to be made stateful.\n *\n * @param {Object} [defaultState]\n * A default set of properties to populate the newly-stateful object's\n * `state` property.\n *\n * @return {Object}\n * Returns the `target`.\n */\n\nfunction stateful(target, defaultState) {\n assign(target, StatefulMixin); // This happens after the mixing-in because we need to replace the `state`\n // added in that step.\n\n target.state = assign({}, target.state, defaultState); // Auto-bind the `handleStateChanged` method of the target object if it exists.\n\n if (typeof target.handleStateChanged === 'function' && isEvented(target)) {\n target.on('statechanged', target.handleStateChanged);\n }\n\n return target;\n}\n/**\n * @file string-cases.js\n * @module to-lower-case\n */\n\n/**\n * Lowercase the first letter of a string.\n *\n * @param {string} string\n * String to be lowercased\n *\n * @return {string}\n * The string with a lowercased first letter\n */\n\n\nvar toLowerCase = function toLowerCase(string) {\n if (typeof string !== 'string') {\n return string;\n }\n\n return string.replace(/./, function (w) {\n return w.toLowerCase();\n });\n};\n/**\n * Uppercase the first letter of a string.\n *\n * @param {string} string\n * String to be uppercased\n *\n * @return {string}\n * The string with an uppercased first letter\n */\n\n\nvar toTitleCase$1 = function toTitleCase(string) {\n if (typeof string !== 'string') {\n return string;\n }\n\n return string.replace(/./, function (w) {\n return w.toUpperCase();\n });\n};\n/**\n * Compares the TitleCase versions of the two strings for equality.\n *\n * @param {string} str1\n * The first string to compare\n *\n * @param {string} str2\n * The second string to compare\n *\n * @return {boolean}\n * Whether the TitleCase versions of the strings are equal\n */\n\n\nvar titleCaseEquals = function titleCaseEquals(str1, str2) {\n return toTitleCase$1(str1) === toTitleCase$1(str2);\n};\n/**\n * @file merge-options.js\n * @module merge-options\n */\n\n/**\n * Merge two objects recursively.\n *\n * Performs a deep merge like\n * {@link https://lodash.com/docs/4.17.10#merge|lodash.merge}, but only merges\n * plain objects (not arrays, elements, or anything else).\n *\n * Non-plain object values will be copied directly from the right-most\n * argument.\n *\n * @static\n * @param {Object[]} sources\n * One or more objects to merge into a new object.\n *\n * @return {Object}\n * A new object that is the merged result of all sources.\n */\n\n\nfunction mergeOptions$3() {\n var result = {};\n\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n sources.forEach(function (source) {\n if (!source) {\n return;\n }\n\n each(source, function (value, key) {\n if (!isPlain(value)) {\n result[key] = value;\n return;\n }\n\n if (!isPlain(result[key])) {\n result[key] = {};\n }\n\n result[key] = mergeOptions$3(result[key], value);\n });\n });\n return result;\n}\n\nvar MapSham = /*#__PURE__*/function () {\n function MapSham() {\n this.map_ = {};\n }\n\n var _proto = MapSham.prototype;\n\n _proto.has = function has(key) {\n return key in this.map_;\n };\n\n _proto[\"delete\"] = function _delete(key) {\n var has = this.has(key);\n delete this.map_[key];\n return has;\n };\n\n _proto.set = function set(key, value) {\n this.map_[key] = value;\n return this;\n };\n\n _proto.forEach = function forEach(callback, thisArg) {\n for (var key in this.map_) {\n callback.call(thisArg, this.map_[key], key, this);\n }\n };\n\n return MapSham;\n}();\n\nvar Map$1 = window$1.Map ? window$1.Map : MapSham;\n\nvar SetSham = /*#__PURE__*/function () {\n function SetSham() {\n this.set_ = {};\n }\n\n var _proto = SetSham.prototype;\n\n _proto.has = function has(key) {\n return key in this.set_;\n };\n\n _proto[\"delete\"] = function _delete(key) {\n var has = this.has(key);\n delete this.set_[key];\n return has;\n };\n\n _proto.add = function add(key) {\n this.set_[key] = 1;\n return this;\n };\n\n _proto.forEach = function forEach(callback, thisArg) {\n for (var key in this.set_) {\n callback.call(thisArg, key, key, this);\n }\n };\n\n return SetSham;\n}();\n\nvar Set = window$1.Set ? window$1.Set : SetSham;\n/**\n * Player Component - Base class for all UI objects\n *\n * @file component.js\n */\n\n/**\n * Base class for all UI Components.\n * Components are UI objects which represent both a javascript object and an element\n * in the DOM. They can be children of other components, and can have\n * children themselves.\n *\n * Components can also use methods from {@link EventTarget}\n */\n\nvar Component$1 = /*#__PURE__*/function () {\n /**\n * A callback that is called when a component is ready. Does not have any\n * paramters and any callback value will be ignored.\n *\n * @callback Component~ReadyCallback\n * @this Component\n */\n\n /**\n * Creates an instance of this class.\n *\n * @param {Player} player\n * The `Player` that this class should be attached to.\n *\n * @param {Object} [options]\n * The key/value store of player options.\n *\n * @param {Object[]} [options.children]\n * An array of children objects to intialize this component with. Children objects have\n * a name property that will be used if more than one component of the same type needs to be\n * added.\n *\n * @param {Component~ReadyCallback} [ready]\n * Function that gets called when the `Component` is ready.\n */\n function Component(player, options, ready) {\n // The component might be the player itself and we can't pass `this` to super\n if (!player && this.play) {\n this.player_ = player = this; // eslint-disable-line\n } else {\n this.player_ = player;\n }\n\n this.isDisposed_ = false; // Hold the reference to the parent component via `addChild` method\n\n this.parentComponent_ = null; // Make a copy of prototype.options_ to protect against overriding defaults\n\n this.options_ = mergeOptions$3({}, this.options_); // Updated options with supplied options\n\n options = this.options_ = mergeOptions$3(this.options_, options); // Get ID from options or options element if one is supplied\n\n this.id_ = options.id || options.el && options.el.id; // If there was no ID from the options, generate one\n\n if (!this.id_) {\n // Don't require the player ID function in the case of mock players\n var id = player && player.id && player.id() || 'no_player';\n this.id_ = id + \"_component_\" + newGUID();\n }\n\n this.name_ = options.name || null; // Create element if one wasn't provided in options\n\n if (options.el) {\n this.el_ = options.el;\n } else if (options.createEl !== false) {\n this.el_ = this.createEl();\n } // if evented is anything except false, we want to mixin in evented\n\n\n if (options.evented !== false) {\n // Make this an evented object and use `el_`, if available, as its event bus\n evented(this, {\n eventBusKey: this.el_ ? 'el_' : null\n });\n this.handleLanguagechange = this.handleLanguagechange.bind(this);\n this.on(this.player_, 'languagechange', this.handleLanguagechange);\n }\n\n stateful(this, this.constructor.defaultState);\n this.children_ = [];\n this.childIndex_ = {};\n this.childNameIndex_ = {};\n this.setTimeoutIds_ = new Set();\n this.setIntervalIds_ = new Set();\n this.rafIds_ = new Set();\n this.namedRafs_ = new Map$1();\n this.clearingTimersOnDispose_ = false; // Add any child components in options\n\n if (options.initChildren !== false) {\n this.initChildren();\n } // Don't want to trigger ready here or it will go before init is actually\n // finished for all children that run this constructor\n\n\n this.ready(ready);\n\n if (options.reportTouchActivity !== false) {\n this.enableTouchActivity();\n }\n }\n /**\n * Dispose of the `Component` and all child components.\n *\n * @fires Component#dispose\n */\n\n\n var _proto = Component.prototype;\n\n _proto.dispose = function dispose() {\n // Bail out if the component has already been disposed.\n if (this.isDisposed_) {\n return;\n }\n\n if (this.readyQueue_) {\n this.readyQueue_.length = 0;\n }\n /**\n * Triggered when a `Component` is disposed.\n *\n * @event Component#dispose\n * @type {EventTarget~Event}\n *\n * @property {boolean} [bubbles=false]\n * set to false so that the dispose event does not\n * bubble up\n */\n\n\n this.trigger({\n type: 'dispose',\n bubbles: false\n });\n this.isDisposed_ = true; // Dispose all children.\n\n if (this.children_) {\n for (var i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i].dispose) {\n this.children_[i].dispose();\n }\n }\n } // Delete child references\n\n\n this.children_ = null;\n this.childIndex_ = null;\n this.childNameIndex_ = null;\n this.parentComponent_ = null;\n\n if (this.el_) {\n // Remove element from DOM\n if (this.el_.parentNode) {\n this.el_.parentNode.removeChild(this.el_);\n }\n\n this.el_ = null;\n } // remove reference to the player after disposing of the element\n\n\n this.player_ = null;\n }\n /**\n * Determine whether or not this component has been disposed.\n *\n * @return {boolean}\n * If the component has been disposed, will be `true`. Otherwise, `false`.\n */\n ;\n\n _proto.isDisposed = function isDisposed() {\n return Boolean(this.isDisposed_);\n }\n /**\n * Return the {@link Player} that the `Component` has attached to.\n *\n * @return {Player}\n * The player that this `Component` has attached to.\n */\n ;\n\n _proto.player = function player() {\n return this.player_;\n }\n /**\n * Deep merge of options objects with new options.\n * > Note: When both `obj` and `options` contain properties whose values are objects.\n * The two properties get merged using {@link module:mergeOptions}\n *\n * @param {Object} obj\n * The object that contains new options.\n *\n * @return {Object}\n * A new object of `this.options_` and `obj` merged together.\n */\n ;\n\n _proto.options = function options(obj) {\n if (!obj) {\n return this.options_;\n }\n\n this.options_ = mergeOptions$3(this.options_, obj);\n return this.options_;\n }\n /**\n * Get the `Component`s DOM element\n *\n * @return {Element}\n * The DOM element for this `Component`.\n */\n ;\n\n _proto.el = function el() {\n return this.el_;\n }\n /**\n * Create the `Component`s DOM element.\n *\n * @param {string} [tagName]\n * Element's DOM node type. e.g. 'div'\n *\n * @param {Object} [properties]\n * An object of properties that should be set.\n *\n * @param {Object} [attributes]\n * An object of attributes that should be set.\n *\n * @return {Element}\n * The element that gets created.\n */\n ;\n\n _proto.createEl = function createEl$1(tagName, properties, attributes) {\n return createEl(tagName, properties, attributes);\n }\n /**\n * Localize a string given the string in english.\n *\n * If tokens are provided, it'll try and run a simple token replacement on the provided string.\n * The tokens it looks for look like `{1}` with the index being 1-indexed into the tokens array.\n *\n * If a `defaultValue` is provided, it'll use that over `string`,\n * if a value isn't found in provided language files.\n * This is useful if you want to have a descriptive key for token replacement\n * but have a succinct localized string and not require `en.json` to be included.\n *\n * Currently, it is used for the progress bar timing.\n * ```js\n * {\n * \"progress bar timing: currentTime={1} duration={2}\": \"{1} of {2}\"\n * }\n * ```\n * It is then used like so:\n * ```js\n * this.localize('progress bar timing: currentTime={1} duration{2}',\n * [this.player_.currentTime(), this.player_.duration()],\n * '{1} of {2}');\n * ```\n *\n * Which outputs something like: `01:23 of 24:56`.\n *\n *\n * @param {string} string\n * The string to localize and the key to lookup in the language files.\n * @param {string[]} [tokens]\n * If the current item has token replacements, provide the tokens here.\n * @param {string} [defaultValue]\n * Defaults to `string`. Can be a default value to use for token replacement\n * if the lookup key is needed to be separate.\n *\n * @return {string}\n * The localized string or if no localization exists the english string.\n */\n ;\n\n _proto.localize = function localize(string, tokens, defaultValue) {\n if (defaultValue === void 0) {\n defaultValue = string;\n }\n\n var code = this.player_.language && this.player_.language();\n var languages = this.player_.languages && this.player_.languages();\n var language = languages && languages[code];\n var primaryCode = code && code.split('-')[0];\n var primaryLang = languages && languages[primaryCode];\n var localizedString = defaultValue;\n\n if (language && language[string]) {\n localizedString = language[string];\n } else if (primaryLang && primaryLang[string]) {\n localizedString = primaryLang[string];\n }\n\n if (tokens) {\n localizedString = localizedString.replace(/\\{(\\d+)\\}/g, function (match, index) {\n var value = tokens[index - 1];\n var ret = value;\n\n if (typeof value === 'undefined') {\n ret = match;\n }\n\n return ret;\n });\n }\n\n return localizedString;\n }\n /**\n * Handles language change for the player in components. Should be overriden by sub-components.\n *\n * @abstract\n */\n ;\n\n _proto.handleLanguagechange = function handleLanguagechange() {}\n /**\n * Return the `Component`s DOM element. This is where children get inserted.\n * This will usually be the the same as the element returned in {@link Component#el}.\n *\n * @return {Element}\n * The content element for this `Component`.\n */\n ;\n\n _proto.contentEl = function contentEl() {\n return this.contentEl_ || this.el_;\n }\n /**\n * Get this `Component`s ID\n *\n * @return {string}\n * The id of this `Component`\n */\n ;\n\n _proto.id = function id() {\n return this.id_;\n }\n /**\n * Get the `Component`s name. The name gets used to reference the `Component`\n * and is set during registration.\n *\n * @return {string}\n * The name of this `Component`.\n */\n ;\n\n _proto.name = function name() {\n return this.name_;\n }\n /**\n * Get an array of all child components\n *\n * @return {Array}\n * The children\n */\n ;\n\n _proto.children = function children() {\n return this.children_;\n }\n /**\n * Returns the child `Component` with the given `id`.\n *\n * @param {string} id\n * The id of the child `Component` to get.\n *\n * @return {Component|undefined}\n * The child `Component` with the given `id` or undefined.\n */\n ;\n\n _proto.getChildById = function getChildById(id) {\n return this.childIndex_[id];\n }\n /**\n * Returns the child `Component` with the given `name`.\n *\n * @param {string} name\n * The name of the child `Component` to get.\n *\n * @return {Component|undefined}\n * The child `Component` with the given `name` or undefined.\n */\n ;\n\n _proto.getChild = function getChild(name) {\n if (!name) {\n return;\n }\n\n return this.childNameIndex_[name];\n }\n /**\n * Returns the descendant `Component` following the givent\n * descendant `names`. For instance ['foo', 'bar', 'baz'] would\n * try to get 'foo' on the current component, 'bar' on the 'foo'\n * component and 'baz' on the 'bar' component and return undefined\n * if any of those don't exist.\n *\n * @param {...string[]|...string} names\n * The name of the child `Component` to get.\n *\n * @return {Component|undefined}\n * The descendant `Component` following the given descendant\n * `names` or undefined.\n */\n ;\n\n _proto.getDescendant = function getDescendant() {\n for (var _len = arguments.length, names = new Array(_len), _key = 0; _key < _len; _key++) {\n names[_key] = arguments[_key];\n } // flatten array argument into the main array\n\n\n names = names.reduce(function (acc, n) {\n return acc.concat(n);\n }, []);\n var currentChild = this;\n\n for (var i = 0; i < names.length; i++) {\n currentChild = currentChild.getChild(names[i]);\n\n if (!currentChild || !currentChild.getChild) {\n return;\n }\n }\n\n return currentChild;\n }\n /**\n * Add a child `Component` inside the current `Component`.\n *\n *\n * @param {string|Component} child\n * The name or instance of a child to add.\n *\n * @param {Object} [options={}]\n * The key/value store of options that will get passed to children of\n * the child.\n *\n * @param {number} [index=this.children_.length]\n * The index to attempt to add a child into.\n *\n * @return {Component}\n * The `Component` that gets added as a child. When using a string the\n * `Component` will get created by this process.\n */\n ;\n\n _proto.addChild = function addChild(child, options, index) {\n if (options === void 0) {\n options = {};\n }\n\n if (index === void 0) {\n index = this.children_.length;\n }\n\n var component;\n var componentName; // If child is a string, create component with options\n\n if (typeof child === 'string') {\n componentName = toTitleCase$1(child);\n var componentClassName = options.componentClass || componentName; // Set name through options\n\n options.name = componentName; // Create a new object & element for this controls set\n // If there's no .player_, this is a player\n\n var ComponentClass = Component.getComponent(componentClassName);\n\n if (!ComponentClass) {\n throw new Error(\"Component \" + componentClassName + \" does not exist\");\n } // data stored directly on the videojs object may be\n // misidentified as a component to retain\n // backwards-compatibility with 4.x. check to make sure the\n // component class can be instantiated.\n\n\n if (typeof ComponentClass !== 'function') {\n return null;\n }\n\n component = new ComponentClass(this.player_ || this, options); // child is a component instance\n } else {\n component = child;\n }\n\n if (component.parentComponent_) {\n component.parentComponent_.removeChild(component);\n }\n\n this.children_.splice(index, 0, component);\n component.parentComponent_ = this;\n\n if (typeof component.id === 'function') {\n this.childIndex_[component.id()] = component;\n } // If a name wasn't used to create the component, check if we can use the\n // name function of the component\n\n\n componentName = componentName || component.name && toTitleCase$1(component.name());\n\n if (componentName) {\n this.childNameIndex_[componentName] = component;\n this.childNameIndex_[toLowerCase(componentName)] = component;\n } // Add the UI object's element to the container div (box)\n // Having an element is not required\n\n\n if (typeof component.el === 'function' && component.el()) {\n // If inserting before a component, insert before that component's element\n var refNode = null;\n\n if (this.children_[index + 1]) {\n // Most children are components, but the video tech is an HTML element\n if (this.children_[index + 1].el_) {\n refNode = this.children_[index + 1].el_;\n } else if (isEl(this.children_[index + 1])) {\n refNode = this.children_[index + 1];\n }\n }\n\n this.contentEl().insertBefore(component.el(), refNode);\n } // Return so it can stored on parent object if desired.\n\n\n return component;\n }\n /**\n * Remove a child `Component` from this `Component`s list of children. Also removes\n * the child `Component`s element from this `Component`s element.\n *\n * @param {Component} component\n * The child `Component` to remove.\n */\n ;\n\n _proto.removeChild = function removeChild(component) {\n if (typeof component === 'string') {\n component = this.getChild(component);\n }\n\n if (!component || !this.children_) {\n return;\n }\n\n var childFound = false;\n\n for (var i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i] === component) {\n childFound = true;\n this.children_.splice(i, 1);\n break;\n }\n }\n\n if (!childFound) {\n return;\n }\n\n component.parentComponent_ = null;\n this.childIndex_[component.id()] = null;\n this.childNameIndex_[toTitleCase$1(component.name())] = null;\n this.childNameIndex_[toLowerCase(component.name())] = null;\n var compEl = component.el();\n\n if (compEl && compEl.parentNode === this.contentEl()) {\n this.contentEl().removeChild(component.el());\n }\n }\n /**\n * Add and initialize default child `Component`s based upon options.\n */\n ;\n\n _proto.initChildren = function initChildren() {\n var _this = this;\n\n var children = this.options_.children;\n\n if (children) {\n // `this` is `parent`\n var parentOptions = this.options_;\n\n var handleAdd = function handleAdd(child) {\n var name = child.name;\n var opts = child.opts; // Allow options for children to be set at the parent options\n // e.g. videojs(id, { controlBar: false });\n // instead of videojs(id, { children: { controlBar: false });\n\n if (parentOptions[name] !== undefined) {\n opts = parentOptions[name];\n } // Allow for disabling default components\n // e.g. options['children']['posterImage'] = false\n\n\n if (opts === false) {\n return;\n } // Allow options to be passed as a simple boolean if no configuration\n // is necessary.\n\n\n if (opts === true) {\n opts = {};\n } // We also want to pass the original player options\n // to each component as well so they don't need to\n // reach back into the player for options later.\n\n\n opts.playerOptions = _this.options_.playerOptions; // Create and add the child component.\n // Add a direct reference to the child by name on the parent instance.\n // If two of the same component are used, different names should be supplied\n // for each\n\n var newChild = _this.addChild(name, opts);\n\n if (newChild) {\n _this[name] = newChild;\n }\n }; // Allow for an array of children details to passed in the options\n\n\n var workingChildren;\n var Tech = Component.getComponent('Tech');\n\n if (Array.isArray(children)) {\n workingChildren = children;\n } else {\n workingChildren = Object.keys(children);\n }\n\n workingChildren // children that are in this.options_ but also in workingChildren would\n // give us extra children we do not want. So, we want to filter them out.\n .concat(Object.keys(this.options_).filter(function (child) {\n return !workingChildren.some(function (wchild) {\n if (typeof wchild === 'string') {\n return child === wchild;\n }\n\n return child === wchild.name;\n });\n })).map(function (child) {\n var name;\n var opts;\n\n if (typeof child === 'string') {\n name = child;\n opts = children[name] || _this.options_[name] || {};\n } else {\n name = child.name;\n opts = child;\n }\n\n return {\n name: name,\n opts: opts\n };\n }).filter(function (child) {\n // we have to make sure that child.name isn't in the techOrder since\n // techs are registerd as Components but can't aren't compatible\n // See https://github.com/videojs/video.js/issues/2772\n var c = Component.getComponent(child.opts.componentClass || toTitleCase$1(child.name));\n return c && !Tech.isTech(c);\n }).forEach(handleAdd);\n }\n }\n /**\n * Builds the default DOM class name. Should be overriden by sub-components.\n *\n * @return {string}\n * The DOM class name for this object.\n *\n * @abstract\n */\n ;\n\n _proto.buildCSSClass = function buildCSSClass() {\n // Child classes can include a function that does:\n // return 'CLASS NAME' + this._super();\n return '';\n }\n /**\n * Bind a listener to the component's ready state.\n * Different from event listeners in that if the ready event has already happened\n * it will trigger the function immediately.\n *\n * @return {Component}\n * Returns itself; method can be chained.\n */\n ;\n\n _proto.ready = function ready(fn, sync) {\n if (sync === void 0) {\n sync = false;\n }\n\n if (!fn) {\n return;\n }\n\n if (!this.isReady_) {\n this.readyQueue_ = this.readyQueue_ || [];\n this.readyQueue_.push(fn);\n return;\n }\n\n if (sync) {\n fn.call(this);\n } else {\n // Call the function asynchronously by default for consistency\n this.setTimeout(fn, 1);\n }\n }\n /**\n * Trigger all the ready listeners for this `Component`.\n *\n * @fires Component#ready\n */\n ;\n\n _proto.triggerReady = function triggerReady() {\n this.isReady_ = true; // Ensure ready is triggered asynchronously\n\n this.setTimeout(function () {\n var readyQueue = this.readyQueue_; // Reset Ready Queue\n\n this.readyQueue_ = [];\n\n if (readyQueue && readyQueue.length > 0) {\n readyQueue.forEach(function (fn) {\n fn.call(this);\n }, this);\n } // Allow for using event listeners also\n\n /**\n * Triggered when a `Component` is ready.\n *\n * @event Component#ready\n * @type {EventTarget~Event}\n */\n\n\n this.trigger('ready');\n }, 1);\n }\n /**\n * Find a single DOM element matching a `selector`. This can be within the `Component`s\n * `contentEl()` or another custom context.\n *\n * @param {string} selector\n * A valid CSS selector, which will be passed to `querySelector`.\n *\n * @param {Element|string} [context=this.contentEl()]\n * A DOM element within which to query. Can also be a selector string in\n * which case the first matching element will get used as context. If\n * missing `this.contentEl()` gets used. If `this.contentEl()` returns\n * nothing it falls back to `document`.\n *\n * @return {Element|null}\n * the dom element that was found, or null\n *\n * @see [Information on CSS Selectors](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_Started/Selectors)\n */\n ;\n\n _proto.$ = function $$1(selector, context) {\n return $(selector, context || this.contentEl());\n }\n /**\n * Finds all DOM element matching a `selector`. This can be within the `Component`s\n * `contentEl()` or another custom context.\n *\n * @param {string} selector\n * A valid CSS selector, which will be passed to `querySelectorAll`.\n *\n * @param {Element|string} [context=this.contentEl()]\n * A DOM element within which to query. Can also be a selector string in\n * which case the first matching element will get used as context. If\n * missing `this.contentEl()` gets used. If `this.contentEl()` returns\n * nothing it falls back to `document`.\n *\n * @return {NodeList}\n * a list of dom elements that were found\n *\n * @see [Information on CSS Selectors](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_Started/Selectors)\n */\n ;\n\n _proto.$$ = function $$$1(selector, context) {\n return $$(selector, context || this.contentEl());\n }\n /**\n * Check if a component's element has a CSS class name.\n *\n * @param {string} classToCheck\n * CSS class name to check.\n *\n * @return {boolean}\n * - True if the `Component` has the class.\n * - False if the `Component` does not have the class`\n */\n ;\n\n _proto.hasClass = function hasClass$1(classToCheck) {\n return hasClass(this.el_, classToCheck);\n }\n /**\n * Add a CSS class name to the `Component`s element.\n *\n * @param {string} classToAdd\n * CSS class name to add\n */\n ;\n\n _proto.addClass = function addClass$1(classToAdd) {\n addClass(this.el_, classToAdd);\n }\n /**\n * Remove a CSS class name from the `Component`s element.\n *\n * @param {string} classToRemove\n * CSS class name to remove\n */\n ;\n\n _proto.removeClass = function removeClass$1(classToRemove) {\n removeClass(this.el_, classToRemove);\n }\n /**\n * Add or remove a CSS class name from the component's element.\n * - `classToToggle` gets added when {@link Component#hasClass} would return false.\n * - `classToToggle` gets removed when {@link Component#hasClass} would return true.\n *\n * @param {string} classToToggle\n * The class to add or remove based on (@link Component#hasClass}\n *\n * @param {boolean|Dom~predicate} [predicate]\n * An {@link Dom~predicate} function or a boolean\n */\n ;\n\n _proto.toggleClass = function toggleClass$1(classToToggle, predicate) {\n toggleClass(this.el_, classToToggle, predicate);\n }\n /**\n * Show the `Component`s element if it is hidden by removing the\n * 'vjs-hidden' class name from it.\n */\n ;\n\n _proto.show = function show() {\n this.removeClass('vjs-hidden');\n }\n /**\n * Hide the `Component`s element if it is currently showing by adding the\n * 'vjs-hidden` class name to it.\n */\n ;\n\n _proto.hide = function hide() {\n this.addClass('vjs-hidden');\n }\n /**\n * Lock a `Component`s element in its visible state by adding the 'vjs-lock-showing'\n * class name to it. Used during fadeIn/fadeOut.\n *\n * @private\n */\n ;\n\n _proto.lockShowing = function lockShowing() {\n this.addClass('vjs-lock-showing');\n }\n /**\n * Unlock a `Component`s element from its visible state by removing the 'vjs-lock-showing'\n * class name from it. Used during fadeIn/fadeOut.\n *\n * @private\n */\n ;\n\n _proto.unlockShowing = function unlockShowing() {\n this.removeClass('vjs-lock-showing');\n }\n /**\n * Get the value of an attribute on the `Component`s element.\n *\n * @param {string} attribute\n * Name of the attribute to get the value from.\n *\n * @return {string|null}\n * - The value of the attribute that was asked for.\n * - Can be an empty string on some browsers if the attribute does not exist\n * or has no value\n * - Most browsers will return null if the attibute does not exist or has\n * no value.\n *\n * @see [DOM API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttribute}\n */\n ;\n\n _proto.getAttribute = function getAttribute$1(attribute) {\n return getAttribute(this.el_, attribute);\n }\n /**\n * Set the value of an attribute on the `Component`'s element\n *\n * @param {string} attribute\n * Name of the attribute to set.\n *\n * @param {string} value\n * Value to set the attribute to.\n *\n * @see [DOM API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Element/setAttribute}\n */\n ;\n\n _proto.setAttribute = function setAttribute$1(attribute, value) {\n setAttribute(this.el_, attribute, value);\n }\n /**\n * Remove an attribute from the `Component`s element.\n *\n * @param {string} attribute\n * Name of the attribute to remove.\n *\n * @see [DOM API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Element/removeAttribute}\n */\n ;\n\n _proto.removeAttribute = function removeAttribute$1(attribute) {\n removeAttribute(this.el_, attribute);\n }\n /**\n * Get or set the width of the component based upon the CSS styles.\n * See {@link Component#dimension} for more detailed information.\n *\n * @param {number|string} [num]\n * The width that you want to set postfixed with '%', 'px' or nothing.\n *\n * @param {boolean} [skipListeners]\n * Skip the componentresize event trigger\n *\n * @return {number|string}\n * The width when getting, zero if there is no width. Can be a string\n * postpixed with '%' or 'px'.\n */\n ;\n\n _proto.width = function width(num, skipListeners) {\n return this.dimension('width', num, skipListeners);\n }\n /**\n * Get or set the height of the component based upon the CSS styles.\n * See {@link Component#dimension} for more detailed information.\n *\n * @param {number|string} [num]\n * The height that you want to set postfixed with '%', 'px' or nothing.\n *\n * @param {boolean} [skipListeners]\n * Skip the componentresize event trigger\n *\n * @return {number|string}\n * The width when getting, zero if there is no width. Can be a string\n * postpixed with '%' or 'px'.\n */\n ;\n\n _proto.height = function height(num, skipListeners) {\n return this.dimension('height', num, skipListeners);\n }\n /**\n * Set both the width and height of the `Component` element at the same time.\n *\n * @param {number|string} width\n * Width to set the `Component`s element to.\n *\n * @param {number|string} height\n * Height to set the `Component`s element to.\n */\n ;\n\n _proto.dimensions = function dimensions(width, height) {\n // Skip componentresize listeners on width for optimization\n this.width(width, true);\n this.height(height);\n }\n /**\n * Get or set width or height of the `Component` element. This is the shared code\n * for the {@link Component#width} and {@link Component#height}.\n *\n * Things to know:\n * - If the width or height in an number this will return the number postfixed with 'px'.\n * - If the width/height is a percent this will return the percent postfixed with '%'\n * - Hidden elements have a width of 0 with `window.getComputedStyle`. This function\n * defaults to the `Component`s `style.width` and falls back to `window.getComputedStyle`.\n * See [this]{@link http://www.foliotek.com/devblog/getting-the-width-of-a-hidden-element-with-jquery-using-width/}\n * for more information\n * - If you want the computed style of the component, use {@link Component#currentWidth}\n * and {@link {Component#currentHeight}\n *\n * @fires Component#componentresize\n *\n * @param {string} widthOrHeight\n 8 'width' or 'height'\n *\n * @param {number|string} [num]\n 8 New dimension\n *\n * @param {boolean} [skipListeners]\n * Skip componentresize event trigger\n *\n * @return {number}\n * The dimension when getting or 0 if unset\n */\n ;\n\n _proto.dimension = function dimension(widthOrHeight, num, skipListeners) {\n if (num !== undefined) {\n // Set to zero if null or literally NaN (NaN !== NaN)\n if (num === null || num !== num) {\n num = 0;\n } // Check if using css width/height (% or px) and adjust\n\n\n if (('' + num).indexOf('%') !== -1 || ('' + num).indexOf('px') !== -1) {\n this.el_.style[widthOrHeight] = num;\n } else if (num === 'auto') {\n this.el_.style[widthOrHeight] = '';\n } else {\n this.el_.style[widthOrHeight] = num + 'px';\n } // skipListeners allows us to avoid triggering the resize event when setting both width and height\n\n\n if (!skipListeners) {\n /**\n * Triggered when a component is resized.\n *\n * @event Component#componentresize\n * @type {EventTarget~Event}\n */\n this.trigger('componentresize');\n }\n\n return;\n } // Not setting a value, so getting it\n // Make sure element exists\n\n\n if (!this.el_) {\n return 0;\n } // Get dimension value from style\n\n\n var val = this.el_.style[widthOrHeight];\n var pxIndex = val.indexOf('px');\n\n if (pxIndex !== -1) {\n // Return the pixel value with no 'px'\n return parseInt(val.slice(0, pxIndex), 10);\n } // No px so using % or no style was set, so falling back to offsetWidth/height\n // If component has display:none, offset will return 0\n // TODO: handle display:none and no dimension style using px\n\n\n return parseInt(this.el_['offset' + toTitleCase$1(widthOrHeight)], 10);\n }\n /**\n * Get the computed width or the height of the component's element.\n *\n * Uses `window.getComputedStyle`.\n *\n * @param {string} widthOrHeight\n * A string containing 'width' or 'height'. Whichever one you want to get.\n *\n * @return {number}\n * The dimension that gets asked for or 0 if nothing was set\n * for that dimension.\n */\n ;\n\n _proto.currentDimension = function currentDimension(widthOrHeight) {\n var computedWidthOrHeight = 0;\n\n if (widthOrHeight !== 'width' && widthOrHeight !== 'height') {\n throw new Error('currentDimension only accepts width or height value');\n }\n\n computedWidthOrHeight = computedStyle(this.el_, widthOrHeight); // remove 'px' from variable and parse as integer\n\n computedWidthOrHeight = parseFloat(computedWidthOrHeight); // if the computed value is still 0, it's possible that the browser is lying\n // and we want to check the offset values.\n // This code also runs wherever getComputedStyle doesn't exist.\n\n if (computedWidthOrHeight === 0 || isNaN(computedWidthOrHeight)) {\n var rule = \"offset\" + toTitleCase$1(widthOrHeight);\n computedWidthOrHeight = this.el_[rule];\n }\n\n return computedWidthOrHeight;\n }\n /**\n * An object that contains width and height values of the `Component`s\n * computed style. Uses `window.getComputedStyle`.\n *\n * @typedef {Object} Component~DimensionObject\n *\n * @property {number} width\n * The width of the `Component`s computed style.\n *\n * @property {number} height\n * The height of the `Component`s computed style.\n */\n\n /**\n * Get an object that contains computed width and height values of the\n * component's element.\n *\n * Uses `window.getComputedStyle`.\n *\n * @return {Component~DimensionObject}\n * The computed dimensions of the component's element.\n */\n ;\n\n _proto.currentDimensions = function currentDimensions() {\n return {\n width: this.currentDimension('width'),\n height: this.currentDimension('height')\n };\n }\n /**\n * Get the computed width of the component's element.\n *\n * Uses `window.getComputedStyle`.\n *\n * @return {number}\n * The computed width of the component's element.\n */\n ;\n\n _proto.currentWidth = function currentWidth() {\n return this.currentDimension('width');\n }\n /**\n * Get the computed height of the component's element.\n *\n * Uses `window.getComputedStyle`.\n *\n * @return {number}\n * The computed height of the component's element.\n */\n ;\n\n _proto.currentHeight = function currentHeight() {\n return this.currentDimension('height');\n }\n /**\n * Set the focus to this component\n */\n ;\n\n _proto.focus = function focus() {\n this.el_.focus();\n }\n /**\n * Remove the focus from this component\n */\n ;\n\n _proto.blur = function blur() {\n this.el_.blur();\n }\n /**\n * When this Component receives a `keydown` event which it does not process,\n * it passes the event to the Player for handling.\n *\n * @param {EventTarget~Event} event\n * The `keydown` event that caused this function to be called.\n */\n ;\n\n _proto.handleKeyDown = function handleKeyDown(event) {\n if (this.player_) {\n // We only stop propagation here because we want unhandled events to fall\n // back to the browser. Exclude Tab for focus trapping.\n if (!keycode.isEventKey(event, 'Tab')) {\n event.stopPropagation();\n }\n\n this.player_.handleKeyDown(event);\n }\n }\n /**\n * Many components used to have a `handleKeyPress` method, which was poorly\n * named because it listened to a `keydown` event. This method name now\n * delegates to `handleKeyDown`. This means anyone calling `handleKeyPress`\n * will not see their method calls stop working.\n *\n * @param {EventTarget~Event} event\n * The event that caused this function to be called.\n */\n ;\n\n _proto.handleKeyPress = function handleKeyPress(event) {\n this.handleKeyDown(event);\n }\n /**\n * Emit a 'tap' events when touch event support gets detected. This gets used to\n * support toggling the controls through a tap on the video. They get enabled\n * because every sub-component would have extra overhead otherwise.\n *\n * @private\n * @fires Component#tap\n * @listens Component#touchstart\n * @listens Component#touchmove\n * @listens Component#touchleave\n * @listens Component#touchcancel\n * @listens Component#touchend\n */\n ;\n\n _proto.emitTapEvents = function emitTapEvents() {\n // Track the start time so we can determine how long the touch lasted\n var touchStart = 0;\n var firstTouch = null; // Maximum movement allowed during a touch event to still be considered a tap\n // Other popular libs use anywhere from 2 (hammer.js) to 15,\n // so 10 seems like a nice, round number.\n\n var tapMovementThreshold = 10; // The maximum length a touch can be while still being considered a tap\n\n var touchTimeThreshold = 200;\n var couldBeTap;\n this.on('touchstart', function (event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length === 1) {\n // Copy pageX/pageY from the object\n firstTouch = {\n pageX: event.touches[0].pageX,\n pageY: event.touches[0].pageY\n }; // Record start time so we can detect a tap vs. \"touch and hold\"\n\n touchStart = window$1.performance.now(); // Reset couldBeTap tracking\n\n couldBeTap = true;\n }\n });\n this.on('touchmove', function (event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length > 1) {\n couldBeTap = false;\n } else if (firstTouch) {\n // Some devices will throw touchmoves for all but the slightest of taps.\n // So, if we moved only a small distance, this could still be a tap\n var xdiff = event.touches[0].pageX - firstTouch.pageX;\n var ydiff = event.touches[0].pageY - firstTouch.pageY;\n var touchDistance = Math.sqrt(xdiff * xdiff + ydiff * ydiff);\n\n if (touchDistance > tapMovementThreshold) {\n couldBeTap = false;\n }\n }\n });\n\n var noTap = function noTap() {\n couldBeTap = false;\n }; // TODO: Listen to the original target. http://youtu.be/DujfpXOKUp8?t=13m8s\n\n\n this.on('touchleave', noTap);\n this.on('touchcancel', noTap); // When the touch ends, measure how long it took and trigger the appropriate\n // event\n\n this.on('touchend', function (event) {\n firstTouch = null; // Proceed only if the touchmove/leave/cancel event didn't happen\n\n if (couldBeTap === true) {\n // Measure how long the touch lasted\n var touchTime = window$1.performance.now() - touchStart; // Make sure the touch was less than the threshold to be considered a tap\n\n if (touchTime < touchTimeThreshold) {\n // Don't let browser turn this into a click\n event.preventDefault();\n /**\n * Triggered when a `Component` is tapped.\n *\n * @event Component#tap\n * @type {EventTarget~Event}\n */\n\n this.trigger('tap'); // It may be good to copy the touchend event object and change the\n // type to tap, if the other event properties aren't exact after\n // Events.fixEvent runs (e.g. event.target)\n }\n }\n });\n }\n /**\n * This function reports user activity whenever touch events happen. This can get\n * turned off by any sub-components that wants touch events to act another way.\n *\n * Report user touch activity when touch events occur. User activity gets used to\n * determine when controls should show/hide. It is simple when it comes to mouse\n * events, because any mouse event should show the controls. So we capture mouse\n * events that bubble up to the player and report activity when that happens.\n * With touch events it isn't as easy as `touchstart` and `touchend` toggle player\n * controls. So touch events can't help us at the player level either.\n *\n * User activity gets checked asynchronously. So what could happen is a tap event\n * on the video turns the controls off. Then the `touchend` event bubbles up to\n * the player. Which, if it reported user activity, would turn the controls right\n * back on. We also don't want to completely block touch events from bubbling up.\n * Furthermore a `touchmove` event and anything other than a tap, should not turn\n * controls back on.\n *\n * @listens Component#touchstart\n * @listens Component#touchmove\n * @listens Component#touchend\n * @listens Component#touchcancel\n */\n ;\n\n _proto.enableTouchActivity = function enableTouchActivity() {\n // Don't continue if the root player doesn't support reporting user activity\n if (!this.player() || !this.player().reportUserActivity) {\n return;\n } // listener for reporting that the user is active\n\n\n var report = bind(this.player(), this.player().reportUserActivity);\n var touchHolding;\n this.on('touchstart', function () {\n report(); // For as long as the they are touching the device or have their mouse down,\n // we consider them active even if they're not moving their finger or mouse.\n // So we want to continue to update that they are active\n\n this.clearInterval(touchHolding); // report at the same interval as activityCheck\n\n touchHolding = this.setInterval(report, 250);\n });\n\n var touchEnd = function touchEnd(event) {\n report(); // stop the interval that maintains activity if the touch is holding\n\n this.clearInterval(touchHolding);\n };\n\n this.on('touchmove', report);\n this.on('touchend', touchEnd);\n this.on('touchcancel', touchEnd);\n }\n /**\n * A callback that has no parameters and is bound into `Component`s context.\n *\n * @callback Component~GenericCallback\n * @this Component\n */\n\n /**\n * Creates a function that runs after an `x` millisecond timeout. This function is a\n * wrapper around `window.setTimeout`. There are a few reasons to use this one\n * instead though:\n * 1. It gets cleared via {@link Component#clearTimeout} when\n * {@link Component#dispose} gets called.\n * 2. The function callback will gets turned into a {@link Component~GenericCallback}\n *\n * > Note: You can't use `window.clearTimeout` on the id returned by this function. This\n * will cause its dispose listener not to get cleaned up! Please use\n * {@link Component#clearTimeout} or {@link Component#dispose} instead.\n *\n * @param {Component~GenericCallback} fn\n * The function that will be run after `timeout`.\n *\n * @param {number} timeout\n * Timeout in milliseconds to delay before executing the specified function.\n *\n * @return {number}\n * Returns a timeout ID that gets used to identify the timeout. It can also\n * get used in {@link Component#clearTimeout} to clear the timeout that\n * was set.\n *\n * @listens Component#dispose\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout}\n */\n ;\n\n _proto.setTimeout = function setTimeout(fn, timeout) {\n var _this2 = this; // declare as variables so they are properly available in timeout function\n // eslint-disable-next-line\n\n\n var timeoutId;\n fn = bind(this, fn);\n this.clearTimersOnDispose_();\n timeoutId = window$1.setTimeout(function () {\n if (_this2.setTimeoutIds_.has(timeoutId)) {\n _this2.setTimeoutIds_[\"delete\"](timeoutId);\n }\n\n fn();\n }, timeout);\n this.setTimeoutIds_.add(timeoutId);\n return timeoutId;\n }\n /**\n * Clears a timeout that gets created via `window.setTimeout` or\n * {@link Component#setTimeout}. If you set a timeout via {@link Component#setTimeout}\n * use this function instead of `window.clearTimout`. If you don't your dispose\n * listener will not get cleaned up until {@link Component#dispose}!\n *\n * @param {number} timeoutId\n * The id of the timeout to clear. The return value of\n * {@link Component#setTimeout} or `window.setTimeout`.\n *\n * @return {number}\n * Returns the timeout id that was cleared.\n *\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/clearTimeout}\n */\n ;\n\n _proto.clearTimeout = function clearTimeout(timeoutId) {\n if (this.setTimeoutIds_.has(timeoutId)) {\n this.setTimeoutIds_[\"delete\"](timeoutId);\n window$1.clearTimeout(timeoutId);\n }\n\n return timeoutId;\n }\n /**\n * Creates a function that gets run every `x` milliseconds. This function is a wrapper\n * around `window.setInterval`. There are a few reasons to use this one instead though.\n * 1. It gets cleared via {@link Component#clearInterval} when\n * {@link Component#dispose} gets called.\n * 2. The function callback will be a {@link Component~GenericCallback}\n *\n * @param {Component~GenericCallback} fn\n * The function to run every `x` seconds.\n *\n * @param {number} interval\n * Execute the specified function every `x` milliseconds.\n *\n * @return {number}\n * Returns an id that can be used to identify the interval. It can also be be used in\n * {@link Component#clearInterval} to clear the interval.\n *\n * @listens Component#dispose\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setInterval}\n */\n ;\n\n _proto.setInterval = function setInterval(fn, interval) {\n fn = bind(this, fn);\n this.clearTimersOnDispose_();\n var intervalId = window$1.setInterval(fn, interval);\n this.setIntervalIds_.add(intervalId);\n return intervalId;\n }\n /**\n * Clears an interval that gets created via `window.setInterval` or\n * {@link Component#setInterval}. If you set an inteval via {@link Component#setInterval}\n * use this function instead of `window.clearInterval`. If you don't your dispose\n * listener will not get cleaned up until {@link Component#dispose}!\n *\n * @param {number} intervalId\n * The id of the interval to clear. The return value of\n * {@link Component#setInterval} or `window.setInterval`.\n *\n * @return {number}\n * Returns the interval id that was cleared.\n *\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/clearInterval}\n */\n ;\n\n _proto.clearInterval = function clearInterval(intervalId) {\n if (this.setIntervalIds_.has(intervalId)) {\n this.setIntervalIds_[\"delete\"](intervalId);\n window$1.clearInterval(intervalId);\n }\n\n return intervalId;\n }\n /**\n * Queues up a callback to be passed to requestAnimationFrame (rAF), but\n * with a few extra bonuses:\n *\n * - Supports browsers that do not support rAF by falling back to\n * {@link Component#setTimeout}.\n *\n * - The callback is turned into a {@link Component~GenericCallback} (i.e.\n * bound to the component).\n *\n * - Automatic cancellation of the rAF callback is handled if the component\n * is disposed before it is called.\n *\n * @param {Component~GenericCallback} fn\n * A function that will be bound to this component and executed just\n * before the browser's next repaint.\n *\n * @return {number}\n * Returns an rAF ID that gets used to identify the timeout. It can\n * also be used in {@link Component#cancelAnimationFrame} to cancel\n * the animation frame callback.\n *\n * @listens Component#dispose\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame}\n */\n ;\n\n _proto.requestAnimationFrame = function requestAnimationFrame(fn) {\n var _this3 = this; // Fall back to using a timer.\n\n\n if (!this.supportsRaf_) {\n return this.setTimeout(fn, 1000 / 60);\n }\n\n this.clearTimersOnDispose_(); // declare as variables so they are properly available in rAF function\n // eslint-disable-next-line\n\n var id;\n fn = bind(this, fn);\n id = window$1.requestAnimationFrame(function () {\n if (_this3.rafIds_.has(id)) {\n _this3.rafIds_[\"delete\"](id);\n }\n\n fn();\n });\n this.rafIds_.add(id);\n return id;\n }\n /**\n * Request an animation frame, but only one named animation\n * frame will be queued. Another will never be added until\n * the previous one finishes.\n *\n * @param {string} name\n * The name to give this requestAnimationFrame\n *\n * @param {Component~GenericCallback} fn\n * A function that will be bound to this component and executed just\n * before the browser's next repaint.\n */\n ;\n\n _proto.requestNamedAnimationFrame = function requestNamedAnimationFrame(name, fn) {\n var _this4 = this;\n\n if (this.namedRafs_.has(name)) {\n return;\n }\n\n this.clearTimersOnDispose_();\n fn = bind(this, fn);\n var id = this.requestAnimationFrame(function () {\n fn();\n\n if (_this4.namedRafs_.has(name)) {\n _this4.namedRafs_[\"delete\"](name);\n }\n });\n this.namedRafs_.set(name, id);\n return name;\n }\n /**\n * Cancels a current named animation frame if it exists.\n *\n * @param {string} name\n * The name of the requestAnimationFrame to cancel.\n */\n ;\n\n _proto.cancelNamedAnimationFrame = function cancelNamedAnimationFrame(name) {\n if (!this.namedRafs_.has(name)) {\n return;\n }\n\n this.cancelAnimationFrame(this.namedRafs_.get(name));\n this.namedRafs_[\"delete\"](name);\n }\n /**\n * Cancels a queued callback passed to {@link Component#requestAnimationFrame}\n * (rAF).\n *\n * If you queue an rAF callback via {@link Component#requestAnimationFrame},\n * use this function instead of `window.cancelAnimationFrame`. If you don't,\n * your dispose listener will not get cleaned up until {@link Component#dispose}!\n *\n * @param {number} id\n * The rAF ID to clear. The return value of {@link Component#requestAnimationFrame}.\n *\n * @return {number}\n * Returns the rAF ID that was cleared.\n *\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/window/cancelAnimationFrame}\n */\n ;\n\n _proto.cancelAnimationFrame = function cancelAnimationFrame(id) {\n // Fall back to using a timer.\n if (!this.supportsRaf_) {\n return this.clearTimeout(id);\n }\n\n if (this.rafIds_.has(id)) {\n this.rafIds_[\"delete\"](id);\n window$1.cancelAnimationFrame(id);\n }\n\n return id;\n }\n /**\n * A function to setup `requestAnimationFrame`, `setTimeout`,\n * and `setInterval`, clearing on dispose.\n *\n * > Previously each timer added and removed dispose listeners on it's own.\n * For better performance it was decided to batch them all, and use `Set`s\n * to track outstanding timer ids.\n *\n * @private\n */\n ;\n\n _proto.clearTimersOnDispose_ = function clearTimersOnDispose_() {\n var _this5 = this;\n\n if (this.clearingTimersOnDispose_) {\n return;\n }\n\n this.clearingTimersOnDispose_ = true;\n this.one('dispose', function () {\n [['namedRafs_', 'cancelNamedAnimationFrame'], ['rafIds_', 'cancelAnimationFrame'], ['setTimeoutIds_', 'clearTimeout'], ['setIntervalIds_', 'clearInterval']].forEach(function (_ref) {\n var idName = _ref[0],\n cancelName = _ref[1]; // for a `Set` key will actually be the value again\n // so forEach((val, val) =>` but for maps we want to use\n // the key.\n\n _this5[idName].forEach(function (val, key) {\n return _this5[cancelName](key);\n });\n });\n _this5.clearingTimersOnDispose_ = false;\n });\n }\n /**\n * Register a `Component` with `videojs` given the name and the component.\n *\n * > NOTE: {@link Tech}s should not be registered as a `Component`. {@link Tech}s\n * should be registered using {@link Tech.registerTech} or\n * {@link videojs:videojs.registerTech}.\n *\n * > NOTE: This function can also be seen on videojs as\n * {@link videojs:videojs.registerComponent}.\n *\n * @param {string} name\n * The name of the `Component` to register.\n *\n * @param {Component} ComponentToRegister\n * The `Component` class to register.\n *\n * @return {Component}\n * The `Component` that was registered.\n */\n ;\n\n Component.registerComponent = function registerComponent(name, ComponentToRegister) {\n if (typeof name !== 'string' || !name) {\n throw new Error(\"Illegal component name, \\\"\" + name + \"\\\"; must be a non-empty string.\");\n }\n\n var Tech = Component.getComponent('Tech'); // We need to make sure this check is only done if Tech has been registered.\n\n var isTech = Tech && Tech.isTech(ComponentToRegister);\n var isComp = Component === ComponentToRegister || Component.prototype.isPrototypeOf(ComponentToRegister.prototype);\n\n if (isTech || !isComp) {\n var reason;\n\n if (isTech) {\n reason = 'techs must be registered using Tech.registerTech()';\n } else {\n reason = 'must be a Component subclass';\n }\n\n throw new Error(\"Illegal component, \\\"\" + name + \"\\\"; \" + reason + \".\");\n }\n\n name = toTitleCase$1(name);\n\n if (!Component.components_) {\n Component.components_ = {};\n }\n\n var Player = Component.getComponent('Player');\n\n if (name === 'Player' && Player && Player.players) {\n var players = Player.players;\n var playerNames = Object.keys(players); // If we have players that were disposed, then their name will still be\n // in Players.players. So, we must loop through and verify that the value\n // for each item is not null. This allows registration of the Player component\n // after all players have been disposed or before any were created.\n\n if (players && playerNames.length > 0 && playerNames.map(function (pname) {\n return players[pname];\n }).every(Boolean)) {\n throw new Error('Can not register Player component after player has been created.');\n }\n }\n\n Component.components_[name] = ComponentToRegister;\n Component.components_[toLowerCase(name)] = ComponentToRegister;\n return ComponentToRegister;\n }\n /**\n * Get a `Component` based on the name it was registered with.\n *\n * @param {string} name\n * The Name of the component to get.\n *\n * @return {Component}\n * The `Component` that got registered under the given name.\n */\n ;\n\n Component.getComponent = function getComponent(name) {\n if (!name || !Component.components_) {\n return;\n }\n\n return Component.components_[name];\n };\n\n return Component;\n}();\n/**\n * Whether or not this component supports `requestAnimationFrame`.\n *\n * This is exposed primarily for testing purposes.\n *\n * @private\n * @type {Boolean}\n */\n\n\nComponent$1.prototype.supportsRaf_ = typeof window$1.requestAnimationFrame === 'function' && typeof window$1.cancelAnimationFrame === 'function';\nComponent$1.registerComponent('Component', Component$1);\n/**\n * @file time-ranges.js\n * @module time-ranges\n */\n\n/**\n * Returns the time for the specified index at the start or end\n * of a TimeRange object.\n *\n * @typedef {Function} TimeRangeIndex\n *\n * @param {number} [index=0]\n * The range number to return the time for.\n *\n * @return {number}\n * The time offset at the specified index.\n *\n * @deprecated The index argument must be provided.\n * In the future, leaving it out will throw an error.\n */\n\n/**\n * An object that contains ranges of time.\n *\n * @typedef {Object} TimeRange\n *\n * @property {number} length\n * The number of time ranges represented by this object.\n *\n * @property {module:time-ranges~TimeRangeIndex} start\n * Returns the time offset at which a specified time range begins.\n *\n * @property {module:time-ranges~TimeRangeIndex} end\n * Returns the time offset at which a specified time range ends.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges\n */\n\n/**\n * Check if any of the time ranges are over the maximum index.\n *\n * @private\n * @param {string} fnName\n * The function name to use for logging\n *\n * @param {number} index\n * The index to check\n *\n * @param {number} maxIndex\n * The maximum possible index\n *\n * @throws {Error} if the timeRanges provided are over the maxIndex\n */\n\nfunction rangeCheck(fnName, index, maxIndex) {\n if (typeof index !== 'number' || index < 0 || index > maxIndex) {\n throw new Error(\"Failed to execute '\" + fnName + \"' on 'TimeRanges': The index provided (\" + index + \") is non-numeric or out of bounds (0-\" + maxIndex + \").\");\n }\n}\n/**\n * Get the time for the specified index at the start or end\n * of a TimeRange object.\n *\n * @private\n * @param {string} fnName\n * The function name to use for logging\n *\n * @param {string} valueIndex\n * The property that should be used to get the time. should be\n * 'start' or 'end'\n *\n * @param {Array} ranges\n * An array of time ranges\n *\n * @param {Array} [rangeIndex=0]\n * The index to start the search at\n *\n * @return {number}\n * The time that offset at the specified index.\n *\n * @deprecated rangeIndex must be set to a value, in the future this will throw an error.\n * @throws {Error} if rangeIndex is more than the length of ranges\n */\n\n\nfunction getRange(fnName, valueIndex, ranges, rangeIndex) {\n rangeCheck(fnName, rangeIndex, ranges.length - 1);\n return ranges[rangeIndex][valueIndex];\n}\n/**\n * Create a time range object given ranges of time.\n *\n * @private\n * @param {Array} [ranges]\n * An array of time ranges.\n */\n\n\nfunction createTimeRangesObj(ranges) {\n var timeRangesObj;\n\n if (ranges === undefined || ranges.length === 0) {\n timeRangesObj = {\n length: 0,\n start: function start() {\n throw new Error('This TimeRanges object is empty');\n },\n end: function end() {\n throw new Error('This TimeRanges object is empty');\n }\n };\n } else {\n timeRangesObj = {\n length: ranges.length,\n start: getRange.bind(null, 'start', 0, ranges),\n end: getRange.bind(null, 'end', 1, ranges)\n };\n }\n\n if (window$1.Symbol && window$1.Symbol.iterator) {\n timeRangesObj[window$1.Symbol.iterator] = function () {\n return (ranges || []).values();\n };\n }\n\n return timeRangesObj;\n}\n/**\n * Create a `TimeRange` object which mimics an\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges|HTML5 TimeRanges instance}.\n *\n * @param {number|Array[]} start\n * The start of a single range (a number) or an array of ranges (an\n * array of arrays of two numbers each).\n *\n * @param {number} end\n * The end of a single range. Cannot be used with the array form of\n * the `start` argument.\n */\n\n\nfunction createTimeRanges(start, end) {\n if (Array.isArray(start)) {\n return createTimeRangesObj(start);\n } else if (start === undefined || end === undefined) {\n return createTimeRangesObj();\n }\n\n return createTimeRangesObj([[start, end]]);\n}\n/**\n * @file buffer.js\n * @module buffer\n */\n\n/**\n * Compute the percentage of the media that has been buffered.\n *\n * @param {TimeRange} buffered\n * The current `TimeRange` object representing buffered time ranges\n *\n * @param {number} duration\n * Total duration of the media\n *\n * @return {number}\n * Percent buffered of the total duration in decimal form.\n */\n\n\nfunction bufferedPercent(buffered, duration) {\n var bufferedDuration = 0;\n var start;\n var end;\n\n if (!duration) {\n return 0;\n }\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRanges(0, 0);\n }\n\n for (var i = 0; i < buffered.length; i++) {\n start = buffered.start(i);\n end = buffered.end(i); // buffered end can be bigger than duration by a very small fraction\n\n if (end > duration) {\n end = duration;\n }\n\n bufferedDuration += end - start;\n }\n\n return bufferedDuration / duration;\n}\n/**\n * @file media-error.js\n */\n\n/**\n * A Custom `MediaError` class which mimics the standard HTML5 `MediaError` class.\n *\n * @param {number|string|Object|MediaError} value\n * This can be of multiple types:\n * - number: should be a standard error code\n * - string: an error message (the code will be 0)\n * - Object: arbitrary properties\n * - `MediaError` (native): used to populate a video.js `MediaError` object\n * - `MediaError` (video.js): will return itself if it's already a\n * video.js `MediaError` object.\n *\n * @see [MediaError Spec]{@link https://dev.w3.org/html5/spec-author-view/video.html#mediaerror}\n * @see [Encrypted MediaError Spec]{@link https://www.w3.org/TR/2013/WD-encrypted-media-20130510/#error-codes}\n *\n * @class MediaError\n */\n\n\nfunction MediaError(value) {\n // Allow redundant calls to this constructor to avoid having `instanceof`\n // checks peppered around the code.\n if (value instanceof MediaError) {\n return value;\n }\n\n if (typeof value === 'number') {\n this.code = value;\n } else if (typeof value === 'string') {\n // default code is zero, so this is a custom error\n this.message = value;\n } else if (isObject(value)) {\n // We assign the `code` property manually because native `MediaError` objects\n // do not expose it as an own/enumerable property of the object.\n if (typeof value.code === 'number') {\n this.code = value.code;\n }\n\n assign(this, value);\n }\n\n if (!this.message) {\n this.message = MediaError.defaultMessages[this.code] || '';\n }\n}\n/**\n * The error code that refers two one of the defined `MediaError` types\n *\n * @type {Number}\n */\n\n\nMediaError.prototype.code = 0;\n/**\n * An optional message that to show with the error. Message is not part of the HTML5\n * video spec but allows for more informative custom errors.\n *\n * @type {String}\n */\n\nMediaError.prototype.message = '';\n/**\n * An optional status code that can be set by plugins to allow even more detail about\n * the error. For example a plugin might provide a specific HTTP status code and an\n * error message for that code. Then when the plugin gets that error this class will\n * know how to display an error message for it. This allows a custom message to show\n * up on the `Player` error overlay.\n *\n * @type {Array}\n */\n\nMediaError.prototype.status = null;\n/**\n * Errors indexed by the W3C standard. The order **CANNOT CHANGE**! See the\n * specification listed under {@link MediaError} for more information.\n *\n * @enum {array}\n * @readonly\n * @property {string} 0 - MEDIA_ERR_CUSTOM\n * @property {string} 1 - MEDIA_ERR_ABORTED\n * @property {string} 2 - MEDIA_ERR_NETWORK\n * @property {string} 3 - MEDIA_ERR_DECODE\n * @property {string} 4 - MEDIA_ERR_SRC_NOT_SUPPORTED\n * @property {string} 5 - MEDIA_ERR_ENCRYPTED\n */\n\nMediaError.errorTypes = ['MEDIA_ERR_CUSTOM', 'MEDIA_ERR_ABORTED', 'MEDIA_ERR_NETWORK', 'MEDIA_ERR_DECODE', 'MEDIA_ERR_SRC_NOT_SUPPORTED', 'MEDIA_ERR_ENCRYPTED'];\n/**\n * The default `MediaError` messages based on the {@link MediaError.errorTypes}.\n *\n * @type {Array}\n * @constant\n */\n\nMediaError.defaultMessages = {\n 1: 'You aborted the media playback',\n 2: 'A network error caused the media download to fail part-way.',\n 3: 'The media playback was aborted due to a corruption problem or because the media used features your browser did not support.',\n 4: 'The media could not be loaded, either because the server or network failed or because the format is not supported.',\n 5: 'The media is encrypted and we do not have the keys to decrypt it.'\n}; // Add types as properties on MediaError\n// e.g. MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED = 4;\n\nfor (var errNum = 0; errNum < MediaError.errorTypes.length; errNum++) {\n MediaError[MediaError.errorTypes[errNum]] = errNum; // values should be accessible on both the class and instance\n\n MediaError.prototype[MediaError.errorTypes[errNum]] = errNum;\n} // jsdocs for instance/static members added above\n\n/**\n * Returns whether an object is `Promise`-like (i.e. has a `then` method).\n *\n * @param {Object} value\n * An object that may or may not be `Promise`-like.\n *\n * @return {boolean}\n * Whether or not the object is `Promise`-like.\n */\n\n\nfunction isPromise(value) {\n return value !== undefined && value !== null && typeof value.then === 'function';\n}\n/**\n * Silence a Promise-like object.\n *\n * This is useful for avoiding non-harmful, but potentially confusing \"uncaught\n * play promise\" rejection error messages.\n *\n * @param {Object} value\n * An object that may or may not be `Promise`-like.\n */\n\n\nfunction silencePromise(value) {\n if (isPromise(value)) {\n value.then(null, function (e) {});\n }\n}\n/**\n * @file text-track-list-converter.js Utilities for capturing text track state and\n * re-creating tracks based on a capture.\n *\n * @module text-track-list-converter\n */\n\n/**\n * Examine a single {@link TextTrack} and return a JSON-compatible javascript object that\n * represents the {@link TextTrack}'s state.\n *\n * @param {TextTrack} track\n * The text track to query.\n *\n * @return {Object}\n * A serializable javascript representation of the TextTrack.\n * @private\n */\n\n\nvar trackToJson_ = function trackToJson_(track) {\n var ret = ['kind', 'label', 'language', 'id', 'inBandMetadataTrackDispatchType', 'mode', 'src'].reduce(function (acc, prop, i) {\n if (track[prop]) {\n acc[prop] = track[prop];\n }\n\n return acc;\n }, {\n cues: track.cues && Array.prototype.map.call(track.cues, function (cue) {\n return {\n startTime: cue.startTime,\n endTime: cue.endTime,\n text: cue.text,\n id: cue.id\n };\n })\n });\n return ret;\n};\n/**\n * Examine a {@link Tech} and return a JSON-compatible javascript array that represents the\n * state of all {@link TextTrack}s currently configured. The return array is compatible with\n * {@link text-track-list-converter:jsonToTextTracks}.\n *\n * @param {Tech} tech\n * The tech object to query\n *\n * @return {Array}\n * A serializable javascript representation of the {@link Tech}s\n * {@link TextTrackList}.\n */\n\n\nvar textTracksToJson = function textTracksToJson(tech) {\n var trackEls = tech.$$('track');\n var trackObjs = Array.prototype.map.call(trackEls, function (t) {\n return t.track;\n });\n var tracks = Array.prototype.map.call(trackEls, function (trackEl) {\n var json = trackToJson_(trackEl.track);\n\n if (trackEl.src) {\n json.src = trackEl.src;\n }\n\n return json;\n });\n return tracks.concat(Array.prototype.filter.call(tech.textTracks(), function (track) {\n return trackObjs.indexOf(track) === -1;\n }).map(trackToJson_));\n};\n/**\n * Create a set of remote {@link TextTrack}s on a {@link Tech} based on an array of javascript\n * object {@link TextTrack} representations.\n *\n * @param {Array} json\n * An array of `TextTrack` representation objects, like those that would be\n * produced by `textTracksToJson`.\n *\n * @param {Tech} tech\n * The `Tech` to create the `TextTrack`s on.\n */\n\n\nvar jsonToTextTracks = function jsonToTextTracks(json, tech) {\n json.forEach(function (track) {\n var addedTrack = tech.addRemoteTextTrack(track).track;\n\n if (!track.src && track.cues) {\n track.cues.forEach(function (cue) {\n return addedTrack.addCue(cue);\n });\n }\n });\n return tech.textTracks();\n};\n\nvar textTrackConverter = {\n textTracksToJson: textTracksToJson,\n jsonToTextTracks: jsonToTextTracks,\n trackToJson_: trackToJson_\n};\nvar MODAL_CLASS_NAME = 'vjs-modal-dialog';\n/**\n * The `ModalDialog` displays over the video and its controls, which blocks\n * interaction with the player until it is closed.\n *\n * Modal dialogs include a \"Close\" button and will close when that button\n * is activated - or when ESC is pressed anywhere.\n *\n * @extends Component\n */\n\nvar ModalDialog = /*#__PURE__*/function (_Component) {\n _inheritsLoose(ModalDialog, _Component);\n /**\n * Create an instance of this class.\n *\n * @param {Player} player\n * The `Player` that this class should be attached to.\n *\n * @param {Object} [options]\n * The key/value store of player options.\n *\n * @param {Mixed} [options.content=undefined]\n * Provide customized content for this modal.\n *\n * @param {string} [options.description]\n * A text description for the modal, primarily for accessibility.\n *\n * @param {boolean} [options.fillAlways=false]\n * Normally, modals are automatically filled only the first time\n * they open. This tells the modal to refresh its content\n * every time it opens.\n *\n * @param {string} [options.label]\n * A text label for the modal, primarily for accessibility.\n *\n * @param {boolean} [options.pauseOnOpen=true]\n * If `true`, playback will will be paused if playing when\n * the modal opens, and resumed when it closes.\n *\n * @param {boolean} [options.temporary=true]\n * If `true`, the modal can only be opened once; it will be\n * disposed as soon as it's closed.\n *\n * @param {boolean} [options.uncloseable=false]\n * If `true`, the user will not be able to close the modal\n * through the UI in the normal ways. Programmatic closing is\n * still possible.\n */\n\n\n function ModalDialog(player, options) {\n var _this;\n\n _this = _Component.call(this, player, options) || this;\n\n _this.handleKeyDown_ = function (e) {\n return _this.handleKeyDown(e);\n };\n\n _this.close_ = function (e) {\n return _this.close(e);\n };\n\n _this.opened_ = _this.hasBeenOpened_ = _this.hasBeenFilled_ = false;\n\n _this.closeable(!_this.options_.uncloseable);\n\n _this.content(_this.options_.content); // Make sure the contentEl is defined AFTER any children are initialized\n // because we only want the contents of the modal in the contentEl\n // (not the UI elements like the close button).\n\n\n _this.contentEl_ = createEl('div', {\n className: MODAL_CLASS_NAME + \"-content\"\n }, {\n role: 'document'\n });\n _this.descEl_ = createEl('p', {\n className: MODAL_CLASS_NAME + \"-description vjs-control-text\",\n id: _this.el().getAttribute('aria-describedby')\n });\n textContent(_this.descEl_, _this.description());\n\n _this.el_.appendChild(_this.descEl_);\n\n _this.el_.appendChild(_this.contentEl_);\n\n return _this;\n }\n /**\n * Create the `ModalDialog`'s DOM element\n *\n * @return {Element}\n * The DOM element that gets created.\n */\n\n\n var _proto = ModalDialog.prototype;\n\n _proto.createEl = function createEl() {\n return _Component.prototype.createEl.call(this, 'div', {\n className: this.buildCSSClass(),\n tabIndex: -1\n }, {\n 'aria-describedby': this.id() + \"_description\",\n 'aria-hidden': 'true',\n 'aria-label': this.label(),\n 'role': 'dialog'\n });\n };\n\n _proto.dispose = function dispose() {\n this.contentEl_ = null;\n this.descEl_ = null;\n this.previouslyActiveEl_ = null;\n\n _Component.prototype.dispose.call(this);\n }\n /**\n * Builds the default DOM `className`.\n *\n * @return {string}\n * The DOM `className` for this object.\n */\n ;\n\n _proto.buildCSSClass = function buildCSSClass() {\n return MODAL_CLASS_NAME + \" vjs-hidden \" + _Component.prototype.buildCSSClass.call(this);\n }\n /**\n * Returns the label string for this modal. Primarily used for accessibility.\n *\n * @return {string}\n * the localized or raw label of this modal.\n */\n ;\n\n _proto.label = function label() {\n return this.localize(this.options_.label || 'Modal Window');\n }\n /**\n * Returns the description string for this modal. Primarily used for\n * accessibility.\n *\n * @return {string}\n * The localized or raw description of this modal.\n */\n ;\n\n _proto.description = function description() {\n var desc = this.options_.description || this.localize('This is a modal window.'); // Append a universal closeability message if the modal is closeable.\n\n if (this.closeable()) {\n desc += ' ' + this.localize('This modal can be closed by pressing the Escape key or activating the close button.');\n }\n\n return desc;\n }\n /**\n * Opens the modal.\n *\n * @fires ModalDialog#beforemodalopen\n * @fires ModalDialog#modalopen\n */\n ;\n\n _proto.open = function open() {\n if (!this.opened_) {\n var player = this.player();\n /**\n * Fired just before a `ModalDialog` is opened.\n *\n * @event ModalDialog#beforemodalopen\n * @type {EventTarget~Event}\n */\n\n this.trigger('beforemodalopen');\n this.opened_ = true; // Fill content if the modal has never opened before and\n // never been filled.\n\n if (this.options_.fillAlways || !this.hasBeenOpened_ && !this.hasBeenFilled_) {\n this.fill();\n } // If the player was playing, pause it and take note of its previously\n // playing state.\n\n\n this.wasPlaying_ = !player.paused();\n\n if (this.options_.pauseOnOpen && this.wasPlaying_) {\n player.pause();\n }\n\n this.on('keydown', this.handleKeyDown_); // Hide controls and note if they were enabled.\n\n this.hadControls_ = player.controls();\n player.controls(false);\n this.show();\n this.conditionalFocus_();\n this.el().setAttribute('aria-hidden', 'false');\n /**\n * Fired just after a `ModalDialog` is opened.\n *\n * @event ModalDialog#modalopen\n * @type {EventTarget~Event}\n */\n\n this.trigger('modalopen');\n this.hasBeenOpened_ = true;\n }\n }\n /**\n * If the `ModalDialog` is currently open or closed.\n *\n * @param {boolean} [value]\n * If given, it will open (`true`) or close (`false`) the modal.\n *\n * @return {boolean}\n * the current open state of the modaldialog\n */\n ;\n\n _proto.opened = function opened(value) {\n if (typeof value === 'boolean') {\n this[value ? 'open' : 'close']();\n }\n\n return this.opened_;\n }\n /**\n * Closes the modal, does nothing if the `ModalDialog` is\n * not open.\n *\n * @fires ModalDialog#beforemodalclose\n * @fires ModalDialog#modalclose\n */\n ;\n\n _proto.close = function close() {\n if (!this.opened_) {\n return;\n }\n\n var player = this.player();\n /**\n * Fired just before a `ModalDialog` is closed.\n *\n * @event ModalDialog#beforemodalclose\n * @type {EventTarget~Event}\n */\n\n this.trigger('beforemodalclose');\n this.opened_ = false;\n\n if (this.wasPlaying_ && this.options_.pauseOnOpen) {\n player.play();\n }\n\n this.off('keydown', this.handleKeyDown_);\n\n if (this.hadControls_) {\n player.controls(true);\n }\n\n this.hide();\n this.el().setAttribute('aria-hidden', 'true');\n /**\n * Fired just after a `ModalDialog` is closed.\n *\n * @event ModalDialog#modalclose\n * @type {EventTarget~Event}\n */\n\n this.trigger('modalclose');\n this.conditionalBlur_();\n\n if (this.options_.temporary) {\n this.dispose();\n }\n }\n /**\n * Check to see if the `ModalDialog` is closeable via the UI.\n *\n * @param {boolean} [value]\n * If given as a boolean, it will set the `closeable` option.\n *\n * @return {boolean}\n * Returns the final value of the closable option.\n */\n ;\n\n _proto.closeable = function closeable(value) {\n if (typeof value === 'boolean') {\n var closeable = this.closeable_ = !!value;\n var close = this.getChild('closeButton'); // If this is being made closeable and has no close button, add one.\n\n if (closeable && !close) {\n // The close button should be a child of the modal - not its\n // content element, so temporarily change the content element.\n var temp = this.contentEl_;\n this.contentEl_ = this.el_;\n close = this.addChild('closeButton', {\n controlText: 'Close Modal Dialog'\n });\n this.contentEl_ = temp;\n this.on(close, 'close', this.close_);\n } // If this is being made uncloseable and has a close button, remove it.\n\n\n if (!closeable && close) {\n this.off(close, 'close', this.close_);\n this.removeChild(close);\n close.dispose();\n }\n }\n\n return this.closeable_;\n }\n /**\n * Fill the modal's content element with the modal's \"content\" option.\n * The content element will be emptied before this change takes place.\n */\n ;\n\n _proto.fill = function fill() {\n this.fillWith(this.content());\n }\n /**\n * Fill the modal's content element with arbitrary content.\n * The content element will be emptied before this change takes place.\n *\n * @fires ModalDialog#beforemodalfill\n * @fires ModalDialog#modalfill\n *\n * @param {Mixed} [content]\n * The same rules apply to this as apply to the `content` option.\n */\n ;\n\n _proto.fillWith = function fillWith(content) {\n var contentEl = this.contentEl();\n var parentEl = contentEl.parentNode;\n var nextSiblingEl = contentEl.nextSibling;\n /**\n * Fired just before a `ModalDialog` is filled with content.\n *\n * @event ModalDialog#beforemodalfill\n * @type {EventTarget~Event}\n */\n\n this.trigger('beforemodalfill');\n this.hasBeenFilled_ = true; // Detach the content element from the DOM before performing\n // manipulation to avoid modifying the live DOM multiple times.\n\n parentEl.removeChild(contentEl);\n this.empty();\n insertContent(contentEl, content);\n /**\n * Fired just after a `ModalDialog` is filled with content.\n *\n * @event ModalDialog#modalfill\n * @type {EventTarget~Event}\n */\n\n this.trigger('modalfill'); // Re-inject the re-filled content element.\n\n if (nextSiblingEl) {\n parentEl.insertBefore(contentEl, nextSiblingEl);\n } else {\n parentEl.appendChild(contentEl);\n } // make sure that the close button is last in the dialog DOM\n\n\n var closeButton = this.getChild('closeButton');\n\n if (closeButton) {\n parentEl.appendChild(closeButton.el_);\n }\n }\n /**\n * Empties the content element. This happens anytime the modal is filled.\n *\n * @fires ModalDialog#beforemodalempty\n * @fires ModalDialog#modalempty\n */\n ;\n\n _proto.empty = function empty() {\n /**\n * Fired just before a `ModalDialog` is emptied.\n *\n * @event ModalDialog#beforemodalempty\n * @type {EventTarget~Event}\n */\n this.trigger('beforemodalempty');\n emptyEl(this.contentEl());\n /**\n * Fired just after a `ModalDialog` is emptied.\n *\n * @event ModalDialog#modalempty\n * @type {EventTarget~Event}\n */\n\n this.trigger('modalempty');\n }\n /**\n * Gets or sets the modal content, which gets normalized before being\n * rendered into the DOM.\n *\n * This does not update the DOM or fill the modal, but it is called during\n * that process.\n *\n * @param {Mixed} [value]\n * If defined, sets the internal content value to be used on the\n * next call(s) to `fill`. This value is normalized before being\n * inserted. To \"clear\" the internal content value, pass `null`.\n *\n * @return {Mixed}\n * The current content of the modal dialog\n */\n ;\n\n _proto.content = function content(value) {\n if (typeof value !== 'undefined') {\n this.content_ = value;\n }\n\n return this.content_;\n }\n /**\n * conditionally focus the modal dialog if focus was previously on the player.\n *\n * @private\n */\n ;\n\n _proto.conditionalFocus_ = function conditionalFocus_() {\n var activeEl = document.activeElement;\n var playerEl = this.player_.el_;\n this.previouslyActiveEl_ = null;\n\n if (playerEl.contains(activeEl) || playerEl === activeEl) {\n this.previouslyActiveEl_ = activeEl;\n this.focus();\n }\n }\n /**\n * conditionally blur the element and refocus the last focused element\n *\n * @private\n */\n ;\n\n _proto.conditionalBlur_ = function conditionalBlur_() {\n if (this.previouslyActiveEl_) {\n this.previouslyActiveEl_.focus();\n this.previouslyActiveEl_ = null;\n }\n }\n /**\n * Keydown handler. Attached when modal is focused.\n *\n * @listens keydown\n */\n ;\n\n _proto.handleKeyDown = function handleKeyDown(event) {\n // Do not allow keydowns to reach out of the modal dialog.\n event.stopPropagation();\n\n if (keycode.isEventKey(event, 'Escape') && this.closeable()) {\n event.preventDefault();\n this.close();\n return;\n } // exit early if it isn't a tab key\n\n\n if (!keycode.isEventKey(event, 'Tab')) {\n return;\n }\n\n var focusableEls = this.focusableEls_();\n var activeEl = this.el_.querySelector(':focus');\n var focusIndex;\n\n for (var i = 0; i < focusableEls.length; i++) {\n if (activeEl === focusableEls[i]) {\n focusIndex = i;\n break;\n }\n }\n\n if (document.activeElement === this.el_) {\n focusIndex = 0;\n }\n\n if (event.shiftKey && focusIndex === 0) {\n focusableEls[focusableEls.length - 1].focus();\n event.preventDefault();\n } else if (!event.shiftKey && focusIndex === focusableEls.length - 1) {\n focusableEls[0].focus();\n event.preventDefault();\n }\n }\n /**\n * get all focusable elements\n *\n * @private\n */\n ;\n\n _proto.focusableEls_ = function focusableEls_() {\n var allChildren = this.el_.querySelectorAll('*');\n return Array.prototype.filter.call(allChildren, function (child) {\n return (child instanceof window$1.HTMLAnchorElement || child instanceof window$1.HTMLAreaElement) && child.hasAttribute('href') || (child instanceof window$1.HTMLInputElement || child instanceof window$1.HTMLSelectElement || child instanceof window$1.HTMLTextAreaElement || child instanceof window$1.HTMLButtonElement) && !child.hasAttribute('disabled') || child instanceof window$1.HTMLIFrameElement || child instanceof window$1.HTMLObjectElement || child instanceof window$1.HTMLEmbedElement || child.hasAttribute('tabindex') && child.getAttribute('tabindex') !== -1 || child.hasAttribute('contenteditable');\n });\n };\n\n return ModalDialog;\n}(Component$1);\n/**\n * Default options for `ModalDialog` default options.\n *\n * @type {Object}\n * @private\n */\n\n\nModalDialog.prototype.options_ = {\n pauseOnOpen: true,\n temporary: true\n};\nComponent$1.registerComponent('ModalDialog', ModalDialog);\n/**\n * Common functionaliy between {@link TextTrackList}, {@link AudioTrackList}, and\n * {@link VideoTrackList}\n *\n * @extends EventTarget\n */\n\nvar TrackList = /*#__PURE__*/function (_EventTarget) {\n _inheritsLoose(TrackList, _EventTarget);\n /**\n * Create an instance of this class\n *\n * @param {Track[]} tracks\n * A list of tracks to initialize the list with.\n *\n * @abstract\n */\n\n\n function TrackList(tracks) {\n var _this;\n\n if (tracks === void 0) {\n tracks = [];\n }\n\n _this = _EventTarget.call(this) || this;\n _this.tracks_ = [];\n /**\n * @memberof TrackList\n * @member {number} length\n * The current number of `Track`s in the this Trackist.\n * @instance\n */\n\n Object.defineProperty(_assertThisInitialized(_this), 'length', {\n get: function get() {\n return this.tracks_.length;\n }\n });\n\n for (var i = 0; i < tracks.length; i++) {\n _this.addTrack(tracks[i]);\n }\n\n return _this;\n }\n /**\n * Add a {@link Track} to the `TrackList`\n *\n * @param {Track} track\n * The audio, video, or text track to add to the list.\n *\n * @fires TrackList#addtrack\n */\n\n\n var _proto = TrackList.prototype;\n\n _proto.addTrack = function addTrack(track) {\n var _this2 = this;\n\n var index = this.tracks_.length;\n\n if (!('' + index in this)) {\n Object.defineProperty(this, index, {\n get: function get() {\n return this.tracks_[index];\n }\n });\n } // Do not add duplicate tracks\n\n\n if (this.tracks_.indexOf(track) === -1) {\n this.tracks_.push(track);\n /**\n * Triggered when a track is added to a track list.\n *\n * @event TrackList#addtrack\n * @type {EventTarget~Event}\n * @property {Track} track\n * A reference to track that was added.\n */\n\n this.trigger({\n track: track,\n type: 'addtrack',\n target: this\n });\n }\n /**\n * Triggered when a track label is changed.\n *\n * @event TrackList#addtrack\n * @type {EventTarget~Event}\n * @property {Track} track\n * A reference to track that was added.\n */\n\n\n track.labelchange_ = function () {\n _this2.trigger({\n track: track,\n type: 'labelchange',\n target: _this2\n });\n };\n\n if (isEvented(track)) {\n track.addEventListener('labelchange', track.labelchange_);\n }\n }\n /**\n * Remove a {@link Track} from the `TrackList`\n *\n * @param {Track} rtrack\n * The audio, video, or text track to remove from the list.\n *\n * @fires TrackList#removetrack\n */\n ;\n\n _proto.removeTrack = function removeTrack(rtrack) {\n var track;\n\n for (var i = 0, l = this.length; i < l; i++) {\n if (this[i] === rtrack) {\n track = this[i];\n\n if (track.off) {\n track.off();\n }\n\n this.tracks_.splice(i, 1);\n break;\n }\n }\n\n if (!track) {\n return;\n }\n /**\n * Triggered when a track is removed from track list.\n *\n * @event TrackList#removetrack\n * @type {EventTarget~Event}\n * @property {Track} track\n * A reference to track that was removed.\n */\n\n\n this.trigger({\n track: track,\n type: 'removetrack',\n target: this\n });\n }\n /**\n * Get a Track from the TrackList by a tracks id\n *\n * @param {string} id - the id of the track to get\n * @method getTrackById\n * @return {Track}\n * @private\n */\n ;\n\n _proto.getTrackById = function getTrackById(id) {\n var result = null;\n\n for (var i = 0, l = this.length; i < l; i++) {\n var track = this[i];\n\n if (track.id === id) {\n result = track;\n break;\n }\n }\n\n return result;\n };\n\n return TrackList;\n}(EventTarget$2);\n/**\n * Triggered when a different track is selected/enabled.\n *\n * @event TrackList#change\n * @type {EventTarget~Event}\n */\n\n/**\n * Events that can be called with on + eventName. See {@link EventHandler}.\n *\n * @property {Object} TrackList#allowedEvents_\n * @private\n */\n\n\nTrackList.prototype.allowedEvents_ = {\n change: 'change',\n addtrack: 'addtrack',\n removetrack: 'removetrack',\n labelchange: 'labelchange'\n}; // emulate attribute EventHandler support to allow for feature detection\n\nfor (var event in TrackList.prototype.allowedEvents_) {\n TrackList.prototype['on' + event] = null;\n}\n/**\n * Anywhere we call this function we diverge from the spec\n * as we only support one enabled audiotrack at a time\n *\n * @param {AudioTrackList} list\n * list to work on\n *\n * @param {AudioTrack} track\n * The track to skip\n *\n * @private\n */\n\n\nvar disableOthers$1 = function disableOthers(list, track) {\n for (var i = 0; i < list.length; i++) {\n if (!Object.keys(list[i]).length || track.id === list[i].id) {\n continue;\n } // another audio track is enabled, disable it\n\n\n list[i].enabled = false;\n }\n};\n/**\n * The current list of {@link AudioTrack} for a media file.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#audiotracklist}\n * @extends TrackList\n */\n\n\nvar AudioTrackList = /*#__PURE__*/function (_TrackList) {\n _inheritsLoose(AudioTrackList, _TrackList);\n /**\n * Create an instance of this class.\n *\n * @param {AudioTrack[]} [tracks=[]]\n * A list of `AudioTrack` to instantiate the list with.\n */\n\n\n function AudioTrackList(tracks) {\n var _this;\n\n if (tracks === void 0) {\n tracks = [];\n } // make sure only 1 track is enabled\n // sorted from last index to first index\n\n\n for (var i = tracks.length - 1; i >= 0; i--) {\n if (tracks[i].enabled) {\n disableOthers$1(tracks, tracks[i]);\n break;\n }\n }\n\n _this = _TrackList.call(this, tracks) || this;\n _this.changing_ = false;\n return _this;\n }\n /**\n * Add an {@link AudioTrack} to the `AudioTrackList`.\n *\n * @param {AudioTrack} track\n * The AudioTrack to add to the list\n *\n * @fires TrackList#addtrack\n */\n\n\n var _proto = AudioTrackList.prototype;\n\n _proto.addTrack = function addTrack(track) {\n var _this2 = this;\n\n if (track.enabled) {\n disableOthers$1(this, track);\n }\n\n _TrackList.prototype.addTrack.call(this, track); // native tracks don't have this\n\n\n if (!track.addEventListener) {\n return;\n }\n\n track.enabledChange_ = function () {\n // when we are disabling other tracks (since we don't support\n // more than one track at a time) we will set changing_\n // to true so that we don't trigger additional change events\n if (_this2.changing_) {\n return;\n }\n\n _this2.changing_ = true;\n disableOthers$1(_this2, track);\n _this2.changing_ = false;\n\n _this2.trigger('change');\n };\n /**\n * @listens AudioTrack#enabledchange\n * @fires TrackList#change\n */\n\n\n track.addEventListener('enabledchange', track.enabledChange_);\n };\n\n _proto.removeTrack = function removeTrack(rtrack) {\n _TrackList.prototype.removeTrack.call(this, rtrack);\n\n if (rtrack.removeEventListener && rtrack.enabledChange_) {\n rtrack.removeEventListener('enabledchange', rtrack.enabledChange_);\n rtrack.enabledChange_ = null;\n }\n };\n\n return AudioTrackList;\n}(TrackList);\n/**\n * Un-select all other {@link VideoTrack}s that are selected.\n *\n * @param {VideoTrackList} list\n * list to work on\n *\n * @param {VideoTrack} track\n * The track to skip\n *\n * @private\n */\n\n\nvar disableOthers = function disableOthers(list, track) {\n for (var i = 0; i < list.length; i++) {\n if (!Object.keys(list[i]).length || track.id === list[i].id) {\n continue;\n } // another video track is enabled, disable it\n\n\n list[i].selected = false;\n }\n};\n/**\n * The current list of {@link VideoTrack} for a video.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#videotracklist}\n * @extends TrackList\n */\n\n\nvar VideoTrackList = /*#__PURE__*/function (_TrackList) {\n _inheritsLoose(VideoTrackList, _TrackList);\n /**\n * Create an instance of this class.\n *\n * @param {VideoTrack[]} [tracks=[]]\n * A list of `VideoTrack` to instantiate the list with.\n */\n\n\n function VideoTrackList(tracks) {\n var _this;\n\n if (tracks === void 0) {\n tracks = [];\n } // make sure only 1 track is enabled\n // sorted from last index to first index\n\n\n for (var i = tracks.length - 1; i >= 0; i--) {\n if (tracks[i].selected) {\n disableOthers(tracks, tracks[i]);\n break;\n }\n }\n\n _this = _TrackList.call(this, tracks) || this;\n _this.changing_ = false;\n /**\n * @member {number} VideoTrackList#selectedIndex\n * The current index of the selected {@link VideoTrack`}.\n */\n\n Object.defineProperty(_assertThisInitialized(_this), 'selectedIndex', {\n get: function get() {\n for (var _i = 0; _i < this.length; _i++) {\n if (this[_i].selected) {\n return _i;\n }\n }\n\n return -1;\n },\n set: function set() {}\n });\n return _this;\n }\n /**\n * Add a {@link VideoTrack} to the `VideoTrackList`.\n *\n * @param {VideoTrack} track\n * The VideoTrack to add to the list\n *\n * @fires TrackList#addtrack\n */\n\n\n var _proto = VideoTrackList.prototype;\n\n _proto.addTrack = function addTrack(track) {\n var _this2 = this;\n\n if (track.selected) {\n disableOthers(this, track);\n }\n\n _TrackList.prototype.addTrack.call(this, track); // native tracks don't have this\n\n\n if (!track.addEventListener) {\n return;\n }\n\n track.selectedChange_ = function () {\n if (_this2.changing_) {\n return;\n }\n\n _this2.changing_ = true;\n disableOthers(_this2, track);\n _this2.changing_ = false;\n\n _this2.trigger('change');\n };\n /**\n * @listens VideoTrack#selectedchange\n * @fires TrackList#change\n */\n\n\n track.addEventListener('selectedchange', track.selectedChange_);\n };\n\n _proto.removeTrack = function removeTrack(rtrack) {\n _TrackList.prototype.removeTrack.call(this, rtrack);\n\n if (rtrack.removeEventListener && rtrack.selectedChange_) {\n rtrack.removeEventListener('selectedchange', rtrack.selectedChange_);\n rtrack.selectedChange_ = null;\n }\n };\n\n return VideoTrackList;\n}(TrackList);\n/**\n * The current list of {@link TextTrack} for a media file.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttracklist}\n * @extends TrackList\n */\n\n\nvar TextTrackList = /*#__PURE__*/function (_TrackList) {\n _inheritsLoose(TextTrackList, _TrackList);\n\n function TextTrackList() {\n return _TrackList.apply(this, arguments) || this;\n }\n\n var _proto = TextTrackList.prototype;\n /**\n * Add a {@link TextTrack} to the `TextTrackList`\n *\n * @param {TextTrack} track\n * The text track to add to the list.\n *\n * @fires TrackList#addtrack\n */\n\n _proto.addTrack = function addTrack(track) {\n var _this = this;\n\n _TrackList.prototype.addTrack.call(this, track);\n\n if (!this.queueChange_) {\n this.queueChange_ = function () {\n return _this.queueTrigger('change');\n };\n }\n\n if (!this.triggerSelectedlanguagechange) {\n this.triggerSelectedlanguagechange_ = function () {\n return _this.trigger('selectedlanguagechange');\n };\n }\n /**\n * @listens TextTrack#modechange\n * @fires TrackList#change\n */\n\n\n track.addEventListener('modechange', this.queueChange_);\n var nonLanguageTextTrackKind = ['metadata', 'chapters'];\n\n if (nonLanguageTextTrackKind.indexOf(track.kind) === -1) {\n track.addEventListener('modechange', this.triggerSelectedlanguagechange_);\n }\n };\n\n _proto.removeTrack = function removeTrack(rtrack) {\n _TrackList.prototype.removeTrack.call(this, rtrack); // manually remove the event handlers we added\n\n\n if (rtrack.removeEventListener) {\n if (this.queueChange_) {\n rtrack.removeEventListener('modechange', this.queueChange_);\n }\n\n if (this.selectedlanguagechange_) {\n rtrack.removeEventListener('modechange', this.triggerSelectedlanguagechange_);\n }\n }\n };\n\n return TextTrackList;\n}(TrackList);\n/**\n * @file html-track-element-list.js\n */\n\n/**\n * The current list of {@link HtmlTrackElement}s.\n */\n\n\nvar HtmlTrackElementList = /*#__PURE__*/function () {\n /**\n * Create an instance of this class.\n *\n * @param {HtmlTrackElement[]} [tracks=[]]\n * A list of `HtmlTrackElement` to instantiate the list with.\n */\n function HtmlTrackElementList(trackElements) {\n if (trackElements === void 0) {\n trackElements = [];\n }\n\n this.trackElements_ = [];\n /**\n * @memberof HtmlTrackElementList\n * @member {number} length\n * The current number of `Track`s in the this Trackist.\n * @instance\n */\n\n Object.defineProperty(this, 'length', {\n get: function get() {\n return this.trackElements_.length;\n }\n });\n\n for (var i = 0, length = trackElements.length; i < length; i++) {\n this.addTrackElement_(trackElements[i]);\n }\n }\n /**\n * Add an {@link HtmlTrackElement} to the `HtmlTrackElementList`\n *\n * @param {HtmlTrackElement} trackElement\n * The track element to add to the list.\n *\n * @private\n */\n\n\n var _proto = HtmlTrackElementList.prototype;\n\n _proto.addTrackElement_ = function addTrackElement_(trackElement) {\n var index = this.trackElements_.length;\n\n if (!('' + index in this)) {\n Object.defineProperty(this, index, {\n get: function get() {\n return this.trackElements_[index];\n }\n });\n } // Do not add duplicate elements\n\n\n if (this.trackElements_.indexOf(trackElement) === -1) {\n this.trackElements_.push(trackElement);\n }\n }\n /**\n * Get an {@link HtmlTrackElement} from the `HtmlTrackElementList` given an\n * {@link TextTrack}.\n *\n * @param {TextTrack} track\n * The track associated with a track element.\n *\n * @return {HtmlTrackElement|undefined}\n * The track element that was found or undefined.\n *\n * @private\n */\n ;\n\n _proto.getTrackElementByTrack_ = function getTrackElementByTrack_(track) {\n var trackElement_;\n\n for (var i = 0, length = this.trackElements_.length; i < length; i++) {\n if (track === this.trackElements_[i].track) {\n trackElement_ = this.trackElements_[i];\n break;\n }\n }\n\n return trackElement_;\n }\n /**\n * Remove a {@link HtmlTrackElement} from the `HtmlTrackElementList`\n *\n * @param {HtmlTrackElement} trackElement\n * The track element to remove from the list.\n *\n * @private\n */\n ;\n\n _proto.removeTrackElement_ = function removeTrackElement_(trackElement) {\n for (var i = 0, length = this.trackElements_.length; i < length; i++) {\n if (trackElement === this.trackElements_[i]) {\n if (this.trackElements_[i].track && typeof this.trackElements_[i].track.off === 'function') {\n this.trackElements_[i].track.off();\n }\n\n if (typeof this.trackElements_[i].off === 'function') {\n this.trackElements_[i].off();\n }\n\n this.trackElements_.splice(i, 1);\n break;\n }\n }\n };\n\n return HtmlTrackElementList;\n}();\n/**\n * @file text-track-cue-list.js\n */\n\n/**\n * @typedef {Object} TextTrackCueList~TextTrackCue\n *\n * @property {string} id\n * The unique id for this text track cue\n *\n * @property {number} startTime\n * The start time for this text track cue\n *\n * @property {number} endTime\n * The end time for this text track cue\n *\n * @property {boolean} pauseOnExit\n * Pause when the end time is reached if true.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcue}\n */\n\n/**\n * A List of TextTrackCues.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist}\n */\n\n\nvar TextTrackCueList = /*#__PURE__*/function () {\n /**\n * Create an instance of this class..\n *\n * @param {Array} cues\n * A list of cues to be initialized with\n */\n function TextTrackCueList(cues) {\n TextTrackCueList.prototype.setCues_.call(this, cues);\n /**\n * @memberof TextTrackCueList\n * @member {number} length\n * The current number of `TextTrackCue`s in the TextTrackCueList.\n * @instance\n */\n\n Object.defineProperty(this, 'length', {\n get: function get() {\n return this.length_;\n }\n });\n }\n /**\n * A setter for cues in this list. Creates getters\n * an an index for the cues.\n *\n * @param {Array} cues\n * An array of cues to set\n *\n * @private\n */\n\n\n var _proto = TextTrackCueList.prototype;\n\n _proto.setCues_ = function setCues_(cues) {\n var oldLength = this.length || 0;\n var i = 0;\n var l = cues.length;\n this.cues_ = cues;\n this.length_ = cues.length;\n\n var defineProp = function defineProp(index) {\n if (!('' + index in this)) {\n Object.defineProperty(this, '' + index, {\n get: function get() {\n return this.cues_[index];\n }\n });\n }\n };\n\n if (oldLength < l) {\n i = oldLength;\n\n for (; i < l; i++) {\n defineProp.call(this, i);\n }\n }\n }\n /**\n * Get a `TextTrackCue` that is currently in the `TextTrackCueList` by id.\n *\n * @param {string} id\n * The id of the cue that should be searched for.\n *\n * @return {TextTrackCueList~TextTrackCue|null}\n * A single cue or null if none was found.\n */\n ;\n\n _proto.getCueById = function getCueById(id) {\n var result = null;\n\n for (var i = 0, l = this.length; i < l; i++) {\n var cue = this[i];\n\n if (cue.id === id) {\n result = cue;\n break;\n }\n }\n\n return result;\n };\n\n return TextTrackCueList;\n}();\n/**\n * @file track-kinds.js\n */\n\n/**\n * All possible `VideoTrackKind`s\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-videotrack-kind\n * @typedef VideoTrack~Kind\n * @enum\n */\n\n\nvar VideoTrackKind = {\n alternative: 'alternative',\n captions: 'captions',\n main: 'main',\n sign: 'sign',\n subtitles: 'subtitles',\n commentary: 'commentary'\n};\n/**\n * All possible `AudioTrackKind`s\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-audiotrack-kind\n * @typedef AudioTrack~Kind\n * @enum\n */\n\nvar AudioTrackKind = {\n 'alternative': 'alternative',\n 'descriptions': 'descriptions',\n 'main': 'main',\n 'main-desc': 'main-desc',\n 'translation': 'translation',\n 'commentary': 'commentary'\n};\n/**\n * All possible `TextTrackKind`s\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-texttrack-kind\n * @typedef TextTrack~Kind\n * @enum\n */\n\nvar TextTrackKind = {\n subtitles: 'subtitles',\n captions: 'captions',\n descriptions: 'descriptions',\n chapters: 'chapters',\n metadata: 'metadata'\n};\n/**\n * All possible `TextTrackMode`s\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackmode\n * @typedef TextTrack~Mode\n * @enum\n */\n\nvar TextTrackMode = {\n disabled: 'disabled',\n hidden: 'hidden',\n showing: 'showing'\n};\n/**\n * A Track class that contains all of the common functionality for {@link AudioTrack},\n * {@link VideoTrack}, and {@link TextTrack}.\n *\n * > Note: This class should not be used directly\n *\n * @see {@link https://html.spec.whatwg.org/multipage/embedded-content.html}\n * @extends EventTarget\n * @abstract\n */\n\nvar Track = /*#__PURE__*/function (_EventTarget) {\n _inheritsLoose(Track, _EventTarget);\n /**\n * Create an instance of this class.\n *\n * @param {Object} [options={}]\n * Object of option names and values\n *\n * @param {string} [options.kind='']\n * A valid kind for the track type you are creating.\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this AudioTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @abstract\n */\n\n\n function Track(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n _this = _EventTarget.call(this) || this;\n var trackProps = {\n id: options.id || 'vjs_track_' + newGUID(),\n kind: options.kind || '',\n language: options.language || ''\n };\n var label = options.label || '';\n /**\n * @memberof Track\n * @member {string} id\n * The id of this track. Cannot be changed after creation.\n * @instance\n *\n * @readonly\n */\n\n /**\n * @memberof Track\n * @member {string} kind\n * The kind of track that this is. Cannot be changed after creation.\n * @instance\n *\n * @readonly\n */\n\n /**\n * @memberof Track\n * @member {string} language\n * The two letter language code for this track. Cannot be changed after\n * creation.\n * @instance\n *\n * @readonly\n */\n\n var _loop = function _loop(key) {\n Object.defineProperty(_assertThisInitialized(_this), key, {\n get: function get() {\n return trackProps[key];\n },\n set: function set() {}\n });\n };\n\n for (var key in trackProps) {\n _loop(key);\n }\n /**\n * @memberof Track\n * @member {string} label\n * The label of this track. Cannot be changed after creation.\n * @instance\n *\n * @fires Track#labelchange\n */\n\n\n Object.defineProperty(_assertThisInitialized(_this), 'label', {\n get: function get() {\n return label;\n },\n set: function set(newLabel) {\n if (newLabel !== label) {\n label = newLabel;\n /**\n * An event that fires when label changes on this track.\n *\n * > Note: This is not part of the spec!\n *\n * @event Track#labelchange\n * @type {EventTarget~Event}\n */\n\n this.trigger('labelchange');\n }\n }\n });\n return _this;\n }\n\n return Track;\n}(EventTarget$2);\n/**\n * @file url.js\n * @module url\n */\n\n/**\n * @typedef {Object} url:URLObject\n *\n * @property {string} protocol\n * The protocol of the url that was parsed.\n *\n * @property {string} hostname\n * The hostname of the url that was parsed.\n *\n * @property {string} port\n * The port of the url that was parsed.\n *\n * @property {string} pathname\n * The pathname of the url that was parsed.\n *\n * @property {string} search\n * The search query of the url that was parsed.\n *\n * @property {string} hash\n * The hash of the url that was parsed.\n *\n * @property {string} host\n * The host of the url that was parsed.\n */\n\n/**\n * Resolve and parse the elements of a URL.\n *\n * @function\n * @param {String} url\n * The url to parse\n *\n * @return {url:URLObject}\n * An object of url details\n */\n\n\nvar parseUrl = function parseUrl(url) {\n // This entire method can be replace with URL once we are able to drop IE11\n var props = ['protocol', 'hostname', 'port', 'pathname', 'search', 'hash', 'host']; // add the url to an anchor and let the browser parse the URL\n\n var a = document.createElement('a');\n a.href = url; // Copy the specific URL properties to a new object\n // This is also needed for IE because the anchor loses its\n // properties when it's removed from the dom\n\n var details = {};\n\n for (var i = 0; i < props.length; i++) {\n details[props[i]] = a[props[i]];\n } // IE adds the port to the host property unlike everyone else. If\n // a port identifier is added for standard ports, strip it.\n\n\n if (details.protocol === 'http:') {\n details.host = details.host.replace(/:80$/, '');\n }\n\n if (details.protocol === 'https:') {\n details.host = details.host.replace(/:443$/, '');\n }\n\n if (!details.protocol) {\n details.protocol = window$1.location.protocol;\n }\n /* istanbul ignore if */\n\n\n if (!details.host) {\n details.host = window$1.location.host;\n }\n\n return details;\n};\n/**\n * Get absolute version of relative URL. Used to tell Flash the correct URL.\n *\n * @function\n * @param {string} url\n * URL to make absolute\n *\n * @return {string}\n * Absolute URL\n *\n * @see http://stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue\n */\n\n\nvar getAbsoluteURL = function getAbsoluteURL(url) {\n // Check if absolute URL\n if (!url.match(/^https?:\\/\\//)) {\n // Convert to absolute URL. Flash hosted off-site needs an absolute URL.\n // add the url to an anchor and let the browser parse the URL\n var a = document.createElement('a');\n a.href = url;\n url = a.href;\n }\n\n return url;\n};\n/**\n * Returns the extension of the passed file name. It will return an empty string\n * if passed an invalid path.\n *\n * @function\n * @param {string} path\n * The fileName path like '/path/to/file.mp4'\n *\n * @return {string}\n * The extension in lower case or an empty string if no\n * extension could be found.\n */\n\n\nvar getFileExtension = function getFileExtension(path) {\n if (typeof path === 'string') {\n var splitPathRe = /^(\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?)(\\.([^\\.\\/\\?]+)))(?:[\\/]*|[\\?].*)$/;\n var pathParts = splitPathRe.exec(path);\n\n if (pathParts) {\n return pathParts.pop().toLowerCase();\n }\n }\n\n return '';\n};\n/**\n * Returns whether the url passed is a cross domain request or not.\n *\n * @function\n * @param {string} url\n * The url to check.\n *\n * @param {Object} [winLoc]\n * the domain to check the url against, defaults to window.location\n *\n * @param {string} [winLoc.protocol]\n * The window location protocol defaults to window.location.protocol\n *\n * @param {string} [winLoc.host]\n * The window location host defaults to window.location.host\n *\n * @return {boolean}\n * Whether it is a cross domain request or not.\n */\n\n\nvar isCrossOrigin = function isCrossOrigin(url, winLoc) {\n if (winLoc === void 0) {\n winLoc = window$1.location;\n }\n\n var urlInfo = parseUrl(url); // IE8 protocol relative urls will return ':' for protocol\n\n var srcProtocol = urlInfo.protocol === ':' ? winLoc.protocol : urlInfo.protocol; // Check if url is for another domain/origin\n // IE8 doesn't know location.origin, so we won't rely on it here\n\n var crossOrigin = srcProtocol + urlInfo.host !== winLoc.protocol + winLoc.host;\n return crossOrigin;\n};\n\nvar Url = /*#__PURE__*/Object.freeze({\n __proto__: null,\n parseUrl: parseUrl,\n getAbsoluteURL: getAbsoluteURL,\n getFileExtension: getFileExtension,\n isCrossOrigin: isCrossOrigin\n});\n/**\n * Takes a webvtt file contents and parses it into cues\n *\n * @param {string} srcContent\n * webVTT file contents\n *\n * @param {TextTrack} track\n * TextTrack to add cues to. Cues come from the srcContent.\n *\n * @private\n */\n\nvar parseCues = function parseCues(srcContent, track) {\n var parser = new window$1.WebVTT.Parser(window$1, window$1.vttjs, window$1.WebVTT.StringDecoder());\n var errors = [];\n\n parser.oncue = function (cue) {\n track.addCue(cue);\n };\n\n parser.onparsingerror = function (error) {\n errors.push(error);\n };\n\n parser.onflush = function () {\n track.trigger({\n type: 'loadeddata',\n target: track\n });\n };\n\n parser.parse(srcContent);\n\n if (errors.length > 0) {\n if (window$1.console && window$1.console.groupCollapsed) {\n window$1.console.groupCollapsed(\"Text Track parsing errors for \" + track.src);\n }\n\n errors.forEach(function (error) {\n return log$1.error(error);\n });\n\n if (window$1.console && window$1.console.groupEnd) {\n window$1.console.groupEnd();\n }\n }\n\n parser.flush();\n};\n/**\n * Load a `TextTrack` from a specified url.\n *\n * @param {string} src\n * Url to load track from.\n *\n * @param {TextTrack} track\n * Track to add cues to. Comes from the content at the end of `url`.\n *\n * @private\n */\n\n\nvar loadTrack = function loadTrack(src, track) {\n var opts = {\n uri: src\n };\n var crossOrigin = isCrossOrigin(src);\n\n if (crossOrigin) {\n opts.cors = crossOrigin;\n }\n\n var withCredentials = track.tech_.crossOrigin() === 'use-credentials';\n\n if (withCredentials) {\n opts.withCredentials = withCredentials;\n }\n\n XHR(opts, bind(this, function (err, response, responseBody) {\n if (err) {\n return log$1.error(err, response);\n }\n\n track.loaded_ = true; // Make sure that vttjs has loaded, otherwise, wait till it finished loading\n // NOTE: this is only used for the alt/video.novtt.js build\n\n if (typeof window$1.WebVTT !== 'function') {\n if (track.tech_) {\n // to prevent use before define eslint error, we define loadHandler\n // as a let here\n track.tech_.any(['vttjsloaded', 'vttjserror'], function (event) {\n if (event.type === 'vttjserror') {\n log$1.error(\"vttjs failed to load, stopping trying to process \" + track.src);\n return;\n }\n\n return parseCues(responseBody, track);\n });\n }\n } else {\n parseCues(responseBody, track);\n }\n }));\n};\n/**\n * A representation of a single `TextTrack`.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrack}\n * @extends Track\n */\n\n\nvar TextTrack = /*#__PURE__*/function (_Track) {\n _inheritsLoose(TextTrack, _Track);\n /**\n * Create an instance of this class.\n *\n * @param {Object} options={}\n * Object of option names and values\n *\n * @param {Tech} options.tech\n * A reference to the tech that owns this TextTrack.\n *\n * @param {TextTrack~Kind} [options.kind='subtitles']\n * A valid text track kind.\n *\n * @param {TextTrack~Mode} [options.mode='disabled']\n * A valid text track mode.\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this TextTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @param {string} [options.srclang='']\n * A valid two character language code. An alternative, but deprioritized\n * version of `options.language`\n *\n * @param {string} [options.src]\n * A url to TextTrack cues.\n *\n * @param {boolean} [options.default]\n * If this track should default to on or off.\n */\n\n\n function TextTrack(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n if (!options.tech) {\n throw new Error('A tech was not provided.');\n }\n\n var settings = mergeOptions$3(options, {\n kind: TextTrackKind[options.kind] || 'subtitles',\n language: options.language || options.srclang || ''\n });\n var mode = TextTrackMode[settings.mode] || 'disabled';\n var default_ = settings[\"default\"];\n\n if (settings.kind === 'metadata' || settings.kind === 'chapters') {\n mode = 'hidden';\n }\n\n _this = _Track.call(this, settings) || this;\n _this.tech_ = settings.tech;\n _this.cues_ = [];\n _this.activeCues_ = [];\n _this.preload_ = _this.tech_.preloadTextTracks !== false;\n var cues = new TextTrackCueList(_this.cues_);\n var activeCues = new TextTrackCueList(_this.activeCues_);\n var changed = false;\n var timeupdateHandler = bind(_assertThisInitialized(_this), function () {\n if (!this.tech_.isReady_ || this.tech_.isDisposed()) {\n return;\n } // Accessing this.activeCues for the side-effects of updating itself\n // due to its nature as a getter function. Do not remove or cues will\n // stop updating!\n // Use the setter to prevent deletion from uglify (pure_getters rule)\n\n\n this.activeCues = this.activeCues;\n\n if (changed) {\n this.trigger('cuechange');\n changed = false;\n }\n });\n\n var disposeHandler = function disposeHandler() {\n _this.tech_.off('timeupdate', timeupdateHandler);\n };\n\n _this.tech_.one('dispose', disposeHandler);\n\n if (mode !== 'disabled') {\n _this.tech_.on('timeupdate', timeupdateHandler);\n }\n\n Object.defineProperties(_assertThisInitialized(_this), {\n /**\n * @memberof TextTrack\n * @member {boolean} default\n * If this track was set to be on or off by default. Cannot be changed after\n * creation.\n * @instance\n *\n * @readonly\n */\n \"default\": {\n get: function get() {\n return default_;\n },\n set: function set() {}\n },\n\n /**\n * @memberof TextTrack\n * @member {string} mode\n * Set the mode of this TextTrack to a valid {@link TextTrack~Mode}. Will\n * not be set if setting to an invalid mode.\n * @instance\n *\n * @fires TextTrack#modechange\n */\n mode: {\n get: function get() {\n return mode;\n },\n set: function set(newMode) {\n if (!TextTrackMode[newMode]) {\n return;\n }\n\n if (mode === newMode) {\n return;\n }\n\n mode = newMode;\n\n if (!this.preload_ && mode !== 'disabled' && this.cues.length === 0) {\n // On-demand load.\n loadTrack(this.src, this);\n }\n\n this.tech_.off('timeupdate', timeupdateHandler);\n\n if (mode !== 'disabled') {\n this.tech_.on('timeupdate', timeupdateHandler);\n }\n /**\n * An event that fires when mode changes on this track. This allows\n * the TextTrackList that holds this track to act accordingly.\n *\n * > Note: This is not part of the spec!\n *\n * @event TextTrack#modechange\n * @type {EventTarget~Event}\n */\n\n\n this.trigger('modechange');\n }\n },\n\n /**\n * @memberof TextTrack\n * @member {TextTrackCueList} cues\n * The text track cue list for this TextTrack.\n * @instance\n */\n cues: {\n get: function get() {\n if (!this.loaded_) {\n return null;\n }\n\n return cues;\n },\n set: function set() {}\n },\n\n /**\n * @memberof TextTrack\n * @member {TextTrackCueList} activeCues\n * The list text track cues that are currently active for this TextTrack.\n * @instance\n */\n activeCues: {\n get: function get() {\n if (!this.loaded_) {\n return null;\n } // nothing to do\n\n\n if (this.cues.length === 0) {\n return activeCues;\n }\n\n var ct = this.tech_.currentTime();\n var active = [];\n\n for (var i = 0, l = this.cues.length; i < l; i++) {\n var cue = this.cues[i];\n\n if (cue.startTime <= ct && cue.endTime >= ct) {\n active.push(cue);\n } else if (cue.startTime === cue.endTime && cue.startTime <= ct && cue.startTime + 0.5 >= ct) {\n active.push(cue);\n }\n }\n\n changed = false;\n\n if (active.length !== this.activeCues_.length) {\n changed = true;\n } else {\n for (var _i = 0; _i < active.length; _i++) {\n if (this.activeCues_.indexOf(active[_i]) === -1) {\n changed = true;\n }\n }\n }\n\n this.activeCues_ = active;\n activeCues.setCues_(this.activeCues_);\n return activeCues;\n },\n // /!\\ Keep this setter empty (see the timeupdate handler above)\n set: function set() {}\n }\n });\n\n if (settings.src) {\n _this.src = settings.src;\n\n if (!_this.preload_) {\n // Tracks will load on-demand.\n // Act like we're loaded for other purposes.\n _this.loaded_ = true;\n }\n\n if (_this.preload_ || settings.kind !== 'subtitles' && settings.kind !== 'captions') {\n loadTrack(_this.src, _assertThisInitialized(_this));\n }\n } else {\n _this.loaded_ = true;\n }\n\n return _this;\n }\n /**\n * Add a cue to the internal list of cues.\n *\n * @param {TextTrack~Cue} cue\n * The cue to add to our internal list\n */\n\n\n var _proto = TextTrack.prototype;\n\n _proto.addCue = function addCue(originalCue) {\n var cue = originalCue;\n\n if (window$1.vttjs && !(originalCue instanceof window$1.vttjs.VTTCue)) {\n cue = new window$1.vttjs.VTTCue(originalCue.startTime, originalCue.endTime, originalCue.text);\n\n for (var prop in originalCue) {\n if (!(prop in cue)) {\n cue[prop] = originalCue[prop];\n }\n } // make sure that `id` is copied over\n\n\n cue.id = originalCue.id;\n cue.originalCue_ = originalCue;\n }\n\n var tracks = this.tech_.textTracks();\n\n for (var i = 0; i < tracks.length; i++) {\n if (tracks[i] !== this) {\n tracks[i].removeCue(cue);\n }\n }\n\n this.cues_.push(cue);\n this.cues.setCues_(this.cues_);\n }\n /**\n * Remove a cue from our internal list\n *\n * @param {TextTrack~Cue} removeCue\n * The cue to remove from our internal list\n */\n ;\n\n _proto.removeCue = function removeCue(_removeCue) {\n var i = this.cues_.length;\n\n while (i--) {\n var cue = this.cues_[i];\n\n if (cue === _removeCue || cue.originalCue_ && cue.originalCue_ === _removeCue) {\n this.cues_.splice(i, 1);\n this.cues.setCues_(this.cues_);\n break;\n }\n }\n };\n\n return TextTrack;\n}(Track);\n/**\n * cuechange - One or more cues in the track have become active or stopped being active.\n */\n\n\nTextTrack.prototype.allowedEvents_ = {\n cuechange: 'cuechange'\n};\n/**\n * A representation of a single `AudioTrack`. If it is part of an {@link AudioTrackList}\n * only one `AudioTrack` in the list will be enabled at a time.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#audiotrack}\n * @extends Track\n */\n\nvar AudioTrack = /*#__PURE__*/function (_Track) {\n _inheritsLoose(AudioTrack, _Track);\n /**\n * Create an instance of this class.\n *\n * @param {Object} [options={}]\n * Object of option names and values\n *\n * @param {AudioTrack~Kind} [options.kind='']\n * A valid audio track kind\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this AudioTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @param {boolean} [options.enabled]\n * If this track is the one that is currently playing. If this track is part of\n * an {@link AudioTrackList}, only one {@link AudioTrack} will be enabled.\n */\n\n\n function AudioTrack(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n var settings = mergeOptions$3(options, {\n kind: AudioTrackKind[options.kind] || ''\n });\n _this = _Track.call(this, settings) || this;\n var enabled = false;\n /**\n * @memberof AudioTrack\n * @member {boolean} enabled\n * If this `AudioTrack` is enabled or not. When setting this will\n * fire {@link AudioTrack#enabledchange} if the state of enabled is changed.\n * @instance\n *\n * @fires VideoTrack#selectedchange\n */\n\n Object.defineProperty(_assertThisInitialized(_this), 'enabled', {\n get: function get() {\n return enabled;\n },\n set: function set(newEnabled) {\n // an invalid or unchanged value\n if (typeof newEnabled !== 'boolean' || newEnabled === enabled) {\n return;\n }\n\n enabled = newEnabled;\n /**\n * An event that fires when enabled changes on this track. This allows\n * the AudioTrackList that holds this track to act accordingly.\n *\n * > Note: This is not part of the spec! Native tracks will do\n * this internally without an event.\n *\n * @event AudioTrack#enabledchange\n * @type {EventTarget~Event}\n */\n\n this.trigger('enabledchange');\n }\n }); // if the user sets this track to selected then\n // set selected to that true value otherwise\n // we keep it false\n\n if (settings.enabled) {\n _this.enabled = settings.enabled;\n }\n\n _this.loaded_ = true;\n return _this;\n }\n\n return AudioTrack;\n}(Track);\n/**\n * A representation of a single `VideoTrack`.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#videotrack}\n * @extends Track\n */\n\n\nvar VideoTrack = /*#__PURE__*/function (_Track) {\n _inheritsLoose(VideoTrack, _Track);\n /**\n * Create an instance of this class.\n *\n * @param {Object} [options={}]\n * Object of option names and values\n *\n * @param {string} [options.kind='']\n * A valid {@link VideoTrack~Kind}\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this AudioTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @param {boolean} [options.selected]\n * If this track is the one that is currently playing.\n */\n\n\n function VideoTrack(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n var settings = mergeOptions$3(options, {\n kind: VideoTrackKind[options.kind] || ''\n });\n _this = _Track.call(this, settings) || this;\n var selected = false;\n /**\n * @memberof VideoTrack\n * @member {boolean} selected\n * If this `VideoTrack` is selected or not. When setting this will\n * fire {@link VideoTrack#selectedchange} if the state of selected changed.\n * @instance\n *\n * @fires VideoTrack#selectedchange\n */\n\n Object.defineProperty(_assertThisInitialized(_this), 'selected', {\n get: function get() {\n return selected;\n },\n set: function set(newSelected) {\n // an invalid or unchanged value\n if (typeof newSelected !== 'boolean' || newSelected === selected) {\n return;\n }\n\n selected = newSelected;\n /**\n * An event that fires when selected changes on this track. This allows\n * the VideoTrackList that holds this track to act accordingly.\n *\n * > Note: This is not part of the spec! Native tracks will do\n * this internally without an event.\n *\n * @event VideoTrack#selectedchange\n * @type {EventTarget~Event}\n */\n\n this.trigger('selectedchange');\n }\n }); // if the user sets this track to selected then\n // set selected to that true value otherwise\n // we keep it false\n\n if (settings.selected) {\n _this.selected = settings.selected;\n }\n\n return _this;\n }\n\n return VideoTrack;\n}(Track);\n/**\n * @memberof HTMLTrackElement\n * @typedef {HTMLTrackElement~ReadyState}\n * @enum {number}\n */\n\n\nvar NONE = 0;\nvar LOADING = 1;\nvar LOADED = 2;\nvar ERROR = 3;\n/**\n * A single track represented in the DOM.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#htmltrackelement}\n * @extends EventTarget\n */\n\nvar HTMLTrackElement = /*#__PURE__*/function (_EventTarget) {\n _inheritsLoose(HTMLTrackElement, _EventTarget);\n /**\n * Create an instance of this class.\n *\n * @param {Object} options={}\n * Object of option names and values\n *\n * @param {Tech} options.tech\n * A reference to the tech that owns this HTMLTrackElement.\n *\n * @param {TextTrack~Kind} [options.kind='subtitles']\n * A valid text track kind.\n *\n * @param {TextTrack~Mode} [options.mode='disabled']\n * A valid text track mode.\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this TextTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @param {string} [options.srclang='']\n * A valid two character language code. An alternative, but deprioritized\n * version of `options.language`\n *\n * @param {string} [options.src]\n * A url to TextTrack cues.\n *\n * @param {boolean} [options.default]\n * If this track should default to on or off.\n */\n\n\n function HTMLTrackElement(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n _this = _EventTarget.call(this) || this;\n var readyState;\n var track = new TextTrack(options);\n _this.kind = track.kind;\n _this.src = track.src;\n _this.srclang = track.language;\n _this.label = track.label;\n _this[\"default\"] = track[\"default\"];\n Object.defineProperties(_assertThisInitialized(_this), {\n /**\n * @memberof HTMLTrackElement\n * @member {HTMLTrackElement~ReadyState} readyState\n * The current ready state of the track element.\n * @instance\n */\n readyState: {\n get: function get() {\n return readyState;\n }\n },\n\n /**\n * @memberof HTMLTrackElement\n * @member {TextTrack} track\n * The underlying TextTrack object.\n * @instance\n *\n */\n track: {\n get: function get() {\n return track;\n }\n }\n });\n readyState = NONE;\n /**\n * @listens TextTrack#loadeddata\n * @fires HTMLTrackElement#load\n */\n\n track.addEventListener('loadeddata', function () {\n readyState = LOADED;\n\n _this.trigger({\n type: 'load',\n target: _assertThisInitialized(_this)\n });\n });\n return _this;\n }\n\n return HTMLTrackElement;\n}(EventTarget$2);\n\nHTMLTrackElement.prototype.allowedEvents_ = {\n load: 'load'\n};\nHTMLTrackElement.NONE = NONE;\nHTMLTrackElement.LOADING = LOADING;\nHTMLTrackElement.LOADED = LOADED;\nHTMLTrackElement.ERROR = ERROR;\n/*\n * This file contains all track properties that are used in\n * player.js, tech.js, html5.js and possibly other techs in the future.\n */\n\nvar NORMAL = {\n audio: {\n ListClass: AudioTrackList,\n TrackClass: AudioTrack,\n capitalName: 'Audio'\n },\n video: {\n ListClass: VideoTrackList,\n TrackClass: VideoTrack,\n capitalName: 'Video'\n },\n text: {\n ListClass: TextTrackList,\n TrackClass: TextTrack,\n capitalName: 'Text'\n }\n};\nObject.keys(NORMAL).forEach(function (type) {\n NORMAL[type].getterName = type + \"Tracks\";\n NORMAL[type].privateName = type + \"Tracks_\";\n});\nvar REMOTE = {\n remoteText: {\n ListClass: TextTrackList,\n TrackClass: TextTrack,\n capitalName: 'RemoteText',\n getterName: 'remoteTextTracks',\n privateName: 'remoteTextTracks_'\n },\n remoteTextEl: {\n ListClass: HtmlTrackElementList,\n TrackClass: HTMLTrackElement,\n capitalName: 'RemoteTextTrackEls',\n getterName: 'remoteTextTrackEls',\n privateName: 'remoteTextTrackEls_'\n }\n};\n\nvar ALL = _extends({}, NORMAL, REMOTE);\n\nREMOTE.names = Object.keys(REMOTE);\nNORMAL.names = Object.keys(NORMAL);\nALL.names = [].concat(REMOTE.names).concat(NORMAL.names);\n/**\n * An Object containing a structure like: `{src: 'url', type: 'mimetype'}` or string\n * that just contains the src url alone.\n * * `var SourceObject = {src: 'http://ex.com/video.mp4', type: 'video/mp4'};`\n * `var SourceString = 'http://example.com/some-video.mp4';`\n *\n * @typedef {Object|string} Tech~SourceObject\n *\n * @property {string} src\n * The url to the source\n *\n * @property {string} type\n * The mime type of the source\n */\n\n/**\n * A function used by {@link Tech} to create a new {@link TextTrack}.\n *\n * @private\n *\n * @param {Tech} self\n * An instance of the Tech class.\n *\n * @param {string} kind\n * `TextTrack` kind (subtitles, captions, descriptions, chapters, or metadata)\n *\n * @param {string} [label]\n * Label to identify the text track\n *\n * @param {string} [language]\n * Two letter language abbreviation\n *\n * @param {Object} [options={}]\n * An object with additional text track options\n *\n * @return {TextTrack}\n * The text track that was created.\n */\n\nfunction createTrackHelper(self, kind, label, language, options) {\n if (options === void 0) {\n options = {};\n }\n\n var tracks = self.textTracks();\n options.kind = kind;\n\n if (label) {\n options.label = label;\n }\n\n if (language) {\n options.language = language;\n }\n\n options.tech = self;\n var track = new ALL.text.TrackClass(options);\n tracks.addTrack(track);\n return track;\n}\n/**\n * This is the base class for media playback technology controllers, such as\n * {@link HTML5}\n *\n * @extends Component\n */\n\n\nvar Tech = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Tech, _Component);\n /**\n * Create an instance of this Tech.\n *\n * @param {Object} [options]\n * The key/value store of player options.\n *\n * @param {Component~ReadyCallback} ready\n * Callback function to call when the `HTML5` Tech is ready.\n */\n\n\n function Tech(options, ready) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n if (ready === void 0) {\n ready = function ready() {};\n } // we don't want the tech to report user activity automatically.\n // This is done manually in addControlsListeners\n\n\n options.reportTouchActivity = false;\n _this = _Component.call(this, null, options, ready) || this;\n\n _this.onDurationChange_ = function (e) {\n return _this.onDurationChange(e);\n };\n\n _this.trackProgress_ = function (e) {\n return _this.trackProgress(e);\n };\n\n _this.trackCurrentTime_ = function (e) {\n return _this.trackCurrentTime(e);\n };\n\n _this.stopTrackingCurrentTime_ = function (e) {\n return _this.stopTrackingCurrentTime(e);\n };\n\n _this.disposeSourceHandler_ = function (e) {\n return _this.disposeSourceHandler(e);\n }; // keep track of whether the current source has played at all to\n // implement a very limited played()\n\n\n _this.hasStarted_ = false;\n\n _this.on('playing', function () {\n this.hasStarted_ = true;\n });\n\n _this.on('loadstart', function () {\n this.hasStarted_ = false;\n });\n\n ALL.names.forEach(function (name) {\n var props = ALL[name];\n\n if (options && options[props.getterName]) {\n _this[props.privateName] = options[props.getterName];\n }\n }); // Manually track progress in cases where the browser/tech doesn't report it.\n\n if (!_this.featuresProgressEvents) {\n _this.manualProgressOn();\n } // Manually track timeupdates in cases where the browser/tech doesn't report it.\n\n\n if (!_this.featuresTimeupdateEvents) {\n _this.manualTimeUpdatesOn();\n }\n\n ['Text', 'Audio', 'Video'].forEach(function (track) {\n if (options[\"native\" + track + \"Tracks\"] === false) {\n _this[\"featuresNative\" + track + \"Tracks\"] = false;\n }\n });\n\n if (options.nativeCaptions === false || options.nativeTextTracks === false) {\n _this.featuresNativeTextTracks = false;\n } else if (options.nativeCaptions === true || options.nativeTextTracks === true) {\n _this.featuresNativeTextTracks = true;\n }\n\n if (!_this.featuresNativeTextTracks) {\n _this.emulateTextTracks();\n }\n\n _this.preloadTextTracks = options.preloadTextTracks !== false;\n _this.autoRemoteTextTracks_ = new ALL.text.ListClass();\n\n _this.initTrackListeners(); // Turn on component tap events only if not using native controls\n\n\n if (!options.nativeControlsForTouch) {\n _this.emitTapEvents();\n }\n\n if (_this.constructor) {\n _this.name_ = _this.constructor.name || 'Unknown Tech';\n }\n\n return _this;\n }\n /**\n * A special function to trigger source set in a way that will allow player\n * to re-trigger if the player or tech are not ready yet.\n *\n * @fires Tech#sourceset\n * @param {string} src The source string at the time of the source changing.\n */\n\n\n var _proto = Tech.prototype;\n\n _proto.triggerSourceset = function triggerSourceset(src) {\n var _this2 = this;\n\n if (!this.isReady_) {\n // on initial ready we have to trigger source set\n // 1ms after ready so that player can watch for it.\n this.one('ready', function () {\n return _this2.setTimeout(function () {\n return _this2.triggerSourceset(src);\n }, 1);\n });\n }\n /**\n * Fired when the source is set on the tech causing the media element\n * to reload.\n *\n * @see {@link Player#event:sourceset}\n * @event Tech#sourceset\n * @type {EventTarget~Event}\n */\n\n\n this.trigger({\n src: src,\n type: 'sourceset'\n });\n }\n /* Fallbacks for unsupported event types\n ================================================================================ */\n\n /**\n * Polyfill the `progress` event for browsers that don't support it natively.\n *\n * @see {@link Tech#trackProgress}\n */\n ;\n\n _proto.manualProgressOn = function manualProgressOn() {\n this.on('durationchange', this.onDurationChange_);\n this.manualProgress = true; // Trigger progress watching when a source begins loading\n\n this.one('ready', this.trackProgress_);\n }\n /**\n * Turn off the polyfill for `progress` events that was created in\n * {@link Tech#manualProgressOn}\n */\n ;\n\n _proto.manualProgressOff = function manualProgressOff() {\n this.manualProgress = false;\n this.stopTrackingProgress();\n this.off('durationchange', this.onDurationChange_);\n }\n /**\n * This is used to trigger a `progress` event when the buffered percent changes. It\n * sets an interval function that will be called every 500 milliseconds to check if the\n * buffer end percent has changed.\n *\n * > This function is called by {@link Tech#manualProgressOn}\n *\n * @param {EventTarget~Event} event\n * The `ready` event that caused this to run.\n *\n * @listens Tech#ready\n * @fires Tech#progress\n */\n ;\n\n _proto.trackProgress = function trackProgress(event) {\n this.stopTrackingProgress();\n this.progressInterval = this.setInterval(bind(this, function () {\n // Don't trigger unless buffered amount is greater than last time\n var numBufferedPercent = this.bufferedPercent();\n\n if (this.bufferedPercent_ !== numBufferedPercent) {\n /**\n * See {@link Player#progress}\n *\n * @event Tech#progress\n * @type {EventTarget~Event}\n */\n this.trigger('progress');\n }\n\n this.bufferedPercent_ = numBufferedPercent;\n\n if (numBufferedPercent === 1) {\n this.stopTrackingProgress();\n }\n }), 500);\n }\n /**\n * Update our internal duration on a `durationchange` event by calling\n * {@link Tech#duration}.\n *\n * @param {EventTarget~Event} event\n * The `durationchange` event that caused this to run.\n *\n * @listens Tech#durationchange\n */\n ;\n\n _proto.onDurationChange = function onDurationChange(event) {\n this.duration_ = this.duration();\n }\n /**\n * Get and create a `TimeRange` object for buffering.\n *\n * @return {TimeRange}\n * The time range object that was created.\n */\n ;\n\n _proto.buffered = function buffered() {\n return createTimeRanges(0, 0);\n }\n /**\n * Get the percentage of the current video that is currently buffered.\n *\n * @return {number}\n * A number from 0 to 1 that represents the decimal percentage of the\n * video that is buffered.\n *\n */\n ;\n\n _proto.bufferedPercent = function bufferedPercent$1() {\n return bufferedPercent(this.buffered(), this.duration_);\n }\n /**\n * Turn off the polyfill for `progress` events that was created in\n * {@link Tech#manualProgressOn}\n * Stop manually tracking progress events by clearing the interval that was set in\n * {@link Tech#trackProgress}.\n */\n ;\n\n _proto.stopTrackingProgress = function stopTrackingProgress() {\n this.clearInterval(this.progressInterval);\n }\n /**\n * Polyfill the `timeupdate` event for browsers that don't support it.\n *\n * @see {@link Tech#trackCurrentTime}\n */\n ;\n\n _proto.manualTimeUpdatesOn = function manualTimeUpdatesOn() {\n this.manualTimeUpdates = true;\n this.on('play', this.trackCurrentTime_);\n this.on('pause', this.stopTrackingCurrentTime_);\n }\n /**\n * Turn off the polyfill for `timeupdate` events that was created in\n * {@link Tech#manualTimeUpdatesOn}\n */\n ;\n\n _proto.manualTimeUpdatesOff = function manualTimeUpdatesOff() {\n this.manualTimeUpdates = false;\n this.stopTrackingCurrentTime();\n this.off('play', this.trackCurrentTime_);\n this.off('pause', this.stopTrackingCurrentTime_);\n }\n /**\n * Sets up an interval function to track current time and trigger `timeupdate` every\n * 250 milliseconds.\n *\n * @listens Tech#play\n * @triggers Tech#timeupdate\n */\n ;\n\n _proto.trackCurrentTime = function trackCurrentTime() {\n if (this.currentTimeInterval) {\n this.stopTrackingCurrentTime();\n }\n\n this.currentTimeInterval = this.setInterval(function () {\n /**\n * Triggered at an interval of 250ms to indicated that time is passing in the video.\n *\n * @event Tech#timeupdate\n * @type {EventTarget~Event}\n */\n this.trigger({\n type: 'timeupdate',\n target: this,\n manuallyTriggered: true\n }); // 42 = 24 fps // 250 is what Webkit uses // FF uses 15\n }, 250);\n }\n /**\n * Stop the interval function created in {@link Tech#trackCurrentTime} so that the\n * `timeupdate` event is no longer triggered.\n *\n * @listens {Tech#pause}\n */\n ;\n\n _proto.stopTrackingCurrentTime = function stopTrackingCurrentTime() {\n this.clearInterval(this.currentTimeInterval); // #1002 - if the video ends right before the next timeupdate would happen,\n // the progress bar won't make it all the way to the end\n\n this.trigger({\n type: 'timeupdate',\n target: this,\n manuallyTriggered: true\n });\n }\n /**\n * Turn off all event polyfills, clear the `Tech`s {@link AudioTrackList},\n * {@link VideoTrackList}, and {@link TextTrackList}, and dispose of this Tech.\n *\n * @fires Component#dispose\n */\n ;\n\n _proto.dispose = function dispose() {\n // clear out all tracks because we can't reuse them between techs\n this.clearTracks(NORMAL.names); // Turn off any manual progress or timeupdate tracking\n\n if (this.manualProgress) {\n this.manualProgressOff();\n }\n\n if (this.manualTimeUpdates) {\n this.manualTimeUpdatesOff();\n }\n\n _Component.prototype.dispose.call(this);\n }\n /**\n * Clear out a single `TrackList` or an array of `TrackLists` given their names.\n *\n * > Note: Techs without source handlers should call this between sources for `video`\n * & `audio` tracks. You don't want to use them between tracks!\n *\n * @param {string[]|string} types\n * TrackList names to clear, valid names are `video`, `audio`, and\n * `text`.\n */\n ;\n\n _proto.clearTracks = function clearTracks(types) {\n var _this3 = this;\n\n types = [].concat(types); // clear out all tracks because we can't reuse them between techs\n\n types.forEach(function (type) {\n var list = _this3[type + \"Tracks\"]() || [];\n var i = list.length;\n\n while (i--) {\n var track = list[i];\n\n if (type === 'text') {\n _this3.removeRemoteTextTrack(track);\n }\n\n list.removeTrack(track);\n }\n });\n }\n /**\n * Remove any TextTracks added via addRemoteTextTrack that are\n * flagged for automatic garbage collection\n */\n ;\n\n _proto.cleanupAutoTextTracks = function cleanupAutoTextTracks() {\n var list = this.autoRemoteTextTracks_ || [];\n var i = list.length;\n\n while (i--) {\n var track = list[i];\n this.removeRemoteTextTrack(track);\n }\n }\n /**\n * Reset the tech, which will removes all sources and reset the internal readyState.\n *\n * @abstract\n */\n ;\n\n _proto.reset = function reset() {}\n /**\n * Get the value of `crossOrigin` from the tech.\n *\n * @abstract\n *\n * @see {Html5#crossOrigin}\n */\n ;\n\n _proto.crossOrigin = function crossOrigin() {}\n /**\n * Set the value of `crossOrigin` on the tech.\n *\n * @abstract\n *\n * @param {string} crossOrigin the crossOrigin value\n * @see {Html5#setCrossOrigin}\n */\n ;\n\n _proto.setCrossOrigin = function setCrossOrigin() {}\n /**\n * Get or set an error on the Tech.\n *\n * @param {MediaError} [err]\n * Error to set on the Tech\n *\n * @return {MediaError|null}\n * The current error object on the tech, or null if there isn't one.\n */\n ;\n\n _proto.error = function error(err) {\n if (err !== undefined) {\n this.error_ = new MediaError(err);\n this.trigger('error');\n }\n\n return this.error_;\n }\n /**\n * Returns the `TimeRange`s that have been played through for the current source.\n *\n * > NOTE: This implementation is incomplete. It does not track the played `TimeRange`.\n * It only checks whether the source has played at all or not.\n *\n * @return {TimeRange}\n * - A single time range if this video has played\n * - An empty set of ranges if not.\n */\n ;\n\n _proto.played = function played() {\n if (this.hasStarted_) {\n return createTimeRanges(0, 0);\n }\n\n return createTimeRanges();\n }\n /**\n * Start playback\n *\n * @abstract\n *\n * @see {Html5#play}\n */\n ;\n\n _proto.play = function play() {}\n /**\n * Set whether we are scrubbing or not\n *\n * @abstract\n *\n * @see {Html5#setScrubbing}\n */\n ;\n\n _proto.setScrubbing = function setScrubbing() {}\n /**\n * Get whether we are scrubbing or not\n *\n * @abstract\n *\n * @see {Html5#scrubbing}\n */\n ;\n\n _proto.scrubbing = function scrubbing() {}\n /**\n * Causes a manual time update to occur if {@link Tech#manualTimeUpdatesOn} was\n * previously called.\n *\n * @fires Tech#timeupdate\n */\n ;\n\n _proto.setCurrentTime = function setCurrentTime() {\n // improve the accuracy of manual timeupdates\n if (this.manualTimeUpdates) {\n /**\n * A manual `timeupdate` event.\n *\n * @event Tech#timeupdate\n * @type {EventTarget~Event}\n */\n this.trigger({\n type: 'timeupdate',\n target: this,\n manuallyTriggered: true\n });\n }\n }\n /**\n * Turn on listeners for {@link VideoTrackList}, {@link {AudioTrackList}, and\n * {@link TextTrackList} events.\n *\n * This adds {@link EventTarget~EventListeners} for `addtrack`, and `removetrack`.\n *\n * @fires Tech#audiotrackchange\n * @fires Tech#videotrackchange\n * @fires Tech#texttrackchange\n */\n ;\n\n _proto.initTrackListeners = function initTrackListeners() {\n var _this4 = this;\n /**\n * Triggered when tracks are added or removed on the Tech {@link AudioTrackList}\n *\n * @event Tech#audiotrackchange\n * @type {EventTarget~Event}\n */\n\n /**\n * Triggered when tracks are added or removed on the Tech {@link VideoTrackList}\n *\n * @event Tech#videotrackchange\n * @type {EventTarget~Event}\n */\n\n /**\n * Triggered when tracks are added or removed on the Tech {@link TextTrackList}\n *\n * @event Tech#texttrackchange\n * @type {EventTarget~Event}\n */\n\n\n NORMAL.names.forEach(function (name) {\n var props = NORMAL[name];\n\n var trackListChanges = function trackListChanges() {\n _this4.trigger(name + \"trackchange\");\n };\n\n var tracks = _this4[props.getterName]();\n\n tracks.addEventListener('removetrack', trackListChanges);\n tracks.addEventListener('addtrack', trackListChanges);\n\n _this4.on('dispose', function () {\n tracks.removeEventListener('removetrack', trackListChanges);\n tracks.removeEventListener('addtrack', trackListChanges);\n });\n });\n }\n /**\n * Emulate TextTracks using vtt.js if necessary\n *\n * @fires Tech#vttjsloaded\n * @fires Tech#vttjserror\n */\n ;\n\n _proto.addWebVttScript_ = function addWebVttScript_() {\n var _this5 = this;\n\n if (window$1.WebVTT) {\n return;\n } // Initially, Tech.el_ is a child of a dummy-div wait until the Component system\n // signals that the Tech is ready at which point Tech.el_ is part of the DOM\n // before inserting the WebVTT script\n\n\n if (document.body.contains(this.el())) {\n // load via require if available and vtt.js script location was not passed in\n // as an option. novtt builds will turn the above require call into an empty object\n // which will cause this if check to always fail.\n if (!this.options_['vtt.js'] && isPlain(vtt) && Object.keys(vtt).length > 0) {\n this.trigger('vttjsloaded');\n return;\n } // load vtt.js via the script location option or the cdn of no location was\n // passed in\n\n\n var script = document.createElement('script');\n script.src = this.options_['vtt.js'] || 'https://vjs.zencdn.net/vttjs/0.14.1/vtt.min.js';\n\n script.onload = function () {\n /**\n * Fired when vtt.js is loaded.\n *\n * @event Tech#vttjsloaded\n * @type {EventTarget~Event}\n */\n _this5.trigger('vttjsloaded');\n };\n\n script.onerror = function () {\n /**\n * Fired when vtt.js was not loaded due to an error\n *\n * @event Tech#vttjsloaded\n * @type {EventTarget~Event}\n */\n _this5.trigger('vttjserror');\n };\n\n this.on('dispose', function () {\n script.onload = null;\n script.onerror = null;\n }); // but have not loaded yet and we set it to true before the inject so that\n // we don't overwrite the injected window.WebVTT if it loads right away\n\n window$1.WebVTT = true;\n this.el().parentNode.appendChild(script);\n } else {\n this.ready(this.addWebVttScript_);\n }\n }\n /**\n * Emulate texttracks\n *\n */\n ;\n\n _proto.emulateTextTracks = function emulateTextTracks() {\n var _this6 = this;\n\n var tracks = this.textTracks();\n var remoteTracks = this.remoteTextTracks();\n\n var handleAddTrack = function handleAddTrack(e) {\n return tracks.addTrack(e.track);\n };\n\n var handleRemoveTrack = function handleRemoveTrack(e) {\n return tracks.removeTrack(e.track);\n };\n\n remoteTracks.on('addtrack', handleAddTrack);\n remoteTracks.on('removetrack', handleRemoveTrack);\n this.addWebVttScript_();\n\n var updateDisplay = function updateDisplay() {\n return _this6.trigger('texttrackchange');\n };\n\n var textTracksChanges = function textTracksChanges() {\n updateDisplay();\n\n for (var i = 0; i < tracks.length; i++) {\n var track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n\n if (track.mode === 'showing') {\n track.addEventListener('cuechange', updateDisplay);\n }\n }\n };\n\n textTracksChanges();\n tracks.addEventListener('change', textTracksChanges);\n tracks.addEventListener('addtrack', textTracksChanges);\n tracks.addEventListener('removetrack', textTracksChanges);\n this.on('dispose', function () {\n remoteTracks.off('addtrack', handleAddTrack);\n remoteTracks.off('removetrack', handleRemoveTrack);\n tracks.removeEventListener('change', textTracksChanges);\n tracks.removeEventListener('addtrack', textTracksChanges);\n tracks.removeEventListener('removetrack', textTracksChanges);\n\n for (var i = 0; i < tracks.length; i++) {\n var track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n }\n });\n }\n /**\n * Create and returns a remote {@link TextTrack} object.\n *\n * @param {string} kind\n * `TextTrack` kind (subtitles, captions, descriptions, chapters, or metadata)\n *\n * @param {string} [label]\n * Label to identify the text track\n *\n * @param {string} [language]\n * Two letter language abbreviation\n *\n * @return {TextTrack}\n * The TextTrack that gets created.\n */\n ;\n\n _proto.addTextTrack = function addTextTrack(kind, label, language) {\n if (!kind) {\n throw new Error('TextTrack kind is required but was not provided');\n }\n\n return createTrackHelper(this, kind, label, language);\n }\n /**\n * Create an emulated TextTrack for use by addRemoteTextTrack\n *\n * This is intended to be overridden by classes that inherit from\n * Tech in order to create native or custom TextTracks.\n *\n * @param {Object} options\n * The object should contain the options to initialize the TextTrack with.\n *\n * @param {string} [options.kind]\n * `TextTrack` kind (subtitles, captions, descriptions, chapters, or metadata).\n *\n * @param {string} [options.label].\n * Label to identify the text track\n *\n * @param {string} [options.language]\n * Two letter language abbreviation.\n *\n * @return {HTMLTrackElement}\n * The track element that gets created.\n */\n ;\n\n _proto.createRemoteTextTrack = function createRemoteTextTrack(options) {\n var track = mergeOptions$3(options, {\n tech: this\n });\n return new REMOTE.remoteTextEl.TrackClass(track);\n }\n /**\n * Creates a remote text track object and returns an html track element.\n *\n * > Note: This can be an emulated {@link HTMLTrackElement} or a native one.\n *\n * @param {Object} options\n * See {@link Tech#createRemoteTextTrack} for more detailed properties.\n *\n * @param {boolean} [manualCleanup=true]\n * - When false: the TextTrack will be automatically removed from the video\n * element whenever the source changes\n * - When True: The TextTrack will have to be cleaned up manually\n *\n * @return {HTMLTrackElement}\n * An Html Track Element.\n *\n * @deprecated The default functionality for this function will be equivalent\n * to \"manualCleanup=false\" in the future. The manualCleanup parameter will\n * also be removed.\n */\n ;\n\n _proto.addRemoteTextTrack = function addRemoteTextTrack(options, manualCleanup) {\n var _this7 = this;\n\n if (options === void 0) {\n options = {};\n }\n\n var htmlTrackElement = this.createRemoteTextTrack(options);\n\n if (manualCleanup !== true && manualCleanup !== false) {\n // deprecation warning\n log$1.warn('Calling addRemoteTextTrack without explicitly setting the \"manualCleanup\" parameter to `true` is deprecated and default to `false` in future version of video.js');\n manualCleanup = true;\n } // store HTMLTrackElement and TextTrack to remote list\n\n\n this.remoteTextTrackEls().addTrackElement_(htmlTrackElement);\n this.remoteTextTracks().addTrack(htmlTrackElement.track);\n\n if (manualCleanup !== true) {\n // create the TextTrackList if it doesn't exist\n this.ready(function () {\n return _this7.autoRemoteTextTracks_.addTrack(htmlTrackElement.track);\n });\n }\n\n return htmlTrackElement;\n }\n /**\n * Remove a remote text track from the remote `TextTrackList`.\n *\n * @param {TextTrack} track\n * `TextTrack` to remove from the `TextTrackList`\n */\n ;\n\n _proto.removeRemoteTextTrack = function removeRemoteTextTrack(track) {\n var trackElement = this.remoteTextTrackEls().getTrackElementByTrack_(track); // remove HTMLTrackElement and TextTrack from remote list\n\n this.remoteTextTrackEls().removeTrackElement_(trackElement);\n this.remoteTextTracks().removeTrack(track);\n this.autoRemoteTextTracks_.removeTrack(track);\n }\n /**\n * Gets available media playback quality metrics as specified by the W3C's Media\n * Playback Quality API.\n *\n * @see [Spec]{@link https://wicg.github.io/media-playback-quality}\n *\n * @return {Object}\n * An object with supported media playback quality metrics\n *\n * @abstract\n */\n ;\n\n _proto.getVideoPlaybackQuality = function getVideoPlaybackQuality() {\n return {};\n }\n /**\n * Attempt to create a floating video window always on top of other windows\n * so that users may continue consuming media while they interact with other\n * content sites, or applications on their device.\n *\n * @see [Spec]{@link https://wicg.github.io/picture-in-picture}\n *\n * @return {Promise|undefined}\n * A promise with a Picture-in-Picture window if the browser supports\n * Promises (or one was passed in as an option). It returns undefined\n * otherwise.\n *\n * @abstract\n */\n ;\n\n _proto.requestPictureInPicture = function requestPictureInPicture() {\n var PromiseClass = this.options_.Promise || window$1.Promise;\n\n if (PromiseClass) {\n return PromiseClass.reject();\n }\n }\n /**\n * A method to check for the value of the 'disablePictureInPicture'