{"version":3,"sources":["webpack:///./node_modules/core-js/internals/error-stack-clear.js","webpack:///./node_modules/@videojs/vhs-utils/es/codecs.js","webpack:///./node_modules/@xmldom/xmldom/lib/index.js","webpack:///./node_modules/videojs-vtt.js/lib/browser-index.js","webpack:///./node_modules/core-js/internals/function-apply.js","webpack:///./node_modules/@videojs/vhs-utils/es/id3-helpers.js","webpack:///./node_modules/@videojs/xhr/lib/index.js","webpack:///./node_modules/mux.js/lib/utils/clock.js","webpack:///./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack:///./node_modules/@videojs/vhs-utils/es/resolve-url.js","webpack:///./node_modules/core-js/internals/error-stack-install.js","webpack:///./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","webpack:///./node_modules/mux.js/lib/tools/parse-sidx.js","webpack:///./node_modules/is-function/index.js","webpack:///./node_modules/@videojs/vhs-utils/es/media-groups.js","webpack:///./node_modules/mpd-parser/dist/mpd-parser.es.js","webpack:///./node_modules/@xmldom/xmldom/lib/conventions.js","webpack:///./node_modules/@videojs/vhs-utils/es/media-types.js","webpack:///./node_modules/@videojs/xhr/lib/http-handler.js","webpack:///./node_modules/safe-json-parse/tuple.js","webpack:///./src/services/slider.js","webpack:///./node_modules/@babel/runtime/helpers/wrapNativeSuper.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./node_modules/mux.js/lib/utils/numbers.js","webpack:///./node_modules/core-js/internals/install-error-cause.js","webpack:///./node_modules/core-js/internals/proxy-accessor.js","webpack:///./node_modules/videojs-vtt.js/lib/vttcue.js","webpack:///./node_modules/@xmldom/xmldom/lib/dom-parser.js","webpack:///./node_modules/@babel/runtime/helpers/construct.js","webpack:///./node_modules/@xmldom/xmldom/lib/entities.js","webpack:///./node_modules/core-js/internals/error-stack-installable.js","webpack:///./node_modules/global/window.js","webpack:///./node_modules/@babel/runtime/helpers/isNativeFunction.js","webpack:///./node_modules/videojs-vtt.js/lib/vtt.js","webpack:///./node_modules/url-toolkit/src/url-toolkit.js","webpack:///./node_modules/@videojs/vhs-utils/es/stream.js","webpack:///./node_modules/m3u8-parser/dist/m3u8-parser.es.js","webpack:///./node_modules/core-js/modules/es.error.cause.js","webpack:///./node_modules/@videojs/vhs-utils/es/byte-helpers.js","webpack:///./node_modules/keycode/index.js","webpack:///./node_modules/@xmldom/xmldom/lib/sax.js","webpack:///./node_modules/@xmldom/xmldom/lib/dom.js","webpack:///./node_modules/core-js/internals/normalize-string-argument.js","webpack:///./node_modules/core-js/internals/wrap-error-constructor-with-cause.js","webpack:///./node_modules/@babel/runtime/helpers/inherits.js","webpack:///./node_modules/global/document.js","webpack:///./node_modules/video.js/dist/video.es.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/core-js/modules/es.reflect.to-string-tag.js","webpack:///./node_modules/videojs-vtt.js/lib/vttregion.js","webpack:///./node_modules/@videojs/vhs-utils/es/decode-b64-to-uint8-array.js"],"names":["uncurryThis","$Error","Error","replace","TEST","arg","String","stack","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","test","module","exports","dropEntries","prepareStackTrace","regexs","mp4","webm","ogg","video","audio","text","muxerVideo","muxerAudio","muxerText","mediaTypes","upperMediaTypes","translateLegacyCodec","codec","orig","profile","avcLevel","profileHex","Number","toString","slice","avcLevelHex","parseCodecs","codecString","codecs","split","result","forEach","codecType","trim","name","match","exec","toLowerCase","length","type","substring","details","push","mediaType","codecsFromDefault","master","audioGroupId","mediaGroups","AUDIO","audioGroup","audioType","default","playlists","attributes","CODECS","isAudioCodec","isTextCodec","getMimeForCodec","map","c","container","every","browserSupportsCodec","MediaSource","isTypeSupported","muxerSupportsCodec","i","DEFAULT_AUDIO_CODEC","DEFAULT_VIDEO_CODEC","dom","DOMImplementation","XMLSerializer","DOMParser","window","vttjs","WebVTT","VTTCue","VTTRegion","cueShim","regionShim","nativeVTTCue","nativeVTTRegion","shim","restore","NATIVE_BIND","FunctionPrototype","Function","prototype","apply","call","Reflect","bind","arguments","ID3","getId3Size","bytes","offset","flags","returnSize","footerPresent","getId3Offset","_extends","isFunction","createXHR","httpHandler","parseHeaders","headers","row","index","indexOf","key","value","Array","isArray","forEachArray","array","iterator","isEmpty","obj","hasOwnProperty","initParams","uri","options","callback","params","_createXHR","called","err","response","body","readystatechange","xhr","readyState","setTimeout","loadFunc","getBody","undefined","responseText","getXml","isJson","JSON","parse","e","errorFunc","evt","clearTimeout","timeoutTimer","statusCode","failureResponse","aborted","status","useXDR","method","url","rawRequest","getAllResponseHeaders","cors","XDomainRequest","XMLHttpRequest","data","sync","json","stringify","onreadystatechange","onload","onerror","onprogress","onabort","ontimeout","open","username","password","withCredentials","timeout","abort","code","setRequestHeader","responseType","beforeSend","send","responseXML","firefoxBugTakenEffect","documentElement","nodeName","noop","toUpperCase","secondsToVideoTs","secondsToAudioTs","videoTsToSeconds","audioTsToSeconds","audioTsToVideoTs","videoTsToAudioTs","metadataTsToSeconds","ONE_SECOND_IN_TS","seconds","sampleRate","timestamp","timelineStartPts","keepOriginalTimestamps","_getPrototypeOf","o","Object","setPrototypeOf","getPrototypeOf","__proto__","__esModule","_assertThisInitialized","self","ReferenceError","_setPrototypeOf","p","require","_inheritsLoose","subClass","superClass","create","constructor","DEFAULT_LOCATION","resolveUrl","baseUrl","relativeUrl","location","href","nativeURL","URL","protocolLess","removeLocation","buildAbsoluteURL","newUrl","protocol","createNonEnumerableProperty","clearErrorStack","ERROR_STACK_INSTALLABLE","captureStackTrace","error","C","_isNativeReflectConstruct","construct","sham","Proxy","Boolean","valueOf","getUint64","parseSidx","view","DataView","buffer","byteOffset","byteLength","version","Uint8Array","subarray","references","referenceId","getUint32","timescale","earliestPresentationTime","firstOffset","referenceCount","getUint16","referenceType","referencedSize","subsegmentDuration","startsWithSap","sapType","sapDeltaTime","fn","string","alert","confirm","prompt","forEachMediaGroup","groups","groupKey","labelKey","mediaProperties","isObject","merge","_len","objects","_key","reduce","source","keys","concat","values","k","start","end","flatten","lists","x","y","from","list","findIndexes","l","a","findIndex","matchingFunction","union","keyFunction","acc","el","errors","INVALID_NUMBER_OF_PERIOD","DASH_EMPTY_MANIFEST","DASH_INVALID_XML","NO_BASE_URL","MISSING_SEGMENT_INFORMATION","SEGMENT_TIME_UNSPECIFIED","UNSUPPORTED_UTC_TIMING_SCHEME","_ref","_ref$baseUrl","_ref$source","_ref$range","range","_ref$indexRange","indexRange","segment","resolvedUri","rangeStr","ranges","startRange","BigInt","parseInt","endRange","MAX_SAFE_INTEGER","byterange","parseEndNumber","endNumber","isNaN","segmentRange","static","duration","_attributes$timescale","sourceDuration","periodDuration","segmentDuration","dynamic","NOW","clientOffset","availabilityStartTime","_attributes$timescale2","_attributes$periodSta","periodStart","_attributes$minimumUp","minimumUpdatePeriod","_attributes$timeShift","timeShiftBufferDepth","Infinity","now","periodStartWC","periodEndWC","segmentCount","Math","ceil","availableStart","floor","availableEnd","max","min","toSegments","number","_attributes$timescale3","_attributes$startNumb","startNumber","timeline","time","parseByDuration","_attributes$timescale4","_segmentRange$type","segments","sectionDuration","segmentsFromBase","_attributes$initializ","initialization","_attributes$indexRang","presentationTime","_attributes$number","initSegment","sourceURL","segmentTimeInfo","addSidxSegmentsToPlaylist$1","playlist","sidx","startIndex","sidxByteRange","sidxEnd","mediaReferences","filter","r","endList","mediaSequence","reference","size","endIndex","SUPPORTED_MEDIA_TYPES","TIME_FUDGE","getUniqueTimelineStarts","timelineStarts","sort","b","findPlaylistWithName","NAME","manifest","mediaGroupPlaylists","properties","group","label","updateMediaSequenceForPlaylist","_ref2","updateSequenceNumbers","_ref3","oldPlaylists","newPlaylists","discontinuitySequence","_ref4","oldPlaylist","firstNewSegment","oldMatchingSegmentIndex","oldSegment","abs","discontinuity","discontinuityStarts","unshift","oldMatchingSegment","positionManifestOnTimeline","_ref5","oldManifest","newManifest","generateSidxKey","mergeDiscontiguousPlaylists","mergedPlaylists","id","lang","_acc$name$segments","contentProtection","sidxMapping","sidxKey","sidxMatch","addSidxSegmentsToPlaylists","formatAudioPlaylist","isAudioOnly","_attributes","BANDWIDTH","bandwidth","targetDuration","SUBTITLES","formatVttPlaylist","_m3u8Attributes","m3u8Attributes","organizeAudioPlaylists","mainPlaylist","formattedPlaylists","role","language","roleLabel","autoselect","formatted","firstLabel","organizeVttPlaylists","organizeCaptionServices","captionServices","svcObj","svc","service","channel","instreamId","aspectRatio","easyReader","formatVideoPlaylist","_attributes2","RESOLUTION","width","height","frameRate","videoOnly","mimeType","contentType","audioOnly","vttOnly","_ref6","addMediaSequenceValues","_ref7","flattenMediaGroupPlaylists","mediaGroupObject","labelContents","toM3u8","_ref8","_mediaGroups","dashPlaylists","locations","_ref8$sidxMapping","previousManifest","_dashPlaylists$0$attr","suggestedPresentationDelay","videoPlaylists","audioPlaylists","vttPlaylists","captions","allowCache","VIDEO","organizedAudioGroup","organizedVttGroup","playlistTimelineStarts","_ref9","subs","cc","getLiveRValue","parseByTimeline","segmentTimeline","_attributes$minimumUp2","_attributes$media","media","sIndex","S","d","repeat","segmentTime","t","count","nextS","identifierPattern","identifierReplacement","identifier","format","join","constructTemplateUrl","parseTemplateInfo","templateValues","RepresentationID","Bandwidth","mapSegment","Time","presentationTimeOffset","SegmentURLToSegmentObject","segmentUrl","mediaRange","segmentsFromList","_attributes$segmentUr","segmentUrls","segmentUrlMap","segmentUrlObject","generateSegments","segmentAttributes","segmentsFn","segmentInfo","template","base","segmentsInfo","_segmentAttributes","_segmentAttributes$ti","toPlaylists","representations","findChildren","element","childNodes","tagName","getContent","textContent","parseDivisionValue","parseFloat","prev","current","parseDuration","str","SECONDS_IN_YEAR","SECONDS_IN_MONTH","SECONDS_IN_DAY","SECONDS_IN_HOUR","SECONDS_IN_MIN","durationRegex","_match$slice","year","month","day","hour","minute","second","parseDate","dateRegex","Date","parsers","mediaPresentationDuration","parsedValue","DEFAULT","parseAttributes","parseFn","keySystemsMap","referenceUrls","baseUrlElements","baseUrlElement","getSegmentInformation","adaptationSet","segmentTemplate","segmentList","s","tag","segmentBase","segmentTimelineParentNode","segmentInitializationParentNode","segmentInitialization","inheritBaseUrls","adaptationSetAttributes","adaptationSetBaseUrls","adaptationSetSegmentInfo","representation","repBaseUrlElements","repBaseUrls","representationSegmentInfo","contentProtectionNodes","node","schemeIdUri","keySystem","psshNode","pssh","parseCaptionServiceMetadata","_value$split","_values","_value$split2","_value$split2$","opts","opt","_opt$split","val","toRepresentations","periodAttributes","periodBaseUrls","periodSegmentInfo","roleAttributes","attrs","accessibility","labelVal","nodeValue","toAdaptationSets","mpdAttributes","mpdBaseUrls","period","adaptationSets","getPeriodStart","priorPeriodAttributes","mpdType","inheritAttributes","mpd","_options","_options$manifestUri","manifestUri","_options$NOW","_options$clientOffset","periodNodes","periods","priorPeriod","representationInfo","manifestString","xml","parser","parseFromString","getElementsByTagName","parseUTCTimingScheme","UTCTimingNode","parsedManifestInfo","parseUTCTiming","find","predicate","ac","item","freeze","object","oc","assign","target","TypeError","MIME_TYPE","HTML","isHTML","XML_APPLICATION","XML_TEXT","XML_XHTML_APPLICATION","XML_SVG_IMAGE","NAMESPACE","SVG","XML","XMLNS","MPEGURL_REGEX","DASH_REGEX","simpleTypeFromSourceType","httpResponseHandler","decodeResponseBody","responseBody","cause","TextDecoder","charset","getCharset","decode","fromCharCode","contentTypeHeader","_contentType$split","SafeParseTuple","reviver","fetchSliderItems","async","category","contains","categoryType","API","graphql","query","listPrimarySliders","variables","authMode","GRAPHQL_AUTH_MODE","API_KEY","console","sliderItems","items","Promise","all","_item$content","imageFilename","imageAsset","getAWSStorageAsset","image","content","vodEntryId","vodEntryResponse","graphqlOperation","getVodEntry","fetchedVodEntry","hlsUrl","videoHlsUrl","getInitialVideoDuration","then","videoDuration","innerError","order","videoIndex","videoItem","splice","resolve","reject","player","document","createElement","Video","src","addEventListener","this","isNativeFunction","_wrapNativeSuper","Class","_cache","Map","has","get","set","Wrapper","enumerable","writable","configurable","MAX_UINT32","pow","uint8","dv","getBigUint64","O","defineProperty","f","Target","Source","it","autoKeyword","directionSetting","alignSetting","findDirectionSetting","dir","findAlignSetting","align","startTime","endTime","hasBeenReset","_id","_pauseOnExit","_startTime","_endTime","_text","_region","_vertical","_snapToLines","_line","_lineAlign","_position","_positionAlign","_size","_align","defineProperties","setting","SyntaxError","warn","displayState","getCueAsHTML","convertCueToDOMTree","conventions","entities","sax","ParseError","XMLReader","normalizeLineEndings","input","locator","buildErrorHandler","errorImpl","domBuilder","DOMHandler","errorHandler","isCallback","build","msg","_locator","cdata","position","lineNumber","columnNumber","systemId","_toString","chars","substr","java","appendElement","hander","currentElement","appendChild","doc","defaultNSMap","xmlns","entityMap","HTML_ENTITIES","XML_ENTITIES","setDocumentLocator","normalize","startDocument","createDocument","documentURI","startElement","namespaceURI","localName","qName","createElementNS","len","getURI","getValue","attr","getQName","createAttributeNS","getLocator","setAttributeNode","endElement","parentNode","startPrefixMapping","prefix","endPrefixMapping","processingInstruction","ins","createProcessingInstruction","ignorableWhitespace","ch","characters","charNode","createCDATASection","createTextNode","skippedEntity","endDocument","comment","comm","createComment","startCDATA","endCDATA","startDTD","publicId","impl","implementation","createDocumentType","dt","doctype","warning","fatalError","__DOMHandler","isNativeReflectConstruct","_construct","Parent","args","Constructor","instance","amp","apos","gt","lt","quot","Aacute","aacute","Abreve","abreve","acd","acE","Acirc","acirc","acute","Acy","acy","AElig","aelig","af","Afr","afr","Agrave","agrave","alefsym","aleph","Alpha","alpha","Amacr","amacr","amalg","AMP","And","and","andand","andd","andslope","andv","ang","ange","angle","angmsd","angmsdaa","angmsdab","angmsdac","angmsdad","angmsdae","angmsdaf","angmsdag","angmsdah","angrt","angrtvb","angrtvbd","angsph","angst","angzarr","Aogon","aogon","Aopf","aopf","ap","apacir","apE","ape","apid","ApplyFunction","approx","approxeq","Aring","aring","Ascr","ascr","Assign","ast","asymp","asympeq","Atilde","atilde","Auml","auml","awconint","awint","backcong","backepsilon","backprime","backsim","backsimeq","Backslash","Barv","barvee","Barwed","barwed","barwedge","bbrk","bbrktbrk","bcong","Bcy","bcy","bdquo","becaus","Because","because","bemptyv","bepsi","bernou","Bernoullis","Beta","beta","beth","between","Bfr","bfr","bigcap","bigcirc","bigcup","bigodot","bigoplus","bigotimes","bigsqcup","bigstar","bigtriangledown","bigtriangleup","biguplus","bigvee","bigwedge","bkarow","blacklozenge","blacksquare","blacktriangle","blacktriangledown","blacktriangleleft","blacktriangleright","blank","blk12","blk14","blk34","block","bne","bnequiv","bNot","bnot","Bopf","bopf","bot","bottom","bowtie","boxbox","boxDL","boxDl","boxdL","boxdl","boxDR","boxDr","boxdR","boxdr","boxH","boxh","boxHD","boxHd","boxhD","boxhd","boxHU","boxHu","boxhU","boxhu","boxminus","boxplus","boxtimes","boxUL","boxUl","boxuL","boxul","boxUR","boxUr","boxuR","boxur","boxV","boxv","boxVH","boxVh","boxvH","boxvh","boxVL","boxVl","boxvL","boxvl","boxVR","boxVr","boxvR","boxvr","bprime","Breve","breve","brvbar","Bscr","bscr","bsemi","bsim","bsime","bsol","bsolb","bsolhsub","bull","bullet","bump","bumpE","bumpe","Bumpeq","bumpeq","Cacute","cacute","Cap","cap","capand","capbrcup","capcap","capcup","capdot","CapitalDifferentialD","caps","caret","caron","Cayleys","ccaps","Ccaron","ccaron","Ccedil","ccedil","Ccirc","ccirc","Cconint","ccups","ccupssm","Cdot","cdot","cedil","Cedilla","cemptyv","cent","CenterDot","centerdot","Cfr","cfr","CHcy","chcy","check","checkmark","Chi","chi","cir","circ","circeq","circlearrowleft","circlearrowright","circledast","circledcirc","circleddash","CircleDot","circledR","circledS","CircleMinus","CirclePlus","CircleTimes","cirE","cire","cirfnint","cirmid","cirscir","ClockwiseContourIntegral","CloseCurlyDoubleQuote","CloseCurlyQuote","clubs","clubsuit","Colon","colon","Colone","colone","coloneq","comma","commat","comp","compfn","complement","complexes","cong","congdot","Congruent","Conint","conint","ContourIntegral","Copf","copf","coprod","Coproduct","COPY","copy","copysr","CounterClockwiseContourIntegral","crarr","Cross","cross","Cscr","cscr","csub","csube","csup","csupe","ctdot","cudarrl","cudarrr","cuepr","cuesc","cularr","cularrp","Cup","cup","cupbrcap","CupCap","cupcap","cupcup","cupdot","cupor","cups","curarr","curarrm","curlyeqprec","curlyeqsucc","curlyvee","curlywedge","curren","curvearrowleft","curvearrowright","cuvee","cuwed","cwconint","cwint","cylcty","Dagger","dagger","daleth","Darr","dArr","darr","dash","Dashv","dashv","dbkarow","dblac","Dcaron","dcaron","Dcy","dcy","DD","dd","ddagger","ddarr","DDotrahd","ddotseq","deg","Del","Delta","delta","demptyv","dfisht","Dfr","dfr","dHar","dharl","dharr","DiacriticalAcute","DiacriticalDot","DiacriticalDoubleAcute","DiacriticalGrave","DiacriticalTilde","diam","Diamond","diamond","diamondsuit","diams","die","DifferentialD","digamma","disin","div","divide","divideontimes","divonx","DJcy","djcy","dlcorn","dlcrop","dollar","Dopf","dopf","Dot","dot","DotDot","doteq","doteqdot","DotEqual","dotminus","dotplus","dotsquare","doublebarwedge","DoubleContourIntegral","DoubleDot","DoubleDownArrow","DoubleLeftArrow","DoubleLeftRightArrow","DoubleLeftTee","DoubleLongLeftArrow","DoubleLongLeftRightArrow","DoubleLongRightArrow","DoubleRightArrow","DoubleRightTee","DoubleUpArrow","DoubleUpDownArrow","DoubleVerticalBar","DownArrow","Downarrow","downarrow","DownArrowBar","DownArrowUpArrow","DownBreve","downdownarrows","downharpoonleft","downharpoonright","DownLeftRightVector","DownLeftTeeVector","DownLeftVector","DownLeftVectorBar","DownRightTeeVector","DownRightVector","DownRightVectorBar","DownTee","DownTeeArrow","drbkarow","drcorn","drcrop","Dscr","dscr","DScy","dscy","dsol","Dstrok","dstrok","dtdot","dtri","dtrif","duarr","duhar","dwangle","DZcy","dzcy","dzigrarr","Eacute","eacute","easter","Ecaron","ecaron","ecir","Ecirc","ecirc","ecolon","Ecy","ecy","eDDot","Edot","eDot","edot","ee","efDot","Efr","efr","eg","Egrave","egrave","egs","egsdot","Element","elinters","ell","els","elsdot","Emacr","emacr","empty","emptyset","EmptySmallSquare","emptyv","EmptyVerySmallSquare","emsp","emsp13","emsp14","ENG","eng","ensp","Eogon","eogon","Eopf","eopf","epar","eparsl","eplus","epsi","Epsilon","epsilon","epsiv","eqcirc","eqcolon","eqsim","eqslantgtr","eqslantless","Equal","equals","EqualTilde","equest","Equilibrium","equiv","equivDD","eqvparsl","erarr","erDot","Escr","escr","esdot","Esim","esim","Eta","eta","ETH","eth","Euml","euml","euro","excl","exist","Exists","expectation","ExponentialE","exponentiale","fallingdotseq","Fcy","fcy","female","ffilig","fflig","ffllig","Ffr","ffr","filig","FilledSmallSquare","FilledVerySmallSquare","fjlig","flat","fllig","fltns","fnof","Fopf","fopf","ForAll","forall","fork","forkv","Fouriertrf","fpartint","frac12","frac13","frac14","frac15","frac16","frac18","frac23","frac25","frac34","frac35","frac38","frac45","frac56","frac58","frac78","frasl","frown","Fscr","fscr","gacute","Gamma","gamma","Gammad","gammad","gap","Gbreve","gbreve","Gcedil","Gcirc","gcirc","Gcy","gcy","Gdot","gdot","gE","ge","gEl","gel","geq","geqq","geqslant","ges","gescc","gesdot","gesdoto","gesdotol","gesl","gesles","Gfr","gfr","Gg","gg","ggg","gimel","GJcy","gjcy","gl","gla","glE","glj","gnap","gnapprox","gnE","gne","gneq","gneqq","gnsim","Gopf","gopf","grave","GreaterEqual","GreaterEqualLess","GreaterFullEqual","GreaterGreater","GreaterLess","GreaterSlantEqual","GreaterTilde","Gscr","gscr","gsim","gsime","gsiml","Gt","GT","gtcc","gtcir","gtdot","gtlPar","gtquest","gtrapprox","gtrarr","gtrdot","gtreqless","gtreqqless","gtrless","gtrsim","gvertneqq","gvnE","Hacek","hairsp","half","hamilt","HARDcy","hardcy","hArr","harr","harrcir","harrw","Hat","hbar","Hcirc","hcirc","hearts","heartsuit","hellip","hercon","Hfr","hfr","HilbertSpace","hksearow","hkswarow","hoarr","homtht","hookleftarrow","hookrightarrow","Hopf","hopf","horbar","HorizontalLine","Hscr","hscr","hslash","Hstrok","hstrok","HumpDownHump","HumpEqual","hybull","hyphen","Iacute","iacute","ic","Icirc","icirc","Icy","icy","Idot","IEcy","iecy","iexcl","iff","Ifr","ifr","Igrave","igrave","ii","iiiint","iiint","iinfin","iiota","IJlig","ijlig","Im","Imacr","imacr","ImaginaryI","imagline","imagpart","imath","imof","imped","Implies","in","incare","infin","infintie","inodot","Int","int","intcal","integers","Integral","intercal","Intersection","intlarhk","intprod","InvisibleComma","InvisibleTimes","IOcy","iocy","Iogon","iogon","Iopf","iopf","Iota","iota","iprod","iquest","Iscr","iscr","isin","isindot","isinE","isins","isinsv","isinv","Itilde","itilde","Iukcy","iukcy","Iuml","iuml","Jcirc","jcirc","Jcy","jcy","Jfr","jfr","jmath","Jopf","jopf","Jscr","jscr","Jsercy","jsercy","Jukcy","jukcy","Kappa","kappa","kappav","Kcedil","kcedil","Kcy","kcy","Kfr","kfr","kgreen","KHcy","khcy","KJcy","kjcy","Kopf","kopf","Kscr","kscr","lAarr","Lacute","lacute","laemptyv","lagran","Lambda","lambda","Lang","langd","langle","lap","Laplacetrf","laquo","Larr","lArr","larr","larrb","larrbfs","larrfs","larrhk","larrlp","larrpl","larrsim","larrtl","lat","lAtail","latail","late","lates","lBarr","lbarr","lbbrk","lbrace","lbrack","lbrke","lbrksld","lbrkslu","Lcaron","lcaron","Lcedil","lcedil","lceil","lcub","Lcy","lcy","ldca","ldquo","ldquor","ldrdhar","ldrushar","ldsh","lE","le","LeftAngleBracket","LeftArrow","Leftarrow","leftarrow","LeftArrowBar","LeftArrowRightArrow","leftarrowtail","LeftCeiling","LeftDoubleBracket","LeftDownTeeVector","LeftDownVector","LeftDownVectorBar","LeftFloor","leftharpoondown","leftharpoonup","leftleftarrows","LeftRightArrow","Leftrightarrow","leftrightarrow","leftrightarrows","leftrightharpoons","leftrightsquigarrow","LeftRightVector","LeftTee","LeftTeeArrow","LeftTeeVector","leftthreetimes","LeftTriangle","LeftTriangleBar","LeftTriangleEqual","LeftUpDownVector","LeftUpTeeVector","LeftUpVector","LeftUpVectorBar","LeftVector","LeftVectorBar","lEg","leg","leq","leqq","leqslant","les","lescc","lesdot","lesdoto","lesdotor","lesg","lesges","lessapprox","lessdot","lesseqgtr","lesseqqgtr","LessEqualGreater","LessFullEqual","LessGreater","lessgtr","LessLess","lesssim","LessSlantEqual","LessTilde","lfisht","lfloor","Lfr","lfr","lg","lgE","lHar","lhard","lharu","lharul","lhblk","LJcy","ljcy","Ll","ll","llarr","llcorner","Lleftarrow","llhard","lltri","Lmidot","lmidot","lmoust","lmoustache","lnap","lnapprox","lnE","lne","lneq","lneqq","lnsim","loang","loarr","lobrk","LongLeftArrow","Longleftarrow","longleftarrow","LongLeftRightArrow","Longleftrightarrow","longleftrightarrow","longmapsto","LongRightArrow","Longrightarrow","longrightarrow","looparrowleft","looparrowright","lopar","Lopf","lopf","loplus","lotimes","lowast","lowbar","LowerLeftArrow","LowerRightArrow","loz","lozenge","lozf","lpar","lparlt","lrarr","lrcorner","lrhar","lrhard","lrm","lrtri","lsaquo","Lscr","lscr","Lsh","lsh","lsim","lsime","lsimg","lsqb","lsquo","lsquor","Lstrok","lstrok","Lt","LT","ltcc","ltcir","ltdot","lthree","ltimes","ltlarr","ltquest","ltri","ltrie","ltrif","ltrPar","lurdshar","luruhar","lvertneqq","lvnE","macr","male","malt","maltese","mapsto","mapstodown","mapstoleft","mapstoup","marker","mcomma","Mcy","mcy","mdash","mDDot","measuredangle","MediumSpace","Mellintrf","Mfr","mfr","mho","micro","mid","midast","midcir","middot","minus","minusb","minusd","minusdu","MinusPlus","mlcp","mldr","mnplus","models","Mopf","mopf","mp","Mscr","mscr","mstpos","Mu","mu","multimap","mumap","nabla","Nacute","nacute","nang","nap","napE","napid","napos","napprox","natur","natural","naturals","nbsp","nbump","nbumpe","ncap","Ncaron","ncaron","Ncedil","ncedil","ncong","ncongdot","ncup","Ncy","ncy","ndash","ne","nearhk","neArr","nearr","nearrow","nedot","NegativeMediumSpace","NegativeThickSpace","NegativeThinSpace","NegativeVeryThinSpace","nequiv","nesear","nesim","NestedGreaterGreater","NestedLessLess","NewLine","nexist","nexists","Nfr","nfr","ngE","nge","ngeq","ngeqq","ngeqslant","nges","nGg","ngsim","nGt","ngt","ngtr","nGtv","nhArr","nharr","nhpar","ni","nis","nisd","niv","NJcy","njcy","nlArr","nlarr","nldr","nlE","nle","nLeftarrow","nleftarrow","nLeftrightarrow","nleftrightarrow","nleq","nleqq","nleqslant","nles","nless","nLl","nlsim","nLt","nlt","nltri","nltrie","nLtv","nmid","NoBreak","NonBreakingSpace","Nopf","nopf","Not","not","NotCongruent","NotCupCap","NotDoubleVerticalBar","NotElement","NotEqual","NotEqualTilde","NotExists","NotGreater","NotGreaterEqual","NotGreaterFullEqual","NotGreaterGreater","NotGreaterLess","NotGreaterSlantEqual","NotGreaterTilde","NotHumpDownHump","NotHumpEqual","notin","notindot","notinE","notinva","notinvb","notinvc","NotLeftTriangle","NotLeftTriangleBar","NotLeftTriangleEqual","NotLess","NotLessEqual","NotLessGreater","NotLessLess","NotLessSlantEqual","NotLessTilde","NotNestedGreaterGreater","NotNestedLessLess","notni","notniva","notnivb","notnivc","NotPrecedes","NotPrecedesEqual","NotPrecedesSlantEqual","NotReverseElement","NotRightTriangle","NotRightTriangleBar","NotRightTriangleEqual","NotSquareSubset","NotSquareSubsetEqual","NotSquareSuperset","NotSquareSupersetEqual","NotSubset","NotSubsetEqual","NotSucceeds","NotSucceedsEqual","NotSucceedsSlantEqual","NotSucceedsTilde","NotSuperset","NotSupersetEqual","NotTilde","NotTildeEqual","NotTildeFullEqual","NotTildeTilde","NotVerticalBar","npar","nparallel","nparsl","npart","npolint","npr","nprcue","npre","nprec","npreceq","nrArr","nrarr","nrarrc","nrarrw","nRightarrow","nrightarrow","nrtri","nrtrie","nsc","nsccue","nsce","Nscr","nscr","nshortmid","nshortparallel","nsim","nsime","nsimeq","nsmid","nspar","nsqsube","nsqsupe","nsub","nsubE","nsube","nsubset","nsubseteq","nsubseteqq","nsucc","nsucceq","nsup","nsupE","nsupe","nsupset","nsupseteq","nsupseteqq","ntgl","Ntilde","ntilde","ntlg","ntriangleleft","ntrianglelefteq","ntriangleright","ntrianglerighteq","Nu","nu","num","numero","numsp","nvap","nVDash","nVdash","nvDash","nvdash","nvge","nvgt","nvHarr","nvinfin","nvlArr","nvle","nvlt","nvltrie","nvrArr","nvrtrie","nvsim","nwarhk","nwArr","nwarr","nwarrow","nwnear","Oacute","oacute","oast","ocir","Ocirc","ocirc","Ocy","ocy","odash","Odblac","odblac","odiv","odot","odsold","OElig","oelig","ofcir","Ofr","ofr","ogon","Ograve","ograve","ogt","ohbar","ohm","oint","olarr","olcir","olcross","oline","olt","Omacr","omacr","Omega","omega","Omicron","omicron","omid","ominus","Oopf","oopf","opar","OpenCurlyDoubleQuote","OpenCurlyQuote","operp","oplus","Or","or","orarr","ord","orderof","ordf","ordm","origof","oror","orslope","orv","oS","Oscr","oscr","Oslash","oslash","osol","Otilde","otilde","Otimes","otimes","otimesas","Ouml","ouml","ovbar","OverBar","OverBrace","OverBracket","OverParenthesis","par","para","parallel","parsim","parsl","part","PartialD","Pcy","pcy","percnt","permil","perp","pertenk","Pfr","pfr","Phi","phi","phiv","phmmat","phone","Pi","pi","pitchfork","piv","planck","planckh","plankv","plus","plusacir","plusb","pluscir","plusdo","plusdu","pluse","PlusMinus","plusmn","plussim","plustwo","pm","Poincareplane","pointint","Popf","popf","pound","Pr","pr","prap","prcue","prE","pre","prec","precapprox","preccurlyeq","Precedes","PrecedesEqual","PrecedesSlantEqual","PrecedesTilde","preceq","precnapprox","precneqq","precnsim","precsim","Prime","prime","primes","prnap","prnE","prnsim","prod","Product","profalar","profline","profsurf","prop","Proportion","Proportional","propto","prsim","prurel","Pscr","pscr","Psi","psi","puncsp","Qfr","qfr","qint","Qopf","qopf","qprime","Qscr","qscr","quaternions","quatint","quest","questeq","QUOT","rAarr","race","Racute","racute","radic","raemptyv","Rang","rang","rangd","rangle","raquo","Rarr","rArr","rarr","rarrap","rarrb","rarrbfs","rarrc","rarrfs","rarrhk","rarrlp","rarrpl","rarrsim","Rarrtl","rarrtl","rarrw","rAtail","ratail","ratio","rationals","RBarr","rBarr","rbarr","rbbrk","rbrace","rbrack","rbrke","rbrksld","rbrkslu","Rcaron","rcaron","Rcedil","rcedil","rceil","rcub","Rcy","rcy","rdca","rdldhar","rdquo","rdquor","rdsh","Re","real","realine","realpart","reals","rect","REG","reg","ReverseElement","ReverseEquilibrium","ReverseUpEquilibrium","rfisht","rfloor","Rfr","rfr","rHar","rhard","rharu","rharul","Rho","rho","rhov","RightAngleBracket","RightArrow","Rightarrow","rightarrow","RightArrowBar","RightArrowLeftArrow","rightarrowtail","RightCeiling","RightDoubleBracket","RightDownTeeVector","RightDownVector","RightDownVectorBar","RightFloor","rightharpoondown","rightharpoonup","rightleftarrows","rightleftharpoons","rightrightarrows","rightsquigarrow","RightTee","RightTeeArrow","RightTeeVector","rightthreetimes","RightTriangle","RightTriangleBar","RightTriangleEqual","RightUpDownVector","RightUpTeeVector","RightUpVector","RightUpVectorBar","RightVector","RightVectorBar","ring","risingdotseq","rlarr","rlhar","rlm","rmoust","rmoustache","rnmid","roang","roarr","robrk","ropar","Ropf","ropf","roplus","rotimes","RoundImplies","rpar","rpargt","rppolint","rrarr","Rrightarrow","rsaquo","Rscr","rscr","Rsh","rsh","rsqb","rsquo","rsquor","rthree","rtimes","rtri","rtrie","rtrif","rtriltri","RuleDelayed","ruluhar","rx","Sacute","sacute","sbquo","Sc","sc","scap","Scaron","scaron","sccue","scE","sce","Scedil","scedil","Scirc","scirc","scnap","scnE","scnsim","scpolint","scsim","Scy","scy","sdot","sdotb","sdote","searhk","seArr","searr","searrow","sect","semi","seswar","setminus","setmn","sext","Sfr","sfr","sfrown","sharp","SHCHcy","shchcy","SHcy","shcy","ShortDownArrow","ShortLeftArrow","shortmid","shortparallel","ShortRightArrow","ShortUpArrow","shy","Sigma","sigma","sigmaf","sigmav","sim","simdot","sime","simeq","simg","simgE","siml","simlE","simne","simplus","simrarr","slarr","SmallCircle","smallsetminus","smashp","smeparsl","smid","smile","smt","smte","smtes","SOFTcy","softcy","sol","solb","solbar","Sopf","sopf","spades","spadesuit","spar","sqcap","sqcaps","sqcup","sqcups","Sqrt","sqsub","sqsube","sqsubset","sqsubseteq","sqsup","sqsupe","sqsupset","sqsupseteq","squ","Square","square","SquareIntersection","SquareSubset","SquareSubsetEqual","SquareSuperset","SquareSupersetEqual","SquareUnion","squarf","squf","srarr","Sscr","sscr","ssetmn","ssmile","sstarf","Star","star","starf","straightepsilon","straightphi","strns","Sub","sub","subdot","subE","sube","subedot","submult","subnE","subne","subplus","subrarr","Subset","subset","subseteq","subseteqq","SubsetEqual","subsetneq","subsetneqq","subsim","subsub","subsup","succ","succapprox","succcurlyeq","Succeeds","SucceedsEqual","SucceedsSlantEqual","SucceedsTilde","succeq","succnapprox","succneqq","succnsim","succsim","SuchThat","Sum","sum","sung","Sup","sup","sup1","sup2","sup3","supdot","supdsub","supE","supe","supedot","Superset","SupersetEqual","suphsol","suphsub","suplarr","supmult","supnE","supne","supplus","Supset","supset","supseteq","supseteqq","supsetneq","supsetneqq","supsim","supsub","supsup","swarhk","swArr","swarr","swarrow","swnwar","szlig","Tab","Tau","tau","tbrk","Tcaron","tcaron","Tcedil","tcedil","Tcy","tcy","tdot","telrec","Tfr","tfr","there4","Therefore","therefore","Theta","theta","thetasym","thetav","thickapprox","thicksim","ThickSpace","thinsp","ThinSpace","thkap","thksim","THORN","thorn","Tilde","tilde","TildeEqual","TildeFullEqual","TildeTilde","times","timesb","timesbar","timesd","tint","toea","top","topbot","topcir","Topf","topf","topfork","tosa","tprime","TRADE","trade","triangle","triangledown","triangleleft","trianglelefteq","triangleq","triangleright","trianglerighteq","tridot","trie","triminus","TripleDot","triplus","trisb","tritime","trpezium","Tscr","tscr","TScy","tscy","TSHcy","tshcy","Tstrok","tstrok","twixt","twoheadleftarrow","twoheadrightarrow","Uacute","uacute","Uarr","uArr","uarr","Uarrocir","Ubrcy","ubrcy","Ubreve","ubreve","Ucirc","ucirc","Ucy","ucy","udarr","Udblac","udblac","udhar","ufisht","Ufr","ufr","Ugrave","ugrave","uHar","uharl","uharr","uhblk","ulcorn","ulcorner","ulcrop","ultri","Umacr","umacr","uml","UnderBar","UnderBrace","UnderBracket","UnderParenthesis","Union","UnionPlus","Uogon","uogon","Uopf","uopf","UpArrow","Uparrow","uparrow","UpArrowBar","UpArrowDownArrow","UpDownArrow","Updownarrow","updownarrow","UpEquilibrium","upharpoonleft","upharpoonright","uplus","UpperLeftArrow","UpperRightArrow","Upsi","upsi","upsih","Upsilon","upsilon","UpTee","UpTeeArrow","upuparrows","urcorn","urcorner","urcrop","Uring","uring","urtri","Uscr","uscr","utdot","Utilde","utilde","utri","utrif","uuarr","Uuml","uuml","uwangle","vangrt","varepsilon","varkappa","varnothing","varphi","varpi","varpropto","vArr","varr","varrho","varsigma","varsubsetneq","varsubsetneqq","varsupsetneq","varsupsetneqq","vartheta","vartriangleleft","vartriangleright","Vbar","vBar","vBarv","Vcy","vcy","VDash","Vdash","vDash","vdash","Vdashl","Vee","vee","veebar","veeeq","vellip","Verbar","verbar","Vert","vert","VerticalBar","VerticalLine","VerticalSeparator","VerticalTilde","VeryThinSpace","Vfr","vfr","vltri","vnsub","vnsup","Vopf","vopf","vprop","vrtri","Vscr","vscr","vsubnE","vsubne","vsupnE","vsupne","Vvdash","vzigzag","Wcirc","wcirc","wedbar","Wedge","wedge","wedgeq","weierp","Wfr","wfr","Wopf","wopf","wp","wr","wreath","Wscr","wscr","xcap","xcirc","xcup","xdtri","Xfr","xfr","xhArr","xharr","Xi","xi","xlArr","xlarr","xmap","xnis","xodot","Xopf","xopf","xoplus","xotime","xrArr","xrarr","Xscr","xscr","xsqcup","xuplus","xutri","xvee","xwedge","Yacute","yacute","YAcy","yacy","Ycirc","ycirc","Ycy","ycy","yen","Yfr","yfr","YIcy","yicy","Yopf","yopf","Yscr","yscr","YUcy","yucy","Yuml","yuml","Zacute","zacute","Zcaron","zcaron","Zcy","zcy","Zdot","zdot","zeetrf","ZeroWidthSpace","Zeta","zeta","Zfr","zfr","ZHcy","zhcy","zigrarr","Zopf","zopf","Zscr","zscr","zwj","zwnj","fails","createPropertyDescriptor","win","global","_isNativeFunction","_objCreate","F","ParsingError","errorData","message","parseTimeStamp","computeSeconds","h","m","Settings","parseOptions","keyValueDelim","groupDelim","kv","v","parseCue","cue","regionList","oInput","consumeTimeStamp","ts","Errors","BadTimeStamp","consumeCueSettings","settings","region","alt","vals","vals0","integer","percent","vertical","line","lineAlign","snapToLines","left","center","middle","right","positionAlign","skipWhitespace","BadSignature","dflt","defaultKey","n","TEXTAREA_ELEMENT","TAG_NAME","u","ruby","rt","DEFAULT_COLOR_CLASS","white","lime","cyan","red","yellow","magenta","blue","black","TAG_ANNOTATION","NEEDS_PARENT","parseContent","nextToken","consume","unescape","innerHTML","shouldAdd","annotation","rootDiv","tagStack","pop","classes","cl","bgColor","colorName","propName","propValue","style","className","strongRTLRanges","isStrongRTLChar","charCode","currentRange","determineBidi","cueDiv","nodeStack","pushNodes","nextTextNode","innerText","charCodeAt","computeLinePos","track","textTrackList","mediaElement","trackList","mode","StyleBox","CueStyleBox","styleOptions","styles","color","backgroundColor","display","writingMode","unicodeBidi","applyStyles","direction","textAlign","font","whiteSpace","textPos","formatStyle","move","box","BoxPosition","lh","offsetHeight","offsetWidth","offsetTop","rects","getClientRects","getBoundingClientRect","lineHeight","moveBoxToLinePosition","styleBox","containerBox","boxPositions","findBestPosition","axis","bestPosition","specifiedPosition","percentage","overlapsOppositeAxis","within","overlapsAny","intersectPercentage","boxPosition","linePos","step","round","maxPosition","initialAxis","reverse","calculatedPercentage","toCSSCompatValues","unit","toMove","overlaps","b2","boxes","intersectArea","getSimpleBoxPosition","ret","StringDecoder","decodeURIComponent","encodeURIComponent","cuetext","FONT_SIZE_PERCENT","FONT_STYLE","CUE_BACKGROUND_PADDING","processCues","cues","overlay","firstChild","removeChild","paddedOverlay","shouldCompute","margin","fontSize","Parser","decoder","state","reportOrThrowError","onparsingerror","collectNextLine","pos","parseRegion","xy","anchor","lines","regionAnchorX","regionAnchorY","viewportAnchorX","viewportAnchorY","scroll","onregion","parseTimestampMap","ontimestampmap","parseHeader","stream","alreadyCollectedLine","hasSubstring","oncue","flush","onflush","root","URL_REGEX","FIRST_SEGMENT_REGEX","SLASH_DOT_REGEX","SLASH_DOT_DOT_REGEX","URLToolkit","baseURL","relativeURL","alwaysNormalize","basePartsForNormalise","parseURL","path","normalizePath","buildURLFromParts","relativeParts","scheme","baseParts","netLoc","pathParts","builtParts","fragment","baseURLPath","newPath","lastIndexOf","parts","Stream","listeners","_proto","on","listener","off","trigger","callbacks","_length","_i","dispose","pipe","destination","_Stream","LineStream","_this","nextNewline","TAB","parseByterange","byterangeString","attributeSeparator","keyvalue","RegExp","ParseStream","customParsers","tagMappers","event","_this2","newLines","mapper","mappedLine","newLine","tagType","title","playlistType","allowed","URI","BYTERANGE","resolution","dateTimeString","dateTimeObject","IV","Uint32Array","PRECISE","subkey","addParser","_this3","expression","customType","dataParser","addTagMapper","mapFn","camelCase","camelCaseKeys","setHoldBack","serverControl","partTargetDuration","hb","phb","minTargetDuration","minPartDuration","lineStream","parseStream","currentMap","uris","currentUri","hasParts","defaultMediaGroups","widevineUuid","currentTimeline","lastByterangeEnd","lastPartByterangeEnd","preloadHints","preloadSegment","entry","mediaGroup","rendition","endlist","inf","METHOD","KEYFORMAT","VALID_METHODS","KEYID","keyId","iv","isFinite","TYPE","mediaGroupType","AUTOSELECT","LANGUAGE","CHARACTERISTICS","characteristics","FORCED","forced","targetduration","timeOffset","precise","cueOut","cueOutCont","cueIn","skip","warnOnMissingAttributes_","segmentIndex","partIndex","renditionReports","canBlockReload","canSkipDateranges","hint","isPart","otherHint","report","required","partInf","partTarget","custom","missing","chunk","$","wrapErrorConstructorWithCause","WEB_ASSEMBLY","WebAssembly","exportGlobalErrorCauseWrapper","ERROR_NAME","wrapper","arity","exportWebAssemblyErrorCauseWrapper","stat","init","countBits","countBytes","padStart","isArrayBufferView","ArrayBuffer","isView","isTypedArray","toUint8","toHexString","toBinaryString","BYTE_TABLE","bytesToNumber","Uint16Array","_temp","_ref$signed","signed","_ref$le","total","byte","exponent","numberToBytes","_temp2","_ref2$le","byteCount","byteIndex","bytesToString","escape","stringToBytes","stringIsBytes","concatTypedArrays","buffers","totalLen","buf","tempBuffer","bytesMatch","_temp3","_ref3$offset","_ref3$mask","mask","bByte","aByte","keyCode","searchInput","hasKeyCode","which","names","search","foundNamedKey","codes","aliases","isEventKey","nameOrCode","alias","nameStartChar","nameChar","tagNamePattern","S_TAG","S_ATTR","S_ATTR_SPACE","S_EQ","S_ATTR_NOQUOT_VALUE","S_ATTR_END","S_TAG_SPACE","S_TAG_CLOSE","defaultNSMapCopy","fixedFromCharCode","surrogate1","surrogate2","entityReplacer","charAt","appendText","xt","lineEnd","linePattern","lineStart","parseStack","currentNSMap","closeMap","tagStart","config","localNSMap","endMatch","endIgnoreCaseMach","parseInstruction","parseDCC","ElementAttributes","parseElementStartPart","closed","fixSelfClosed","locator2","copyLocator","parseHtmlSpecialContent","addAttribute","qname","attributeNames","addValue","attrName","setTagName","nsp","nsPrefix","_copy","ns","elStartEnd","elEndStart","next","matchs","pubid","sysid","lastMatch","endDTD","lastIndex","getLocalName","notEmptyString","splitOnASCIIWhitespace","orderedSetReducer","toOrderedSet","arrayIncludes","dest","Super","pt","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","NodeList","LiveNodeList","refresh","_node","_refresh","_updateLiveList","inc","_inc","ownerDocument","ls","__set__","$$length","NamedNodeMap","_findNodeIndex","_addNamedNode","newAttr","oldAttr","ownerElement","_onRemoveAttribute","_onAddAttribute","_removeNamedNode","Node","_xmlEncoder","_visitNode","nextSibling","Document","_nsMap","remove","_onUpdateChild","newChild","cs","child","_removeChild","previous","previousSibling","lastChild","hasValidParentNodeType","nodeType","hasInsertableNodeType","isElementNode","isTextNode","isDocTypeNode","isElementInsertionPossible","parentChildNodes","docTypeNode","isElementReplacementPossible","hasElementChildThatIsNotChild","assertPreInsertionValidity1to5","parent","assertPreInsertionValidityInDocument","nodeChildNodes","nodeChildElements","parentElementChild","assertPreReplacementValidityInDocument","hasDoctypeChildThatIsNotChild","_insertBefore","_inDocumentAssertion","cp","newFirst","newLast","_appendSingleChild","Attr","CharacterData","Text","Comment","CDATASection","DocumentType","Notation","Entity","EntityReference","DocumentFragment","ProcessingInstruction","nodeSerializeToString","isHtml","nodeFilter","refNode","lookupPrefix","visibleNamespaces","namespace","serializeToString","needNamespaceDefine","addSerializedAttribute","qualifiedName","prefixedNodeName","defaultNS","ai","nsi","internalSubset","importNode","deep","node2","cloneNode","attrs2","_ownerElement","getNamedItem","setNamedItem","setNamedItemNS","getNamedItemNS","removeNamedItem","removeNamedItemNS","hasFeature","feature","insertBefore","refChild","replaceChild","oldChild","hasChildNodes","appendData","isSupported","hasAttributes","lookupNamespaceURI","isDefaultNamespace","importedNode","getElementById","rtv","getAttribute","getElementsByClassName","classNames","classNamesSet","nodeClassNames","matches","nodeClassNamesSet","createDocumentFragment","createAttribute","specified","createEntityReference","pl","hasAttribute","getAttributeNode","setAttribute","removeAttribute","removeAttributeNode","setAttributeNodeNS","removeAttributeNS","old","getAttributeNodeNS","hasAttributeNS","getAttributeNS","setAttributeNS","getElementsByTagNameNS","substringData","insertData","replaceData","deleteData","splitText","newText","newNode","getTextContent","argument","$default","getBuiltIn","hasOwn","isPrototypeOf","copyConstructorProperties","proxyAccessor","inheritIfRequired","normalizeStringArgument","installErrorCause","installErrorStack","DESCRIPTORS","IS_PURE","FULL_NAME","IS_AGGREGATE_ERROR","STACK_TRACE_LIMIT","OPTIONS_POSITION","OriginalError","OriginalErrorPrototype","BaseError","WrappedError","_inherits","doccy","minDoc","topLevel","browserApi","version$5","hooks_","hooks","hook","removeHook","hookOnce","original","FullscreenApi","prefixed","apiMap","specApi","history","LogByTypeFactory","log","level","lvl","levels","lvlRegExp","info","createLogger$1","logByType","createLogger","subname","debug","fname","historyItem","clear","disable","enable","_len2","_key2","_len3","_key3","_len4","_key4","log$1","each","initial","accum","sources","isPlain","computedStyle","getComputedStyle","computedStyleValue","getPropertyValue","USER_AGENT","navigator","userAgent","webkitVersionMap","appleWebkitVersion","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","classRegExp","isEl","isInFrame","createQuerier","selector","context","querySelector","ctx","createEl","getOwnPropertyNames","appendContent","prependTo","hasClass","classToCheck","classList","addClass","classToAdd","add","removeClass","classToRemove","toggleClass","classToToggle","setAttributes","attrValue","getAttributes","knownBooleans","attrVal","attribute","blockTextSelection","focus","onselectstart","unblockTextSelection","findPosition","offsetParent","fullscreenElement","offsetLeft","getPointerPosition","translated","transform","boxTarget","boxW","offsetY","offsetX","changedTouches","pageX","pageY","emptyEl","normalizeContent","insertContent","isSingleLeftClick","button","buttons","videojs$1","$$","Dom","_windowLoaded","autoSetup","vids","audios","divs","mediaEls","mediaEl","autoSetupTimeout","wait","vjs","setWindowLoaded","removeEventListener","FakeWeakMap","createStyleElement","setTextContent","styleSheet","cssText","_initialGuid","_guid","newGUID","WeakMap","vdata","performance","access","_supportsPassive","DomData","_cleanUpEvents","elem","handlers","dispatcher","detachEvent","disabled","_handleMultipleEvents","types","fixEvent","fixed_","returnTrue","returnFalse","isPropagationStopped","isImmediatePropagationStopped","preventDefault","srcElement","relatedTarget","fromElement","toElement","returnValue","defaultPrevented","stopPropagation","cancelBubble","stopImmediatePropagation","clientX","scrollLeft","clientLeft","clientY","scrollTop","clientTop","supportsPassive","passiveEvents","guid","hash","handlersCopy","passive","attachEvent","removeType","elemData","bubbles","targetData","one","func","any","EVENT_MAP","Events","UPDATE_REFRESH_INTERVAL","uid","bound","throttle","last","throttled","debounce","immediate","cancel","debounced","_later","EventTarget$2","allowedEvents_","ael","dispatchEvent","queueTrigger","oldTimeout","objName","name_","isEvented","eventBusEl_","addEventedCallback","eventedCallbacks","isValidEventType","validateTarget","fnName","validateEventType","validateListener","normalizeListenArgs","isTargetingSelf","shift","listen","EventedMixin","_normalizeListenArgs","removeListenerOnDispose","removeRemoverOnTargetDispose","_normalizeListenArgs2","largs","_normalizeListenArgs3","_len5","_key5","targetOrType","typeOrListener","evented","eventBusKey","el_","StatefulMixin","setState","stateUpdates","changes","to","stateful","defaultState","handleStateChanged","w","toTitleCase$1","titleCaseEquals","str1","str2","mergeOptions$3","MapSham","map_","thisArg","Map$1","SetSham","set_","Set$1","Set","Component$1","Component","ready","play","player_","isDisposed_","parentComponent_","options_","id_","handleLanguagechange","children_","childIndex_","childNameIndex_","setTimeoutIds_","setIntervalIds_","rafIds_","namedRafs_","clearingTimersOnDispose_","initChildren","reportTouchActivity","enableTouchActivity","readyQueue_","restoreEl","isDisposed","localize","tokens","defaultValue","languages","primaryCode","primaryLang","localizedString","contentEl","contentEl_","children","getChildById","getChild","getDescendant","currentChild","addChild","component","componentName","componentClassName","componentClass","ComponentClass","getComponent","childFound","compEl","workingChildren","parentOptions","handleAdd","playerOptions","Tech","some","wchild","isTech","buildCSSClass","isReady_","triggerReady","readyQueue","show","hide","lockShowing","unlockShowing","skipListeners","dimension","dimensions","widthOrHeight","pxIndex","currentDimension","computedWidthOrHeight","rule","currentDimensions","currentWidth","currentHeight","blur","handleKeyDown","handleKeyPress","emitTapEvents","couldBeTap","touchStart","firstTouch","tapMovementThreshold","touchTimeThreshold","touches","xdiff","ydiff","touchDistance","sqrt","noTap","touchTime","reportUserActivity","touchHolding","clearInterval","setInterval","touchEnd","timeoutId","clearTimersOnDispose_","interval","intervalId","requestAnimationFrame","_this4","supportsRaf_","requestNamedAnimationFrame","_this5","cancelNamedAnimationFrame","cancelAnimationFrame","_this6","idName","cancelName","registerComponent","ComponentToRegister","reason","isComp","components_","Player","players","playerNames","pname","rangeCheck","maxIndex","getRange","valueIndex","rangeIndex","createTimeRangesObj","timeRangesObj","Symbol","createTimeRanges","bufferedPercent","buffered","bufferedDuration","MediaError","defaultMessages","errorTypes","1","2","3","4","5","errNum","isPromise","silencePromise","trackToJson_","textTracksToJson","tech","trackEls","trackObjs","tracks","trackEl","textTracks","jsonToTextTracks","addedTrack","addRemoteTextTrack","addCue","textTrackConverter","MODAL_CLASS_NAME","ModalDialog","_Component","handleKeyDown_","close_","close","opened_","hasBeenOpened_","hasBeenFilled_","closeable","uncloseable","descEl_","description","tabIndex","previouslyActiveEl_","desc","fillAlways","fill","wasPlaying_","paused","pauseOnOpen","pause","hadControls_","controls","conditionalFocus_","opened","conditionalBlur_","temporary","closeable_","temp","controlText","fillWith","parentEl","nextSiblingEl","closeButton","content_","activeEl","activeElement","playerEl","focusIndex","focusableEls","focusableEls_","shiftKey","allChildren","querySelectorAll","HTMLAnchorElement","HTMLAreaElement","HTMLInputElement","HTMLSelectElement","HTMLTextAreaElement","HTMLButtonElement","HTMLIFrameElement","HTMLObjectElement","HTMLEmbedElement","TrackList","_EventTarget","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_","nonLanguageTextTrackKind","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","Track","trackProps","_loop","newLabel","parseUrl","props","host","getAbsoluteURL","getFileExtension","splitPathRe","isCrossOrigin","winLoc","urlInfo","srcProtocol","crossOrigin","Url","parseCues","srcContent","groupCollapsed","groupEnd","loadTrack","tech_","loaded_","TextTrack","_Track","srclang","default_","activeCues_","preload_","preloadTextTracks","activeCues","changed","timeupdateHandler","rvf_","requestVideoFrameCallback","disposeHandler","stopTracking","startTracking","newMode","ct","currentTime","active","cancelVideoFrameCallback","originalCue","originalCue_","removeCue","_removeCue","cuechange","AudioTrack","newEnabled","VideoTrack","newSelected","NONE","LOADING","LOADED","ERROR","HTMLTrackElement","load","NORMAL","ListClass","TrackClass","capitalName","getterName","privateName","REMOTE","remoteText","remoteTextEl","ALL","createTrackHelper","onDurationChange_","onDurationChange","trackProgress_","trackProgress","trackCurrentTime_","trackCurrentTime","stopTrackingCurrentTime_","stopTrackingCurrentTime","disposeSourceHandler_","disposeSourceHandler","queuedHanders_","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","remoteTracks","remoteTextTracks","handleAddTrack","handleRemoveTrack","updateDisplay","textTracksChanges","addTextTrack","createRemoteTextTrack","manualCleanup","_this7","htmlTrackElement","remoteTextTrackEls","getVideoPlaybackQuality","requestPictureInPicture","PromiseClass","disablePictureInPicture","setDisablePictureInPicture","cb","_this8","setPoster","playsinline","setPlaysinline","overrideNativeAudioTracks","overrideNativeVideoTracks","canPlayType","canPlaySource","srcObj","registerTech","techs_","defaultTechOrder_","getTech","videojs","featuresVolumeControl","featuresMuteControl","featuresFullscreenResize","featuresPlaybackRate","featuresSourceset","featuresVideoFrameCallback","withSourceHandlers","_Tech","registerSourceHandler","handler","sourceHandlers","can","selectSourceHandler","canHandleSource","sh","deferrable","originalFn","sourceHandler_","setSource","nativeSourceHandler","currentSource_","handleSource","middlewares","middlewareInstances","TERMINATOR","use","middleware","setSourceHelper","setTech","mw","reduceRight","middlewareIterator","mediate","callMethod","middlewareValue","terminated","executeRight","allowedGetters","muted","seekable","volume","ended","allowedSetters","setMuted","setVolume","allowedMediators","mws","clearCacheForPlayer","getOrCreateFactory","mwFactory","_mws$i","mwf","mwi","lastRun","_middleware","mwrest","_src","MimetypesKind","opus","ogv","mov","m4v","mkv","m4a","mp3","aac","caf","flac","oga","wav","m3u8","jpg","jpeg","gif","png","svg","webp","getMimetype","ext","mimetype","findMimetype","cache_","matchingSources","filterSource","newsrc","srcobj","fixSource","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","darkGray","lightGray","fontMap","monospace","sansSerif","serif","monospaceSansSerif","monospaceSerif","proportionalSansSerif","proportionalSerif","casual","smallcaps","constructColor","opacity","hex","tryUpdateStyle","TextTrackDisplay","updateDisplayHandler","toggleDisplay","preselectTrack","firstDesc","firstCaptions","preferredTrack","modes","userPref","selectedLanguage","clearDisplay","allowMultipleShowingTracks","showingTracks","updateForTrack","descriptionsTrack","captionsSubtitlesTrack","_track","updateDisplayState","overrides","textTrackSettings","getValues","textOpacity","backgroundOpacity","windowColor","windowOpacity","edgeStyle","textShadow","fontPercent","fontFamily","fontVariant","_i2","_track2","_j","cueEl","LoadingSpinner","isAudio","playerType","Button","BigPlayButton","_Button","mouseused_","handleMouseDown","playPromise","playToggle","playFocus","CloseButton","PlayToggle","replay","handlePlay","handlePause","handleEnded","handleSeeked","defaultImplementation","guide","gm","gh","setFormatTime","customImplementation","resetFormatTime","formatTime","TimeDisplay","updateContent","updateTextNode_","span","labelText_","textNode_","formattedTime_","oldNode","CurrentTimeDisplay","_TimeDisplay","getCache","DurationDisplay","TimeDivider","RemainingTimeDisplay","displayNegative","remainingTimeDisplay","remainingTime","LiveDisplay","updateShowing","SeekToLive","updateLiveEdgeStatus","liveTracker","updateLiveEdgeStatusHandler_","textEl_","atLiveEdge","seekToLiveEdge","clamp","Slider","handleMouseDown_","handleMouseUp_","handleMouseUp","handleMouseMove_","handleMouseMove","bar","barName","playerEvent","progress","getProgress","progress_","sizeKey","toFixed","getPercent","calculateDistance","stepBack","stepForward","bool","vertical_","percentify","LoadProgressBar","partEls_","loadedText","separator","percentageEl_","isLive","seekableEnd","bufferedEnd","percent_","dataset","TimeTooltip","seekBarRect","seekBarPoint","tooltipRect","playerRect","seekBarPointPx","spaceLeftOfPoint","spaceRightOfPoint","pullTooltipBy","write","updateTime","liveWindow","secondsBehind","PlayProgressBar","timeTooltip","MouseTimeDisplay","STEP_SECONDS","PAGE_KEY_MULTIPLIER","SeekBar","_Slider","setEventHandlers_","updateInterval","enableIntervalHandler_","enableInterval_","disableIntervalHandler_","disableInterval_","toggleVisibility_","visibilityState","getCurrentTime_","liveCurrentTime","currentTime_","userSeek_","nextSeekedFromUser","seekableStart","videoWasPlaying","mouseDown","newTime","distance","mouseTimeDisplay","handleAction","gotoFraction","ProgressControl","throttledHandleMouseSeek","handleMouseSeek","handleMouseUpHandler_","handleMouseDownHandler_","seekBar","playProgressBar","seekBarEl","removeListenersAddedOnMousedownAndTouchstart","PictureInPictureToggle","handlePictureInPictureChange","handlePictureInPictureEnabledChange","isSourceAudio","currentType","audioPosterMode","audioOnlyMode","isInPictureInPicture","exitPictureInPicture","pictureInPictureEnabled","FullscreenToggle","handleFullscreenChange","fsApi_","fullscreenEnabled","isFullscreen","exitFullscreen","requestFullscreen","checkVolumeSupport","VolumeLevel","VolumeLevelTooltip","rangeBarRect","rangeBarPoint","volumeBarPointPx","updateVolume","MouseVolumeLevelDisplay","VolumeBar","updateLastVolume_","updateARIAAttributes","mouseVolumeLevelDisplay","volumeBarEl","volumeBarRect","volumeBarPoint","checkMuted","ariaValue","volumeAsPercentage_","volumeBeforeDrag","lastVolume_","VolumeControl","volumeBar","throttledHandleMouseMove","orientationClass","checkMuteSupport","MuteToggle","vol","lastVolume","volumeToSet","updateIcon_","updateControlText_","soundOff","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","haveTitle","MenuButton","buttonClass","handleMenuKeyUp_","handleMenuKeyUp","menu","handleMouseLeave","handleSubmenuKeyDown","createMenu","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","selectCurrentItem_","track_","findChaptersTrack","setTrack","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","currentIndex","newIndex","playbackRateSupported","Spacer","CustomControlSpacer","_Spacer","ControlBar","ErrorDisplay","_ModalDialog","LOCAL_STORAGE_KEY$1","COLOR_BLACK","COLOR_BLUE","COLOR_CYAN","COLOR_GREEN","COLOR_MAGENTA","COLOR_RED","COLOR_WHITE","COLOR_YELLOW","OPACITY_OPAQUE","OPACITY_SEMI","OPACITY_TRANS","selectConfigs","parseOptionValue","getSelectedOptionValue","selectedIndex","setSelectedOption","TextTrackSettings","endDialog","setDefaults","persistTextTrackSettings","saveSettings","restoreSettings","createElSelect_","legendId","selectLabelledbyIds","optionId","createElFgColor_","createElBgColor_","createElWinColor_","createElColors_","createElFont_","createElControls_","defaultsDescription","setValues","localStorage","getItem","setItem","removeItem","ttDisplay","controlBar","subsCapsBtn","subsCapsButton","ccBtn","captionsButton","ResizeManager","RESIZE_OBSERVER_AVAILABLE","ResizeObserver","loadListener_","resizeObserver_","debouncedHandler_","resizeHandler","observe","contentWindow","unloadListener_","unobserve","disconnect","resizeObserver","defaults","trackingThreshold","liveTolerance","LiveTracker","handleVisibilityChange_","handleVisibilityChange","trackLiveHandler_","trackLive_","handlePlay_","handleFirstTimeupdate_","handleFirstTimeupdate","handleSeeked_","seekToLiveEdge_","reset_","handleDurationchange","toggleTracking","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","getInnerHTMLDescriptor","HTMLMediaElement","firstSourceWatch","resetSourceWatch_","innerDescriptor","appendWrapper","appendFn","retval","srcDescriptorPolyfill","getSrcDescriptor","setupSourceset","resetSourceset_","srcDescriptor","oldSetAttribute","oldLoad","currentSrc","defineLazyProperty","setter","Html5","crossoriginTracks","initNetworkState_","handleLateInit_","enableSourceset","setupSourcesetHandling_","isScrubbing_","nodes","nodesLength","removeNodes","proxyNativeTracks_","restoreMetadataTracksInIOSNativePlayer_","setControls","proxyWebkitFullscreen_","disposeMediaElement","metadataTracksPreFullscreenState","takeMetadataTrackSnapshot","storedMode","restoreTrackMode","storedTrack","overrideNative_","override","lowerCaseType","eventName","elTracks","proxyNativeTracksForType_","techTracks","currentTarget","removeOldTracks","removeTracks","found","playerElIngest","movingMediaElementInDOM","clone","tagAttributes","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","webkitKeys","resetMediaElement","videoPlaybackQuality","webkitDroppedFrameCount","webkitDecodedFrameCount","droppedVideoFrames","totalVideoFrames","creationTime","timing","navigationStart","TEST_VID","canControlVolume","canControl","canMuteVolume","canControlPlaybackRate","canOverrideAttributes","supportsNativeTextTracks","supportsNativeVideoTracks","videoTracks","supportsNativeAudioTracks","patchCanPlayType","mpegurlRE","unpatchCanPlayType","TECH_EVENTS_RETRIGGER","TECH_EVENTS_QUEUE","canplay","canplaythrough","playing","seeked","BREAKPOINT_ORDER","BREAKPOINT_CLASSES","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_","audioOnlyMode_","audioPosterMode_","audioOnlyCache_","playerHeight","hiddenChildren","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","aspectRatio_","idClass","videoWidth","videoHeight","ratioParts","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_","promise","resolveMuted","previouslyMuted","restoreMuted","mutedPromise","updateSourceCaches_","sourceElSources","sourceEls","matchingSourceEls","sourceObj","updateSourceCaches","playerSrc","currentSource","eventSrc","lastSource_","techSrc","techGet","request","lastPlaybackRate","queued","timeWhenWaiting","timeUpdateListener","handleTechCanPlay_","handleTechCanPlayThrough_","handleTechPlaying_","handleTechSeeked_","starttime","userActions","click","inAllowedEls","doubleClick","userWasActive","cancelable","toggleFullscreenClass_","targetPlayer","isFs","fullscreen","msMatchesSelector","_this9","togglePictureInPictureClass_","initTime","inactivityTimeout","defaultPlaybackRate","_this10","play_","_this11","isSrcReady","isSafariOrIOS","waitToPlay_","isNativeReplay","resetProgressBar_","runPlayTerminatedQueue_","runPlayCallbacks_","queue","q","percentAsDecimal","_muted","defaultMuted","_defaultMuted","isFS","oldValue","fullscreenOptions","offHandler","requestFullscreenHelper_","fsOptions","_this12","preferFullWindow","enterFullWindow","exitFullscreenHelper_","_this13","exitFullWindow","isFullWindow","docOrigOverflow","overflow","isPiP","isInPictureInPicture_","hotkeys","excludeElement","isContentEditable","allowedInputTypes","excludedTags","handleHotkeys","_hotkeys$fullscreenKe","fullscreenKey","keydownEvent","_hotkeys$muteKey","muteKey","_hotkeys$playPauseKey","playPauseKey","FSToggle","selectSource","foundSourceAndTech","_this14","techs","findFirstPassingTechSourcePair","outerArray","innerArray","tester","outerChoice","innerChoice","flip","finder","sourceOrder","handleSrc_","isRetry","_this15","resetRetryOnError_","middlewareSource","src_","notSupportedMessage","retryOnError","retry","stopListeningForErrors","_this16","sourceTech","_this17","doReset_","resetControlBarUI_","resetPlaybackRate_","resetVolumeBar_","durationDisplay","currentSources","techAutoplay","newPoster","usingNativeControls_","_this18","hookFunction","newErr","suppressNotSupportedError","triggerSuppressedError","errorDisplay","userActivity_","mouseInProgress","lastMoveX","lastMoveY","handleActivity","screenX","screenY","handleMouseUpAndMouseLeave","isAudio_","enableAudioOnlyUI_","_this19","playerChildren","controlBarHeight","disableAudioOnlyUI_","_this20","exitPromises","enablePosterModeUI_","disablePosterModeUI_","_this21","audioOnlyModePromise","_obj","toJSON","createModal","_this22","modal","currentBreakpoint","candidateBreakpoint","maxWidth","breakpoints_","breakpoint_","removeCurrentBreakpoint_","currentBreakpointClass","_breakpoints","responsive_","loadMedia","_this23","_this$cache_$media","artwork","tt","getMedia","baseOptions","tagOptions","dataSetup","_safeParseTuple","childName","previousLogLevel_","newRates","html5","userLanguage","navigationUI","BASE_PLUGIN_NAME","PLUGIN_CACHE_KEY","pluginStorage","pluginExists","getPlugin","markPluginAsActive","triggerSetupEvent","before","createBasicPlugin","plugin","basicPluginWrapper","createPluginFactory","PluginSubClass","getEventHash","Plugin","VERSION","isBasic","registerPlugin","deregisterPlugin","getPlugins","getPluginVersion","hasPlugin","hasLogged","extend","subClassMethods","methods","super_","normalizeId","getPlayer","defaultView","PlayerComponent","getPlayers","nId","_tag","_player","getAllPlayers","writeable","mergeOptions","addLanguage","_mergeOptions","createTimeRange","EventTarget","resolveManifestRedirect","handleManifestRedirect","req","responseURL","logger","TIME_FUDGE_FACTOR","SAFE_TIME_DELTA","filterRanges","timeRanges","results","findRange","findNextRange","findGaps","bufferIntersection","bufferA","bufferB","extents","printableRange","strArr","timeUntilRebuffer","timeRangesToArray","timeRangesList","isRangeDifferent","lastBufferedEnd","timeAheadOf","segmentDurationWithParts","getPartsAndSegments","si","getLastParts","lastSegment","getKnownPartCount","partCount","liveEdgeDelay","partHoldBack","holdBack","backwardDuration","endSequence","forwardDuration","intervalDuration","expired","backward","forward","totalDuration","sumDurations","defaultDuration","durationList","durations","playlistEnd","useSafeLiveEnd","liveEdgePadding","lastSegmentEndTime","getMediaInfoForTime","startingSegmentIndex","startingPartIndex","experimentalExactManifestTimings","partsAndSegments","partAndSegment","_partAndSegment","_i3","_i4","_partAndSegment2","isBlacklisted","excludeUntil","isIncompatible","isEnabled","blacklisted","isDisabled","isAes","estimateSegmentRequestTime","bytesReceived","isLowestEnabledRendition","currentBandwidth","MAX_VALUE","playlistMatch","someAudioVariant","groupName","variant","_ret","Playlist","createPlaylistID","groupID","parseManifest","onwarn","oninfo","_ref$customTagParsers","customTagParsers","_ref$customTagMappers","customTagMappers","experimentalLLHLS","customParser","setupMediaPlaylist","playlistErrors_","setupMediaPlaylists","resolveMediaGroupUris","masterForMedia","addPropertiesToMaster","createGroupID","phonyUri","audioOnlyMaster","groupId","mergeOptions$2","EventTarget$1","addLLHLSQueryDirectives","parameters","nextMSN","nextPart","_HLS_part","_HLS_msn","canSkipUntil","_HLS_skip","parsedUri","searchParams","updateSegment","skipped","updateSegments","oldSegments","newSegments","newSegment","resolveSegmentUris","baseUri","getAllSegments","isPlaylistUnchanged","updateMaster$1","newMedia","unchangedCheck","oldMedia","mergedPlaylist","skippedSegments","refreshDelay","lastPart","lastDuration","PlaylistLoader","vhs","logger_","_options$withCredenti","_options$handleManife","handleManifestRedirects","vhs_","vhsOptions","handleMediaupdatetimeout_","playlistRequestError","haveMetadata","playlistString","startingState","parseManifest_","playlistObject","lastRequest","pendingMedia_","media_","updateMediaUpdateTimeout_","stopRequest","mediaUpdateTimeout","finalRenditionTimeout","oldRequest","shouldDelay","delay","mediaChange","masterPlaylistRef","started","setupInitialPlaylist","srcUri","videojsXHR","mergeOptions$1","callbackWrapper","reqResponse","responseTime","roundTripTime","requestTime","responseHeaders","timedout","xhrFactory","XhrFunction","beforeRequest","Vhs","newOptions","xhrMethod","originalAbort","byterangeStr","byterangeEnd","byterangeStart","segmentXhrHeaders","Range","textRange","formatHexString","formatAsciiString","createTransferableMessage","transferable","initSegmentId","segmentKeyId","hexDump","ascii","tagDump","textRanges","utils","SEGMENT_END_FUDGE_PERCENT","playerTimeToProgramTime","playerTime","transmuxerPrependedSeconds","videoTimingInfo","transmuxedStart","transmuxedPresentationStart","startOfSegment","offsetFromSegmentStart","getTime","originalSegmentVideoDuration","transmuxedPresentationEnd","findSegmentForProgramTime","programTime","nextSegmentStart","lastSegmentStart","lastSegmentDuration","lastSegmentEnd","estimatedStart","findSegmentForPlayerTime","segmentEnd","getOffsetFromTimestamp","comparisonTimeStamp","segmentDateTime","programDateTime","segmentTimeEpoch","programTimeEpoch","verifyProgramDateTimeTags","getProgramTime","_ref$time","matchedSegment","seekTime","programTimeObject","mediaSeconds","toISOString","seekToProgramTime","_ref2$retryCount","retryCount","seekTo","_ref2$pauseAfterSeek","pauseAfterSeek","mediaOffset","seekToTime","seekedCallback","callbackOnCompleted","containerRequest","id3Offset","finished","endRequestAndCallback","_bytes","progressListener","newPart","overrideMimeType","loaded","dashPlaylistUnchanged","aSegment","bSegment","aByterange","bByterange","dashGroupId","playlistId","parseMasterXml","masterXml","srcUrl","removeOldMediaGroupLabels","newMaster","updateMaster","oldMaster","noChanges","playlistUpdate","_playlistUpdate","equivalentSidx","neitherMap","equivalentMap","compareSidxEntry","oldSidxMapping","newSidxMapping","currentSidxInfo","savedSidxInfo","sidxInfo","filterChangedSidxMappings","videoSidx","mediaGroupSidx","DashPlaylistLoader","srcUrlOrPlaylist","masterPlaylistLoader","masterPlaylistLoader_","isMaster_","refreshXml_","refreshMedia_","loadedPlaylists_","sidxMapping_","childPlaylist_","requestErrored_","addSidxSegments_","fin","internal","blacklistDuration","_playlist$sidx$bytera","mediaRequest_","minimumUpdatePeriodTimeout_","createMupOnMedia_","hasPendingRequest","sidxChanged","isFinalRendition","updateMinimumUpdatePeriodTimeout_","requestMaster_","masterChanged","haveMaster_","masterXml_","date","masterLoaded_","handleMaster_","syncClientServerClock_","done","utcTiming","clientOffset_","serverTime","mpl","mup","createMUPTimeout_","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","stringToArrayBuffer","browserWorkerPolyFill","workerObj","createObjectURL","Blob","blob","BlobBuilder","getBlob","factory","objectUrl","worker","Worker","objURL","terminate","revokeObjectURL","getWorkerString","workerCode$1","flushSource","partialFlush","endTimeline","dinf","esds","ftyp","mdat","mfhd","minf","moof","moov","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","MAX_UINT32$1","getUint64$2","numbers","avc1","avcC","btrt","dref","mp4a","pasp","smhd","stco","stsc","stsz","stts","styp","tfdt","tfhd","trun","vmhd","payload","setUint32","audioobjecttype","samplingfrequencyindex","channelcount","samplerate","sequenceNumber","trackFragments","samples","dependsOn","isDependedOn","hasRedundancy","videoSample","audioSample","avc1Box","sps","pps","sequenceParameterSets","pictureParameterSets","profileIdc","profileCompatibility","levelIdc","sarRatio","hSpacing","vSpacing","samplesize","trackFragmentHeader","trackFragmentDecodeTime","trackFragmentRun","sampleDependencyTable","dataOffset","upperWordBaseMediaDecodeTime","lowerWordBaseMediaDecodeTime","baseMediaDecodeTime","audioTrun","videoTrun","trunHeader","durationPresent","sizePresent","flagsPresent","compositionTimeOffset","bytesOffest","header","sample","isLeading","paddingValue","isNonSyncSample","degradationPriority","silence","mp4Generator","fileType","movie","groupNalsIntoFrames","nalUnits","currentNal","currentFrame","frames","nalCount","nalUnitType","dts","pts","keyFrame","groupFramesIntoGops","currentGop","gops","extendFirstKeyFrame","createDefaultSample","sampleForFrame","frame","generateSampleTable$1","baseDataOffset","concatenateNalData","nalsByteLength","numberOfNals","totalByteLength","generateSampleTableForFrame","concatenateNalDataForFrame","frameUtils","generateSampleTable","highPrefix","lowPrefix","zeroFill","makeTable","metaTable","arr","silence_1","coneOfSilence","96000","88200","64000","48000","44100","32000","24000","16000","12000","11025","8000","ONE_SECOND_IN_TS$4","clock","sumFrameByteLengths","currentObj","prefixWithSilence","audioAppendStartTs","videoBaseMediaDecodeTime","baseMediaDecodeTimeTs","silentFrame","firstFrame","frameDuration","audioGapDuration","audioFillFrameCount","audioFillDuration","trimAdtsFramesByEarliestDts","adtsFrames","earliestAllowedDts","minSegmentDts","minSegmentPts","concatenateFrameData","audioFrameUtils","ONE_SECOND_IN_TS$3","collectDtsInfo","timelineStartInfo","maxSegmentPts","maxSegmentDts","clearDtsInfo","calculateTrackBaseMediaDecodeTime","scale","trackDecodeInfo","USER_DATA_REGISTERED_ITU_T_T35","RBSP_TRAILING_BITS","parseSei","payloadType","payloadSize","userIdentifier","parseUserData","sei","parseCaptionPackets","userData","ccData","discardEmulationPreventionBytes$1","newLength","newData","emulationPreventionBytesPositions","sourceIndex","captionPacketParser","discardEmulationPreventionBytes","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","get708CharFromCode","newCode","within708TextBlock","Cea708Window","windowNum","clearText","pendingNewLine","winAttr","penAttr","penLoc","penColor","visible","rowLock","columnLock","relativePositioning","anchorVertical","anchorHorizontal","anchorPoint","rowCount","virtualRowCount","columnCount","windowStyle","penStyle","getText","rows","rowIdx","beforeRowOverflow","addText","backspace","Cea708Service","serviceNum","encoding","currentWindow","windows","createTextDecoder","startPts","setCurrentWindow","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","isMultiByte","extended","currentByte","nextByte","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","BOTTOM_ROW","ROWS","createDisplayBuffer","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","MAX_TS","RO_THRESH","TYPE_SHARED","handleRollover$1","TimestampRolloverStream$1","TimestampRolloverStream","lastDTS","referenceDTS","type_","_MetadataStream","timestampRolloverStream","handleRollover","percentEncode$1","parseUtf8","parseIso88591$1","parseSyncSafeInteger$1","tagParsers","TXXX","WXXX","PRIV","owner","privateData","tagSize","bufferSize","dispatchType","frameStart","frameSize","frameHeader","dataAlignmentIndicator","timeStamp","_TransportPacketStream","_TransportParseStream","_ElementaryStream","metadataStream","MP2T_PACKET_LENGTH$1","SYNC_BYTE$1","bytesInBuffer","everything","parsePsi","parsePat","parsePmt","packetsWaitingForPmt","programMapTable","payloadUnitStartIndicator","pat","section_number","last_section_number","pmtPid","pmt","sectionLength","tableEnd","programInfoLength","streamType","pid","processPes_","STREAM_TYPES","h264","adts","segmentHadPmt","timedMetadata","parsePes","pes","ptsDtsFlags","startPrefix","packetLength","forceFlush","packetFlushable","trackId","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","ExpGolomb","workingData","workingBytesAvailable","workingWord","workingBitsAvailable","bitsAvailable","loadWord","workingBytes","availableBytes","skipBits","skipBytes","readBits","bits","valu","skipLeadingZeros","leadingZeroCount","skipUnsignedExpGolomb","skipExpGolomb","readUnsignedExpGolomb","clz","readExpGolomb","readBoolean","readUnsignedByte","_H264Stream","_NalByteStream","PROFILES_WITH_OPTIONAL_SPS_DATA","expGolomb","syncPoint","swapBuffer","100","110","122","244","44","83","86","118","128","138","139","134","currentPts","currentDts","readSequenceParameterSet","skipScalingList","nalByteStream","nalUnitTypeCode","expGolombDecoder","deltaScale","lastScale","nextScale","chromaFormatIdc","picOrderCntType","numRefFramesInPicOrderCntCycle","picWidthInMbsMinus1","picHeightInMapUnitsMinus1","frameMbsOnlyFlag","scalingListCount","aspectRatioIdc","frameCropLeftOffset","frameCropRightOffset","frameCropTopOffset","frameCropBottomOffset","_AacStream","H264Stream","NalByteStream","ADTS_SAMPLING_FREQUENCIES","parseId3TagSize","isLikelyAacData$1","parseSyncSafeInteger","percentEncode","parseIso88591","parseAdtsSize","lowThree","highTwo","parseType$2","parseSampleRate","parseAacTimestamp","isLikelyAacData","parseType","setTimestamp","bytesLeft","tempLength","_VideoSegmentStream","_AudioSegmentStream","_Transmuxer","_CoalesceStream","AUDIO_PROPERTIES","audioProperties","VIDEO_PROPERTIES","videoProperties","ONE_SECOND_IN_TS$1","retriggerForStream","addPipelineLogRetriggers","transmuxer","pipeline","arrayEquals","generateSegmentTimingInfo","startDts","endDts","prependedContentDuration","ptsOffsetFromDts","decodeDuration","presentationDuration","firstSequenceNumber","setEarliestDts","earliestDts","setVideoBaseMediaDecodeTime","setAudioAppendStart","videoClockCyclesOfSilencePrefixed","gopsToAlignWith","minPTS","gopCache_","nalUnit","gopForFusion","firstGop","lastGop","resetStream_","getGopForFusion_","alignedGops","alignGopsAtEnd","alignGopsAtEnd_","alignGopsAtStart_","gop","dtsDistance","nearestGopObj","currentGopObj","halfSecond","allowableOverlap","nearestDistance","alignIndex","gopIndex","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","elementaryStream","h264Stream","videoSegmentStream","id3Frame","setBaseMediaDecodeTime","isAac","resetCaptions","Transmuxer","VideoSegmentStream","AudioSegmentStream","toUnsigned$3","toHexString$1","bin","toUnsigned","parseType$1","parseType_1","toUnsigned$2","findBox","subresults","findBox_1","toUnsigned$1","getUint64$1","parseTfdt","parseSampleFlags","parseSampleFlags_1","dataOffsetPresent","firstSampleFlagsPresent","sampleDurationPresent","sampleSizePresent","sampleFlagsPresent","sampleCompositionTimeOffsetPresent","getInt32","parseTrun","baseDataOffsetPresent","sampleDescriptionIndexPresent","defaultSampleDurationPresent","defaultSampleSizePresent","defaultSampleFlagsPresent","durationIsEmpty","defaultBaseIsMoof","sampleDescriptionIndex","defaultSampleDuration","defaultSampleSize","defaultSampleFlags","baseDataOffsetIsMoof","parseTfhd","commonjsGlobal","globalThis","compositionStartTime","getVideoTrackIds","getTracks","getTimescaleFromMediaHeader","window_1","mapToSample","approximateOffset","findSeiNals","avcStream","seiNal","lastMatchedSample","avcView","logs","seiNals","matchingSample","parseSamples","truns","allSamples","trackRun","parseCaptionNals","videoTrackId","trafs","mdats","captionNals","mdatTrafPairs","matchingTraf","pair","headerInfo","parseEmbeddedCaptions","trackNals","CaptionParser","segmentCache","parsedCaptions","parsingPartial","isInitialized","isPartial","isNewInit","videoTrackIds","timescales","parsedData","cachedSegment","pushNals","nals","nal","clearParsedCaptions","resetCaptionStream","clearAllCaptions","captionParser","traks","lowestTime","baseTime","trafBoxes","parsedTfhd","parsedTfdt","parsedTrun","hdlrs","tkhds","handlerType","getUint8","tkhdVersion","sampleDescriptions","codecConfig","codecConfigType","codecBox","probe$2","parsePid","parsePayloadUnitStartIndicator","parseAdaptionField","pusi","payloadOffset","parsePesType","parsePesTime","parseNalUnitType","videoPacketContainsKeyFrame","nalType","frameBuffer","frameI","frameSyncPoint","foundKeyFrame","probe$1","probe","SYNC_BYTE","parsePsi_","table","parseAudioPes_","pesType","parsed","endLoop","parseVideoPes_","firstKeyFrame","adjustTimestamp_","baseTimestamp","audioBaseTimestamp","dtsTime","ptsTime","videoBaseTimestamp","inspectAac_","audioCount","audioTimescale","inspectTs_","inspect","isAacData","tsInspector","wireTransmuxerEvents","initArray","typedArray","postMessage","action","gopInfo","timingInfo","videoSegmentTimingInfo","presentation","audioSegmentTimingInfo","trackInfo","audioTimingInfo","MessageHandlers","pushMp4Captions","trackIds","probeMp4StartTime","probeMp4Tracks","probeTs","baseStartTime","tsStartTime","timeInfo","videoStart","audioStart","clearAllMp4Captions","clearParsedMp4Captions","setTimestampOffset","timestampOffset","appendStart","onmessage","messageHandlers","TransmuxWorker","handleData_","transmuxedData","_event$data$segment","videoFrameDtsTime","videoFramePtsTime","handleDone_","handleGopInfo_","processTransmux","audioAppendStart","onData","onTrackInfo","onAudioTimingInfo","onVideoTimingInfo","onVideoSegmentTimingInfo","onAudioSegmentTimingInfo","onId3","onCaptions","onDone","onEndedTimeline","onTransmuxerLog","isEndOfTimeline","waitForEndedTimelineEvent","handleMessage","currentTransmux","dequeue","transmuxQueue","processAction","enqueueAction","transmux","createTransmuxer","term","segmentTransmuxer","workerCallback","endAction","listenForEndEvent","isArrayBuffer","transfers","REQUEST_ERRORS","FAILURE","TIMEOUT","ABORTED","abortAll","activeXhrs","getRequestStats","getProgressStats","progressEvent","stats","handleErrors","handleKeyResponse","finishProcessingFn","errorObj","parseInitSegment","_callback","handleInitSegmentResponse","encryptedBytes","parseError","handleSegmentResponse","newBytes","lastReachedChar","transmuxAndNotify","trackInfoFn","timingInfoFn","videoSegmentTimingInfoFn","audioSegmentTimingInfoFn","id3Fn","captionsFn","endedTimelineFn","dataFn","doneFn","fmp4Tracks","isMuxed","audioStartFn","audioEndFn","videoStartFn","videoEndFn","finish","id3Frames","probeResult","handleSegmentBytes","bytesAsUint8Array","isFmp4","audioCodec","videoCodec","finishLoading","decrypt","keyBytes","decryptionWorker","decryptionHandler","decrypted","encrypted","decryptSegment","requestId","decryptedBytes","waitForCompletion","didError","segmentFinish","endOfAllRequests","handleLoadEnd","_ref10","loadendState","abortFn","calledAbortFn","handleProgress","_ref11","progressFn","firstBytesReceivedAt","mediaSegmentRequest","_ref12","xhrOptions","keyRequestOptions","keyRequestCallback","keyXhr","differentMapKey","mapKeyRequestOptions","mapKeyRequestCallback","mapKeyXhr","initSegmentOptions","initSegmentRequestCallback","initSegmentXhr","segmentRequestOptions","segmentRequestCallback","segmentXhr","activeXhr","logFn$1","getCodecs","mediaAttributes","isMaat","unwrapCodecList","codecList","codecCount","codecObj","codecsForPlaylist","codecInfo","defaultCodecs","logFn","representationToString","safeGetComputedStyle","property","stableSort","sortFn","newArray","cmp","comparePlaylistBandwidth","leftBandwidth","rightBandwidth","comparePlaylistResolution","leftWidth","rightWidth","simpleSelector","playerBandwidth","playerWidth","limitRenditionByPlayerDimensions","masterPlaylistController","getAudioTrackPlaylists_","sortedPlaylistReps","rep","enabledPlaylistReps","bandwidthPlaylistReps","highestRemainingBandwidthRep","bandwidthBestRep","_chosenRep","haveResolution","resolutionBestRepList","resolutionPlusOneList","resolutionPlusOneSmallest","resolutionPlusOneRep","leastPixelDiffRep","resolutionBestRep","experimentalLeastPixelDiffSelector","leastPixelDiffList","pixelDiff","chosenRep","_type","lastBandwidthSelector","pixelRatio","useDevicePixelRatio","devicePixelRatio","systemBandwidth","masterPlaylistController_","movingAverageBandwidthSelector","decay","average","lastSystemBandwidth","minRebufferMaxBandwidthSelector","syncController","compatiblePlaylists","enabledPlaylists","bandwidthPlaylists","rebufferingEstimates","getSyncPoint","numRequests","requestTimeEstimate","rebufferingImpact","noRebufferingPlaylists","estimate","lowestBitrateCompatibleVariantSelector","playlistsWithVideo","concatSegments","segmentObj","createCaptionsTrackIfNotExists","inbandTextTracks","def","captionService","addCaptionData","captionArray","Cue","WebKitDataCue","deprecateOldCue","addMetadata","metadataArray","metadataTrack","metadataTrack_","cuesArray","cuesGroupedByStartTime","timeSlot","sortedStartTimes","cueGroup","nextTime","createMetadataTrackIfNotExists","inBandMetadataTrackDispatchType","removeCuesFromTrack","removeDuplicateCuesFromTrack","duplicates","occurrences","dupe","gopsSafeToAlignWith","mapping","currentTimePts","updateGopBuffer","removeGopBuffer","updatedBuffer","shallowEqual","akeys","bkeys","QUOTA_EXCEEDED_ERR","getSyncSegmentCandidate","targetTime","timelineSegments","MIN_BACK_BUFFER","CHECK_BUFFER_DELAY","finite","MIN_SEGMENT_DURATION_TO_SAVE_STATS","illegalMediaSwitch","loaderType","startingMedia","safeBackBufferTrimTime","trimTime","maxTrimTime","segmentInfoString","_segmentInfo$playlist","_segmentInfo$playlist2","mediaIndex","segmentLen","selection","isSyncRequest","independent","hasPartIndex","zeroBasedPartCount","timingInfoPropertyForMedia","timestampOffsetForSegment","overrideCheck","shouldWaitForTimelineChange","timelineChangeController","audioDisabled","lastMainTimelineChange","lastTimelineChange","pendingAudioTimelineChange","pendingTimelineChange","mediaDuration","timingInfos","maxDuration","typeTimingInfo","segmentTooLong","getTroublesomeSegmentDurationMessage","sourceType","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_","useDtsForTimestampOffset_","useDtsForTimestampOffset","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_","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","removeVideo","monitorBufferTick_","fillBuffer_","updating","chooseNextRequest_","loadSegment_","appendedLastSegment","appendedLastPart","bufferedTime","preloaded","haveEnoughBuffer","_Playlist$getMediaInf","_partIndex","nextSegment","lastSegmentLastPart","generateSegmentInfo_","forceTimestampOffset","random","timestampOffsetForSegment_","audioBufferedEnd","audioTimestampOffset","videoTimestampOffset","earlyAbortWhenNeeded_","measuredBandwidth","requestTimeRemaining","timeUntilRebuffer$1","switchCandidate","timeSavedBySwitching","minimumTimeSaving","handleAbort_","handleProgress_","simpleSegment","handleTrackInfo_","checkForIllegalMediaSwitch","handleTimingInfo_","timeType","timingInfoProperty","handleCaptions_","captionData","hasAppendedData_","captionTracks","captionTrack","trackName","_captionTracks$trackN","handleId3_","processMetadataQueue_","callQueue","fun","loadQueue","getCurrentMediaInfo_","getPendingSegmentPlaylist","setTimeMapping_","updateMediaSecondsLoaded_","firstVideoFrameTimeForData","useVideoTimingInfo","trueSegmentStart_","currentStart","currentVideoTimestampOffset","updateAppendInitSegmentStatus","updateSourceBufferTimestampOffset_","updateTimingInfoEnd_","saveSegmentTimingInfo","shouldSaveTimelineMapping","appendData_","changedTimestampOffset","getInitSegmentAndUpdateState_","handleQuotaExceededError_","audioBufferStart","audioBufferEnd","videoBufferStart","videoBufferEnd","appendToSourceBuffer_","timeToRemoveUntil","handleAppendError_","appendBuffer","handleSegmentTimingInfo_","segmentTimingInfo","transmuxedDecodeStart","transmuxedDecodeEnd","trimBackBuffer_","updateTransmuxerAndRequestSegment_","shouldUpdateTransmuxerTimestampOffset_","createSimplifiedSegmentObj_","isEndOfStream","isWalkingForward","isDiscontinuity","segmentRequestFinished_","removeToTime","previousSegment","saveTransferStats_","saveBandwidthRelatedStats_","handleTimeout_","waitForAppendsToComplete_","timelineMapping","mappingForTimeline","waitForVideo","waitForAudio","waitingOnAppends","checkAppendsDone_","videoQueueCallback","audioQueueCallback","handleAppendsDone_","illegalMediaSwitchError","didChange","getSegmentStartTimeForTimestampOffsetCalculation_","prioritizedTimingInfo","segmentDurationMessage","recordThroughput_","addSegmentMetadataCue_","badSegmentGuess","badPartGuess","segmentProcessingTime","segmentProcessingThroughput","Vhs$1","toTitleCase","bufferTypes","_updating","sourceBuffer","queuePending","nextQueueIndexOfType","queueEntry","shiftQueue","queueIndex","cleanupBuffer","titleType","inSourceBuffers","sourceBuffers","actions","onError","_duration","addSourceBuffer","mime","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","setDuration","uint8ToUtf8","uintArray","VTT_LINE_TERMINATORS","_char3","NoVttJsError","_Error","VTTSegmentLoader","_SegmentLoader","subtitlesTrack_","featuresNativeTextTracks_","loadVttJs","combinedByteLength","combinedSegment","timestampOffsetForTimeline","checkTimestampOffset","skipEmptySegments_","stopForError","requested","parseVTTCues_","updateTimeMapping_","timelines","decodeBytesToString","timestampmap","MPEGTS","LOCAL","mapData","segmentData","mappingObj","diff","firstStart","lastStart","findAdCue","mediaTime","adStartTime","adEndTime","updateAdCues","_segment$cueOutCont$s","adOffset","adTotal","MAX_MEDIA_SEQUENCE_DIFF_FOR_SYNC","syncPointStrategies","run","timelineToDatetimeMappings","lastDistance","datetimeMapping","z","discontinuitySync","discontinuities","SyncController","syncPoints","runStrategies_","selectSyncPoint_","getExpiredTime","strategy","bestSyncPoint","bestDistance","bestStrategy","newDistance","lastRemovedSegment","firstSegment","playlistTimestamp","didCalculateSegmentTimeMapping","calculateSegmentTimeMapping_","saveDiscontinuitySyncInfo_","dateTime","accuracy","mediaIndexDiff","TimelineChangeController","pendingTimelineChanges_","lastTimelineChanges_","workerCode","createCommonjsModule","basedir","commonjsRequire","createClass","_defineProperties","_createClass","protoProps","staticProps","inheritsLoose","unpad","padded","precompute","xInv","x2","x4","x8","tEnc","tDec","tables","encTable","decTable","sbox","sboxInv","th","aesTables","AES","tmp","_tables","keyLen","rcon","encKey","decKey","encrypted0","encrypted1","encrypted2","encrypted3","out","a2","c2","nInnerRounds","kIndex","table0","table1","table2","table3","AsyncStream","jobs","timeout_","processJob_","job","ntoh","word","initVector","init0","init1","init2","init3","wordIx","encrypted32","Int32Array","decipher","decrypted32","Decrypter","STEP","asyncStream_","decryptChunk_","audioTrackKind_","stopLoaders","segmentLoader","activePlaylistLoader","startLoaders","playlistLoader","onGroupChanged","_settings$segmentLoad","segmentLoaders","mainSegmentLoader","activeTrack","activeGroup","getActiveGroup","previousActiveLoader","lastGroup","lastGroup_","lastTrack_","isMasterPlaylist","onGroupChanging","onTrackChanged","_settings$segmentLoad2","lastTrack","mpc","selectPlaylist","fastQualityChange_","blacklistCurrentPlaylist","defaultTrack","setupListeners","requestOptions","initialize","_settings$mediaTypes$","variantLabel","_settings$mediaTypes$2","_settings$mediaTypes$3","newProps","groupMatch","variants","groupKeys","groupPropertyList","activeTrack_","setupMediaGroups","_settings$segmentLoad3","audioSegmentLoader","activeAudioGroup","onAudioTrackChanged","createMediaTypes","ABORT_EARLY_BLACKLIST_SECONDS","loaderStats","sumLoaderStat","audioSegmentLoader_","mainSegmentLoader_","shouldSwitchToMedia","currentPlaylist","nextPlaylist","bufferLowWaterLine","bufferHighWaterLine","experimentalBufferBasedABR","sharedLogLine","isBuffered","forwardBuffer","maxBufferLowWaterLine","nextBandwidth","currBandwidth","logLine","_logLine","MasterPlaylistController","externVhs","useCueTags","enableLowInitialPlaylist","maxPlaylistRetries","useCueTags_","cueTagsTrack_","requestOptions_","pauseLoading","mediaTypes_","handleDurationChange_","handleSourceOpen_","handleSourceEnded_","segmentLoaderSettings","setupMasterPlaylistLoaderListeners_","subtitleSegmentLoader_","onLoad","setupSegmentLoaderListeners_","startABRTimer_","stopABRTimer_","triggeredFmp4Usage","loadOnPlay_","timeToLoadedData__","mainAppendsToLoadedData__","audioAppendsToLoadedData__","timeToLoadedDataStart","mainAppendsToLoadedData_","audioAppendsToLoadedData_","appendsToLoadedData_","timeToLoadedData_","checkABR_","shouldSwitchToMedia_","switchMedia_","newId","abrTimer_","defaultPlaylists","defaultGroup","requestTimeout","triggerPresenceUsage_","setupFirstPlay","updatedPlaylist","selectedMedia","excludeUnsupportedVariants_","selectInitialPlaylist","initialMedia_","haveJsonSource","handleUpdatedMediaPlaylist","lastExcludeReason_","playlistOutdated","stuckAtPlaylistEnd_","updateAdCues_","updateDuration","defaultDemuxed","audioGroupKeys","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","supportFunction","unsupportedCodecs","supporter","variantAudioGroup","switchMessages","newCodec","oldCodec","excludeIncompatibleVariants_","ids","unsupported","codecCount_","videoDetails","audioDetails","blacklistReasons","variantCodecs","variantCodecCount","variantVideoDetails","variantAudioDetails","newMax","enableFunction","playlistID","changePlaylistFn","incompatible","currentlyEnabled","Representation","vhsHandler","smoothQualityChange","qualityChangeFunction","renditionSelectionMixin","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","waiting_","isAfterSeekableRange","afterSeekableWindow_","beforeSeekableWindow_","minAppendedDuration","bufferedToCheck","timeAhead","nextRange","livePoint","videoUnderflow","videoUnderflow_","difference","skipTheGap_","allowedEnd","lastVideoRange","videoRange","audioRange","gapFromVideoUnderflow_","scheduledCurrentTime","gaps","defaultOptions","errorInterval","getSource","IWillNotUseThisInPlugins","initPlugin","lastCalled","localOptions","loadedMetadataHandler","cleanupEvents","reinitPlugin","reloadSourceOnError","version$4","version$3","version$2","version$1","STANDARD_PLAYLIST_SELECTOR","INITIAL_PLAYLIST_SELECTOR","LOCAL_STORAGE_KEY","handleVhsMediaChange","qualityLevels","selectedIndex_","handleVhsLoadedMetadata","addQualityLevel","emeKeySystems","keySystemOptions","audioPlaylist","videoContentType","audioContentType","keySystemContentTypes","getAllPsshKeySystemsOptions","keySystems","keySystemsArr","keySystemsOptions","keySystemsObj","waitForKeySessionCreation","sourceKeySystems","audioMedia","mainPlaylists","initializeMediaKeys","keySystemsOptionsArr","initializationFinishedPromises","keySessionCreatedPromises","setupEmeOptions","sourceOptions","getVhsLocalStorage","storedObject","updateVhsLocalStorage","objectToStore","expandDataUri","dataUri","supportsNativeHls","canPlay","canItPlay","supportsNativeDash","supportsTypeNatively","VhsHandler","hls","initialBandwidth","source_","ignoreNextSeekingEvent_","setOptions_","overrideNative","featuresNativeVideoTracks","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","useBandwidthFromLocalStorage","useNetworkInformationApi","option","playbackWatcherOptions","playbackWatcher_","defaultSelector","playerBandwidthEst","networkInformation","connection","mozConnection","webkitConnection","tenMbpsAsBitsPerSecond","networkInfoBandwidthEstBitsPerSec","downlink","invThroughput","invBandwidth","systemBitrate","mediaRequests_","mediaRequestsAborted_","mediaRequestsTimedout_","mediaRequestsErrored_","mediaTransferDuration_","mediaBytesTransferred_","mediaAppends_","mainAppendsToLoadedData","audioAppendsToLoadedData","appendsToLoadedData","timeToLoadedData","currentTech","playerDimensions","setupEme_","setupQualityLevels_","mediaSourceUrl_","createKeySessions_","audioPlaylistLoader","handleWaitingForKey_","didSetupEmeOptions","masterPlaylist","_videojs$log","excludedHDPlaylists","qualityLevels_","convertToProgramTime","VhsSourceHandler","simpleType","getOverrideNative","canUseMsePlayback","_options$vhs","_options$hls","defaultOverrideNative","_vhs$overrideNative","_hls$overrideNative","legacyOverrideNative","supportsNativeMediaSources","normalizePaths","paths","headerSize","_DESCRIPTORS$z","dependsOnEsId","ocrEsId","descriptors","oti","maxBitrate","avgBitrate","complete","EBML_TAGS","EBML","DocType","Segment","SegmentInfo","Tracks","TrackNumber","DefaultDuration","TrackEntry","TrackType","FlagDefault","CodecID","CodecPrivate","Cluster","Timestamp","TimestampScale","BlockGroup","BlockDuration","Block","SimpleBlock","LENGTH_TABLE","getLength","removeLength","valueBytes","getInfinityDataSize","innerid","dataHeader","findEbml","dataStart","dataEnd","totalLength","NAL_TYPE_ONE","NAL_TYPE_TWO","EMULATION_PREVENTION","positions","dataType","nalLimit","nalStart","nalsFound","nalOffset","findH264Nal","findH265Nal","CONSTANTS","_isLikely","docType","matroska","fmp4","ac3","avi","riff","isLikelyTypes","isLikelyFn","isLikely","setToStringTag","scrollSetting","findScrollSetting","isValidPercentValue","_lines","_regionAnchorX","_regionAnchorY","_viewportAnchorX","_viewportAnchorY","_scroll","atob","Buffer","decodeB64ToUint8Array","b64Text","decodedString"],"mappings":"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","file":"js/chunk-23fc7720.a73760a1.js","sourcesContent":["'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String($Error(arg).stack); })('zxcasd');\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\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';","var dom = require('./dom')\nexports.DOMImplementation = dom.DOMImplementation\nexports.XMLSerializer = dom.XMLSerializer\nexports.DOMParser = require('./dom-parser').DOMParser\n","/**\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\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.\n\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};\n\nwindow.vttjs = vttjs;\nwindow.WebVTT = vttjs.WebVTT;\n\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}\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\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};","\"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 * mux.js\n *\n * Copyright (c) Brightcove\n * Licensed Apache-2.0 https://github.com/videojs/mux.js/blob/master/LICENSE\n */\nvar\n ONE_SECOND_IN_TS = 90000, // 90kHz clock\n secondsToVideoTs,\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/**\n * Adjust ID3 tag or caption timing information by the timeline pts values\n * (if keepOriginalTimestamps is false) and convert to seconds\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};\n","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\nmodule.exports = _getPrototypeOf, 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 return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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;","'use strict';\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\n// non-standard V8\nvar captureStackTrace = Error.captureStackTrace;\n\nmodule.exports = function (error, C, stack, dropEntries) {\n if (ERROR_STACK_INSTALLABLE) {\n if (captureStackTrace) captureStackTrace(error, C);\n else createNonEnumerableProperty(error, 'stack', clearErrorStack(stack, dropEntries));\n }\n};\n","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getUint64 = require('../utils/numbers.js').getUint64;\n\nvar parseSidx = function(data) {\n var view = new DataView(data.buffer, data.byteOffset, data.byteLength),\n result = {\n version: data[0],\n flags: new Uint8Array(data.subarray(1, 4)),\n references: [],\n referenceId: view.getUint32(4),\n timescale: view.getUint32(8)\n },\n i = 12;\n\n if (result.version === 0) {\n result.earliestPresentationTime = view.getUint32(i);\n result.firstOffset = view.getUint32(i + 4);\n i += 8;\n } else {\n // read 64 bits\n result.earliestPresentationTime = getUint64(data.subarray(i));\n result.firstOffset = getUint64(data.subarray(i + 8));\n i += 16;\n }\n\n i += 2; // reserved\n\n var referenceCount = view.getUint16(i);\n\n i += 2; // start of references\n\n for (; referenceCount > 0; i += 12, referenceCount--) {\n result.references.push({\n referenceType: (data[i] & 0x80) >>> 7,\n referencedSize: view.getUint32(i) & 0x7FFFFFFF,\n subsegmentDuration: view.getUint32(i + 4),\n startsWithSap: !!(data[i + 8] & 0x80),\n sapType: (data[i + 8] & 0x70) >>> 4,\n sapDeltaTime: view.getUint32(i + 8) & 0x0FFFFFFF\n });\n }\n\n return result;\n};\n\n\nmodule.exports = parseSidx;\n","module.exports = isFunction\n\nvar toString = Object.prototype.toString\n\nfunction isFunction (fn) {\n if (!fn) {\n return false\n }\n var string = toString.call(fn)\n return string === '[object Function]' ||\n (typeof fn === 'function' && string !== '[object RegExp]') ||\n (typeof window !== 'undefined' &&\n // IE8 and below\n (fn === window.setTimeout ||\n fn === window.alert ||\n fn === window.confirm ||\n fn === window.prompt))\n};\n","/**\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};","/*! @name mpd-parser @version 0.22.1 @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';\n\nvar version = \"0.22.1\";\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};\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};\nvar flatten = function flatten(lists) {\n return lists.reduce(function (x, y) {\n return x.concat(y);\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};\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\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\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/**\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};\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/**\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\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\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/**\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\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\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\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\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\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\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\nvar positionManifestOnTimeline = function positionManifestOnTimeline(_ref5) {\n var oldManifest = _ref5.oldManifest,\n newManifest = _ref5.newManifest;\n // 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 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;\n\n // first segment of subsequent periods signal a discontinuity\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};\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};\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};\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};\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};\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.frameRate) {\n playlist.attributes['FRAME-RATE'] = attributes.frameRate;\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\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};\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/**\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 */\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\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\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\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/**\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\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};\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};\nvar getContent = function getContent(element) {\n return element.textContent.trim();\n};\n\n/**\n * Converts the provided string that may contain a division operation to a number.\n *\n * @param {string} value - the provided string value\n *\n * @return {number} the parsed string value\n */\nvar parseDivisionValue = function parseDivisionValue(value) {\n return parseFloat(value.split('/').reduce(function (prev, current) {\n return prev / current;\n }));\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};\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 frame rate of the representation\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed frame rate\n */\n frameRate: function frameRate(value) {\n return parseDivisionValue(value);\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\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\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\nvar generateKeySystemInformation = function generateKeySystemInformation(contentProtectionNodes) {\n return contentProtectionNodes.reduce(function (acc, node) {\n var attributes = parseAttributes(node); // Although it could be argued that according to the UUID RFC spec the UUID string (a-f chars) should be generated\n // as a lowercase string it also mentions it should be treated as case-insensitive on input. Since the key system\n // UUIDs in the keySystemsMap are hardcoded as lowercase in the codebase there isn't any reason not to do\n // .toLowerCase() on the input UUID string from the manifest (at least I could not think of one).\n\n if (attributes.schemeIdUri) {\n attributes.schemeIdUri = attributes.schemeIdUri.toLowerCase();\n }\n\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 acc[keySystem].pssh = pssh && decodeB64ToUint8Array(pssh);\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\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\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\nvar getPeriodStart = function getPeriodStart(_ref) {\n var attributes = _ref.attributes,\n priorPeriodAttributes = _ref.priorPeriodAttributes,\n mpdType = _ref.mpdType;\n\n // 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 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\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/**\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\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","'use strict'\n\n/**\n * Ponyfill for `Array.prototype.find` which is only available in ES6 runtimes.\n *\n * Works with anything that has a `length` property and index access properties, including NodeList.\n *\n * @template {unknown} T\n * @param {Array | ({length:number, [number]: T})} list\n * @param {function (item: T, index: number, list:Array | ({length:number, [number]: T})):boolean} predicate\n * @param {Partial>?} ac `Array.prototype` by default,\n * \t\t\t\tallows injecting a custom implementation in tests\n * @returns {T | undefined}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * @see https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array.prototype.find\n */\nfunction find(list, predicate, ac) {\n\tif (ac === undefined) {\n\t\tac = Array.prototype;\n\t}\n\tif (list && typeof ac.find === 'function') {\n\t\treturn ac.find.call(list, predicate);\n\t}\n\tfor (var i = 0; i < list.length; i++) {\n\t\tif (Object.prototype.hasOwnProperty.call(list, i)) {\n\t\t\tvar item = list[i];\n\t\t\tif (predicate.call(undefined, item, i, list)) {\n\t\t\t\treturn item;\n\t\t\t}\n\t\t}\n\t}\n}\n\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 */\nfunction freeze(object, oc) {\n\tif (oc === undefined) {\n\t\toc = Object\n\t}\n\treturn oc && typeof oc.freeze === 'function' ? oc.freeze(object) : object\n}\n\n/**\n * Since we can not rely on `Object.assign` we provide a simplified version\n * that is sufficient for our needs.\n *\n * @param {Object} target\n * @param {Object | null | undefined} source\n *\n * @returns {Object} target\n * @throws TypeError if target is not an object\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n * @see https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.assign\n */\nfunction assign(target, source) {\n\tif (target === null || typeof target !== 'object') {\n\t\tthrow new TypeError('target is not an object')\n\t}\n\tfor (var key in source) {\n\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\ttarget[key] = source[key]\n\t\t}\n\t}\n\treturn target\n}\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 */\nvar MIME_TYPE = freeze({\n\t/**\n\t * `text/html`, the only mime type that triggers treating an XML document as HTML.\n\t *\n\t * @see DOMParser.SupportedType.isHTML\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring WHATWG HTML Spec\n\t */\n\tHTML: 'text/html',\n\n\t/**\n\t * Helper method to check a mime type if it indicates an HTML document\n\t *\n\t * @param {string} [value]\n\t * @returns {boolean}\n\t *\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring \t */\n\tisHTML: function (value) {\n\t\treturn value === MIME_TYPE.HTML\n\t},\n\n\t/**\n\t * `application/xml`, the standard mime type for XML documents.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType registration\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_APPLICATION: 'application/xml',\n\n\t/**\n\t * `text/html`, an alias for `application/xml`.\n\t *\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303\n\t * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_TEXT: 'text/xml',\n\n\t/**\n\t * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace,\n\t * but is parsed as an XML document.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType registration\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec\n\t * @see https://en.wikipedia.org/wiki/XHTML Wikipedia\n\t */\n\tXML_XHTML_APPLICATION: 'application/xhtml+xml',\n\n\t/**\n\t * `image/svg+xml`,\n\t *\n\t * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration\n\t * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1\n\t * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia\n\t */\n\tXML_SVG_IMAGE: 'image/svg+xml',\n})\n\n/**\n * Namespaces that are used in this code base.\n *\n * @see http://www.w3.org/TR/REC-xml-names\n */\nvar NAMESPACE = freeze({\n\t/**\n\t * The XHTML namespace.\n\t *\n\t * @see http://www.w3.org/1999/xhtml\n\t */\n\tHTML: 'http://www.w3.org/1999/xhtml',\n\n\t/**\n\t * Checks if `uri` equals `NAMESPACE.HTML`.\n\t *\n\t * @param {string} [uri]\n\t *\n\t * @see NAMESPACE.HTML\n\t */\n\tisHTML: function (uri) {\n\t\treturn uri === NAMESPACE.HTML\n\t},\n\n\t/**\n\t * The SVG namespace.\n\t *\n\t * @see http://www.w3.org/2000/svg\n\t */\n\tSVG: 'http://www.w3.org/2000/svg',\n\n\t/**\n\t * The `xml:` namespace.\n\t *\n\t * @see http://www.w3.org/XML/1998/namespace\n\t */\n\tXML: 'http://www.w3.org/XML/1998/namespace',\n\n\t/**\n\t * The `xmlns:` namespace\n\t *\n\t * @see https://www.w3.org/2000/xmlns/\n\t */\n\tXMLNS: 'http://www.w3.org/2000/xmlns/',\n})\n\nexports.assign = assign;\nexports.find = find;\nexports.freeze = freeze;\nexports.MIME_TYPE = MIME_TYPE;\nexports.NAMESPACE = NAMESPACE;\n","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};","\"use strict\";\n\nvar window = require('global/window');\n\nvar httpResponseHandler = function httpResponseHandler(callback, decodeResponseBody) {\n if (decodeResponseBody === void 0) {\n decodeResponseBody = false;\n }\n\n return function (err, response, responseBody) {\n // if the XHR failed, return that error\n if (err) {\n callback(err);\n return;\n } // if the HTTP status code is 4xx or 5xx, the request also failed\n\n\n if (response.statusCode >= 400 && response.statusCode <= 599) {\n var cause = responseBody;\n\n if (decodeResponseBody) {\n if (window.TextDecoder) {\n var charset = getCharset(response.headers && response.headers['content-type']);\n\n try {\n cause = new TextDecoder(charset).decode(responseBody);\n } catch (e) {}\n } else {\n cause = String.fromCharCode.apply(null, new Uint8Array(responseBody));\n }\n }\n\n callback({\n cause: cause\n });\n return;\n } // otherwise, request succeeded\n\n\n callback(null, responseBody);\n };\n};\n\nfunction getCharset(contentTypeHeader) {\n if (contentTypeHeader === void 0) {\n contentTypeHeader = '';\n }\n\n return contentTypeHeader.toLowerCase().split(';').reduce(function (charset, contentType) {\n var _contentType$split = contentType.split('='),\n type = _contentType$split[0],\n value = _contentType$split[1];\n\n if (type.trim() === 'charset') {\n return value.trim();\n }\n\n return charset;\n }, 'utf-8');\n}\n\nmodule.exports = httpResponseHandler;","module.exports = SafeParseTuple\n\nfunction SafeParseTuple(obj, reviver) {\n var json\n var error = null\n\n try {\n json = JSON.parse(obj, reviver)\n } catch (err) {\n error = err\n }\n\n return [error, json]\n}\n","import { API, graphqlOperation, GRAPHQL_AUTH_MODE } from '@aws-amplify/api';\nimport { listVodEntries,listPrimarySliders, getVodEntry } from '@/graphql/queries';\nimport { getAWSStorageAsset } from '@/services/storage';\nimport Video from \"video.js\";\n/**\n * Fetches slider items for a given category from the backend using GraphQL queries.\n * Also fetches the associated VOD (Video On Demand) entry and image assets.\n *\n * \n */\nexport const fetchSliderItems = async (categoryType) => {\n try {\n const filter = { category: { contains: categoryType } };\n\n // Fetch slider items using GraphQL query\n const response = await API.graphql({\n query: listPrimarySliders,\n variables: { filter },\n authMode: GRAPHQL_AUTH_MODE.API_KEY\n });\n\n // Validate GraphQL response structure\n if (!response.data || !response.data.listPrimarySliders) {\n console.error(\"Data structure from GraphQL response is unexpected.\");\n return [];\n }\n\n let sliderItems = response.data.listPrimarySliders.items;\n\n // Fetch associated assets (image, video) for each slider item\n sliderItems = await Promise.all(\n sliderItems.map(async (item) => {\n try {\n // Fetch image from storage\n if(item.imageFilename != \" \" || item.imageFilename.length > 0 ) {\n const imageAsset = await getAWSStorageAsset(`SlidingImage/${item.imageFilename[0]}`);\n item.image = imageAsset;\n }\n // Fetch associated VOD entry if exists\n if (item.content?.vodEntryId) {\n const vodEntryResponse = await API.graphql({\n ...graphqlOperation(getVodEntry, { id: item.content.vodEntryId }),\n authMode: GRAPHQL_AUTH_MODE.API_KEY\n });\n\n const fetchedVodEntry = vodEntryResponse.data.getVodEntry;\n if (fetchedVodEntry && fetchedVodEntry.hlsUrl) {\n item.videoHlsUrl = fetchedVodEntry.hlsUrl;\n //If video, saves video duration as a promise \n getInitialVideoDuration(item.videoHlsUrl).then(data => item.videoDuration = data);\n }\n\n }\n } catch (innerError) {\n console.error(\"Error processing an item:\", innerError);\n }\n return item;\n })\n );\n\n // Sort slider items by the 'order' field\n sliderItems.sort((a, b) => a.order - b.order);\n\n // Move the video item to the first position if it exists\n const videoIndex = sliderItems.findIndex(item => item.videoHlsUrl);\n if (videoIndex !== -1) {\n const [videoItem] = sliderItems.splice(videoIndex, 1);\n sliderItems.unshift(videoItem);\n }\n\n return sliderItems;\n\n } catch (error) {\n console.error(\"An error occurred while fetching slider items:\", error);\n return [];\n }\n};\n\n//initializes video metadata to pull first item/video duration\nconst getInitialVideoDuration = async (url) => {\n\n return new Promise((resolve, reject) => {\n const player = document.createElement('video');\n const video = Video(player)\n video.src({ src: url, type: \"application/x-mpegURL\" });\n // console.log('player slider js', player)\n\n player.addEventListener('loadedmetadata', function() {\n resolve(this.duration)\n });\n\n player.addEventListener('error', function(){\n reject(new Error('Error retrieving video duration from metadata'))\n })\n })\n};","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nvar setPrototypeOf = require(\"./setPrototypeOf.js\");\nvar isNativeFunction = require(\"./isNativeFunction.js\");\nvar construct = require(\"./construct.js\");\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _wrapNativeSuper(Class);\n}\nmodule.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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 for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var MAX_UINT32 = Math.pow(2, 32);\n\nvar getUint64 = function(uint8) {\n var dv = new DataView(uint8.buffer, uint8.byteOffset, uint8.byteLength);\n var value;\n\n if (dv.getBigUint64) {\n value = dv.getBigUint64(0);\n\n if (value < Number.MAX_SAFE_INTEGER) {\n return Number(value);\n }\n\n return value;\n }\n\n return (dv.getUint32(0) * MAX_UINT32) + dv.getUint32(4);\n};\n\nmodule.exports = {\n getUint64: getUint64,\n MAX_UINT32: MAX_UINT32\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n if (isObject(options) && 'cause' in options) {\n createNonEnumerableProperty(O, 'cause', options.cause);\n }\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (Target, Source, key) {\n key in Target || defineProperty(Target, key, {\n configurable: true,\n get: function () { return Source[key]; },\n set: function (it) { Source[key] = it; }\n });\n};\n","/**\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\nvar autoKeyword = \"auto\";\nvar directionSetting = {\n \"\": 1,\n \"lr\": 1,\n \"rl\": 1\n};\nvar alignSetting = {\n \"start\": 1,\n \"center\": 1,\n \"end\": 1,\n \"left\": 1,\n \"right\": 1,\n \"auto\": 1,\n \"line-left\": 1,\n \"line-right\": 1\n};\n\nfunction findDirectionSetting(value) {\n if (typeof value !== \"string\") {\n return false;\n }\n var dir = directionSetting[value.toLowerCase()];\n return dir ? value.toLowerCase() : false;\n}\n\nfunction findAlignSetting(value) {\n if (typeof value !== \"string\") {\n return false;\n }\n var align = alignSetting[value.toLowerCase()];\n return align ? value.toLowerCase() : false;\n}\n\nfunction VTTCue(startTime, endTime, text) {\n /**\n * Shim implementation specific properties. These properties are not in\n * the spec.\n */\n\n // Lets us know when the VTTCue's data has changed in such a way that we need\n // to recompute its display state. This lets us compute its display state\n // lazily.\n this.hasBeenReset = false;\n\n /**\n * VTTCue and TextTrackCue properties\n * http://dev.w3.org/html5/webvtt/#vttcue-interface\n */\n\n var _id = \"\";\n var _pauseOnExit = false;\n var _startTime = startTime;\n var _endTime = endTime;\n var _text = text;\n var _region = null;\n var _vertical = \"\";\n var _snapToLines = true;\n var _line = \"auto\";\n var _lineAlign = \"start\";\n var _position = \"auto\";\n var _positionAlign = \"auto\";\n var _size = 100;\n var _align = \"center\";\n\n Object.defineProperties(this, {\n \"id\": {\n enumerable: true,\n get: function() {\n return _id;\n },\n set: function(value) {\n _id = \"\" + value;\n }\n },\n\n \"pauseOnExit\": {\n enumerable: true,\n get: function() {\n return _pauseOnExit;\n },\n set: function(value) {\n _pauseOnExit = !!value;\n }\n },\n\n \"startTime\": {\n enumerable: true,\n get: function() {\n return _startTime;\n },\n set: function(value) {\n if (typeof value !== \"number\") {\n throw new TypeError(\"Start time must be set to a number.\");\n }\n _startTime = value;\n this.hasBeenReset = true;\n }\n },\n\n \"endTime\": {\n enumerable: true,\n get: function() {\n return _endTime;\n },\n set: function(value) {\n if (typeof value !== \"number\") {\n throw new TypeError(\"End time must be set to a number.\");\n }\n _endTime = value;\n this.hasBeenReset = true;\n }\n },\n\n \"text\": {\n enumerable: true,\n get: function() {\n return _text;\n },\n set: function(value) {\n _text = \"\" + value;\n this.hasBeenReset = true;\n }\n },\n\n \"region\": {\n enumerable: true,\n get: function() {\n return _region;\n },\n set: function(value) {\n _region = value;\n this.hasBeenReset = true;\n }\n },\n\n \"vertical\": {\n enumerable: true,\n get: function() {\n return _vertical;\n },\n set: function(value) {\n var setting = findDirectionSetting(value);\n // Have to check for false because the setting an be an empty string.\n if (setting === false) {\n throw new SyntaxError(\"Vertical: an invalid or illegal direction string was specified.\");\n }\n _vertical = setting;\n this.hasBeenReset = true;\n }\n },\n\n \"snapToLines\": {\n enumerable: true,\n get: function() {\n return _snapToLines;\n },\n set: function(value) {\n _snapToLines = !!value;\n this.hasBeenReset = true;\n }\n },\n\n \"line\": {\n enumerable: true,\n get: function() {\n return _line;\n },\n set: function(value) {\n if (typeof value !== \"number\" && value !== autoKeyword) {\n throw new SyntaxError(\"Line: an invalid number or illegal string was specified.\");\n }\n _line = value;\n this.hasBeenReset = true;\n }\n },\n\n \"lineAlign\": {\n enumerable: true,\n get: function() {\n return _lineAlign;\n },\n set: function(value) {\n var setting = findAlignSetting(value);\n if (!setting) {\n console.warn(\"lineAlign: an invalid or illegal string was specified.\");\n } else {\n _lineAlign = setting;\n this.hasBeenReset = true;\n }\n }\n },\n\n \"position\": {\n enumerable: true,\n get: function() {\n return _position;\n },\n set: function(value) {\n if (value < 0 || value > 100) {\n throw new Error(\"Position must be between 0 and 100.\");\n }\n _position = value;\n this.hasBeenReset = true;\n }\n },\n\n \"positionAlign\": {\n enumerable: true,\n get: function() {\n return _positionAlign;\n },\n set: function(value) {\n var setting = findAlignSetting(value);\n if (!setting) {\n console.warn(\"positionAlign: an invalid or illegal string was specified.\");\n } else {\n _positionAlign = setting;\n this.hasBeenReset = true;\n }\n }\n },\n\n \"size\": {\n enumerable: true,\n get: function() {\n return _size;\n },\n set: function(value) {\n if (value < 0 || value > 100) {\n throw new Error(\"Size must be between 0 and 100.\");\n }\n _size = value;\n this.hasBeenReset = true;\n }\n },\n\n \"align\": {\n enumerable: true,\n get: function() {\n return _align;\n },\n set: function(value) {\n var setting = findAlignSetting(value);\n if (!setting) {\n throw new SyntaxError(\"align: an invalid or illegal alignment string was specified.\");\n }\n _align = setting;\n this.hasBeenReset = true;\n }\n }\n });\n\n /**\n * Other spec defined properties\n */\n\n // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#text-track-cue-display-state\n this.displayState = undefined;\n}\n\n/**\n * VTTCue methods\n */\n\nVTTCue.prototype.getCueAsHTML = function() {\n // Assume WebVTT.convertCueToDOMTree is on the global.\n return WebVTT.convertCueToDOMTree(window, this.text);\n};\n\nmodule.exports = VTTCue;\n","var conventions = require(\"./conventions\");\nvar dom = require('./dom')\nvar entities = require('./entities');\nvar sax = require('./sax');\n\nvar DOMImplementation = dom.DOMImplementation;\n\nvar NAMESPACE = conventions.NAMESPACE;\n\nvar ParseError = sax.ParseError;\nvar XMLReader = sax.XMLReader;\n\n/**\n * Normalizes line ending according to https://www.w3.org/TR/xml11/#sec-line-ends:\n *\n * > XML parsed entities are often stored in computer files which,\n * > for editing convenience, are organized into lines.\n * > These lines are typically separated by some combination\n * > of the characters CARRIAGE RETURN (#xD) and LINE FEED (#xA).\n * >\n * > To simplify the tasks of applications, the XML processor must behave\n * > as if it normalized all line breaks in external parsed entities (including the document entity)\n * > on input, before parsing, by translating all of the following to a single #xA character:\n * >\n * > 1. the two-character sequence #xD #xA\n * > 2. the two-character sequence #xD #x85\n * > 3. the single character #x85\n * > 4. the single character #x2028\n * > 5. any #xD character that is not immediately followed by #xA or #x85.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction normalizeLineEndings(input) {\n\treturn input\n\t\t.replace(/\\r[\\n\\u0085]/g, '\\n')\n\t\t.replace(/[\\r\\u0085\\u2028]/g, '\\n')\n}\n\n/**\n * @typedef Locator\n * @property {number} [columnNumber]\n * @property {number} [lineNumber]\n */\n\n/**\n * @typedef DOMParserOptions\n * @property {DOMHandler} [domBuilder]\n * @property {Function} [errorHandler]\n * @property {(string) => string} [normalizeLineEndings] used to replace line endings before parsing\n * \t\t\t\t\t\tdefaults to `normalizeLineEndings`\n * @property {Locator} [locator]\n * @property {Record} [xmlns]\n *\n * @see normalizeLineEndings\n */\n\n/**\n * The DOMParser interface provides the ability to parse XML or HTML source code\n * from a string into a DOM `Document`.\n *\n * _xmldom is different from the spec in that it allows an `options` parameter,\n * to override the default behavior._\n *\n * @param {DOMParserOptions} [options]\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-parsing-and-serialization\n */\nfunction DOMParser(options){\n\tthis.options = options ||{locator:{}};\n}\n\nDOMParser.prototype.parseFromString = function(source,mimeType){\n\tvar options = this.options;\n\tvar sax = new XMLReader();\n\tvar domBuilder = options.domBuilder || new DOMHandler();//contentHandler and LexicalHandler\n\tvar errorHandler = options.errorHandler;\n\tvar locator = options.locator;\n\tvar defaultNSMap = options.xmlns||{};\n\tvar isHTML = /\\/x?html?$/.test(mimeType);//mimeType.toLowerCase().indexOf('html') > -1;\n \tvar entityMap = isHTML ? entities.HTML_ENTITIES : entities.XML_ENTITIES;\n\tif(locator){\n\t\tdomBuilder.setDocumentLocator(locator)\n\t}\n\n\tsax.errorHandler = buildErrorHandler(errorHandler,domBuilder,locator);\n\tsax.domBuilder = options.domBuilder || domBuilder;\n\tif(isHTML){\n\t\tdefaultNSMap[''] = NAMESPACE.HTML;\n\t}\n\tdefaultNSMap.xml = defaultNSMap.xml || NAMESPACE.XML;\n\tvar normalize = options.normalizeLineEndings || normalizeLineEndings;\n\tif (source && typeof source === 'string') {\n\t\tsax.parse(\n\t\t\tnormalize(source),\n\t\t\tdefaultNSMap,\n\t\t\tentityMap\n\t\t)\n\t} else {\n\t\tsax.errorHandler.error('invalid doc source')\n\t}\n\treturn domBuilder.doc;\n}\nfunction buildErrorHandler(errorImpl,domBuilder,locator){\n\tif(!errorImpl){\n\t\tif(domBuilder instanceof DOMHandler){\n\t\t\treturn domBuilder;\n\t\t}\n\t\terrorImpl = domBuilder ;\n\t}\n\tvar errorHandler = {}\n\tvar isCallback = errorImpl instanceof Function;\n\tlocator = locator||{}\n\tfunction build(key){\n\t\tvar fn = errorImpl[key];\n\t\tif(!fn && isCallback){\n\t\t\tfn = errorImpl.length == 2?function(msg){errorImpl(key,msg)}:errorImpl;\n\t\t}\n\t\terrorHandler[key] = fn && function(msg){\n\t\t\tfn('[xmldom '+key+']\\t'+msg+_locator(locator));\n\t\t}||function(){};\n\t}\n\tbuild('warning');\n\tbuild('error');\n\tbuild('fatalError');\n\treturn errorHandler;\n}\n\n//console.log('#\\n\\n\\n\\n\\n\\n\\n####')\n/**\n * +ContentHandler+ErrorHandler\n * +LexicalHandler+EntityResolver2\n * -DeclHandler-DTDHandler\n *\n * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler\n * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2\n * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html\n */\nfunction DOMHandler() {\n this.cdata = false;\n}\nfunction position(locator,node){\n\tnode.lineNumber = locator.lineNumber;\n\tnode.columnNumber = locator.columnNumber;\n}\n/**\n * @see org.xml.sax.ContentHandler#startDocument\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\n */\nDOMHandler.prototype = {\n\tstartDocument : function() {\n \tthis.doc = new DOMImplementation().createDocument(null, null, null);\n \tif (this.locator) {\n \tthis.doc.documentURI = this.locator.systemId;\n \t}\n\t},\n\tstartElement:function(namespaceURI, localName, qName, attrs) {\n\t\tvar doc = this.doc;\n\t var el = doc.createElementNS(namespaceURI, qName||localName);\n\t var len = attrs.length;\n\t appendElement(this, el);\n\t this.currentElement = el;\n\n\t\tthis.locator && position(this.locator,el)\n\t for (var i = 0 ; i < len; i++) {\n\t var namespaceURI = attrs.getURI(i);\n\t var value = attrs.getValue(i);\n\t var qName = attrs.getQName(i);\n\t\t\tvar attr = doc.createAttributeNS(namespaceURI, qName);\n\t\t\tthis.locator &&position(attrs.getLocator(i),attr);\n\t\t\tattr.value = attr.nodeValue = value;\n\t\t\tel.setAttributeNode(attr)\n\t }\n\t},\n\tendElement:function(namespaceURI, localName, qName) {\n\t\tvar current = this.currentElement\n\t\tvar tagName = current.tagName;\n\t\tthis.currentElement = current.parentNode;\n\t},\n\tstartPrefixMapping:function(prefix, uri) {\n\t},\n\tendPrefixMapping:function(prefix) {\n\t},\n\tprocessingInstruction:function(target, data) {\n\t var ins = this.doc.createProcessingInstruction(target, data);\n\t this.locator && position(this.locator,ins)\n\t appendElement(this, ins);\n\t},\n\tignorableWhitespace:function(ch, start, length) {\n\t},\n\tcharacters:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t\t//console.log(chars)\n\t\tif(chars){\n\t\t\tif (this.cdata) {\n\t\t\t\tvar charNode = this.doc.createCDATASection(chars);\n\t\t\t} else {\n\t\t\t\tvar charNode = this.doc.createTextNode(chars);\n\t\t\t}\n\t\t\tif(this.currentElement){\n\t\t\t\tthis.currentElement.appendChild(charNode);\n\t\t\t}else if(/^\\s*$/.test(chars)){\n\t\t\t\tthis.doc.appendChild(charNode);\n\t\t\t\t//process xml\n\t\t\t}\n\t\t\tthis.locator && position(this.locator,charNode)\n\t\t}\n\t},\n\tskippedEntity:function(name) {\n\t},\n\tendDocument:function() {\n\t\tthis.doc.normalize();\n\t},\n\tsetDocumentLocator:function (locator) {\n\t if(this.locator = locator){// && !('lineNumber' in locator)){\n\t \tlocator.lineNumber = 0;\n\t }\n\t},\n\t//LexicalHandler\n\tcomment:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t var comm = this.doc.createComment(chars);\n\t this.locator && position(this.locator,comm)\n\t appendElement(this, comm);\n\t},\n\n\tstartCDATA:function() {\n\t //used in characters() methods\n\t this.cdata = true;\n\t},\n\tendCDATA:function() {\n\t this.cdata = false;\n\t},\n\n\tstartDTD:function(name, publicId, systemId) {\n\t\tvar impl = this.doc.implementation;\n\t if (impl && impl.createDocumentType) {\n\t var dt = impl.createDocumentType(name, publicId, systemId);\n\t this.locator && position(this.locator,dt)\n\t appendElement(this, dt);\n\t\t\t\t\tthis.doc.doctype = dt;\n\t }\n\t},\n\t/**\n\t * @see org.xml.sax.ErrorHandler\n\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\n\t */\n\twarning:function(error) {\n\t\tconsole.warn('[xmldom warning]\\t'+error,_locator(this.locator));\n\t},\n\terror:function(error) {\n\t\tconsole.error('[xmldom error]\\t'+error,_locator(this.locator));\n\t},\n\tfatalError:function(error) {\n\t\tthrow new ParseError(error, this.locator);\n\t}\n}\nfunction _locator(l){\n\tif(l){\n\t\treturn '\\n@'+(l.systemId ||'')+'#[line:'+l.lineNumber+',col:'+l.columnNumber+']'\n\t}\n}\nfunction _toString(chars,start,length){\n\tif(typeof chars == 'string'){\n\t\treturn chars.substr(start,length)\n\t}else{//java sax connect width xmldom on rhino(what about: \"? && !(chars instanceof String)\")\n\t\tif(chars.length >= start+length || start){\n\t\t\treturn new java.lang.String(chars,start,length)+'';\n\t\t}\n\t\treturn chars;\n\t}\n}\n\n/*\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\n * used method of org.xml.sax.ext.LexicalHandler:\n * #comment(chars, start, length)\n * #startCDATA()\n * #endCDATA()\n * #startDTD(name, publicId, systemId)\n *\n *\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\n * #endDTD()\n * #startEntity(name)\n * #endEntity(name)\n *\n *\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\n * IGNORED method of org.xml.sax.ext.DeclHandler\n * \t#attributeDecl(eName, aName, type, mode, value)\n * #elementDecl(name, model)\n * #externalEntityDecl(name, publicId, systemId)\n * #internalEntityDecl(name, value)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\n * IGNORED method of org.xml.sax.EntityResolver2\n * #resolveEntity(String name,String publicId,String baseURI,String systemId)\n * #resolveEntity(publicId, systemId)\n * #getExternalSubset(name, baseURI)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\n * IGNORED method of org.xml.sax.DTDHandler\n * #notationDecl(name, publicId, systemId) {};\n * #unparsedEntityDecl(name, publicId, systemId, notationName) {};\n */\n\"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g,function(key){\n\tDOMHandler.prototype[key] = function(){return null}\n})\n\n/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */\nfunction appendElement (hander,node) {\n if (!hander.currentElement) {\n hander.doc.appendChild(node);\n } else {\n hander.currentElement.appendChild(node);\n }\n}//appendChild and setAttributeNS are preformance key\n\nexports.__DOMHandler = DOMHandler;\nexports.normalizeLineEndings = normalizeLineEndings;\nexports.DOMParser = DOMParser;\n","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct.bind(), module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n return _construct.apply(null, arguments);\n}\nmodule.exports = _construct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nvar freeze = require('./conventions').freeze;\n\n/**\n * The entities that are predefined in every XML document.\n *\n * @see https://www.w3.org/TR/2006/REC-xml11-20060816/#sec-predefined-ent W3C XML 1.1\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#sec-predefined-ent W3C XML 1.0\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML Wikipedia\n */\nexports.XML_ENTITIES = freeze({\n\tamp: '&',\n\tapos: \"'\",\n\tgt: '>',\n\tlt: '<',\n\tquot: '\"',\n});\n\n/**\n * A map of all entities that are detected in an HTML document.\n * They contain all entries from `XML_ENTITIES`.\n *\n * @see XML_ENTITIES\n * @see DOMParser.parseFromString\n * @see DOMImplementation.prototype.createHTMLDocument\n * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5) Spec\n * @see https://html.spec.whatwg.org/entities.json JSON\n * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names\n * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML Wikipedia (HTML)\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML Wikpedia (XHTML)\n */\nexports.HTML_ENTITIES = freeze({\n\tAacute: '\\u00C1',\n\taacute: '\\u00E1',\n\tAbreve: '\\u0102',\n\tabreve: '\\u0103',\n\tac: '\\u223E',\n\tacd: '\\u223F',\n\tacE: '\\u223E\\u0333',\n\tAcirc: '\\u00C2',\n\tacirc: '\\u00E2',\n\tacute: '\\u00B4',\n\tAcy: '\\u0410',\n\tacy: '\\u0430',\n\tAElig: '\\u00C6',\n\taelig: '\\u00E6',\n\taf: '\\u2061',\n\tAfr: '\\uD835\\uDD04',\n\tafr: '\\uD835\\uDD1E',\n\tAgrave: '\\u00C0',\n\tagrave: '\\u00E0',\n\talefsym: '\\u2135',\n\taleph: '\\u2135',\n\tAlpha: '\\u0391',\n\talpha: '\\u03B1',\n\tAmacr: '\\u0100',\n\tamacr: '\\u0101',\n\tamalg: '\\u2A3F',\n\tAMP: '\\u0026',\n\tamp: '\\u0026',\n\tAnd: '\\u2A53',\n\tand: '\\u2227',\n\tandand: '\\u2A55',\n\tandd: '\\u2A5C',\n\tandslope: '\\u2A58',\n\tandv: '\\u2A5A',\n\tang: '\\u2220',\n\tange: '\\u29A4',\n\tangle: '\\u2220',\n\tangmsd: '\\u2221',\n\tangmsdaa: '\\u29A8',\n\tangmsdab: '\\u29A9',\n\tangmsdac: '\\u29AA',\n\tangmsdad: '\\u29AB',\n\tangmsdae: '\\u29AC',\n\tangmsdaf: '\\u29AD',\n\tangmsdag: '\\u29AE',\n\tangmsdah: '\\u29AF',\n\tangrt: '\\u221F',\n\tangrtvb: '\\u22BE',\n\tangrtvbd: '\\u299D',\n\tangsph: '\\u2222',\n\tangst: '\\u00C5',\n\tangzarr: '\\u237C',\n\tAogon: '\\u0104',\n\taogon: '\\u0105',\n\tAopf: '\\uD835\\uDD38',\n\taopf: '\\uD835\\uDD52',\n\tap: '\\u2248',\n\tapacir: '\\u2A6F',\n\tapE: '\\u2A70',\n\tape: '\\u224A',\n\tapid: '\\u224B',\n\tapos: '\\u0027',\n\tApplyFunction: '\\u2061',\n\tapprox: '\\u2248',\n\tapproxeq: '\\u224A',\n\tAring: '\\u00C5',\n\taring: '\\u00E5',\n\tAscr: '\\uD835\\uDC9C',\n\tascr: '\\uD835\\uDCB6',\n\tAssign: '\\u2254',\n\tast: '\\u002A',\n\tasymp: '\\u2248',\n\tasympeq: '\\u224D',\n\tAtilde: '\\u00C3',\n\tatilde: '\\u00E3',\n\tAuml: '\\u00C4',\n\tauml: '\\u00E4',\n\tawconint: '\\u2233',\n\tawint: '\\u2A11',\n\tbackcong: '\\u224C',\n\tbackepsilon: '\\u03F6',\n\tbackprime: '\\u2035',\n\tbacksim: '\\u223D',\n\tbacksimeq: '\\u22CD',\n\tBackslash: '\\u2216',\n\tBarv: '\\u2AE7',\n\tbarvee: '\\u22BD',\n\tBarwed: '\\u2306',\n\tbarwed: '\\u2305',\n\tbarwedge: '\\u2305',\n\tbbrk: '\\u23B5',\n\tbbrktbrk: '\\u23B6',\n\tbcong: '\\u224C',\n\tBcy: '\\u0411',\n\tbcy: '\\u0431',\n\tbdquo: '\\u201E',\n\tbecaus: '\\u2235',\n\tBecause: '\\u2235',\n\tbecause: '\\u2235',\n\tbemptyv: '\\u29B0',\n\tbepsi: '\\u03F6',\n\tbernou: '\\u212C',\n\tBernoullis: '\\u212C',\n\tBeta: '\\u0392',\n\tbeta: '\\u03B2',\n\tbeth: '\\u2136',\n\tbetween: '\\u226C',\n\tBfr: '\\uD835\\uDD05',\n\tbfr: '\\uD835\\uDD1F',\n\tbigcap: '\\u22C2',\n\tbigcirc: '\\u25EF',\n\tbigcup: '\\u22C3',\n\tbigodot: '\\u2A00',\n\tbigoplus: '\\u2A01',\n\tbigotimes: '\\u2A02',\n\tbigsqcup: '\\u2A06',\n\tbigstar: '\\u2605',\n\tbigtriangledown: '\\u25BD',\n\tbigtriangleup: '\\u25B3',\n\tbiguplus: '\\u2A04',\n\tbigvee: '\\u22C1',\n\tbigwedge: '\\u22C0',\n\tbkarow: '\\u290D',\n\tblacklozenge: '\\u29EB',\n\tblacksquare: '\\u25AA',\n\tblacktriangle: '\\u25B4',\n\tblacktriangledown: '\\u25BE',\n\tblacktriangleleft: '\\u25C2',\n\tblacktriangleright: '\\u25B8',\n\tblank: '\\u2423',\n\tblk12: '\\u2592',\n\tblk14: '\\u2591',\n\tblk34: '\\u2593',\n\tblock: '\\u2588',\n\tbne: '\\u003D\\u20E5',\n\tbnequiv: '\\u2261\\u20E5',\n\tbNot: '\\u2AED',\n\tbnot: '\\u2310',\n\tBopf: '\\uD835\\uDD39',\n\tbopf: '\\uD835\\uDD53',\n\tbot: '\\u22A5',\n\tbottom: '\\u22A5',\n\tbowtie: '\\u22C8',\n\tboxbox: '\\u29C9',\n\tboxDL: '\\u2557',\n\tboxDl: '\\u2556',\n\tboxdL: '\\u2555',\n\tboxdl: '\\u2510',\n\tboxDR: '\\u2554',\n\tboxDr: '\\u2553',\n\tboxdR: '\\u2552',\n\tboxdr: '\\u250C',\n\tboxH: '\\u2550',\n\tboxh: '\\u2500',\n\tboxHD: '\\u2566',\n\tboxHd: '\\u2564',\n\tboxhD: '\\u2565',\n\tboxhd: '\\u252C',\n\tboxHU: '\\u2569',\n\tboxHu: '\\u2567',\n\tboxhU: '\\u2568',\n\tboxhu: '\\u2534',\n\tboxminus: '\\u229F',\n\tboxplus: '\\u229E',\n\tboxtimes: '\\u22A0',\n\tboxUL: '\\u255D',\n\tboxUl: '\\u255C',\n\tboxuL: '\\u255B',\n\tboxul: '\\u2518',\n\tboxUR: '\\u255A',\n\tboxUr: '\\u2559',\n\tboxuR: '\\u2558',\n\tboxur: '\\u2514',\n\tboxV: '\\u2551',\n\tboxv: '\\u2502',\n\tboxVH: '\\u256C',\n\tboxVh: '\\u256B',\n\tboxvH: '\\u256A',\n\tboxvh: '\\u253C',\n\tboxVL: '\\u2563',\n\tboxVl: '\\u2562',\n\tboxvL: '\\u2561',\n\tboxvl: '\\u2524',\n\tboxVR: '\\u2560',\n\tboxVr: '\\u255F',\n\tboxvR: '\\u255E',\n\tboxvr: '\\u251C',\n\tbprime: '\\u2035',\n\tBreve: '\\u02D8',\n\tbreve: '\\u02D8',\n\tbrvbar: '\\u00A6',\n\tBscr: '\\u212C',\n\tbscr: '\\uD835\\uDCB7',\n\tbsemi: '\\u204F',\n\tbsim: '\\u223D',\n\tbsime: '\\u22CD',\n\tbsol: '\\u005C',\n\tbsolb: '\\u29C5',\n\tbsolhsub: '\\u27C8',\n\tbull: '\\u2022',\n\tbullet: '\\u2022',\n\tbump: '\\u224E',\n\tbumpE: '\\u2AAE',\n\tbumpe: '\\u224F',\n\tBumpeq: '\\u224E',\n\tbumpeq: '\\u224F',\n\tCacute: '\\u0106',\n\tcacute: '\\u0107',\n\tCap: '\\u22D2',\n\tcap: '\\u2229',\n\tcapand: '\\u2A44',\n\tcapbrcup: '\\u2A49',\n\tcapcap: '\\u2A4B',\n\tcapcup: '\\u2A47',\n\tcapdot: '\\u2A40',\n\tCapitalDifferentialD: '\\u2145',\n\tcaps: '\\u2229\\uFE00',\n\tcaret: '\\u2041',\n\tcaron: '\\u02C7',\n\tCayleys: '\\u212D',\n\tccaps: '\\u2A4D',\n\tCcaron: '\\u010C',\n\tccaron: '\\u010D',\n\tCcedil: '\\u00C7',\n\tccedil: '\\u00E7',\n\tCcirc: '\\u0108',\n\tccirc: '\\u0109',\n\tCconint: '\\u2230',\n\tccups: '\\u2A4C',\n\tccupssm: '\\u2A50',\n\tCdot: '\\u010A',\n\tcdot: '\\u010B',\n\tcedil: '\\u00B8',\n\tCedilla: '\\u00B8',\n\tcemptyv: '\\u29B2',\n\tcent: '\\u00A2',\n\tCenterDot: '\\u00B7',\n\tcenterdot: '\\u00B7',\n\tCfr: '\\u212D',\n\tcfr: '\\uD835\\uDD20',\n\tCHcy: '\\u0427',\n\tchcy: '\\u0447',\n\tcheck: '\\u2713',\n\tcheckmark: '\\u2713',\n\tChi: '\\u03A7',\n\tchi: '\\u03C7',\n\tcir: '\\u25CB',\n\tcirc: '\\u02C6',\n\tcirceq: '\\u2257',\n\tcirclearrowleft: '\\u21BA',\n\tcirclearrowright: '\\u21BB',\n\tcircledast: '\\u229B',\n\tcircledcirc: '\\u229A',\n\tcircleddash: '\\u229D',\n\tCircleDot: '\\u2299',\n\tcircledR: '\\u00AE',\n\tcircledS: '\\u24C8',\n\tCircleMinus: '\\u2296',\n\tCirclePlus: '\\u2295',\n\tCircleTimes: '\\u2297',\n\tcirE: '\\u29C3',\n\tcire: '\\u2257',\n\tcirfnint: '\\u2A10',\n\tcirmid: '\\u2AEF',\n\tcirscir: '\\u29C2',\n\tClockwiseContourIntegral: '\\u2232',\n\tCloseCurlyDoubleQuote: '\\u201D',\n\tCloseCurlyQuote: '\\u2019',\n\tclubs: '\\u2663',\n\tclubsuit: '\\u2663',\n\tColon: '\\u2237',\n\tcolon: '\\u003A',\n\tColone: '\\u2A74',\n\tcolone: '\\u2254',\n\tcoloneq: '\\u2254',\n\tcomma: '\\u002C',\n\tcommat: '\\u0040',\n\tcomp: '\\u2201',\n\tcompfn: '\\u2218',\n\tcomplement: '\\u2201',\n\tcomplexes: '\\u2102',\n\tcong: '\\u2245',\n\tcongdot: '\\u2A6D',\n\tCongruent: '\\u2261',\n\tConint: '\\u222F',\n\tconint: '\\u222E',\n\tContourIntegral: '\\u222E',\n\tCopf: '\\u2102',\n\tcopf: '\\uD835\\uDD54',\n\tcoprod: '\\u2210',\n\tCoproduct: '\\u2210',\n\tCOPY: '\\u00A9',\n\tcopy: '\\u00A9',\n\tcopysr: '\\u2117',\n\tCounterClockwiseContourIntegral: '\\u2233',\n\tcrarr: '\\u21B5',\n\tCross: '\\u2A2F',\n\tcross: '\\u2717',\n\tCscr: '\\uD835\\uDC9E',\n\tcscr: '\\uD835\\uDCB8',\n\tcsub: '\\u2ACF',\n\tcsube: '\\u2AD1',\n\tcsup: '\\u2AD0',\n\tcsupe: '\\u2AD2',\n\tctdot: '\\u22EF',\n\tcudarrl: '\\u2938',\n\tcudarrr: '\\u2935',\n\tcuepr: '\\u22DE',\n\tcuesc: '\\u22DF',\n\tcularr: '\\u21B6',\n\tcularrp: '\\u293D',\n\tCup: '\\u22D3',\n\tcup: '\\u222A',\n\tcupbrcap: '\\u2A48',\n\tCupCap: '\\u224D',\n\tcupcap: '\\u2A46',\n\tcupcup: '\\u2A4A',\n\tcupdot: '\\u228D',\n\tcupor: '\\u2A45',\n\tcups: '\\u222A\\uFE00',\n\tcurarr: '\\u21B7',\n\tcurarrm: '\\u293C',\n\tcurlyeqprec: '\\u22DE',\n\tcurlyeqsucc: '\\u22DF',\n\tcurlyvee: '\\u22CE',\n\tcurlywedge: '\\u22CF',\n\tcurren: '\\u00A4',\n\tcurvearrowleft: '\\u21B6',\n\tcurvearrowright: '\\u21B7',\n\tcuvee: '\\u22CE',\n\tcuwed: '\\u22CF',\n\tcwconint: '\\u2232',\n\tcwint: '\\u2231',\n\tcylcty: '\\u232D',\n\tDagger: '\\u2021',\n\tdagger: '\\u2020',\n\tdaleth: '\\u2138',\n\tDarr: '\\u21A1',\n\tdArr: '\\u21D3',\n\tdarr: '\\u2193',\n\tdash: '\\u2010',\n\tDashv: '\\u2AE4',\n\tdashv: '\\u22A3',\n\tdbkarow: '\\u290F',\n\tdblac: '\\u02DD',\n\tDcaron: '\\u010E',\n\tdcaron: '\\u010F',\n\tDcy: '\\u0414',\n\tdcy: '\\u0434',\n\tDD: '\\u2145',\n\tdd: '\\u2146',\n\tddagger: '\\u2021',\n\tddarr: '\\u21CA',\n\tDDotrahd: '\\u2911',\n\tddotseq: '\\u2A77',\n\tdeg: '\\u00B0',\n\tDel: '\\u2207',\n\tDelta: '\\u0394',\n\tdelta: '\\u03B4',\n\tdemptyv: '\\u29B1',\n\tdfisht: '\\u297F',\n\tDfr: '\\uD835\\uDD07',\n\tdfr: '\\uD835\\uDD21',\n\tdHar: '\\u2965',\n\tdharl: '\\u21C3',\n\tdharr: '\\u21C2',\n\tDiacriticalAcute: '\\u00B4',\n\tDiacriticalDot: '\\u02D9',\n\tDiacriticalDoubleAcute: '\\u02DD',\n\tDiacriticalGrave: '\\u0060',\n\tDiacriticalTilde: '\\u02DC',\n\tdiam: '\\u22C4',\n\tDiamond: '\\u22C4',\n\tdiamond: '\\u22C4',\n\tdiamondsuit: '\\u2666',\n\tdiams: '\\u2666',\n\tdie: '\\u00A8',\n\tDifferentialD: '\\u2146',\n\tdigamma: '\\u03DD',\n\tdisin: '\\u22F2',\n\tdiv: '\\u00F7',\n\tdivide: '\\u00F7',\n\tdivideontimes: '\\u22C7',\n\tdivonx: '\\u22C7',\n\tDJcy: '\\u0402',\n\tdjcy: '\\u0452',\n\tdlcorn: '\\u231E',\n\tdlcrop: '\\u230D',\n\tdollar: '\\u0024',\n\tDopf: '\\uD835\\uDD3B',\n\tdopf: '\\uD835\\uDD55',\n\tDot: '\\u00A8',\n\tdot: '\\u02D9',\n\tDotDot: '\\u20DC',\n\tdoteq: '\\u2250',\n\tdoteqdot: '\\u2251',\n\tDotEqual: '\\u2250',\n\tdotminus: '\\u2238',\n\tdotplus: '\\u2214',\n\tdotsquare: '\\u22A1',\n\tdoublebarwedge: '\\u2306',\n\tDoubleContourIntegral: '\\u222F',\n\tDoubleDot: '\\u00A8',\n\tDoubleDownArrow: '\\u21D3',\n\tDoubleLeftArrow: '\\u21D0',\n\tDoubleLeftRightArrow: '\\u21D4',\n\tDoubleLeftTee: '\\u2AE4',\n\tDoubleLongLeftArrow: '\\u27F8',\n\tDoubleLongLeftRightArrow: '\\u27FA',\n\tDoubleLongRightArrow: '\\u27F9',\n\tDoubleRightArrow: '\\u21D2',\n\tDoubleRightTee: '\\u22A8',\n\tDoubleUpArrow: '\\u21D1',\n\tDoubleUpDownArrow: '\\u21D5',\n\tDoubleVerticalBar: '\\u2225',\n\tDownArrow: '\\u2193',\n\tDownarrow: '\\u21D3',\n\tdownarrow: '\\u2193',\n\tDownArrowBar: '\\u2913',\n\tDownArrowUpArrow: '\\u21F5',\n\tDownBreve: '\\u0311',\n\tdowndownarrows: '\\u21CA',\n\tdownharpoonleft: '\\u21C3',\n\tdownharpoonright: '\\u21C2',\n\tDownLeftRightVector: '\\u2950',\n\tDownLeftTeeVector: '\\u295E',\n\tDownLeftVector: '\\u21BD',\n\tDownLeftVectorBar: '\\u2956',\n\tDownRightTeeVector: '\\u295F',\n\tDownRightVector: '\\u21C1',\n\tDownRightVectorBar: '\\u2957',\n\tDownTee: '\\u22A4',\n\tDownTeeArrow: '\\u21A7',\n\tdrbkarow: '\\u2910',\n\tdrcorn: '\\u231F',\n\tdrcrop: '\\u230C',\n\tDscr: '\\uD835\\uDC9F',\n\tdscr: '\\uD835\\uDCB9',\n\tDScy: '\\u0405',\n\tdscy: '\\u0455',\n\tdsol: '\\u29F6',\n\tDstrok: '\\u0110',\n\tdstrok: '\\u0111',\n\tdtdot: '\\u22F1',\n\tdtri: '\\u25BF',\n\tdtrif: '\\u25BE',\n\tduarr: '\\u21F5',\n\tduhar: '\\u296F',\n\tdwangle: '\\u29A6',\n\tDZcy: '\\u040F',\n\tdzcy: '\\u045F',\n\tdzigrarr: '\\u27FF',\n\tEacute: '\\u00C9',\n\teacute: '\\u00E9',\n\teaster: '\\u2A6E',\n\tEcaron: '\\u011A',\n\tecaron: '\\u011B',\n\tecir: '\\u2256',\n\tEcirc: '\\u00CA',\n\tecirc: '\\u00EA',\n\tecolon: '\\u2255',\n\tEcy: '\\u042D',\n\tecy: '\\u044D',\n\teDDot: '\\u2A77',\n\tEdot: '\\u0116',\n\teDot: '\\u2251',\n\tedot: '\\u0117',\n\tee: '\\u2147',\n\tefDot: '\\u2252',\n\tEfr: '\\uD835\\uDD08',\n\tefr: '\\uD835\\uDD22',\n\teg: '\\u2A9A',\n\tEgrave: '\\u00C8',\n\tegrave: '\\u00E8',\n\tegs: '\\u2A96',\n\tegsdot: '\\u2A98',\n\tel: '\\u2A99',\n\tElement: '\\u2208',\n\telinters: '\\u23E7',\n\tell: '\\u2113',\n\tels: '\\u2A95',\n\telsdot: '\\u2A97',\n\tEmacr: '\\u0112',\n\temacr: '\\u0113',\n\tempty: '\\u2205',\n\temptyset: '\\u2205',\n\tEmptySmallSquare: '\\u25FB',\n\temptyv: '\\u2205',\n\tEmptyVerySmallSquare: '\\u25AB',\n\temsp: '\\u2003',\n\temsp13: '\\u2004',\n\temsp14: '\\u2005',\n\tENG: '\\u014A',\n\teng: '\\u014B',\n\tensp: '\\u2002',\n\tEogon: '\\u0118',\n\teogon: '\\u0119',\n\tEopf: '\\uD835\\uDD3C',\n\teopf: '\\uD835\\uDD56',\n\tepar: '\\u22D5',\n\teparsl: '\\u29E3',\n\teplus: '\\u2A71',\n\tepsi: '\\u03B5',\n\tEpsilon: '\\u0395',\n\tepsilon: '\\u03B5',\n\tepsiv: '\\u03F5',\n\teqcirc: '\\u2256',\n\teqcolon: '\\u2255',\n\teqsim: '\\u2242',\n\teqslantgtr: '\\u2A96',\n\teqslantless: '\\u2A95',\n\tEqual: '\\u2A75',\n\tequals: '\\u003D',\n\tEqualTilde: '\\u2242',\n\tequest: '\\u225F',\n\tEquilibrium: '\\u21CC',\n\tequiv: '\\u2261',\n\tequivDD: '\\u2A78',\n\teqvparsl: '\\u29E5',\n\terarr: '\\u2971',\n\terDot: '\\u2253',\n\tEscr: '\\u2130',\n\tescr: '\\u212F',\n\tesdot: '\\u2250',\n\tEsim: '\\u2A73',\n\tesim: '\\u2242',\n\tEta: '\\u0397',\n\teta: '\\u03B7',\n\tETH: '\\u00D0',\n\teth: '\\u00F0',\n\tEuml: '\\u00CB',\n\teuml: '\\u00EB',\n\teuro: '\\u20AC',\n\texcl: '\\u0021',\n\texist: '\\u2203',\n\tExists: '\\u2203',\n\texpectation: '\\u2130',\n\tExponentialE: '\\u2147',\n\texponentiale: '\\u2147',\n\tfallingdotseq: '\\u2252',\n\tFcy: '\\u0424',\n\tfcy: '\\u0444',\n\tfemale: '\\u2640',\n\tffilig: '\\uFB03',\n\tfflig: '\\uFB00',\n\tffllig: '\\uFB04',\n\tFfr: '\\uD835\\uDD09',\n\tffr: '\\uD835\\uDD23',\n\tfilig: '\\uFB01',\n\tFilledSmallSquare: '\\u25FC',\n\tFilledVerySmallSquare: '\\u25AA',\n\tfjlig: '\\u0066\\u006A',\n\tflat: '\\u266D',\n\tfllig: '\\uFB02',\n\tfltns: '\\u25B1',\n\tfnof: '\\u0192',\n\tFopf: '\\uD835\\uDD3D',\n\tfopf: '\\uD835\\uDD57',\n\tForAll: '\\u2200',\n\tforall: '\\u2200',\n\tfork: '\\u22D4',\n\tforkv: '\\u2AD9',\n\tFouriertrf: '\\u2131',\n\tfpartint: '\\u2A0D',\n\tfrac12: '\\u00BD',\n\tfrac13: '\\u2153',\n\tfrac14: '\\u00BC',\n\tfrac15: '\\u2155',\n\tfrac16: '\\u2159',\n\tfrac18: '\\u215B',\n\tfrac23: '\\u2154',\n\tfrac25: '\\u2156',\n\tfrac34: '\\u00BE',\n\tfrac35: '\\u2157',\n\tfrac38: '\\u215C',\n\tfrac45: '\\u2158',\n\tfrac56: '\\u215A',\n\tfrac58: '\\u215D',\n\tfrac78: '\\u215E',\n\tfrasl: '\\u2044',\n\tfrown: '\\u2322',\n\tFscr: '\\u2131',\n\tfscr: '\\uD835\\uDCBB',\n\tgacute: '\\u01F5',\n\tGamma: '\\u0393',\n\tgamma: '\\u03B3',\n\tGammad: '\\u03DC',\n\tgammad: '\\u03DD',\n\tgap: '\\u2A86',\n\tGbreve: '\\u011E',\n\tgbreve: '\\u011F',\n\tGcedil: '\\u0122',\n\tGcirc: '\\u011C',\n\tgcirc: '\\u011D',\n\tGcy: '\\u0413',\n\tgcy: '\\u0433',\n\tGdot: '\\u0120',\n\tgdot: '\\u0121',\n\tgE: '\\u2267',\n\tge: '\\u2265',\n\tgEl: '\\u2A8C',\n\tgel: '\\u22DB',\n\tgeq: '\\u2265',\n\tgeqq: '\\u2267',\n\tgeqslant: '\\u2A7E',\n\tges: '\\u2A7E',\n\tgescc: '\\u2AA9',\n\tgesdot: '\\u2A80',\n\tgesdoto: '\\u2A82',\n\tgesdotol: '\\u2A84',\n\tgesl: '\\u22DB\\uFE00',\n\tgesles: '\\u2A94',\n\tGfr: '\\uD835\\uDD0A',\n\tgfr: '\\uD835\\uDD24',\n\tGg: '\\u22D9',\n\tgg: '\\u226B',\n\tggg: '\\u22D9',\n\tgimel: '\\u2137',\n\tGJcy: '\\u0403',\n\tgjcy: '\\u0453',\n\tgl: '\\u2277',\n\tgla: '\\u2AA5',\n\tglE: '\\u2A92',\n\tglj: '\\u2AA4',\n\tgnap: '\\u2A8A',\n\tgnapprox: '\\u2A8A',\n\tgnE: '\\u2269',\n\tgne: '\\u2A88',\n\tgneq: '\\u2A88',\n\tgneqq: '\\u2269',\n\tgnsim: '\\u22E7',\n\tGopf: '\\uD835\\uDD3E',\n\tgopf: '\\uD835\\uDD58',\n\tgrave: '\\u0060',\n\tGreaterEqual: '\\u2265',\n\tGreaterEqualLess: '\\u22DB',\n\tGreaterFullEqual: '\\u2267',\n\tGreaterGreater: '\\u2AA2',\n\tGreaterLess: '\\u2277',\n\tGreaterSlantEqual: '\\u2A7E',\n\tGreaterTilde: '\\u2273',\n\tGscr: '\\uD835\\uDCA2',\n\tgscr: '\\u210A',\n\tgsim: '\\u2273',\n\tgsime: '\\u2A8E',\n\tgsiml: '\\u2A90',\n\tGt: '\\u226B',\n\tGT: '\\u003E',\n\tgt: '\\u003E',\n\tgtcc: '\\u2AA7',\n\tgtcir: '\\u2A7A',\n\tgtdot: '\\u22D7',\n\tgtlPar: '\\u2995',\n\tgtquest: '\\u2A7C',\n\tgtrapprox: '\\u2A86',\n\tgtrarr: '\\u2978',\n\tgtrdot: '\\u22D7',\n\tgtreqless: '\\u22DB',\n\tgtreqqless: '\\u2A8C',\n\tgtrless: '\\u2277',\n\tgtrsim: '\\u2273',\n\tgvertneqq: '\\u2269\\uFE00',\n\tgvnE: '\\u2269\\uFE00',\n\tHacek: '\\u02C7',\n\thairsp: '\\u200A',\n\thalf: '\\u00BD',\n\thamilt: '\\u210B',\n\tHARDcy: '\\u042A',\n\thardcy: '\\u044A',\n\thArr: '\\u21D4',\n\tharr: '\\u2194',\n\tharrcir: '\\u2948',\n\tharrw: '\\u21AD',\n\tHat: '\\u005E',\n\thbar: '\\u210F',\n\tHcirc: '\\u0124',\n\thcirc: '\\u0125',\n\thearts: '\\u2665',\n\theartsuit: '\\u2665',\n\thellip: '\\u2026',\n\thercon: '\\u22B9',\n\tHfr: '\\u210C',\n\thfr: '\\uD835\\uDD25',\n\tHilbertSpace: '\\u210B',\n\thksearow: '\\u2925',\n\thkswarow: '\\u2926',\n\thoarr: '\\u21FF',\n\thomtht: '\\u223B',\n\thookleftarrow: '\\u21A9',\n\thookrightarrow: '\\u21AA',\n\tHopf: '\\u210D',\n\thopf: '\\uD835\\uDD59',\n\thorbar: '\\u2015',\n\tHorizontalLine: '\\u2500',\n\tHscr: '\\u210B',\n\thscr: '\\uD835\\uDCBD',\n\thslash: '\\u210F',\n\tHstrok: '\\u0126',\n\thstrok: '\\u0127',\n\tHumpDownHump: '\\u224E',\n\tHumpEqual: '\\u224F',\n\thybull: '\\u2043',\n\thyphen: '\\u2010',\n\tIacute: '\\u00CD',\n\tiacute: '\\u00ED',\n\tic: '\\u2063',\n\tIcirc: '\\u00CE',\n\ticirc: '\\u00EE',\n\tIcy: '\\u0418',\n\ticy: '\\u0438',\n\tIdot: '\\u0130',\n\tIEcy: '\\u0415',\n\tiecy: '\\u0435',\n\tiexcl: '\\u00A1',\n\tiff: '\\u21D4',\n\tIfr: '\\u2111',\n\tifr: '\\uD835\\uDD26',\n\tIgrave: '\\u00CC',\n\tigrave: '\\u00EC',\n\tii: '\\u2148',\n\tiiiint: '\\u2A0C',\n\tiiint: '\\u222D',\n\tiinfin: '\\u29DC',\n\tiiota: '\\u2129',\n\tIJlig: '\\u0132',\n\tijlig: '\\u0133',\n\tIm: '\\u2111',\n\tImacr: '\\u012A',\n\timacr: '\\u012B',\n\timage: '\\u2111',\n\tImaginaryI: '\\u2148',\n\timagline: '\\u2110',\n\timagpart: '\\u2111',\n\timath: '\\u0131',\n\timof: '\\u22B7',\n\timped: '\\u01B5',\n\tImplies: '\\u21D2',\n\tin: '\\u2208',\n\tincare: '\\u2105',\n\tinfin: '\\u221E',\n\tinfintie: '\\u29DD',\n\tinodot: '\\u0131',\n\tInt: '\\u222C',\n\tint: '\\u222B',\n\tintcal: '\\u22BA',\n\tintegers: '\\u2124',\n\tIntegral: '\\u222B',\n\tintercal: '\\u22BA',\n\tIntersection: '\\u22C2',\n\tintlarhk: '\\u2A17',\n\tintprod: '\\u2A3C',\n\tInvisibleComma: '\\u2063',\n\tInvisibleTimes: '\\u2062',\n\tIOcy: '\\u0401',\n\tiocy: '\\u0451',\n\tIogon: '\\u012E',\n\tiogon: '\\u012F',\n\tIopf: '\\uD835\\uDD40',\n\tiopf: '\\uD835\\uDD5A',\n\tIota: '\\u0399',\n\tiota: '\\u03B9',\n\tiprod: '\\u2A3C',\n\tiquest: '\\u00BF',\n\tIscr: '\\u2110',\n\tiscr: '\\uD835\\uDCBE',\n\tisin: '\\u2208',\n\tisindot: '\\u22F5',\n\tisinE: '\\u22F9',\n\tisins: '\\u22F4',\n\tisinsv: '\\u22F3',\n\tisinv: '\\u2208',\n\tit: '\\u2062',\n\tItilde: '\\u0128',\n\titilde: '\\u0129',\n\tIukcy: '\\u0406',\n\tiukcy: '\\u0456',\n\tIuml: '\\u00CF',\n\tiuml: '\\u00EF',\n\tJcirc: '\\u0134',\n\tjcirc: '\\u0135',\n\tJcy: '\\u0419',\n\tjcy: '\\u0439',\n\tJfr: '\\uD835\\uDD0D',\n\tjfr: '\\uD835\\uDD27',\n\tjmath: '\\u0237',\n\tJopf: '\\uD835\\uDD41',\n\tjopf: '\\uD835\\uDD5B',\n\tJscr: '\\uD835\\uDCA5',\n\tjscr: '\\uD835\\uDCBF',\n\tJsercy: '\\u0408',\n\tjsercy: '\\u0458',\n\tJukcy: '\\u0404',\n\tjukcy: '\\u0454',\n\tKappa: '\\u039A',\n\tkappa: '\\u03BA',\n\tkappav: '\\u03F0',\n\tKcedil: '\\u0136',\n\tkcedil: '\\u0137',\n\tKcy: '\\u041A',\n\tkcy: '\\u043A',\n\tKfr: '\\uD835\\uDD0E',\n\tkfr: '\\uD835\\uDD28',\n\tkgreen: '\\u0138',\n\tKHcy: '\\u0425',\n\tkhcy: '\\u0445',\n\tKJcy: '\\u040C',\n\tkjcy: '\\u045C',\n\tKopf: '\\uD835\\uDD42',\n\tkopf: '\\uD835\\uDD5C',\n\tKscr: '\\uD835\\uDCA6',\n\tkscr: '\\uD835\\uDCC0',\n\tlAarr: '\\u21DA',\n\tLacute: '\\u0139',\n\tlacute: '\\u013A',\n\tlaemptyv: '\\u29B4',\n\tlagran: '\\u2112',\n\tLambda: '\\u039B',\n\tlambda: '\\u03BB',\n\tLang: '\\u27EA',\n\tlang: '\\u27E8',\n\tlangd: '\\u2991',\n\tlangle: '\\u27E8',\n\tlap: '\\u2A85',\n\tLaplacetrf: '\\u2112',\n\tlaquo: '\\u00AB',\n\tLarr: '\\u219E',\n\tlArr: '\\u21D0',\n\tlarr: '\\u2190',\n\tlarrb: '\\u21E4',\n\tlarrbfs: '\\u291F',\n\tlarrfs: '\\u291D',\n\tlarrhk: '\\u21A9',\n\tlarrlp: '\\u21AB',\n\tlarrpl: '\\u2939',\n\tlarrsim: '\\u2973',\n\tlarrtl: '\\u21A2',\n\tlat: '\\u2AAB',\n\tlAtail: '\\u291B',\n\tlatail: '\\u2919',\n\tlate: '\\u2AAD',\n\tlates: '\\u2AAD\\uFE00',\n\tlBarr: '\\u290E',\n\tlbarr: '\\u290C',\n\tlbbrk: '\\u2772',\n\tlbrace: '\\u007B',\n\tlbrack: '\\u005B',\n\tlbrke: '\\u298B',\n\tlbrksld: '\\u298F',\n\tlbrkslu: '\\u298D',\n\tLcaron: '\\u013D',\n\tlcaron: '\\u013E',\n\tLcedil: '\\u013B',\n\tlcedil: '\\u013C',\n\tlceil: '\\u2308',\n\tlcub: '\\u007B',\n\tLcy: '\\u041B',\n\tlcy: '\\u043B',\n\tldca: '\\u2936',\n\tldquo: '\\u201C',\n\tldquor: '\\u201E',\n\tldrdhar: '\\u2967',\n\tldrushar: '\\u294B',\n\tldsh: '\\u21B2',\n\tlE: '\\u2266',\n\tle: '\\u2264',\n\tLeftAngleBracket: '\\u27E8',\n\tLeftArrow: '\\u2190',\n\tLeftarrow: '\\u21D0',\n\tleftarrow: '\\u2190',\n\tLeftArrowBar: '\\u21E4',\n\tLeftArrowRightArrow: '\\u21C6',\n\tleftarrowtail: '\\u21A2',\n\tLeftCeiling: '\\u2308',\n\tLeftDoubleBracket: '\\u27E6',\n\tLeftDownTeeVector: '\\u2961',\n\tLeftDownVector: '\\u21C3',\n\tLeftDownVectorBar: '\\u2959',\n\tLeftFloor: '\\u230A',\n\tleftharpoondown: '\\u21BD',\n\tleftharpoonup: '\\u21BC',\n\tleftleftarrows: '\\u21C7',\n\tLeftRightArrow: '\\u2194',\n\tLeftrightarrow: '\\u21D4',\n\tleftrightarrow: '\\u2194',\n\tleftrightarrows: '\\u21C6',\n\tleftrightharpoons: '\\u21CB',\n\tleftrightsquigarrow: '\\u21AD',\n\tLeftRightVector: '\\u294E',\n\tLeftTee: '\\u22A3',\n\tLeftTeeArrow: '\\u21A4',\n\tLeftTeeVector: '\\u295A',\n\tleftthreetimes: '\\u22CB',\n\tLeftTriangle: '\\u22B2',\n\tLeftTriangleBar: '\\u29CF',\n\tLeftTriangleEqual: '\\u22B4',\n\tLeftUpDownVector: '\\u2951',\n\tLeftUpTeeVector: '\\u2960',\n\tLeftUpVector: '\\u21BF',\n\tLeftUpVectorBar: '\\u2958',\n\tLeftVector: '\\u21BC',\n\tLeftVectorBar: '\\u2952',\n\tlEg: '\\u2A8B',\n\tleg: '\\u22DA',\n\tleq: '\\u2264',\n\tleqq: '\\u2266',\n\tleqslant: '\\u2A7D',\n\tles: '\\u2A7D',\n\tlescc: '\\u2AA8',\n\tlesdot: '\\u2A7F',\n\tlesdoto: '\\u2A81',\n\tlesdotor: '\\u2A83',\n\tlesg: '\\u22DA\\uFE00',\n\tlesges: '\\u2A93',\n\tlessapprox: '\\u2A85',\n\tlessdot: '\\u22D6',\n\tlesseqgtr: '\\u22DA',\n\tlesseqqgtr: '\\u2A8B',\n\tLessEqualGreater: '\\u22DA',\n\tLessFullEqual: '\\u2266',\n\tLessGreater: '\\u2276',\n\tlessgtr: '\\u2276',\n\tLessLess: '\\u2AA1',\n\tlesssim: '\\u2272',\n\tLessSlantEqual: '\\u2A7D',\n\tLessTilde: '\\u2272',\n\tlfisht: '\\u297C',\n\tlfloor: '\\u230A',\n\tLfr: '\\uD835\\uDD0F',\n\tlfr: '\\uD835\\uDD29',\n\tlg: '\\u2276',\n\tlgE: '\\u2A91',\n\tlHar: '\\u2962',\n\tlhard: '\\u21BD',\n\tlharu: '\\u21BC',\n\tlharul: '\\u296A',\n\tlhblk: '\\u2584',\n\tLJcy: '\\u0409',\n\tljcy: '\\u0459',\n\tLl: '\\u22D8',\n\tll: '\\u226A',\n\tllarr: '\\u21C7',\n\tllcorner: '\\u231E',\n\tLleftarrow: '\\u21DA',\n\tllhard: '\\u296B',\n\tlltri: '\\u25FA',\n\tLmidot: '\\u013F',\n\tlmidot: '\\u0140',\n\tlmoust: '\\u23B0',\n\tlmoustache: '\\u23B0',\n\tlnap: '\\u2A89',\n\tlnapprox: '\\u2A89',\n\tlnE: '\\u2268',\n\tlne: '\\u2A87',\n\tlneq: '\\u2A87',\n\tlneqq: '\\u2268',\n\tlnsim: '\\u22E6',\n\tloang: '\\u27EC',\n\tloarr: '\\u21FD',\n\tlobrk: '\\u27E6',\n\tLongLeftArrow: '\\u27F5',\n\tLongleftarrow: '\\u27F8',\n\tlongleftarrow: '\\u27F5',\n\tLongLeftRightArrow: '\\u27F7',\n\tLongleftrightarrow: '\\u27FA',\n\tlongleftrightarrow: '\\u27F7',\n\tlongmapsto: '\\u27FC',\n\tLongRightArrow: '\\u27F6',\n\tLongrightarrow: '\\u27F9',\n\tlongrightarrow: '\\u27F6',\n\tlooparrowleft: '\\u21AB',\n\tlooparrowright: '\\u21AC',\n\tlopar: '\\u2985',\n\tLopf: '\\uD835\\uDD43',\n\tlopf: '\\uD835\\uDD5D',\n\tloplus: '\\u2A2D',\n\tlotimes: '\\u2A34',\n\tlowast: '\\u2217',\n\tlowbar: '\\u005F',\n\tLowerLeftArrow: '\\u2199',\n\tLowerRightArrow: '\\u2198',\n\tloz: '\\u25CA',\n\tlozenge: '\\u25CA',\n\tlozf: '\\u29EB',\n\tlpar: '\\u0028',\n\tlparlt: '\\u2993',\n\tlrarr: '\\u21C6',\n\tlrcorner: '\\u231F',\n\tlrhar: '\\u21CB',\n\tlrhard: '\\u296D',\n\tlrm: '\\u200E',\n\tlrtri: '\\u22BF',\n\tlsaquo: '\\u2039',\n\tLscr: '\\u2112',\n\tlscr: '\\uD835\\uDCC1',\n\tLsh: '\\u21B0',\n\tlsh: '\\u21B0',\n\tlsim: '\\u2272',\n\tlsime: '\\u2A8D',\n\tlsimg: '\\u2A8F',\n\tlsqb: '\\u005B',\n\tlsquo: '\\u2018',\n\tlsquor: '\\u201A',\n\tLstrok: '\\u0141',\n\tlstrok: '\\u0142',\n\tLt: '\\u226A',\n\tLT: '\\u003C',\n\tlt: '\\u003C',\n\tltcc: '\\u2AA6',\n\tltcir: '\\u2A79',\n\tltdot: '\\u22D6',\n\tlthree: '\\u22CB',\n\tltimes: '\\u22C9',\n\tltlarr: '\\u2976',\n\tltquest: '\\u2A7B',\n\tltri: '\\u25C3',\n\tltrie: '\\u22B4',\n\tltrif: '\\u25C2',\n\tltrPar: '\\u2996',\n\tlurdshar: '\\u294A',\n\tluruhar: '\\u2966',\n\tlvertneqq: '\\u2268\\uFE00',\n\tlvnE: '\\u2268\\uFE00',\n\tmacr: '\\u00AF',\n\tmale: '\\u2642',\n\tmalt: '\\u2720',\n\tmaltese: '\\u2720',\n\tMap: '\\u2905',\n\tmap: '\\u21A6',\n\tmapsto: '\\u21A6',\n\tmapstodown: '\\u21A7',\n\tmapstoleft: '\\u21A4',\n\tmapstoup: '\\u21A5',\n\tmarker: '\\u25AE',\n\tmcomma: '\\u2A29',\n\tMcy: '\\u041C',\n\tmcy: '\\u043C',\n\tmdash: '\\u2014',\n\tmDDot: '\\u223A',\n\tmeasuredangle: '\\u2221',\n\tMediumSpace: '\\u205F',\n\tMellintrf: '\\u2133',\n\tMfr: '\\uD835\\uDD10',\n\tmfr: '\\uD835\\uDD2A',\n\tmho: '\\u2127',\n\tmicro: '\\u00B5',\n\tmid: '\\u2223',\n\tmidast: '\\u002A',\n\tmidcir: '\\u2AF0',\n\tmiddot: '\\u00B7',\n\tminus: '\\u2212',\n\tminusb: '\\u229F',\n\tminusd: '\\u2238',\n\tminusdu: '\\u2A2A',\n\tMinusPlus: '\\u2213',\n\tmlcp: '\\u2ADB',\n\tmldr: '\\u2026',\n\tmnplus: '\\u2213',\n\tmodels: '\\u22A7',\n\tMopf: '\\uD835\\uDD44',\n\tmopf: '\\uD835\\uDD5E',\n\tmp: '\\u2213',\n\tMscr: '\\u2133',\n\tmscr: '\\uD835\\uDCC2',\n\tmstpos: '\\u223E',\n\tMu: '\\u039C',\n\tmu: '\\u03BC',\n\tmultimap: '\\u22B8',\n\tmumap: '\\u22B8',\n\tnabla: '\\u2207',\n\tNacute: '\\u0143',\n\tnacute: '\\u0144',\n\tnang: '\\u2220\\u20D2',\n\tnap: '\\u2249',\n\tnapE: '\\u2A70\\u0338',\n\tnapid: '\\u224B\\u0338',\n\tnapos: '\\u0149',\n\tnapprox: '\\u2249',\n\tnatur: '\\u266E',\n\tnatural: '\\u266E',\n\tnaturals: '\\u2115',\n\tnbsp: '\\u00A0',\n\tnbump: '\\u224E\\u0338',\n\tnbumpe: '\\u224F\\u0338',\n\tncap: '\\u2A43',\n\tNcaron: '\\u0147',\n\tncaron: '\\u0148',\n\tNcedil: '\\u0145',\n\tncedil: '\\u0146',\n\tncong: '\\u2247',\n\tncongdot: '\\u2A6D\\u0338',\n\tncup: '\\u2A42',\n\tNcy: '\\u041D',\n\tncy: '\\u043D',\n\tndash: '\\u2013',\n\tne: '\\u2260',\n\tnearhk: '\\u2924',\n\tneArr: '\\u21D7',\n\tnearr: '\\u2197',\n\tnearrow: '\\u2197',\n\tnedot: '\\u2250\\u0338',\n\tNegativeMediumSpace: '\\u200B',\n\tNegativeThickSpace: '\\u200B',\n\tNegativeThinSpace: '\\u200B',\n\tNegativeVeryThinSpace: '\\u200B',\n\tnequiv: '\\u2262',\n\tnesear: '\\u2928',\n\tnesim: '\\u2242\\u0338',\n\tNestedGreaterGreater: '\\u226B',\n\tNestedLessLess: '\\u226A',\n\tNewLine: '\\u000A',\n\tnexist: '\\u2204',\n\tnexists: '\\u2204',\n\tNfr: '\\uD835\\uDD11',\n\tnfr: '\\uD835\\uDD2B',\n\tngE: '\\u2267\\u0338',\n\tnge: '\\u2271',\n\tngeq: '\\u2271',\n\tngeqq: '\\u2267\\u0338',\n\tngeqslant: '\\u2A7E\\u0338',\n\tnges: '\\u2A7E\\u0338',\n\tnGg: '\\u22D9\\u0338',\n\tngsim: '\\u2275',\n\tnGt: '\\u226B\\u20D2',\n\tngt: '\\u226F',\n\tngtr: '\\u226F',\n\tnGtv: '\\u226B\\u0338',\n\tnhArr: '\\u21CE',\n\tnharr: '\\u21AE',\n\tnhpar: '\\u2AF2',\n\tni: '\\u220B',\n\tnis: '\\u22FC',\n\tnisd: '\\u22FA',\n\tniv: '\\u220B',\n\tNJcy: '\\u040A',\n\tnjcy: '\\u045A',\n\tnlArr: '\\u21CD',\n\tnlarr: '\\u219A',\n\tnldr: '\\u2025',\n\tnlE: '\\u2266\\u0338',\n\tnle: '\\u2270',\n\tnLeftarrow: '\\u21CD',\n\tnleftarrow: '\\u219A',\n\tnLeftrightarrow: '\\u21CE',\n\tnleftrightarrow: '\\u21AE',\n\tnleq: '\\u2270',\n\tnleqq: '\\u2266\\u0338',\n\tnleqslant: '\\u2A7D\\u0338',\n\tnles: '\\u2A7D\\u0338',\n\tnless: '\\u226E',\n\tnLl: '\\u22D8\\u0338',\n\tnlsim: '\\u2274',\n\tnLt: '\\u226A\\u20D2',\n\tnlt: '\\u226E',\n\tnltri: '\\u22EA',\n\tnltrie: '\\u22EC',\n\tnLtv: '\\u226A\\u0338',\n\tnmid: '\\u2224',\n\tNoBreak: '\\u2060',\n\tNonBreakingSpace: '\\u00A0',\n\tNopf: '\\u2115',\n\tnopf: '\\uD835\\uDD5F',\n\tNot: '\\u2AEC',\n\tnot: '\\u00AC',\n\tNotCongruent: '\\u2262',\n\tNotCupCap: '\\u226D',\n\tNotDoubleVerticalBar: '\\u2226',\n\tNotElement: '\\u2209',\n\tNotEqual: '\\u2260',\n\tNotEqualTilde: '\\u2242\\u0338',\n\tNotExists: '\\u2204',\n\tNotGreater: '\\u226F',\n\tNotGreaterEqual: '\\u2271',\n\tNotGreaterFullEqual: '\\u2267\\u0338',\n\tNotGreaterGreater: '\\u226B\\u0338',\n\tNotGreaterLess: '\\u2279',\n\tNotGreaterSlantEqual: '\\u2A7E\\u0338',\n\tNotGreaterTilde: '\\u2275',\n\tNotHumpDownHump: '\\u224E\\u0338',\n\tNotHumpEqual: '\\u224F\\u0338',\n\tnotin: '\\u2209',\n\tnotindot: '\\u22F5\\u0338',\n\tnotinE: '\\u22F9\\u0338',\n\tnotinva: '\\u2209',\n\tnotinvb: '\\u22F7',\n\tnotinvc: '\\u22F6',\n\tNotLeftTriangle: '\\u22EA',\n\tNotLeftTriangleBar: '\\u29CF\\u0338',\n\tNotLeftTriangleEqual: '\\u22EC',\n\tNotLess: '\\u226E',\n\tNotLessEqual: '\\u2270',\n\tNotLessGreater: '\\u2278',\n\tNotLessLess: '\\u226A\\u0338',\n\tNotLessSlantEqual: '\\u2A7D\\u0338',\n\tNotLessTilde: '\\u2274',\n\tNotNestedGreaterGreater: '\\u2AA2\\u0338',\n\tNotNestedLessLess: '\\u2AA1\\u0338',\n\tnotni: '\\u220C',\n\tnotniva: '\\u220C',\n\tnotnivb: '\\u22FE',\n\tnotnivc: '\\u22FD',\n\tNotPrecedes: '\\u2280',\n\tNotPrecedesEqual: '\\u2AAF\\u0338',\n\tNotPrecedesSlantEqual: '\\u22E0',\n\tNotReverseElement: '\\u220C',\n\tNotRightTriangle: '\\u22EB',\n\tNotRightTriangleBar: '\\u29D0\\u0338',\n\tNotRightTriangleEqual: '\\u22ED',\n\tNotSquareSubset: '\\u228F\\u0338',\n\tNotSquareSubsetEqual: '\\u22E2',\n\tNotSquareSuperset: '\\u2290\\u0338',\n\tNotSquareSupersetEqual: '\\u22E3',\n\tNotSubset: '\\u2282\\u20D2',\n\tNotSubsetEqual: '\\u2288',\n\tNotSucceeds: '\\u2281',\n\tNotSucceedsEqual: '\\u2AB0\\u0338',\n\tNotSucceedsSlantEqual: '\\u22E1',\n\tNotSucceedsTilde: '\\u227F\\u0338',\n\tNotSuperset: '\\u2283\\u20D2',\n\tNotSupersetEqual: '\\u2289',\n\tNotTilde: '\\u2241',\n\tNotTildeEqual: '\\u2244',\n\tNotTildeFullEqual: '\\u2247',\n\tNotTildeTilde: '\\u2249',\n\tNotVerticalBar: '\\u2224',\n\tnpar: '\\u2226',\n\tnparallel: '\\u2226',\n\tnparsl: '\\u2AFD\\u20E5',\n\tnpart: '\\u2202\\u0338',\n\tnpolint: '\\u2A14',\n\tnpr: '\\u2280',\n\tnprcue: '\\u22E0',\n\tnpre: '\\u2AAF\\u0338',\n\tnprec: '\\u2280',\n\tnpreceq: '\\u2AAF\\u0338',\n\tnrArr: '\\u21CF',\n\tnrarr: '\\u219B',\n\tnrarrc: '\\u2933\\u0338',\n\tnrarrw: '\\u219D\\u0338',\n\tnRightarrow: '\\u21CF',\n\tnrightarrow: '\\u219B',\n\tnrtri: '\\u22EB',\n\tnrtrie: '\\u22ED',\n\tnsc: '\\u2281',\n\tnsccue: '\\u22E1',\n\tnsce: '\\u2AB0\\u0338',\n\tNscr: '\\uD835\\uDCA9',\n\tnscr: '\\uD835\\uDCC3',\n\tnshortmid: '\\u2224',\n\tnshortparallel: '\\u2226',\n\tnsim: '\\u2241',\n\tnsime: '\\u2244',\n\tnsimeq: '\\u2244',\n\tnsmid: '\\u2224',\n\tnspar: '\\u2226',\n\tnsqsube: '\\u22E2',\n\tnsqsupe: '\\u22E3',\n\tnsub: '\\u2284',\n\tnsubE: '\\u2AC5\\u0338',\n\tnsube: '\\u2288',\n\tnsubset: '\\u2282\\u20D2',\n\tnsubseteq: '\\u2288',\n\tnsubseteqq: '\\u2AC5\\u0338',\n\tnsucc: '\\u2281',\n\tnsucceq: '\\u2AB0\\u0338',\n\tnsup: '\\u2285',\n\tnsupE: '\\u2AC6\\u0338',\n\tnsupe: '\\u2289',\n\tnsupset: '\\u2283\\u20D2',\n\tnsupseteq: '\\u2289',\n\tnsupseteqq: '\\u2AC6\\u0338',\n\tntgl: '\\u2279',\n\tNtilde: '\\u00D1',\n\tntilde: '\\u00F1',\n\tntlg: '\\u2278',\n\tntriangleleft: '\\u22EA',\n\tntrianglelefteq: '\\u22EC',\n\tntriangleright: '\\u22EB',\n\tntrianglerighteq: '\\u22ED',\n\tNu: '\\u039D',\n\tnu: '\\u03BD',\n\tnum: '\\u0023',\n\tnumero: '\\u2116',\n\tnumsp: '\\u2007',\n\tnvap: '\\u224D\\u20D2',\n\tnVDash: '\\u22AF',\n\tnVdash: '\\u22AE',\n\tnvDash: '\\u22AD',\n\tnvdash: '\\u22AC',\n\tnvge: '\\u2265\\u20D2',\n\tnvgt: '\\u003E\\u20D2',\n\tnvHarr: '\\u2904',\n\tnvinfin: '\\u29DE',\n\tnvlArr: '\\u2902',\n\tnvle: '\\u2264\\u20D2',\n\tnvlt: '\\u003C\\u20D2',\n\tnvltrie: '\\u22B4\\u20D2',\n\tnvrArr: '\\u2903',\n\tnvrtrie: '\\u22B5\\u20D2',\n\tnvsim: '\\u223C\\u20D2',\n\tnwarhk: '\\u2923',\n\tnwArr: '\\u21D6',\n\tnwarr: '\\u2196',\n\tnwarrow: '\\u2196',\n\tnwnear: '\\u2927',\n\tOacute: '\\u00D3',\n\toacute: '\\u00F3',\n\toast: '\\u229B',\n\tocir: '\\u229A',\n\tOcirc: '\\u00D4',\n\tocirc: '\\u00F4',\n\tOcy: '\\u041E',\n\tocy: '\\u043E',\n\todash: '\\u229D',\n\tOdblac: '\\u0150',\n\todblac: '\\u0151',\n\todiv: '\\u2A38',\n\todot: '\\u2299',\n\todsold: '\\u29BC',\n\tOElig: '\\u0152',\n\toelig: '\\u0153',\n\tofcir: '\\u29BF',\n\tOfr: '\\uD835\\uDD12',\n\tofr: '\\uD835\\uDD2C',\n\togon: '\\u02DB',\n\tOgrave: '\\u00D2',\n\tograve: '\\u00F2',\n\togt: '\\u29C1',\n\tohbar: '\\u29B5',\n\tohm: '\\u03A9',\n\toint: '\\u222E',\n\tolarr: '\\u21BA',\n\tolcir: '\\u29BE',\n\tolcross: '\\u29BB',\n\toline: '\\u203E',\n\tolt: '\\u29C0',\n\tOmacr: '\\u014C',\n\tomacr: '\\u014D',\n\tOmega: '\\u03A9',\n\tomega: '\\u03C9',\n\tOmicron: '\\u039F',\n\tomicron: '\\u03BF',\n\tomid: '\\u29B6',\n\tominus: '\\u2296',\n\tOopf: '\\uD835\\uDD46',\n\toopf: '\\uD835\\uDD60',\n\topar: '\\u29B7',\n\tOpenCurlyDoubleQuote: '\\u201C',\n\tOpenCurlyQuote: '\\u2018',\n\toperp: '\\u29B9',\n\toplus: '\\u2295',\n\tOr: '\\u2A54',\n\tor: '\\u2228',\n\torarr: '\\u21BB',\n\tord: '\\u2A5D',\n\torder: '\\u2134',\n\torderof: '\\u2134',\n\tordf: '\\u00AA',\n\tordm: '\\u00BA',\n\torigof: '\\u22B6',\n\toror: '\\u2A56',\n\torslope: '\\u2A57',\n\torv: '\\u2A5B',\n\toS: '\\u24C8',\n\tOscr: '\\uD835\\uDCAA',\n\toscr: '\\u2134',\n\tOslash: '\\u00D8',\n\toslash: '\\u00F8',\n\tosol: '\\u2298',\n\tOtilde: '\\u00D5',\n\totilde: '\\u00F5',\n\tOtimes: '\\u2A37',\n\totimes: '\\u2297',\n\totimesas: '\\u2A36',\n\tOuml: '\\u00D6',\n\touml: '\\u00F6',\n\tovbar: '\\u233D',\n\tOverBar: '\\u203E',\n\tOverBrace: '\\u23DE',\n\tOverBracket: '\\u23B4',\n\tOverParenthesis: '\\u23DC',\n\tpar: '\\u2225',\n\tpara: '\\u00B6',\n\tparallel: '\\u2225',\n\tparsim: '\\u2AF3',\n\tparsl: '\\u2AFD',\n\tpart: '\\u2202',\n\tPartialD: '\\u2202',\n\tPcy: '\\u041F',\n\tpcy: '\\u043F',\n\tpercnt: '\\u0025',\n\tperiod: '\\u002E',\n\tpermil: '\\u2030',\n\tperp: '\\u22A5',\n\tpertenk: '\\u2031',\n\tPfr: '\\uD835\\uDD13',\n\tpfr: '\\uD835\\uDD2D',\n\tPhi: '\\u03A6',\n\tphi: '\\u03C6',\n\tphiv: '\\u03D5',\n\tphmmat: '\\u2133',\n\tphone: '\\u260E',\n\tPi: '\\u03A0',\n\tpi: '\\u03C0',\n\tpitchfork: '\\u22D4',\n\tpiv: '\\u03D6',\n\tplanck: '\\u210F',\n\tplanckh: '\\u210E',\n\tplankv: '\\u210F',\n\tplus: '\\u002B',\n\tplusacir: '\\u2A23',\n\tplusb: '\\u229E',\n\tpluscir: '\\u2A22',\n\tplusdo: '\\u2214',\n\tplusdu: '\\u2A25',\n\tpluse: '\\u2A72',\n\tPlusMinus: '\\u00B1',\n\tplusmn: '\\u00B1',\n\tplussim: '\\u2A26',\n\tplustwo: '\\u2A27',\n\tpm: '\\u00B1',\n\tPoincareplane: '\\u210C',\n\tpointint: '\\u2A15',\n\tPopf: '\\u2119',\n\tpopf: '\\uD835\\uDD61',\n\tpound: '\\u00A3',\n\tPr: '\\u2ABB',\n\tpr: '\\u227A',\n\tprap: '\\u2AB7',\n\tprcue: '\\u227C',\n\tprE: '\\u2AB3',\n\tpre: '\\u2AAF',\n\tprec: '\\u227A',\n\tprecapprox: '\\u2AB7',\n\tpreccurlyeq: '\\u227C',\n\tPrecedes: '\\u227A',\n\tPrecedesEqual: '\\u2AAF',\n\tPrecedesSlantEqual: '\\u227C',\n\tPrecedesTilde: '\\u227E',\n\tpreceq: '\\u2AAF',\n\tprecnapprox: '\\u2AB9',\n\tprecneqq: '\\u2AB5',\n\tprecnsim: '\\u22E8',\n\tprecsim: '\\u227E',\n\tPrime: '\\u2033',\n\tprime: '\\u2032',\n\tprimes: '\\u2119',\n\tprnap: '\\u2AB9',\n\tprnE: '\\u2AB5',\n\tprnsim: '\\u22E8',\n\tprod: '\\u220F',\n\tProduct: '\\u220F',\n\tprofalar: '\\u232E',\n\tprofline: '\\u2312',\n\tprofsurf: '\\u2313',\n\tprop: '\\u221D',\n\tProportion: '\\u2237',\n\tProportional: '\\u221D',\n\tpropto: '\\u221D',\n\tprsim: '\\u227E',\n\tprurel: '\\u22B0',\n\tPscr: '\\uD835\\uDCAB',\n\tpscr: '\\uD835\\uDCC5',\n\tPsi: '\\u03A8',\n\tpsi: '\\u03C8',\n\tpuncsp: '\\u2008',\n\tQfr: '\\uD835\\uDD14',\n\tqfr: '\\uD835\\uDD2E',\n\tqint: '\\u2A0C',\n\tQopf: '\\u211A',\n\tqopf: '\\uD835\\uDD62',\n\tqprime: '\\u2057',\n\tQscr: '\\uD835\\uDCAC',\n\tqscr: '\\uD835\\uDCC6',\n\tquaternions: '\\u210D',\n\tquatint: '\\u2A16',\n\tquest: '\\u003F',\n\tquesteq: '\\u225F',\n\tQUOT: '\\u0022',\n\tquot: '\\u0022',\n\trAarr: '\\u21DB',\n\trace: '\\u223D\\u0331',\n\tRacute: '\\u0154',\n\tracute: '\\u0155',\n\tradic: '\\u221A',\n\traemptyv: '\\u29B3',\n\tRang: '\\u27EB',\n\trang: '\\u27E9',\n\trangd: '\\u2992',\n\trange: '\\u29A5',\n\trangle: '\\u27E9',\n\traquo: '\\u00BB',\n\tRarr: '\\u21A0',\n\trArr: '\\u21D2',\n\trarr: '\\u2192',\n\trarrap: '\\u2975',\n\trarrb: '\\u21E5',\n\trarrbfs: '\\u2920',\n\trarrc: '\\u2933',\n\trarrfs: '\\u291E',\n\trarrhk: '\\u21AA',\n\trarrlp: '\\u21AC',\n\trarrpl: '\\u2945',\n\trarrsim: '\\u2974',\n\tRarrtl: '\\u2916',\n\trarrtl: '\\u21A3',\n\trarrw: '\\u219D',\n\trAtail: '\\u291C',\n\tratail: '\\u291A',\n\tratio: '\\u2236',\n\trationals: '\\u211A',\n\tRBarr: '\\u2910',\n\trBarr: '\\u290F',\n\trbarr: '\\u290D',\n\trbbrk: '\\u2773',\n\trbrace: '\\u007D',\n\trbrack: '\\u005D',\n\trbrke: '\\u298C',\n\trbrksld: '\\u298E',\n\trbrkslu: '\\u2990',\n\tRcaron: '\\u0158',\n\trcaron: '\\u0159',\n\tRcedil: '\\u0156',\n\trcedil: '\\u0157',\n\trceil: '\\u2309',\n\trcub: '\\u007D',\n\tRcy: '\\u0420',\n\trcy: '\\u0440',\n\trdca: '\\u2937',\n\trdldhar: '\\u2969',\n\trdquo: '\\u201D',\n\trdquor: '\\u201D',\n\trdsh: '\\u21B3',\n\tRe: '\\u211C',\n\treal: '\\u211C',\n\trealine: '\\u211B',\n\trealpart: '\\u211C',\n\treals: '\\u211D',\n\trect: '\\u25AD',\n\tREG: '\\u00AE',\n\treg: '\\u00AE',\n\tReverseElement: '\\u220B',\n\tReverseEquilibrium: '\\u21CB',\n\tReverseUpEquilibrium: '\\u296F',\n\trfisht: '\\u297D',\n\trfloor: '\\u230B',\n\tRfr: '\\u211C',\n\trfr: '\\uD835\\uDD2F',\n\trHar: '\\u2964',\n\trhard: '\\u21C1',\n\trharu: '\\u21C0',\n\trharul: '\\u296C',\n\tRho: '\\u03A1',\n\trho: '\\u03C1',\n\trhov: '\\u03F1',\n\tRightAngleBracket: '\\u27E9',\n\tRightArrow: '\\u2192',\n\tRightarrow: '\\u21D2',\n\trightarrow: '\\u2192',\n\tRightArrowBar: '\\u21E5',\n\tRightArrowLeftArrow: '\\u21C4',\n\trightarrowtail: '\\u21A3',\n\tRightCeiling: '\\u2309',\n\tRightDoubleBracket: '\\u27E7',\n\tRightDownTeeVector: '\\u295D',\n\tRightDownVector: '\\u21C2',\n\tRightDownVectorBar: '\\u2955',\n\tRightFloor: '\\u230B',\n\trightharpoondown: '\\u21C1',\n\trightharpoonup: '\\u21C0',\n\trightleftarrows: '\\u21C4',\n\trightleftharpoons: '\\u21CC',\n\trightrightarrows: '\\u21C9',\n\trightsquigarrow: '\\u219D',\n\tRightTee: '\\u22A2',\n\tRightTeeArrow: '\\u21A6',\n\tRightTeeVector: '\\u295B',\n\trightthreetimes: '\\u22CC',\n\tRightTriangle: '\\u22B3',\n\tRightTriangleBar: '\\u29D0',\n\tRightTriangleEqual: '\\u22B5',\n\tRightUpDownVector: '\\u294F',\n\tRightUpTeeVector: '\\u295C',\n\tRightUpVector: '\\u21BE',\n\tRightUpVectorBar: '\\u2954',\n\tRightVector: '\\u21C0',\n\tRightVectorBar: '\\u2953',\n\tring: '\\u02DA',\n\trisingdotseq: '\\u2253',\n\trlarr: '\\u21C4',\n\trlhar: '\\u21CC',\n\trlm: '\\u200F',\n\trmoust: '\\u23B1',\n\trmoustache: '\\u23B1',\n\trnmid: '\\u2AEE',\n\troang: '\\u27ED',\n\troarr: '\\u21FE',\n\trobrk: '\\u27E7',\n\tropar: '\\u2986',\n\tRopf: '\\u211D',\n\tropf: '\\uD835\\uDD63',\n\troplus: '\\u2A2E',\n\trotimes: '\\u2A35',\n\tRoundImplies: '\\u2970',\n\trpar: '\\u0029',\n\trpargt: '\\u2994',\n\trppolint: '\\u2A12',\n\trrarr: '\\u21C9',\n\tRrightarrow: '\\u21DB',\n\trsaquo: '\\u203A',\n\tRscr: '\\u211B',\n\trscr: '\\uD835\\uDCC7',\n\tRsh: '\\u21B1',\n\trsh: '\\u21B1',\n\trsqb: '\\u005D',\n\trsquo: '\\u2019',\n\trsquor: '\\u2019',\n\trthree: '\\u22CC',\n\trtimes: '\\u22CA',\n\trtri: '\\u25B9',\n\trtrie: '\\u22B5',\n\trtrif: '\\u25B8',\n\trtriltri: '\\u29CE',\n\tRuleDelayed: '\\u29F4',\n\truluhar: '\\u2968',\n\trx: '\\u211E',\n\tSacute: '\\u015A',\n\tsacute: '\\u015B',\n\tsbquo: '\\u201A',\n\tSc: '\\u2ABC',\n\tsc: '\\u227B',\n\tscap: '\\u2AB8',\n\tScaron: '\\u0160',\n\tscaron: '\\u0161',\n\tsccue: '\\u227D',\n\tscE: '\\u2AB4',\n\tsce: '\\u2AB0',\n\tScedil: '\\u015E',\n\tscedil: '\\u015F',\n\tScirc: '\\u015C',\n\tscirc: '\\u015D',\n\tscnap: '\\u2ABA',\n\tscnE: '\\u2AB6',\n\tscnsim: '\\u22E9',\n\tscpolint: '\\u2A13',\n\tscsim: '\\u227F',\n\tScy: '\\u0421',\n\tscy: '\\u0441',\n\tsdot: '\\u22C5',\n\tsdotb: '\\u22A1',\n\tsdote: '\\u2A66',\n\tsearhk: '\\u2925',\n\tseArr: '\\u21D8',\n\tsearr: '\\u2198',\n\tsearrow: '\\u2198',\n\tsect: '\\u00A7',\n\tsemi: '\\u003B',\n\tseswar: '\\u2929',\n\tsetminus: '\\u2216',\n\tsetmn: '\\u2216',\n\tsext: '\\u2736',\n\tSfr: '\\uD835\\uDD16',\n\tsfr: '\\uD835\\uDD30',\n\tsfrown: '\\u2322',\n\tsharp: '\\u266F',\n\tSHCHcy: '\\u0429',\n\tshchcy: '\\u0449',\n\tSHcy: '\\u0428',\n\tshcy: '\\u0448',\n\tShortDownArrow: '\\u2193',\n\tShortLeftArrow: '\\u2190',\n\tshortmid: '\\u2223',\n\tshortparallel: '\\u2225',\n\tShortRightArrow: '\\u2192',\n\tShortUpArrow: '\\u2191',\n\tshy: '\\u00AD',\n\tSigma: '\\u03A3',\n\tsigma: '\\u03C3',\n\tsigmaf: '\\u03C2',\n\tsigmav: '\\u03C2',\n\tsim: '\\u223C',\n\tsimdot: '\\u2A6A',\n\tsime: '\\u2243',\n\tsimeq: '\\u2243',\n\tsimg: '\\u2A9E',\n\tsimgE: '\\u2AA0',\n\tsiml: '\\u2A9D',\n\tsimlE: '\\u2A9F',\n\tsimne: '\\u2246',\n\tsimplus: '\\u2A24',\n\tsimrarr: '\\u2972',\n\tslarr: '\\u2190',\n\tSmallCircle: '\\u2218',\n\tsmallsetminus: '\\u2216',\n\tsmashp: '\\u2A33',\n\tsmeparsl: '\\u29E4',\n\tsmid: '\\u2223',\n\tsmile: '\\u2323',\n\tsmt: '\\u2AAA',\n\tsmte: '\\u2AAC',\n\tsmtes: '\\u2AAC\\uFE00',\n\tSOFTcy: '\\u042C',\n\tsoftcy: '\\u044C',\n\tsol: '\\u002F',\n\tsolb: '\\u29C4',\n\tsolbar: '\\u233F',\n\tSopf: '\\uD835\\uDD4A',\n\tsopf: '\\uD835\\uDD64',\n\tspades: '\\u2660',\n\tspadesuit: '\\u2660',\n\tspar: '\\u2225',\n\tsqcap: '\\u2293',\n\tsqcaps: '\\u2293\\uFE00',\n\tsqcup: '\\u2294',\n\tsqcups: '\\u2294\\uFE00',\n\tSqrt: '\\u221A',\n\tsqsub: '\\u228F',\n\tsqsube: '\\u2291',\n\tsqsubset: '\\u228F',\n\tsqsubseteq: '\\u2291',\n\tsqsup: '\\u2290',\n\tsqsupe: '\\u2292',\n\tsqsupset: '\\u2290',\n\tsqsupseteq: '\\u2292',\n\tsqu: '\\u25A1',\n\tSquare: '\\u25A1',\n\tsquare: '\\u25A1',\n\tSquareIntersection: '\\u2293',\n\tSquareSubset: '\\u228F',\n\tSquareSubsetEqual: '\\u2291',\n\tSquareSuperset: '\\u2290',\n\tSquareSupersetEqual: '\\u2292',\n\tSquareUnion: '\\u2294',\n\tsquarf: '\\u25AA',\n\tsquf: '\\u25AA',\n\tsrarr: '\\u2192',\n\tSscr: '\\uD835\\uDCAE',\n\tsscr: '\\uD835\\uDCC8',\n\tssetmn: '\\u2216',\n\tssmile: '\\u2323',\n\tsstarf: '\\u22C6',\n\tStar: '\\u22C6',\n\tstar: '\\u2606',\n\tstarf: '\\u2605',\n\tstraightepsilon: '\\u03F5',\n\tstraightphi: '\\u03D5',\n\tstrns: '\\u00AF',\n\tSub: '\\u22D0',\n\tsub: '\\u2282',\n\tsubdot: '\\u2ABD',\n\tsubE: '\\u2AC5',\n\tsube: '\\u2286',\n\tsubedot: '\\u2AC3',\n\tsubmult: '\\u2AC1',\n\tsubnE: '\\u2ACB',\n\tsubne: '\\u228A',\n\tsubplus: '\\u2ABF',\n\tsubrarr: '\\u2979',\n\tSubset: '\\u22D0',\n\tsubset: '\\u2282',\n\tsubseteq: '\\u2286',\n\tsubseteqq: '\\u2AC5',\n\tSubsetEqual: '\\u2286',\n\tsubsetneq: '\\u228A',\n\tsubsetneqq: '\\u2ACB',\n\tsubsim: '\\u2AC7',\n\tsubsub: '\\u2AD5',\n\tsubsup: '\\u2AD3',\n\tsucc: '\\u227B',\n\tsuccapprox: '\\u2AB8',\n\tsucccurlyeq: '\\u227D',\n\tSucceeds: '\\u227B',\n\tSucceedsEqual: '\\u2AB0',\n\tSucceedsSlantEqual: '\\u227D',\n\tSucceedsTilde: '\\u227F',\n\tsucceq: '\\u2AB0',\n\tsuccnapprox: '\\u2ABA',\n\tsuccneqq: '\\u2AB6',\n\tsuccnsim: '\\u22E9',\n\tsuccsim: '\\u227F',\n\tSuchThat: '\\u220B',\n\tSum: '\\u2211',\n\tsum: '\\u2211',\n\tsung: '\\u266A',\n\tSup: '\\u22D1',\n\tsup: '\\u2283',\n\tsup1: '\\u00B9',\n\tsup2: '\\u00B2',\n\tsup3: '\\u00B3',\n\tsupdot: '\\u2ABE',\n\tsupdsub: '\\u2AD8',\n\tsupE: '\\u2AC6',\n\tsupe: '\\u2287',\n\tsupedot: '\\u2AC4',\n\tSuperset: '\\u2283',\n\tSupersetEqual: '\\u2287',\n\tsuphsol: '\\u27C9',\n\tsuphsub: '\\u2AD7',\n\tsuplarr: '\\u297B',\n\tsupmult: '\\u2AC2',\n\tsupnE: '\\u2ACC',\n\tsupne: '\\u228B',\n\tsupplus: '\\u2AC0',\n\tSupset: '\\u22D1',\n\tsupset: '\\u2283',\n\tsupseteq: '\\u2287',\n\tsupseteqq: '\\u2AC6',\n\tsupsetneq: '\\u228B',\n\tsupsetneqq: '\\u2ACC',\n\tsupsim: '\\u2AC8',\n\tsupsub: '\\u2AD4',\n\tsupsup: '\\u2AD6',\n\tswarhk: '\\u2926',\n\tswArr: '\\u21D9',\n\tswarr: '\\u2199',\n\tswarrow: '\\u2199',\n\tswnwar: '\\u292A',\n\tszlig: '\\u00DF',\n\tTab: '\\u0009',\n\ttarget: '\\u2316',\n\tTau: '\\u03A4',\n\ttau: '\\u03C4',\n\ttbrk: '\\u23B4',\n\tTcaron: '\\u0164',\n\ttcaron: '\\u0165',\n\tTcedil: '\\u0162',\n\ttcedil: '\\u0163',\n\tTcy: '\\u0422',\n\ttcy: '\\u0442',\n\ttdot: '\\u20DB',\n\ttelrec: '\\u2315',\n\tTfr: '\\uD835\\uDD17',\n\ttfr: '\\uD835\\uDD31',\n\tthere4: '\\u2234',\n\tTherefore: '\\u2234',\n\ttherefore: '\\u2234',\n\tTheta: '\\u0398',\n\ttheta: '\\u03B8',\n\tthetasym: '\\u03D1',\n\tthetav: '\\u03D1',\n\tthickapprox: '\\u2248',\n\tthicksim: '\\u223C',\n\tThickSpace: '\\u205F\\u200A',\n\tthinsp: '\\u2009',\n\tThinSpace: '\\u2009',\n\tthkap: '\\u2248',\n\tthksim: '\\u223C',\n\tTHORN: '\\u00DE',\n\tthorn: '\\u00FE',\n\tTilde: '\\u223C',\n\ttilde: '\\u02DC',\n\tTildeEqual: '\\u2243',\n\tTildeFullEqual: '\\u2245',\n\tTildeTilde: '\\u2248',\n\ttimes: '\\u00D7',\n\ttimesb: '\\u22A0',\n\ttimesbar: '\\u2A31',\n\ttimesd: '\\u2A30',\n\ttint: '\\u222D',\n\ttoea: '\\u2928',\n\ttop: '\\u22A4',\n\ttopbot: '\\u2336',\n\ttopcir: '\\u2AF1',\n\tTopf: '\\uD835\\uDD4B',\n\ttopf: '\\uD835\\uDD65',\n\ttopfork: '\\u2ADA',\n\ttosa: '\\u2929',\n\ttprime: '\\u2034',\n\tTRADE: '\\u2122',\n\ttrade: '\\u2122',\n\ttriangle: '\\u25B5',\n\ttriangledown: '\\u25BF',\n\ttriangleleft: '\\u25C3',\n\ttrianglelefteq: '\\u22B4',\n\ttriangleq: '\\u225C',\n\ttriangleright: '\\u25B9',\n\ttrianglerighteq: '\\u22B5',\n\ttridot: '\\u25EC',\n\ttrie: '\\u225C',\n\ttriminus: '\\u2A3A',\n\tTripleDot: '\\u20DB',\n\ttriplus: '\\u2A39',\n\ttrisb: '\\u29CD',\n\ttritime: '\\u2A3B',\n\ttrpezium: '\\u23E2',\n\tTscr: '\\uD835\\uDCAF',\n\ttscr: '\\uD835\\uDCC9',\n\tTScy: '\\u0426',\n\ttscy: '\\u0446',\n\tTSHcy: '\\u040B',\n\ttshcy: '\\u045B',\n\tTstrok: '\\u0166',\n\ttstrok: '\\u0167',\n\ttwixt: '\\u226C',\n\ttwoheadleftarrow: '\\u219E',\n\ttwoheadrightarrow: '\\u21A0',\n\tUacute: '\\u00DA',\n\tuacute: '\\u00FA',\n\tUarr: '\\u219F',\n\tuArr: '\\u21D1',\n\tuarr: '\\u2191',\n\tUarrocir: '\\u2949',\n\tUbrcy: '\\u040E',\n\tubrcy: '\\u045E',\n\tUbreve: '\\u016C',\n\tubreve: '\\u016D',\n\tUcirc: '\\u00DB',\n\tucirc: '\\u00FB',\n\tUcy: '\\u0423',\n\tucy: '\\u0443',\n\tudarr: '\\u21C5',\n\tUdblac: '\\u0170',\n\tudblac: '\\u0171',\n\tudhar: '\\u296E',\n\tufisht: '\\u297E',\n\tUfr: '\\uD835\\uDD18',\n\tufr: '\\uD835\\uDD32',\n\tUgrave: '\\u00D9',\n\tugrave: '\\u00F9',\n\tuHar: '\\u2963',\n\tuharl: '\\u21BF',\n\tuharr: '\\u21BE',\n\tuhblk: '\\u2580',\n\tulcorn: '\\u231C',\n\tulcorner: '\\u231C',\n\tulcrop: '\\u230F',\n\tultri: '\\u25F8',\n\tUmacr: '\\u016A',\n\tumacr: '\\u016B',\n\tuml: '\\u00A8',\n\tUnderBar: '\\u005F',\n\tUnderBrace: '\\u23DF',\n\tUnderBracket: '\\u23B5',\n\tUnderParenthesis: '\\u23DD',\n\tUnion: '\\u22C3',\n\tUnionPlus: '\\u228E',\n\tUogon: '\\u0172',\n\tuogon: '\\u0173',\n\tUopf: '\\uD835\\uDD4C',\n\tuopf: '\\uD835\\uDD66',\n\tUpArrow: '\\u2191',\n\tUparrow: '\\u21D1',\n\tuparrow: '\\u2191',\n\tUpArrowBar: '\\u2912',\n\tUpArrowDownArrow: '\\u21C5',\n\tUpDownArrow: '\\u2195',\n\tUpdownarrow: '\\u21D5',\n\tupdownarrow: '\\u2195',\n\tUpEquilibrium: '\\u296E',\n\tupharpoonleft: '\\u21BF',\n\tupharpoonright: '\\u21BE',\n\tuplus: '\\u228E',\n\tUpperLeftArrow: '\\u2196',\n\tUpperRightArrow: '\\u2197',\n\tUpsi: '\\u03D2',\n\tupsi: '\\u03C5',\n\tupsih: '\\u03D2',\n\tUpsilon: '\\u03A5',\n\tupsilon: '\\u03C5',\n\tUpTee: '\\u22A5',\n\tUpTeeArrow: '\\u21A5',\n\tupuparrows: '\\u21C8',\n\turcorn: '\\u231D',\n\turcorner: '\\u231D',\n\turcrop: '\\u230E',\n\tUring: '\\u016E',\n\turing: '\\u016F',\n\turtri: '\\u25F9',\n\tUscr: '\\uD835\\uDCB0',\n\tuscr: '\\uD835\\uDCCA',\n\tutdot: '\\u22F0',\n\tUtilde: '\\u0168',\n\tutilde: '\\u0169',\n\tutri: '\\u25B5',\n\tutrif: '\\u25B4',\n\tuuarr: '\\u21C8',\n\tUuml: '\\u00DC',\n\tuuml: '\\u00FC',\n\tuwangle: '\\u29A7',\n\tvangrt: '\\u299C',\n\tvarepsilon: '\\u03F5',\n\tvarkappa: '\\u03F0',\n\tvarnothing: '\\u2205',\n\tvarphi: '\\u03D5',\n\tvarpi: '\\u03D6',\n\tvarpropto: '\\u221D',\n\tvArr: '\\u21D5',\n\tvarr: '\\u2195',\n\tvarrho: '\\u03F1',\n\tvarsigma: '\\u03C2',\n\tvarsubsetneq: '\\u228A\\uFE00',\n\tvarsubsetneqq: '\\u2ACB\\uFE00',\n\tvarsupsetneq: '\\u228B\\uFE00',\n\tvarsupsetneqq: '\\u2ACC\\uFE00',\n\tvartheta: '\\u03D1',\n\tvartriangleleft: '\\u22B2',\n\tvartriangleright: '\\u22B3',\n\tVbar: '\\u2AEB',\n\tvBar: '\\u2AE8',\n\tvBarv: '\\u2AE9',\n\tVcy: '\\u0412',\n\tvcy: '\\u0432',\n\tVDash: '\\u22AB',\n\tVdash: '\\u22A9',\n\tvDash: '\\u22A8',\n\tvdash: '\\u22A2',\n\tVdashl: '\\u2AE6',\n\tVee: '\\u22C1',\n\tvee: '\\u2228',\n\tveebar: '\\u22BB',\n\tveeeq: '\\u225A',\n\tvellip: '\\u22EE',\n\tVerbar: '\\u2016',\n\tverbar: '\\u007C',\n\tVert: '\\u2016',\n\tvert: '\\u007C',\n\tVerticalBar: '\\u2223',\n\tVerticalLine: '\\u007C',\n\tVerticalSeparator: '\\u2758',\n\tVerticalTilde: '\\u2240',\n\tVeryThinSpace: '\\u200A',\n\tVfr: '\\uD835\\uDD19',\n\tvfr: '\\uD835\\uDD33',\n\tvltri: '\\u22B2',\n\tvnsub: '\\u2282\\u20D2',\n\tvnsup: '\\u2283\\u20D2',\n\tVopf: '\\uD835\\uDD4D',\n\tvopf: '\\uD835\\uDD67',\n\tvprop: '\\u221D',\n\tvrtri: '\\u22B3',\n\tVscr: '\\uD835\\uDCB1',\n\tvscr: '\\uD835\\uDCCB',\n\tvsubnE: '\\u2ACB\\uFE00',\n\tvsubne: '\\u228A\\uFE00',\n\tvsupnE: '\\u2ACC\\uFE00',\n\tvsupne: '\\u228B\\uFE00',\n\tVvdash: '\\u22AA',\n\tvzigzag: '\\u299A',\n\tWcirc: '\\u0174',\n\twcirc: '\\u0175',\n\twedbar: '\\u2A5F',\n\tWedge: '\\u22C0',\n\twedge: '\\u2227',\n\twedgeq: '\\u2259',\n\tweierp: '\\u2118',\n\tWfr: '\\uD835\\uDD1A',\n\twfr: '\\uD835\\uDD34',\n\tWopf: '\\uD835\\uDD4E',\n\twopf: '\\uD835\\uDD68',\n\twp: '\\u2118',\n\twr: '\\u2240',\n\twreath: '\\u2240',\n\tWscr: '\\uD835\\uDCB2',\n\twscr: '\\uD835\\uDCCC',\n\txcap: '\\u22C2',\n\txcirc: '\\u25EF',\n\txcup: '\\u22C3',\n\txdtri: '\\u25BD',\n\tXfr: '\\uD835\\uDD1B',\n\txfr: '\\uD835\\uDD35',\n\txhArr: '\\u27FA',\n\txharr: '\\u27F7',\n\tXi: '\\u039E',\n\txi: '\\u03BE',\n\txlArr: '\\u27F8',\n\txlarr: '\\u27F5',\n\txmap: '\\u27FC',\n\txnis: '\\u22FB',\n\txodot: '\\u2A00',\n\tXopf: '\\uD835\\uDD4F',\n\txopf: '\\uD835\\uDD69',\n\txoplus: '\\u2A01',\n\txotime: '\\u2A02',\n\txrArr: '\\u27F9',\n\txrarr: '\\u27F6',\n\tXscr: '\\uD835\\uDCB3',\n\txscr: '\\uD835\\uDCCD',\n\txsqcup: '\\u2A06',\n\txuplus: '\\u2A04',\n\txutri: '\\u25B3',\n\txvee: '\\u22C1',\n\txwedge: '\\u22C0',\n\tYacute: '\\u00DD',\n\tyacute: '\\u00FD',\n\tYAcy: '\\u042F',\n\tyacy: '\\u044F',\n\tYcirc: '\\u0176',\n\tycirc: '\\u0177',\n\tYcy: '\\u042B',\n\tycy: '\\u044B',\n\tyen: '\\u00A5',\n\tYfr: '\\uD835\\uDD1C',\n\tyfr: '\\uD835\\uDD36',\n\tYIcy: '\\u0407',\n\tyicy: '\\u0457',\n\tYopf: '\\uD835\\uDD50',\n\tyopf: '\\uD835\\uDD6A',\n\tYscr: '\\uD835\\uDCB4',\n\tyscr: '\\uD835\\uDCCE',\n\tYUcy: '\\u042E',\n\tyucy: '\\u044E',\n\tYuml: '\\u0178',\n\tyuml: '\\u00FF',\n\tZacute: '\\u0179',\n\tzacute: '\\u017A',\n\tZcaron: '\\u017D',\n\tzcaron: '\\u017E',\n\tZcy: '\\u0417',\n\tzcy: '\\u0437',\n\tZdot: '\\u017B',\n\tzdot: '\\u017C',\n\tzeetrf: '\\u2128',\n\tZeroWidthSpace: '\\u200B',\n\tZeta: '\\u0396',\n\tzeta: '\\u03B6',\n\tZfr: '\\u2128',\n\tzfr: '\\uD835\\uDD37',\n\tZHcy: '\\u0416',\n\tzhcy: '\\u0436',\n\tzigrarr: '\\u21DD',\n\tZopf: '\\u2124',\n\tzopf: '\\uD835\\uDD6B',\n\tZscr: '\\uD835\\uDCB5',\n\tzscr: '\\uD835\\uDCCF',\n\tzwj: '\\u200D',\n\tzwnj: '\\u200C',\n});\n\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */\nexports.entityMap = exports.HTML_ENTITIES;\n","'use strict';\nvar fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = Error('a');\n if (!('stack' in error)) return true;\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\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;\n","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nmodule.exports = _isNativeFunction, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\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\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\nvar document = require('global/document');\n\nvar _objCreate = Object.create || (function() {\n function F() {}\n return function(o) {\n if (arguments.length !== 1) {\n throw new Error('Object.create shim only accepts one parameter.');\n }\n F.prototype = o;\n return new F();\n };\n})();\n\n// Creates a new ParserError object from an errorData object. The errorData\n// object should have default code and message properties. The default message\n// property can be overriden by passing in a message parameter.\n// See ParsingError.Errors below for acceptable errors.\nfunction ParsingError(errorData, message) {\n this.name = \"ParsingError\";\n this.code = errorData.code;\n this.message = message || errorData.message;\n}\nParsingError.prototype = _objCreate(Error.prototype);\nParsingError.prototype.constructor = ParsingError;\n\n// ParsingError metadata for acceptable ParsingErrors.\nParsingError.Errors = {\n BadSignature: {\n code: 0,\n message: \"Malformed WebVTT signature.\"\n },\n BadTimeStamp: {\n code: 1,\n message: \"Malformed time stamp.\"\n }\n};\n\n// Try to parse input as a time stamp.\nfunction parseTimeStamp(input) {\n\n function computeSeconds(h, m, s, f) {\n return (h | 0) * 3600 + (m | 0) * 60 + (s | 0) + (f | 0) / 1000;\n }\n\n var m = input.match(/^(\\d+):(\\d{1,2})(:\\d{1,2})?\\.(\\d{3})/);\n if (!m) {\n return null;\n }\n\n if (m[3]) {\n // Timestamp takes the form of [hours]:[minutes]:[seconds].[milliseconds]\n return computeSeconds(m[1], m[2], m[3].replace(\":\", \"\"), m[4]);\n } else if (m[1] > 59) {\n // Timestamp takes the form of [hours]:[minutes].[milliseconds]\n // First position is hours as it's over 59.\n return computeSeconds(m[1], m[2], 0, m[4]);\n } else {\n // Timestamp takes the form of [minutes]:[seconds].[milliseconds]\n return computeSeconds(0, m[1], m[2], m[4]);\n }\n}\n\n// A settings object holds key/value pairs and will ignore anything but the first\n// assignment to a specific key.\nfunction Settings() {\n this.values = _objCreate(null);\n}\n\nSettings.prototype = {\n // Only accept the first assignment to any key.\n set: function(k, v) {\n if (!this.get(k) && v !== \"\") {\n this.values[k] = v;\n }\n },\n // Return the value for a key, or a default value.\n // If 'defaultKey' is passed then 'dflt' is assumed to be an object with\n // a number of possible default values as properties where 'defaultKey' is\n // the key of the property that will be chosen; otherwise it's assumed to be\n // a single value.\n get: function(k, dflt, defaultKey) {\n if (defaultKey) {\n return this.has(k) ? this.values[k] : dflt[defaultKey];\n }\n return this.has(k) ? this.values[k] : dflt;\n },\n // Check whether we have a value for a key.\n has: function(k) {\n return k in this.values;\n },\n // Accept a setting if its one of the given alternatives.\n alt: function(k, v, a) {\n for (var n = 0; n < a.length; ++n) {\n if (v === a[n]) {\n this.set(k, v);\n break;\n }\n }\n },\n // Accept a setting if its a valid (signed) integer.\n integer: function(k, v) {\n if (/^-?\\d+$/.test(v)) { // integer\n this.set(k, parseInt(v, 10));\n }\n },\n // Accept a setting if its a valid percentage.\n percent: function(k, v) {\n var m;\n if ((m = v.match(/^([\\d]{1,3})(\\.[\\d]*)?%$/))) {\n v = parseFloat(v);\n if (v >= 0 && v <= 100) {\n this.set(k, v);\n return true;\n }\n }\n return false;\n }\n};\n\n// Helper function to parse input into groups separated by 'groupDelim', and\n// interprete each group as a key/value pair separated by 'keyValueDelim'.\nfunction parseOptions(input, callback, keyValueDelim, groupDelim) {\n var groups = groupDelim ? input.split(groupDelim) : [input];\n for (var i in groups) {\n if (typeof groups[i] !== \"string\") {\n continue;\n }\n var kv = groups[i].split(keyValueDelim);\n if (kv.length !== 2) {\n continue;\n }\n var k = kv[0].trim();\n var v = kv[1].trim();\n callback(k, v);\n }\n}\n\nfunction parseCue(input, cue, regionList) {\n // Remember the original input if we need to throw an error.\n var oInput = input;\n // 4.1 WebVTT timestamp\n function consumeTimeStamp() {\n var ts = parseTimeStamp(input);\n if (ts === null) {\n throw new ParsingError(ParsingError.Errors.BadTimeStamp,\n \"Malformed timestamp: \" + oInput);\n }\n // Remove time stamp from input.\n input = input.replace(/^[^\\sa-zA-Z-]+/, \"\");\n return ts;\n }\n\n // 4.4.2 WebVTT cue settings\n function consumeCueSettings(input, cue) {\n var settings = new Settings();\n\n parseOptions(input, function (k, v) {\n switch (k) {\n case \"region\":\n // Find the last region we parsed with the same region id.\n for (var i = regionList.length - 1; i >= 0; i--) {\n if (regionList[i].id === v) {\n settings.set(k, regionList[i].region);\n break;\n }\n }\n break;\n case \"vertical\":\n settings.alt(k, v, [\"rl\", \"lr\"]);\n break;\n case \"line\":\n var vals = v.split(\",\"),\n vals0 = vals[0];\n settings.integer(k, vals0);\n settings.percent(k, vals0) ? settings.set(\"snapToLines\", false) : null;\n settings.alt(k, vals0, [\"auto\"]);\n if (vals.length === 2) {\n settings.alt(\"lineAlign\", vals[1], [\"start\", \"center\", \"end\"]);\n }\n break;\n case \"position\":\n vals = v.split(\",\");\n settings.percent(k, vals[0]);\n if (vals.length === 2) {\n settings.alt(\"positionAlign\", vals[1], [\"start\", \"center\", \"end\"]);\n }\n break;\n case \"size\":\n settings.percent(k, v);\n break;\n case \"align\":\n settings.alt(k, v, [\"start\", \"center\", \"end\", \"left\", \"right\"]);\n break;\n }\n }, /:/, /\\s/);\n\n // Apply default values for any missing fields.\n cue.region = settings.get(\"region\", null);\n cue.vertical = settings.get(\"vertical\", \"\");\n try {\n cue.line = settings.get(\"line\", \"auto\");\n } catch (e) {}\n cue.lineAlign = settings.get(\"lineAlign\", \"start\");\n cue.snapToLines = settings.get(\"snapToLines\", true);\n cue.size = settings.get(\"size\", 100);\n // Safari still uses the old middle value and won't accept center\n try {\n cue.align = settings.get(\"align\", \"center\");\n } catch (e) {\n cue.align = settings.get(\"align\", \"middle\");\n }\n try {\n cue.position = settings.get(\"position\", \"auto\");\n } catch (e) {\n cue.position = settings.get(\"position\", {\n start: 0,\n left: 0,\n center: 50,\n middle: 50,\n end: 100,\n right: 100\n }, cue.align);\n }\n\n\n cue.positionAlign = settings.get(\"positionAlign\", {\n start: \"start\",\n left: \"start\",\n center: \"center\",\n middle: \"center\",\n end: \"end\",\n right: \"end\"\n }, cue.align);\n }\n\n function skipWhitespace() {\n input = input.replace(/^\\s+/, \"\");\n }\n\n // 4.1 WebVTT cue timings.\n skipWhitespace();\n cue.startTime = consumeTimeStamp(); // (1) collect cue start time\n skipWhitespace();\n if (input.substr(0, 3) !== \"-->\") { // (3) next characters must match \"-->\"\n throw new ParsingError(ParsingError.Errors.BadTimeStamp,\n \"Malformed time stamp (time stamps must be separated by '-->'): \" +\n oInput);\n }\n input = input.substr(3);\n skipWhitespace();\n cue.endTime = consumeTimeStamp(); // (5) collect cue end time\n\n // 4.1 WebVTT cue settings list.\n skipWhitespace();\n consumeCueSettings(input, cue);\n}\n\n// When evaluating this file as part of a Webpack bundle for server\n// side rendering, `document` is an empty object.\nvar TEXTAREA_ELEMENT = document.createElement && document.createElement(\"textarea\");\n\nvar TAG_NAME = {\n c: \"span\",\n i: \"i\",\n b: \"b\",\n u: \"u\",\n ruby: \"ruby\",\n rt: \"rt\",\n v: \"span\",\n lang: \"span\"\n};\n\n// 5.1 default text color\n// 5.2 default text background color is equivalent to text color with bg_ prefix\nvar DEFAULT_COLOR_CLASS = {\n white: 'rgba(255,255,255,1)',\n lime: 'rgba(0,255,0,1)',\n cyan: 'rgba(0,255,255,1)',\n red: 'rgba(255,0,0,1)',\n yellow: 'rgba(255,255,0,1)',\n magenta: 'rgba(255,0,255,1)',\n blue: 'rgba(0,0,255,1)',\n black: 'rgba(0,0,0,1)'\n};\n\nvar TAG_ANNOTATION = {\n v: \"title\",\n lang: \"lang\"\n};\n\nvar NEEDS_PARENT = {\n rt: \"ruby\"\n};\n\n// Parse content into a document fragment.\nfunction parseContent(window, input) {\n function nextToken() {\n // Check for end-of-string.\n if (!input) {\n return null;\n }\n\n // Consume 'n' characters from the input.\n function consume(result) {\n input = input.substr(result.length);\n return result;\n }\n\n var m = input.match(/^([^<]*)(<[^>]*>?)?/);\n // If there is some text before the next tag, return it, otherwise return\n // the tag.\n return consume(m[1] ? m[1] : m[2]);\n }\n\n function unescape(s) {\n TEXTAREA_ELEMENT.innerHTML = s;\n s = TEXTAREA_ELEMENT.textContent;\n TEXTAREA_ELEMENT.textContent = \"\";\n return s;\n }\n\n function shouldAdd(current, element) {\n return !NEEDS_PARENT[element.localName] ||\n NEEDS_PARENT[element.localName] === current.localName;\n }\n\n // Create an element for this tag.\n function createElement(type, annotation) {\n var tagName = TAG_NAME[type];\n if (!tagName) {\n return null;\n }\n var element = window.document.createElement(tagName);\n var name = TAG_ANNOTATION[type];\n if (name && annotation) {\n element[name] = annotation.trim();\n }\n return element;\n }\n\n var rootDiv = window.document.createElement(\"div\"),\n current = rootDiv,\n t,\n tagStack = [];\n\n while ((t = nextToken()) !== null) {\n if (t[0] === '<') {\n if (t[1] === \"/\") {\n // If the closing tag matches, move back up to the parent node.\n if (tagStack.length &&\n tagStack[tagStack.length - 1] === t.substr(2).replace(\">\", \"\")) {\n tagStack.pop();\n current = current.parentNode;\n }\n // Otherwise just ignore the end tag.\n continue;\n }\n var ts = parseTimeStamp(t.substr(1, t.length - 2));\n var node;\n if (ts) {\n // Timestamps are lead nodes as well.\n node = window.document.createProcessingInstruction(\"timestamp\", ts);\n current.appendChild(node);\n continue;\n }\n var m = t.match(/^<([^.\\s/0-9>]+)(\\.[^\\s\\\\>]+)?([^>\\\\]+)?(\\\\?)>?$/);\n // If we can't parse the tag, skip to the next tag.\n if (!m) {\n continue;\n }\n // Try to construct an element, and ignore the tag if we couldn't.\n node = createElement(m[1], m[3]);\n if (!node) {\n continue;\n }\n // Determine if the tag should be added based on the context of where it\n // is placed in the cuetext.\n if (!shouldAdd(current, node)) {\n continue;\n }\n // Set the class list (as a list of classes, separated by space).\n if (m[2]) {\n var classes = m[2].split('.');\n\n classes.forEach(function(cl) {\n var bgColor = /^bg_/.test(cl);\n // slice out `bg_` if it's a background color\n var colorName = bgColor ? cl.slice(3) : cl;\n\n if (DEFAULT_COLOR_CLASS.hasOwnProperty(colorName)) {\n var propName = bgColor ? 'background-color' : 'color';\n var propValue = DEFAULT_COLOR_CLASS[colorName];\n\n node.style[propName] = propValue;\n }\n });\n\n node.className = classes.join(' ');\n }\n // Append the node to the current node, and enter the scope of the new\n // node.\n tagStack.push(m[1]);\n current.appendChild(node);\n current = node;\n continue;\n }\n\n // Text nodes are leaf nodes.\n current.appendChild(window.document.createTextNode(unescape(t)));\n }\n\n return rootDiv;\n}\n\n// This is a list of all the Unicode characters that have a strong\n// right-to-left category. What this means is that these characters are\n// written right-to-left for sure. It was generated by pulling all the strong\n// right-to-left characters out of the Unicode data table. That table can\n// found at: http://www.unicode.org/Public/UNIDATA/UnicodeData.txt\nvar strongRTLRanges = [[0x5be, 0x5be], [0x5c0, 0x5c0], [0x5c3, 0x5c3], [0x5c6, 0x5c6],\n [0x5d0, 0x5ea], [0x5f0, 0x5f4], [0x608, 0x608], [0x60b, 0x60b], [0x60d, 0x60d],\n [0x61b, 0x61b], [0x61e, 0x64a], [0x66d, 0x66f], [0x671, 0x6d5], [0x6e5, 0x6e6],\n [0x6ee, 0x6ef], [0x6fa, 0x70d], [0x70f, 0x710], [0x712, 0x72f], [0x74d, 0x7a5],\n [0x7b1, 0x7b1], [0x7c0, 0x7ea], [0x7f4, 0x7f5], [0x7fa, 0x7fa], [0x800, 0x815],\n [0x81a, 0x81a], [0x824, 0x824], [0x828, 0x828], [0x830, 0x83e], [0x840, 0x858],\n [0x85e, 0x85e], [0x8a0, 0x8a0], [0x8a2, 0x8ac], [0x200f, 0x200f],\n [0xfb1d, 0xfb1d], [0xfb1f, 0xfb28], [0xfb2a, 0xfb36], [0xfb38, 0xfb3c],\n [0xfb3e, 0xfb3e], [0xfb40, 0xfb41], [0xfb43, 0xfb44], [0xfb46, 0xfbc1],\n [0xfbd3, 0xfd3d], [0xfd50, 0xfd8f], [0xfd92, 0xfdc7], [0xfdf0, 0xfdfc],\n [0xfe70, 0xfe74], [0xfe76, 0xfefc], [0x10800, 0x10805], [0x10808, 0x10808],\n [0x1080a, 0x10835], [0x10837, 0x10838], [0x1083c, 0x1083c], [0x1083f, 0x10855],\n [0x10857, 0x1085f], [0x10900, 0x1091b], [0x10920, 0x10939], [0x1093f, 0x1093f],\n [0x10980, 0x109b7], [0x109be, 0x109bf], [0x10a00, 0x10a00], [0x10a10, 0x10a13],\n [0x10a15, 0x10a17], [0x10a19, 0x10a33], [0x10a40, 0x10a47], [0x10a50, 0x10a58],\n [0x10a60, 0x10a7f], [0x10b00, 0x10b35], [0x10b40, 0x10b55], [0x10b58, 0x10b72],\n [0x10b78, 0x10b7f], [0x10c00, 0x10c48], [0x1ee00, 0x1ee03], [0x1ee05, 0x1ee1f],\n [0x1ee21, 0x1ee22], [0x1ee24, 0x1ee24], [0x1ee27, 0x1ee27], [0x1ee29, 0x1ee32],\n [0x1ee34, 0x1ee37], [0x1ee39, 0x1ee39], [0x1ee3b, 0x1ee3b], [0x1ee42, 0x1ee42],\n [0x1ee47, 0x1ee47], [0x1ee49, 0x1ee49], [0x1ee4b, 0x1ee4b], [0x1ee4d, 0x1ee4f],\n [0x1ee51, 0x1ee52], [0x1ee54, 0x1ee54], [0x1ee57, 0x1ee57], [0x1ee59, 0x1ee59],\n [0x1ee5b, 0x1ee5b], [0x1ee5d, 0x1ee5d], [0x1ee5f, 0x1ee5f], [0x1ee61, 0x1ee62],\n [0x1ee64, 0x1ee64], [0x1ee67, 0x1ee6a], [0x1ee6c, 0x1ee72], [0x1ee74, 0x1ee77],\n [0x1ee79, 0x1ee7c], [0x1ee7e, 0x1ee7e], [0x1ee80, 0x1ee89], [0x1ee8b, 0x1ee9b],\n [0x1eea1, 0x1eea3], [0x1eea5, 0x1eea9], [0x1eeab, 0x1eebb], [0x10fffd, 0x10fffd]];\n\nfunction isStrongRTLChar(charCode) {\n for (var i = 0; i < strongRTLRanges.length; i++) {\n var currentRange = strongRTLRanges[i];\n if (charCode >= currentRange[0] && charCode <= currentRange[1]) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction determineBidi(cueDiv) {\n var nodeStack = [],\n text = \"\",\n charCode;\n\n if (!cueDiv || !cueDiv.childNodes) {\n return \"ltr\";\n }\n\n function pushNodes(nodeStack, node) {\n for (var i = node.childNodes.length - 1; i >= 0; i--) {\n nodeStack.push(node.childNodes[i]);\n }\n }\n\n function nextTextNode(nodeStack) {\n if (!nodeStack || !nodeStack.length) {\n return null;\n }\n\n var node = nodeStack.pop(),\n text = node.textContent || node.innerText;\n if (text) {\n // TODO: This should match all unicode type B characters (paragraph\n // separator characters). See issue #115.\n var m = text.match(/^.*(\\n|\\r)/);\n if (m) {\n nodeStack.length = 0;\n return m[0];\n }\n return text;\n }\n if (node.tagName === \"ruby\") {\n return nextTextNode(nodeStack);\n }\n if (node.childNodes) {\n pushNodes(nodeStack, node);\n return nextTextNode(nodeStack);\n }\n }\n\n pushNodes(nodeStack, cueDiv);\n while ((text = nextTextNode(nodeStack))) {\n for (var i = 0; i < text.length; i++) {\n charCode = text.charCodeAt(i);\n if (isStrongRTLChar(charCode)) {\n return \"rtl\";\n }\n }\n }\n return \"ltr\";\n}\n\nfunction computeLinePos(cue) {\n if (typeof cue.line === \"number\" &&\n (cue.snapToLines || (cue.line >= 0 && cue.line <= 100))) {\n return cue.line;\n }\n if (!cue.track || !cue.track.textTrackList ||\n !cue.track.textTrackList.mediaElement) {\n return -1;\n }\n var track = cue.track,\n trackList = track.textTrackList,\n count = 0;\n for (var i = 0; i < trackList.length && trackList[i] !== track; i++) {\n if (trackList[i].mode === \"showing\") {\n count++;\n }\n }\n return ++count * -1;\n}\n\nfunction StyleBox() {\n}\n\n// Apply styles to a div. If there is no div passed then it defaults to the\n// div on 'this'.\nStyleBox.prototype.applyStyles = function(styles, div) {\n div = div || this.div;\n for (var prop in styles) {\n if (styles.hasOwnProperty(prop)) {\n div.style[prop] = styles[prop];\n }\n }\n};\n\nStyleBox.prototype.formatStyle = function(val, unit) {\n return val === 0 ? 0 : val + unit;\n};\n\n// Constructs the computed display state of the cue (a div). Places the div\n// into the overlay which should be a block level element (usually a div).\nfunction CueStyleBox(window, cue, styleOptions) {\n StyleBox.call(this);\n this.cue = cue;\n\n // Parse our cue's text into a DOM tree rooted at 'cueDiv'. This div will\n // have inline positioning and will function as the cue background box.\n this.cueDiv = parseContent(window, cue.text);\n var styles = {\n color: \"rgba(255, 255, 255, 1)\",\n backgroundColor: \"rgba(0, 0, 0, 0.8)\",\n position: \"relative\",\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n display: \"inline\",\n writingMode: cue.vertical === \"\" ? \"horizontal-tb\"\n : cue.vertical === \"lr\" ? \"vertical-lr\"\n : \"vertical-rl\",\n unicodeBidi: \"plaintext\"\n };\n\n this.applyStyles(styles, this.cueDiv);\n\n // Create an absolutely positioned div that will be used to position the cue\n // div. Note, all WebVTT cue-setting alignments are equivalent to the CSS\n // mirrors of them except middle instead of center on Safari.\n this.div = window.document.createElement(\"div\");\n styles = {\n direction: determineBidi(this.cueDiv),\n writingMode: cue.vertical === \"\" ? \"horizontal-tb\"\n : cue.vertical === \"lr\" ? \"vertical-lr\"\n : \"vertical-rl\",\n unicodeBidi: \"plaintext\",\n textAlign: cue.align === \"middle\" ? \"center\" : cue.align,\n font: styleOptions.font,\n whiteSpace: \"pre-line\",\n position: \"absolute\"\n };\n\n this.applyStyles(styles);\n this.div.appendChild(this.cueDiv);\n\n // Calculate the distance from the reference edge of the viewport to the text\n // position of the cue box. The reference edge will be resolved later when\n // the box orientation styles are applied.\n var textPos = 0;\n switch (cue.positionAlign) {\n case \"start\":\n case \"line-left\":\n textPos = cue.position;\n break;\n case \"center\":\n textPos = cue.position - (cue.size / 2);\n break;\n case \"end\":\n case \"line-right\":\n textPos = cue.position - cue.size;\n break;\n }\n\n // Horizontal box orientation; textPos is the distance from the left edge of the\n // area to the left edge of the box and cue.size is the distance extending to\n // the right from there.\n if (cue.vertical === \"\") {\n this.applyStyles({\n left: this.formatStyle(textPos, \"%\"),\n width: this.formatStyle(cue.size, \"%\")\n });\n // Vertical box orientation; textPos is the distance from the top edge of the\n // area to the top edge of the box and cue.size is the height extending\n // downwards from there.\n } else {\n this.applyStyles({\n top: this.formatStyle(textPos, \"%\"),\n height: this.formatStyle(cue.size, \"%\")\n });\n }\n\n this.move = function(box) {\n this.applyStyles({\n top: this.formatStyle(box.top, \"px\"),\n bottom: this.formatStyle(box.bottom, \"px\"),\n left: this.formatStyle(box.left, \"px\"),\n right: this.formatStyle(box.right, \"px\"),\n height: this.formatStyle(box.height, \"px\"),\n width: this.formatStyle(box.width, \"px\")\n });\n };\n}\nCueStyleBox.prototype = _objCreate(StyleBox.prototype);\nCueStyleBox.prototype.constructor = CueStyleBox;\n\n// Represents the co-ordinates of an Element in a way that we can easily\n// compute things with such as if it overlaps or intersects with another Element.\n// Can initialize it with either a StyleBox or another BoxPosition.\nfunction BoxPosition(obj) {\n // Either a BoxPosition was passed in and we need to copy it, or a StyleBox\n // was passed in and we need to copy the results of 'getBoundingClientRect'\n // as the object returned is readonly. All co-ordinate values are in reference\n // to the viewport origin (top left).\n var lh, height, width, top;\n if (obj.div) {\n height = obj.div.offsetHeight;\n width = obj.div.offsetWidth;\n top = obj.div.offsetTop;\n\n var rects = (rects = obj.div.childNodes) && (rects = rects[0]) &&\n rects.getClientRects && rects.getClientRects();\n obj = obj.div.getBoundingClientRect();\n // In certain cases the outter div will be slightly larger then the sum of\n // the inner div's lines. This could be due to bold text, etc, on some platforms.\n // In this case we should get the average line height and use that. This will\n // result in the desired behaviour.\n lh = rects ? Math.max((rects[0] && rects[0].height) || 0, obj.height / rects.length)\n : 0;\n\n }\n this.left = obj.left;\n this.right = obj.right;\n this.top = obj.top || top;\n this.height = obj.height || height;\n this.bottom = obj.bottom || (top + (obj.height || height));\n this.width = obj.width || width;\n this.lineHeight = lh !== undefined ? lh : obj.lineHeight;\n}\n\n// Move the box along a particular axis. Optionally pass in an amount to move\n// the box. If no amount is passed then the default is the line height of the\n// box.\nBoxPosition.prototype.move = function(axis, toMove) {\n toMove = toMove !== undefined ? toMove : this.lineHeight;\n switch (axis) {\n case \"+x\":\n this.left += toMove;\n this.right += toMove;\n break;\n case \"-x\":\n this.left -= toMove;\n this.right -= toMove;\n break;\n case \"+y\":\n this.top += toMove;\n this.bottom += toMove;\n break;\n case \"-y\":\n this.top -= toMove;\n this.bottom -= toMove;\n break;\n }\n};\n\n// Check if this box overlaps another box, b2.\nBoxPosition.prototype.overlaps = function(b2) {\n return this.left < b2.right &&\n this.right > b2.left &&\n this.top < b2.bottom &&\n this.bottom > b2.top;\n};\n\n// Check if this box overlaps any other boxes in boxes.\nBoxPosition.prototype.overlapsAny = function(boxes) {\n for (var i = 0; i < boxes.length; i++) {\n if (this.overlaps(boxes[i])) {\n return true;\n }\n }\n return false;\n};\n\n// Check if this box is within another box.\nBoxPosition.prototype.within = function(container) {\n return this.top >= container.top &&\n this.bottom <= container.bottom &&\n this.left >= container.left &&\n this.right <= container.right;\n};\n\n// Check if this box is entirely within the container or it is overlapping\n// on the edge opposite of the axis direction passed. For example, if \"+x\" is\n// passed and the box is overlapping on the left edge of the container, then\n// return true.\nBoxPosition.prototype.overlapsOppositeAxis = function(container, axis) {\n switch (axis) {\n case \"+x\":\n return this.left < container.left;\n case \"-x\":\n return this.right > container.right;\n case \"+y\":\n return this.top < container.top;\n case \"-y\":\n return this.bottom > container.bottom;\n }\n};\n\n// Find the percentage of the area that this box is overlapping with another\n// box.\nBoxPosition.prototype.intersectPercentage = function(b2) {\n var x = Math.max(0, Math.min(this.right, b2.right) - Math.max(this.left, b2.left)),\n y = Math.max(0, Math.min(this.bottom, b2.bottom) - Math.max(this.top, b2.top)),\n intersectArea = x * y;\n return intersectArea / (this.height * this.width);\n};\n\n// Convert the positions from this box to CSS compatible positions using\n// the reference container's positions. This has to be done because this\n// box's positions are in reference to the viewport origin, whereas, CSS\n// values are in referecne to their respective edges.\nBoxPosition.prototype.toCSSCompatValues = function(reference) {\n return {\n top: this.top - reference.top,\n bottom: reference.bottom - this.bottom,\n left: this.left - reference.left,\n right: reference.right - this.right,\n height: this.height,\n width: this.width\n };\n};\n\n// Get an object that represents the box's position without anything extra.\n// Can pass a StyleBox, HTMLElement, or another BoxPositon.\nBoxPosition.getSimpleBoxPosition = function(obj) {\n var height = obj.div ? obj.div.offsetHeight : obj.tagName ? obj.offsetHeight : 0;\n var width = obj.div ? obj.div.offsetWidth : obj.tagName ? obj.offsetWidth : 0;\n var top = obj.div ? obj.div.offsetTop : obj.tagName ? obj.offsetTop : 0;\n\n obj = obj.div ? obj.div.getBoundingClientRect() :\n obj.tagName ? obj.getBoundingClientRect() : obj;\n var ret = {\n left: obj.left,\n right: obj.right,\n top: obj.top || top,\n height: obj.height || height,\n bottom: obj.bottom || (top + (obj.height || height)),\n width: obj.width || width\n };\n return ret;\n};\n\n// Move a StyleBox to its specified, or next best, position. The containerBox\n// is the box that contains the StyleBox, such as a div. boxPositions are\n// a list of other boxes that the styleBox can't overlap with.\nfunction moveBoxToLinePosition(window, styleBox, containerBox, boxPositions) {\n\n // Find the best position for a cue box, b, on the video. The axis parameter\n // is a list of axis, the order of which, it will move the box along. For example:\n // Passing [\"+x\", \"-x\"] will move the box first along the x axis in the positive\n // direction. If it doesn't find a good position for it there it will then move\n // it along the x axis in the negative direction.\n function findBestPosition(b, axis) {\n var bestPosition,\n specifiedPosition = new BoxPosition(b),\n percentage = 1; // Highest possible so the first thing we get is better.\n\n for (var i = 0; i < axis.length; i++) {\n while (b.overlapsOppositeAxis(containerBox, axis[i]) ||\n (b.within(containerBox) && b.overlapsAny(boxPositions))) {\n b.move(axis[i]);\n }\n // We found a spot where we aren't overlapping anything. This is our\n // best position.\n if (b.within(containerBox)) {\n return b;\n }\n var p = b.intersectPercentage(containerBox);\n // If we're outside the container box less then we were on our last try\n // then remember this position as the best position.\n if (percentage > p) {\n bestPosition = new BoxPosition(b);\n percentage = p;\n }\n // Reset the box position to the specified position.\n b = new BoxPosition(specifiedPosition);\n }\n return bestPosition || specifiedPosition;\n }\n\n var boxPosition = new BoxPosition(styleBox),\n cue = styleBox.cue,\n linePos = computeLinePos(cue),\n axis = [];\n\n // If we have a line number to align the cue to.\n if (cue.snapToLines) {\n var size;\n switch (cue.vertical) {\n case \"\":\n axis = [ \"+y\", \"-y\" ];\n size = \"height\";\n break;\n case \"rl\":\n axis = [ \"+x\", \"-x\" ];\n size = \"width\";\n break;\n case \"lr\":\n axis = [ \"-x\", \"+x\" ];\n size = \"width\";\n break;\n }\n\n var step = boxPosition.lineHeight,\n position = step * Math.round(linePos),\n maxPosition = containerBox[size] + step,\n initialAxis = axis[0];\n\n // If the specified intial position is greater then the max position then\n // clamp the box to the amount of steps it would take for the box to\n // reach the max position.\n if (Math.abs(position) > maxPosition) {\n position = position < 0 ? -1 : 1;\n position *= Math.ceil(maxPosition / step) * step;\n }\n\n // If computed line position returns negative then line numbers are\n // relative to the bottom of the video instead of the top. Therefore, we\n // need to increase our initial position by the length or width of the\n // video, depending on the writing direction, and reverse our axis directions.\n if (linePos < 0) {\n position += cue.vertical === \"\" ? containerBox.height : containerBox.width;\n axis = axis.reverse();\n }\n\n // Move the box to the specified position. This may not be its best\n // position.\n boxPosition.move(initialAxis, position);\n\n } else {\n // If we have a percentage line value for the cue.\n var calculatedPercentage = (boxPosition.lineHeight / containerBox.height) * 100;\n\n switch (cue.lineAlign) {\n case \"center\":\n linePos -= (calculatedPercentage / 2);\n break;\n case \"end\":\n linePos -= calculatedPercentage;\n break;\n }\n\n // Apply initial line position to the cue box.\n switch (cue.vertical) {\n case \"\":\n styleBox.applyStyles({\n top: styleBox.formatStyle(linePos, \"%\")\n });\n break;\n case \"rl\":\n styleBox.applyStyles({\n left: styleBox.formatStyle(linePos, \"%\")\n });\n break;\n case \"lr\":\n styleBox.applyStyles({\n right: styleBox.formatStyle(linePos, \"%\")\n });\n break;\n }\n\n axis = [ \"+y\", \"-x\", \"+x\", \"-y\" ];\n\n // Get the box position again after we've applied the specified positioning\n // to it.\n boxPosition = new BoxPosition(styleBox);\n }\n\n var bestPosition = findBestPosition(boxPosition, axis);\n styleBox.move(bestPosition.toCSSCompatValues(containerBox));\n}\n\nfunction WebVTT() {\n // Nothing\n}\n\n// Helper to allow strings to be decoded instead of the default binary utf8 data.\nWebVTT.StringDecoder = function() {\n return {\n decode: function(data) {\n if (!data) {\n return \"\";\n }\n if (typeof data !== \"string\") {\n throw new Error(\"Error - expected string data.\");\n }\n return decodeURIComponent(encodeURIComponent(data));\n }\n };\n};\n\nWebVTT.convertCueToDOMTree = function(window, cuetext) {\n if (!window || !cuetext) {\n return null;\n }\n return parseContent(window, cuetext);\n};\n\nvar FONT_SIZE_PERCENT = 0.05;\nvar FONT_STYLE = \"sans-serif\";\nvar CUE_BACKGROUND_PADDING = \"1.5%\";\n\n// Runs the processing model over the cues and regions passed to it.\n// @param overlay A block level element (usually a div) that the computed cues\n// and regions will be placed into.\nWebVTT.processCues = function(window, cues, overlay) {\n if (!window || !cues || !overlay) {\n return null;\n }\n\n // Remove all previous children.\n while (overlay.firstChild) {\n overlay.removeChild(overlay.firstChild);\n }\n\n var paddedOverlay = window.document.createElement(\"div\");\n paddedOverlay.style.position = \"absolute\";\n paddedOverlay.style.left = \"0\";\n paddedOverlay.style.right = \"0\";\n paddedOverlay.style.top = \"0\";\n paddedOverlay.style.bottom = \"0\";\n paddedOverlay.style.margin = CUE_BACKGROUND_PADDING;\n overlay.appendChild(paddedOverlay);\n\n // Determine if we need to compute the display states of the cues. This could\n // be the case if a cue's state has been changed since the last computation or\n // if it has not been computed yet.\n function shouldCompute(cues) {\n for (var i = 0; i < cues.length; i++) {\n if (cues[i].hasBeenReset || !cues[i].displayState) {\n return true;\n }\n }\n return false;\n }\n\n // We don't need to recompute the cues' display states. Just reuse them.\n if (!shouldCompute(cues)) {\n for (var i = 0; i < cues.length; i++) {\n paddedOverlay.appendChild(cues[i].displayState);\n }\n return;\n }\n\n var boxPositions = [],\n containerBox = BoxPosition.getSimpleBoxPosition(paddedOverlay),\n fontSize = Math.round(containerBox.height * FONT_SIZE_PERCENT * 100) / 100;\n var styleOptions = {\n font: fontSize + \"px \" + FONT_STYLE\n };\n\n (function() {\n var styleBox, cue;\n\n for (var i = 0; i < cues.length; i++) {\n cue = cues[i];\n\n // Compute the intial position and styles of the cue div.\n styleBox = new CueStyleBox(window, cue, styleOptions);\n paddedOverlay.appendChild(styleBox.div);\n\n // Move the cue div to it's correct line position.\n moveBoxToLinePosition(window, styleBox, containerBox, boxPositions);\n\n // Remember the computed div so that we don't have to recompute it later\n // if we don't have too.\n cue.displayState = styleBox.div;\n\n boxPositions.push(BoxPosition.getSimpleBoxPosition(styleBox));\n }\n })();\n};\n\nWebVTT.Parser = function(window, vttjs, decoder) {\n if (!decoder) {\n decoder = vttjs;\n vttjs = {};\n }\n if (!vttjs) {\n vttjs = {};\n }\n\n this.window = window;\n this.vttjs = vttjs;\n this.state = \"INITIAL\";\n this.buffer = \"\";\n this.decoder = decoder || new TextDecoder(\"utf8\");\n this.regionList = [];\n};\n\nWebVTT.Parser.prototype = {\n // If the error is a ParsingError then report it to the consumer if\n // possible. If it's not a ParsingError then throw it like normal.\n reportOrThrowError: function(e) {\n if (e instanceof ParsingError) {\n this.onparsingerror && this.onparsingerror(e);\n } else {\n throw e;\n }\n },\n parse: function (data) {\n var self = this;\n\n // If there is no data then we won't decode it, but will just try to parse\n // whatever is in buffer already. This may occur in circumstances, for\n // example when flush() is called.\n if (data) {\n // Try to decode the data that we received.\n self.buffer += self.decoder.decode(data, {stream: true});\n }\n\n function collectNextLine() {\n var buffer = self.buffer;\n var pos = 0;\n while (pos < buffer.length && buffer[pos] !== '\\r' && buffer[pos] !== '\\n') {\n ++pos;\n }\n var line = buffer.substr(0, pos);\n // Advance the buffer early in case we fail below.\n if (buffer[pos] === '\\r') {\n ++pos;\n }\n if (buffer[pos] === '\\n') {\n ++pos;\n }\n self.buffer = buffer.substr(pos);\n return line;\n }\n\n // 3.4 WebVTT region and WebVTT region settings syntax\n function parseRegion(input) {\n var settings = new Settings();\n\n parseOptions(input, function (k, v) {\n switch (k) {\n case \"id\":\n settings.set(k, v);\n break;\n case \"width\":\n settings.percent(k, v);\n break;\n case \"lines\":\n settings.integer(k, v);\n break;\n case \"regionanchor\":\n case \"viewportanchor\":\n var xy = v.split(',');\n if (xy.length !== 2) {\n break;\n }\n // We have to make sure both x and y parse, so use a temporary\n // settings object here.\n var anchor = new Settings();\n anchor.percent(\"x\", xy[0]);\n anchor.percent(\"y\", xy[1]);\n if (!anchor.has(\"x\") || !anchor.has(\"y\")) {\n break;\n }\n settings.set(k + \"X\", anchor.get(\"x\"));\n settings.set(k + \"Y\", anchor.get(\"y\"));\n break;\n case \"scroll\":\n settings.alt(k, v, [\"up\"]);\n break;\n }\n }, /=/, /\\s/);\n\n // Create the region, using default values for any values that were not\n // specified.\n if (settings.has(\"id\")) {\n var region = new (self.vttjs.VTTRegion || self.window.VTTRegion)();\n region.width = settings.get(\"width\", 100);\n region.lines = settings.get(\"lines\", 3);\n region.regionAnchorX = settings.get(\"regionanchorX\", 0);\n region.regionAnchorY = settings.get(\"regionanchorY\", 100);\n region.viewportAnchorX = settings.get(\"viewportanchorX\", 0);\n region.viewportAnchorY = settings.get(\"viewportanchorY\", 100);\n region.scroll = settings.get(\"scroll\", \"\");\n // Register the region.\n self.onregion && self.onregion(region);\n // Remember the VTTRegion for later in case we parse any VTTCues that\n // reference it.\n self.regionList.push({\n id: settings.get(\"id\"),\n region: region\n });\n }\n }\n\n // draft-pantos-http-live-streaming-20\n // https://tools.ietf.org/html/draft-pantos-http-live-streaming-20#section-3.5\n // 3.5 WebVTT\n function parseTimestampMap(input) {\n var settings = new Settings();\n\n parseOptions(input, function(k, v) {\n switch(k) {\n case \"MPEGT\":\n settings.integer(k + 'S', v);\n break;\n case \"LOCA\":\n settings.set(k + 'L', parseTimeStamp(v));\n break;\n }\n }, /[^\\d]:/, /,/);\n\n self.ontimestampmap && self.ontimestampmap({\n \"MPEGTS\": settings.get(\"MPEGTS\"),\n \"LOCAL\": settings.get(\"LOCAL\")\n });\n }\n\n // 3.2 WebVTT metadata header syntax\n function parseHeader(input) {\n if (input.match(/X-TIMESTAMP-MAP/)) {\n // This line contains HLS X-TIMESTAMP-MAP metadata\n parseOptions(input, function(k, v) {\n switch(k) {\n case \"X-TIMESTAMP-MAP\":\n parseTimestampMap(v);\n break;\n }\n }, /=/);\n } else {\n parseOptions(input, function (k, v) {\n switch (k) {\n case \"Region\":\n // 3.3 WebVTT region metadata header syntax\n parseRegion(v);\n break;\n }\n }, /:/);\n }\n\n }\n\n // 5.1 WebVTT file parsing.\n try {\n var line;\n if (self.state === \"INITIAL\") {\n // We can't start parsing until we have the first line.\n if (!/\\r\\n|\\n/.test(self.buffer)) {\n return this;\n }\n\n line = collectNextLine();\n\n var m = line.match(/^WEBVTT([ \\t].*)?$/);\n if (!m || !m[0]) {\n throw new ParsingError(ParsingError.Errors.BadSignature);\n }\n\n self.state = \"HEADER\";\n }\n\n var alreadyCollectedLine = false;\n while (self.buffer) {\n // We can't parse a line until we have the full line.\n if (!/\\r\\n|\\n/.test(self.buffer)) {\n return this;\n }\n\n if (!alreadyCollectedLine) {\n line = collectNextLine();\n } else {\n alreadyCollectedLine = false;\n }\n\n switch (self.state) {\n case \"HEADER\":\n // 13-18 - Allow a header (metadata) under the WEBVTT line.\n if (/:/.test(line)) {\n parseHeader(line);\n } else if (!line) {\n // An empty line terminates the header and starts the body (cues).\n self.state = \"ID\";\n }\n continue;\n case \"NOTE\":\n // Ignore NOTE blocks.\n if (!line) {\n self.state = \"ID\";\n }\n continue;\n case \"ID\":\n // Check for the start of NOTE blocks.\n if (/^NOTE($|[ \\t])/.test(line)) {\n self.state = \"NOTE\";\n break;\n }\n // 19-29 - Allow any number of line terminators, then initialize new cue values.\n if (!line) {\n continue;\n }\n self.cue = new (self.vttjs.VTTCue || self.window.VTTCue)(0, 0, \"\");\n // Safari still uses the old middle value and won't accept center\n try {\n self.cue.align = \"center\";\n } catch (e) {\n self.cue.align = \"middle\";\n }\n self.state = \"CUE\";\n // 30-39 - Check if self line contains an optional identifier or timing data.\n if (line.indexOf(\"-->\") === -1) {\n self.cue.id = line;\n continue;\n }\n // Process line as start of a cue.\n /*falls through*/\n case \"CUE\":\n // 40 - Collect cue timings and settings.\n try {\n parseCue(line, self.cue, self.regionList);\n } catch (e) {\n self.reportOrThrowError(e);\n // In case of an error ignore rest of the cue.\n self.cue = null;\n self.state = \"BADCUE\";\n continue;\n }\n self.state = \"CUETEXT\";\n continue;\n case \"CUETEXT\":\n var hasSubstring = line.indexOf(\"-->\") !== -1;\n // 34 - If we have an empty line then report the cue.\n // 35 - If we have the special substring '-->' then report the cue,\n // but do not collect the line as we need to process the current\n // one as a new cue.\n if (!line || hasSubstring && (alreadyCollectedLine = true)) {\n // We are done parsing self cue.\n self.oncue && self.oncue(self.cue);\n self.cue = null;\n self.state = \"ID\";\n continue;\n }\n if (self.cue.text) {\n self.cue.text += \"\\n\";\n }\n self.cue.text += line.replace(/\\u2028/g, '\\n').replace(/u2029/g, '\\n');\n continue;\n case \"BADCUE\": // BADCUE\n // 54-62 - Collect and discard the remaining cue.\n if (!line) {\n self.state = \"ID\";\n }\n continue;\n }\n }\n } catch (e) {\n self.reportOrThrowError(e);\n\n // If we are currently parsing a cue, report what we have.\n if (self.state === \"CUETEXT\" && self.cue && self.oncue) {\n self.oncue(self.cue);\n }\n self.cue = null;\n // Enter BADWEBVTT state if header was not parsed correctly otherwise\n // another exception occurred so enter BADCUE state.\n self.state = self.state === \"INITIAL\" ? \"BADWEBVTT\" : \"BADCUE\";\n }\n return this;\n },\n flush: function () {\n var self = this;\n try {\n // Finish decoding the stream.\n self.buffer += self.decoder.decode();\n // Synthesize the end of the current cue or region.\n if (self.cue || self.state === \"HEADER\") {\n self.buffer += \"\\n\\n\";\n self.parse();\n }\n // If we've flushed, parsed, and we're still on the INITIAL state then\n // that means we don't have enough of the stream to parse the first\n // line.\n if (self.state === \"INITIAL\") {\n throw new ParsingError(ParsingError.Errors.BadSignature);\n }\n } catch(e) {\n self.reportOrThrowError(e);\n }\n self.onflush && self.onflush();\n return this;\n }\n};\n\nmodule.exports = WebVTT;\n","// see https://tools.ietf.org/html/rfc1808\n\n(function (root) {\n var URL_REGEX =\n /^(?=((?:[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\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 || {};\n // remove any remaining space and CRLF\n baseURL = baseURL.trim();\n relativeURL = relativeURL.trim();\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 var basePartsForNormalise = URLToolkit.parseURL(baseURL);\n if (!basePartsForNormalise) {\n throw new Error('Error trying to parse base URL.');\n }\n basePartsForNormalise.path = URLToolkit.normalizePath(\n basePartsForNormalise.path\n );\n return URLToolkit.buildURLFromParts(basePartsForNormalise);\n }\n var relativeParts = URLToolkit.parseURL(relativeURL);\n if (!relativeParts) {\n throw new Error('Error trying to parse relative URL.');\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 relativeParts.path = URLToolkit.normalizePath(relativeParts.path);\n return URLToolkit.buildURLFromParts(relativeParts);\n }\n var baseParts = URLToolkit.parseURL(baseURL);\n if (!baseParts) {\n throw new Error('Error trying to parse base URL.');\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 if (baseParts.netLoc && !baseParts.path) {\n baseParts.path = '/';\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 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;\n // 4) If the embedded URL path is preceded by a slash \"/\", the\n // path is not relative and we skip to Step 7.\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;\n // 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 if (!relativeParts.params) {\n builtParts.params = baseParts.params;\n // 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 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 =\n baseURLPath.substring(0, baseURLPath.lastIndexOf('/') + 1) +\n relativeParts.path;\n builtParts.path = URLToolkit.normalizePath(newPath);\n }\n }\n }\n if (builtParts.path === null) {\n builtParts.path = opts.alwaysNormalize\n ? URLToolkit.normalizePath(relativeParts.path)\n : relativeParts.path;\n }\n return URLToolkit.buildURLFromParts(builtParts);\n },\n parseURL: function (url) {\n var parts = URL_REGEX.exec(url);\n if (!parts) {\n return null;\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, '');\n // 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 while (\n path.length !== (path = path.replace(SLASH_DOT_DOT_REGEX, '')).length\n ) {}\n return path.split('').reverse().join('');\n },\n buildURLFromParts: function (parts) {\n return (\n parts.scheme +\n parts.netLoc +\n parts.path +\n parts.params +\n parts.query +\n parts.fragment\n );\n },\n };\n\n if (typeof exports === 'object' && typeof module === 'object')\n module.exports = URLToolkit;\n else if (typeof define === 'function' && define.amd)\n define([], function () {\n return URLToolkit;\n });\n else if (typeof exports === 'object') exports['URLToolkit'] = URLToolkit;\n else root['URLToolkit'] = URLToolkit;\n})(this);\n","/**\n * @file stream.js\n */\n\n/**\n * A lightweight readable stream implemention that handles event dispatching.\n *\n * @class Stream\n */\nvar Stream = /*#__PURE__*/function () {\n function Stream() {\n this.listeners = {};\n }\n /**\n * Add a listener for a specified event type.\n *\n * @param {string} type the event name\n * @param {Function} listener the callback to be invoked when an event of\n * the specified type occurs\n */\n\n\n var _proto = Stream.prototype;\n\n _proto.on = function on(type, listener) {\n if (!this.listeners[type]) {\n this.listeners[type] = [];\n }\n\n this.listeners[type].push(listener);\n }\n /**\n * Remove a listener for a specified event type.\n *\n * @param {string} type the event name\n * @param {Function} listener a function previously registered for this\n * type of event through `on`\n * @return {boolean} if we could turn it off or not\n */\n ;\n\n _proto.off = function off(type, listener) {\n if (!this.listeners[type]) {\n return false;\n }\n\n var index = this.listeners[type].indexOf(listener); // TODO: which is better?\n // In Video.js we slice listener functions\n // on trigger so that it does not mess up the order\n // while we loop through.\n //\n // Here we slice on off so that the loop in trigger\n // can continue using it's old reference to loop without\n // messing up the order.\n\n this.listeners[type] = this.listeners[type].slice(0);\n this.listeners[type].splice(index, 1);\n return index > -1;\n }\n /**\n * Trigger an event of the specified type on this stream. Any additional\n * arguments to this function are passed as parameters to event listeners.\n *\n * @param {string} type the event name\n */\n ;\n\n _proto.trigger = function trigger(type) {\n var callbacks = this.listeners[type];\n\n if (!callbacks) {\n return;\n } // Slicing the arguments on every invocation of this method\n // can add a significant amount of overhead. Avoid the\n // intermediate object creation for the common case of a\n // single callback argument\n\n\n if (arguments.length === 2) {\n var length = callbacks.length;\n\n for (var i = 0; i < length; ++i) {\n callbacks[i].call(this, arguments[1]);\n }\n } else {\n var args = Array.prototype.slice.call(arguments, 1);\n var _length = callbacks.length;\n\n for (var _i = 0; _i < _length; ++_i) {\n callbacks[_i].apply(this, args);\n }\n }\n }\n /**\n * Destroys the stream and cleans up.\n */\n ;\n\n _proto.dispose = function dispose() {\n this.listeners = {};\n }\n /**\n * Forwards all `data` events on this stream to the destination stream. The\n * destination stream should provide a method `push` to receive the data\n * events as they arrive.\n *\n * @param {Stream} destination the stream that will receive all `data` events\n * @see http://nodejs.org/api/stream.html#stream_readable_pipe_destination_options\n */\n ;\n\n _proto.pipe = function pipe(destination) {\n this.on('data', function (data) {\n destination.push(data);\n });\n };\n\n return Stream;\n}();\n\nexport { Stream as default };","/*! @name m3u8-parser @version 4.8.0 @license Apache-2.0 */\nimport _inheritsLoose from '@babel/runtime/helpers/inheritsLoose';\nimport Stream from '@videojs/vhs-utils/es/stream.js';\nimport _extends from '@babel/runtime/helpers/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/assertThisInitialized';\nimport decodeB64ToUint8Array from '@videojs/vhs-utils/es/decode-b64-to-uint8-array.js';\n\n/**\n * A stream that buffers string input and generates a `data` event for each\n * line.\n *\n * @class LineStream\n * @extends Stream\n */\n\nvar LineStream = /*#__PURE__*/function (_Stream) {\n _inheritsLoose(LineStream, _Stream);\n\n function LineStream() {\n var _this;\n\n _this = _Stream.call(this) || this;\n _this.buffer = '';\n return _this;\n }\n /**\n * Add new data to be parsed.\n *\n * @param {string} data the text to process\n */\n\n\n var _proto = LineStream.prototype;\n\n _proto.push = function push(data) {\n var nextNewline;\n this.buffer += data;\n nextNewline = this.buffer.indexOf('\\n');\n\n for (; nextNewline > -1; nextNewline = this.buffer.indexOf('\\n')) {\n this.trigger('data', this.buffer.substring(0, nextNewline));\n this.buffer = this.buffer.substring(nextNewline + 1);\n }\n };\n\n return LineStream;\n}(Stream);\n\nvar TAB = String.fromCharCode(0x09);\n\nvar parseByterange = function parseByterange(byterangeString) {\n // optionally match and capture 0+ digits before `@`\n // optionally match and capture 0+ digits after `@`\n var match = /([0-9.]*)?@?([0-9.]*)?/.exec(byterangeString || '');\n var result = {};\n\n if (match[1]) {\n result.length = parseInt(match[1], 10);\n }\n\n if (match[2]) {\n result.offset = parseInt(match[2], 10);\n }\n\n return result;\n};\n/**\n * \"forgiving\" attribute list psuedo-grammar:\n * attributes -> keyvalue (',' keyvalue)*\n * keyvalue -> key '=' value\n * key -> [^=]*\n * value -> '\"' [^\"]* '\"' | [^,]*\n */\n\n\nvar attributeSeparator = function attributeSeparator() {\n var key = '[^=]*';\n var value = '\"[^\"]*\"|[^,]*';\n var keyvalue = '(?:' + key + ')=(?:' + value + ')';\n return new RegExp('(?:^|,)(' + keyvalue + ')');\n};\n/**\n * Parse attributes from a line given the separator\n *\n * @param {string} attributes the attribute line to parse\n */\n\n\nvar parseAttributes = function parseAttributes(attributes) {\n // split the string using attributes as the separator\n var attrs = attributes.split(attributeSeparator());\n var result = {};\n var i = attrs.length;\n var attr;\n\n while (i--) {\n // filter out unmatched portions of the string\n if (attrs[i] === '') {\n continue;\n } // split the key and value\n\n\n attr = /([^=]*)=(.*)/.exec(attrs[i]).slice(1); // trim whitespace and remove optional quotes around the value\n\n attr[0] = attr[0].replace(/^\\s+|\\s+$/g, '');\n attr[1] = attr[1].replace(/^\\s+|\\s+$/g, '');\n attr[1] = attr[1].replace(/^['\"](.*)['\"]$/g, '$1');\n result[attr[0]] = attr[1];\n }\n\n return result;\n};\n/**\n * A line-level M3U8 parser event stream. It expects to receive input one\n * line at a time and performs a context-free parse of its contents. A stream\n * interpretation of a manifest can be useful if the manifest is expected to\n * be too large to fit comfortably into memory or the entirety of the input\n * is not immediately available. Otherwise, it's probably much easier to work\n * with a regular `Parser` object.\n *\n * Produces `data` events with an object that captures the parser's\n * interpretation of the input. That object has a property `tag` that is one\n * of `uri`, `comment`, or `tag`. URIs only have a single additional\n * property, `line`, which captures the entirety of the input without\n * interpretation. Comments similarly have a single additional property\n * `text` which is the input without the leading `#`.\n *\n * Tags always have a property `tagType` which is the lower-cased version of\n * the M3U8 directive without the `#EXT` or `#EXT-X-` prefix. For instance,\n * `#EXT-X-MEDIA-SEQUENCE` becomes `media-sequence` when parsed. Unrecognized\n * tags are given the tag type `unknown` and a single additional property\n * `data` with the remainder of the input.\n *\n * @class ParseStream\n * @extends Stream\n */\n\n\nvar ParseStream = /*#__PURE__*/function (_Stream) {\n _inheritsLoose(ParseStream, _Stream);\n\n function ParseStream() {\n var _this;\n\n _this = _Stream.call(this) || this;\n _this.customParsers = [];\n _this.tagMappers = [];\n return _this;\n }\n /**\n * Parses an additional line of input.\n *\n * @param {string} line a single line of an M3U8 file to parse\n */\n\n\n var _proto = ParseStream.prototype;\n\n _proto.push = function push(line) {\n var _this2 = this;\n\n var match;\n var event; // strip whitespace\n\n line = line.trim();\n\n if (line.length === 0) {\n // ignore empty lines\n return;\n } // URIs\n\n\n if (line[0] !== '#') {\n this.trigger('data', {\n type: 'uri',\n uri: line\n });\n return;\n } // map tags\n\n\n var newLines = this.tagMappers.reduce(function (acc, mapper) {\n var mappedLine = mapper(line); // skip if unchanged\n\n if (mappedLine === line) {\n return acc;\n }\n\n return acc.concat([mappedLine]);\n }, [line]);\n newLines.forEach(function (newLine) {\n for (var i = 0; i < _this2.customParsers.length; i++) {\n if (_this2.customParsers[i].call(_this2, newLine)) {\n return;\n }\n } // Comments\n\n\n if (newLine.indexOf('#EXT') !== 0) {\n _this2.trigger('data', {\n type: 'comment',\n text: newLine.slice(1)\n });\n\n return;\n } // strip off any carriage returns here so the regex matching\n // doesn't have to account for them.\n\n\n newLine = newLine.replace('\\r', ''); // Tags\n\n match = /^#EXTM3U/.exec(newLine);\n\n if (match) {\n _this2.trigger('data', {\n type: 'tag',\n tagType: 'm3u'\n });\n\n return;\n }\n\n match = /^#EXTINF:?([0-9\\.]*)?,?(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'inf'\n };\n\n if (match[1]) {\n event.duration = parseFloat(match[1]);\n }\n\n if (match[2]) {\n event.title = match[2];\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-TARGETDURATION:?([0-9.]*)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'targetduration'\n };\n\n if (match[1]) {\n event.duration = parseInt(match[1], 10);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-VERSION:?([0-9.]*)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'version'\n };\n\n if (match[1]) {\n event.version = parseInt(match[1], 10);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-MEDIA-SEQUENCE:?(\\-?[0-9.]*)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'media-sequence'\n };\n\n if (match[1]) {\n event.number = parseInt(match[1], 10);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-DISCONTINUITY-SEQUENCE:?(\\-?[0-9.]*)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'discontinuity-sequence'\n };\n\n if (match[1]) {\n event.number = parseInt(match[1], 10);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-PLAYLIST-TYPE:?(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'playlist-type'\n };\n\n if (match[1]) {\n event.playlistType = match[1];\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-BYTERANGE:?(.*)?$/.exec(newLine);\n\n if (match) {\n event = _extends(parseByterange(match[1]), {\n type: 'tag',\n tagType: 'byterange'\n });\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-ALLOW-CACHE:?(YES|NO)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'allow-cache'\n };\n\n if (match[1]) {\n event.allowed = !/NO/.test(match[1]);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-MAP:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'map'\n };\n\n if (match[1]) {\n var attributes = parseAttributes(match[1]);\n\n if (attributes.URI) {\n event.uri = attributes.URI;\n }\n\n if (attributes.BYTERANGE) {\n event.byterange = parseByterange(attributes.BYTERANGE);\n }\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-STREAM-INF:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'stream-inf'\n };\n\n if (match[1]) {\n event.attributes = parseAttributes(match[1]);\n\n if (event.attributes.RESOLUTION) {\n var split = event.attributes.RESOLUTION.split('x');\n var resolution = {};\n\n if (split[0]) {\n resolution.width = parseInt(split[0], 10);\n }\n\n if (split[1]) {\n resolution.height = parseInt(split[1], 10);\n }\n\n event.attributes.RESOLUTION = resolution;\n }\n\n if (event.attributes.BANDWIDTH) {\n event.attributes.BANDWIDTH = parseInt(event.attributes.BANDWIDTH, 10);\n }\n\n if (event.attributes['FRAME-RATE']) {\n event.attributes['FRAME-RATE'] = parseFloat(event.attributes['FRAME-RATE']);\n }\n\n if (event.attributes['PROGRAM-ID']) {\n event.attributes['PROGRAM-ID'] = parseInt(event.attributes['PROGRAM-ID'], 10);\n }\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-MEDIA:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'media'\n };\n\n if (match[1]) {\n event.attributes = parseAttributes(match[1]);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-ENDLIST/.exec(newLine);\n\n if (match) {\n _this2.trigger('data', {\n type: 'tag',\n tagType: 'endlist'\n });\n\n return;\n }\n\n match = /^#EXT-X-DISCONTINUITY/.exec(newLine);\n\n if (match) {\n _this2.trigger('data', {\n type: 'tag',\n tagType: 'discontinuity'\n });\n\n return;\n }\n\n match = /^#EXT-X-PROGRAM-DATE-TIME:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'program-date-time'\n };\n\n if (match[1]) {\n event.dateTimeString = match[1];\n event.dateTimeObject = new Date(match[1]);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-KEY:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'key'\n };\n\n if (match[1]) {\n event.attributes = parseAttributes(match[1]); // parse the IV string into a Uint32Array\n\n if (event.attributes.IV) {\n if (event.attributes.IV.substring(0, 2).toLowerCase() === '0x') {\n event.attributes.IV = event.attributes.IV.substring(2);\n }\n\n event.attributes.IV = event.attributes.IV.match(/.{8}/g);\n event.attributes.IV[0] = parseInt(event.attributes.IV[0], 16);\n event.attributes.IV[1] = parseInt(event.attributes.IV[1], 16);\n event.attributes.IV[2] = parseInt(event.attributes.IV[2], 16);\n event.attributes.IV[3] = parseInt(event.attributes.IV[3], 16);\n event.attributes.IV = new Uint32Array(event.attributes.IV);\n }\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-START:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'start'\n };\n\n if (match[1]) {\n event.attributes = parseAttributes(match[1]);\n event.attributes['TIME-OFFSET'] = parseFloat(event.attributes['TIME-OFFSET']);\n event.attributes.PRECISE = /YES/.test(event.attributes.PRECISE);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-CUE-OUT-CONT:?(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'cue-out-cont'\n };\n\n if (match[1]) {\n event.data = match[1];\n } else {\n event.data = '';\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-CUE-OUT:?(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'cue-out'\n };\n\n if (match[1]) {\n event.data = match[1];\n } else {\n event.data = '';\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-CUE-IN:?(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'cue-in'\n };\n\n if (match[1]) {\n event.data = match[1];\n } else {\n event.data = '';\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-SKIP:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'skip'\n };\n event.attributes = parseAttributes(match[1]);\n\n if (event.attributes.hasOwnProperty('SKIPPED-SEGMENTS')) {\n event.attributes['SKIPPED-SEGMENTS'] = parseInt(event.attributes['SKIPPED-SEGMENTS'], 10);\n }\n\n if (event.attributes.hasOwnProperty('RECENTLY-REMOVED-DATERANGES')) {\n event.attributes['RECENTLY-REMOVED-DATERANGES'] = event.attributes['RECENTLY-REMOVED-DATERANGES'].split(TAB);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-PART:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'part'\n };\n event.attributes = parseAttributes(match[1]);\n ['DURATION'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = parseFloat(event.attributes[key]);\n }\n });\n ['INDEPENDENT', 'GAP'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = /YES/.test(event.attributes[key]);\n }\n });\n\n if (event.attributes.hasOwnProperty('BYTERANGE')) {\n event.attributes.byterange = parseByterange(event.attributes.BYTERANGE);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-SERVER-CONTROL:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'server-control'\n };\n event.attributes = parseAttributes(match[1]);\n ['CAN-SKIP-UNTIL', 'PART-HOLD-BACK', 'HOLD-BACK'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = parseFloat(event.attributes[key]);\n }\n });\n ['CAN-SKIP-DATERANGES', 'CAN-BLOCK-RELOAD'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = /YES/.test(event.attributes[key]);\n }\n });\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-PART-INF:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'part-inf'\n };\n event.attributes = parseAttributes(match[1]);\n ['PART-TARGET'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = parseFloat(event.attributes[key]);\n }\n });\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-PRELOAD-HINT:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'preload-hint'\n };\n event.attributes = parseAttributes(match[1]);\n ['BYTERANGE-START', 'BYTERANGE-LENGTH'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = parseInt(event.attributes[key], 10);\n var subkey = key === 'BYTERANGE-LENGTH' ? 'length' : 'offset';\n event.attributes.byterange = event.attributes.byterange || {};\n event.attributes.byterange[subkey] = event.attributes[key]; // only keep the parsed byterange object.\n\n delete event.attributes[key];\n }\n });\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-RENDITION-REPORT:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'rendition-report'\n };\n event.attributes = parseAttributes(match[1]);\n ['LAST-MSN', 'LAST-PART'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = parseInt(event.attributes[key], 10);\n }\n });\n\n _this2.trigger('data', event);\n\n return;\n } // unknown tag type\n\n\n _this2.trigger('data', {\n type: 'tag',\n data: newLine.slice(4)\n });\n });\n }\n /**\n * Add a parser for custom headers\n *\n * @param {Object} options a map of options for the added parser\n * @param {RegExp} options.expression a regular expression to match the custom header\n * @param {string} options.customType the custom type to register to the output\n * @param {Function} [options.dataParser] function to parse the line into an object\n * @param {boolean} [options.segment] should tag data be attached to the segment object\n */\n ;\n\n _proto.addParser = function addParser(_ref) {\n var _this3 = this;\n\n var expression = _ref.expression,\n customType = _ref.customType,\n dataParser = _ref.dataParser,\n segment = _ref.segment;\n\n if (typeof dataParser !== 'function') {\n dataParser = function dataParser(line) {\n return line;\n };\n }\n\n this.customParsers.push(function (line) {\n var match = expression.exec(line);\n\n if (match) {\n _this3.trigger('data', {\n type: 'custom',\n data: dataParser(line),\n customType: customType,\n segment: segment\n });\n\n return true;\n }\n });\n }\n /**\n * Add a custom header mapper\n *\n * @param {Object} options\n * @param {RegExp} options.expression a regular expression to match the custom header\n * @param {Function} options.map function to translate tag into a different tag\n */\n ;\n\n _proto.addTagMapper = function addTagMapper(_ref2) {\n var expression = _ref2.expression,\n map = _ref2.map;\n\n var mapFn = function mapFn(line) {\n if (expression.test(line)) {\n return map(line);\n }\n\n return line;\n };\n\n this.tagMappers.push(mapFn);\n };\n\n return ParseStream;\n}(Stream);\n\nvar camelCase = function camelCase(str) {\n return str.toLowerCase().replace(/-(\\w)/g, function (a) {\n return a[1].toUpperCase();\n });\n};\n\nvar camelCaseKeys = function camelCaseKeys(attributes) {\n var result = {};\n Object.keys(attributes).forEach(function (key) {\n result[camelCase(key)] = attributes[key];\n });\n return result;\n}; // set SERVER-CONTROL hold back based upon targetDuration and partTargetDuration\n// we need this helper because defaults are based upon targetDuration and\n// partTargetDuration being set, but they may not be if SERVER-CONTROL appears before\n// target durations are set.\n\n\nvar setHoldBack = function setHoldBack(manifest) {\n var serverControl = manifest.serverControl,\n targetDuration = manifest.targetDuration,\n partTargetDuration = manifest.partTargetDuration;\n\n if (!serverControl) {\n return;\n }\n\n var tag = '#EXT-X-SERVER-CONTROL';\n var hb = 'holdBack';\n var phb = 'partHoldBack';\n var minTargetDuration = targetDuration && targetDuration * 3;\n var minPartDuration = partTargetDuration && partTargetDuration * 2;\n\n if (targetDuration && !serverControl.hasOwnProperty(hb)) {\n serverControl[hb] = minTargetDuration;\n this.trigger('info', {\n message: tag + \" defaulting HOLD-BACK to targetDuration * 3 (\" + minTargetDuration + \").\"\n });\n }\n\n if (minTargetDuration && serverControl[hb] < minTargetDuration) {\n this.trigger('warn', {\n message: tag + \" clamping HOLD-BACK (\" + serverControl[hb] + \") to targetDuration * 3 (\" + minTargetDuration + \")\"\n });\n serverControl[hb] = minTargetDuration;\n } // default no part hold back to part target duration * 3\n\n\n if (partTargetDuration && !serverControl.hasOwnProperty(phb)) {\n serverControl[phb] = partTargetDuration * 3;\n this.trigger('info', {\n message: tag + \" defaulting PART-HOLD-BACK to partTargetDuration * 3 (\" + serverControl[phb] + \").\"\n });\n } // if part hold back is too small default it to part target duration * 2\n\n\n if (partTargetDuration && serverControl[phb] < minPartDuration) {\n this.trigger('warn', {\n message: tag + \" clamping PART-HOLD-BACK (\" + serverControl[phb] + \") to partTargetDuration * 2 (\" + minPartDuration + \").\"\n });\n serverControl[phb] = minPartDuration;\n }\n};\n/**\n * A parser for M3U8 files. The current interpretation of the input is\n * exposed as a property `manifest` on parser objects. It's just two lines to\n * create and parse a manifest once you have the contents available as a string:\n *\n * ```js\n * var parser = new m3u8.Parser();\n * parser.push(xhr.responseText);\n * ```\n *\n * New input can later be applied to update the manifest object by calling\n * `push` again.\n *\n * The parser attempts to create a usable manifest object even if the\n * underlying input is somewhat nonsensical. It emits `info` and `warning`\n * events during the parse if it encounters input that seems invalid or\n * requires some property of the manifest object to be defaulted.\n *\n * @class Parser\n * @extends Stream\n */\n\n\nvar Parser = /*#__PURE__*/function (_Stream) {\n _inheritsLoose(Parser, _Stream);\n\n function Parser() {\n var _this;\n\n _this = _Stream.call(this) || this;\n _this.lineStream = new LineStream();\n _this.parseStream = new ParseStream();\n\n _this.lineStream.pipe(_this.parseStream);\n /* eslint-disable consistent-this */\n\n\n var self = _assertThisInitialized(_this);\n /* eslint-enable consistent-this */\n\n\n var uris = [];\n var currentUri = {}; // if specified, the active EXT-X-MAP definition\n\n var currentMap; // if specified, the active decryption key\n\n var _key;\n\n var hasParts = false;\n\n var noop = function noop() {};\n\n var defaultMediaGroups = {\n 'AUDIO': {},\n 'VIDEO': {},\n 'CLOSED-CAPTIONS': {},\n 'SUBTITLES': {}\n }; // This is the Widevine UUID from DASH IF IOP. The same exact string is\n // used in MPDs with Widevine encrypted streams.\n\n var widevineUuid = 'urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed'; // group segments into numbered timelines delineated by discontinuities\n\n var currentTimeline = 0; // the manifest is empty until the parse stream begins delivering data\n\n _this.manifest = {\n allowCache: true,\n discontinuityStarts: [],\n segments: []\n }; // keep track of the last seen segment's byte range end, as segments are not required\n // to provide the offset, in which case it defaults to the next byte after the\n // previous segment\n\n var lastByterangeEnd = 0; // keep track of the last seen part's byte range end.\n\n var lastPartByterangeEnd = 0;\n\n _this.on('end', function () {\n // only add preloadSegment if we don't yet have a uri for it.\n // and we actually have parts/preloadHints\n if (currentUri.uri || !currentUri.parts && !currentUri.preloadHints) {\n return;\n }\n\n if (!currentUri.map && currentMap) {\n currentUri.map = currentMap;\n }\n\n if (!currentUri.key && _key) {\n currentUri.key = _key;\n }\n\n if (!currentUri.timeline && typeof currentTimeline === 'number') {\n currentUri.timeline = currentTimeline;\n }\n\n _this.manifest.preloadSegment = currentUri;\n }); // update the manifest with the m3u8 entry from the parse stream\n\n\n _this.parseStream.on('data', function (entry) {\n var mediaGroup;\n var rendition;\n ({\n tag: function tag() {\n // switch based on the tag type\n (({\n version: function version() {\n if (entry.version) {\n this.manifest.version = entry.version;\n }\n },\n 'allow-cache': function allowCache() {\n this.manifest.allowCache = entry.allowed;\n\n if (!('allowed' in entry)) {\n this.trigger('info', {\n message: 'defaulting allowCache to YES'\n });\n this.manifest.allowCache = true;\n }\n },\n byterange: function byterange() {\n var byterange = {};\n\n if ('length' in entry) {\n currentUri.byterange = byterange;\n byterange.length = entry.length;\n\n if (!('offset' in entry)) {\n /*\n * From the latest spec (as of this writing):\n * https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.2.2\n *\n * Same text since EXT-X-BYTERANGE's introduction in draft 7:\n * https://tools.ietf.org/html/draft-pantos-http-live-streaming-07#section-3.3.1)\n *\n * \"If o [offset] is not present, the sub-range begins at the next byte\n * following the sub-range of the previous media segment.\"\n */\n entry.offset = lastByterangeEnd;\n }\n }\n\n if ('offset' in entry) {\n currentUri.byterange = byterange;\n byterange.offset = entry.offset;\n }\n\n lastByterangeEnd = byterange.offset + byterange.length;\n },\n endlist: function endlist() {\n this.manifest.endList = true;\n },\n inf: function inf() {\n if (!('mediaSequence' in this.manifest)) {\n this.manifest.mediaSequence = 0;\n this.trigger('info', {\n message: 'defaulting media sequence to zero'\n });\n }\n\n if (!('discontinuitySequence' in this.manifest)) {\n this.manifest.discontinuitySequence = 0;\n this.trigger('info', {\n message: 'defaulting discontinuity sequence to zero'\n });\n }\n\n if (entry.duration > 0) {\n currentUri.duration = entry.duration;\n }\n\n if (entry.duration === 0) {\n currentUri.duration = 0.01;\n this.trigger('info', {\n message: 'updating zero segment duration to a small value'\n });\n }\n\n this.manifest.segments = uris;\n },\n key: function key() {\n if (!entry.attributes) {\n this.trigger('warn', {\n message: 'ignoring key declaration without attribute list'\n });\n return;\n } // clear the active encryption key\n\n\n if (entry.attributes.METHOD === 'NONE') {\n _key = null;\n return;\n }\n\n if (!entry.attributes.URI) {\n this.trigger('warn', {\n message: 'ignoring key declaration without URI'\n });\n return;\n }\n\n if (entry.attributes.KEYFORMAT === 'com.apple.streamingkeydelivery') {\n this.manifest.contentProtection = this.manifest.contentProtection || {}; // TODO: add full support for this.\n\n this.manifest.contentProtection['com.apple.fps.1_0'] = {\n attributes: entry.attributes\n };\n return;\n }\n\n if (entry.attributes.KEYFORMAT === 'com.microsoft.playready') {\n this.manifest.contentProtection = this.manifest.contentProtection || {}; // TODO: add full support for this.\n\n this.manifest.contentProtection['com.microsoft.playready'] = {\n uri: entry.attributes.URI\n };\n return;\n } // check if the content is encrypted for Widevine\n // Widevine/HLS spec: https://storage.googleapis.com/wvdocs/Widevine_DRM_HLS.pdf\n\n\n if (entry.attributes.KEYFORMAT === widevineUuid) {\n var VALID_METHODS = ['SAMPLE-AES', 'SAMPLE-AES-CTR', 'SAMPLE-AES-CENC'];\n\n if (VALID_METHODS.indexOf(entry.attributes.METHOD) === -1) {\n this.trigger('warn', {\n message: 'invalid key method provided for Widevine'\n });\n return;\n }\n\n if (entry.attributes.METHOD === 'SAMPLE-AES-CENC') {\n this.trigger('warn', {\n message: 'SAMPLE-AES-CENC is deprecated, please use SAMPLE-AES-CTR instead'\n });\n }\n\n if (entry.attributes.URI.substring(0, 23) !== 'data:text/plain;base64,') {\n this.trigger('warn', {\n message: 'invalid key URI provided for Widevine'\n });\n return;\n }\n\n if (!(entry.attributes.KEYID && entry.attributes.KEYID.substring(0, 2) === '0x')) {\n this.trigger('warn', {\n message: 'invalid key ID provided for Widevine'\n });\n return;\n } // if Widevine key attributes are valid, store them as `contentProtection`\n // on the manifest to emulate Widevine tag structure in a DASH mpd\n\n\n this.manifest.contentProtection = this.manifest.contentProtection || {};\n this.manifest.contentProtection['com.widevine.alpha'] = {\n attributes: {\n schemeIdUri: entry.attributes.KEYFORMAT,\n // remove '0x' from the key id string\n keyId: entry.attributes.KEYID.substring(2)\n },\n // decode the base64-encoded PSSH box\n pssh: decodeB64ToUint8Array(entry.attributes.URI.split(',')[1])\n };\n return;\n }\n\n if (!entry.attributes.METHOD) {\n this.trigger('warn', {\n message: 'defaulting key method to AES-128'\n });\n } // setup an encryption key for upcoming segments\n\n\n _key = {\n method: entry.attributes.METHOD || 'AES-128',\n uri: entry.attributes.URI\n };\n\n if (typeof entry.attributes.IV !== 'undefined') {\n _key.iv = entry.attributes.IV;\n }\n },\n 'media-sequence': function mediaSequence() {\n if (!isFinite(entry.number)) {\n this.trigger('warn', {\n message: 'ignoring invalid media sequence: ' + entry.number\n });\n return;\n }\n\n this.manifest.mediaSequence = entry.number;\n },\n 'discontinuity-sequence': function discontinuitySequence() {\n if (!isFinite(entry.number)) {\n this.trigger('warn', {\n message: 'ignoring invalid discontinuity sequence: ' + entry.number\n });\n return;\n }\n\n this.manifest.discontinuitySequence = entry.number;\n currentTimeline = entry.number;\n },\n 'playlist-type': function playlistType() {\n if (!/VOD|EVENT/.test(entry.playlistType)) {\n this.trigger('warn', {\n message: 'ignoring unknown playlist type: ' + entry.playlist\n });\n return;\n }\n\n this.manifest.playlistType = entry.playlistType;\n },\n map: function map() {\n currentMap = {};\n\n if (entry.uri) {\n currentMap.uri = entry.uri;\n }\n\n if (entry.byterange) {\n currentMap.byterange = entry.byterange;\n }\n\n if (_key) {\n currentMap.key = _key;\n }\n },\n 'stream-inf': function streamInf() {\n this.manifest.playlists = uris;\n this.manifest.mediaGroups = this.manifest.mediaGroups || defaultMediaGroups;\n\n if (!entry.attributes) {\n this.trigger('warn', {\n message: 'ignoring empty stream-inf attributes'\n });\n return;\n }\n\n if (!currentUri.attributes) {\n currentUri.attributes = {};\n }\n\n _extends(currentUri.attributes, entry.attributes);\n },\n media: function media() {\n this.manifest.mediaGroups = this.manifest.mediaGroups || defaultMediaGroups;\n\n if (!(entry.attributes && entry.attributes.TYPE && entry.attributes['GROUP-ID'] && entry.attributes.NAME)) {\n this.trigger('warn', {\n message: 'ignoring incomplete or missing media group'\n });\n return;\n } // find the media group, creating defaults as necessary\n\n\n var mediaGroupType = this.manifest.mediaGroups[entry.attributes.TYPE];\n mediaGroupType[entry.attributes['GROUP-ID']] = mediaGroupType[entry.attributes['GROUP-ID']] || {};\n mediaGroup = mediaGroupType[entry.attributes['GROUP-ID']]; // collect the rendition metadata\n\n rendition = {\n default: /yes/i.test(entry.attributes.DEFAULT)\n };\n\n if (rendition.default) {\n rendition.autoselect = true;\n } else {\n rendition.autoselect = /yes/i.test(entry.attributes.AUTOSELECT);\n }\n\n if (entry.attributes.LANGUAGE) {\n rendition.language = entry.attributes.LANGUAGE;\n }\n\n if (entry.attributes.URI) {\n rendition.uri = entry.attributes.URI;\n }\n\n if (entry.attributes['INSTREAM-ID']) {\n rendition.instreamId = entry.attributes['INSTREAM-ID'];\n }\n\n if (entry.attributes.CHARACTERISTICS) {\n rendition.characteristics = entry.attributes.CHARACTERISTICS;\n }\n\n if (entry.attributes.FORCED) {\n rendition.forced = /yes/i.test(entry.attributes.FORCED);\n } // insert the new rendition\n\n\n mediaGroup[entry.attributes.NAME] = rendition;\n },\n discontinuity: function discontinuity() {\n currentTimeline += 1;\n currentUri.discontinuity = true;\n this.manifest.discontinuityStarts.push(uris.length);\n },\n 'program-date-time': function programDateTime() {\n if (typeof this.manifest.dateTimeString === 'undefined') {\n // PROGRAM-DATE-TIME is a media-segment tag, but for backwards\n // compatibility, we add the first occurence of the PROGRAM-DATE-TIME tag\n // to the manifest object\n // TODO: Consider removing this in future major version\n this.manifest.dateTimeString = entry.dateTimeString;\n this.manifest.dateTimeObject = entry.dateTimeObject;\n }\n\n currentUri.dateTimeString = entry.dateTimeString;\n currentUri.dateTimeObject = entry.dateTimeObject;\n },\n targetduration: function targetduration() {\n if (!isFinite(entry.duration) || entry.duration < 0) {\n this.trigger('warn', {\n message: 'ignoring invalid target duration: ' + entry.duration\n });\n return;\n }\n\n this.manifest.targetDuration = entry.duration;\n setHoldBack.call(this, this.manifest);\n },\n start: function start() {\n if (!entry.attributes || isNaN(entry.attributes['TIME-OFFSET'])) {\n this.trigger('warn', {\n message: 'ignoring start declaration without appropriate attribute list'\n });\n return;\n }\n\n this.manifest.start = {\n timeOffset: entry.attributes['TIME-OFFSET'],\n precise: entry.attributes.PRECISE\n };\n },\n 'cue-out': function cueOut() {\n currentUri.cueOut = entry.data;\n },\n 'cue-out-cont': function cueOutCont() {\n currentUri.cueOutCont = entry.data;\n },\n 'cue-in': function cueIn() {\n currentUri.cueIn = entry.data;\n },\n 'skip': function skip() {\n this.manifest.skip = camelCaseKeys(entry.attributes);\n this.warnOnMissingAttributes_('#EXT-X-SKIP', entry.attributes, ['SKIPPED-SEGMENTS']);\n },\n 'part': function part() {\n var _this2 = this;\n\n hasParts = true; // parts are always specifed before a segment\n\n var segmentIndex = this.manifest.segments.length;\n var part = camelCaseKeys(entry.attributes);\n currentUri.parts = currentUri.parts || [];\n currentUri.parts.push(part);\n\n if (part.byterange) {\n if (!part.byterange.hasOwnProperty('offset')) {\n part.byterange.offset = lastPartByterangeEnd;\n }\n\n lastPartByterangeEnd = part.byterange.offset + part.byterange.length;\n }\n\n var partIndex = currentUri.parts.length - 1;\n this.warnOnMissingAttributes_(\"#EXT-X-PART #\" + partIndex + \" for segment #\" + segmentIndex, entry.attributes, ['URI', 'DURATION']);\n\n if (this.manifest.renditionReports) {\n this.manifest.renditionReports.forEach(function (r, i) {\n if (!r.hasOwnProperty('lastPart')) {\n _this2.trigger('warn', {\n message: \"#EXT-X-RENDITION-REPORT #\" + i + \" lacks required attribute(s): LAST-PART\"\n });\n }\n });\n }\n },\n 'server-control': function serverControl() {\n var attrs = this.manifest.serverControl = camelCaseKeys(entry.attributes);\n\n if (!attrs.hasOwnProperty('canBlockReload')) {\n attrs.canBlockReload = false;\n this.trigger('info', {\n message: '#EXT-X-SERVER-CONTROL defaulting CAN-BLOCK-RELOAD to false'\n });\n }\n\n setHoldBack.call(this, this.manifest);\n\n if (attrs.canSkipDateranges && !attrs.hasOwnProperty('canSkipUntil')) {\n this.trigger('warn', {\n message: '#EXT-X-SERVER-CONTROL lacks required attribute CAN-SKIP-UNTIL which is required when CAN-SKIP-DATERANGES is set'\n });\n }\n },\n 'preload-hint': function preloadHint() {\n // parts are always specifed before a segment\n var segmentIndex = this.manifest.segments.length;\n var hint = camelCaseKeys(entry.attributes);\n var isPart = hint.type && hint.type === 'PART';\n currentUri.preloadHints = currentUri.preloadHints || [];\n currentUri.preloadHints.push(hint);\n\n if (hint.byterange) {\n if (!hint.byterange.hasOwnProperty('offset')) {\n // use last part byterange end or zero if not a part.\n hint.byterange.offset = isPart ? lastPartByterangeEnd : 0;\n\n if (isPart) {\n lastPartByterangeEnd = hint.byterange.offset + hint.byterange.length;\n }\n }\n }\n\n var index = currentUri.preloadHints.length - 1;\n this.warnOnMissingAttributes_(\"#EXT-X-PRELOAD-HINT #\" + index + \" for segment #\" + segmentIndex, entry.attributes, ['TYPE', 'URI']);\n\n if (!hint.type) {\n return;\n } // search through all preload hints except for the current one for\n // a duplicate type.\n\n\n for (var i = 0; i < currentUri.preloadHints.length - 1; i++) {\n var otherHint = currentUri.preloadHints[i];\n\n if (!otherHint.type) {\n continue;\n }\n\n if (otherHint.type === hint.type) {\n this.trigger('warn', {\n message: \"#EXT-X-PRELOAD-HINT #\" + index + \" for segment #\" + segmentIndex + \" has the same TYPE \" + hint.type + \" as preload hint #\" + i\n });\n }\n }\n },\n 'rendition-report': function renditionReport() {\n var report = camelCaseKeys(entry.attributes);\n this.manifest.renditionReports = this.manifest.renditionReports || [];\n this.manifest.renditionReports.push(report);\n var index = this.manifest.renditionReports.length - 1;\n var required = ['LAST-MSN', 'URI'];\n\n if (hasParts) {\n required.push('LAST-PART');\n }\n\n this.warnOnMissingAttributes_(\"#EXT-X-RENDITION-REPORT #\" + index, entry.attributes, required);\n },\n 'part-inf': function partInf() {\n this.manifest.partInf = camelCaseKeys(entry.attributes);\n this.warnOnMissingAttributes_('#EXT-X-PART-INF', entry.attributes, ['PART-TARGET']);\n\n if (this.manifest.partInf.partTarget) {\n this.manifest.partTargetDuration = this.manifest.partInf.partTarget;\n }\n\n setHoldBack.call(this, this.manifest);\n }\n })[entry.tagType] || noop).call(self);\n },\n uri: function uri() {\n currentUri.uri = entry.uri;\n uris.push(currentUri); // if no explicit duration was declared, use the target duration\n\n if (this.manifest.targetDuration && !('duration' in currentUri)) {\n this.trigger('warn', {\n message: 'defaulting segment duration to the target duration'\n });\n currentUri.duration = this.manifest.targetDuration;\n } // annotate with encryption information, if necessary\n\n\n if (_key) {\n currentUri.key = _key;\n }\n\n currentUri.timeline = currentTimeline; // annotate with initialization segment information, if necessary\n\n if (currentMap) {\n currentUri.map = currentMap;\n } // reset the last byterange end as it needs to be 0 between parts\n\n\n lastPartByterangeEnd = 0; // prepare for the next URI\n\n currentUri = {};\n },\n comment: function comment() {// comments are not important for playback\n },\n custom: function custom() {\n // if this is segment-level data attach the output to the segment\n if (entry.segment) {\n currentUri.custom = currentUri.custom || {};\n currentUri.custom[entry.customType] = entry.data; // if this is manifest-level data attach to the top level manifest object\n } else {\n this.manifest.custom = this.manifest.custom || {};\n this.manifest.custom[entry.customType] = entry.data;\n }\n }\n })[entry.type].call(self);\n });\n\n return _this;\n }\n\n var _proto = Parser.prototype;\n\n _proto.warnOnMissingAttributes_ = function warnOnMissingAttributes_(identifier, attributes, required) {\n var missing = [];\n required.forEach(function (key) {\n if (!attributes.hasOwnProperty(key)) {\n missing.push(key);\n }\n });\n\n if (missing.length) {\n this.trigger('warn', {\n message: identifier + \" lacks required attribute(s): \" + missing.join(', ')\n });\n }\n }\n /**\n * Parse the input string and update the manifest object.\n *\n * @param {string} chunk a potentially incomplete portion of the manifest\n */\n ;\n\n _proto.push = function push(chunk) {\n this.lineStream.push(chunk);\n }\n /**\n * Flush any remaining input. This can be handy if the last line of an M3U8\n * manifest did not contain a trailing newline but the file has been\n * completely received.\n */\n ;\n\n _proto.end = function end() {\n // flush any buffered input\n this.lineStream.push('\\n');\n this.trigger('end');\n }\n /**\n * Add an additional parser for non-standard tags\n *\n * @param {Object} options a map of options for the added parser\n * @param {RegExp} options.expression a regular expression to match the custom header\n * @param {string} options.type the type to register to the output\n * @param {Function} [options.dataParser] function to parse the line into an object\n * @param {boolean} [options.segment] should tag data be attached to the segment object\n */\n ;\n\n _proto.addParser = function addParser(options) {\n this.parseStream.addParser(options);\n }\n /**\n * Add a custom header mapper\n *\n * @param {Object} options\n * @param {RegExp} options.expression a regular expression to match the custom header\n * @param {Function} options.map function to translate tag into a different tag\n */\n ;\n\n _proto.addTagMapper = function addTagMapper(options) {\n this.parseStream.addTagMapper(options);\n };\n\n return Parser;\n}(Stream);\n\nexport { LineStream, ParseStream, Parser };\n","'use strict';\n/* eslint-disable no-unused-vars -- required for functions `.length` */\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar WEB_ASSEMBLY = 'WebAssembly';\nvar WebAssembly = global[WEB_ASSEMBLY];\n\nvar FORCED = Error('e', { cause: 7 }).cause !== 7;\n\nvar exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n var O = {};\n O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED);\n $({ global: true, constructor: true, arity: 1, forced: FORCED }, O);\n};\n\nvar exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n if (WebAssembly && WebAssembly[ERROR_NAME]) {\n var O = {};\n O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED);\n $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O);\n }\n};\n\n// https://tc39.es/ecma262/#sec-nativeerror\nexportGlobalErrorCauseWrapper('Error', function (init) {\n return function Error(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('EvalError', function (init) {\n return function EvalError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('RangeError', function (init) {\n return function RangeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('ReferenceError', function (init) {\n return function ReferenceError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('SyntaxError', function (init) {\n return function SyntaxError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('TypeError', function (init) {\n return function TypeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('URIError', function (init) {\n return function URIError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('CompileError', function (init) {\n return function CompileError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('LinkError', function (init) {\n return function LinkError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) {\n return function RuntimeError(message) { return apply(init, this, arguments); };\n});\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;\n\n // eslint-disable-next-line\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};","// 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 */\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 }\n\n // Numbers\n if ('number' === typeof searchInput) return names[searchInput]\n\n // Everything else (cast to string)\n var search = String(searchInput)\n\n // check codes\n var foundNamedKey = codes[search.toLowerCase()]\n if (foundNamedKey) return foundNamedKey\n\n // check aliases\n var foundNamedKey = aliases[search.toLowerCase()]\n if (foundNamedKey) return foundNamedKey\n\n // weird character?\n if (search.length === 1) return search.charCodeAt(0)\n\n return undefined\n}\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 */\nkeyCode.isEventKey = function isEventKey(event, nameOrCode) {\n if (event && 'object' === typeof event) {\n var keyCode = event.which || event.keyCode || event.charCode\n if (keyCode === null || keyCode === undefined) { return false; }\n if (typeof nameOrCode === 'string') {\n // check codes\n var foundNamedKey = codes[nameOrCode.toLowerCase()]\n if (foundNamedKey) { return foundNamedKey === keyCode; }\n \n // check aliases\n var foundNamedKey = aliases[nameOrCode.toLowerCase()]\n if (foundNamedKey) { return foundNamedKey === keyCode; }\n } else if (typeof nameOrCode === 'number') {\n return nameOrCode === keyCode;\n }\n return false;\n }\n}\n\nexports = module.exports = keyCode;\n\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}\n\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/*!\n * Programatically add the following\n */\n\n// lower case chars\nfor (i = 97; i < 123; i++) codes[String.fromCharCode(i)] = i - 32\n\n// numbers\nfor (var i = 48; i < 58; i++) codes[i - 48] = i\n\n// function keys\nfor (i = 1; i < 13; i++) codes['f'+i] = i + 111\n\n// numpad keys\nfor (i = 0; i < 10; i++) codes['numpad '+i] = i + 96\n\n/**\n * Get by code\n *\n * exports.name[13] // => 'Enter'\n */\n\nvar names = exports.names = exports.title = {} // title for backward compat\n\n// Create reverse mapping\nfor (i in codes) names[codes[i]] = i\n\n// Add aliases\nfor (var alias in aliases) {\n codes[alias] = aliases[alias]\n}\n","var NAMESPACE = require(\"./conventions\").NAMESPACE;\n\n//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\nvar nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]///\\u10000-\\uEFFFF\nvar nameChar = new RegExp(\"[\\\\-\\\\.0-9\"+nameStartChar.source.slice(1,-1)+\"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\\:'+nameStartChar.source+nameChar.source+'*)?$');\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar S_TAG = 0;//tag name offerring\nvar S_ATTR = 1;//attr name offerring\nvar S_ATTR_SPACE=2;//attr name end and space offer\nvar S_EQ = 3;//=space?\nvar S_ATTR_NOQUOT_VALUE = 4;//attr value(no quot value only)\nvar S_ATTR_END = 5;//attr value end and no space(quot end)\nvar S_TAG_SPACE = 6;//(attr value end || tag end ) && (space offer)\nvar S_TAG_CLOSE = 7;//closed el\n\n/**\n * Creates an error that will not be caught by XMLReader aka the SAX parser.\n *\n * @param {string} message\n * @param {any?} locator Optional, can provide details about the location in the source\n * @constructor\n */\nfunction ParseError(message, locator) {\n\tthis.message = message\n\tthis.locator = locator\n\tif(Error.captureStackTrace) Error.captureStackTrace(this, ParseError);\n}\nParseError.prototype = new Error();\nParseError.prototype.name = ParseError.name\n\nfunction XMLReader(){\n\n}\n\nXMLReader.prototype = {\n\tparse:function(source,defaultNSMap,entityMap){\n\t\tvar domBuilder = this.domBuilder;\n\t\tdomBuilder.startDocument();\n\t\t_copy(defaultNSMap ,defaultNSMap = {})\n\t\tparse(source,defaultNSMap,entityMap,\n\t\t\t\tdomBuilder,this.errorHandler);\n\t\tdomBuilder.endDocument();\n\t}\n}\nfunction parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){\n\tfunction fixedFromCharCode(code) {\n\t\t// String.prototype.fromCharCode does not supports\n\t\t// > 2 bytes unicode chars directly\n\t\tif (code > 0xffff) {\n\t\t\tcode -= 0x10000;\n\t\t\tvar surrogate1 = 0xd800 + (code >> 10)\n\t\t\t\t, surrogate2 = 0xdc00 + (code & 0x3ff);\n\n\t\t\treturn String.fromCharCode(surrogate1, surrogate2);\n\t\t} else {\n\t\t\treturn String.fromCharCode(code);\n\t\t}\n\t}\n\tfunction entityReplacer(a){\n\t\tvar k = a.slice(1,-1);\n\t\tif (Object.hasOwnProperty.call(entityMap, k)) {\n\t\t\treturn entityMap[k];\n\t\t}else if(k.charAt(0) === '#'){\n\t\t\treturn fixedFromCharCode(parseInt(k.substr(1).replace('x','0x')))\n\t\t}else{\n\t\t\terrorHandler.error('entity not found:'+a);\n\t\t\treturn a;\n\t\t}\n\t}\n\tfunction appendText(end){//has some bugs\n\t\tif(end>start){\n\t\t\tvar xt = source.substring(start,end).replace(/&#?\\w+;/g,entityReplacer);\n\t\t\tlocator&&position(start);\n\t\t\tdomBuilder.characters(xt,0,end-start);\n\t\t\tstart = end\n\t\t}\n\t}\n\tfunction position(p,m){\n\t\twhile(p>=lineEnd && (m = linePattern.exec(source))){\n\t\t\tlineStart = m.index;\n\t\t\tlineEnd = lineStart + m[0].length;\n\t\t\tlocator.lineNumber++;\n\t\t\t//console.log('line++:',locator,startPos,endPos)\n\t\t}\n\t\tlocator.columnNumber = p-lineStart+1;\n\t}\n\tvar lineStart = 0;\n\tvar lineEnd = 0;\n\tvar linePattern = /.*(?:\\r\\n?|\\n)|.*$/g\n\tvar locator = domBuilder.locator;\n\n\tvar parseStack = [{currentNSMap:defaultNSMapCopy}]\n\tvar closeMap = {};\n\tvar start = 0;\n\twhile(true){\n\t\ttry{\n\t\t\tvar tagStart = source.indexOf('<',start);\n\t\t\tif(tagStart<0){\n\t\t\t\tif(!source.substr(start).match(/^\\s*$/)){\n\t\t\t\t\tvar doc = domBuilder.doc;\n\t \t\t\tvar text = doc.createTextNode(source.substr(start));\n\t \t\t\tdoc.appendChild(text);\n\t \t\t\tdomBuilder.currentElement = text;\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(tagStart>start){\n\t\t\t\tappendText(tagStart);\n\t\t\t}\n\t\t\tswitch(source.charAt(tagStart+1)){\n\t\t\tcase '/':\n\t\t\t\tvar end = source.indexOf('>',tagStart+3);\n\t\t\t\tvar tagName = source.substring(tagStart + 2, end).replace(/[ \\t\\n\\r]+$/g, '');\n\t\t\t\tvar config = parseStack.pop();\n\t\t\t\tif(end<0){\n\n\t \t\ttagName = source.substring(tagStart+2).replace(/[\\s<].*/,'');\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' is not complete:'+config.tagName);\n\t \t\tend = tagStart+1+tagName.length;\n\t \t}else if(tagName.match(/\\s\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tend = parseInstruction(source,tagStart,domBuilder);\n\t\t\t\tbreak;\n\t\t\tcase '!':// start){\n\t\t\tstart = end;\n\t\t}else{\n\t\t\t//TODO: 这里有可能sax回退,有位置错误风险\n\t\t\tappendText(Math.max(tagStart,start)+1);\n\t\t}\n\t}\n}\nfunction copyLocator(f,t){\n\tt.lineNumber = f.lineNumber;\n\tt.columnNumber = f.columnNumber;\n\treturn t;\n}\n\n/**\n * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack);\n * @return end of the elementStartPart(end of elementEndPart for selfClosed el)\n */\nfunction parseElementStartPart(source,start,el,currentNSMap,entityReplacer,errorHandler){\n\n\t/**\n\t * @param {string} qname\n\t * @param {string} value\n\t * @param {number} startIndex\n\t */\n\tfunction addAttribute(qname, value, startIndex) {\n\t\tif (el.attributeNames.hasOwnProperty(qname)) {\n\t\t\terrorHandler.fatalError('Attribute ' + qname + ' redefined')\n\t\t}\n\t\tel.addValue(\n\t\t\tqname,\n\t\t\t// @see https://www.w3.org/TR/xml/#AVNormalize\n\t\t\t// since the xmldom sax parser does not \"interpret\" DTD the following is not implemented:\n\t\t\t// - recursive replacement of (DTD) entity references\n\t\t\t// - trimming and collapsing multiple spaces into a single one for attributes that are not of type CDATA\n\t\t\tvalue.replace(/[\\t\\n\\r]/g, ' ').replace(/&#?\\w+;/g, entityReplacer),\n\t\t\tstartIndex\n\t\t)\n\t}\n\tvar attrName;\n\tvar value;\n\tvar p = ++start;\n\tvar s = S_TAG;//status\n\twhile(true){\n\t\tvar c = source.charAt(p);\n\t\tswitch(c){\n\t\tcase '=':\n\t\t\tif(s === S_ATTR){//attrName\n\t\t\t\tattrName = source.slice(start,p);\n\t\t\t\ts = S_EQ;\n\t\t\t}else if(s === S_ATTR_SPACE){\n\t\t\t\ts = S_EQ;\n\t\t\t}else{\n\t\t\t\t//fatalError: equal must after attrName or space after attrName\n\t\t\t\tthrow new Error('attribute equal must after attrName'); // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '\\'':\n\t\tcase '\"':\n\t\t\tif(s === S_EQ || s === S_ATTR //|| s == S_ATTR_SPACE\n\t\t\t\t){//equal\n\t\t\t\tif(s === S_ATTR){\n\t\t\t\t\terrorHandler.warning('attribute value must after \"=\"')\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t}\n\t\t\t\tstart = p+1;\n\t\t\t\tp = source.indexOf(c,start)\n\t\t\t\tif(p>0){\n\t\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\t\taddAttribute(attrName, value, start-1);\n\t\t\t\t\ts = S_ATTR_END;\n\t\t\t\t}else{\n\t\t\t\t\t//fatalError: no end quot match\n\t\t\t\t\tthrow new Error('attribute value no end \\''+c+'\\' match');\n\t\t\t\t}\n\t\t\t}else if(s == S_ATTR_NOQUOT_VALUE){\n\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\taddAttribute(attrName, value, start);\n\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed start quot('+c+')!!');\n\t\t\t\tstart = p+1;\n\t\t\t\ts = S_ATTR_END\n\t\t\t}else{\n\t\t\t\t//fatalError: no equal before\n\t\t\t\tthrow new Error('attribute value must after \"=\"'); // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '/':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_ATTR_END:\n\t\t\tcase S_TAG_SPACE:\n\t\t\tcase S_TAG_CLOSE:\n\t\t\t\ts =S_TAG_CLOSE;\n\t\t\t\tel.closed = true;\n\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\tcase S_ATTR:\n\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\tel.closed = true;\n\t\t\t\tbreak;\n\t\t\t//case S_EQ:\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"attribute invalid close char('/')\") // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase ''://end document\n\t\t\terrorHandler.error('unexpected end of input');\n\t\t\tif(s == S_TAG){\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\t}\n\t\t\treturn p;\n\t\tcase '>':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_ATTR_END:\n\t\t\tcase S_TAG_SPACE:\n\t\t\tcase S_TAG_CLOSE:\n\t\t\t\tbreak;//normal\n\t\t\tcase S_ATTR_NOQUOT_VALUE://Compatible state\n\t\t\tcase S_ATTR:\n\t\t\t\tvalue = source.slice(start,p);\n\t\t\t\tif(value.slice(-1) === '/'){\n\t\t\t\t\tel.closed = true;\n\t\t\t\t\tvalue = value.slice(0,-1)\n\t\t\t\t}\n\t\t\tcase S_ATTR_SPACE:\n\t\t\t\tif(s === S_ATTR_SPACE){\n\t\t\t\t\tvalue = attrName;\n\t\t\t\t}\n\t\t\t\tif(s == S_ATTR_NOQUOT_VALUE){\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!');\n\t\t\t\t\taddAttribute(attrName, value, start)\n\t\t\t\t}else{\n\t\t\t\t\tif(!NAMESPACE.isHTML(currentNSMap['']) || !value.match(/^(?:disabled|checked|selected)$/i)){\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed value!! \"'+value+'\" instead!!')\n\t\t\t\t\t}\n\t\t\t\t\taddAttribute(value, value, start)\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase S_EQ:\n\t\t\t\tthrow new Error('attribute value missed!!');\n\t\t\t}\n//\t\t\tconsole.log(tagName,tagNamePattern,tagNamePattern.test(tagName))\n\t\t\treturn p;\n\t\t/*xml space '\\x20' | #x9 | #xD | #xA; */\n\t\tcase '\\u0080':\n\t\t\tc = ' ';\n\t\tdefault:\n\t\t\tif(c<= ' '){//space\n\t\t\t\tswitch(s){\n\t\t\t\tcase S_TAG:\n\t\t\t\t\tel.setTagName(source.slice(start,p));//tagName\n\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR:\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t\ts = S_ATTR_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\t\t\tvar value = source.slice(start, p);\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!!');\n\t\t\t\t\taddAttribute(attrName, value, start)\n\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\t//case S_TAG_SPACE:\n\t\t\t\t//case S_EQ:\n\t\t\t\t//case S_ATTR_SPACE:\n\t\t\t\t//\tvoid();break;\n\t\t\t\t//case S_TAG_CLOSE:\n\t\t\t\t\t//ignore warning\n\t\t\t\t}\n\t\t\t}else{//not space\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\n\t\t\t\tswitch(s){\n\t\t\t\t//case S_TAG:void();break;\n\t\t\t\t//case S_ATTR:void();break;\n\t\t\t\t//case S_ATTR_NOQUOT_VALUE:void();break;\n\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\tvar tagName = el.tagName;\n\t\t\t\t\tif (!NAMESPACE.isHTML(currentNSMap['']) || !attrName.match(/^(?:disabled|checked|selected)$/i)) {\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed value!! \"'+attrName+'\" instead2!!')\n\t\t\t\t\t}\n\t\t\t\t\taddAttribute(attrName, attrName, start);\n\t\t\t\t\tstart = p;\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\terrorHandler.warning('attribute space is required\"'+attrName+'\"!!')\n\t\t\t\tcase S_TAG_SPACE:\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_EQ:\n\t\t\t\t\ts = S_ATTR_NOQUOT_VALUE;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_TAG_CLOSE:\n\t\t\t\t\tthrow new Error(\"elements closed character '/' and '>' must be connected to\");\n\t\t\t\t}\n\t\t\t}\n\t\t}//end outer switch\n\t\t//console.log('p++',p)\n\t\tp++;\n\t}\n}\n/**\n * @return true if has new namespace define\n */\nfunction appendElement(el,domBuilder,currentNSMap){\n\tvar tagName = el.tagName;\n\tvar localNSMap = null;\n\t//var currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n\tvar i = el.length;\n\twhile(i--){\n\t\tvar a = el[i];\n\t\tvar qName = a.qName;\n\t\tvar value = a.value;\n\t\tvar nsp = qName.indexOf(':');\n\t\tif(nsp>0){\n\t\t\tvar prefix = a.prefix = qName.slice(0,nsp);\n\t\t\tvar localName = qName.slice(nsp+1);\n\t\t\tvar nsPrefix = prefix === 'xmlns' && localName\n\t\t}else{\n\t\t\tlocalName = qName;\n\t\t\tprefix = null\n\t\t\tnsPrefix = qName === 'xmlns' && ''\n\t\t}\n\t\t//can not set prefix,because prefix !== ''\n\t\ta.localName = localName ;\n\t\t//prefix == null for no ns prefix attribute\n\t\tif(nsPrefix !== false){//hack!!\n\t\t\tif(localNSMap == null){\n\t\t\t\tlocalNSMap = {}\n\t\t\t\t//console.log(currentNSMap,0)\n\t\t\t\t_copy(currentNSMap,currentNSMap={})\n\t\t\t\t//console.log(currentNSMap,1)\n\t\t\t}\n\t\t\tcurrentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\n\t\t\ta.uri = NAMESPACE.XMLNS\n\t\t\tdomBuilder.startPrefixMapping(nsPrefix, value)\n\t\t}\n\t}\n\tvar i = el.length;\n\twhile(i--){\n\t\ta = el[i];\n\t\tvar prefix = a.prefix;\n\t\tif(prefix){//no prefix attribute has no namespace\n\t\t\tif(prefix === 'xml'){\n\t\t\t\ta.uri = NAMESPACE.XML;\n\t\t\t}if(prefix !== 'xmlns'){\n\t\t\t\ta.uri = currentNSMap[prefix || '']\n\n\t\t\t\t//{console.log('###'+a.qName,domBuilder.locator.systemId+'',currentNSMap,a.uri)}\n\t\t\t}\n\t\t}\n\t}\n\tvar nsp = tagName.indexOf(':');\n\tif(nsp>0){\n\t\tprefix = el.prefix = tagName.slice(0,nsp);\n\t\tlocalName = el.localName = tagName.slice(nsp+1);\n\t}else{\n\t\tprefix = null;//important!!\n\t\tlocalName = el.localName = tagName;\n\t}\n\t//no prefix element has default namespace\n\tvar ns = el.uri = currentNSMap[prefix || ''];\n\tdomBuilder.startElement(ns,localName,tagName,el);\n\t//endPrefixMapping and startPrefixMapping have not any help for dom builder\n\t//localNSMap = null\n\tif(el.closed){\n\t\tdomBuilder.endElement(ns,localName,tagName);\n\t\tif(localNSMap){\n\t\t\tfor (prefix in localNSMap) {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) {\n\t\t\t\t\tdomBuilder.endPrefixMapping(prefix);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}else{\n\t\tel.currentNSMap = currentNSMap;\n\t\tel.localNSMap = localNSMap;\n\t\t//parseStack.push(el);\n\t\treturn true;\n\t}\n}\nfunction parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){\n\tif(/^(?:script|textarea)$/i.test(tagName)){\n\t\tvar elEndStart = source.indexOf('',elStartEnd);\n\t\tvar text = source.substring(elStartEnd+1,elEndStart);\n\t\tif(/[&<]/.test(text)){\n\t\t\tif(/^script$/i.test(tagName)){\n\t\t\t\t//if(!/\\]\\]>/.test(text)){\n\t\t\t\t\t//lexHandler.startCDATA();\n\t\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\t\t//lexHandler.endCDATA();\n\t\t\t\t\treturn elEndStart;\n\t\t\t\t//}\n\t\t\t}//}else{//text area\n\t\t\t\ttext = text.replace(/&#?\\w+;/g,entityReplacer);\n\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\treturn elEndStart;\n\t\t\t//}\n\n\t\t}\n\t}\n\treturn elStartEnd+1;\n}\nfunction fixSelfClosed(source,elStartEnd,tagName,closeMap){\n\t//if(tagName in closeMap){\n\tvar pos = closeMap[tagName];\n\tif(pos == null){\n\t\t//console.log(tagName)\n\t\tpos = source.lastIndexOf('')\n\t\tif(pos',start+4);\n\t\t\t//append comment source.substring(4,end)//\");\n\tcase DOCUMENT_TYPE_NODE:\n\t\tvar pubid = node.publicId;\n\t\tvar sysid = node.systemId;\n\t\tbuf.push('');\n\t\t}else if(sysid && sysid!='.'){\n\t\t\tbuf.push(' SYSTEM ', sysid, '>');\n\t\t}else{\n\t\t\tvar sub = node.internalSubset;\n\t\t\tif(sub){\n\t\t\t\tbuf.push(\" [\",sub,\"]\");\n\t\t\t}\n\t\t\tbuf.push(\">\");\n\t\t}\n\t\treturn;\n\tcase PROCESSING_INSTRUCTION_NODE:\n\t\treturn buf.push( \"\");\n\tcase ENTITY_REFERENCE_NODE:\n\t\treturn buf.push( '&',node.nodeName,';');\n\t//case ENTITY_NODE:\n\t//case NOTATION_NODE:\n\tdefault:\n\t\tbuf.push('??',node.nodeName);\n\t}\n}\nfunction importNode(doc,node,deep){\n\tvar node2;\n\tswitch (node.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tnode2 = node.cloneNode(false);\n\t\tnode2.ownerDocument = doc;\n\t\t//var attrs = node2.attributes;\n\t\t//var len = attrs.length;\n\t\t//for(var i=0;i OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]);\n return result;\n });\n\n WrappedError.prototype = OriginalErrorPrototype;\n\n if (ERROR_NAME !== 'Error') {\n if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError);\n else copyConstructorProperties(WrappedError, BaseError, { name: true });\n } else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) {\n proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT);\n proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace');\n }\n\n copyConstructorProperties(WrappedError, OriginalError);\n\n if (!IS_PURE) try {\n // Safari 13- bug: WebAssembly errors does not have a proper `.name`\n if (OriginalErrorPrototype.name !== ERROR_NAME) {\n createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME);\n }\n OriginalErrorPrototype.constructor = WrappedError;\n } catch (error) { /* empty */ }\n\n return WrappedError;\n};\n","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var topLevel = typeof global !== 'undefined' ? global :\n typeof window !== 'undefined' ? window : {}\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;\n","/**\n * @license\n * Video.js 7.21.5 \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 */\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 { isArrayBufferView, concatTypedArrays, stringToBytes, toUint8 } from '@videojs/vhs-utils/es/byte-helpers';\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 { ONE_SECOND_IN_TS } from 'mux.js/lib/utils/clock';\nimport _wrapNativeSuper from '@babel/runtime/helpers/wrapNativeSuper';\n\nvar version$5 = \"7.21.5\";\n\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 */\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/**\n * @file fullscreen-api.js\n * @module fullscreen-api\n * @private\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\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/**\n * @file create-logger.js\n * @module create-logger\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/**\n * @file log.js\n * @module log\n */\nvar log$1 = createLogger$1('VIDEOJS');\nvar createLogger = log$1.createLogger;\n\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 */\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\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\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\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\nfunction isPlain(value) {\n return isObject(value) && toString.call(value) === '[object Object]' && value.constructor === Object;\n}\n\n/**\n * @file computed-style.js\n * @module computed-style\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\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/**\n * @file browser.js\n * @module browser\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\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\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\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\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;\n\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/**\n * @file dom.js\n * @module dom\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\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\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\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\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\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\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\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\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\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\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\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\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\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\nfunction removeAttribute(el, attribute) {\n el.removeAttribute(attribute);\n}\n/**\n * Attempt to block the ability to select text.\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\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\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\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\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\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\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\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\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\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\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\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');\n\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/**\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 */\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/**\n * @file stylesheet.js\n * @module stylesheet\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\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\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/**\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\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/**\n * @file dom-data.js\n * @module dom-data\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/**\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 * 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 // Lighthouse complains if Event.path is copied\n if (key !== 'layerX' && key !== 'layerY' && key !== 'keyLocation' && key !== 'webkitMovementX' && key !== 'webkitMovementY' && key !== 'path') {\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\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\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\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\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\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/**\n * @file fn.js\n * @module fn\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\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\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/**\n * @file src/js/event-target.js\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\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;\n\n // only set up EVENT_MAP if it'll be used\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 map[\"delete\"](type); // if we cleared out all timeouts for the current target, delete its map\n\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/**\n * @file mixins/evented.js\n * @module evented\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/**\n * @file mixins/stateful.js\n * @module stateful\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\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;\n\n // Support providing the `stateUpdates` state as a function.\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/**\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 */\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\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\nvar titleCaseEquals = function titleCaseEquals(str1, str2) {\n return toTitleCase$1(str1) === toTitleCase$1(str2);\n};\n\n/**\n * @file merge-options.js\n * @module merge-options\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\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$1 = window$1.Set ? window$1.Set : SetSham;\n\n/**\n * Player Component - Base class for all UI objects\n *\n * @file component.js\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 component 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 {string} [options.className]\n * A class or space separated list of classes to add the component\n *\n * @param {Component~ReadyCallback} [ready]\n * Function that gets called when the `Component` is ready.\n */\n function Component(player, options, ready) {\n var _this = this;\n\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 }\n\n if (options.className && this.el_) {\n options.className.split(' ').forEach(function (c) {\n return _this.addClass(c);\n });\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$1();\n this.setIntervalIds_ = new Set$1();\n this.rafIds_ = new Set$1();\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 * @param {Object} options\n * @param {Element} options.originalEl element with which to replace player element\n */\n\n\n var _proto = Component.prototype;\n\n _proto.dispose = function dispose(options) {\n if (options === void 0) {\n options = {};\n }\n\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 if (options.restoreEl) {\n this.el_.parentNode.replaceChild(options.restoreEl, this.el_);\n } else {\n this.el_.parentNode.removeChild(this.el_);\n }\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 }\n\n // flatten array argument into the main array\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 _this2 = 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 = _this2.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 = _this2.addChild(name, opts);\n\n if (newChild) {\n _this2[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] || _this2.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 _this3 = this;\n\n // declare as variables so they are properly available in timeout function\n // eslint-disable-next-line\n var timeoutId;\n fn = bind(this, fn);\n this.clearTimersOnDispose_();\n timeoutId = window$1.setTimeout(function () {\n if (_this3.setTimeoutIds_.has(timeoutId)) {\n _this3.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 _this4 = this;\n\n // Fall back to using a timer.\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 (_this4.rafIds_.has(id)) {\n _this4.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 _this5 = 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 (_this5.namedRafs_.has(name)) {\n _this5.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 _this6 = 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];\n\n // 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 _this6[idName].forEach(function (val, key) {\n return _this6[cancelName](key);\n });\n });\n _this6.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/**\n * @file time-ranges.js\n * @module time-ranges\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/**\n * @file buffer.js\n * @module buffer\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\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/**\n * @file media-error.js\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\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 */\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\nfunction silencePromise(value) {\n if (isPromise(value)) {\n value.then(null, function (e) {});\n }\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 */\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};\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 /**\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 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/**\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 /**\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 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/**\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\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 /**\n * Create an instance of this class.\n *\n * @param {AudioTrack[]} [tracks=[]]\n * A list of `AudioTrack` to instantiate the list with.\n */\n function AudioTrackList(tracks) {\n var _this;\n\n if (tracks === void 0) {\n tracks = [];\n }\n\n // make sure only 1 track is enabled\n // sorted from last index to first index\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/**\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\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 /**\n * Create an instance of this class.\n *\n * @param {VideoTrack[]} [tracks=[]]\n * A list of `VideoTrack` to instantiate the list with.\n */\n function VideoTrackList(tracks) {\n var _this;\n\n if (tracks === void 0) {\n tracks = [];\n }\n\n // make sure only 1 track is enabled\n // sorted from last index to first index\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/**\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\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 /**\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 _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/**\n * @file html-track-element-list.js\n */\n\n/**\n * The current list of {@link HtmlTrackElement}s.\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/**\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 */\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/**\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 */\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/**\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 /**\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 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/**\n * @file url.js\n * @module url\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\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\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\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\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/**\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 /**\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 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 _this.timeupdateHandler = bind(_assertThisInitialized(_this), function (event) {\n if (event === void 0) {\n event = {};\n }\n\n if (this.tech_.isDisposed()) {\n return;\n }\n\n if (!this.tech_.isReady_) {\n if (event.type !== 'timeupdate') {\n this.rvf_ = this.tech_.requestVideoFrameCallback(this.timeupdateHandler);\n }\n\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 if (event.type !== 'timeupdate') {\n this.rvf_ = this.tech_.requestVideoFrameCallback(this.timeupdateHandler);\n }\n });\n\n var disposeHandler = function disposeHandler() {\n _this.stopTracking();\n };\n\n _this.tech_.one('dispose', disposeHandler);\n\n if (mode !== 'disabled') {\n _this.startTracking();\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.stopTracking();\n\n if (mode !== 'disabled') {\n this.startTracking();\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 var _proto = TextTrack.prototype;\n\n _proto.startTracking = function startTracking() {\n // More precise cues based on requestVideoFrameCallback with a requestAnimationFram fallback\n this.rvf_ = this.tech_.requestVideoFrameCallback(this.timeupdateHandler); // Also listen to timeupdate in case rVFC/rAF stops (window in background, audio in video el)\n\n this.tech_.on('timeupdate', this.timeupdateHandler);\n };\n\n _proto.stopTracking = function stopTracking() {\n if (this.rvf_) {\n this.tech_.cancelVideoFrameCallback(this.rvf_);\n this.rvf_ = undefined;\n }\n\n this.tech_.off('timeupdate', this.timeupdateHandler);\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 _proto.addCue = function addCue(originalCue) {\n var cue = originalCue;\n\n if (cue.constructor && cue.constructor.name !== '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/**\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 /**\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 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/**\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\nvar VideoTrack = /*#__PURE__*/function (_Track) {\n _inheritsLoose(VideoTrack, _Track);\n\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 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/**\n * @memberof HTMLTrackElement\n * @typedef {HTMLTrackElement~ReadyState}\n * @enum {number}\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 /**\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 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/*\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/**\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 /**\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 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 }\n\n // we don't want the tech to report user activity automatically.\n // This is done manually in addControlsListeners\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 };\n\n _this.queuedHanders_ = new Set(); // keep track of whether the current source has played at all to\n // implement a very limited played()\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 /**\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 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'